LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi4xIC0+IFY1LjYuMgoKY29tbWl0IDk3NjY5NmExMjhlNTdiNTEyYmY3YWQ0MDBkMDAyMzY4YjRhOWE4NzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxNDozNDozMSAyMDEyICswMTAwCgogICAgVjUtNi1wYXRjaGVzIG91dCBvZiBSZWxlYXNlIENhbmRpZGF0ZQoKY29tbWl0IDU3YzU2OGQzZDM5ODE3MmM1NTQxZmIzMWJiNzVkMThmY2NlMmUyNmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxNDozNDoxNSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMgoKY29tbWl0IDczZDkwNmJjN2M5ODUwNmZhMmI0ZDZkMjkwZjdiM2JlYmEyZTRhMGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxMToxMjo1OCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yCgpjb21taXQgNDJiNWFmYjNjZDZkMDZhZGI0MjZmMWRiYWE5ODM1OGYyYjJlOGE1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDEwOjQ2OjQ3IDIwMTIgKzAxMDAKCiAgICBWNS01LXBhdGNoZXMgb3V0IG9mIFJlbGVhc2UgQ2FuZGlkYXRlCgpjb21taXQgOGJkNDQwYzQzZTM2NWEwYjc3ZDQ3ZjU4MmNhZGU5Zjk3YzdiZmNlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDEwOjQ2OjI4IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yCgpjb21taXQgNmUwODU1YTMxNTcxOTg0OTk0MTFhYzUyYjQ2ZDVmMzJhYWQ1YjlmYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDA5OjUxOjMyIDIwMTIgKzAxMDAKCiAgICBBZGQgbWlzc2luZyByZXR1cm4gdHlwZSBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKY29tbWl0IDA3ZDgyNWU4YmIzNWVlYTlhYzZiMWNiODJjYmIyMzRmZTY2YjFhYjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAwOTo1MTozMiAyMDEyICswMTAwCgogICAgQWRkIG1pc3NpbmcgcmV0dXJuIHR5cGUgaW4gZnVuY3Rpb24gZGVjbGFyYXRpb24KCmNvbW1pdCA1ZGI3MDAzNmVmNjc1NjM1NjQ3ZTViN2M3MjUzNDU2ODM4ODM2NjQ3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMSAxNDo1NTozOCAyMDEyIC0wNzAwCgogICAgZG9uJ3QgdXNlIC0tcmViYXNlCgpjb21taXQgMTcyNzc2ODliNjI5ZjQ1ODZkNWQ3MTRkODdjZTZiYzExZjg4NzY2OApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTEgMTQ6NTU6MzggMjAxMiAtMDcwMAoKICAgIGRvbid0IHVzZSAtLXJlYmFzZQoKY29tbWl0IDUyMDZkMjVkNGNiOTRkNGIwZGQzMzFhNWE0MTEzZDRkODc3ODJjNDIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDIgMTI6MTQ6MzkgMjAxMiAtMDcwMAoKICAgIGJldHRlciBkZXNjcmlwdGlvbiBvZiAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCBmOTI4NTMyODE0NzdlZTcyNGE1MWE5OTY3ZjM3ZDNmMWRkMWIwZjdlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAyIDEyOjA5OjUwIDIwMTIgLTA3MDAKCiAgICByZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb25zIGNhdXNpbmcgYSBwcm9ibGVtCgpjb21taXQgNWJlMjczNjg3NTE2OTFmYzFhYjU1ZmU2MmI0MTA2ZDhkOTliODcwNApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMiAxMjowNjo1OCAyMDEyIC0wNzAwCgogICAgYWZ0ZXIgcHVsbGluZyBhbGwgdGhlIGJyYW5jaGVzLCBzd2l0Y2ggYmFjayB0byB0aGUgaW5pdGlhbCBvbmUKCmNvbW1pdCA2YTA3NWFlNDk0Yzc2YjgyZWVhOTYzMjdjZjUyNDJkZjA0ODc0M2RiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTQ6MjE6MDggMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzMKCmNvbW1pdCBhMzdlN2UwMjk0NTE0N2JmZTZjYWRiOTU3MTcwNmM2YjJlYzc0M2JmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTQ6MTc6NDIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzMKCgpjb21taXQgNTk1M2NmZDg1NWI3YTU2NTY3MmNlZjk0Mjk0OTcxNDFjN2Q5YmUxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjA0OjUwIDIwMTIgKzAxMDAKCiAgICBVbnBpY2sgbWVyZ2UgY29uZmxpY3QuCiAgICAoTm90IHN1cmUgd2h5IHRoaXMgd2Fzbid0IGZsYWdnZWQgdXAgZWFybGllciAtIG9yIG1heWJlIEkganVzdCBtaXNzZWQgaXQhKQoKY29tbWl0IGU3MmUyMDVmZGNlZjc4N2VmODQwYzhjOTI4ZWQyNzM1MWE2OTU0NGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo1ODowNyAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGZlYWJlZjNlNmNhMzViYzBmMTQzNDFlNGNkNmRjOWFmZDE5NTViYTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo1Nzo1NiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzMKCmNvbW1pdCBmNzlhNTRmMjQ3MjUwOGIxNjdkOTc3ZjM2N2MzODY0YjU2MjFlODlkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NDI6NTMgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzMKCmNvbW1pdCA1NmVmNWYwZGI1MWNmZDU1MjI2ZjgyZjk0ZjNmM2QyNDUwZTRmZWI1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mzk6MzIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzMKCmNvbW1pdCBhZjFkMDBhYjAyNDYyNzVkYWRiNWYwY2QzYTIzYTc3ZDVmNTU5OGNkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MzcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBmMTg3NzZkNjNhNTE2MDIwMzE3ZTU4ODc1YWIyNDM1MmQ1ZGI4NjUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MjYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMzCgpjb21taXQgZmUxMDc3OTRlNzQwMGQyMzllOGFmM2RhOGI0YTNmYmVmMDZiNWRhOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgMGY4NGZiY2Y3MTk5NWJkZGFmYWI1MDBkODdjOWM1YTZmNDYxYTczNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEyOjI5OjM0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ3OTc0MDogRml4IGhyU1dSdW5QZXJmIHN0YXRpc3RpY3MKCmNvbW1pdCAxZTNiYjYwNjBiZTYxNTZkM2ZmMzE2YzVhN2U0ZmQ3ZjA1ZTM3Y2ZmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTI6MTE6NTYgMjAxMiArMDEwMAoKICAgIE5FV1M6IHNubXBkOiBCVUc6IDM1MzIwOTA6IEZpeCBoaWdoIGlmSW5kZXggdmFsdWVzIGNyYXNoaW5nIGhyRGV2aWNlRGVzY3IKCmNvbW1pdCBlODY2M2ZhYzhiODg2NjMyODI2Njk3MjZhMDhmMTZkYjE2YjVmNGRiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMTggMTM6MzA6MjUgMjAxMiArMDIwMAoKICAgIFJldmVydCAiQ0hOQUdFUzogc25tcGQ6IGZpeGVkIHNubXBkIGV4aXRpbmcgc2hvcnRseSBhZnRlciBzdGFydCBkdWUgdG8gaW5jb21pbmcgc2lnbmFsLiIKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBiMTFhNGU5M2Y1MGQ4YTU0NGY4MzVmMzc2YzNhNGI4YzA2NDFhMzFhLAogICAgd2UncmUgaW4gUkMtcGhhc2UgYW5kIGNvZGUgaXMgZnJvemVuCiAgICAKICAgIChzb3JyeSBmb3Igbm9pc2UpCgpjb21taXQgYjExYTRlOTNmNTBkOGE1NDRmODM1ZjM3NmMzYTRiOGMwNjQxYTMxYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDExIDE2OjI2OjA5IDIwMTIgKzAyMDAKCiAgICBDSE5BR0VTOiBzbm1wZDogZml4ZWQgc25tcGQgZXhpdGluZyBzaG9ydGx5IGFmdGVyIHN0YXJ0IGR1ZSB0byBpbmNvbWluZyBzaWduYWwuCgpjb21taXQgYTU3MDIzOGQ1OGViNWE5OTZiNTZmMDFhMjdhMThkZjZmMzdkMGY2MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDExIDE0OjIwOjI1IDIwMTIgKzAyMDAKCiAgICBNb3JlIHByZWNpc2VseSBkZXNjcmliZSAtYyBvcHRpb24uCgpjb21taXQgZTNiY2Q4N2M3MmZjZWE3NzA2ZTg2OGI1YWNlNzUyOTYwOTNmNzQ5NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA5OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGQ4MTNjZTJlZWVmYzY4MjI5Y2ZjYWYyMDYwMzI0NGNkZDZkMDlkM2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowNzo1MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBmYTdiZDU4MWUzNzgzNjg1ZGIzOWM5YjRlYWY4NDdiZTVhYzg2ZmQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTM6MTAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCAwNzM5ZTIzODJkMzExNDZhY2EzMjA1MjQ0Y2Y3MDc4OGI0MGE0MjhkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTE6NDUgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCgpjb21taXQgNTEwOWFlNzdiNmMxZDU0OWQ5MWUzMjgyN2Y0YTJjYWMwNTM4M2Q1OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUwOjEyIDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMyCgpjb21taXQgMTMxNDI5ZTcwNjJmYmFhNjViODJhZmZlZDFmYjkyZGYyYzBjYzgxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgMWZiZmU1ZWUzYzQyODczNDVjNTE0NjI3NzVmMzllMWJkMjczNWUyYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjI4IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMgoKY29tbWl0IDFjODExMGIzM2I4MTA1Y2E2MTkwOTQ1YTM1ZmU3YWU5MDMyNTJkNjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMTozOCAyMDEyICswMTAwCgogICAgQXZvaWQgcGVybCB2ZXJzaW9uaW5nIHByb2JsZW1zIHdoZW4gc2V0dGluZyB1cCB0aGUgYnVpbGQgZW52aXJvbm1lbnQKCmNvbW1pdCA1MDhlY2UxNmU2ZjZmNDk1NjJkYTIwNDc5MmFlMDY0NDI2OTk5NGQxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjA6NTggMjAxMiArMDEwMAoKICAgIEZpeCBoYW5kbGluZyBvZiBkaXN0L3JlbGVhc2UgbWVyZ2UKCmNvbW1pdCA1YjhhODU0N2IxYTQ3ZDJmNWIyMDdmNDhmMjQ5NmU0MjQxZDkwMmM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MTA6NDggMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA2YzMyOTE0YmYyOGQ2OTVkZjM0OWRjYTI2OWU0ODhiNTAxNzAwMzE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDc6MjIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCA5ZjVhODJhNWFmZGJiM2RhZWIyZmQ0MzdhMzA5ZjBiOGQzNTdjZjRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDU6MzkgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAzOTIwM2YyOTQ3N2EzYmVkZjAxMmQ0MTEzNWQ4YWJkNmJjYWQwOGIxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NTQ6MjcgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKCmNvbW1pdCAxN2U3OWVmMGZhZDc5NjA5YzViYTJmZWI0ZThiOWViNWQ3ZGI2ODg2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCA1ODIxYmU1YmJiNDAxOGRlZDI4MmZiYmJkNDgzMGNmMmVlYWRkOWUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDU6NTkgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMyCgpjb21taXQgM2YyMTExZGU2NzMzYTA0ZTEyZDkxMGQzMDZhMzRkNjcxZTAwODc2MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgY2NmOGZmMmM0ZGI2MDEyMmQ0MTMwMmU0YWViNzAwZTBiODY4MTA1ZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDI4IDEwOjE4OjQzIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNTI2NTk5OiBEb24ndCBoYW5nIG9uIHJldHJpZWQgZmFpbGluZyBTTk1QdjMgcmVzcG9uc2VzCgpjb21taXQgYzgxYzg0ODM5OTA5MTFmNDc0MzVkMzAwNTI1NWQ5MWMzN2FiOTJiMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDk6MjYgMjAxMiArMDIwMAoKICAgIEZpeCBCU0QgdGhhdCBkb3dubm90IGFsd2F5cyBsaWtlIElQX1NFTkRTUkNBRERSIC0gc28gcmV0cnkgd2l0aG91dAoKY29tbWl0IGZmY2UxZjJkYzJmOGIzMWFiZDAxZjkzYjI2ZGE3OGY0NzI2YTFlNjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjAzOjU4IDIwMTIgKzAyMDAKCiAgICBGaXggT1MgbWlzc2luZyBNU0dfRE9OVFdBSVQgKEFJWCkuIEJhY2twb3J0IGZyb20gNS43Cgpjb21taXQgYzU3NTIxNjg1MDE4NWI1NjQ1NGRhZDAyNTNlMzE2NDk3OWUxMzUxMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTM6NTY6MDEgMjAxMiArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGluY2x1ZGUuIEZpeGVzIFNJR1NFR1Ygb24gRnJlZUJTRDkgeDY0Cgpjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjU0OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKCmNvbW1pdCAzMmMxNjg2YjY3ZGM4NWM0YTE4OTU3NjM2MzA2NTYwOWRmZWQ1ZTYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTI6NTYgMjAxMiArMDEwMAoKICAgIEF0dGVtcHQgdG8gbWFyayByZWxlYXNlLWNhbmRpZGF0ZSBicmFuY2hlcyBhcyBzdWNoLgogICAgT21pdCBmaW5hbC1yZWxlYXNlLW9ubHkgc3RlcHMgd2hlbiBwcmVwYXJpbmcgcHJlTi9yY04gcmVsZWFzZXMKICAgIChSZWxpZXMgb24gYSB0d2VhayB0byB0aGUgTWFrZXJlbGVhc2UgcGVybCBtb2R1bGVzKQoKY29tbWl0IDRjNTYzM2YxNjAzZTRiZDAzZWQwNWMzN2Q3ODJlYzg5MTE3NTljNDcKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBmcmVlc25tcC5jb20+CkRhdGU6ICAgTW9uIE1heSAxNCAxMTo0MDowNiAyMDEyIC0wNDAwCgogICAgTkVXUzogc25tcDogQlVHOiAzNTI2NTQ5OiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKCmNvbW1pdCA2NWRkODNjMjI1NWVlNThlZGJmMGUyNTg2M2U1NWI1OGE0MTEzNjc5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDozMDo0MiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGFjNGJjNjVlMjkwOWYzYmQ4NWYzMmYwNGI1MDRmYTY1ZDJmNjQ1NTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjI4OjA2IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMxCgpjb21taXQgYjc0OTk0ODY0MTk1MTE5ZWRiNmUxOWM4NTE0N2ZhYzAwYmNiOTNlMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MTM6NDYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMxCgpjb21taXQgOTEzNTAwOTJjNDZlNjZkMDZkNzQxNDNmNDgxNjQ3M2RiNGQyNTE2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTk6NTY6MzMgMjAxMiArMDEwMAoKICAgIE1hcmsgdmVyc2lvbi1zcGVjaWZpYyBjaGFuZ2VzIF9iZWZvcmVfIHB1c2hpbmcgdG8gY2VudHJhbCByZXBvc2l0b3J5Cgpjb21taXQgNzI0MWFjY2Q3MGI4MmQwZmNkNDRkNWE1MjM4YjJlZTk0NDU5MDBkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTM6MTcgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCA3Yzc5NmExNWExZDFiYjg1ZmVlYTk0MGJkNGUzNTE2ODc3OTIwOTE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MDo0OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDA3ZTI2OGJmYjY0YjBlYzY0NWIzZjdlODcyNjY5ODRmOTIxN2NmMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjQ0OjM3IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMxCgpjb21taXQgMTZlYWFmNmMzYmExNDU5NmNhOWVmYWY0YjExNGYxYjcwOWY0MmI2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjk6MDMgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCBjNzI5NDY5ZWYxMjE1NDkzMGNmOWQxNTk2N2UxNjE4NmZiNDQ1ZjMwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyNzoyMCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzEKCmNvbW1pdCAxNDI1NzFkM2NlYTA4ZjBjMDcyZDI0YzFkMzlhNDNjNzQ0NmY4Y2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCBlYmE4NmI2ZjdhZmYyNjFlZTBlNjEzMzRkZjcwZGU3MTU2ZTVjM2NiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCA1YzBmNjRkNmRiMmI1OTNmN2NjMGVkMmQ0ZjU1YjdjNTkyYjc3NGE4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoyNToxNSAyMDEyICswMjAwCgogICAgT25seSBvdXRwdXQgY3B1IHdhcm5pbmdzIG9uY2UuCgpjb21taXQgZWU1OGU0ODI3YjlmYTE2ZTY2MzVjYTAwM2U4YTRmMTFkY2I1ZmI3YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTc6NDIgMjAxMiArMDIwMAoKICAgIEZpeCBzcGVsaW5nIGluIGVycm9ybWVzc2FnZS4KCmNvbW1pdCAwM2Y0ODVkZjIyZjIwZTE0OWNmYWU5NGM1N2NiODJmZWVjYjVkNzRiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMjoxMSAyMDEyICswMjAwCgogICAgTm90IGFsbCBMaW51eGVzIHVzZSBycG0gKGRlYmlhbi91YnVudHUgY29tZXMgdG8gbWluZCkKCmNvbW1pdCA5MzA4MzgyMjRmNzgxNjk2YmQzNTIyNWYyMjU2OTM0NzQxNmYxYjE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMDoxNSAyMDEyICswMjAwCgogICAgQ2hlY2sgbmVlZCBmb3IgLWxtIHRvIHVzZSByb3VuZC9leHAKCmNvbW1pdCBlNDFmYmFmZjE4YWM5MDk1Y2Y0YTczOWEwNmVjMzlhMWE2Y2NmZGMxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgOSAyMDozNTozNSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUyCgpjb21taXQgYTc5MTQxYTQxOTk1M2QwMTBhNjk4OWU4Yjg4ZjRkZjEyNzM5NGQzOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDk6MTk6MjYgMjAxMiArMDEwMAoKICAgIEhlYWRlciBmaWRkbGluZyBmb3IgRnJlZUJTRCxPcGVuQlNELERyYWdvbmZseQogICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcwoKY29tbWl0IDljYThkOTM5YWIzOTMzMDZhMWQwZjE0NmM5Y2I3MGVhMGNiMTlkNDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGNlY2Q0ODY5ZGViNjhmM2Q0YzcxZTc2OGQ1YjQwZGQ1NzY0NDY5MjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGExYTQ1MTNiZDNlNGU2MTQyMDBmNmRiNWEwMmY2MWQ2YzhlZWZiMzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTo0Nzo0NSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrcG9ydCBvZiBnaXQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgOWJkYmNjYTEyMmMzN2RhMzA0ZmM2YWE2OTM5NzI5NDc1ZjkwZjVmZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjMwOjQ5IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2stcG9ydCBvZiBHSVQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjQxOjI0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ5NTY5NzogU3RvcmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0IHRhYmxlIGNoYW5nZXMKCmNvbW1pdCAxZjc1ZjM3N2QwZGIwMTc1NGMwYzE2MWRjNDQzNzMwODFiZWVmNTIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MTQ6MDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFBBVENIRVM6IDM0ODkzODc6IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQoKY29tbWl0IDNkNzJjOWU3OGYyYWQ4MTdjOWQxZDgyOTc3MzI3YmJiMjBkNjNhYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTowNjozMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzNDg3ODY3OiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQoKY29tbWl0IDhhOWI1NzI5MTQ1M2NiOGFlYzI4ZTc2NmM1OTQ3MDFlZDE5YzRmYzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIxOjAzOjQxIDIwMTIgKzAyMDAKCiAgICBGaXggZm9yIERyYWdvbkZseSAzCgpjb21taXQgZTVjOWEzMmY3OWVhYzJlODU1MjdjOWNmMDUwODdjZGFlOWIzNWE2YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjA6NTk6NTMgMjAxMiArMDIwMAoKICAgIERyYWdvbkZseSBuZWVkcyBfS0VSTkVMX1NUUlVDVFVSRVMgdG8gY29tcGlsZSBpcHY2IGNvZGUKCmNvbW1pdCBjZDQzYmMwOWEzOWJkOTdmZjVlNzE5YTJjZTIzMmNlNDI0NjAwYTY1CkF1dGhvcjogRGF2aWQgSW1ob2ZmIDxkaW1ob2ZmQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjQ3OjE3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzNTEwNDU0OiBBbGxvdyB0aGUgdXNlIG9mIDAuMC4wLjAvMCBhcyBhbGlhcyBmb3IgZGVmYXVsdAoKY29tbWl0IGUyZmMxNWY5ZTVhNmUzZTM2YmU1ZjQ4OTYwMWNiZjZiZjczMTkxN2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjIxOjM4IDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgNDMyZmUzZGRmNTRmMmM5OGY5MzY5NTk0NjljYjliMDE0ZDU5OWYwNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MTA6NTIgMjAxMiArMDEwMAoKICAgIFJlcXVpcmUgcGVybCB0byBkbyBwYXNzX3BlcnNpc3QgdGVzdAoKY29tbWl0IDM3ZDI3NzBjZjUwYzk4MDIzZWViYTkwZTI1ZDM3MmJmZjczMTZhZGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXIuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDY6NDAgMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA4NmE5NDhkODY5MWU4ODFkNTU1OTFkY2FiZGRjMjczOWNlNzJiMzBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUBuYmEtbGludXguc2Iuc3RhdHNiaWJsaW90ZWtldC5kaz4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjAxOjM3IDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBmaW5kIHBhc3MgaGVscGVycyBmb3IgdGVzdGluZy4KCmNvbW1pdCA1ZDc0YzAxMjQ1NTIzYTlkOGRiMWVkYTI3ZDFlZmFlMmViYzEwNGZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCgogICAgTmV3IE1JQjogVlJSUFYzLU1JQgoKY29tbWl0IDViMzhmMDYyYjk5YjZlZjM2NzA4ZTJjN2RlNDk2NWEzMTkyNjEyZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKCiAgICBGb3Igc2FmZXR5LCBzaXplb2YgdGhlIHJpZ2h0IHZhcmlhYmxlIGluIG1lbWNweQoKY29tbWl0IGU1ZjgyNzgyZGEwNWVmYTdjMGU2ZGMyYmY1YTQxZWUxMTg2OGY0NjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXggZm9yIGhyU1dSdW4gZGF0YSBmb3IgRnJlZUJTRAoKY29tbWl0IDgzMjc1NjVlODIzMjcwZDEwYTQ1MDQ1NjhlZGJlNWI1YWUzMjNhNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCB2YXJpYWJsZXMgZm9yIE9wZW5CU0QvTmV0QlNECgpjb21taXQgMTcwZjZmMDI3YmY0ZjkxNzRiNzA3MzUzMGRhNGQwN2Y0MDBiYmE1OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAoKICAgIE1vdmUgZGVjbGFyYXRpb25zIGluIGZyb250IG9mIHN0YXRlbWVudHMKCmNvbW1pdCBkYmI0NTczYjY5ZmFlODVjZGM5MzFiMjg5MmI1Y2U0ZTViMTZiMzIxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBrZXJuZWxfbmV0YnNkIGZvciBOZXRCU0Q2Cgpjb21taXQgZjExNjgxZjE1YWFkN2Q5YTUyZmEyOTgxMmVjYmI1MDdmMWI3ZmUyNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKCiAgICBDaGVjayBmb3Igb2xkIHRhcmJhbGxzIChhbmQgdW5wYWNrZWQgZGlzdHJpYnV0aW9ucykgYmVmb3JlIHN0YXJ0aW5nLgogICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKICAgIG9uIHRoZSBjdXJyZW50IHRyZWUsIGFuZCB3b3VsZCBkZXNjZW5kIGludG8gc3VjaCB1bnBhY2tlZCBzb3VyY2UgdHJlZXMuCgpjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjMyOjEzIDIwMTIgKzAwMDAKCiAgICBEb24ndCBydW4gIm1ha2UgZG9jczsgbWFrZSBtYW5jcCIgaWYgdGhlcmUncyBubyBNYWtlZmlsZSBwcmVzZW50Cgpjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjI2OjEwIDIwMTIgKzAwMDAKCiAgICBBbGxvdyBkaXN0cmlidXRpb24gYXMgcGFydCBvZiBub3JtYWwgTmV0LVNOTVAgcGFja2FnZXMuCgpjb21taXQgYmRjY2M4NzU3MTAyOTVhYWNmNTBmNzFlYjFjMWQyZWU5N2YzMzZmZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMjA6MTA6NTggMjAxMiArMDEwMAoKICAgIERvIG5vdCBkZWNsYXJlIHRoZSBsb2NhbCB2YXJpYWJsZXMgZm9yIG9wYXF1ZV9zcGVjaWFsX3R5cGVzIHVubGVzcyB0aGF0IG9wdGlvbiBpcyBzZXQuCgpjb21taXQgYjgwYTY3ZGEwNTJhZGNhMWI1YTY0NGRiODNhNzgyZTE1YzIyMzdjMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMTk6NTA6MDMgMjAxMiArMDEwMAoKICAgIENoZWNrIHRoYXQgdGhlIGRhdGEgZXhpc3QgYmVmb3JlIHRyeWluZyB0byByZWFkIGl0Cgpjb21taXQgYWFlZGQ1OWNjMmRhNzAxNTI3ZGMyZDI2MWQ0ZTlmODVmMTZlNzUwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAoKICAgIEFsbG93IG1ha2UgdGVzdCB3aGVyZSB0aGUgc291cmNlIHBhdGggY29udGFpbnMgdGhlIHN0cmluZyBOZXQtU05NUCB0byBzdWNjZWVkLgoKY29tbWl0IDEwZmU2YjgzMzI0YWQzN2QxOGI5MzdjYzhjNmRlOTRkZTUzNGQwMzUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEzOjA0OjA3IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGUxMTIyZWRjMWE1ZmU3OTc2YjA2NTA0NDEzNGQzOWU3ZGI1OTg1ZWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjQzOjE5IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IGE2MTNkM2E4MzQ5MTIyMDZkMWJhNTk3MWU0NDFhM2VhNmIzNmFmMjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciA4IDEyOjMzOjAzIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucHJlMQoKY29tbWl0IDhlNjk3NDJmMTQzZTRmYzExMTk2ZTViMmVkNjZjOGY3ZjUzZmQwMmYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjIxIDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTEKCmNvbW1pdCBjNGUwMGI4YzNlMTAxMGNkY2FiNWU2YzAyZDYwZDc1ZGY5YzZkY2YyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDowNSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAzOTQ5MDEwNGEzYWI1ODIzNWFhY2UyZjlkODcxYzI2NmRjNDQ4NWVlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1OTozOCAyMDEyICswMTAwCgogICAgaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UKCmNvbW1pdCBjZTg1ODMyOTMyY2NkOTE2YzQyMzE5MTE0YzQwODg1YTQ2NmE5ZDBlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU2OjQwIDIwMTIgKzAxMDAKCiAgICBNb3JlIGZpeGVzIGZvciBTb2xhcmlzIHNoCgpjb21taXQgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNTowODoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzIGluc3RlYWQgb2YgMC4wLjAuMC4gTWFrZXMgdGVzdCBUMTYwc25tcG5ldHN0YXQgcGFzcyBhZ2Fpbi4gRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YS4KCmNvbW1pdCA1MTg5MTdlOWYzOWY3YTlkM2MzYmYzYTg2NWU4YWMwZTMwMjZkNjAwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE0OjA0OjU0IDIwMTIgKzAxMDAKCiAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgMjY1MTkwOWNjY2VhYmZjZmFkYWY5NDJjMDI0NTBlMjhmZTgzN2RjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBOb3YgOSAxMjowNDowNCAyMDEwICswMDAwCgogICAgUGFzc2VzIG5vdyBvbiBNaW5HVyB0b28uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NjUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MjAgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUgaWYgaXQgaXNuJ3QgbmVlZGVkLgoKY29tbWl0IDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMDk6MjI6MzEgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZSBvcHRpb25zLgoKY29tbWl0IDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MzkgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgNDAwMjJhNjk3OTU4MjU5Y2NmYmIzZmVkNDRlYjNjNDcyZjVlODM3ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgNCAxMDozNzo0MSAyMDEyICswMTAwCgogICAgU29sYXJpcyBzaCBkb2VzIG5vdCB1bmRlcnN0YW5kICJ0ZXN0IC1lIgoKY29tbWl0IDc3M2FmMGM0MmUwNzdiZWJkYWVjZjFjMGNhZjM5MzI4NWE3Njg4ZjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTc6MTk6MzAgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIG5zcm9sbHVwIGNvbXBsaWNhdGlvbnMKCmNvbW1pdCBlZTcxMDQ5YzNlMjFjMWQwZTM0MjQyOTcxMzY2NTJiYmUwZTM5ZDg1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE2OjQ5OjQxIDIwMTIgKzAxMDAKCiAgICBtaWJncm91cC9pY21wLmM6IGFkanVzdCBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIG9uIEJTRCdzCgpjb21taXQgY2U5NjAwMzYxZTY2NWRkZTE3YWY5ZDhhYjE2ZDdjZTg1ZGMwNTY0MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozOTo1NSAyMDEyICswMTAwCgogICAgZG90M1N0YXRzVGFibGUgaGFzIGJ1Z3MgOi0oCgpjb21taXQgZGZmYWNmNmZhMDc1NWUxNzAwY2JhYzI1Yjg0NDE4NWFiZDgwN2EwYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozODoxMCAyMDEyICswMTAwCgogICAgcGFzc3BlcnNpc3QgdGVzdCBuZWVkcyAvdXNyL2Jpbi9wZXJsCgpjb21taXQgMWViNDc0NWIyM2NjM2E4Mzk4NjRlN2Y2ZWEyODM1NWIwNTY2ZWI2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAvdXNyL3hwZzQvYmluL2dyZXAgdG8gdW5kZXJzdGFuZCAtcQoKY29tbWl0IDk5NTRiNGI3NDFmZDhjNjNkNjEyOGJkMDUyNzI5OGM4ZTRlOTg5ZmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzQ6NDUgMjAxMiArMDEwMAoKICAgIE1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBwcm9wZXIgc3JjZGlyIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoKY29tbWl0IDQ0YWNkNmMyODVmYjU2MTRiNGM5NjExYjFhYmRlY2E5ZGQyOGU0YmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MTI6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBvZiBtaWIgbW9kdWxlIGZzeXNfZ2V0ZnNzdGF0cwoKY29tbWl0IDFmYTFmZWUzNjkzZjY3YjgyMDIyMzgwNmIzZDczYWZkNGM1MGVjMTgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDIgMDE6Mzc6MjAgMjAxMiArMDEwMAoKICAgIFNpbGVuY2UgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDkzMjYzYjk4YTVkYjM0NGNmMmM0ZDQ4OWM0Mzk3MWU3YjI5Y2RiMDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEzOjM3OjIwIDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDVhMTc1NDI4Yjk3M2QyZWE4NTUzZTI5ZmVjZjk0Y2YxNTY2YWE4NTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ4OjE4IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDM2NDI3NmExYzVhYTY2Y2FhMjNlYjViN2YxMTFmZGViNWFmNzFmYTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ1OjEwIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucHJlMQoKY29tbWl0IDczNTk4MzQwMTcyZWZmNzU3MjlhNmQ1NzE5MmI4MTcxZDViYmYwMGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjU2IDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnByZTEKCmNvbW1pdCBmMzIxNDQwMjY3MmNhMTk5ZmQ1MzFlNjYxMjJiZjk2YzRkOWE0ZWI3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0MjozOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCBiNzEwOTY0NmI5NWE3MDcxM2QxYWQ5OTFkNDFiY2NkNTdjMGJiM2ViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA4OjQ4OjQ4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgaW50cm9kdWNlZCBpbiA1LjYKCmNvbW1pdCA0MzJjYmI3YTU1MDFhYjkwZDY2ZDBhODNlNzMxZTczNDNiYzA0YjM3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEZlYiAyNSAxMDoxMzoxNSAyMDEyICswMTAwCgogICAgQ29ycmVjdCB0eXBvcwoKY29tbWl0IDZhNmM5YmJjNzU4NGYxOTZhMTE4NWNjMTkzNTIwNGYxMjA2ODExZWQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgRmViIDI5IDA4OjU1OjM1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMKCmNvbW1pdCBkNTE1ZTJhNmU0YzJhMWM0ZDg0NzM0Y2M3YjJkMGIyZmM1YTg5NGFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTY6MjEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDg3OTE5OiBGaXggY29tcGlsYXRpb24gd2hlbiBjYWNoaW5nIGlzIGRpc2FibGVkCgpjb21taXQgYWY4MzY4ZWQ4ODk4YTc4ZDA4NjhiNDdhZjQ2YmM5ZGIwN2QxYzc2NApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjUwOjU2IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDE0NzczOiBFbmNvZGUgaW50ZWdlciB2YWx1ZSB1c2luZyBBU05fSU5URUdFUgoKY29tbWl0IDE5ZTI3MTU4MDdmZTA2ZmQwYmFlZGY4ODE2NTAxMWFlZTkzM2U3NTUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNDowNTozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogbWFuOiBCVUdTOiAzNDkwNzA4OiBDbGFyaWZ5IHVzZSBvZiBjb21tb24gY29tbWFuZC1saW5lIG9wdGlvbnMKCmNvbW1pdCA2NWY3OTYyZjkzMmM5Yjc1YzViYmJiMDQ3ZDFlMjZhZTYwOTc4ZTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTI6MjM6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDg5NjMxOiBGaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBtb25pdG9yaW5nIGZsYWcKCmNvbW1pdCBhYzE2NjA1MWI2YTA5MmRkNGE1OTQzMjZlYzg1ZTJmNjk5YjYyNTQ3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTE6NTc6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEJVR1M6IDM0NzQ1OTA6IERvbid0IG1hdGNoIHVuZGVyc2NvcmVzIHdpdGhpbiB0aGUgc291cmNlIHJvb3QgZmlsZW5hbWUKCmNvbW1pdCA4NzliZjcwNzlkMzRmYTQ2ZjZmY2Y1NGEwMWM4NTAwYmVhZWNlNTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6NDQ6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCgpjb21taXQgZWVkMGJjYmM0M2ZlYTE4MjU5ZjBmNjNiMjA4MWI2ZDEwNTM1YTA1MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDA5OjI3OjExIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCBiYWJ5LXN0ZXBzIHdoZW4gY29tcGlsZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQuCiAgICBJbnNwaXJlZCBieSBidWcgIzM0NTQxNjgKCmNvbW1pdCBjNDI3NmI2MjMyYzI5MTQ1YzAzOTg4NGU2YjVhNmI2ZGE0YjkzODM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6NTQ6NDUgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydCAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgMDFjOTMwZWRjYzI1NzAwZDZiNWZiMDM3NmY1NWEyNjQyNWUxM2ZiMApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjE3OjIyIDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKICAgIChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCAyYjdmMTM0OTUyMjg2MzVkODE2ZTU4YjIxNzRkYzEyNGRkMGNmMzlmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCgogICAgc2V0IE1FUkdFX0FVVE9FRElUIGJlZm9yZSBtZXJnaW5nIHRvIGF2b2lkIHRoZSBmdXR1cmUgZ2l0IDEuNy4xMCBmb3JjZWQgbXNnCgpjb21taXQgZTFiOTEwYjBiZTkzNDM1ODZhZTllZGJhNmY0NjA0MGFmMzE1ZmNkZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6Mjc6NTQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBpbml0X2FnZW50KCkgKyBpbml0X2ttZW0oKTogUmV0dXJuIGFuIGVycm9yIHZhbHVlIGluc3RlYWQgb2YgaW52b2tpbmcgZXhpdCgpIGlmIGFjY2VzcyB0byBrZXJuZWwgdmlydHVhbCBtZW1vcnkgaXMgZGVuaWVkCgpjb21taXQgNDYzZWVkMjEyMGY5ZDE5MWJjMjI2NzM0OTZhNDllODE3NDY2NGU0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6MDM6MzEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBzeW1ib2wgTkVUU05NUF9FWElUX09OX0JBRF9LTFJFQUQKCmNvbW1pdCBkODk3OGVjYzgyMTFiZTdjMWU3OTA1ZjFlMjE1YmIwNmRlZDI2NmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMjozMjoyNSAyMDEyICswMTAwCgogICAgRml4IHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jIGZpbGUgaGVhZGVyCgpjb21taXQgYWE3NjZkMTk2ZTUyODdmNmNhNzliNThhMzQ1YjAyNDI2MGFiYTM1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTc6MDc6MTMgMjAxMiArMDEwMAoKICAgIElGLU1JQjogZG8gbm90IHRyaWdnZXIgdW5kZWZpbmVkIGJlaGF2aW9yICg+PiAzMiBvZiBhIDMyLWJpdCB2YXJpYWJsZSkgd2hlbiB1cGRhdGluZyBhIGNvdW50ZXIgYW5kIGlmaV9pcGFja2V0cyBpcyBhIDMyLWJpdCB2YXJpYWJsZQoKY29tbWl0IGMzZmI2ZGQ5ZTZiOTllOTU0MjQ5MzE4ODk4Nzg3MWZjNTAxN2NiM2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDA5OjQ1OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIG9uIHN5c3RlbXMgd2hlcmUgbW9kZV90IGlzIHVuc2lnbmVkCgpjb21taXQgYTZkYjIzOTk0NWUxOTVkZTVhOTBmYTE4MzcwMGIyN2E2ZWNiMjhkMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgNyAwMDoxMToxNCAyMDEyICswMTAwCgogICAgRml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGZyb20gcmVjZW50IGRlY2xhcmF0aW9ucyBwYXRjaAoKY29tbWl0IDBmYmJiOWE5ZTI5MDZhN2FmOTU2OTU3MDYxZDQ4NTg3NDQ2MmFlYTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NDM6MDQgMjAxMiArMDEwMAoKICAgIERvIG5vdCBtaXggZGVjbGFyYXRpb25zIGFuZCBzdGF0ZW1lbnRzCgpjb21taXQgZjMwOGQ1YmFmYjA1ZDc4ZWQ0MDMwYzRlY2ZmMzI0YjZjYmRhNjgwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQ2ZjBmYzFiN2ZjMjZhMjI1NzYzYmM2NWNjYTUyMGExYzU5ZjAyNTEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NTQ6MzIgMjAxMiArMDEwMAoKICAgIHNlbmRtc2cgZG9lcyBub3QgbGlrZSBJUF9TRU5EU1JDQUREUiBpZiBhZGRyIGlzIElOQUREUl9BTlkKCmNvbW1pdCBkZWJhYzQ5OGZlODQxMDExMDEwN2EyZmU2NGY4YWZiNzQ4ZWRhYTA3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAxNjo0ODowOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCgpjb21taXQgYmJkNjdmNjM1MzBmNWVmMGJmYzk0OGZjNThkZmU2YTkzZjhmODY3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQyYTY2YWVmZjI1YjllOWVmNjM1YTQwNGFkMmY1MjEyZjllOGNmMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDc6NTQgMjAxMiArMDEwMAoKICAgIFJlbmFtZSB0d28gZnVuY3Rpb24gYXJndW1lbnRzCgpjb21taXQgM2ZlNzJiM2I5OWI3ZTRiMmI5ODIzNjNkZmM0ZjJkOGQxM2Y0MDU5MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMzo0OToyMiAyMDEyICswMTAwCgogICAgQ29udmVydCBzbm1wX3NlbGVjdF9pbmZvKCkgZG9jdW1lbnRhdGlvbiB0byBEb3h5Z2VuIGZvcm1hdAoKY29tbWl0IGU5ZGIyNjZhZTQ4ZDA1YTdhNmNiNWQ3MWI0YmRlYTdhZDgwOGVmNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTc6NTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKCmNvbW1pdCBkMDgwNDRjYjllNTcwMmZiZjU0OWUxNDQyNWY0Mjc5NDI1OWQ4YTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDA5OjM4OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQoKY29tbWl0IGEwNWMyN2MyNzExY2I0MTU4MmEzYjRjMzFlMzhiMGU5MzUzMGI2MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTE6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCmNvbW1pdCA5MTBkN2IwZDk5MTgzNjA5Yjk1MjliMDRjM2YyOTMzMGViNjYxMDIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjM4OjEyIDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSBieSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKQoKY29tbWl0IDQzYTgzZjZjNmE5NmNjMjMxNmI3MGVlY2FjZjEyN2ViNjkxM2M3YTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTk6MTUgMjAxMiArMDEwMAoKICAgIFVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBpbnN0ZWFkIG9mIG1lbWNweSgpIGZvciBjb3B5aW5nIHN0cnVjdCB0aW1ldmFsCgpjb21taXQgMmZlNTc5ZWZiMWNiM2E3NGY4MjgwM2NhMzIzOTI4ZjZiOGU0YjVjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxNDowNDowMiAyMDEyICswMTAwCgogICAgTWFrZSBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgYnVpbGQgYWdhaW4gb24gbm9uLUxpbnV4IHN5c3RlbXMuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlLgoKY29tbWl0IDg4MWRlNmFiNzM1NTI3N2E1YzExNmEwMDhmYmU1MTMyOTNiMDUwMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTA6MDg6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFJtb24gTUlCIGltcGxlbWVudGF0aW9uCgpjb21taXQgNDYyOTkzM2MwZDNiM2Y5ZjRiYTU4MzUzNGY3OWEzN2ZiOTYzMzgxNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAyMDowNTozMSAyMDEyICswMDAwCgogICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgZTliNWEzZGVlNmY5YWZhYjhiOTBhMjkzOTIwNDA2MzJiMDc1YWQ3YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNjo1Njo1NSAyMDEyICswMTAwCgogICAgVXNlIFNOTVBfTUlOKCkgaW5zdGVhZCBvZiBtaW4oKQoKY29tbWl0IGFlNDUyYzc3YjQxMTEzOWQ2YjU4MDBmZmNmODhkNDhlOWI0NzkyYTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MjM6MzggMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgYzdkMTFmYTAwZjk5OTVkZGI5ZmUzZDQ5OTRhM2U5NzkwZGEyZTE4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToxODo0MCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2NyBwYXJ0aWFsbHkuCgpjb21taXQgMDBmZDYyNzIwZWM0NTRmNWE2OTBkZTRmZWJhMDgyMjNjZmIyYzNmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0ODo0NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBBdm9pZCBjcmFzaCBkdXJpbmcgc2h1dGRvd24gZHVlIHRvIGludm9raW5nIHBlcmxfZGVzdHJ1Y3QoTlVMTCkKCmNvbW1pdCBkOWUyMjlkODFhYmVhZjE5MWVmMmNjYjA3Nzg0Mjg4NWMyMzBkNjIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ3OjQxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgYSBzdXBlcmZsdW91cyBkZWNsYXJhdGlvbgoKY29tbWl0IDFlMmUyYWY2Y2FlODMwZjM4MWU4N2EyNDRkMDI5ZWI4NmJmM2ZjY2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTM6MjA6MzcgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsOiBBZGQgZXJyb3IgY2hlY2tpbmcKCmNvbW1pdCAyNDFhMTQxZTMxZjE2ODRmYzZjZjcwY2M0YTAwY2NlNjM2ZmQzNTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBNYWtlIGNvbmZpZ3VyZS10aW1lIEVWUF9NRF9DVFhfY3JlYXRlKCkgZGV0ZWN0aW9uIHdvcmsgb24gdGhlIDUuNCBicmFuY2guCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwLgoKY29tbWl0IDZkOWQxNGZlYWFhMmQwZmVjNjhiNGQxNTg5NDRkMzJjYjA0ZmYxYmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6MTI6MDAgMjAxMiArMDEwMAoKICAgIFJldmVydCB0aGUgY2hhbmdlcyB0aGF0IGJyZWFrIHRoZSBidWlsZCBvbiB0aGUgNS40IGJyYW5jaCBmcm9tIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IDhhYmU0OWUzMGM5N2M4OTgzZTgzYjQ1YTM1YzcxNmZlOTFmNjZiZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDEgMTE6NTY6NTggMjAxMiArMDEwMAoKICAgIEZpeCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIHRoZSBESVNNQU4gTUlCIGltcGxlbWVudGF0aW9ucy4KCmNvbW1pdCBmOWZiMGE1MzMzNzVlMTRkYzM3MDAyNWEwYjJmYmM3NjFiZjI3YmU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDA5OjU2OjAyIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZyIgYmVjYXVzZSBpdCdzIHdyb25nLgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMuCgpjb21taXQgY2E0YTRmZTI1ZWZkMjcxNGY4ZjE5NjFiOTc4NTY2MTY1NjNmNDJjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMDoyMTo0OSAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogQWRkIHB5dGhvbi9idWlsZAoKY29tbWl0IDEzYWRhNTY1NThiNDRlMjhkMTM1NWMwZGNlMWQ5MjFmMzc0NmQ1NDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo1Mzo0OSAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIiIC0gdGhlcmUgKmlzKiBORVRTTk1QX1BSSW8gaW4gVjUtNisgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkLgoKY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgMmZiOTliZTlhYTg2YTZjYTM0OWI4NmQ0ZWY4YmM3MjZlZDlmMmE4MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU4OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBlNWMzNTU4OWUwYmY0MTZiZmQwMzZiZDQ2OGY0MmFhZWFiMjVlNzg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTU6NTYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1MToyNiAyMDEyICswMTAwCgogICAgRml4ZWQgZXJyb3IgaGFuZGxpbmcgaW4gaW5pdF9pY21wKCkuCgpjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA4OjA5IDIwMTIgKzAxMDAKCiAgICBNYXJrIHJvd3JlcV9jdHggYXMgZnJlZWQgc28gbmV4dCBpdGVyYXRpb24gYWxsb2NhdGVzIG5ldyBvbmUgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBmcmVlZCBvbmUuCgpjb21taXQgYWY5YWJkNTNjMjMzN2M5MGE2OTFhN2IwNDRmZjNmOTdjMTAwMzE2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA1OjEwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBjZjk0NjVmNTQxODFlNjJlMjFhOWIxMDIxOTEzMTEwN2EzZDJlYmY2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDQ6MDYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDc4NzFmMmIwOWI4YjUyZjM0YTllNTc3ODQyNjY0NTkwNTMxNjViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMjo1MCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgN2EzN2YzM2QzMTBjOTU5ODYwN2JjMzIzZDliZGJmOTFhYWY3MmM5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAwOjUxIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzZTQ1ZjcwMjYyNDllNDUzNTBlZGFhYzg1MzM3NDIzYWEwZTk1ZDhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDYxOTM2NzYyZTY0MWMxOGRiNzVhYTUxMjVhMzNlNzc2YzY3N2FkYzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxMToxMzozOSAyMDEyICswMTAwCgogICAgRml4ZWQgZnJlZWluZyByZWdpbmZvIHR3aWNlIG9uIGVycm9yIGluIGEgdGVtcGxhdGUgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLgoKY29tbWl0IDQ5NjQzNzQzMDQxNWZiYWZlYjFjY2Q0Nzc0ZjFjYTAwZDYyN2VhMWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjA0OjEzIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW50cm9kdWNlZCBvbiBWNS42IGJyYW5jaAoKY29tbWl0IDViNGEyNGNkY2VlMWJjM2Q4MjYzM2NjYWZlYjk2ZmNlOTUzNDljNTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIyOjI3IDIwMTIgKzAxMDAKCiAgICB1bml0IHRlc3RzOiBmaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IGNiZjFjOTFiYWY3MTkxYmU1ZmEyN2Q4MWJjZjg3MTQzMzFhMmMxMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjQyIDIwMTIgKzAxMDAKCiAgICBVc2Ugc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZSgpIHRvIGZyZWUgYSBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QuCiAgICAKICAgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYuCgpjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6MzEgMjAxMiArMDEwMAoKICAgIEhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDNhNzZiNDNlMTFmZmZhZGE2MzJmY2NiODQ4YWI1MDBlODc2YWQ0OGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE2OjIxOjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEF2b2lkIHRoYXQgYW4gU05NUCBzZXQgd2l0aCBVc2VFbnVtcyBlbmFibGVkIGNhdXNlcyBhIHNlZ21lbnRhdGlvbiBmYXVsdAoKY29tbWl0IDg0ZGVjOWZhOTJiMGFhMmQ1OGViNzAyMDMzMGY0Zjk4ZTUxNTQzMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjM4OjIxIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggbW9zdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDM4Y2YyMThjM2YxYTcyNzc4NmUyMjdhNWQzZmIxODZmZDBmMWExNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDo1MDoxMyAyMDEyICswMTAwCgogICAgRml4IGEgdHlwbwoKY29tbWl0IDQ1NDEyMjI0NDEyMmJmZGI2ZjY3Y2FiMzEyNTZkN2I0NjM3MmU5ZTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozMDoxOCAyMDEyICswMTAwCgogICAgRnJlZSB0bVN0YXRlUmVmIG9uIGVycm9ycy4KCmNvbW1pdCAwMTE5MDIyZGFhNTljNzNiZmVjMGRhMjM4NmQwNjI4ZjE0ZTZkYWI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MDk6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgZmluZ2VycHJpbnQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgpjb21taXQgMGU4NGNkMzAzYTA4MjY3ZGVjNzhmNmQ4MWM5YmIwN2UzZDgzYTExZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ4OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjNkYzg0NmE3OTQ5Y2U2OTdiM2UyOGM1NDNkYzExMDVlNjNhMjI1MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA4OjI4IDIwMTIgKzAxMDAKCiAgICBGcmVlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50LgoKY29tbWl0IGNlMWYyODRhNjNlYjgxNjQ0YjNlMzI2MDZjYmUzOWI2N2UxZGZmMmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozNzowOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDdlMjE0MTNjYTZmMmVmZDdhM2FmYjYyYzYyYjY0NDg4MWI4YmQxZTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0NjozMCAyMDEyICswMTAwCgogICAgUHJvcGVybHkgYWxsb2NhdGUgYW5kIGZyZWUgZW5naW5lSUQuCgpjb21taXQgMzRjOTYyODgyNjA3YzM2MzhhMmZhMjVhMmFjNTMxNDkyZDcxYzc4NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjM3OjI1IDIwMTIgKzAxMDAKCiAgICBGcmVlIGxvY2FsbHkgYWxsb2NhdGVkIHRtU3RhdGVSZWYuCgpjb21taXQgZjU3YWU1MzFkYzU2NThhYmNkNjViMTYyNzYxNTUyNTIzOGQxNmQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjIwOjI0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTM2YmM1NzU1NmMzMTQxNTYxZWE0YTE5NDgxMGIxNjI5MGE2OTFlZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjE1OjQ3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBpZiB0aGUgZnVuY3Rpb24gYWN0dWFsbHkgZG9lcyBzb21ldGhpbmcuCgpjb21taXQgYTA3NzdkMzA3ZGJjYWYyMTllZTAxODRhMGZiYWI5ZDRlNWQ2YWEwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjAxOjQ1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOGI5N2E3MWM4ZTc5NTk0MjhlYjRkNGU4ZDkwZTkwOTZkNDNmZjA5ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjU3OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmMxNTA3YzIyMDMwNTQ5YWU2NjBjMGUyMTFmYmRjNWM3NWVjNWM1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUzOjQ3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjVmMmI3YmNkNGZlMDM5MDZhYTFhMTE1YWI2MGE4OWI4YWU5MzNkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUxOjM2IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGVzIG9uIGVycm9yLgoKY29tbWl0IDBlNTJlNGY2NmQ0NDc2NmJlYTM3NDczNTU2Yzc4ZTUyMTliOTU0NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0NTozMyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0MjoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDc0OGRhODRiMWZkNjU0ZTMzOGJjNzAxZThmOWU1ZGEyMjkxODdmMWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTozMjowNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGViMjE3MTQ2ZmQ1NDAzNmVhNDIwMmJmZWY3OGJiZjc3NGQ3ZTM4MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToyMzoxMCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDliYTM4ZWVjNjYxMzhlYzFmNjEzZWE4ZDA0ZTE1ODEzMGM3MTIxYmMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxODo1NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGQ5ZDkzOGQzMDE4YzI3ZjUzMjc3YmM1ZTU5NTc4NTAwNDkwYzFkMDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNjozOCAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlIG9uIGVycm9yLgoKY29tbWl0IGQ1ZTgxN2Q1YmQ1MThkOWFjNmEwZDYwZTBlMTQxZGQ2NGYyN2FkMTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNDoxMiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJhZTY4ZjA1OWRmOWQ3NGIwNzRkMTJmNTljMTg0NzQ2NmVkNTc2Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTowMzoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGEwMGYzZDQ2MTEyMWI1NDVhZWQ3MmFjMTJiMjQzODc5MWRjZmM0YmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDo1ODozOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGJhNWQ1MjkyYjA0MzkzYjBjN2Q3ZDdlZDk2MTI0MTkyOTQxOGM2ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNzowNToxNCAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IGRhMmQ2YTcwMjhhMTNiOWVkZjNhNWM4NDMxNGQwZjFmZWVmNzY3MTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjo0NDo1NiAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgZjg4MDU0YTliNjliNmRlMjc0ZjdhMTRhNTliNDczMjNlNWU0ZTRjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjM3OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZXJlZmVyZW5jZSBjb250ZXh0IGlmIGl0J3MgTlVMTC4KCmNvbW1pdCA3YzRkNDU5ZThmMWY2NTJjYzIwOThjM2Q0YzgxZGU5MGE4NGVkNzEwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MzA6MDkgMjAxMiArMDEwMAoKICAgIERvbid0IGRlZmVyZW5jZSBOVUxMLgoKY29tbWl0IGZjMTliN2YzM2I1ODc5MjdkMmEwMWU3MmQyM2QyMWI5YjE2OTZhYjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoyNToyNiAyMDEyICswMTAwCgogICAgRG9uJ3QgY2xvc2UgTlVMTCBmaWxlLgoKY29tbWl0IDVlOTVjYTY3OTAwNzZiNzg4MDcyYTgwMWVlN2M4Mjk2OWQ5OTViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxNzowOSAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwgd2hlbiBhIHRyYW5zcG9ydCBkb2VzIG5vdCBoYXZlIGZfZm10YWRkci4KCmNvbW1pdCBlZWQ2ZjVmOWI5YWU1NGQyY2VhYjY3YWQ4NWFkZGUxZjZhOGEyMWQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTM6MTMgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IDQxY2RlNjhiNWZhNGIzOGQ4MTQ1MGNmOTFlMDgyY2RmYTgyNWU3Y2YKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxMDoxMCAyMDEyICswMTAwCgogICAgQ2hlY2sgaWYgYSByZWdpc3RyYXRpb24gd2FzIHJlYWxseSBmb3VuZC4KCmNvbW1pdCA1YjcyYTQwODUzODc2YTE4NmVmY2MwMDkwYTRlMzJjMjM1YjljMDVmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MDM6NTggMjAxMiArMDEwMAoKICAgIERvbid0IGRlcmVmZXJlbmNlIE5VTEwgd2hlbiBkaWZmbGVuIGlzIFNNVVhfTUFYX1BSSU9SSVRZICh3aGljaCBpcyBoaWdobHkgdW5saWtlbHksIGJ1dC4uLikKCmNvbW1pdCBmYTZhOTEyZTQxYzVkMGZkMmE2MzY4OTRlODZiNjQyNmMwNzM3NWFiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6Mzc6NDQgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZhbHVlIGluIHNldEV2ZW50LgoKY29tbWl0IDQxMGI3MWRhNDI1Mzg5ZmVjYzI1ZDE0ZjQ5ZjIzNzUzNTgxNTc2YWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNToyODo0MSAyMDEyICswMTAwCgogICAgRGVyZWZlcmVuY2UgZXJlZyBvbmx5IGlmIGl0IGlzIG5vdCBOVUxMLgoKY29tbWl0IDE4NTI3MmQxYTBiOTEzNzc0MTg2ZjFiOTEzNWFlYWY2MzdlYmVkNTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNToxNzoyMSAyMDEyICswMTAwCgogICAgQXMgcGVyIGFib3ZlIGNvZGUsIHRlbXBsYXRlX3YycGR1IGNhbiBiZSBOVUxMLCBzbyBjaGVjayBpdCBiZWZvcmUgZGVyZWZlcmVuY2luZy4KCmNvbW1pdCA0OGU1ZWFkM2ZkMmMyYjM4NWRmNjk3MmM2NzUyNmZmNmJkYzMwNzY4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6NDI6MjIgMjAxMiArMDEwMAoKICAgIFVwZGF0ZWQgbGFzdCBmaXggdG8gbmV3IGVycm9yIHJlcG9ydGluZyBzdHlsZS4KCmNvbW1pdCBmMzNkMzM2MTVkNmQ4NWQwMDczNzI2NDczYzQxNDZjYmNkZjExY2VkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MzA6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIHNpZ3NlZ3Ygd2hlbiBlbXB0eSBjb25maWcgbGluZSBpcyBwYXJzZWQuCgpjb21taXQgYjVkZjFlZWI0N2VkMzU1OWI2ZjRkOWVjY2NkYjI0MjEyNmU2Yzk5MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjExOjU4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCAoaGlnaGx5IHRoZW9yZXRpY2FsKSBzaWdzZWd2IHdoZW4gc3AtPnNlY3VyaXR5RW5naW5lSUQgaXMgTlVMTC4KCmNvbW1pdCA2ZmVlZDYyOWE3MTg5OWMxMTMwOTY5NTlkODU0OWRjMTIwMWU4ZjlhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTM6NDM6MzcgMjAxMiArMDEwMAoKICAgIEFkZGVkIE5VTEwgYW5kIGxlbiBjaGVjayBqdXN0IGluIGNhc2Ugc29tZW9uZSBwcm92aWRlcyB2YWx1ZSA9IE5VTEwgYW5kIG5vemVybyBsZW4gKC0+IE5VTEwgaXMgdGhlbiBkZXJlZmVyZW5jZWQpLgoKY29tbWl0IDM1NWM1YWIyNjRhZjJhNjAyMGExZDhhOTIzZjgwZjExYjk0MjI5NWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxMzozNjo0MSAyMDEyICswMTAwCgogICAgRXh0ZW5kIHRoZSBOVUxMIGNoZWNrLCBpLmUuIHJldHVybiBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIHJlbW92ZS4KCmNvbW1pdCBkZGQ3OTQ4YWNhZDkzOGNkNDI5NzQ1MDVkZGNhNGYwMzcyMTE2NzA5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMToxMToyOSAyMDEyIC0wODAwCgogICAgdXBkYXRlIHNwYXJ0YSdzIGNvcHlyaWdodAoKY29tbWl0IDQxMjU2MDg2YTdhNTA0MTQ1MzQxOWNmZDZlNTYyYzdiNTVjNTZiMGEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDEwOjMyOjA0IDIwMTIgLTA4MDAKCiAgICBwdWxsZWQgZnVsbCBjb3B5IG9mIGV4dHJhY3RuZXdzIGZyb20gbWFzdGVyCgpjb21taXQgNjI1YTcwZGJkZmQ5OTAyZGE3OWVmYTI5M2ZlNmQyYWM4Y2NmMmIyZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MjQ6MTkgMjAxMiAtMDgwMAoKICAgIHVwZGF0ZSB0byBjaGFuZ2UgdG8gdGhlIG5ld2VyIGxvZyBnZW5lcmF0aW5nL3BhcnNpbmcKCmNvbW1pdCA2MmUzMmIxMzA4OWIyOWVkY2YyNzZmNjE1ZGE2N2U0NTA4ZmU3YmI1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAwOToyOTo0MiAyMDEyIC0wODAwCgogICAgY29uZmxpY3RpbmcgbWVyZ2UgZnJvbSBtYXN0ZXIgZm9yIGV4dHJhY3RuZXdzCgpjb21taXQgNzAwODRkYTYxZDJiY2JkMmNmMWVkODFiZGMzYmY2Nzk0YzJhZmZiNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMTMgMTE6NDk6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tU0NIRURVTEVSLU1JQjogSGFuZGxlIDMyLWNoYXJhY3RlciBzY2hlZENvbnRleHROYW1lIHZhbHVlcyBjb3JyZWN0bHkuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkLgoKY29tbWl0IDA0YmYzZTI4ODE1OGVlODgwZWRmMjM3ZTQwMDdmZWUzN2QyMDQ0ZGQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTozOTozNyAyMDEyICswMTAwCgogICAgRml4ZWQgZW5kbGVzcyBsb29wIHdoZW4gU1NMX3JlYWQgcmV0dXJucyBlcnJvci4KCmNvbW1pdCBjMTUyNmZjY2MwNDc0YzFkYjE4Y2FhOWRiYjgzMzg1M2NkZGRlM2NjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MTM6MjEgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgdHlwby4KCmNvbW1pdCBhMjdhYTE5ZGYyODMxNTZjMDMyYzgxZWFlZTVlMTE1ODU5ZDM4YzE3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MTE6MzIgMjAxMiArMDEwMAoKICAgIERvbid0IHJlcGxhY2UgJ3JjJyB2YXJpYWJsZSwgaXQncyB2YWx1ZSBpcyBuZWVkZWQgb3V0c2lkZSB0aGUgbG9vcC4KCmNvbW1pdCA5ODVkZmYyYjA4NzZkOTQ4M2M0MTRmY2NlYTNlZjZiYzYzZTE0NTYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDE6MzIgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMmZkNzgxODMxOGU3YTVkZmU5OGY1MmNjZjc1MGMyYTYzZTgyNWRlZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAwOjIyIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDE1ZjIxMTMwYmEzM2RjOWFmZDE2NGU1MmRmZDc0YzljZWMwZTkyMzIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDo1ODoxNCAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAyYThhOGYyYWI3Y2Q3NTgyNmM1ZDQxZWMzY2ZkNWNlM2U5NjM0Y2YzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6Mzk6MjggMjAxMiArMDEwMAoKICAgIHJlbW92ZSBkZWFkIGNvZGUsICdjcCcgaXMgYWx3YXlzICE9IE5VTEwgaGVyZS4KCmNvbW1pdCAzOGZkNjM3OGNjMzI3NTE4MGY2M2I4ZDliOWE0MDcyYjNkYWJmOGU0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6MjU6MDYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgdHlwby4KCmNvbW1pdCBlYmQ5MmUxOWIxMGMwYTM4ZTE3Y2RlNDA3ODY0YjQ1YzI2ZTE3MzI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6MDc6NDMgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgdW5uZWNlc3NhcnkgaWYgKHZhbHVlKSBjaGVjayAtIHZhbHVlIGlzIGNoZWNrZWQgZmV3IGxpbmVzIGJlZm9yZS4KCmNvbW1pdCBjNWNhY2Y1Y2FmOTc5ZDAxOGVhNmNhZTFjMDNiOGZkZjBiMTE4ZGZkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6NDQ6NDMgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZG91YmxlIGZyZWUoKSwgJ2Rpcm5hbWUnIGlzIGFscmVhZHkgZnJlZWQgaW5zaWRlIHNlX2FkZF9wYWlyX3RvX2xpc3QoKSBpZiBpdCBmYWlscy4KCmNvbW1pdCBhY2RjZWI1MGVhNjZkNmIzMjNjNzRlZTAyMWZiNzdlODEwZTRlN2FmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6NDM6MTkgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgbWVtb3J5IGxlYWsgd2hlbiBtYWxsb2MgZmFpbHMuCgpjb21taXQgMTcwNTNlMzRjZmU5YThhYjM5NWZiNTBmNWMzZjFkYWZjNzI0N2FlYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjMyOjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkb3VibGUgZmNsb3NlKCkuCiAgICBMaW51eCBtYW4gcGFnZSBmb3IgZmNsb3NlKDMpIHNheXM6IEluIGVpdGhlciBjYXNlIGFueSBmdXJ0aGVyIGFjY2VzcyAoaW5jbHVkaW5nIGFub3RoZXIgY2FsbCB0byBmY2xvc2UoKSkgdG8gdGhlIHN0cmVhbSByZXN1bHRzIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KCmNvbW1pdCBhNjY0MWVkYjljYjc0ZmMyMjM2YjQyY2U1NTU0ZmMzMzI5OTU2NTUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxNToyMjozNCAyMDEyICswMTAwCgogICAgTWluR1c6IFNraXAgdGVzdCBUMDY1IGlmIG5vdCBzdGFydGVkIGZyb20gaW5zaWRlIGFuIE1TWVMgc2hlbGwKCmNvbW1pdCBhODgzZWYxOTgyZjMwMWIxNDg1ZDIyNzMwMTY3NDkyNzMzMGY1YjY3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTEgMTU6MTQ6NTMgMjAxMiArMDEwMAoKICAgIE1vdmVkIGRlYnVnIG9wdXRwdXQgYmVmb3JlIHJldHVybi4KCmNvbW1pdCA0NTc1MTk2NzI4N2Q5NzY0MGVmZGNkZjhlNzdlOGQ0OTA5MzlkOGViCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxNDoxNzoxOCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJ0b3VsbCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0Cgpjb21taXQgMmMyZmE0ODMzNmE0ZjFmMTc3YzI5OTFkNjUxNWQyOWYzOTUzM2M0NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTM6NTA6NDQgMjAxMiArMDEwMAoKICAgIENvbnZlcnQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAoKY29tbWl0IDA3YzY2NmY2Y2VhMjdmMmIyYWI5YmMwOGFlZDBjYjYxMzNmZTM3NTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMSAxMzoxNzo0NSAyMDEyICswMTAwCgogICAgRml4ZWQgY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjE6CiAgICBGaWRleCBkZXJlZmVyZW5jaW5nIGtleS0+aW5mbyB3aGVuIGtleSBpcyBrbm93biB0byBiZSBOVUxMLgoKY29tbWl0IDNiNjg2NTY2Mjk2ZGQ4N2JjNDJiN2YxMTY5ZGFhY2RiM2M0NWNjNTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDE4IDA2OjI1OjU2IDIwMTAgKzAwMDAKCiAgICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGhvdXQgd2FybmluZ3Mgd2l0aCBNU1ZDIDYuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmM2E3ZDFiMDk2MDlkYWQ2NDlmNThiYmRiNWI3ZTEwZDM5YjM5OGMxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE9jdCAxNyAxMTowNDowNiAyMDEwICswMDAwCgogICAgRm9sbG93LXVwIGZvciByMTk0NzY6IGZpeGVkIGEgdHlwby4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDJkZTczYmQzNjVhMzgxYjljMzUzY2E1MjMwNzY5ZWVmYjFhYzcxZWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDExOjQyOjQyIDIwMTIgKzAxMDAKCiAgICBsb2NhbC9wYXNzdGVzdDogUmVtb3ZlIGFuIGluY29ycmVjdCBQQVRIPSBzdGF0ZW1lbnQKCmNvbW1pdCA2OTk1MTNmMTIzOGUwYWRjZTFmMWNlYzk4ZTBkMTQ3MjkzZmM1MDQ3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE9jdCAxNyAwOToyNTo1MSAyMDEwICswMDAwCgogICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS1yZWxhdGVkIGNsZWFudXAuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2MzU4ZGVlNzJmYjM0N2UyNjAwYTBhN2JkMjFmMjMyNzBkM2EwMGY2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDo1ODoxNSAyMDEyICswMTAwCgogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzogQWRkIGEgY29tbWVudAoKY29tbWl0IDUzOTZiZmUwMzJjOGNiYzczYzhmZjVkNGIwODVlYmFkYTlmNTk4NDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjMwOjE2IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIHN0cm5jcHkoKS9zdHJuY2F0KCkgYnkgc3RybGNweSgpL3N0cmxjYXQoKQoKY29tbWl0IGZlYjNhZjI4ZGNhZTIyMDE1YWU4NjVhMmU1ZGQ4YzQxNmU5OTkxZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjAyOjA4IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIHN0cm5jcHkoKS9zdHJuY2F0KCkgYnkgc3RybGNweSgpL3N0cmxjYXQoKQoKY29tbWl0IGI3ZTFhYTI1NWJhZTRhMzQ1M2Y5ZWNhNjQ0YTg3NjYzNDM1MWYxMWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDIwIDE5OjM2OjI4IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBsaWJzbm1wOiBjaGFuZ2VkIHRoZSB0eXBlIG9mIHRoZSBmb3VydGggYXJndW1lbnQgb2YgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIGZyb20gY29uc3QgY2hhciogdG8gY29uc3Qgdm9pZCogc3VjaCB0aGF0IG5vIGNhc3QgaXMgbmVjZXNzYXJ5IHdoZW4gcGFzc2luZyBhbm90aGVyIGRhdGF0eXBlIHRoZW4gY2hhciogb3IgY29uc3QgY2hhciouCiAgICBDSEFOR0VTOiBXaW4zMjogY2hhbmdlZCBpbl9hZGRyX3QgZnJvbSB1X2ludCB0byB1X2xvbmcgc3VjaCB0aGF0IGl0IG1hdGNoZXMgdGhlIGRhdGF0eXBlIG9mIHNvY2thZGRyX2luOjpzaW5fYWRkci4KICAgIEFsc28sIGZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgKG1vc3RseSBjaGFyICogPD4gdV9jaGFyICogbWlzbWF0Y2hlcykgYW5kIHJlbW92ZWQgc29tZSBjYXN0cy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgzNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlhZ2VudC9hZ2VudF9yZWdpc3RyeS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCiAgICAJYXBwcy9zbm1wdHJhcGQuYwogICAgCXNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMKICAgIAlzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKICAgIAlzbm1wbGliL3N5c3RlbS5jCgpjb21taXQgZjQ3YTM3NTI4NDlkYjA3NWU2ZjIwNTNiODU5NWI3Yjc5MmZiNjQ2MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBPY3QgMTUgMTA6NTY6MDkgMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQnVpbGRzIG5vdyBjb3JyZWN0bHkgd2l0aCBhIDY0LWJpdCBjb21waWxlci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDJiNjA1NmRmOTVkYThiNjczMDM0ZTM5YzJjN2MzODZlZDBmMzY5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTE6NDQ6NTMgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0Cgpjb21taXQgYTE5ODY1ODMyZmM3N2Y0YzA0ODE0NGQ5MWE0MzFiMWU5NGQzMjlmMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDE0IDIzOjEyOjA1IDIwMDkgKzAwMDAKCiAgICBDSEFOR0VTOiBhcHBzLCBzbm1wbGliOiBQQVRDSDogMjgzNTU3NzogaWRlbnRpZmllZCBieSAiQmFydCBWYW4gQXNzY2hlIjogUmVwbGFjZSBTTk1QX1pFUk8gb2YgYXJyYXlzIHdpdGggYSBtZW1zZXQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3Nzk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDY3YTNlMmVjY2I5NWY5YzlkMDgwOWVmY2JkZGNkODY2ZWUzMDYyZDUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTQ6Mjc6MTUgMjAxMCArMDAwMAoKICAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDNkY2RlMmU4YTU5NWE1MjdmMDYxNDJjM2I4NTJkZTg0MzNhMWNmMjgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEphbiAyNCAxNDoyNzo1NSAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUHJldmVudCBnY2MgcGVkLXdhcm5pbmcgZm9yIE5FVFNOTVBfUkVNT1ZFX0NPTlNUCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE4MDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGMyZTE1MjVhODViZGE1Mjk5YTNiOWYyNDE2MTRmN2U2NTA5YWVlYmEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTM6MzU6MTEgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCAyOTVmNDczYzgzNTQ2MjIxYjJhNzFkODE1YzYxZTMzYTY3Zjk4YWUzOiByZWZpbmUgTkVUU05NUF9SRU1PVkVfQ09OU1QoKSBpbXBsZW1lbnRhdGlvbi4KCmNvbW1pdCBjYjQyM2IwYWU5ZWQwMDU5YWExMDBkYzRlMmZkOTNhZDFiOTdmYWY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDExOjU3OjUxIDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZTJmYjA5ZTAwOTNlMmY2NDhmZTI2MzhkYTJmM2FmMThmZGIzMmJmMCAtIGludHJvZHVjZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpLgogICAgCiAgICBDb25mbGljdHM6CiAgICAJYWdlbnQvc25tcF9wZXJsLmMKICAgIAlzbm1wbGliL3NubXBfc2VydmljZS5jCgpjb21taXQgYWZjMzk2YWIxNjE4YTg1OTVhMjUxOWZiYzI1ZjdhNDk4ZTE3NDQxMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDg6NDk6MzQgMjAxMiArMDEwMAoKICAgIFVuYnJlYWsgbmV0c25tcF9ta3RlbXAoKSBhbmQgbWFrZV90ZW1wKCkuCiAgICAKICAgIFRoZXNlIHdlcmUgYnJva2VuIGJ5IGNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5LgogICAgQWxzbyByZXBsYWNlIGEgc3RybmNweSgpIGNhbGwgYnkgYSBjYWxsIHRvIHN0cmxjcHkoKSBhbmQgcmVwbGFjZSB0aGUKICAgIG1ha2VfdGVtcGZpbGUoKSBpbXBsZW1lbnRhdGlvbiBieSBhIGNhbGwgdG8gbmV0c25tcF9ta3RlbXAoKS4KCmNvbW1pdCAyMTAxODVjMTVkMGQ2NWYwZWE5OGI1ZTNjMmUwNzc2ZjYyMjJkMTcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAwODoyNzo0MyAyMDEyICswMTAwCgogICAgRml4IGEgY3Jhc2ggZHVyaW5nIHN0YXJ0dXAgb2Ygc25tcGQgaW50cm9kdWNlZCBieSBjb21taXQgODg1MDYxNjg3ZDljYWEzODQ3MDk3OTY2N2Q3ZDhhZDY1NjNjZWRhZC4KICAgIAogICAgQWxzbywgbWFrZSBzdXJlIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgY29weSBvZiB0aGUgY2xlYW51cCBjb2RlIGluIGZ1bmN0aW9uCiAgICBta2RpcmhpZXIoKS4KCmNvbW1pdCA4YmI0ZTg2YWJjZjk4ZmYyODc0OGFmMGFmODljOThlNjRkNWNkOTYxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEphbiAxMSAwNzo0NzoxMiAyMDEyICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgb2xkbWFzayB2YXJpYWJsZS4KCmNvbW1pdCA2NjgwMTQ3YjEzOGVjMTE0ZjgxYzVkMTI4YWM5MzUwYzg0NTBkMDgxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxODo0NDozMSAyMDEyICswMDAwCgogICAgTWFrZSB0ZXN0IFQwMTVpbnQ2NF9jbGliIHBhc3Mgb24gNjQtYml0IHN5c3RlbXMKCmNvbW1pdCAzYWFkMTVhZTU2MGFjODU3ZTczYzkwNzY0ZTkwM2U3Y2EwMmIzMjk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6NDA6NTkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBmb3IgbGFyZ2UgT0lEIG5hbWVzCgpjb21taXQgZmJhMTg4ZWU4MjAxMGIyZjJkOGNhMmU0MjZiYTY1NDQ5OWFiM2QwYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjMxOjMzIDIwMTIgKzAxMDAKCiAgICBmaXhlZCBidWZmZXIgb3ZlcmZsb3cgaW4gX19jb25jYXRfb2lkX3N0cgoKY29tbWl0IDIxZDI1ZDg2YjhlNDkwNGQ3OThkYzhjOTZkYWRlOWU1MDQ4NDU3YTgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNToyNjowNyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gcGFyc2luZyBwb3J0IG51bWJlcnMuCgpjb21taXQgZDM2OTMxODQxYjJmYzJjZWJjNjM2NGIyOTQ5MTI5YTBhZDQyYWQxZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjA1OjUxIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGxhcmdlIFN1bUZpbGUgaXMgdXNlZC4KCmNvbW1pdCAwZWZkZDAyMmRhMDlhZjFiNWUxNjE3MWZhN2EyYjUyM2M1ZDZlYzU5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDE6NTMgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBiaWcgdGVtcCBmaWxlIHBhdHRlcm4gaXMgdXNlZC4KCmNvbW1pdCA1NjBiYzZjMDliNzUxNTU2ZWZkNmI0YzQ0OTU3NTFiMTA5YTkzZjkyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NTk6MjQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdywganVzdCB0byBiZSBzdXJlLgoKY29tbWl0IDgyOTFkN2M1YjkyYTMxZGQ0ZjU4MmI0OTdkNGIyYTA4NTMzNjdhNTYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo1NToxNiAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LgoKY29tbWl0IDg4ZTFmMzRkZTczMDA1NzVmYTZkYWI4NTdlY2RkYjI0MmE4N2RlODAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0ODo1NSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGxvbmcgaW50ZXJmYWNlIG5hbWVzIGFyZSB1c2VkLgoKY29tbWl0IGJlMTM3NWE5OTI2ZWJlMGNkNWI3OGE0MDQ1YzNiZDExYzgzNjY0YjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0Njo0OSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBzZW5zb3IgbmFtZSBpcyB0b28gbG9uZy4KCmNvbW1pdCAxY2IyNDYyNTM3MjA2MmIxNGM3MWQ3ZGQ1MWUyMGZlZjc3M2UyNzQzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDE6MDAgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGEgQ1BVIGhhcyB0b28gbG9uZyBuYW1lLgoKY29tbWl0IDg0YzgwN2VlMDMyNTFlNTQ4NTZlODNkNjJkMDZlYTA4YjhkZjUyN2EKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDozNjo1MCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGxvbmcgaW50ZXJmYWNlIG5hbWVzIGFyZSB1c2VkLgoKY29tbWl0IGMzMTBlMzkwYjVkZDA1ZjI0YmU3ZWIxOTA0Yzc0ZTQxMjU5YzkzZGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoyNDo1NCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgoKY29tbWl0IDQ2MDBkMTE0MzRlODNiODY1M2NmOWY4MTNhM2Q4YjYzMDQ1NWI0MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxNzowOCAyMDEyICswMTAwCgogICAgRml4ZWQgcGxhdXNpYmxlIHN0cmluZyBvdmVyZmxvdyBiZWZvcmUgcGFyc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCmNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTE6MDIgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgKGluc2VjdXJlKSBTTk1QX01BWFBBVEggaW4gbWtkaXJoaWVyKCkKCmNvbW1pdCA4MDE2ODkwYTQ0NWY2YTdlMmE4NzNhMDQ4NzNkNGUyN2I2ZWU2NGUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6NDg6MzQgMjAxMiArMDEwMAoKICAgIEZpeGVkIHdyb25nIGludGVnZXIgc2l6ZSBvbiA2NCBiaXQgcGxhdGZvcm0uCgpjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjMxOjM2IDIwMTIgKzAxMDAKCiAgICBTZWN1cmUgbWtzdGVtcCgpIHdpdGggdW1hc2soKSAtIG9uIHNvbWUgaW1wbGVtZW50YXRpb25zIGl0IGRvZXMgbm90IHNldCAwNjAwIHBlcm1pc3Npb25zIGF1dG9tYXRpY2FsbHkuCgpjb21taXQgMjAyNTIzY2E3MDRiZDcyMmRjMWFjMGUxZTZiMGU0YjRlNTQyNDQ5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjExOjU3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nICdjJyBiZWZvcmUgTlVMTCBjaGVjay4KCmNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MDg6MjQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgMmY0ZTZhY2Q3MTQxODNmMDE1Yjc2MzY1N2Y4ZjA4NDU5MzM1N2UyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTA6Mzg6MTYgMjAxMiArMDEwMAoKICAgIC5naXRpZ25vcmU6IElnbm9yZSBwZXJsLyoueW1sIGZpbGVzCgpjb21taXQgYzM2NWQ4MGMxNmMyZDE3YjE2MDAxMWU4YzFmOWNiOTU4OTU0ZTlkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMDg6MzQ6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRG8gbm90IGludm9rZSBzaHV0ZG93bl9wZXJsKCkgZnJvbSBpbnNpZGUgdGhlIFNJR1RFUk0gaGFuZGxlciBzaW5jZSB0aGF0IGZhaWxzIGlmIFNJR1RFUk0gaXMgcmVjZWl2ZWQgd2hpbGUgYSBQZXJsIGhhbmRsZXIgaXMgYWN0aXZlLiBCYXNlZCBvbiBhIHBhdGNoIHBvc3RlZCBieSBKb2VsIEF2bmkgPGphdm5pQGFydWJhbmV0d29ya3MuY29tPgoKY29tbWl0IGQwNTlmYjg3OGIxNDM2NTk5OTUzY2VhNWEwNzc0OTlkZGNkY2JjYjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTc6MDM6NTUgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0MDc1MjogSUYtTUlCOiBSZXBvcnQgaW50ZXJmYWNlIHNwZWVkIGNvcnJlY3RseSBmb3IgRXRoZXJuZXQgaW50ZXJmYWNlcyBpZiBvdGhlciB0aGFuIDEwIE1icHMsIDEwMCBNYnBzLCAxIEdicHMsIDIuNSBHYnBzIG9yIDEwIEdicHMuIEFkZCBzdXBwb3J0IGZvciBOSUNzIGZhc3RlciB0aGFuIDY1IEdicHMuCgpjb21taXQgZTMyNWVjYmZjZTc3ZjAwYWM1Y2Y2ZmJkOTU3Zjk1NDk1ZjYxYzU5YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNToxMCAyMDEyICswMTAwCgogICAgU3VwcHJlc3MgdW5pbnRlcmVzdGluZyBEb3h5Z2VuIHdhcm5pbmdzCgpjb21taXQgYmU5MTYxZDNhNTg5OGU4NjM3NjdmOTI2NjEzNDg2MTI2YzJjYmY2NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjozNTozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25zIG1hbmlwdWxhdGluZyA2NC1iaXQgbnVtYmVycy4KCmNvbW1pdCA4NmU0YzJiZTA4NTJhMGExM2IwNjAzMDc1NzIwYjMyNjRlYzcwZGRlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjI5OjExIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIGl0IGV4cGxpY2l0IHRoYXQgTUFYX1NVQklEIGlzIGFuIHVuc2lnbmVkIGNvbnN0YW50Cgpjb21taXQgMzdlMjcyZDhmN2I3MTgwYmExNDBmYTM4NmE1ZmYwNTg5NjhhMDhhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxODoyMTo0OCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IElGLU1JQjo6aWZUeXBlOiBSZXBvcnQgdHlwZSAiaW5maW5pYmFuZCAoMTk5KSIgZm9yIEluZmluaUJhbmQgaW50ZXJmYWNlcyBpbnN0ZWFkIG9mIHR5cGUgIm90aGVyICgxKSIuCgpjb21taXQgMGQxYzIxZjk5OTFkMTMwOWQwNTdlM2U0MDU2ZDU0N2RmN2Q0MGVjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCgogICAgTWFrZSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBvZiBzdHJsY2F0KCkgY29uc2lzdGVudC4KCmNvbW1pdCAwYzNkNGRiYjBhOWNmNWIzNTlmNzBiMmYxOTkxNTQ5NTU1NGY4NDBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjIzOjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogc25tcGQ6IFJlbW92ZSBkbG1vZAoKY29tbWl0IDg5M2VjYzk3YjU4NzY2MTA0NWJlY2JlMDlhMzIwYzFiY2JjNzFjN2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzY6NTkgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0KCkgdG8gdGhlIE1TVkMgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUuCgpjb21taXQgM2QxMjY0MjJlNjI1NzAyYjlkM2ZhMDY3NmE5N2VjNWNiMjBkOWQxMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNTowMTowNiAyMDEyICswMTAwCgogICAgTWFrZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBjb25zaXN0ZW50IHdpdGggaXRzIC5pbiBmaWxlCgpjb21taXQgYWY1M2I3NmMyZmZhNzUxZTM5NThkMGZjNWQ4Mjc5Zjc4YzJjMWMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDo0Mzo1NSAyMDEyICswMTAwCgogICAgU2tpcCBUMDY2cGFzc19zaW1wbGUgYW5kIFQwNjdwYXNzcGVyc2lzdF9zaW1wbGUgb24gTWluR1cKCmNvbW1pdCAzNWE5MmU2OTNkMTMzYTViMTFlOWU5YjU5OWRiZjQ3ZWRlZjQ5MzNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDA4OjE2OjM2IDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jIGFnYWluLCB3aGljaCB3YXMgYWRkZWQgYWNjaWRlbnRhbGx5IHdoaWxlIHJlc29sdmluZyBtZXJnZSBjb25mbGljdHMgKGNvbW1pdCAxZDc4ZjdkNWI1OGFlZDJiNTJjNGQzODZhN2JhODBhNDQ3MTFiYWNhKQoKY29tbWl0IGE5YjA3M2VhM2I2Y2VkZjcxM2UzMDVlN2IxNWYyOGFlNTdiZmRmMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTc6NDc6MTEgMjAxMiArMDAwMAoKICAgIEZpeCA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA3ZTg5MGRhZDk1ZjU2NjA2OWVlMjgwMjE1YTRmZWEzZjBlMmUzOTgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE2OjM4OjUwIDIwMTIgKzAxMDAKCiAgICBBdm9pZCBhIFNJR1NFR1YgaWYgY3AgPT0gTlVMTC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDguCgpjb21taXQgMWY2MjAwY2ZlMWIwYjI3ZWJiMDkzYTE2MDZiNTkyZjllOTY4NGJlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTo1MzozNCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS42Cgpjb21taXQgYzMxMjZiMTQzOTIxZmFiZWFjNDQyMTY2ZWNhNWI1Yjc0MmZkNDJjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTowMjozOSAyMDEyICswMTAwCgogICAgUmVwbGFjZSBtb3N0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjUKCmNvbW1pdCBiMjRlZTdjOTA5NjU3ZGI0M2JkOGM1ZDhjMDEwNTVjYTA4ODNjOWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA4OjQwOjM5IDIwMTIgKzAxMDAKCiAgICBFbGltaW5hdGUgbW9zdCBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBjYWxscwogICAgCiAgICBVc2luZyBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBpcyBlcnJvciBwcm9uZSAtLSBzZWUgYWxzbwogICAgaHR0cDovL3d3dy5ncmF0aXNvZnQudXMvdG9kZC9wYXBlcnMvc3RybGNweS5odG1sLiBIZW5jZSByZXBsYWNlCiAgICBhbGwgaW52b2NhdGlvbnMgb2Ygc3RybmNweSgpIGFuZCBzdHJuY2F0KCkuIFJlcGxhY2UKICAgIHN0cm5jcHkoZHN0LCBzcmMsIG4pIGNhbGxzIGJ5OgogICAgKiBzdHJsY3B5KGRzdCwgc3JjLCBuKSBpZiB0aGUgZ29hbCB3YXMgdG8gYXZvaWQgb3V0cHV0IGJ1ZmZlciBvdmVyZmxvdy4KICAgICogc3ByaW50Zihkc3QsICIlLipzIiwgbiwgc3JjKSB0byBjb3B5IGEgcHJlZml4IG9mIHNyYyB0byBkc3Qgb3IgaWYgc3JjIGlzCiAgICAgICAgbm90ICdcMCctdGVybWluYXRlZC4KICAgICogbWVtY3B5KGRzdCwgc3JjLCBuKSBpZiBzdHJsZW4oc3JjKSA+PSBuIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCiAgICAqIHN0cmNweShkc3QsIHNyYykgaWYgbiA+IHN0cmxlbihzcmMpIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCgpjb21taXQgNmQ5NWJjNDE0OTQ3MjkzMTAwNTQ3NWMzMGE1NDFmZWQ1NTM0ZGEzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMToxOToxNiAyMDEyICswMTAwCgogICAgRml4IHdhcm5pbmdzIHRyaWdnZXJlZCBkdXJpbmcgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgeHMgc291cmNlIGZpbGVzCgpjb21taXQgYmFkMDYwMGY2ZWM5NDRlZjg0NTVlMzI3Y2U3ODRiOWIwN2QyNDdjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoxMyAyMDEyICswMTAwCgogICAgQWRkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzb2NrYWRkcl91bi5zdW5fcGF0aCBzdWNoIHRoYXQgdGhlIGNvbTJzZWMgdGVzdCBpcyBydW4KCmNvbW1pdCA5MmEzMmFjNDg2NmE1ZWRjN2YzNDdkMzc5NDJiZjAyOGRlMDI3NjJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjI5IDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDgzZTRjMGUzMDRmNjE3Y2NhYzY2MTBlZGQ3NGQxNzA2Nzk3YmJmNTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTU6MzcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBhIHRlc3QgZm9yIHNlX3N0b3JlX2xpc3QoKQoKY29tbWl0IDRmYWU1ODUyMTAzZWMzODkzYWQ0ODhiYzBkOTA1Y2E2OTE0NTk1ZWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTc6MTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IGIzMjIyYmIyNzVmMmYyMzQ2ZTBmZDA0NzhhZmEyZWZiNjAwNzczZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTY6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERlY2xhcmUgInR5cGUiIGFyZ3VtZW50IG9mIHNlX3N0b3JlX2xpc3QoKSAvIHNlX3N0b3JlX3NsaXN0KCkgLyBzZV9zdG9yZV9lbnVtX2xpc3QoKSBjb25zdAoKY29tbWl0IDAyMmY4NDBmYmZjYjBlMjZiMDhmMGU1NTcyODIzMWY2MTE0OTU4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTk6NTU6NTYgMjAxMiArMDAwMAoKICAgIEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0IHNlbmRpbmcgVURQIGRhdGEKCmNvbW1pdCA2NzJhODA5YzIyOGU5NTUwYjk5Yjg5MTBiZTc1ZDBiMTYxOTg1NDAyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjMzOjA5IDIwMTIgKzAwMDAKCiAgICBGaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDI0ZmYyNjBhZDg5Y2UyYWEzNjFhNTVjN2M3MmU5MTYwMzFkZWZlMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MTE6MjQgMjAxMiArMDEwMAoKICAgIENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHNubXBfc2V0X3Zhcl92YWx1ZSgpIGFuZCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoKSBmcm9tIHVfY2hhciogdG8gdm9pZCosIGxpa2Ugb24gbW9yZSByZWNlbnQgYnJhbmNoZXMKCmNvbW1pdCBjNmNhNzM3ZmI0NmY5MGE0YmRhNWQ0MzczNGFhYzM0ZTgzN2EwNWY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAxMyAxOTowNzozNyAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGY1MDRjZTJkNzRhNGJjODhmNjhjYzk1MTVmYTcwNTMzNzNjYjE1YjUuCiAgICAoRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZSBwZXJsIHN1YmRpcmVjdG9yeS4gTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLikKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJcGVybC9BU04vQVNOLnhzCiAgICAJcGVybC9PSUQvT0lELnhzCiAgICAJcGVybC9TTk1QL1NOTVAueHMKICAgIAlwZXJsL2FnZW50L2FnZW50LnhzCgpjb21taXQgZDIxMmRjOTg0ZWMzNGU0ZDIzMDYyNWU0NmU1OGIwYzYyOGE1MGRmNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjo0Njo0OSAyMDEyICswMTAwCgogICAgU05NUC54cyBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgYmFjZWViYjEwZDhjYWY1ZGI2M2NjMzY5MzVmZWQ2NWVlOTMxMDI5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjoyMjo0NCAyMDEyICswMTAwCgogICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUoKQoKY29tbWl0IGY3Zjk2NmFiZDZkMjg0OWIxMzMxMjUyYWZlNWM0NzNlNWM0MGIzMmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTQ6MjQ6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaGVzLgoKY29tbWl0IDMwM2MwMTViY2ZlOWFmMGIxNTRlOTg4MWM3YjRmNDQ5ZTA4ZjMwYmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjI6MDY6MjMgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBkM2ViMmI1Y2VkMjJhODQ4MDA1M2NlNDNhY2Y5NzM5NzI5MDU1NDA0CiAgICAoU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50IC8gZml4IGZvcm1hdCBzdHJpbmcgbWlzbWF0Y2hlcywKICAgIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAoKY29tbWl0IGQ5NWI0MDQwNjkxNmJkYTViNDhiNWE2MTMxYmVjMjdiODY2YjBhNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjE6NTk6MjAgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGEyYTczMTZjMzEwZjBmY2MzNzI4NjczZmEwNDcwNTFjMjNiNzE5NjAKICAgIChUcml2aWFsIHdhcm5pbmcgZml4ZXMsIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAgCWFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYwogICAgCWFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMKICAgIAlhZ2VudC9zbm1wZC5jCiAgICAJc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKCmNvbW1pdCBkODZjNDdmMDAzZmRjMTkyYmNlN2I0NmFjNGYwNmIwOWUzODdjMTJiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoyOTowOCAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvCgpjb21taXQgM2RjMGUwMGEyZmQ4ZTM0ZmUxYWUzM2VjYWJmMzZlMTQ2NDYwYTMxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6NDA6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGxhcmdlICd0b2tlbicgaXMgdXNlZC4KCmNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjoyODo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgb2ZmLWJ5LW9uZSBtZW1zZXQuCgpjb21taXQgMGY1MzY5NTA0NGRkM2YwYzM1MDc3NTNlM2Y4YzI5ZDk3ZTk2ODcyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMyAyMTozODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYXBwcy9zbm1wdGxzLmMKICAgIAlhcHBzL3NubXB0cmFwZF9sb2cuYwogICAgCXNubXBsaWIvZGlyX3V0aWxzLmMKICAgIAlzbm1wbGliL3NubXBfY2xpZW50LmMKICAgIAlzbm1wbGliL3NubXBfb3BlbnNzbC5jCiAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYwoKY29tbWl0IDAxNTM4MDVjOTliOTE5NzM2NTkzNWM1ZDExYWU5YzNkNGJmYWEwZjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDg6NDEgMjAxMiArMDEwMAoKICAgIEZpeCBhIHNldC1idXQtbm90LXVzZWQgd2FybmluZwoKY29tbWl0IDNmODg4NWZiZWU5NDA3NzQ4ZmMyZjA1NzM3MjhhMTFiYTJiYzAyM2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAyOCAwNTo1MToxMyAyMDA5ICswMDAwCgogICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMgbG9jYXRlZC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYWVlNGU4OTVmZTNiZDVmNGE2MWUzNDI3NWJmY2EwMzY4YjU2MDU1NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIHNubXBfc2Vzc190cmFuc3BvcnQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgNWQxZDBhNzQ0YWIzMGM4ZTY0NWMzYjg1MDZjYmJkMmNjZWIzZDI3NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MDQ6NDggMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIG5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDI5OWVhOWE4OWMzZjE3NThhNzc0OGJiOWIzNDExZjYyZjJjNzBmODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjU0OjU1IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmb3BlbigpIHJldHVybiB2YWx1ZSwganVzdCBpbiBjYXNlIG9mIHNvbWUgcmFjZS4KCmNvbW1pdCA5MGYxYWU2NzU3OTE3NDgxNjM2ZWVmNzcxMDBjYWVlYjUzZWRmZTAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjA2OjU2IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdC5jLiBTb3VyY2U6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvc3JjL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMuCgpjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTA6NTYgMjAxMiArMDEwMAoKICAgIEFkZGVkIHN0cnJjaHIgcmV0dXJuIHZhbHVlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgMTk5YTA1MTFmNmViMGVmM2ZmMWQ5ZjkyMmI3OTBhYjY3ZGZkZTAxZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDozMToyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHNtdXg6IHNpbXBsaWZ5IHNtdXhfbGlzdF9kZXRhY2goKQoKY29tbWl0IGQ4ODM1NzNhYTczZTBmNWZjMTg4YWNlZGVlNjQ1MWY5NWRhZTkwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MjM6MDYgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW50cm9kdWNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCA3YjdhM2ViMjUwMDUyN2VhYTE2OTkyODdhNmNhNmZjYzRjYzJlMDhhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBGaXggYSBidWlsZCBlcnJvciBjYXVzZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgMmI2YzExOWZlZDQ4NDhkYTY2NjNjMTFmMGMyY2JkYzI5OTIxYjVjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NTE6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBuZXRzbm1wX2RzX2dldF9pbnQoKSBlcnJvcnMuCgpjb21taXQgNmNlNTM2MGNhYTRjOWRlNTFhZGU1Nzg3OWU4M2Y5NmJkMDRiNGM1YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NDI6MjMgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZpZXcuCgpjb21taXQgYjNiYzU0YmVkMzE2OTBhODVkZjJhY2ZiZjMyOTZkYTkzYTllODliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MjM6MTcgMjAxMiArMDEwMAoKICAgIENoZWNrIHNvY2tldCgpIHJlc3VsdC4KICAgIEFsc28gY2xvc2UgdGhlIHNvY2tldCBvbiBlcnJvci4KCmNvbW1pdCA5MjA3NWY1MWNkNDVhMzhjYTM4NzYwYjNmZmU4MmUxNjU1OWU5YzJlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToxODoyNiAyMDEyICswMTAwCgogICAgQ2hlY2sgb3BlbigpIHJlc3VsdC4KCmNvbW1pdCBhNjY0OGM1NDUzZTFlZjhkYWM1N2EzOGVmY2MwMGNjZTUzYmY5ZTRmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMDoyNyAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBkNjhkY2FlMGYxOGQ1NTQ1NzFhZWYzMjE5NDRhNTI5MDU0OGRkZTg2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNjoxMSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBmYjZmODBjMGZlM2JhMzZlNTZmNWI5MTFhNDdlM2Y2ZjMyYmEyNjZlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgZXhpdCBjb2RlIG9mIGVuY29kZV9rZXljaGFuZ2Ugd2l0aCB3cm9uZyBhcmd1bWVudHMuCiAgICBBbHNvIGFkZGVkIGEgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgMzEzMGUyNGZkYzIzMjQ2NGRkN2JiMjE2ZjQ2Y2FmYTJlMGU3NzVhNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDk6NTQgMjAxMiArMDEwMAoKICAgIEFkZGVkIG1pc3NpbmcgYnJlYWsKCmNvbW1pdCAxOGMxMjZhOTU2NWNiNGQ2OWQ3NTEzYjk0NGEyMTA1NTg4MDQ1ZDM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowNzoyOSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCA2ZDMxYzgyMDcwYTJjNjhmZTNjNTE5ZTlkNTZmYTI3Nzk1NTRkMDFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowMTo1MyAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBkYzZmMGUyZTU0OWI0Y2QwNjFlYmMxOTAwODRiMWZjNzdhNTVmNDBmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMjo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBkYWIzMjg2N2VkMGI5OTMwMWVmZDdiOGQ4NTJhZDEyODhhMTg0YmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMDozMyAyMDEyICswMTAwCgogICAgRml4ZWQgUVVJVEZVTiB1c2FnZS4KCmNvbW1pdCBiMWEyYmNmNjQ2MTVlYjY2YmMyNGQ1YmU0OTUwZTQ1MDEyOTYyMDQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxODowMyAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBiMmIxYzg1MWI5NGZlZDM3YzM4NmVhYTFiZmVhZDVjNzc2OTZlM2VmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxNDo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDo1ODo0NiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgZm9yIGZhaWxlZCByZWdpc3Rlcl9taWIuCgpjb21taXQgNTk0OWYwNTVjMTZhZTY1MDYxNWFhZTdhMWZlZTNmMmQ3YjE2ZDk0MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6Mjk6NTkgMjAxMiArMDEwMAoKICAgIE1ha2UgTUlCIGZpbGUgcGFyc2luZyBhbmQgZGV0ZWN0aW9uIG1vcmUgc3RyaWN0IC0gTEFCRUwgaXMgcmVxdWlyZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBNSUIgZmlsZXMuCgpjb21taXQgZTRiNjczNjgzYzY4YmE4YjNhYmMwNDBiOTEyNWVjMzA0NjQzY2M3YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMzowMDoyNCAyMDEyICswMTAwCgogICAgQXNzdW1lIHRoYXQgbGliZGwgbWlnaHQgYmUgaW4gQUdFTlRMSUJTIG9yIFNOTVBMSUJTIHNvIHByZWFkZCB0aGVtLgoKY29tbWl0IGIxM2MxZTU3YmVkYmE3OWI4MDYxMDNjNzRmMTkyMWQ1M2E3MDZiMzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjI6NTU6MDYgMjAxMiArMDEwMAoKICAgIERvIG5vdCByZXF1aXJlIHVjZC1zbm1wL2RsbW9kIHVubGVzcyBpdCB3aWxsIHdvcmsuCgpjb21taXQgMjdkY2VhMGQ1ZjgwMWRmNDk0YWIyY2I1YzVjMGViZTU0ZWIwZGNkMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6NDg6MjkgMjAxMSArMDEwMAoKICAgIEFkanVzdCBwYXRocyBmb3IgdGVzdCByZXN0cnVjdHVyZQoKY29tbWl0IDE0YjYwZTg1YTFiNTcwMGU5M2QxMjZlMmYyOTFkNWM0ODVmMzRlMzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjE0OjI5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGxtb2QgbW9kdWxlIGZhaWwgcmF0aGVyIHRoYW4gZ2VuZXJhdGUgYSBkdW1teSBtb2R1bGUgaWYgdGhlIGRsb3BlbiBmdW5jdGlvbiBpc24ndCBhdmFpbGFibGUuCgpjb21taXQgOThhOTc1MzhmYzFlOWZmNDZiNjBkNWQ5NjkzNDc0NDQ1NzgzNzhjMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTM6MzU6MTMgMjAxMSArMDEwMAoKICAgIEFkanVzdCB0aGUgcGF0aHMgdG8gc3VwcG9ydCB0ZXN0aW5nIGV2ZW4gaWYgYnVpbGRkaXIgIT0gc3JjZGlyCgpjb21taXQgODhmMGFmM2NmYjkxNmFlNTg2M2NjMjk4NjA3MWQ0MzVmMjBjMzA2NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTE6Mzc6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlcyAncCcgYW5kICdsZW4nLgoKY29tbWl0IDA4MTVhNzUzNmM3NmY3ZTQ4NDI2Mzg2ODNmNjc0ODk0YTFhOGNlMTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDo0Mjo1NCAyMDExICswMDAwCgogICAgUmVwb3J0IHByb2JsZW1zIHdpdGggU2V0VW5kbyBwcm9jZXNzaW5nCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NTQ0MAoKY29tbWl0IGViMmFiMjM3NDJjYTg2YzBiODljY2ZlOTFlYjZlYTM3NGJmM2FjYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDozNzozMSAyMDExICswMDAwCgogICAgQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBlcnJvciAoRVBJUEUpIG9uIGNsb3N1cmUuCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NzQ0NAoKY29tbWl0IGFhYzEwYmM0ZjA1M2MwMTRmMzgyZDY1OTNmYzMyYWI5NWUwYjFhNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxMjo1OTo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQ2Mzc2NzogSGFuZGxlIHBhcnNpbmcgc3ViaWRlbnRpZmllcnMgPiAyXjMxCgpjb21taXQgYmJjMDJlMzZlOTBjMWFhYjc4OTg1NjJmOTYzZjVjYWRiMjZlMTBiZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE3OjE1OjE2IDIwMTEgKzAwMDAKCiAgICBNb3ZlIHBhc3MvcGFzc19wZXJzaXN0IHRlc3RzIHRvIHRoZSBuZXcgbG9jYXRpb24KCmNvbW1pdCAzODk4YzA0ZmQ2Zjg5ODY3MDYyZmRmZWJmMzY4NTdhYjYxOWMwNDUwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTY6NTM6MjQgMjAxMSArMDAwMAoKICAgIEFkZCB0ZXN0cyBmb3IgcGFzcy9wYXNzX3BlcnNpc3QsIHN1cHBsaWVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZDVlZTNmMGExYTYzYmIxNzUyYzc0Y2JjYTU1YWEzZDQwYmY5YmYxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjU4OjUxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzQ0NDogRml4IFNJR19QSVBFIGhhbmRsaW5nCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDJhMTdiMzc0MzBjMTg1Mjk5OGMzNTg4ZTU0N2Q3ZWI2MWMwNmRhNzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo0NTozOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDQwOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBBZ2VudFggZXJyb3JzCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGZlNThhMGU1ZjRkNGUyZTJlY2JjYjQ3MzgyYjA4Y2IxZTRkZjM1MmMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODoxNjoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQ1Njc3MDogSGFuZGxlIChvYnNvbGV0ZSkgVUludGVnZXIgdHlwZSBwcm9wZXJseQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAxYmU4Y2YwOGE2N2E5MTg1NWZlZTFlYzRhMmQ4ZTA4N2M3ODEyNDU2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MDQ6MTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQzNzogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucwogICAgKGluIGxpbmUgd2l0aCBjb25uZWN0aW9ucykgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAwNjgwMzcyODkxMDdmYWEyYmEzZjVjZDJmYjAwYzE5NDk0YmI5YTA0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBhbnkgR0VUTkVYVCByZXF1ZXN0IE9JRCwgbm90IGp1c3QgYSBzaW1wbGUgd2Fsay4KCmNvbW1pdCBhNzRmYTUyODk4MzEyM2QzNTVhOGNkY2FhNzdkZDRlYjRiOGM2OTU5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6MDA6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHBhc3M6IFBBVENIRVM6IDM0OTM5NDogQnJpbmcgcGFzc19wZXJzaXN0dGVzdCBzY3JpcHQgaW50byBsaW5lIHdpdGggcGFzc3Rlc3QqCiAgICAoaS5lLiB1c2luZyB0aGUgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgb2YgTkVULVNOTVAtUEFTUy1NSUIpCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGJiZTY0OWViZmE2MWVhMjIzOTkxNzBiMzZiOTlkYjMwYTFkZTgwMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNjo1NDozOCAyMDExICswMDAwCgogICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZSB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzCiAgICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4gIEJhY2twb3J0IG9mIFNWTgogICAgcmV2aXNpb24gMTc2MzIgKHdoaWNoIHVwZGF0ZWQgJ3Bhc3N0ZXN0LnBsJyBidXQgbWlzc2VkICdwYXNzdGVzdCcpCiAgICBDb3JyZWN0IGluIGJyYW5jaGVzIDUuNSBhbmQgYWJvdmUKCmNvbW1pdCA4MmQwNmM3MjQ3YjIyYzhiMDFkNDViZjU1MDQxZDJmMWU2NDI3ZDQ5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6NDU6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NjcxOiBGaXggb3ZlcnJpZGUgaGFuZGxpbmcgb2YgT0lEIHZhbHVlcwogICAgUGF0Y2ggc3VwcGxpZWQgYnkgUGhpbGxpcCBPJ0Rvbm5lbGwKCmNvbW1pdCA4MjdjOGIyODgzMDE3MWZhYTljNjFkNTNlZmNhOWViNjYwMDU2MWMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTE6MjU6NDMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzQzMzg0NjogRml4IGZvciB1c2Ugd2l0aCBweXRob24gMi40Cgpjb21taXQgZjk4YTU0YTk5Y2FmN2I0NmIxMDBhOTIwZGI5NDJjYmNhOWM0MzkyNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEwOjEwOjM2IDIwMTEgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCBjOTZiM2I0ZDg1MzBhZDVlMGVmYjAzZjI0ZGFiNWU1ZjFhNDYwMDMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxODoyMSAyMDExICswMTAwCgogICAgQ29ycmVjdCB1c2UtYWZ0ZXItZnJlZS4KCmNvbW1pdCBjNTk3OGM4OWNkZTI0NDBmNGQyMGRhZGJjOWQxZGQ4ZGI1NjJkNTZlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyNSAxMToxNTo0NCAyMDExICswMTAwCgogICAgQ29ycmVjdCBkb3VibGUtZnJlZS4KICAgIAogICAgbmV0c25tcF90bHN0bUFkZHJfYWRkIHRha2VzIG93bmVyc2hpcCBvZiBpdCdzIGFyZ3VtZW50IHNvIGNhbGxpbmcgZnJlZSBvbiB0aGUKICAgIGFyZ3VtZW50IG9uIGZhaWx1cmUgaXMgaW5jb3JyZWN0LgoKY29tbWl0IGMxMzljYTEyM2I0NGJiM2I5YjZiZjkyMWUxNjA5Y2M0NWY2M2E2NjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjo1NTozMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1OTogRml4IHNwYXJzZWx5IGF1Z21lbnRpbmcgdHJpZ2dlciB0YWJsZXMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzRhZTAyMWIyZTYzODQ0MzcwODFjNTYyM2YzNjBjODg5NjM5MDE4OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI5OjU0IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIEJhc2VkIG9uIG1pYjJjIHBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYzZhY2NmOGM2NjI1NGZhOGM0ODc2N2VkN2RlYzc5NWRkYWZjNTIyZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI3OjExIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCgpjb21taXQgYTYxODI2YWQ4Y2E1NDY2MWQxZDkwOTcxMjUwM2JkM2E4YjMyZWVkMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMjIgMTg6MzU6NDYgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgICAKICAgIG15TWF0Y2ggaXMgdW51c2VkIGFzIG5tYXRjaCBpcyB6ZXJvIGFuZCBhbHNvIHNpbmNlIHJlZ2V4QnVmZmVyIGlzIGNyZWF0ZWQKICAgIHdpdGggUkVHX05PU1VCIHNldC4KCmNvbW1pdCBiYTRmYzgwZmUyY2ZkNWE1ZDg5MjMwZDhmMzcwM2U0ZmUwMWU2MDE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBEZWMgMjIgMTk6MjQ6NDAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDAyMzc2OiBmcm9tIExlb25hcmRvIENoaXF1aXR0bzogUmVjb2duaXNlIFJlaXNlckZTCiAgICBBbHNvIG1vdmUgdmFyaW91cyBGU1R5cGUgZGVmaW5pdGlvbnMgdG8gdGhlIGFwcHJvcHJpYXRlIGJsb2NrcwoKY29tbWl0IGI1YWM0YTA0ZGNkNTQ3MGQwOGQwMzMyMWFiY2QxZTk4MjYyMWU2ZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDJiMzdlNGU4ZjI1MGEwZDg4MjExOTlhNzRhYzNmNGU1YjdiN2JhYmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMTo1MSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IDNkMDgzNDUxNTZjNDE5MzMzZGU5NjlmMTNkMjFmY2VjN2UxOGU5NGQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozMjoyOSAyMDExICswMTAwCgogICAgRml4ZWQgdW50ZXJtaW5hdGVkIHN0cmluZ3MgYWZ0ZXIgc3RybmNweQoKY29tbWl0IGNkODU5YWQ1MWM0ZjE4ZDViMGZjNjlkZDY2OWZjYjA1MWM3OTg5NjkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDozOTozMyAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbWVtbW92ZSBzaXplCgpjb21taXQgMzBmZjU4ZDA5ZDRjOWQ1NDM4YmI2MjEwNTRmZDdhZDdhMmE1OTdlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjA3OjE5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBsZW5ndGggb2YgYnVmZmVyIHdoZW4gcHJpbnRpbmcgQVNOX0JJVF9TVFIKCmNvbW1pdCA2YzE0ODdlMWQzNjBkM2QyNjBhMzljYjFmNWIxNWRhOTc4Mzk1MDUzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDc6MzQgMjAxMSArMDEwMAoKICAgIEZpeGVkIHBvdGVudGlhbCBmcmVlIG9mIHVuaW5pdGlhbGl6ZWQgcG9pbnRlciBpbiBlcnJvciBjYXNlcwoKY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NDo0NiAyMDExICswMTAwCgogICAgRml4ZWQgdW5pdGlhbGl6ZWQgdmFsdWVzIGluIHVkcFRhYmxlCgpjb21taXQgYzQ0NjA4Njc5Yjg5NzUxMTc2ZjI4YTJlNTRkNTI4MmI0NmUyYTA1YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjU2OjEzIDIwMTEgKzAxMDAKCiAgICBVc2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIGFuZCBtYW51YWwgY2xlYXJpbmcKCmNvbW1pdCBhMDVjNWY5NTEzNDYxODI0ZTc5MDNhZTlhZTlhNmMzMzg2ZTMzODc5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NDA6NTAgMjAxMSArMDEwMAoKICAgIEZpeGVkIHByaW50aW5nIG9mIHVuaXRpYWxpemVkIHZhcmlhYmxlIHdoZW4gc2Vuc29yc19nZXRfbGFiZWwoKSBmYWlscwoKY29tbWl0IGU0YTVlZGM3MjM5M2JkM2RlOWJmMTJiY2ViYTlkODNiYmY3ZGU3MGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDozMToyNSAyMDExICswMTAwCgogICAgUmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBmYWUyZTViODM1YjhkZjFlYWU0N2U0Y2ViYjRlYjQwNGQ3MjgyMzc3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzE6MjEgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pdGlhbGl6ZWQgaWlkIGluIGVycm9yIGNhc2VzIGFuZCB3aXRoIGRlYnVnIGluZm8gZW5hYmxlZC4KCmNvbW1pdCA5ZDU4ZjgxYTkyMzljZmJjZmM4ZWJjZTM2N2QyMWU5YjNkY2IwMjhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzM6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCAwYmM4YzA4ZWRlYWU3YWUwOTVmMTE2MjU4YzIwYWU1NzY3ZDYwNjUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MjA6NTIgMjAxMSArMDEwMAoKICAgIEZpeGVkIHJldHVybmluZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlICdzdGF0dXMnIHdoZW4gc3MgPT0gTlVMTAoKY29tbWl0IDhjZDNiZTYwZDY5M2M5YzM2ZmZiOTdkM2Q5YmNiNDljMWI0YWJlMzUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDE3IDA4OjUyOjI0IDIwMTEgKzAxMDAKCiAgICBBdm9pZCByZXBldGl0aW9uIG9mIHRoZSBjb21wbGV4IGV4cHJlc3Npb24gZGV0ZXJtaW5pbmcgaWYgaXQgaXMgcG9zc2libGUgdG8gZ2V0IHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzLgogICAgCiAgICBUaGlzIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gcGxhdGZvcm1zIGxpa2UgU29sYXJpcyAxMCB0aGF0IGRlZmluZQogICAgSVBfUkVDVkRTVEFERFIgYnV0IGxhY2sgZWl0aGVyIG9mIG1zZ2hkci5tc2dfY29udHJvbCBhbmQgbXNnaGRyLm1zZ19mbGFncy4KCmNvbW1pdCA5NTNmMmUzZDQyNWVkZTNiODYzYTJlN2NjYjBiNGJjODYyOTI4YjU3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiA1IDIyOjEzOjA3IDIwMTEgKzAxMDAKCiAgICBNb3ZlIHRoZSB1c2Ugb2YgX3NlbmR0byBhbmQgX3JlY3Zmcm9tIGJlbG93IHRoZWlyIGRlZmluaXRpb25zLgoKY29tbWl0IDY4YTExNzNjNDZjZjc3NjAxNDI2Y2YzOTFkOWE4NTI3OTRmMjA1N2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDIwIDIwOjA1OjE4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXBhcmF0ZSBvdXQgdGhlIGNtZXNnIGJ1ZmZlciBzaXplCgpjb21taXQgNDYxZGQxNmYzYjI2NDczMjJjZGNlNjM2MzA4MWNjNDRiYTVhNDliNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMjYgMjE6NTE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1lcmdlIHRvZ2V0aGVyIHRoZSBMaW51eCBhbmQgKkJTRCB2ZXJzaW9uIG9mIHNyYyBwb3J0IHNlbmRpbmcuCgpjb21taXQgN2FjY2I2OWJhYTFmYzBiNmEzNDM5ZDJlNTQ5Yzg2ZGEzNDUzYmFkMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MzA6MzEgMjAxMSArMDEwMAoKICAgIFVzZSBhIGJhcmUgc3RydWN0IGlvdmVjIGluIGluc3RlYWQgb2YgYSBvbmUgZWxlbWVudCBhcnJheS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gbWFrZSBfcmVjdmZyb20gbW9yZSBzaW1pbGFyIHRvIF9zZW5kdG8uCgpjb21taXQgMzk4NTJjZDRjODVlZjJiZmM3NWNkZWEyODI1MjYxZWU5M2U3NjhjMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjk6MjAgMjAxMSArMDEwMAoKICAgIEFkZCBjb21tZW50IGRlc2NyaWJpbmcgdGhlIHB1cnBvc2Ugb2YgdGhlIGNhbGwgdG8gZ2V0c29ja25hbWUgYWZ0ZXIgYWxtb3N0IHJlbW92aW5nIGl0LgoKY29tbWl0IDFiMjkyY2EyN2VhYjVjYWE3M2ZlYWFhODNkYzljMTJhYmMwZjJlNzAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI3OjU5IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUuCgpjb21taXQgYmM4Nzk1NzFlY2E5NTIwYmMxMzJmODQwYzNlNjU5ZDM3OTMxNDRkNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MjU6MzYgMjAxMSArMDEwMAoKICAgIEludHJvZHVjZSB0ZW1wb3JhcnkgdmFyaWFibGVzIHRvIGVhc2UgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIHNlcnZlciBhZGRyZXNzLgoKY29tbWl0IGI3ZWVhNmNmZmJkODcyOTMyY2UyYzA0ZmVmYjZmNDNkZTMzOWYzNzQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE4OjMzIDIwMTEgKzAxMDAKCiAgICBSZW5hbWUgdGhlIGNtZXNncHRyIHZhcmlhYmxlIHRvIGNtLgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGluY3JlYXNlIHRoZSByZWFkYWJpbGl0eSBvZiB0aGUgY29kZS4KCmNvbW1pdCAwYTc0NjFlNzI4ODA1YzYyYTFjYWI5ZDg3YmZjNzRjNzkyN2E5ZmNjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxNToyMiAyMDExICswMTAwCgogICAgRmFjdG9yIG91dCBhIGNvbW1vbiBsb29wIGluIHJlY3Ztc2cgb3B0aW9uIHByb2Nlc3NpbmcuCgpjb21taXQgYjNjNjI0OGQwMjAxYWIxNjEwODQwZDZkMGU3NDliM2I2YzRhZDc5MgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTM6NDMgMjAxMSArMDEwMAoKICAgIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgTGludXggYW5kIEJTRCByZWN2bXNnIG9wdGlvbiBwYXJzaW5nIHNvbWV3aGF0LgoKY29tbWl0IDM1NjQwMGQ2MjkwYTQyM2I1MmViZWVhNWE1ZTk3NmZiMTViYjczYjQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjA0OjU2IDIwMTEgKzAxMDAKCiAgICBVc2UgQ01TR19EQVRBIG9uIHRoZSByZXN1bHQgb2YgQ01TR19GSVJTVC9ORVhUSERSLCBub3Qgb24gdGhlIGJ1ZmZlci4KCmNvbW1pdCAzYjM1MTcwOGM2MmRlNDZhYTFiOTBlZDIzMmNmZDhjN2M1YjAyMjMxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEyOjAwOjMyIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgYSBjYXN0Cgpjb21taXQgZGU5MjUwZDlkYWU5NzI3YTZjYzdmNjQ3Njg4ZGRkZjFiODU5NzEyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMTo1ODowNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3ByaW50X21pYl9vaWQoKSB0cmVhdCBPSUQgY29tcG9uZW50cyBhcyB1bnNpZ25lZCBpbnN0ZWFkIG9mIHNpZ25lZCBpbnRlZ2VycwoKY29tbWl0IDBlMzNiM2I2ZDU4NTRhNGJhYzE1ZDRlYTVlMDE2YzUzZDE2MWQwY2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTA6MDI6MjggMjAxMSArMDEwMAoKICAgIEZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgNzNjOWVlNDJkMjhhZmUyZTEwN2E3ZDY2MTZiNmQwMTE4OTBjMzZlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwOTowOTo1OSAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzZGI5Nzk2MmIzN2ViMTJkMjU0ZDYxZTZiZTIzNGIwNmEzOTFjOGJiCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IERlYyA4IDA3OjQzOjQ1IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzQ1Mzg2ODogZnJvbSAiQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+IjogRmFjdG9yIGNvbW1vbiBjb2RlIGludG8gcGFzc19jb21tb24KICAgIAogICAgTW92ZSB0aGUgY29kZSBmb3IgcG9ybWF0dGluZyBhbmQgcHJpbnRpbmcgdmFsdWVzIGZyb20gcGFzcyBhbmQgcGFzc19wZXJzaXN0CiAgICBpbnRvIHBhc3NfY29tbW9uLgoKY29tbWl0IGI2NTY4YzgzZjE3NTZlOWE2NTQzNGVkZWVlYjQwZDIzZGRiYmI2NTIKQXV0aG9yOiBjY2NoaXUgPGNjY2hpdUBzb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyA3IDE2OjI1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTIwNjk6IEZpeCBzbm1wdHJhcF9vaWQgZGVjbGFyYXRpb24gaW4gbWliMmMgZ2VuZXJhdGVkIGNvZGUKICAgIAogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgY29uc2lkZXJhYmxlIHRpbWUgYWdvLiBJdCBkaWQgYWxyZWFkeSBleGlzdCBhdCB0aGUKICAgIHRpbWUgdGhlIDUuNiBicmFuY2ggd2FzIGNyZWF0ZWQgKHNlZSBhbHNvIGNvbW1pdAogICAgMGVjMDg4YWZhMjdjZmRhNGU2ZWE3OGFhZTdjZmM1NTA3NTY0ZWRkZSkuCgpjb21taXQgM2VmZWZiYzAwMjQzOTk3ODZmOGI2OGIxZTkzYjBhOGZkZGRkYzdkYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDo0MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCA3ZjA1ZGFhOGUwZTBmNTMzYjBmMTJhM2UxY2YwNzY0MTUxOTkwOWQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDExOjU4OjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDQ5Mzk6IEJVRzogMTc5Njg4Njogc25tcGxpYjogQXZvaWQgdGhhdCBzcHJpbnRfcmVhbGxvY19vY3RldF9zdHJpbmcoKSBlbWJlZHMgdW5wcmludGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIG9yIGJpbmFyeSB6ZXJvZXMgaW4gaXRzIG91dHB1dC4gVGhpcyBiZWhhdmlvciBjb3VsZCBjYXVzZSB0cnVuY2F0ZWQgb3V0cHV0IGluIHNubXB0cmFwZC4KCmNvbW1pdCBkYjhmNTU4ZmQyZjNiN2MxMDllYTNhMWMyMTMzYjc1YjZmOGNiMmFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDb21waWxlciB3YXJuaW5nIGZpeDogcGFzcyB1bnNpZ25lZCBjaGFycyB0byBpc3ByaW50KCkgaW5zdGVhZCBvZiBzaWduZWQgY2hhcnMuCgpjb21taXQgODAwZGMxMDI4ZTdlMGNkOGNjMTRkODRkZDMxNzIzZDQ3YWMwNzNkYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBEZWMgMSAxMDoxODo1OCAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgaGludCB2YXJpYWJsZQoKY29tbWl0IDgzZWE0YTA4MGM5MGE3NGI5NzQzZDNmMjRjZjBkNGI4YTFlOGM4NDkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTm92IDI3IDIxOjE2OjUyIDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBxb3MKCmNvbW1pdCA3YjllMDM0NDFjM2RjM2EwNzY3MGVkMDFmNWQwNDc5MWE4MmM3NTBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowNDowMSAyMDExICswMTAwCgogICAgUmVtb3ZlICNkZWZpbmUgdmFsKHgpIF9fU1RSSU5HKHgpIGFuZCBjaGFuZ2UgdmFsKHgpIGludG8gX19TVFJJTkcoeCkuCgpjb21taXQgMmYzNzliMGU0ZWNhZGZhNGU1NDFlMzAwNWM4ZmM4MjgxODgyYjc0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTU6NTg6NDcgMjAxMSArMDEwMAoKICAgIEZvbGxvdy11cCBmb3IgY29tbWl0IDFhYTcwNGU6IHVuYnJlYWsgdGhlIE1TVkMgYnVpbGQKCmNvbW1pdCA2NGVmMGY3MTEyNzYxNzgzNzAyN2ZiMmNmYWYxNzRiOTViYTc5ZTBkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDoxOTo1MCAyMDExICswMTAwCgogICAgQWRkIFNOTVA6OnJlZ2lzdGVyX2RlYnVnX3Rva2VucygpCgpjb21taXQgN2JlYWQ5Y2E5MTdjNjc1NjZkNWVkOThhYjUwN2JiYzAyODE2MjE3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDg6MDggMjAxMSArMDEwMAoKICAgIEFnZW50WCBzdWJhZ2VudDogUmVkdWNlIGNvZGUgZHVwbGljYXRpb24KCmNvbW1pdCAwZWQ3MTU0MWY4N2U3ZDc4YmM5OThlZWJkYTMyMTdjNTllMWRmODMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMzoxOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIERveHlnZW4tc3R5bGUgZnVuY3Rpb24gaGVhZGVyIGZvciBuZXRzbm1wX3JlZ2lzdGVyX2RlZmF1bHRfdGFyZ2V0KCkgYW5kIG5ldHNubXBfY2xlYXJfZGVmYXVsdF90YXJnZXQoKS4KCmNvbW1pdCA4YzI5NzJiNjFlNDAxNjliNDdjNTA5ODhiNmFlOWU4YzI4NWY4NGY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowMjo1NCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogRml4IHNwZWxsaW5nIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBTTk1QIG1vZHVsZQoKY29tbWl0IDVkZjJiYWM2YmQ3MTc3OTkzMTFmMDAxYWM3YjczZGI4OGYxMWJkZGEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjU5OjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBPbmx5IHRyYW5zZm9ybSB0aGUgYWRkcmVzcyB0byBwcmludGFibGUgZm9ybSB3aGVuIG5lZWRlZC4KCmNvbW1pdCAxNzFlOGQ0OGQ0YWYwNDAxM2NmZjhmZDI4ZjUzNDFhMmFlZjIxZDg4CkF1dGhvcjogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTY6NDk6NDYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXAtYnJpZGdlLW1pYjogRml4IGluZGV4IGludGVycHJldGF0aW9uLgogICAgCiAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgd3JvbmcgZGF0YSBpbnRlcnByZXRhdGlvbi4KICAgIHNubXAtYnJpZGdlLW1pYiBvYnRhaW5zIHRoZSBpZmluZGV4IHZhbHVlIGZyb20gdGhlIHN5c2ZzCiAgICBhdHRyaWJ1dGUgJ2lmaW5kZXgnIFRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3lzZnMgYXR0cmlidXRlCiAgICBpcyBhbiBpbnRlZ2VyLCB3aGljaCBpcyBoYW5kbGVkIGFzIGhleCBhbmQgbGVhZHMgdG8KICAgIGluY29ycmVjdCBkYXRhIGRpc3BsYXllZCB0byB0aGUgdXNlci4KICAgIAogICAgZS5nLgogICAgICAgICQgPiBzbm1wd2FsayBsb2NhbGhvc3QgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMgogICAgICAgIEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIgPSBJTlRFR0VSOiA1NAogICAgCiAgICBhY2NvcmRpbmcgdG8gdGhlIHN5c2ZzIGF0dHJpYnV0ZSB0aGUgdmFsdWUgaXMgMzYKICAgIAogICAgICAgICQgPiBjYXQgL3N5cy9jbGFzcy9uZXQvPGRldmljZT4vaWZpbmRleAogICAgICAgIDM2CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KCmNvbW1pdCA4MmUzOWZiNjcwNmRmOTBlY2YyZmM5ZTEwYWRhMmI5NjJlZTE5NmYzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMTI6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEZpeCBtdWx0aS1saW5lIGNhc2UgdGVzdGluZyBvZiBpbmNvbWluZyBPSUQKCmNvbW1pdCBiMTVkYTFhNDUxNjA2MTEwNWExZWFjNzQ1MGNmNjUwZWM0NDI2NmIyCkF1dGhvcjogTmlrb2xheSBEZW5ldiA8bmRlbmV2QGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDA4OjI5OjQ5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBGcmVlQlNEOiBSZXN0b3JlIElQX1JFQ1ZEU1RBRERSIGZ1bmN0aW9uYWxpdHkuCgpjb21taXQgODg2N2ZkMWRjZmU3MmI1OWQwNzMyMmZmMzhhNjk5YjY2ZWM0ZjMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBOb3YgMjIgMDk6NDQ6MzggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgcm9idXN0IGFnYWluc3QgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMuCiAgICAKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgTkVUU05NUF9MQVJHRV9GRF9aRVJPKCkgdXNlIG1lbXNldCgpIG9uIFVuaXggc3lzdGVtcyBpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IGxvb3AuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHN1cmUgdGhhdCBvbiBVbml4IHN5c3RlbXMgbmV0c25tcF9sYXJnZV9mZF9jbHIoKSBkb2Vzbid0IHRyeSB0byByZWFkIG1lbW9yeSBpdCBpc24ndCBhbGxvd2VkIHRvIHJlYWQgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfaXNfc2V0KCkgcmV0dXJuIGZhbHNlIG9uIFVuaXggc3lzdGVtcyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IFdpbmRvd3M6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgc2hyaW5rIGJlaGF2aW9yIGNvcnJlY3QuCgpjb21taXQgODBlZTQwMjJlNTM0ZTY0YWFkNWE1ZjI3MTkyODQzYjQyYWNiODVlMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MTQ6MDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IE1vdmUgbmV0c25tcF9wYXNzX3N0cl90b19lcnJubyB0byBwYXNzX2NvbW1vbiBhbmQgcmVuYW1lIGl0IHRvIG5ldHNubXBfaW50ZXJuYWxfcGFzc19zdHJfdG9fZXJybm8KCmNvbW1pdCAwYmFhOTI5NmMwNzJiYjM3MzU3NjBiMGRkOTkyZjJkMWQzY2EyN2ZhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOTowNToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogQ29ycmVjdCB0aGUgZGVwZW5kZW5jaWVzIG9mIHVjZC1zbm1wL3Bhc3MgYW5kIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdAoKY29tbWl0IDFhYTcwNGU0YTI5NDQzMGIyOGUzOWI2ZjllNDY4M2I4YTQ4YmNlMDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA4OjM1OjIxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRmFjdG9yIG91dCBhc2MyYmluIGFuZCBiaW4yYXNjLiBBZGQgYSBuZXRzbm1wX2ludGVybmFsXyBwcmVmaXggdG8gdGhlbQoKY29tbWl0IGNkYThmZTkxMDEzZjEyY2JmNjRhMDc3NWFiYjU1NzIwMDM1YWY5MzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDAwOjU1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQ2FsbCBzbm1wX29pZHRyZWVfY29tcGFyZSBpbnN0ZWFkIG9mIHNubXBfb2lkX21pbl9jb21wYXJlCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNubXBfb2lkX21pbl9jb21wYXJlIHNpbmNlIGl0IGlzIGludGVybmFsIGFuZCB1bnVzZWQKCmNvbW1pdCA4NWY4OTNlMmI2MDVlNjdmOWJkMDQ0M2M3NGUyZWQyNjlhYTY4NTY0CkF1dGhvcjogTmlraSBEZW5ldiA8bmlraV9kQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDE3IDIyOjQyOjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKQogICAgCiAgICBUaGlzIGh1bmsgZmVsbCBvZiB3aGVuIHRoZSByZXN0IG9mIHRoZSBwYXRjaCB3YXMgbWVyZ2VkLgoKY29tbWl0IDVjOTEzZTU0NjU2YWUwMDk2YjFmZWI2ZGE5OGI1ZmM5Y2E4MWYyNzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMzOjA3IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgdGhlIGZ1bGwgTmV0QlNEIGhpZXJhcmNoeSBkb3dud2FyZHMKCmNvbW1pdCBiODgxODQxYmQwNDkzZGQ3MWQ2MzI1OWJkZGVkNDQ5YjA2ZjAyYzMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMDozMyAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGNhMjk0Y2Y3NWJiYzhlOTBkYmY0NGVlNDA0Nzg5MzVlOTFkYjE0ODcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE4OjAzIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IDg4MzEzNmMyYjJmYTA3MzlmNDM3YThjZmI2NjE0YWNjYzc2ZTI2OGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE1OjU4IDIwMTEgKzAxMDAKCiAgICBNb3JlIG5lZWRzIGZvciBORVRTTk1QX1BSSW8gZm9ybWF0IHNwZWNpZmllcgoKY29tbWl0IGI4MDg0YTdjY2M5MDliNmQ2ZGI3YzBlOGU1OTZkNzg2NzFmNTY3OGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE0OjI2IDIwMTEgKzAxMDAKCiAgICBGaXggdXNpbmcgY2hhciBhcyBhcnJheSBpbmRleCAoY3R5cGUuaCkKCmNvbW1pdCA0YmQwMzUyOTU1YTI1NTFiZmUwMjMwOGRkMTM0YjkxMjhjOThiOWU5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1OTozNiAyMDExICswMTAwCgogICAgRml4IHBhcmFudGhlc2lzIHByb2JsZW0KCmNvbW1pdCBmZTYyNjliMTkwMGNmNDRkYzI3YTE5OWE3NjFkMTVhMDFjM2YzMDkyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMjo1ODozNCAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDEzOjM3OjQ5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MKCmNvbW1pdCAyNWNmYzE5NjJhZTU3NmNjYjE1NThkYTFlM2VmOGI2YzE3ZjYzYzE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMToyNzo1MyAyMDExICswMTAwCgogICAgUmVhbGx5IHVwLXRvLWRhdGUgbWlicwoKY29tbWl0IDBlODZjNzgxZjM5ODliZjAyMmM4OTkzYTExODYxN2I3NGE3NTQyMGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE3OjE5IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGdldCBTaG1lbSBmcm9tIC9wcm9jL21lbWluZm8gZm9yIDIuNiAob3IgbmV3ZXIpIGtlcm5lbHMKCmNvbW1pdCBiZjI2NGQxNWRlZDdhY2JiZjJlMzg3MWI5OGZkMWZjZWY0M2Q5ZWMzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNjoxNiAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBjbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA1N2ZmOGE0MGJhZTVkOWJjYWQxNjA4OTE0MmE5Y2YzMjhjOWZhMWY1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNDo1NyAyMDExICswMTAwCgogICAgZGlzbWFuL3BpbmcsIGRpc21hbi90cmFjZXJvdXRlOiBDbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKCmNvbW1pdCA4YTI1MDJhMTVjMzIxN2I5NTkzOWEzYzgzNjE2N2QyMzBhYzM1ZjAyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxMzo1MyAyMDExICswMTAwCgogICAgVXAtdG8tZGF0ZSBsaXN0IG9mIFJGQ3Mgd2l0IG1pYnMKCmNvbW1pdCBkY2RkNzAyMTExZDhkYTVmNTM4MDRjZmNmMGRmZGFkNzMxNDY4YmRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBOb3YgMTUgMTA6NTc6MzQgMjAxMSArMDAwMAoKICAgIERvbid0IHRyeSB0byBpbnN0YWxsIGFuIGVtcHR5IGxpc3Qgb2YgbWFuIHBhZ2VzIChNQU4zKQoKY29tbWl0IDQzNGJmYzFmNzQ1NzU1MGI2Zjg3ZDViY2Q1MTEyNzZiMjcwYjU5NjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMToyMjo1MyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gTWFydGluIFdpbGNrOiBmaXhlZCBzbm1wZCBjcmFzaGluZyB3aXRoICdzZWxlY3Q6IGJhZCBmaWxlIGRlc2NyaXB0b3InLgogICAgCiAgICBPbiAzMi1iaXQgc3lzdGVtcywgc25tcGQgZGllcyB3aXRoIGFmb3JlbWVudGlvbmVkIG1lc3NhZ2Ugd2hlbiB1c2luZyBmaWxlIGRlc2NyaXB0aW9ucyA+IDMyLCBlLmcuIHdoZW4gaGF2aW5nID4zMiBBZ2VudFggc3ViYWdlbnRzLgoKY29tbWl0IGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAxOjIxIDIwMTEgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCgpjb21taXQgZWFjYTc5ODNlMzY1NWFiNjk2ZmNjNDQ2MWNhMGNlZGJhYzZjZTY5YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDA6MTIgMjAxMSArMDEwMAoKICAgIE5ldEJTRC02OiBPbmUgbW9yZSBpbnN0YW5jZSBvZiB0aW1lc3BlYyByZXBsYWNpbmcgdGltZXZhbAoKY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU1OjQzIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDM2NTI4OiBzd2luc3RfcGtnaW5mbzogcmVjb3ZlciBmcm9tIE5VTEwgcmV0dXJuIGZyb20gb3BlbmRpcgoKY29tbWl0IGQ3YWQ4ZjVmOWYzZjY3ZjE2ZjY1YzI1MTVkMTFlMTk0ZDJjZGQxMmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBDeWd3aW46IE1ha2UgZGF0ZV9uX3RpbWUoKSBwcm9kdWNlIHRpbWUgem9uZSBpbmZvcm1hdGlvbgoKY29tbWl0IGJhMzVjNTBiMmY0NTliZDljMTFlZDU5Y2M3ZDFiMTYyMTU2NDRmYTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjE3OjA0IDIwMTEgKzAxMDAKCiAgICBSZXBsYWNlIEFDX1RSWV9MSU5LKCkgYnkgQUNfTElOS19JRkVMU0UoKQogICAgCiAgICBOb3RlOiB0aGVzZSBjaGFuZ2VzIGRvIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgoKY29tbWl0IGY2MTViZjI0ZjVkMGYyM2NlOTMwMWRhNTU2MTg0ZDY0NjA3NDA0NTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzI6NDkgMjAxMSArMDEwMAoKICAgIEZpcyBCdWcgIzM0MzQ4MjQ6IFNJR1NFR1Ygd2hlbiByZWFkaW5nIGRpc2sgZGlyZWN0aXZlIGFmdGVyIFNJR0hVUAoKY29tbWl0IGE5NGExNzlkOTM0MGY1MWZhN2MyMzQzMTYzMGJjMGZmZDZkNzU5ZTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzA6NTEgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzM2MTY6IGRvbnQgdHJlYXQgRGF0ZUFuZFRpbWUgYXMgYSBzdHJpbmcKCmNvbW1pdCBiMjllNDE2NDUzMWQyNThmZTM0YTZmZTJiOWUxZWM2MGM1NmY5NTQ0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiA3IDAxOjI1OjU3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgMmU3ZTllZGEwYjBkNjJhNzY0NWE5YThmNzBlZjNmYjZmM2RkNjk0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxMToxNzo0OCAyMDExICswMTAwCgogICAgRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZ3MuCgpjb21taXQgMzQ2MmViY2RkMGI3YzI5OGNiMTVjMzA5OTczNmY0Zjk1MjI1Nzg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgMjggMTY6MDc6MTUgMjAxMSArMDIwMAoKICAgIFJlbW92ZSB0aG9zZSBzdXBlcmZsdW91cyBwYXJlbnRoZXNlcyB0aGF0IHRyaWdnZXIgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDNlNWZlZGQzZTdkMWVmMzE2ODM2MDRiZjczZGM1NmU5NDRjYWQzNDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAzIDA5OjQ1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBhZnRlciAzMCBkYXlzIG9mIHVwdGltZS4KICAgIAogICAgQWZ0ZXIgMzAgZGF5cywgdmFsdWVzIGZyb20gL3Byb2Mvc3RhdCAob24gTGludXgpIGNhbiBnZXQgYmlnZ2VyIHRoYW4gMzJiaXRzIGFuZCBzbm1wZCBjYWxjdWxhdGlvbnMgbWlnaHQgcmVuZGVyIGNvdW50ZXJzIGxpa2Ugc3NDcHVVc2VyIG5lZ2F0aXZlIG9yIHplcm8sIHdoaWxlIHRoZSByZWFsIHZhbHVlIGlzIGhpZ2hlci4gVGhlcmVmb3JlIHRoZSBjb3VudGVycyBzaG91bGQgYmUgdHJhY2tlZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGF2YWlsYWJsZS4KCmNvbW1pdCAwZmM4MjIxYjI0OTg4YzRhZTYxODBlZDQyYjg2Yjk4NTJmZDU4NmFkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIyOjU5OjA4IDIwMTEgKzAxMDAKCiAgICBkc2tJbmRleCB3YXMgb2ZmIGJ5IG9uZQoKY29tbWl0IDI4MDFhMjEzOWYyNzAyMWUxYWIxNWUzNjJlMmQzZDYyNGZmYWE0OTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjU1OjUzIDIwMTEgKzAxMDAKCiAgICBQYXRjaCAjMzQwNjM2NDogRml4IHVuc3RhYmxlIGRhdGEgZm9yIE5ldEJTRC4KCmNvbW1pdCA4MjFhNThkMTEyZDdhYzQ5NTE0OWUyNjJkNzA0NDEyYmEyODAwNDM4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo0Mzo1MiAyMDExICswMTAwCgogICAgRml4IGlwdjYgc3RhdGlzdGljcyBsb29waW5nIHRvbyBmYXIgd2hlbiBzY2FubmluZyBpbnRlcmZhY2VzLgogICAgRml4IFRDUCBzZXNzaW9uIHRhYmxlIHJlcGVhdGluZyBkYXRhIGZyb20gZmlyc3QgZW50cnkgZm9yIGFsbC4KCmNvbW1pdCAzNDk1OTFkMDNlMTdhNTViNDNlYWNjNmE2ODdiMDJmZDhkNGU5NTI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE9jdCAzMSAwODo1OTozNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBwZXJsIHN1cHBvcnQgd2l0aG91dCBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMuCgpjb21taXQgMWVjNzExMGU3MmJjZTE1NjFmNzQ2NTE3NDU5ZDZmMDQzMDE2YjYwZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMzAgMTk6MDU6MzAgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIGFzbjEgdGVzdCBwYXNzIGV2ZW4gaWYgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzIGFyZSByZW1vdmVkLgoKY29tbWl0IDZkMjY5MThhZjU1YWEzNjYyYTcyMDU0MmRlNzdiYmYzOWIwYTNlOTEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDI5IDA4OjM0OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaW50ZWdlcjY0IGluIHBhc3Mgc2NyaXB0cyBpZiBjb21waWxpbmcgd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KCmNvbW1pdCAyOWJmNjlkNzA0MjRmMzU5ZDljODdmMDdhOTY0YTA5OTQxNTY0OWE1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgogICAgCiAgICBUaGlzIGlzIGEgYmFja3BvcnQgb2YgY29tbWl0IDlmNjUzZjcuCgpjb21taXQgMmM0NWY5MmNmY2I1YjA1ZTA0OTIyNmE1YTc4ODNhMGIxMDYwMTFhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMTA6NDI6MjkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBwYXNzaW5nIGEgY29uc3QgcG9pbnRlciB0byBhIGZ1bmN0aW9uIGFjY2VwdGluZyBhIG5vbi1jb25zdCBwb2ludGVyLgoKY29tbWl0IDI3NWQyM2VkZmRlYmUwNTc3YjA4NDIxZTRjNmM5MzZhZTM5YjdmZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMzOjA5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2V0LWJ1dC1ub3QtdXNlZCB2YXJpYWJsZXMKCmNvbW1pdCA0NDk1ZTE3YzA3OGFjNjk5N2E5YzdmYTFhODhkYjA2NDRlOTE5NDkxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMjo0NiAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IDEzOTUyZjZiZWU5ZjQwODg2N2FiNmQyZmRmZGRlNGYyODQwNzQ5NTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAyNiAxNDowNToxNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogZnJvbSBTaWRkaGVzaCBQb3lhcmVrYXI6IHByb3Blcmx5IGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBpbiBhIHN1YmFnZW50IHdoZW4gd2UgcmVjb25uZWN0IHRvIG1hc3Rlci4KICAgIAogICAgQW4gc25tcCBzdWJhZ2VudCBsaW5rZWQgYWdhaW5zdCBuZXQtc25tcC1saWJzIG1heSBjcmFzaCBpZiBpdCBoYW5kbGVzIGEKICAgIHJlc3BvbnNlIHdoaWNoIGhhcyBtYWdpYyByZWZlcnJpbmcgdG8gYW4gb2xkZXIgZGlzY29ubmVjdGVkIG1haW4gc2Vzc2lvbi4gVGhpcwogICAgbWF5IGhhcHBlbiB3aGVuIHRoZSBzdWJhZ2VudAogICAgYXR0ZW1wdHMgdG8gY2xlYW4gdXAgb2xkIHJlcXVlc3RzIG9uIHJlY29ubmVjdGlvbiBvZiB0aGUgZGlzY29ubmVjdGVkIG1hc3RlcgogICAgc2Vzc2lvbi4KCmNvbW1pdCBhZTA1MjQ3MmIyMjcyMGQwODM2OWU4NTEyN2RiMjE0MjQ1ZGYyZTNmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMjUgMTY6MTU6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIHNlZ21lbnRhdGlvbiBmYXVsdCB3aGVuIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAgCiAgICBXaGVuIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlciBmYWlscywgaXQgZnJlZXMgaXRzIHJlZ2luZm8gLT4gbnNhaHJfREVTVFJPWSAoYW5kIGFueSBvdGhlciBmdW5jdGlvbikgbXVzdCBub3QgZGVyZWZlcmVuY2UgaXQuCgpjb21taXQgYzE5OWJmOTFiNjIzOWYyNmIyYWFiMzRlODU3NWUwZjBkZjljZGU5YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDI0IDE0OjI1OjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogeGZzLCBqZnMgYW5kIHZ4ZnMgZmlsZXN5c3RlbXMgYXJlIG5vdyByZWNvZ25pemVkIGluIGhyU3RvcmFnZVRhYmxlCgpjb21taXQgNzQ3ZmRjNzFlNjRkMDllMDgwOTI4ZWJiYjRkMDRjYmRlMzkwNjc5OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMTU6NTc6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBMb3dlcmVkIHNldmVyaXR5IG9mICdlcnJvciBmaW5kaW5nIHJvdyBpbmRleCBpbiBfaWZYVGFibGVfY29udGFpbmVyX3Jvd19yZXN0b3JlJyBtZXNzYWdlLgogICAgCiAgICBUaGUgbWVzc2FnZSBpcyBzaG93cyB1cCB3aGVuIHNubXBkIGlzIHN0YXJ0ZWQgYW5kIHRoZXJlIGlzIGRpZmZlcmVudCBzZXQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHRoYW4gaXQgd2FzIHdoZW4gc25tcGQgd2FzdCBsYXN0IHN0b3BwZWQuIFRoaXMgaXMgY29tbW9uIG9uIHBwcC1zZXJ2ZXJzIG9yIHZpcnR1YWwgaG9zdHMuCgpjb21taXQgYzExYWRhYTEyOTE1YWJmZWU2MjliYjZjMDI2YzIxZjIxODViMjE2ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjQ6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IGNvbXBpbGluZyB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiB3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYSBjb21tZW50Ii4KCmNvbW1pdCBiMTdhNzJhNzkzNDgzYWVlNGE1YmIyZjJlMmM3ZjRmZDg2OTgxN2U2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyMjoyMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgdGhlIFBBQ0tBR0VfKiBtYWNyb3MgZGVmaW5lZCBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgaW4gYSBwYWNrYWdlIHRoYXQgdXNlcyB0aGUgR05VIGF1dG90b29scy4KCmNvbW1pdCAyMTFkY2I0OTMwNjU2MWUzNWJhM2MyMTNiZTdjZmEyNTdiNDBhOGU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNTo1Mjo0MyAyMDExICswMjAwCgogICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcwoKY29tbWl0IDRjODNiOTIyOWE3NDU0ZjM0ZjZmZjc1ZjY5ZTY3ZTQwMzBjNDE5YjUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTU6NTg6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNldCB0aGUgcnBhdGggZm9yIGxpYnBlcmwuc28gaW4gbGlibmV0c25tcG1pYnMuc28gc3VjaCB0aGF0IHRoZSBkeW5hbWljIGxpbmtlciBjYW4gZmluZCBsaWJwZXJsLnNvIHdpdGhvdXQgcmVxdWlyaW5nIHRoZSB1c2VyIHRvIG1vZGlmeSB0aGUgZHluYW1pYyBsaW5rZXIgc2V0dGluZ3MuCiAgICAKICAgIFRoaXMgY2hhbmdlIGluIGFnZW50L01ha2VmaWxlLmluIGlzIG5lY2Vzc2FyeSBvbiB0aGUgNS41IGJyYW5jaCBhbmQKICAgIGxhdGVyIGJ1dCBub3Qgb24gdGhlIDUuNCBicmFuY2guIFRoYXQgaXMgYmVjYXVzZSB0aGUgNS40IGJyYW5jaCB1c2VzCiAgICBhbiBvbGRlciB2ZXJzaW9uIG9mIGxpYnRvb2wgdGhhdCBwcm9wYWdhdGVzIHRoZSBycGF0aCBvZiBkZXBlbmRlbnQKICAgIGxpYnJhcmllcy4gVGhpcyBpcyBjYWxsZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmN5IHRyYWNraW5nIGluIHRoZQogICAgbGlidG9vbCBtYW51YWwuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBwcmVzZW50IGluIGxpYnRvb2wgdmVyc2lvbiAxCiAgICBidXQgbm90IGluIGxpYnRvb2wgdmVyc2lvbiAyLiBGb3IgbW9yZSBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIGFib3V0CiAgICBkeW5hbWljIGxpYnJhcmllcyBhbmQgcnBhdGhzLCBzZWUgYWxzbyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgdGl0bGUKICAgICJScGF0aElzc3VlIiBvbiB0aGUgRGViaWFuIHdpa2kgKGh0dHA6Ly93aWtpLmRlYmlhbi5vcmcvUnBhdGhJc3N1ZSkuCgpjb21taXQgODY2MDMzZGI5OTA0ZmZiMTIwM2YyODNmODM4MDkyZTRjZjY4ZGU2YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBPY3QgNiAwNzozMzoyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzcHVyaW91cyAjZW5kaWYgdGhhdCBzZWVtcyB0byBiZSB0aGUgcmVzdWx0IG9mIGEgbWlzbWVyZ2UuCgpjb21taXQgNjgxMGVkNDJmOWJjNTYwNzUwZDZkYmZiN2U1MGI2ZTJhYzExODk5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTE6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IEN5d2luOiBhZ2VudDogSW1wbGVtZW50IGdldF91cHRpbWUoKSBzdWNoIHRoYXQgcXVlcnlpbmcgSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbVVwdGltZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUuCgpjb21taXQgOTcxNzJiMzExZDIwZjQ0NDFjN2E3ZTkwMDkyYjU5YzFlMGRhOTlmNwpBdXRob3I6IFRob21hcyBKYXJvc2NoIDx0amFyb3NjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ2OjM5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBQQVRDSDogMzQxODY0OTogSE9TVC1SRVNPVVJDRVMtTUlCOiBVc2UgcGNsb3NlKCkgaW5zdGVhZCBvZiBmY2xvc2UoKSB0byBjbG9zZSBhIHBpcGUuCgpjb21taXQgYjljODAxMmVjMDM1YmMwODRmMTc1ODc2ZmVjYzM3NTE5NWY5YmU4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNDowMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCB0YXJnZXQgdG8gYnVpbGQgYWdlbnR4dHJhcCBmcm9tIHRoZSB0b3BsZXZlbAoKY29tbWl0IDk5NTY0N2MwY2ZlMDA0MTIyNjJjYzU3OTdiZGZhZTlkMDBiNzBjNzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTU6NDQ6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgdGhlIHVzZSBvZiAtTCBmbGFncyBmb3IgaW50ZXJuYWwgbGlicmFyaWVzIGFzIGl0IGNvbmZ1c2VzIGxpYnRvb2wuCgpjb21taXQgOTNkYzEyMzVhMGRiNThmZmQyOTYxN2NmZjAwZGMxMTI2Mzc4MDIwMgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMTozMTo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgbWFrZSBhcHBzIHdvcmsgYWdhaW4KICAgIAogICAgYXBwcyBpbmNsdWRlIHNubXB0cmFwZCBhbmQgdGhhdCByZXF1aXJlIHRoZSBhZ2VudCBsaWJyYXJpZXMgYXMgd2VsbC4KCmNvbW1pdCBiYTQxNDg4ZWQ0NGNkMjNjMjU5NjNkNGZjNTZjNDc2ODUzYjJhYjU5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjI5OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogV2hlbiB5b3Ugc2F5IG1ha2UgbGlicyB5b3UgZXhwZWN0IGFsbCB0aGUgbGlicyB0byBiZSBidWlsdC4KICAgIAogICAgVGhpcyBpcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIHNubXB0cmFwZCB0YXJnZXQgYXQgdGhlIHRvcCBsZXZlbCB3aGljaCBvYnZpb3VzbHkKICAgIGV4cGVjdGVkIGJvdGggbGlicyB0byBiZSBidWlsdCBhbmQgc28gZmFpbGVkIHRvIGNvbXBpbGUgYmVmb3JlIHRoaXMgcGF0Y2guCgpjb21taXQgMzA1N2M3M2UwOTM0NzNiZTQ2MjU0YmNkZmI0Y2E3ODhlNDMyZDFiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDMwIDA3OjMyOjUyIDIwMDggKzAwMDAKCiAgICBORVdTOiBidWlsZGluZzogUEFUQ0g6IDIwOTExNTY6IGNvcnJlY3RseSBkZWNsYXJlIGRlcGVuZGVuY2llcyBpbiBNYWtlZmlsZS4KICAgICdtYWtlIC1qIDxOPicgc2hvdWxkIHdvcmsgbm93LgogICAgCiAgICBCYWNrcG9ydCB0aGlzIHRvIFY1LTQgYXMgaXQgaXMgbmVlZGVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBpbiB0aGUgc2luZ2xlCiAgICB0aHJlYWRlZCBjYXNlIG9mIG1ha2UgbWlibGliIGFzIHdlbGwuCgpjb21taXQgNmVhZTM0MGZhMmE2NDA4NjU5Mjk4MmNjNTI3MzViYzAxNDg3ZDk3OApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBPY3QgMSAxOTozMzo1MCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFNpbGVuY2UgbGliYnNkIDAuMy4wIG5hZ2dpbmcKICAgIAogICAgSWYgeW91IGhhdmUgbGliYnNkIDAuMy4wIGluc3RhbGxlZCB0aGVuIHRoZWlyIHZlcnNpb24gb2Ygbmxpc3QuaCB3YXJucyBhbmQKICAgIHRyaWVzIHRvIG1ha2UgeW91IGluY2x1ZGUgYnNkL25saXN0LmggaW5zdGVhZC4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSBkb24ndAogICAgbmVlZCB0aGF0IGNvbXBhdGliaWxpdHkgbGlicmFyeSBhcyB3ZSBrbm93IGhvdyB0byBkbyBpdCBvdXJzZWxmIHNvIGl0IGJlY29tZXMKICAgIHB1cmUgbmFnZ2luZy4gVGhpcyBwYXRjaCBhZGRzIGEgZGVmaW5lIHRoYXQgY2hhbmdlcyB0aGUgd2FybmluZyBpbnRvIGFuCiAgICBlcnJvciBhbmQgdGhlbiBmaWd1cmVzIG91dCB0aGF0IHRoZXJlIGlzIG5vIHVzYWJsZSBubGlzdC5oIGFuZCBpZ25vcmVzIGl0CiAgICBmb3IgdGhlIGZ1dHVyZS4KCmNvbW1pdCA4NDhmNjMwMGVmZTM4NDkyZmI0NTQ0NTFhMDMwZjBiN2U2ZmY4YzlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IGQ1NWJkNGUwNTQ5ZjAzYjZmZDMyNTYyYzJhYTdmZTM5MjcyYTllZjcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjE5IDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAyMTo0OToyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEF2b2lkIHRoYXQgc25tcGQgY3Jhc2hlcyBpZiBzdGFydGVkIG9uIGEgc3lzdGVtIHdpdGggYW5vdGhlciBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbiB0aGFuIHRoZSBvbmUgaXQgaGFzIGJlZW4gYnVpbHQgd2l0aC4KCmNvbW1pdCBjNTVmNjA4ZjE2ZjE2MGY1ZTc5ZGMwNTdmODg3OGRlZjQ2Mjk3M2UxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBTZXAgMjIgMTA6MzU6MjQgMjAxMSArMDEwMAoKICAgIEZpeCB0aGUgY29kZSBmb3IgcG9wdWxhdGluZyB0aGUgdGFibGVfdGRhdGEgY2FjaGUsCiAgICBhbmQgY2xhcmlmeSBhcmVhcyBuZWVkaW5nIE1JQi1zcGVjaWZpYyBhZGRpdGlvbnMuCgpjb21taXQgZWUwZDNhZGIwNzgyOTFiNzQzYzllY2I3NmQyMGI1OTFiN2IxNTk3MgpBdXRob3I6IFN0ZXZlIEZyaWVkbCA8c3RldmVAdW5peHdpei5uZXQ+CkRhdGU6ICAgVGh1IFNlcCAyMiAwOTo1ODozOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IDM0MDk2OTI6IENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMKICAgIHRvIGF2b2lkIGludGVnZXIgb3ZlcmZsb3cgZXJyb3JzLgogICAgKENvZGUgYmFzZWQgb24gdGhlIHN1Ym1pdHRlZCBwYXRjaCwgcmF0aGVyIHRoYW4gYXBwbGllZCB2ZXJiYXRpbSkKCmNvbW1pdCBiYmUyYzE5YTAxZWNlYzAyNGY3NDFlMmU1NDcwMWFlNjIxMmY0YzNlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCA0IDE0OjQ0OjM4IDIwMTEgKzAyMDAKCiAgICBUaGlzIHNob3VsZCBoYXZlIGdvbmUgb25seSB0byBtYXN0ZXIuCiAgICAKICAgIFJldmVydCAiQ0hBTkdFUzogYnVpbGRpbmc6IENvcnJlY3QgZGVwZW5kZW5jaWVzIC0gc2luY2UgYmY3NGZlYTY5ZjI0ZGM2ZTg1ZjkwOGYzZjQxZDE0MjZiMmUwOTY4OCBzbm1wY29uZiBpcyBsb2NhdGVkIGluIGJ1aWxkZGlyLCBub3Qgc3JjZGlyIgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDllZmE0NjdhOTcyYmI2ZTFjN2ZiZGFmMmUyNzQyOWQyOWY0YWI4OWUuCgpjb21taXQgOWVmYTQ2N2E5NzJiYjZlMWM3ZmJkYWYyZTI3NDI5ZDI5ZjRhYjg5ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBTZXAgNCAxNDowMDoxMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IENvcnJlY3QgZGVwZW5kZW5jaWVzIC0gc2luY2UgYmY3NGZlYTY5ZjI0ZGM2ZTg1ZjkwOGYzZjQxZDE0MjZiMmUwOTY4OCBzbm1wY29uZiBpcyBsb2NhdGVkIGluIGJ1aWxkZGlyLCBub3Qgc3JjZGlyCgpjb21taXQgNDIyYjA4MmE5NTkzY2E5YzY1YWFjNDQ5ZTZkMTI4YTllOTdlOTRmYgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MDY6NTYgMjAxMSAtMDcwMAoKICAgIGFkZGVkIDcgYXMgYSByYyBzZXJpZXMgYnJhbmNoCgpjb21taXQgNzFjMGQ3NjUwNDkzNzEwNjMxZmEwOGQ1ZGM0ZGFkNTAxYTlhYTc3MQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTY6Mzc6NDEgMjAxMSAtMDcwMAoKICAgIGRlYWwgcHJvcGVybHkgd2l0aCBpbnZlcnRlZCBlcnJvciBjYXNlcwoKY29tbWl0IGNmNGNmN2YzMmFkNThmMzI2ZmZlZDUwNDk0NTgzMjMxNjQ4ZDc5ZDIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDI2IDExOjA4OjA5IDIwMTEgLTA3MDAKCiAgICBhZGRlZCAuZnQgYW5kIC5mdC4xIGZvciBmZWF0dXJlIGZpbGVzCgpjb21taXQgNDFiMmNkZTE5ZDIyMjA5YjQ4MzIwNzYxNGUwMjc0ODNjMzcwNjg3NwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTE6MDM6MTUgMjAxMSAtMDcwMAoKICAgIGF1dG8tZGV0ZXJtaW5lIHBhdGNoIGFyZ3VtZW50cyBpZiBwb3NzaWJsZSBmb3IgbnNwYXRjaHRyeQoKY29tbWl0IDk2YmI1ODljMmU1MDU0ODkwZTk4NzA1YWI1ZjQzMDhhZTZhMTMwYmIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDEwOjEzOjA2IDIwMTEgLTA3MDAKCiAgICBtYWtlIGl0IHNvIHRoZSBnaXQgY29tbWl0IGxpbmUgY2FuIGJlIGN1dC9wYXN0ZSB3aXRob3V0IGxpbmVicmVha3MKCmNvbW1pdCAzZmUzNmY3YWQ3MWMwOGUxMjg2Y2U4ZTQ4N2U5MzUyZTI3Y2Q5NmNjCkF1dGhvcjogUm9uYWxkIFdhaGwgPHJ3YS1jb0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxMDoxMjoxMSAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM5NDU4NjogZnJvbSByd2EtY286IGZpbGUgZGVzY3JpcHRvciBsZWFrIGluIHJlYWRfY29uZmlnICgrZml4KQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2ZTU0YzQxMzFhZjczMWZmOTA0NjdhNzViY2M4MTdjOTU3ZjhmNzJhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAwOTo1NToxNCAyMDExIC0wNzAwCgogICAgZGVzY3JpYmUgdGhhdCBuc3JvbGx1cCBuZWVkcyB0byBiZSBydW4gbm93LgoKY29tbWl0IDg2ZWZlZTIzNDMyY2NiMGQyZTBjNzM2ZDM0ZGMxMDUxMTMwY2RjMGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxMDo1MjozMCAyMDExICswMTAwCgogICAgQXBwYXJlbnRseSBJUklYIGhhcyBhIGRpZmZlcmVudCBBUEkgZm9yIHN0YXRmcwoKY29tbWl0IGY5NWFhMzEzNzdkNTcyYjA0OWIwYjMxNmRiYjE2M2JmN2FjYTkzZDUKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDI4IDIzOjI1OjQwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGRzIG1zZ19jb250cm9sL21zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyIChiYWNrcG9ydCkKCmNvbW1pdCBlYThiZWQ3OWU4MWM0MmUzM2NiZjM3Y2E2ZjNjMDNjNTQ5OTg3YjIyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAyNSAwNjo1NjoyMiAyMDExIC0wNzAwCgogICAgaW1wb3J0IHN0ZGVycgoKY29tbWl0IGZkNmQ4MDRkYzNlNzAzYzQwNTlkYmU3NzUwMDFhM2JlOWI5MzMwOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDI1IDA2OjU1OjM4IDIwMTEgLTA3MDAKCiAgICB1c2UgPj4gdG8gcHJpbnQgdG8gc3RkZXJyCgpjb21taXQgMWYwODJhMzFjZDEzOGYxZjVlMjdiZTZkOTBhMWQ1NzkwZGMwZmZlNApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6MzU6NDIgMjAxMSArMDIwMAoKICAgIG1ha2Ugc3VyZSB0aGF0IF9LRVJORUwgaXMgZGVmaW5lZCB0byAxIHNvIHRoYXQgIiNpZiBfS0VSTkVMIiB3b3JrcyBvbiBzeXN0ZW1zIHRoYXQgbmVlZCBpdCAoZS5nLiBJUklYKQoKY29tbWl0IDI2YmIyNDcwYzEwNmY4MzQ0NDJhMmFkYmM3NjExYmYxNjY1N2ZiZGYKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDIzIDIzOjIyOjQ0IDIwMTEgKzAyMDAKCiAgICBtYWtlIHN1cmUgdGhhdCBfS0VSTkVMIGlzIGRlZmluZWQgdG8gMSBzbyB0aGF0ICIjaWYgX0tFUk5FTCIgd29ya3Mgb24gc3lzdGVtcyB0aGF0IG5lZWQgaXQgKGUuZy4gSVJJWCkKCmNvbW1pdCBmYzU1NjBjMDVmODQ4MzIxZGEwY2EwYzJlODcwMDFkNWYyMjk1MTY3CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyMiAxODo1NDozMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyIChlLmcuIElSSVgpCgpjb21taXQgOTZlYTJkMWE4ZWJmZmIzNDg2NzNhODY1ZDQ4NmYzMWU2MzVlNjJiZApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDE6NTE6NDkgMjAxMSArMDIwMAoKICAgIGF1dG9yZWNvbmYKCmNvbW1pdCAzZjJmNjFiMGU2MTNkNjEwNWVjZjJjZWIzOTVkZTBiZGUzN2YzY2UzCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAwMTo0NzoxMyAyMDExICswMjAwCgogICAgYXV0b3JlY29uZgoKY29tbWl0IGI2MmNiMDg2NGY1NzdiYTg1NTczZDBkMjUwZDEyYTM5Mzg3YzA3YjQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAwOjU1OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhaXg6IGVsaW1pbmF0ZSBjb25maWd1cmUgd2FybmluZyByZWdhcmRpbmcgbGlicGVyZnN0YXQuaCBvbiBBSVggNi4xIGFuZCB1cAoKY29tbWl0IDcxYjkwYjZmMjE3OTQ0YjRmZmMxODM2ZTUxNjBkNDBlMzNiNDQyM2QKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAwOjQwOjI4IDIwMTEgKzAyMDAKCiAgICBmaXggYnJva2VuIGxpbmUgd3JhcAoKY29tbWl0IDI4YjU0MDcwNTE0NzUzZThkOGFiYjcxOGIyMjRkNjU3YWI3YThhYjgKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTE6NDk6NTYgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IEJTRDogUEFUQ0ggMzM4Mzk2NTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGlmLW1pYiBhZ2VudCBjb21waWxlIHdhcm5pbmdzIG9uICpCU0QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZjczZTYzNjRiYjM0MDcwNjIyZTlmNDQ4OGNkMDQ4N2QyZmI3NDAyYQpBdXRob3I6IFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDExOjQ1OjI5IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzM4OTIyODogZnJvbSB3dWxmMjAwMTogaW5jb21wbGV0ZSBjb21taXQgKHBhdGNoIDMzODY2MzM6IGZpeCBpbnRlZ2VyIG92ZXJmbG93KQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBlNmNmODIwNmYwYzY3NjUwMDAxZTM0YjUyNmIzN2Y2NGU0YTU5MjljCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAwOTo0NjozMyAyMDExIC0wNzAwCgogICAgUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiBvbiAtY29kZXJzIGZvciBmaXhpbmcgbWFuIHBhZ2UgdHlwb3MKCmNvbW1pdCA2YTg0MWQ1NjUxOGE3MjcxOTZlNjZiNTllN2U1YjMzMDRmNTRiMGExCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAwODozMTowNiAyMDExIC0wNzAwCgogICAgY2hhbmdlZCBjbGllbnRhZGRyIHNvIGl0IHJlZ2lzdGVycyBhcyBwcmUtbWliIHRvIGJlIHBpY2tlZCB1cCBiZWZvcmUgdGhlIHRyYW5zcG9ydHMgZ2V0IGNyZWF0ZWQKCmNvbW1pdCA2NTgwNTU2Y2M3YmQ4MzNhZjczMWI2MmNlMWVkMjAxNzU2NGZlN2ViCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAxNyAxODowODowMSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogc25tcHRyYXBkOiBNYWtlIHRoZSBJUCBhZGRyZXNzIHRvIGhvc3RuYW1lIGNvbnZlcnNpb24gd29yawoKY29tbWl0IDNjYjNmMWVkZTM4OGQ4NGUzOTJlMWQ4MTVkNTk5NGE0YmYwZjEwZjkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gQXVnIDE0IDA3OjU5OjI1IDIwMTEgKzAyMDAKCiAgICBXaW5kb3dzLCBidWlsZC5iYXQ6IFJlc3RvcmUgb3JpZ2luYWwgYnVpbGQgYW5kIGluc3RhbGwgb3JkZXIuIEFwcGFyZW50bHkgdGhlIGNvcnJlY3QgbmV0c25tcC5kbGwgaXMgdXNlZCBkdXJpbmcgdGhlIFBlcmwgdGVzdHMgYnkgc2V0dGluZyBQQVRIIHByb3Blcmx5LgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGMxYjVhMDMwZDhmMDQ4NzZjZDViOWFmMDA4Yzg3OWNjNDY4YjIxMmYuCgpjb21taXQgM2M3M2I0ODM4ZTYwNWIxNTBiYzMxNzMxM2YxNGViMzM0NDQ3MjlmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTc6Mzg6MjcgMjAxMSArMDIwMAoKICAgIFJldmVydCB0aGUgdHdvIG1vc3QgcmVjZW50IFNOTVBfRlJFRSgpIGNoYW5nZXMgKGNvbW1pdHMgNDdjOGVmMWI4OWM2Y2NiNDI0N2Q5NjMzNDc3OTI1OTA4YzY4YzFhNSBhbmQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCkuCgpjb21taXQgM2U1MGMzZTAwZTlmMzIxZmI3MDhiYzU3OWViNGRjMWEwZjFlN2M0ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTE6MzE6NDAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBwYXNzX3BlcnNpc3Q6ICBGaXhlcyBhIHJhY2UgY29uZGl0aW9uIGludHJvZHVjZWQgaW4gY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUuCiAgICAKICAgIFRoZSBmb2xsb3dpbmcgcmFjZSBjb25kaXRpb24gY291bGQgaGFwcGVuOgogICAgLSBBIHN5c3RlbSBjYWxsIGZhaWxzIGFuZCBlcnJubyBpcyBzZXQgYWNjb3JkaW5nbHkgYnkgdGhlIEMgbGlicmFyeS4KICAgIC0gU0lHQ0hMRCBoYW5kbGVyIGludm9rZXMgYSBzeXN0ZW0gY2FsbCB0aGF0IGZhaWxzIGFuZCBoZW5jZSBvdmVyd3JpdGVzIGVycm5vLgogICAgLSBTSUdDSExEIGhhbmRsZXIgbGVhdmVzLgogICAgLSBvcmlnaW5hbCBjb250ZXh0IGNoZWNrcyBlcnJubyBhbmQgZmluZHMgdGhlIHZhbHVlIGZyb20gdGhlIHN5c3RlbSBjYWxsIGludm9rZWQKICAgICAgYnkgdGhlIFNJR0NITEQgaGFuZGxlciBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gY2FsbCB0aGF0IGZhaWxlZCBvcmlnaW5hbGx5LgogICAgCiAgICBPdGhlciBmaXhlcyBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoOgogICAgLSBSZW5hbWVkIGRlaW5pdF9wYXNzX3BlcnNpc3QoKSBpbnRvIHNodXRkb3duX3Bhc3NfcGVyc2lzdCgpIHN1Y2ggdGhhdCB0aGlzCiAgICAgIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGR1cmluZyBhZ2VudCBzaHV0ZG93bi4KICAgIC0gTWFkZSBzdXJlIHRoYXQgc2h1dGRvd25fcGFzc19wZXJzaXN0KCkgaXMgY2FsbGVkIGJ5IHRoZSBXaW5kb3dzIHNubXBkLmV4ZSB0b28uCiAgICAtIFdpbmRvd3M6IGF2b2lkIGNhbGxpbmcgQ2xvc2VIYW5kbGUoSU5WQUxJRF9IQU5ETEVfVkFMVUUpLgogICAgLSBXaW5kb3dzOiBhdm9pZCB0aGF0IGNsb3NpbmcgYSBwYXNzX3BlcnNpc3QgcGlwZSB0cmlnZ2VycyBhIGNyYXNoLgogICAgLSBXaW5kb3dzOiBwYXNzX3BlcnNpc3Q6IGNsb3NlIGhhbmRsZXMgb2YgZmluaXNoZWQgcHJvY2Vzc2VzLgogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgCXdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaAoKY29tbWl0IGUxNDdlNGI5Njc1NTIwN2RlMWNlMzA5OTBkNjdiNGI3Yzc2ZGQ0ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjM5OjE0IDIwMTEgKzAyMDAKCiAgICBVbmJyZWFrIHRoZSBXaW5kb3dzIGJ1aWxkLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMWUxMDAwYTg4MTU5MjFiNWVjMmU3OTk3YjUzNTkyYTU0NGIzZGZjMi4KCmNvbW1pdCBjMWI1YTAzMGQ4ZjA0ODc2Y2Q1YjlhZjAwOGM4NzljYzQ2OGIyMTJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogYnVpbGRpbmcgKGJ1aWxkLmJhdCk6IEluc3RhbGwgbmV0c25tcC5kbGwgYmVmb3JlIHJ1bm5pbmcgdGhlIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBzdWNoIHRoYXQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1biB3aXRoIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgbmV0c25tcC5kbGwuCgpjb21taXQgMWU5ZDIwMDNiYWVkMjI3ZjY4YjY4NTI4ZjFlOTdlNmY1ZWE4NmMxYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHBlcmwgKGJ1aWxkLmJhdCk6IFdoZW4gaW5zdGFsbGluZyBkZXZlbG9wbWVudCBmaWxlcywgaW5zdGFsbCB0aGUgUERCIGZpbGVzIHRvby4KCmNvbW1pdCBhOGQ5NDAwN2UzMmQwMzcxMDY5MmM4ZjFiNDE3ZDViZGZlMzY1MGZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogRml4IFBlcmwgcmVncmVzc2lvbiB0ZXN0IGZhaWx1cmVzCiAgICAKICAgIEFsbCBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBub3cgb24gTGludXggYW5kIG9uIFdpbmRvd3MgKE1TVkMpLgoKY29tbWl0IGI2ZDBiNDkwMTgxYzZkZjhjMTFlY2YxNTVmMWU2ZWFmMTFiMWVjNTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBQZXJsIHJlZ3Jlc3Npb24gdGVzdHM6IERvbid0IGZhaWwgc2tpcHBlZCB0ZXN0cy4KCmNvbW1pdCBjYTNhY2YyYjA3MDM5ZDk2YTExN2YwOTBmN2VjNzZiNmU4YjU0MWU5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogQWRkIFNOTVA6OmdldGVudigpIGFuZCBTTk1QOjpzZXRlbnYoKS4KCmNvbW1pdCA1Njc1OWU1YWQ1MzdmMDFiNGE1MWU3ZmY5OTk0ZWM0YjU1YzMyMTM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxNDo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfc2V0ZW52KCkuCgpjb21taXQgOTg0M2U1YmNmNDcyODc3ZTg1YjAzMWI1ZTVkYWZhYTlkNWZjNjNjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzIgMjAxMSArMDIwMAoKICAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6IGRvY3VtZW50IGhvdyB0byB1c2Ugb24gV2luZG93cwoKY29tbWl0IDYwNTc4NjZiNzNhMDIyNzcxZTkwZTk5NjdkZDI1YmRjNzE5MmZiZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMyIDIwMTEgKzAyMDAKCiAgICBTZXQgZXhlY3V0ZSBmbGFnIG9uIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Qgc3VjaCB0aGF0IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhhdCBmaWxlIHdvcmsKCmNvbW1pdCBjMmRhZjU5NDBmMjFhMTNlODk4OWRkMDU1YjE3ZjMxODExMTJmODU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogRml4IGEgc3VwcHJlc3Npb24gcGF0dGVybgoKY29tbWl0IDFmMGE5MjhhMjkxM2NmYTdmNWNlYWFmNDY5NmM2OWZiZGM2ODc2MjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDEyIDA5OjA5OjExIDIwMTEgLTA3MDAKCiAgICBhZGRlZCB0aGUgbWlzc2luZyAtZSBvcHRpb24gdG8gdGhlIGNyZWF0ZVVzZXIgZG9jcwoKY29tbWl0IDFlMTAwMGE4ODE1OTIxYjVlYzJlNzk5N2I1MzU5MmE1NDRiM2RmYzIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgQXVnIDExIDE1OjQ2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogTmV0LVNOTVAgUGVybCBtb2R1bGVzIGJ1aWxkIGFnYWluLgoKY29tbWl0IDk3ZDY0MzJmOTVlMWNkY2Y2ZmQ4NWU3Y2ExZDBjNTU1N2ViNmQ5MTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgQXVnIDExIDE4OjE2OjQ0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBwZXJsOiBNYWtlIHN1cmUgdGhhdCB0aGUgY29uc3RhbnQgU05NUF9ERUZBVUxUX1JFVFJJRVMgaXMgcmVjb2duaXplZC4KICAgIAogICAgQ0hBTkdFUzogcGVybDogU05NUCBtb2R1bGU6IEFkZCBjb25zdGFudHMgTkVUU05NUF9DQUxMQkFDS19PUF9SRUNFSVZFRF9NRVNTQUdFIGFuZCBORVRTTk1QX0NBTExCQUNLX09QX1RJTUVEX09VVC4KICAgIAogICAgV2hlbiB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGFyZSBidWlsdCBvbiBXaW5kb3dzIHdpdGggTVNWQyBvciBNaW5HVyBpdAogICAgaXMgcG9zc2libGUgdGhhdCBlYWNoIHRoZXNlIGFyZSBsaW5rZWQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YgdGhlIE1TVkMKICAgIHJ1bnRpbWUgbGlicmFyeSB0aGFuIHRoZSBQZXJsIGludGVycHJldGVyIGl0c2VsZi4gSW4gdGhhdCBjYXNlIHRoZSAiZXJybm8iCiAgICB2YXJpYWJsZSB1c2VkIGluc2lkZSAueHMgc291cmNlIGZpbGVzIGlzIGFub3RoZXIgdmFyaWFibGUgdGhhbiB0aGUgJCEgdmFyaWFibGUKICAgIGluIC5wbSBmaWxlcy4gT3I6IGFzc2lnbm1lbnRzIHRvICJlcnJubyIgaW4gYSAueHMgZmlsZSBkbyBub3QgbW9kaWZ5IHRoZSAiJCEiCiAgICBQZXJsIHZhcmlhYmxlIFRoaXMgcGF0Y2ggYXZvaWRzIHVzaW5nICJlcnJubyIgYnkgbW9kaWZ5aW5nIHRoZSBkaWZmZXJlbnQKICAgIGNvbnN0YW50KCkgZnVuY3Rpb25zIHN1Y2ggdGhhdCB0aGVzZSByZXR1cm4gYSB0d28tZWxlbWVudCBhcnJheSBpbnN0ZWFkIG9mCiAgICByZXR1cm5pbmcgYSBzY2FsYXIgYW5kIHNldHRpbmcgZXJybm8uCgpjb21taXQgNzY5MDg5NGI3Yjg0NjRmMDVjN2M5MDJiZDdjZjc1MWNjMjY5OTc3YQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMTAgMDk6MjY6MzcgMjAxMSAtMDcwMAoKICAgIGRvbid0IGFzc2VydCBvbiBhIGRvdWJsZSBpbml0OyBqdXN0IGRvbid0IGRvIGl0IHR3aWNlCgpjb21taXQgNDdjOGVmMWI4OWM2Y2NiNDI0N2Q5NjMzNDc3OTI1OTA4YzY4YzFhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMTAgMTY6NDQ6MzYgMjAxMSArMDIwMAoKICAgIFNOTVBfRlJFRSgpOiBjYXN0IGFyZ3VtZW50IHRvICh2b2lkICopIGJlZm9yZSBwYXNzaW5nIGl0IHRvIG5ldHNubXBfZnJlZSgpCgpjb21taXQgMDIyMDM5MmQ4OTlhOWNhYjcwMWY3NGFmMTIwMzBiYjFkNGNjNWUyZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKdWwgMSAxMzowMjoxNSAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIgYnVpbGQKCmNvbW1pdCAwMzQ0ZGY5MmU0NjJmM2JlYzk5NDYwOGMzMzgxZmNhNTM0OGFiY2RiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDE1OjEyOjU1IDIwMTEgLTA3MDAKCiAgICBmaXggQysrIGNvbW1lbnRzCgpjb21taXQgMDlhNjYxZDVkYzYwYzczMGZlMDM4NGIwMmVkNjcyODMwZWY3NGUzMApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgOCAxNToxMjo1NSAyMDExIC0wNzAwCgogICAgZml4IEMrKyBjb21tZW50cwoKY29tbWl0IDY5Y2I0MmE0ZWEwNTgzY2U2ZjVmZjhmODM4MzUxNmQzNGJjNGMzNDQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMTU6MTI6NTUgMjAxMSAtMDcwMAoKICAgIGZpeCBDKysgY29tbWVudHMKCmNvbW1pdCBkNTM4YmNiY2NlNjNlMTg5MzU3MmQ4ZjE1ODNmZGMwMmYzNTFmODRmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBdWcgOCAyMjowNzo0MyAyMDExICswMTAwCgogICAgRGVmaW5lIF9CSU5EX1RPX0NVUlJFTlRfVkNMSUJTX1ZFUlNJT04gdG9rZW4KICAgIChhcyBwZXIgQWxleCcgYnVpbGQgaW5zdHJ1Y3Rpb25zKQoKY29tbWl0IDQ0N2RkYzY2ZDkwZGQ5ZTVjMzEwNWIyNjhiNmE2M2JmYzU4MGI5MjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEF1ZyA4IDIyOjAzOjU4IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbgogICAgKGFzIHBlciBBbGV4JyBidWlsZCBpbnN0cnVjdGlvbnMpCgpjb21taXQgYjBhNjJlYjE5NzYzYWI0ZjBiNzc2NDMwMjQyYTYxMTdjY2FlNWRkMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXVnIDggMjE6NTk6MTcgMjAxMSArMDEwMAoKICAgIERlZmluZSBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuCiAgICAoYXMgcGVyIEFsZXgnIGJ1aWxkIGluc3RydWN0aW9ucykKCmNvbW1pdCBmZmEwNWIwNTFhYzNlMmIxOTcxOTVhOTk4OWNjN2E5MWZlOGQ5MjgyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDEzOjU1OjM4IDIwMTEgLTA3MDAKCiAgICBhIG5ldyBtYWNybyBuc2F1dG9jb25mIHRvIHJ1biB0aGUgcmlnaHQgdmVyc2lvbgoKY29tbWl0IGI0NTE2MDdkY2EwMTVjMTExZTk2ZmRmZWIyZGRiMDY2MWZiNGY3MjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEF1ZyA4IDIxOjIwOjMyIDIwMTEgKzAxMDAKCiAgICBGaXggY2FwaXRhbGlzYXRpb24gb2YgTmV0LVNOTVAKCmNvbW1pdCBjOTQ4MTMwNDRhNGM0YTYwOGU5OGU4MDIyMzA3NWM2ZmFmMDRlZTExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEF1ZyA4IDIxOjU2OjE1IDIwMTEgKzAyMDAKCiAgICBSZXZlcnQgIkNIQU5HRVM6IFdpbmRvd3M6IEF2b2lkIHRoYXQgaWYgdGhlIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBoYXZlIGJlZW4gYnVpbHQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gdGhhbiBBY3RpdmVQZXJsIHRoYXQgdXNpbmcgb25lIG9mIHRoZXNlIFBlcmwgbW9kdWxlcyB0cmlnZ2VycyBhICJGcmVlIHRvIHdyb25nIHBvb2wiIGNyYXNoLiBUaGlzIHJlZ3Jlc3Npb24gd2FzIGNhdXNlZCBieSBjb21taXQgM2IxNGM1OWNmODI3OGQ0MTAyMDdmZjQyZGViZGEyNjM2NDI2YTQ2OCAodGhlIG5ldHNubXBfZnJlZSgpIGludG8gU05NUF9GUkVFKCkgY2hhbmdlcyBpbiB0aGUgKi54cyBmaWxlcykuIgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDdmNDJkMGQ5MzMyMDQ4NDE1MjI3MTQyN2NjOTgwOGNiZGE0OWJiZDAgYmVjYXVzZSB0aGF0IGNvbW1pdCBpcyBub3Qgc3VpdGFibGUgZm9yIHRoZSA1LjQgYnJhbmNoLgoKY29tbWl0IDU4Y2E3M2QwMzU4OWIwOTc0ZDkyNmJkZmRjMzkyNzA5OWZiYTIxMTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMTE6MjQ6MDkgMjAxMSAtMDcwMAoKICAgIGRpc3BsYXkgdGhlIGJyYW5jaCB3ZSdsbCBjb21taXQgdG8KCmNvbW1pdCBkNDM3MjliZWZlMTJiZGVmYzg3MDg4OWJkZmUxODJlNzY5M2YxZjNiCkF1dGhvcjogVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgOCAxMToyMDozMCAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMzODY2MzM6IGZyb20gd3VsZjIwMDE6IGZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIGRpc2sgcGVyY2VudCBjYWxjdWxhdGlvbnMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgM2JjNTY4MzMzNGU1NjYzYzU4OTI0MTk2ZWRkNjY0OTZmZjgxNzBjMgpBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDExOjEyOjI3IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzg3MTM5OiBmcm9tIHlhYmVyYXVuZXlhOiBBdm9pZCBzZWdmYXVsdCBpZiB0cmFwc2VzcyB0cmFuc3BvcnQgZWxlbWVudCBjYW50IGJlIHBhcnNlZAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAxZDFiZmQ1ZjQ1MWMyYmM0MjBiNzEwYzk4Yzc5ZDA0YmRlZjQzOTFiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDExOjEwOjUyIDIwMTEgLTA3MDAKCiAgICBuc3NmcGF0Y2hhcHBseTogc3BsaXQgdGhlIGRpc3BsYXllZCBnaXQgY29tbWl0IGNvbW1hbmQgaW50byBtdWx0aXBsZSBzZWdtZW50cwoKY29tbWl0IGQzNzNjNGZkOGMzOTFhZmUwYjllMDJhNjBiNWNkNjYxYmM5MDM5ZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gQXVnIDggMTc6MjM6NDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUgdHJpZ2dlcmVkIGJ5IGNhbGxpbmcgX21pYmluZGV4X2FkZCgpIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBub3QgZXF1YWwgdG8gLTEuCgpjb21taXQgOGNhN2ZmMWU2OTJjYWVjNDE4NmI3ODhjOWFlMmQyN2JlMjEzMjkwZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgOCAxMDozMzo1NiAyMDExIC0wNzAwCgogICAgZml4IGFub3RoZXIgZnVuY3Rpb24gdHlwbwoKY29tbWl0IDU1NmU5MzhlODJhN2VlMmMxMGZhOGMwYjdjN2EzNGU5ZTY1YTZkNWEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMTA6MDU6MjAgMjAxMSAtMDcwMAoKICAgIGZpeCBmdW5jdGlvbiBuYW1lIHR5cG8KCmNvbW1pdCA5NjllODY2YWY5ODNkOTg2YTI2YmViY2E4NWZlZjBmNmM2MjNjZTI2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDA5OjU2OjQzIDIwMTEgLTA3MDAKCiAgICBtYWtlIG5zcHVsbC9uc3B1c2ggY2hlY2sgZm9yIGEgY2xlYW4gcmVwbwoKY29tbWl0IDdlNmZkYzhiMmEzZDg2YTc5NTQzNjczNDM1MzcxNjIxYTI4NTg3MzcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMDk6NTY6MTMgMjAxMSAtMDcwMAoKICAgIG5ldyBmdW5jdGlvbiAibnNtYWtlYWxsIiB0byB0ZXN0IGJ1aWxkaW5nIG9uIGV2ZXJ5IGJyYW5jaAoKY29tbWl0IGUyNWJlN2M4MmQ1NTQ1ZDg4YWJlYTEwZTRlMjU1YzkyYmVkM2RlNmUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMDk6NTM6MDMgMjAxMSAtMDcwMAoKICAgIGRlZmF1bHQgdG8gbWVyZ2UKCmNvbW1pdCBiY2I4MWI3OTZkZDZhOTIxOTVkNmRiMTMxNzdhZDMwZjA1ZmM2M2Y3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDA5OjUxOjI2IDIwMTEgLTA3MDAKCiAgICBzZXBhcmF0ZSBuc3N5bmMgaW50byBuc3B1bGwgYW5kIG5zcHVzaAoKY29tbWl0IGU0NmIxNzAxMTdmZTc4YTJmYWFiZWYxYWRjYzNkNmQ0ZDU2OTYwMzYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gQXVnIDggMTc6MjM6NDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUgdHJpZ2dlcmVkIGJ5IGNhbGxpbmcgX21pYmluZGV4X2FkZCgpIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBub3QgZXF1YWwgdG8gLTEuCgpjb21taXQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBBdWcgOCAwOTo1MDo1MSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogQXZvaWQgdGhhdCBpZiB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGhhdmUgYmVlbiBidWlsdCB3aXRoIGFub3RoZXIgdmVyc2lvbiBvZiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB0aGFuIEFjdGl2ZVBlcmwgdGhhdCB1c2luZyBvbmUgb2YgdGhlc2UgUGVybCBtb2R1bGVzIHRyaWdnZXJzIGEgIkZyZWUgdG8gd3JvbmcgcG9vbCIgY3Jhc2guIFRoaXMgcmVncmVzc2lvbiB3YXMgY2F1c2VkIGJ5IGNvbW1pdCAzYjE0YzU5Y2Y4Mjc4ZDQxMDIwN2ZmNDJkZWJkYTI2MzY0MjZhNDY4ICh0aGUgbmV0c25tcF9mcmVlKCkgaW50byBTTk1QX0ZSRUUoKSBjaGFuZ2VzIGluIHRoZSAqLnhzIGZpbGVzKS4KCmNvbW1pdCBhM2I4NjU0YTIzMmM1NjNiYzk3Y2M5OTI1Y2Q5ODU5MGEzMGM1YmM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEF1ZyA4IDE3OjI0OjE4IDIwMTEgKzAyMDAKCiAgICBGaXggYSByZWNlbnRseSBpbnRyb2R1Y2VkIE1pbkdXIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCBhMGRkM2NhZjI1OTI2ZTQzNDY1NzE4YmY0MTdhNDY0YzJmYjM2MzY2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyA3IDEwOjE3OjAxIDIwMTEgKzAyMDAKCiAgICBmaW5kIFwoIC1uYW1lICcqLltjaF0nIC1vIC1uYW1lICcqLmluJyAtbyAtbmFtZSAnKi5kc3AnIFwpIC1wZXJtIC11K3ggfCB4YXJncyAtciBjaG1vZCBhLXgKCmNvbW1pdCBhOWEyNTI1MjJmYmU3ZGMxZWQ3MGZmMjcyMWE0ZjgxNTgzYzBkOTJhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyA1IDEwOjIwOjUxIDIwMTEgLTA3MDAKCiAgICBtYWtlIHJvbGx1cCBhbmQgc3luYyBzdXBwb3J0IC0tcmViYXNlIGFuZCBjaGFuZ2UgdGhlIGRlZmF1bHQgYmFjayB0byBtZXJnZQoKY29tbWl0IDk2ZjVmNDdhZDQyNzk3MmQ4ZDlhNmNlMDZjNWUxNjE0NzM2MjA4M2IKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDUgMDk6MjU6MjUgMjAxMSAtMDcwMAoKICAgIHRyeSBhIG11bHRpcGxlIGJyYW5jaCBwdXNoCgpjb21taXQgMGRiYzg2OWZlYzA3ZDhlOTBkYmQxYzk1NDkzZWU3Y2JjNjIzYzk1YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBBdWcgNSAxMjo0MDozMSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogYnVpbGQuYmF0OiBHZW5lcmF0ZSBQREIgZmlsZXMgaW4gcmVsZWFzZSBtb2RlLgogICAgCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBidWlsZC5iYXQ6IFdyaXRlIFBEQiBmaWxlcyB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHRoZSBpbnRlcm1lZGlhdGUgZGlyZWN0b3J5LgoKY29tbWl0IDViMDI5MWY5MWVkOTQ4MzVmOGFlN2Q5NDM2YjE1ZjQwYWZiMTk0NzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgQXVnIDUgMTM6MTc6MTkgMjAxMSArMDIwMAoKICAgIC5naXRpZ25vcmU6IEFkZCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5kZWYgYW5kIHBlcmwvU05NUC90Cgpjb21taXQgMmY4ZDRmNTc5NmNiYzFjN2U5NjdhY2RhYTgwMTliMjRmMTUyMGEzNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBBdWcgNSAxMjowMjo1MSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogQXZvaWQgdGhhdCBydW5uaW5nIHRoZSBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgbWFrZXMgc25tcGQgY3Jhc2gKCmNvbW1pdCAwYzc1MDdhMWUwMTAxZjRiMTM1YTNlZDhhOTYxNjM1Yjg3MDkzZjFhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyA1IDEwOjU3OjMzIDIwMTEgKzAyMDAKCiAgICBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgLSByZXZlcnQgY29tbWl0IGQyYzQ3NjhiZDJlZmI0ODY2NDQzNGE4MzE0MjVjMmRkYTg1ZDcxMzMgKENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20geWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlKS4KCmNvbW1pdCA5YjdmZjRhYmZjOTUyOWJiOWUxOGEzYjg3NDIwMTUyMGJjMGU3MTQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyA1IDExOjA3OjU1IDIwMTEgKzAyMDAKCiAgICBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQgYmY3MTc4YjBiMjI1ODdkNDNkMWE4MGMyNjljZDIxNmJkNTkzMDIxNCAoYWdlbnQ6IGNoYW5nZSB0eXBlIG9mIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdG8gbG9uZykKCmNvbW1pdCAwMzA0OWUxMDM2YzJjMDZjYmQ2ZTVlZDVmZTA4NDk5OWQ1NDY4YTVmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyA1IDEwOjU2OjQ4IDIwMTEgKzAyMDAKCiAgICBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQgMGU2ODQyZmUwODBjZWM4NTNiMDhjZDIzMjMwMTVhYmFiYzM4MWNlMSAoQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5KS4KCmNvbW1pdCAzYWE5NDlmYmRmYzFhOTRhODM0MGFkOGJhZjhiMzE0NzU2YTBiYjlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyA1IDEwOjI2OjE1IDIwMTEgKzAyMDAKCiAgICBXaW4zMiBtYWtlZmlsZSB3aGl0ZXNwYWNlIGNsZWFudXAKCmNvbW1pdCA5NDM5MzBlMWUxMjQzODVmZDk0NzM4YjZkY2RhMzdkMjlkYzdhYzdmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDEwOjQxOjQxIDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzMyNDc2OTogZnJvbSBoYXJkYWtlcjogRml4IC1XdW51c2VkIHdhcm5pbmcKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgOTBjMGU3NWYzZTBkZTczZDZhYWFiM2UzZDcxNDZmMThhOGY5ZTE4NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBBdWcgNCAxOToxMjoyNCAyMDExICswMjAwCgogICAgc25tcHVzbTogRml4IHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCAyZGQ5ZWQwODU4ZGFhOTgyYjQxNjBiNGQyYTdkNWEyYjgwOTQ0MTcxCkF1dGhvcjogU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAxMDowNjo1NyAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogb3BlbmJzZDogUEFUQ0ggMzM1NzkzMjogZnJvbSB0MGp3MmZ1MGttZzogQ2xlYW5pbmcgaW4gbWVtb3J5X25ldGJzZC5jCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGY4ZjZmNzA3MTY0NGI3ZTc3MWRmOGU2MmE5MzIyN2NmOTYwYTA0ZTcKQXV0aG9yOiBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA5OjU2OjI5IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzM4NjE0NzogZnJvbSB3dWxmMjAwMTogZml4IFVDRC1TTk1QLU1JQjo6ZHNrVXNlZAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAyMTAxYmIyZDdhZDZkYjAzOGM3NTVhYTkxOTNjOGFjZTBkYmQ0ZjU4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA5OjI4OjA2IDIwMTEgLTA3MDAKCiAgICBhZGRlZCB0aGUgbWlzc2luZyBmcmVlYnNkOS5oIGZpbGUgZnJvbSB0aGUgZnJlZWJzZDkgcGF0Y2gKCmNvbW1pdCBiNmE0ODFmYTMwNjI4OTNlNTg5YmY2MTYzYzlkMDZkMGYyMDUzMjQwCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA5OjI3OjA1IDIwMTEgLTA3MDAKCiAgICBpZ25vcmUgKi5vcmlnIGFuZCAqLnJlagoKY29tbWl0IGNjNTEzNGU1M2QxYzIzM2RjNDFlMzFmYmI3OGZhYWIwOThmMDkzNjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDk6MjY6NDQgMjAxMSAtMDcwMAoKICAgIGhlbHAgb3V0cHV0IGRlc2NyaWJlcyByZWJhc2UgdnMgbWVyZ2UgYmV0dGVyCgpjb21taXQgYjM3MmU1YWIzMGFhMTU1NzQxZTk0ZGYyMmUwNzUyNTM1YzU5ZTRiYgpBdXRob3I6IFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDk6MjI6MjggMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IG9wZW5ic2Q6IFBBVENIIDMzNTc5Mjc6IGZyb20gdDBqdzJmdTBrbWc6IFJlY29nbmlzZSBvcGVuYnNkNQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAwNTQ4YTRlOTdiMmExZjAzOTllNThjNGVmYzAwNGM5NDk3Mzk4Y2Q2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA5OjIyOjE1IDIwMTEgLTA3MDAKCiAgICBmaXggd2hlcmUgYXJndW1lbnRzIGFyZSBzZXQKCmNvbW1pdCAzYjM3ODBiY2E5YWRlZWJmNGVmNzUwOGFlZTZiOGViY2I5NGY2NTZjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA5OjIwOjQwIDIwMTEgLTA3MDAKCiAgICBzcGxpdCBuc3NmcGF0Y2hhcHBseSBpbnRvIHR3byBwYXJ0czogYXBwbHkgYW5kIGNvbW1pdGluZwoKY29tbWl0IDA0MjI1MTRhNjJiY2FhZTYwMDUwMTdkN2U5ZWQ0ODUwNzVmZTcwMWMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDk6MTU6MjUgMjAxMSAtMDcwMAoKICAgIHBhdGNoIHVzaW5nIC1OCgpjb21taXQgZGM3NTVhNmFlYjliOWM4ODk3MjdkOWZjODQyZmM4OWY3MjllNmVjMApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwODozMzoyNSAyMDExIC0wNzAwCgogICAgYWRkZWQgc3BhY2luZyB0byBtYXRjaCB0aGUgbGF0ZXIgYnJhbmNoZXMKCmNvbW1pdCA3YjcyNmUxMDNjMTk2MGY0Yzg2MDM4NTljOWE4ZDhhYThjNDA0NTIwCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA4OjMyOjIzIDIwMTEgLTA3MDAKCiAgICByZW1vdmVkIGFjY2lkZW50aWFsbHkgZHVwbGljYXRlZCBjb2RlCgpjb21taXQgZWNiYWIwYTk4YTAyZmRlNmJiY2E3ZGQzNzBiY2Q5YzNjYTc2YWZmZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwODoyNzo0MSAyMDExIC0wNzAwCgogICAgbnNzeW5jIHN1cHBvcnRzIC0tbWVyZ2Ugbm93Cgpjb21taXQgMDA3OGUyMjQ3MGViMGZkZDZkYzAyZTIwODEzMzUxYWNkYzE1ODk2NApBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA4OjIzOjIyIDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBlYjc4ZGIyYjZlMjc3NGE0NDk3ZDg3NjhjMTM4YjRmMTRjNWY1YTdmCkF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDg6MTk6MTYgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6IGZyb20geWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIgc2h1ZmZsaW5nCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDgyMDRhNjRmMGZmMmY2OTQ1YzMyNGVlOWZjMWJlM2FmNmUxYjg1MGYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDg6MTU6MTcgMjAxMSAtMDcwMAoKICAgIGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKY29tbWl0IDk5ZjYzNjAyOTZkNDQ1OWFmOTlhZmZmZmFjODk3MDhhNTgxYzNjZTAKQXV0aG9yOiBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwODoxMjowOSAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGY3YTg4YmM2ZjczOGY3N2NiOWM0MzA4MWUxZjYyZjI3ZTNiNmVmOTgKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwODowOToxOCAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YTogQWRkIEZyZWVCU0QgOS54IHRvIHN1cHBvcnRlZCBPU2VzIGxpc3QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZTdkZDFjNDM3YWZlNmUyNmE1NWFhNzcyZDQ2ODAxMjY1NTc0MWQzMQpBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA4OjIzOjIyIDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBjNTNkOGMzNTI1ZjU5MGYyMjEzZDM1YjBkYTk0MTIzODYyZjNlMzY2CkF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDg6MTk6MTYgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6IGZyb20geWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIgc2h1ZmZsaW5nCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDNiOGM4Yjg1MDg1YWFlMmQxYTFjN2NhMzVlN2QwNjZkM2Q3NGZhOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDg6MTU6MTcgMjAxMSAtMDcwMAoKICAgIGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKY29tbWl0IDcxMDBhZWRmZmQ5OGNkYTRiMDUxNjRiY2NmMTc4NzYwMjAxOTZlNzkKQXV0aG9yOiBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwODoxMjowOSAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGQyYzQ3NjhiZDJlZmI0ODY2NDQzNGE4MzE0MjVjMmRkYTg1ZDcxMzMKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwODoyMzoyMiAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbSB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZDE5YjhmY2EyMzg0MDc3ZjczMmEzMGYyOTQ2YWIwYzAzYmMwZTczOApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwODoxNToxNyAyMDExIC0wNzAwCgogICAgYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UgZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgpjb21taXQgMGU2ODQyZmUwODBjZWM4NTNiMDhjZDIzMjMwMTVhYmFiYzM4MWNlMQpBdXRob3I6IFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA4OjEyOjA5IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20gc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZWZhMzEzNWEyNTBhZTFmZmYzMDg0OTZkMjJlNzc4MmFiYzBjMzkxZQpBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA4OjA0OjI3IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkIGNvbXBpbGUgd2FybmluZ3Mgd2l0aCBGcmVlQlNEL05ldEJTRAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAyNTk4OGJlODM2OTI0YTMzMDIwMTEzYzk0YWEwMjYxNGQxZGJmMWJlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA3OjM2OjM2IDIwMTEgLTA3MDAKCiAgICBhdXRvY29uZgoKY29tbWl0IDRkYjZiNjQ1MDlkYzM1MDgzOWQ1OTZlMzI1MDRiMmQ4MGNhMGM3YjAKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgNCAwNzozNjoxMCAyMDExIC0wNzAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NDk6IGZyb20geWFiZXJhdW5leWE6IEZpeCBhdXRvY29uZiB0ZXN0cyBmb3Igc3lzL21idWYuaAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBmM2JjNTUxODRkOTZjNThkY2ZkNTg5NTM3OTZjMTBmNzM1NGRkNGE3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA0IDA2OjU0OjIyIDIwMTEgLTA3MDAKCiAgICBwcm9tcHQgZm9yIHBhdGNoIGFuZCBhbiBhcmVhLCBhbmQgdXNlIHRoZSBwcm9wZXIgQ0hBTkdFUyBsaW5lIGZvcm1hdAoKY29tbWl0IGFkNjk2YmExMjQ5ZDNjNGJjMTJjMGViMzg0ODFmZjBmYzQzM2Y4YTEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDQgMDY6NDI6NDIgMjAxMSAtMDcwMAoKICAgIFVzZSBmZXRjaCAtLWFsbCBhbmQgcmViYXNlIGFzIHN1Z2dlc3RlZCBieSBCYXJ0IGZvciBzcGVlZCBpbXByb3ZlbWVudHMKCmNvbW1pdCA0NDk2OWI0ZTU3YzI3MTk0ZTViZDM1N2JjNDUyNzVmZWI4Njk1ZDIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEp1bCA4IDIwOjUyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogRml4IHRoZSBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHdpbkV4dERMTCBzb3VyY2UgY29kZSBhbmQgdGhhdCBhcmUgdHJpZ2dlcmVkIGJ5IHRoZSBjaGFuZ2Ugb2YgdGhlICJvaWQiIHR5cGVkZWYgZnJvbSB1aW50MzJfdCB0byB1X2xvbmcuCgpjb21taXQgZWE1OGI2N2I0ZjMxOGFjZjFmOWU4NTI1ODJiY2NhZDQ3YjRkOGU2NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKdWwgOCAyMDo1MjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogSW52b2tlIFNubXBVdGlsT2lkRnJlZSgpIGJlZm9yZSBTbm1wVXRpbE9pZENweSgpLiBJdCdzIG5vdCBjbGVhciB5ZXQgd2h5IHRoZSBvcmlnaW5hbCBjb2RlIGRpZCBub3QgbWFrZSBzbm1wd2FsayB0cmlnZ2VyIGEgbWVtb3J5IGxlYWsuCgpjb21taXQgOGEwMWVjNjQyM2Q0MDBjNGExM2NjYWM2OGEzNzkxZDAyMThhMDg4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBBdWcgNCAxMToxOToxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBsaW5raW5nIHdpdGggcmVjZW50IE9wZW5TU0wgYmluYXJpZXMgc3VjY2VlZC4KCmNvbW1pdCBlMjFlZWYyZmM1Y2ZkYzEyMDA0NzkxMThhMmM1YjI5YTcwYjBkZjYwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEF1ZyA0IDA4OjUyOjQzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBhIE1JQiB3YWxrIG9uIHRoZSBob3N0IHJlc291cmNlcyBNSUIgdHJpZ2dlcnMgYSBjcmFzaCBvbiBGZWRvcmEgMTUKCmNvbW1pdCBiMDU2ZWU2ZWI1MzkwOWFkMDRmMTZlYzI2ZDI2OTBkN2EwODMxOTJhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEF1ZyA0IDA3OjU5OjA0IDIwMTEgKzAyMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGluIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYwoKY29tbWl0IDE3MWY5NTgwZmZmYTYwNDFhZmM4NjJlZjk0NDBkOTQ5ZjBhYTc5YmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDMgMjE6Mzg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKCmNvbW1pdCA3OTRmOWE2OWQ3ZWI2NDIyNjgyMDBiMGE0YjE5OTE1MWRlZjY2ZWQwCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAzIDE0OjM2OjI1IDIwMTEgLTA3MDAKCiAgICBtYW51YWwgcHJlLW1lcmdlCgpjb21taXQgNzMxODdjZTgzNDFlZTMwYjk1MjA0ZDIyYjY5YmNlNTE1MDEyYzBjNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMyAxMTowNjoyMyAyMDExIC0wNzAwCgogICAgYWRkZWQgYSBjb21tZW50Cgpjb21taXQgNDM4YzIxMDg3NmRiZjdkMWY3N2NiMTRkMjJmOGVjOGVhNGYwZTc4ZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMyAxMTowMDozMSAyMDExIC0wNzAwCgogICAgYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdCBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKY29tbWl0IDM5YzJlMjUzYTJhYTFkZTEyOGM3ODUwNWM5MDljYzhhZTU0ZDBlMTYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDMgMTA6NTY6MTQgMjAxMSAtMDcwMAoKICAgIGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvciBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgpjb21taXQgZDhiMjA1MmEwMzU5YWQ5ZDFhNjhkOGQ1ODdiYzZiZTE1NjE1OGQyMApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMyAxMTowMDozMSAyMDExIC0wNzAwCgogICAgYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdCBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKY29tbWl0IDRlZWE5ZWUzOGYwNmUwMDBhOTVkYzIwOWQwYTcxY2U2MGRhNDk0YjkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDMgMTA6NTY6MTQgMjAxMSAtMDcwMAoKICAgIGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvciBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgpjb21taXQgMjg0ZjVmYjc5ZTA1NmEyNzJmNzNiOTA5MzdkN2JmMDU3YzJhZjAyMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMyAxMTowNjoyMyAyMDExIC0wNzAwCgogICAgYWRkZWQgYSBjb21tZW50Cgpjb21taXQgOGMwNDMyYTc0ZmVkZjhhMTM4NWM4YWQwZmYxZmI0MjlhMjhlYWI5OQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMyAxMTowMDozMSAyMDExIC0wNzAwCgogICAgYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdCBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKY29tbWl0IGNhM2FkM2EyOGY4MWY1OWRmZmEzZGJiODA5YTc3MDE0NzI0MWUzZTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDMgMTA6NTY6MTQgMjAxMSAtMDcwMAoKICAgIGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvciBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgpjb21taXQgNDlmNWY3YWY2NjU3ZTE2MWQ5NzEyZmMxZjYyYmUxODdhYmQ2YTE5NApBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAzIDEwOjI4OjE1IDIwMTEgLTA3MDAKCiAgICBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGI2MWFhMDkwNmFkNmQwY2VkNWVmMzg2OGMyNmRiNTM2YTI3Njk4NzkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDMgMTA6MjM6MDAgMjAxMSAtMDcwMAoKICAgIEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseSB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCmNvbW1pdCA4NjhjZGZjYjZlYzQyMjBiY2RkOWEwZGVkNGI4NGViNGZjZWViNTNhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyIDE0OjQzOjUyIDIwMTEgLTA3MDAKCiAgICBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8gdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCmNvbW1pdCBhZmE5NzMyNTIxZjFhZTZkNGUwYzlhOTE3NDVkYWRiNjNhY2U1NDBmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyIDEzOjIyOjM4IDIwMTEgLTA3MDAKCiAgICBXb3JkaW5nIGNoYW5nZXMgdG8gaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCmNvbW1pdCA4ZTcyZmJlODQwYjg5MzI1NzhkYzkyZjkxMTM1OThmNjAwY2IwNTkwCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyIDEzOjIyOjIxIDIwMTEgLTA3MDAKCiAgICBBZGRlZCB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCmNvbW1pdCAyZmE3ZDg3ZDM5NzllYzBmYmI4MzViY2ZmZjg5OGU2YmVjMmFiYmQ5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAzIDEwOjIzOjAwIDIwMTEgLTA3MDAKCiAgICBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkgdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgpjb21taXQgNzNlNzY1NzRhZTcyOGE0YTRhMzA2MjM1OTdlYzBiOTVmYTI3OTdjNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMiAxNDo0Mzo1MiAyMDExIC0wNzAwCgogICAgYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgpjb21taXQgYjI0YTRmMGM5NTY1MzM1MjIwZWUyMTdkMGMwYjUxMzIxY2MxYTQ0ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMiAxMzoyMjozOCAyMDExIC0wNzAwCgogICAgV29yZGluZyBjaGFuZ2VzIHRvIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgpjb21taXQgZTgzN2M3Y2I2MmM2NzZhMDA1OWQyODQ2ZTAyZTMyZjViYjYzYzFiMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMiAxMzoyMjoyMSAyMDExIC0wNzAwCgogICAgQWRkZWQgdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgpjb21taXQgOTczNjIzNGIzNzk4YmE1NDYyYTBhNzQ5NDNlZGU4MGU5MGE2NDg1YgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMyAxMDoyMzowMCAyMDExIC0wNzAwCgogICAgQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5IHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKY29tbWl0IGJmNzE3OGIwYjIyNTg3ZDQzZDFhODBjMjY5Y2QyMTZiZDU5MzAyMTQKQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KRGF0ZTogICBNb24gSnVsIDE4IDA0OjMxOjA4IDIwMTEgKzA0MDAKCiAgICBhZ2VudDogY2hhbmdlIHR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nCiAgICAKICAgIFR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB2YXJpYWJsZSBpcyBjaGFuZ2VkIGZyb20gaW50IHRvIGxvbmcuCiAgICBUaGlzIGZpeGVzIHRoZSBidWcgd2l0aCB3cml0aW5nIHRvIHNubXBFbmFibGVBdXRoZW5UcmFwcyBpZiBzZXJ2ZXIgaXMKICAgIGNvbXBpbGVkIGZvciA2NGJpdCAoc25tcHNldCByZXBvcnRzIHdyb25nIGxlbmd0aCkuIFRoaXMgYnVnIHdhcwogICAgaW50cm9kdWNlZCBhIGxvbmcgdGltZSBhZ28gKGJ5IGZhZWVjZDAgY29tbWl0KS4KICAgIAogICAgQWN0dWFsbHkgdGhpcyBpcyBhICdsZXNzIGVmZm9ydCcgdHlwZSBvZiBmaXggYnV0IEkgd29uZGVyIHdoeSB3ZSBuZWVkIGEKICAgIGxvbmcgdG8gc3RvcmUgYW4gSU5URUdFUiBpbiB0aGUgZmlyc3QgcGxhY2U/CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMTZjMDJkNjljYzljZTRmZDRlNzcxMGEwYmY5NDMwZjUyMTc1ZWQ1MApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMiAxNDo0Mzo1MiAyMDExIC0wNzAwCgogICAgYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgpjb21taXQgN2ZlZDYxYmYwYWYxNDc3ZWI3NDBhMDU4OGY2YTExYTEyYjcyMzU5NQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMiAxMzoyMjozOCAyMDExIC0wNzAwCgogICAgV29yZGluZyBjaGFuZ2VzIHRvIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgpjb21taXQgOTM4MDYxMmZkY2I0ZjliYjA4MWM0YTQ2NzQ2NjkyMTI0YWJlZGU1MApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMiAxMzoyMjoyMSAyMDExIC0wNzAwCgogICAgQWRkZWQgdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgpjb21taXQgNjFiMTc4ZjFlZTg5NTJhYTAzYWEzYjFiYTUxZjRhNjY1NWU0N2YwMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMyAxODowOTo0NyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogUGVybCBtb2R1bGVzIGJ1aWxkIG5vdyB3aXRoIElQdjYgZW5hYmxlZC4KCmNvbW1pdCBmMjgzMmUzNDA3ODc3ZTcxYTdlYTZkZWE2NTllM2UyMGEwYzVmYTc4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyAzIDE3OjQzOjAxIDIwMTEgKzAyMDAKCiAgICBXaGl0ZXNwYWNlLW9ubHkgY2hhbmdlOiBmaXggaW5kZW50YXRpb24gb2YgYW4gI2luY2x1ZGUgZGlyZWN0aXZlCgpjb21taXQgN2ZjYzBiODAzMmY4ZGE1YjdiYzMwMDU5YWYwYmE2NTZlYWU3MTA5MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBBdWcgMSAxNDoxMToyOCAyMDExICswMjAwCgogICAgc211eDogRml4IHJlY2VudGx5IHJlaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzaXplX3QgPD4gc3NpemVfdCBtaXNtYXRjaGVzCgpjb21taXQgYjQ4NGI4OGQ2ZTU3YjQyNWE4NDY3ZjVhMzkzMzMzMTJmZWQyYWNmMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBBdWcgMiAwOTozMTo1MCAyMDExICswMjAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYwoKY29tbWl0IDk0NDYxMmVmNTZhZDI1NjRhYWZlMTRkZjZkMDhlMDQ4YjcyMjhiODYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gQXVnIDEgMTQ6NDk6NDEgMjAxMSArMDIwMAoKICAgIC5naXRpZ25vcmU6IEFkZCBmaWxlIG5hbWVzIGFuZCBwYXR0ZXJucyBmb3Igb3V0cHV0IGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgdGhlIFdpbmRvd3MgYnVpbGQKCmNvbW1pdCAyNjAwOTAxMjc4NWY4MjhiYmZjODc1OWFmYmJiZmM1ODcwMGZmMWY2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEp1bCAyOSAwOTo1OTozMSAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogU29ydCBhbHBoYWJldGljYWxseQoKY29tbWl0IDVlM2ZmNTU5NjY0OGUwOTA3ZDU3MWQ3YTRkM2EzYThjMjQwMmQ4ZWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSnVsIDI5IDA4OjQzOjE5IDIwMTEgKzAyMDAKCiAgICAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKCmNvbW1pdCAzMWEzYTJhMDYyNDA0NjUxMWNhMDdlYzFmNTIxYTIyZDc5NjZkYjgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEF1ZyAxIDEzOjM4OjAxIDIwMTEgKzAyMDAKCiAgICBSZW1vdmUgdHdvIGdlbmVyYXRlZCBQZXJsIGZpbGVzLgoKY29tbWl0IGFkYWRjYjk5ZTU3YjkzYmU2NzBhN2M1MTdmYzk4OWRmZmU3Mzk2ZTkKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDIgMDA6NTY6NDkgMjAxMSArMDIwMAoKICAgIHN1cHByZXNzICJvayIgdGVzdCBvdXRwdXQgaW4gbnNiCgpjb21taXQgNDAxMjVkODUzOWNkODlmOTUyZmJjMjQ1ODhjNWU4MWU5Y2Q4MjFmZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDEgMTM6NTg6MzMgMjAxMSArMDIwMAoKICAgIERldGVjdCBTTVVYIHJlY3Zmcm9tKCkgZXJyb3JzIHByb3Blcmx5LgoKY29tbWl0IDVhY2YwZDJjZWIzOTc3OTY0ZWQzOWYwMDMwNzNiYTY0MTM4YzJlYmQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDMxIDIzOjU3OjQxIDIwMTEgKzAyMDAKCiAgICBGb2xsb3ctdXAgZm9yOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZCBtc2dfY29udHJvbCBpbiBzdHJ1Y3QgbXNnaGRyCgpjb21taXQgYWU5YWM2Yzk4MTI4MjRiZjViODQ4ZGMxZjNjY2Y3MjI3YzQzNmQwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdWwgMzEgMDk6MTE6MjggMjAxMSArMDIwMAoKICAgIEZpeCBhbiBpbmNvcnJlY3Qgc291cmNlIGNvZGUgY29tbWVudDogdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgaW4gdGhlIEFOU0kgQyBzdGFuZGFyZCB0aGF0IHN0YWNrIHZhcmlhYmxlcyBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgdG8gemVyby4KCmNvbW1pdCAyNDJlMTc5N2IyNjk0YTA2ODk4NTZhZTM2ZDA1ZDM0MTNhYWY4ZDc3CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1bCAzMSAwMTo0NDowOSAyMDExICswMjAwCgogICAgRm9sbG93LXVwIGZvcjogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGQgbXNnX2NvbnRyb2wgaW4gc3RydWN0IG1zZ2hkcgoKY29tbWl0IDgyZDczZmIxMWJlM2FlMzFmMzljOWQ2MThkNTM4OGRjOWIxMDA2ZDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSnVsIDI5IDIwOjUxOjI3IDIwMTEgKzAyMDAKCiAgICBVbmJyZWFrIHRoZSBXaW5kb3dzIGJ1aWxkCgpjb21taXQgNTRhNDRjYjdkZDcxZGU2NjE2YTVjY2JmZWQzNGE4Yjc5NjM0NmQ1MQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdWwgMzAgMTQ6Mjg6MjkgMjAxMSArMDIwMAoKICAgIGF1dG9yZWNvbmYKCmNvbW1pdCAxMDlmNjY5NGQ3ODhmNDhlYmQ5ZmMwYTFlOTBjNDVhYmMzN2JlYTIwCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1bCAzMCAxNDoyMjoxOSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19jb250cm9sIGluIHN0cnVjdCBtc2doZHIKCmNvbW1pdCA5ZTQ3YWM0MzkzMzNkMmJiN2M4MDY4NjI0MWRiNzMzMWE4ODc3MGZiCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1bCAzMCAwMDoxODoxNCAyMDExICswMjAwCgogICAgbWlub3IgbnNiIGZpeGVzL2VuaGFuY2VtZW50cyBmcm9tIG15IG9sZCBzdm4gdHJlZQoKY29tbWl0IGM0ODE3M2MwNmE5ZWFhZGJmODFlNmI0OTYyZDU1ZWYwYTU0ZGIyNTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSnVsIDI5IDEwOjI3OjM5IDIwMTEgKzAyMDAKCiAgICBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCmNvbW1pdCBlY2ExYjlhMjU0NTBjZDg3NWIyMDEyYzUxYzA5MGJhMmI5N2UwNjI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEp1bCAyOSAxMDowNDowMiAyMDExICswMjAwCgogICAgUmVydW4gYXV0b3JlY29uZgoKY29tbWl0IDY5YWE5ZTAzMmNhZjVlYjcxM2JiMDA3NDUxMzQ2NDBmZTlmZDAyMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSnVsIDI5IDA5OjU5OjMxIDIwMTEgKzAyMDAKCiAgICAuZ2l0aWdub3JlOiBTb3J0IGFscGhhYmV0aWNhbGx5Cgpjb21taXQgYzM4NTk3ZGZhMGIxZDM2N2Q1MmJiZGMwYWVhYWRmZjAxNTU4NTBhZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKdWwgMjkgMDg6NDM6MTkgMjAxMSArMDIwMAoKICAgIC5naXRpZ25vcmU6IEFkZCBhcHBzL3NzaHRvc25tcAoKY29tbWl0IDc3NGQwYjY2ZWUwYWNhZmVhZmEyMWZjOGQ5OTM4NjQ3NzllNTBlNjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSnVsIDI5IDA3OjQzOjU0IDIwMTEgKzAyMDAKCiAgICBGaXggdHdvIGZpbGVuYW1lcyBpbiBob3N0IG1pYiBzb3VyY2UgY29kZSBjb21tZW50cy4KCmNvbW1pdCAzNDU4MTI4YjRhM2M1OTcxOTk4ODk0ZjlkOWQ4Y2NjNmM3NmQzYzliCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMjggMTY6MTY6MTUgMjAxMSArMDIwMAoKICAgIEZpeCBwb3RlbnRpYWwgc2lnc2VndiB3aGVuIGFuIGlmVGFibGUgZW50cnkgaXMgcmVtb3ZlZCBhcyByZXN1bHQgb2YgYm90aCBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgYW5kIGludGVyZmFjZV9mYWRlb3V0IGF0IHRoZSBzYW1lIHRpbWUuCgpjb21taXQgYTJmOWVjZTA2Y2YwMGVlNDdjZTdlODU2NzIyMTBjMWI1Nzg2ZjMxMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMjggMTU6MTk6MjIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBSZXN0b3JlIHN0b3JhZ2UgdGFibGVzIG9uIExpbnV4Cgpjb21taXQgZDYyYTBlYjkwNzBiNGQ4ZDlmZTJiY2ZkYjRkNTNkMzdlZjgxNGY5YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDI4IDE0OjQ5OjA4IDIwMTEgKzAyMDAKCiAgICBEb2N1bWVudCBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgb3B0aW9uLgoKY29tbWl0IGY2NjBiOGMwZDhjMjcwN2JkNzMxNDJmMDc2MDc5YzkxNjlmMzU5NTYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAyOCAxNDo0MDoyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfcmVwbGFjZV9vbGQnIG9wdGlvbiB0byByZW1vdmUgb2xkIGVudHJpZXMKICAgIGluIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKICAgIGFwcGVhcnMuCiAgICAKICAgIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgoKY29tbWl0IDQwNmNhYjgxODkyNjQ5OWMzMTIxZGVjZTQzNzdkNjc2Mzg4OTQwNDIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAyOCAxNDozMjo1NyAyMDExICswMjAwCgogICAgRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KCmNvbW1pdCA0MmI4ODNjZTE4ZTU4Y2E4OWZkZmQ1MTRlYzY5OGUyZjdmZmQxZjYzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMjggMTQ6MzI6MzggMjAxMSArMDIwMAoKICAgIEFsbG93IGlmVGFibGUgZW50cmllcyB0byBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IHdoZW4gYXBwcm9wcmlhdGUgaW50ZXJmYWNlCiAgICBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCgpjb21taXQgNDUwNjJlYTQ3YmUxY2Q4ZGY0OTMzYTBkZTdmNzJmOGNmOTE4M2FhZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDI4IDEyOjI0OjEwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQgbGlmZXRpbWUgb2YgaWZUYWJsZSBlbnRyaWVzIG9mIHJlbW92ZWQgaW50ZXJmYWNlcy4KICAgIAogICAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KCmNvbW1pdCAzMWZhMDdjZDlmZmRlNDZkNDFkMmI1ODM4YzNmYzRkMDE1NDhiZmI1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMjcgMTQ6NDU6NDcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBwdXJnZSB6b21iaWVzIG9mIHBhc3NfcGVyc2lzdCBjaGlsZCBwcm9jZXNzZXMuCiAgICAKICAgIElmIHBhc3NfcGVyc2lzdCBwcm9jZXNzIGVuZHMsIHdlIHNob3VsZCBwcm9jZXNzIGl0cyBzaWdjaGlsZCBzaWduYWwuCgpjb21taXQgMTFiZDZlMDMyZDE1ZmZiMTFkNzJlMzUyY2E2YmM5NTAyM2MzMzcxYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDI3IDE0OjQ1OjA5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcnVuIHNpZ25hbCBoYW5kbGVycyB3aGVuIHNlbGVjdCgpIGlzIGludGVycnVwdGVkLgogICAgCiAgICBUaGlzIGJlaGF2aW9yIGlzIGluZGljYXRlZCBpbiBjb21tZW50IG9uIGxpbmUgMTI0NCwgYnV0IGl0IHdhcyBub3QgYWN0dWFsbHkgZG9uZS4KCmNvbW1pdCBjZDZlMzgyYmVkYThkNDBlZGQwNjY0ZThmYWVjOGRiMjI0ZTVkNWQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEp1bCAyNiAxNjoxNjo0NiAyMDExICswMjAwCgogICAgQ2xhcmlmeSBhbiBJUHY2IHNvdXJjZSBjb2RlIGNvbW1lbnQKCmNvbW1pdCAyY2VjNjI0NzkyYWY4NTQ2NTA1ZmJhMDJjYTBhMmUyMTE2YTU1OWU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEp1bCAyNiAxNDo1OTozMyAyMDExICswMjAwCgogICAgU3BlbGxpbmcgZml4OiBkZWZpbmVkeSAtPiBkZWZpbmVkCgpjb21taXQgZjk1YTFmMzgwZWExOGZmNjMzZjI3M2E5YWE1ZTllYjI3NjI3MDEwZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKdWwgMjYgMTQ6MTk6MTQgMjAxMSArMDIwMAoKICAgIFNwZWxsaW5nIGZpeDogYWxldmlhdGUgLT4gYWxsZXZpYXRlCgpjb21taXQgYzVhODQ2NGM0MmE5NGMyNTBlZTJkZmEyYTQ3MzEwOWE3MzQyMDNkOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDI2IDE0OjI0OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIOiAzMzEwMzc1OiBmcm9tIEVyaW5uIExvb25leS1UcmlnZ3M6IGZpeGVkIHBhcnNpbmcgb2YgdmFyYmluZHMgd2l0aCBNSUIgbmFtZXMKCmNvbW1pdCBmOWNjYmM3NzI2NjYxMzRkMWQxNzhiNTA1YWY5ZGRjZGQ5ZWQ0MjQ0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMjUgMTU6MDI6MTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvIGluIFVDRC1TTk1QOjpkc2tUYWJsZQoKY29tbWl0IGMxNGZjMzg2MTRiYWYxMGQ1MTcxMzZmMDQ4MDkwN2I3ZjAzZDhkNzQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDIwIDEzOjQ0OjU5IDIwMTEgLTA3MDAKCiAgICBVcGRhdGVkIHRoZSB3b3JkaW5nIGNob2ljZXMgYSBiaXQgYW5kIGxpc3RlZCB0aGUgaGFuZGxlciB0eXBlcyBpdHMgcHJvZHVjaW5nCgpjb21taXQgNDVmZjc3OGY1NzE2NGYxZTJlNTUwMjM3MDc0M2RlYmQ3ZWFiZjJiZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMTkgMTg6MzY6MTEgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0IGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCgpjb21taXQgZWJkZDIxNmMwNzRiZjQxY2QzYTA4NGJkMTQ2ODljZjAxYzg4N2IzMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMTkgMTg6MzY6MTEgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0IGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCgpjb21taXQgZDY1YzdiMTRhMGY5MTU2MGJiZjY1Mjc0ZjYyZTQ4ZGI5N2EzNGIzZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMTkgMTg6NDY6MTAgMjAxMSAtMDcwMAoKICAgIHVwZGF0ZWQgZ2l0aWdub3JlIHRvIGlnbm9yZSBhIG51bWJlciBvZiBhdXRvLWdlbmVyYXRlZCBmaWxlcwoKY29tbWl0IGFiMWQ4ODdiYTM4M2MzM2Q4NTNhYTRkMzQ4YmJjZWFiOTgxYWEyNDUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDE5IDE4OjM2OjExIDIwMTEgLTA3MDAKCiAgICByZW1vdmUgYnJva2VuIHdoaXRlc3BhY2UgbGluZXMgdGhhdCBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgoKY29tbWl0IGRmNWY3MDA1NWNmOWJlMzNmMDVmYjUwYWJlMmY1YTgxZWFjMDkyYWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSnVsIDE5IDExOjA3OjE5IDIwMTEgKzAyMDAKCiAgICBSZXJhbiBhdXRvcmVjb25mCgpjb21taXQgNzBkZWU0YjhkZDM3ZThiMWQ1OWRiMDNjZDdmNjMxZmUzNTZmMTllNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKdWwgMTkgMDk6Mzg6MTYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzM2OTY4MDogZnJvbSBJbHlhIFlhbm9rOiBjaGFuZ2Ugc25tcF9lbmFibGVhdXRoZW50cmFwcyBmcm9tIGludCB0byBsb25nIHN1Y2ggdGhhdCBtb2RpZnlpbmcgdGhlIGNvcnJlc3BvbmRpbmcgTUlCIG9iamVjdCBkb2VzIG5vdCBvdmVyd3JpdGUgbWVtb3J5IGluIDY0LWJpdCBidWlsZHMuCgpjb21taXQgMGYzMDliNDkzYzIxZDNjNjkxNDQ4NzUxNGI0MTU2MDc1NGZmY2RmOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKdWwgMTkgMDg6Mzc6NTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRml4IGEgcmFyZSBjcmFzaCB0cmlnZ2VyZWQgYnkgU0lHVEVSTSBieSBtb3Zpbmcgc2h1dGRvd25fcGVybCgpIGZyb20gdGhlIFNJR1RFUk0gc2lnbmFsIGhhbmRsZXIgdG8gdGhlIGNsZWFudXAgY29kZSBzZWN0aW9uIGluIG1haW4oKS4KCmNvbW1pdCA2OTBlYTdkYzQ1YzZmZTFhN2JiZmExNTg0ZWQ5YmY5MjFmMTliMjhmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEp1bCAxOSAwODoyODo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBBZGQgbWlzc2luZyBuZXdsaW5lIGNoYXJhY3RlciBpbiBhIGxvZyBtZXNzYWdlCgpjb21taXQgZGQyZmMyZWQ4OGQwZjliYjgxZGUzNWRiZTFmOWJkM2JiYmJiM2Q5MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKdWwgMTkgMDg6Mjg6MTMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogSW52b2tlIHNodXRkb3duX3BlcmwoKSB3aGVuIHNodXR0aW5nIGRvd24KCmNvbW1pdCA2ZGVlYzFhODkwNDhjOGRiMjY1MjM1MTdhZjk4ZGRkMzk3ZmM3N2MzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEp1bCAxOSAwODoyMzowNSAyMDExICswMjAwCgogICAgU3BlbGxpbmcgZml4OiBicmFua2V0IC0+IGJyYWNrZXQKCmNvbW1pdCA4ZDlkY2M4MDZlYWIzN2ZlMmRkZjljYzM0Y2Y4NjQ2NzI2NWI2MmNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1bCAxNyAxMTozODo1OCAyMDExICswMjAwCgogICAgUnVuIGF1dG9yZWNvbmYuIEZpeGVzIGJ1aWxkIGJyZWFrYWdlIGNhdXNlZCBieSBwYXRjaCBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5IChSUE0gNC45IHN1cHBvcnQpCgpjb21taXQgZDYxN2Q4NGY4M2ZhNjllZDlmYTlmOThlZmM0YWZhZjg4MGQxMjFmMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKdWwgMTQgMTY6NDM6NDcgMjAxMSArMDIwMAoKICAgIFNwZWxsaW5nIGZpeDogYnJhbmtldCAtPiBicmFja2V0Cgpjb21taXQgYzQ4Y2VlZjk0MWNlMDM2ZDI2NzVhZTk0MmRlYWQ4NTRjZjVhMWUwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKdWwgMTQgMTY6NDI6MDAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9pcHY2X2ZtdGFkZHIoKSBzaG93IHRoZSBJUHY2IHNjb3BlIElECgpjb21taXQgN2JhZDc4ZTUxOTQxNTc2OTA0YWZkNjJjYzkxMzY2NjcwOGY4ZjQ2YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdWwgMTcgMTE6MDQ6MzQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBZGQgc3VwcG9ydCBmb3IgSVB2NiBhZGRyZXNzIHNjb3BlIElECgpjb21taXQgNGZiMWYwZWRhNzkwOWFhZGE2YWJjNWJkOGRiZjAxNGQxMTVmZGI0ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdWwgMTcgMTE6MDc6MTAgMjAxMSArMDIwMAoKICAgIFJ1biBhdXRvcmVjb25mCgpjb21taXQgYTU2NzIxYTNlNzc1NGUzODlkYWE3ZThhM2Q1NzkyODk5ZWRjOWRlMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKdWwgMTQgMTY6MTg6MzIgMjAxMSArMDIwMAoKICAgIEFkZCBhdXRvbTR0ZS5jYWNoZSBhbmQgc3RhbXAtaCB0byAuZ2l0aWdub3JlCgpjb21taXQgODUxYmNmNTNmY2QxM2NkZjBiYTlmMTJlNWQ2MDNlNzNmOGJiOTYxMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdWwgMTUgMTU6MzI6NDkgMjAxMSAtMDcwMAoKICAgIG1lbnRpb25lIHRoZSAnYmVmb3JlJyBwYXJ0IG9mIHRoZSBpbmplY3RIYW5kbGVyIGxpbmUKCmNvbW1pdCA5Zjc5MzYzMDE2MmNiNzcxM2FjNGI2OGM5YWFiZTUwZTY3NTE0MDcxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxNCAwNzozMTozMCAyMDExIC0wNzAwCgogICAgZml4IGEgdHlwbwoKY29tbWl0IGVkYzJjODgzNzVmZWNjYjE3NmJjYWRlYjU4ODEwZGQ1N2JkOTdmYjcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDExIDE5OjMzOjAzIDIwMTEgLTA3MDAKCiAgICBhZGRlZCBhIGNvcHkgb2YgdGhlIHNoZWxsLWZ1bmN0aW9ucyB0byB0aGUgb2xkZXIgYnJhbmNoCgpjb21taXQgOTY0ZDYzNTE0OTgyZDZkZDlmYTk1MDIwZDI0YTNlODhiMjJmMmQwYwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMTEgMTk6MzA6MjkgMjAxMSAtMDcwMAoKICAgIGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyIGJyYW5jaGVzCgpjb21taXQgMTk2ZTExMGIzMTRlMzdlNzNhNzRlZGIwM2M0M2RhMDI5OWVhOGI0NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMTEgMTk6MzQ6MDYgMjAxMSAtMDcwMAoKICAgIGFkZGVkIDUuNyBwYXRjaGVzCgpjb21taXQgYTJhYzI0ZGQ0YjViNzA5NzczZmU4Mjc2ODdjODU5ODI3NzVkOTk5OApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMTEgMTk6MzM6MDMgMjAxMSAtMDcwMAoKICAgIGFkZGVkIGEgY29weSBvZiB0aGUgc2hlbGwtZnVuY3Rpb25zIHRvIHRoZSBvbGRlciBicmFuY2gKCmNvbW1pdCA4YWQzMmNlZmIzN2M2MjA4MGM0ZjNkNzQ0NDM4ODRiZWMxYzQ5YWRkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAxMSAxOTozMDoyOSAyMDExIC0wNzAwCgogICAgYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIgYnJhbmNoZXMKCmNvbW1pdCA5ZmY0NzE0MzllMzI2MjU1MDY2Mzc3Yzc2ZDk5NWUxYWFmMjk2YmQyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAyOSAyMzoxNTo0MiAyMDExIC0wNzAwCgogICAgZml4IHRhZyBwdXNoaW5nCgpjb21taXQgZjlhNjUzODViMjNkMDZkYmJlOTQzMGEyM2M4ZWJjZjY4ZDEyMTI3ZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjkgMjI6MzI6MTAgMjAxMSAtMDcwMAoKICAgIG1pc2MgcHVibGljYXRpb24gZml4ZXMgZm91bmQgd2hpbGUgcHVibGlzaGluZwoKY29tbWl0IGRmOWNmOWExZTI5M2QwNWEyNDc4NjY5NGY2OGMwNWEyYmUxM2E5YjMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDI5IDE2OjM0OjExIDIwMTEgLTA3MDAKCiAgICB4bWwgZml4ZXMKCmNvbW1pdCBlZThkMTYwNDE2YzJmN2QxOTQxODYzZTdkMzc1MTI2NThlM2YyZjM2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAyOSAxNjozMzo1MCAyMDExIC0wNzAwCgogICAgdXNlIGdpdDJjbCB0byBnZW5lcmF0ZSB0aGUgQ2hhbmdlTG9nIGZpbGU7IG5lZWRzIG11Y2ggbW9yZSB3b3JrLgoKY29tbWl0IDVkNGJiODAxMTNkZGNjZTVjZWUyOTNhNGU1MzdiMjAxZmFmY2FiODMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDI5IDE0OjQ4OjM5IDIwMTEgLTA3MDAKCiAgICB1c2UgdGhlIG5ldyBydW4tYXV0b2NvbmYgc2NyaXB0Cgpjb21taXQgNjFmZmVmNjI2ODY3NWE5MWUyMzBkNDRiMzQwN2EzZDBjM2ZmYzg5ZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjkgMTQ6NDc6NTYgMjAxMSAtMDcwMAoKICAgIEEgc2NyaXB0IHRvIGludm9rZSB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIHRoZSBhdXRvY29uZiB0b29sCgpjb21taXQgZDBmNmY4ZGUzNzI5MmI3ZmJjOWUwNTc5MzY5MGI1Nzg0YTA0MWQ0NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjkgMDg6NDE6NDUgMjAxMSAtMDcwMAoKICAgIHJlbWFpbmluZyBjb21tYW5kIGxpbmUgY2hhbmdlcyBmb3Igc3ZuIC0+IGdpdAoKY29tbWl0IDE2NTYwODQwMDIwZGM1ZTBjNGIyOGNjMmUzMGJiMmNkMDM0Y2UwZDAKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDI5IDA3OjI2OjU1IDIwMTEgLTA3MDAKCiAgICBtYWtlIHRoZSBicmFuY2ggZWNobyBvdXRwdXQgYW5kIHN2biB1cGRhdGUgY29udmVydGVkIHRvIGdpdCBlcXVpdmFsZW50cwoKY29tbWl0IGY3NzViY2Q2YTdhNTBmMzM3ODI1MjZlY2RiMWJlZWE1NWUzZmU4MjMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDI5IDA3OjExOjI5IDIwMTEgLTA3MDAKCiAgICBwdWxsIHRoZSBicmFuY2ggaW5mbyBmcm9tIGdpdAoKY29tbWl0IGQ1ODhlYzg1M2JkMDUzMWYyMTJmY2JmNTFiOTYyYjk2YzY4MjhiNTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAyOSAxNjowNzowMCAyMDExICswMjAwCgogICAgVHdlYWsgUlBNIGhhbmRsaW5nIHRvIHdvcmsgd2l0aCBsaWJyYXJ5IHZlcnNpb24gNC45Cgpjb21taXQgYWY4YjIzNTIzNGY3Mjk0NGE2NDlhNzZmMGQzMGNmZjk1YWMyZTg5NQpBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgpEYXRlOiAgIFR1ZSBKdW4gMjggMTM6MTE6MTkgMjAxMSAtMDcwMAoKICAgIE1lbnRpb24gdGhlIEdpdCB3aWtpIHBhZ2UKCmNvbW1pdCA5YmM4MmU0Y2E0ODM3ZjAwMDcyZGJhODZiOTQ5N2EyNzE4NjkwOWY5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEp1biAyOCAxOToxMzozNSAyMDExICswMjAwCgogICAgQWRkIC5naXRpZ25vcmUKCmNvbW1pdCBmMmRmOGEyYjAxNjVlMDEzN2ZkMDE3YjQxYzdkMDRlM2E1ZTE2OGU2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CkRhdGU6ICAgVHVlIEp1biAyOCAwODoyOTowOCAyMDExIC0wNzAwCgogICAgV2UncmUgbm93IHVzaW5nIGdpdCEKCmNvbW1pdCA3ZDkxN2NmYzhmNzQ1NzQwMzI1NjQ4MTVhYjBmYjQ4M2I2OTE4NjRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVuIDI0IDEzOjAwOjUwIDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTE2MmU5MzFmMjk5MzFjZTAzZDQwZDczZGQ5NjlmNjA4NjA4M2I4MApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEp1biAyNCAxMjozODoxNCAyMDExICswMDAwCgogICAgTWlzc2luZyBjaGVjayBmb3IgcnBtdHMuaAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwNzg3ZmYxZjYzMmUwODQ0MGU4YmIyNDBkYWJjYTVjNWU2M2ZkODJkCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVuIDI0IDEyOjIwOjIwIDIwMTEgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDQ1MzBkODc3NTMxMDgzYmZmZmQzYmJjYTRhODJjMzAwMDliZWY4ZmQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdW4gMjQgMTI6MDg6MjMgMjAxMSArMDAwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA0OTU3NWYxMzZiNDBkMDhkMjFhMTY4YTBkNTQ1ZDg1ZjU5YzU4NzAxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVuIDI0IDEyOjAyOjE1IDIwMTEgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDU5OWUzY2RmZjllNzg2MjI1MzU2ODNhNjlmNDI5NzdkZjQwODliYTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdW4gMjMgMTU6NDE6MzggMjAxMSArMDAwMAoKICAgIFR3ZWFrIFJQTSBoYW5kbGluZyB0byB3b3JrIHdpdGggbGlicmFyeSB2ZXJzaW9uIDQuOQogICAgQmFzZWQgb24gYSBwYXRjaCBieSBKYW4gU2FmcmFuZWsKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNWMyYTY5MWJkMjllYTM0MzA0NmQyMTg2MjE1MDJhNjZiYzk2YTFiYgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAyMiAxNDoyNzozOSAyMDExICswMDAwCgogICAgUHJvdmlkZSBhIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tCiAgICBhIGNhY2hlIGRpcmVjdG9yeSAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4KICAgIAogICAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzIGZ1bmN0aW9uYWxpdHkuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDI3MDc0MzVlZjVlMDExYzM2MzdmMzc5ODFjYmU0ZDUwZjJlNzI5ZGMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjIgMTM6MjY6NDUgMjAxMSArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyNzJmOTZhZWM5MzdlZDc0Y2M0ZGI5ODA3NDVkMmRiZTAwY2E1M2EwCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDIyIDEzOjA2OjQ1IDIwMTEgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDllNDcxYWRjMmE0MDIxMmI0YzAxN2NiY2VkNmUyNTg4MmUzMDZhNGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjIgMTM6MDQ6MTIgMjAxMSArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzRhZDI3ODI0ZjljNmU5MWE5ZmMxMWQ2NjE5NjU2YzM2ZDVkNjYxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1biAyMSAxNDoyODo0OCAyMDExICswMDAwCgogICAgUHJvdmlkZSBhIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tCiAgICBhIGNhY2hlIGRpcmVjdG9yeSAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4KICAgIAogICAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzIGZ1bmN0aW9uYWxpdHkuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDhhNWFjNzc1ZGU1NzU0MTYwNzA2NjVjMzBiYzNkNzczMzZlMTJiY2IKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdW4gMjEgMTQ6Mjg6NDggMjAxMSArMDAwMAoKICAgIFByb3ZpZGUgYSBmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbQogICAgYSBjYWNoZSBkaXJlY3RvcnkgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuCiAgICAKICAgIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcyBmdW5jdGlvbmFsaXR5LgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1OTQ5MzdkYjc1NWViMzgwZmNmNmNkMjIwY2U2MmY2ZTRhMzEwM2MzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1biAxOSAwNzo1MjoyNiAyMDExICswMDAwCgogICAgRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UgdGhlIHByb3BlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNDUyNDI1NWJhNjA4M2QyNWMwM2Y2NDM2ZWNiZTM5ODgzNmY0YTBmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKdW4gMTkgMDc6NTI6MjYgMjAxMSArMDAwMAoKICAgIEZvbGxvdy11cCBmb3IgcjIwNTExOiByZWFsbHkgdXNlIHRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDEwNWRlMDIxOWNhMmFhNzllZDY1ODVmZjhkMGNlNDU1YTE4NmQxMGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVuIDE3IDE5OjA5OjUyIDIwMTEgKzAwMDAKCiAgICBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQgaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YgdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjIxYzllZGExMjgyYjdmNTYyYjM3NzdiNWZiNTdmZDM1NWMxYTIwNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdW4gMTcgMTk6MDk6NTIgMjAxMSArMDAwMAoKICAgIEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudCBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZiB0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzYjNlOTdiMzA5YTUzNWRmMWE5OWIwMzY5Mzg2OTA1MDY0OWQ1M2EwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEp1biAxNyAxOTowNjo0MiAyMDExICswMDAwCgogICAgVXNlICVwIHRvIHByaW50IGEgcG9pbnRlciBpbnN0ZWFkIG9mICVsZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgODc4YmNkODc2NGJlNWQxNThkNjVmNGIyMGE2OGNiM2E5NDhkYmRkZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdW4gMTcgMTk6MDY6NDIgMjAxMSArMDAwMAoKICAgIFVzZSAlcCB0byBwcmludCBhIHBvaW50ZXIgaW5zdGVhZCBvZiAlbGQKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDc5MDlmNjBlMmRmMDZkNjU1MjZlOTQwZWEzMjg2YzI0YmMzNmM3ZmYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVuIDEwIDA2OjA1OjQzIDIwMTEgKzAwMDAKCiAgICBJbmNsdWRlIHN0ZGxpYi5oIHRvIG1ha2UgZG1hbGxvYyBoYXBweQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMTJmMjZjNWVlMDY4OTE0NGQ0NmJkMzRmMzZhMjgwNTIyMmQzNzYxZApBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVuIDkgMTQ6MzU6MDggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IEJVRzogMzE1MTg0NTogZml4IG11bHRpcGxlIHJlZ2lzdHJhdGlvbnMgb2Ygc25tcCB0cmFuc3BvcnQgaGFuZGxlcgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzNzRhZjA3NTg2NDRlOWFiY2M0OTk4ZmIyOTFjYTM3Mzg2OTA0OGY4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEp1biAzIDA2OjMwOjMzIDIwMTEgKzAwMDAKCiAgICBSZXZlcnRlZCByMjAzNjI6IHRoYXQgcGF0Y2ggbWFrZXMgc2Vuc2Ugb24gdGhlIHRydW5rIGFuZCB0aGUgNS42IGJyYW5jaCBidXQgbm90IG9uIHRoZSA1LjUgbm9yIG9uIHRoZSA1LjQgYnJhbmNoLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNDg1MDgxMmY1YWZhYWE3Mjg2Y2NiN2I4MWJjMDUyM2YyYjdkZTM3YwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMSAyMjoyNDoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvciBkZWJ1Z2dpbmcgb3V0cHV0IG9mIGFnZW50eAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNzE4OTM1NmQ4OGI0Y2JkOTIwZmQ5MzQxMTFlNGI2ZDY5MDUxM2Y1MApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMSAyMjoyNDoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvciBkZWJ1Z2dpbmcgb3V0cHV0IG9mIGFnZW50eAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzljM2RiMTU3NTJkNmU0YjhiOTYwMGNkN2QxYThkNzlkNmQ4M2MzZQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDE1OjU3OjE4IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMGVlZmVjY2Y3NmQ2MzA3OTZiN2M4YzY0YTBlMzNkMDE3NTI2MmZjYgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDE1OjQ4OjQ5IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMzVmMGEzODIyYWY4ZjAwODU1MjQyOTA2YjEzMmU3MDJkZTg5OTIxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDE1OjQ3OjA0IDIwMTEgKzAwMDAKCiAgICBtYWtlIGRlcGVuZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjFlNWFjYmI2MDViZWQzMjEwYzdmNWRkYWVlZWYyYTA1MGNmNmJlYQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDE1OjQyOjAwIDIwMTEgKzAwMDAKCiAgICBSZWluc3RhdGUgYW4gInVudXNlZCIgbGFiZWwgdGhhdCBpcyBhY3R1YWxseSBzdGlsbCByZXF1aXJlZC4KICAgIChyZWZlcmVuY2VkIGluIGxpbmUgMjcxMCkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMjQ4NzU3OWQxZTk3NzEzN2RjNjQzYWNlZTc2MmFlYWFmYTYwZjRiZApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDE1OjMyOjIzIDIwMTEgKzAwMDAKCiAgICBGaXggdHlwbwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjYWMxMWE5MmMwNGE1Y2M1MWUyMzFiZTBhYjExNmRiODU1MjIxZGUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDEgMTU6MDg6NTEgMjAxMSArMDAwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmYThlZTRmOTdjMmZhOGZiNmU1OWNmMDU1ZTBkODFhM2JkZWNmYjk3CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDEgMTQ6NTE6MTQgMjAxMSArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgODY1Y2NmZjMyMjBkMDE3ZjNlZjNiNjE5ZjBmOGY0NDdkMzM1MTRlYgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDEwOjE5OjMzIDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgN2I2MTliMTBlOTEyYmRkMWM3NjMzY2UzYjFlNzI1NzRjMjM0MWNlOQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDEwOjAxOjAxIDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNTVmNmU4YzNhMGY3NzQxYmY4YTY4OWEwZmNmMDZjYzQ4MGFkMWVmZgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDA5OjU0OjA0IDIwMTEgKzAwMDAKCiAgICBtYWtlIGRlcGVuZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDdhMjczY2NiZWU1NjkwMWU4Njc5YTBkZTMyYmM2YWExNmQ0NGJmNQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDA5OjA2OjMyIDIwMTEgKzAwMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMTI2MzUzNTUxZjQ5MzdmN2MwYmMxYWE4YzgwYzJkNDhkMTM0OWM5MwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1biAxIDA5OjAwOjI0IDIwMTEgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGViMDE1YzVkZmZkNDdhMzhjOTc3OTIzNjc2ZDFjNGVjOGI1N2JiZWMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDMxIDIyOjQ5OjMyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvciBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDdmYTMwZmNlMDhhYzQ5NGMzNThlNmEzMWI5NzAyZTEyZmZlYmQ0NjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDMxIDIyOjQ5OjMyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvciBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGI0MWQ0YWFmN2EwNmI0NWE5ZWMwN2E1NTExYmFjNWJhZDZmZGRhMmEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDMxIDIyOjQ5OjMyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvciBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDFhODQzODY1MDQwNWFlMzg0OTFmM2E1YzlhMmIxMGZjOTliMWI5YzIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDMxIDIyOjQ5OjMyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvciBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGFiMTY4MjhhZDY5YzU0ZTA2OGMwMzhhOWE5NDQ5MWZkYmM2ZTc5OWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSAzMSAxMjozMDozMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGhyU1dSdW5QYXRoIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4KICAgIAogICAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sgL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzA3ZDU5YmQ5MmNjMzRiYzk2OTY0YjVlNzQzY2ZkZWU3OTg3NWI3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDMxIDEyOjMwOjMwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGggb2Ygc3dhcHBlZC1vdXQgcHJvY2Vzc2VzIG9uIExpbnV4LgogICAgCiAgICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0gc3dhcHBlZCBvdXQpIGFuZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXRlZCBhZnRlciBmb3BlbigpLCBzbyBjaGVjayAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiYTY4ODA2ZGQwNjRmNjU1NTM2ZDZmNjkzNzFjNjk5ZTYxNjIwNTZlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgMzEgMTI6MzA6MzAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aCBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguCiAgICAKICAgIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkIG91dCkgYW5kIHdoZW4gdGhlIHByb2Nlc3MgZXhpdGVkIGFmdGVyIGZvcGVuKCksIHNvIGNoZWNrIC9wcm9jL1BJRC9zdGF0dXMgaW4gYm90aCBjYXNlcy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDkxY2RiODE1YmIzNjU3NTdmODRjMjIzNGQ5ZTVmNTc2M2FjNGIwNGYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDI2IDE2OjEyOjQ4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28gdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDFkMjBkNzMzZjE3NDA2MjQ3YzgwYzMwYzQ3Yjg4MjgzOWUwZWFjMDQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDI2IDE2OjEyOjQ4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28gdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGE1YTlkMWU4YTI0ZjAyZGZlNGU5N2FmMDRkNmY1ZTBiNTkwYTUyYWUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDI2IDE2OjEyOjQ4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28gdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDRiOTU2YzQ3MGFjN2U0OTM5OWU3ZTEyMzk3OThlMmEwNjBmZTU4YmEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDI2IDE2OjEyOjQ4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28gdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGE5YmMzNGY2ZjQ1MGI0NzUxZGVmOGI4NTcyYjI1YzBmNzkxOGFkNWUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDI2IDE2OjA2OjExIDIwMTEgKzAwMDAKCiAgICBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMzc0YjgxZmZmZGE0NDZmNjQ5OWRlY2I2ZjA0OGIxOTIzOGE5ZjZiNApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMjYgMTY6MDY6MTEgMjAxMSArMDAwMAoKICAgIEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQgcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxZDMzMTM3NWQ4NjI4MmUyM2I0YWU2MDIwNTI3NTNhYTRhNGY4N2FjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAyNiAxNjowNjoxMSAyMDExICswMDAwCgogICAgQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZCByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGFhNWVjOGQxOWRlMjk1MTUxMDMyNjM5ZTEzOGU4Yjc2NTg3ODY2YmMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDI2IDE2OjA2OjExIDIwMTEgKzAwMDAKCiAgICBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTYyYzllYjM5NjU1NjNjNWEzMTNkNDFkODk5Mjk5OGQ3ZTYwMzM1MQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgMjUgMTk6NDQ6MTUgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzA2NDc2OiBmcm9tIHRpbnlweXJhbWlkczogZml4IG1lbW9yeSBsZWFrIGluIHRoZSBzd3J1biBjb250YWluZXIgbG9hZGluZwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWMyYmI0NDUxOTA4MDU0NjY5ZmQyZmIxZDQ0MTI2YTU3OTA1OWU1NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgMjUgMTY6MTc6MDQgMjAxMSArMDAwMAoKICAgIEZvbGxvdy11cCBmb3IgcjIwNDQ5OiB1c2UgTkVUU05NUF9QUklvICJ1IiBmb3IgcHJpbnRpbmcgc3ViaWRzIGluc3RlYWQgb2Ygb25seSBORVRTTk1QX1BSSW8uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA4ODAxMzJkYWYyZjUzZGFkZmU0MWIyMmFkMzIyZDcwNjUwYTgyY2MxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSAyNSAxMzowNzoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvOiBMaW5rIHdpdGggZ2RpMzIubGliIGlmIE9wZW5TU0wgaGFzIGJlZW4gZW5hYmxlZCBiZWNhdXNlIGdkaTMyLmxpYiBpcyBhIGRlcGVuZGVuY3kgb2YgT3BlblNTTC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDIzZWYyZjEwODQzYzlhODc3ODlhNjE0YWJkZjUyNjM1MGM0ZDg0NDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDI1IDEzOjA3OjIzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkIGJlY2F1c2UgZ2RpMzIubGliIGlzIGEgZGVwZW5kZW5jeSBvZiBPcGVuU1NMLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOWI4NzAzNzJiNzRhN2FmNWI3NzI2YTYwNTFiNGYzZGI1MDQzYTc3ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgMjUgMDk6MjQ6MDggMjAxMSArMDAwMAoKICAgIEZvbGxvdy11cCBmb3IgcjIwNDQ4OiBzaW5jZSB0aGUgIm9pZCIgdHlwZWRlZiBoYXMgYmVlbiBjaGFuZ2VkIGJhY2sgZnJvbSB1aW50MzJfdCB0byB1X2xvbmcsIGNoYW5nZSBORVRTTk1QX1BSSW8gZnJvbSBORVRTTk1QX1BSSTMyIGludG8gImwiLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgODg1ZDFmNTVjZWZhODJkOTUzNTZlM2UzNWVjYWU4MTE1OGFmM2I1OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgMjUgMDk6MjE6MDUgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdCBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3MjNiYzM4NzU3MTc1NzQyNmI4NjFiNmE4ODU0YTRiOGQ4OWRjZDE1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSAyNSAwOToyMTowNSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGRlODkwODcwZGUwOGVhY2ZiMjVhYjgxOGM0ZDEzNTJmNWRjYzA5YzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDI1IDA5OjIxOjA1IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQgc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMzBiNGMzNjQ5ODg3OWI0OTBjMTVkNTAwMzBkMGIyYzE4ODIwMjgyZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgMjQgMjM6NDk6NTcgMjAxMSArMDAwMAoKICAgIHJldmVydCBPSUQgdHlwZWRlZiB0byB1X2xvbmcgYXMgYWdyZWVkIHRvIG9uIC1jb2RlcnMgYW5kIGluIHRoZSBhZG1pbiBtZWV0aW5nCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwZjJlY2Q2ZjA1ZGVlMzdmOTNlYTlhOWFjOWU3Mjc2ZDZiNDc4ZGQwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgMjQgMTI6NTE6MzkgMjAxMSArMDAwMAoKICAgIEFkZGVkIE5VTEwtY2hlY2tzIGFmdGVyIG1hbGxvYwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzg5Yzk1YmNjZDEzOGJkYWVlM2UwMWYyZDBmNjYzMzI4ZThlN2U4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDI0IDEyOjUxOjM5IDIwMTEgKzAwMDAKCiAgICBBZGRlZCBOVUxMLWNoZWNrcyBhZnRlciBtYWxsb2MKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDA1ODg2MjA3MDQyYWMyYzkwYWEzMTkxNjU3ODBkMTc2NzZlZDY4ZjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSAyNCAxMjo1MTozOSAyMDExICswMDAwCgogICAgQWRkZWQgTlVMTC1jaGVja3MgYWZ0ZXIgbWFsbG9jCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlM2IyMGNhYWJjMzEzZDg4OGNhNGNjOTU0NGU3ZWNmMmUxYWIwOWQ0CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDIyIDE5OjM0OjEwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogQlVHOiAzMzA1MTU3OiBGaXggaXBBZGRyZXNzUHJlZml4IGhhbmRsaW5nIG9mIElQdjYgYWRkcmVzc2VzCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDliMTI1YzcxM2JlMWVjY2E2M2YyYjE2OWQyYzEwZDFkMjRhMmQ0NzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjIgMTk6MzQ6MTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDMzMDUxNTc6IEZpeCBpcEFkZHJlc3NQcmVmaXggaGFuZGxpbmcgb2YgSVB2NiBhZGRyZXNzZXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDQzMzE4ODJhMGM5ZGY3OWQ5MTM1NDU3MzgyYTI3MjVjMzAzMGY4MQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyMiAxOTowNzo1NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeCBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMjNhMmI5NDBlMjY1NjI2OGJlZjMwMDE1Zjc4MmVlNmQwMzhmOTI2NQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyMiAxOTowNzo1NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeCBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNmUyYmY5MWFiYTU2MmNjYWViMTMwNDE5ODkzYTcxNzBiYjIzMTJmOQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyMiAxOTowNzo1NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeCBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgY2FiYTY1MWY4NGY3MTAyY2JhMTgxZDE5NWI1OWM3OTc2OGQ5NDU2MQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyMiAxODo1Nzo1MyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMgKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjNWE0NTgwYjkyNGVkNWM0OWNmZmQxYjdmZDhlOTMyZWQxNjhlY2RiCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDIyIDE4OjU3OjUzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcyAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGE2Y2FkZDAwOThiMTZhMWU5ZmZhODEzODE4YjBlOWY4ZmJiYzBlYjgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjIgMTg6NTc6NTMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTg4MTUwMDNmMzQ1ZWNlOTNmY2Y4MzZmYjBjM2VhNTk5N2M4ZjkwMApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyMiAxODo1Nzo1MyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMgKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzMDI0NWQwMGQzMGNmYzUyNjkzOWJiMmZmNzIxYjIwNzY1NDZlOGM3CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDIwIDE1OjQxOjA2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyMzQ3NTQ6IEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3ZDJmZTlkY2FlZGNhODY2Y2RjZTYxNzhiNjA2YjhmMDYxODliZjNhCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDIwIDE1OjQxOjA2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyMzQ3NTQ6IEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1NmM3NGM1YTQ5Mzg2MzMwYTU4MTU2NGE2ZWUxNTc5YmNmNmM1MDllCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDIwIDE1OjQxOjA2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyMzQ3NTQ6IEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA0NWI0YmQ1MzdiNjI3NTM0YjFjNjIxODIxOWZkNzcwZWI1YTRhMTU1CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxOSAxOTo0NjoyMCAyMDExICswMDAwCgogICAgdXNlICNpZmRlZiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1Y2M1YTRjZDBkNjQ4OTM1ZWM3NmUwOTYxNjIyOWQwY2VlYmM0MWEwCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxOSAxOTo0NjoyMCAyMDExICswMDAwCgogICAgdXNlICNpZmRlZiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1ODM4MmU0ODg1ZjM4N2UzZmZjYjhmZWJhOTM2YTU3OGM2OTQ1OWVlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxOSAxOTo0NjoyMCAyMDExICswMDAwCgogICAgdXNlICNpZmRlZiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiNTg4ZDFhMWRhNjgxYjI2ZjM1ZjJiYmYwNDkyMjQyY2Y0ZDgzYzk2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxOSAxOTo0NjoyMCAyMDExICswMDAwCgogICAgdXNlICNpZmRlZiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5OGQ2MjIzZTEwYWYwYjIwNzM5NWM5YTcxMTkwZGZmNmZhODc5NTljCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDE5IDE3OjE5OjMxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMjZlN2E5Mzg1MWVkNjc4NDQ3ZGMzMmFiNzJmYmMxYTAwOGExMzVkCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDE5IDE3OjE5OjMxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhZjNkZWExMTBkMDc5YmUxNDY4YWJjN2UwMWNlYzZiZTZjMTFlOWNmCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDE5IDE3OjE5OjMxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMDBmODhmMzM4ODhlZGQ0ODBhY2M5ZWM5MzEyZDZiNjFlMTcwYTc2CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDE5IDE3OjE5OjMxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzMjk0NWE3YTE2N2I0ZDU2ZTI5NDA2MjZiNzA5YWIxMTE5MDVkMjFhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTkgMDg6NTU6MjYgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCByYWNlIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUKICAgIFRyZWF0IHRoZSByZWFkcyBmcm9tIC9wcm9jLzxwaWQ+LyogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuCiAgICAoYWxyZWFkeSBmaXhlZCBpbiBWNS01LXBhdGNoZXMgYW5kIFY1LTQtcGF0Y2hlcyBpbiBTVk4gcmV2LiAyMDExNSwgZHVubm8gd2h5IEkgZGlkIG5vdCBwYXRjaCB0cnVuaykKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDI3YTU1OTUzZjBiYjU3YWExYWVjY2Y3MThmMzRhN2Q0YWU2M2M0M2UKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTkgMDg6MjY6NTcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzE4NDY5NzogRG9uJ3QgcmVmZXJlbmNlIGludGVybmFsIE1ENSB3aGVuIGl0J3MgZXhwbGljaXRseSBkaXNhYmxlZAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5MGVlNzgyY2E0ZWE4NTM0YjhiNDNmZjFkZDY3ZmJhN2Q1ZjU2OWUxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAxNSAxNjoyMTozMSAyMDExICswMDAwCgogICAgRm9sbG93LXVwIGZvciByMjA0MzI6IHRlc3RpbmcvUlVOVEVTVFMgd2l0aG91dCBhcmd1bWVudHMgd29ya3MgYWdhaW4gYXMgaXQgc2hvdWxkLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDVmYTcwMTM0MjYxYWY3ODQ1M2YwZTAzMTIzY2ZiNWZhMjhjZDY2MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXkgMTQgMTk6Mzg6MzAgMjAxMSArMDAwMAoKICAgIEZpeGVkIGEgdHlwbyBpbiBhIGNvbW1lbnQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxOTFjZGI3YjJhNmU5ODQyYWYxYjkzYjc3MmE5ZmRjYmY0YzM1YTMxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1heSAxNCAxOTozNjo1NiAyMDExICswMDAwCgogICAgUlVOVEVTVFMgd29ya3MgYWdhaW4gZm9yIHRlc3RzIHdpdGggYSBmb3VyLWRpZ2l0IG51bWJlci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDA0MWU2N2JmYmMwN2QyZjQ4ODRlNjMyZWVhYzcxYTk1Y2EzNTdlNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWF5IDE0IDE4OjQ3OjU2IDIwMTEgKzAwMDAKCiAgICBEb2N1bWVudCB0aGF0IHRoZSB1Y2Qtc25tcCBkaXNraW8gY29kZSBzdGlsbCBoYXMgdG8gYmUgbW9kaWZpZWQgc3VjaCB0aGF0IGRpc2tpb19mcmVlX2NvbmZpZygpIGdldHMgaW52b2tlZCB1cG9uIFNJR0hVUC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGNhMDUzOTk2MDIyZTNjMWRlM2UyZDViNTU4ZmFkZjZkNzllOWZkZDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDEzIDEyOjA1OjE5IDIwMTEgKzAwMDAKCiAgICBGb2xsb3ctdXAgZm9yIHIyMDQxNzogcmVwbGFjZWQgYSBtYWxsb2MoKS9mcmVlKCkgcGFpciBieSBhIGNhbGwgdG8gcmVhbGxvYygpLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3ZjExNWRmODMzNmUzYjllYTk1MjMwMGIzZDRkMTA0ZWIyMTQwY2RiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSAxMyAxMjowNToxOSAyMDExICswMDAwCgogICAgRm9sbG93LXVwIGZvciByMjA0MTc6IHJlcGxhY2VkIGEgbWFsbG9jKCkvZnJlZSgpIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDY4Njk1MjA4NTY5NzZmZjQ1OTBhMGJiNjFjNGU5NmYxNmMzNWQ2ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDExOjQ3OjM2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbWVtb3J5IGxlYWsgaW4gVENQLU1JQiB0YWJsZXMgaW50cm9kdWNlZCBieSBwYXRjaCAjMzA1MzQzNi4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDA1ZDNkM2E4MjMxMWJmOWI1NTM4NjIxNmYxODgxOThjZDg0OWZmZjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDA5OjAzOjAyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHNubXBfZnJlZV9zZXNzaW9uKCkuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDRlOTRhYjdmMGM2NTA5YjYyODJlZWZjODg4YWIwZGNmNzhlNTc1YTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDA5OjAzOjAyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHNubXBfZnJlZV9zZXNzaW9uKCkuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGZmMDNiZmFkNmQwY2M1NGU1OGNlZTRkNGY4ZjY3ZmUxMjkxMDUxOGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDA5OjAzOjAyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHNubXBfZnJlZV9zZXNzaW9uKCkuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGNjNzhkMDYyMzk3NTVjNmViYjgzMTkwM2I2Y2VkZDNlMWRiYWI1ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDA4OjI1OjMzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBfbWliaW5kZXhfYWRkKCkgbm8gbG9uZ2VyIHJlYWRzIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5MjRjYmUzZDY5M2E3OTNjMjA1MzZlODBlOTE1MTBjOTU5YWNjOWE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxMiAwODoyNTozMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcyBwYXN0IHRoZSBlbmQgb2YgdGhlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhcnJheSBfbWliaW5kZXhlcy4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYWRjZWQ0YTg0ODc2YTJlM2NiODY4N2I1ZmZhNTgzMGEzYjUwMDNhYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTIgMDg6MTI6NDcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcE5ldFRvTWVkaWFUYWJsZS4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYwMDEyZGVjMmM5OGJhZjFjMGUyNWZhMTdkNWJmODliYWNkMGE0YTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDA4OjEyOjQ3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkgaXBOZXRUb01lZGlhVGFibGUuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA4ZDgzZjk1MzgxYzgxOTBlNjRjODlkMjBiNzZjNDZhZDM4OGM0MjFjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxMiAwODoxMjo0NyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJIGlwTmV0VG9NZWRpYVRhYmxlLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOGVjZDI5OGRiY2NlZTFlMzI3Y2U2NTg1MmY5ODkyOGQ3YmMwNDFkNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTIgMDg6MDg6NDEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpZlRhYmxlLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDk2MmZkYTY3NzgxNGI2MzQyYWQxYjljM2ZhODQyMjViNTU1Y2RhMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTIgMDg6MDg6NDEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpZlRhYmxlLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgY2EzODk0MjkwOGFjNzRmZGYxZjFmMWRlNzc5Y2E1Y2RkNGRlZmEyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTIgMDg6MDg6NDEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpZlRhYmxlLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYWEwMzI3NjliYzNkYTgzMDJjMzhkZDlkNjJkNTNmN2YwNTRlYjJjNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTIgMDc6MzM6MDIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcEFkZHJUYWJsZS4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDRmZmE5MDhkMDJjZmFkOWZmMzFhMjAxODE5MmQ0YWQ1Zjk1OTQ2N2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDA3OjMzOjAyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkgaXBBZGRyVGFibGUuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhMjFiZGY3MTY0NDkwZjIxZjdlZTFkM2RmZWM2YTlkMzhlMjRkZDc4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxMiAwNzozMzowMiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJIGlwQWRkclRhYmxlLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMjcxOTE0NTEyZGM4MjY4ZDhiYzQ5YmE3ZWMzOGNjMmFjZWM2NTZjMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMTIgMDY6NTQ6MzMgMjAxMSArMDAwMAoKICAgIERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50IHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGMwMDljMTJkNzJiYmMyZTI3OTVkM2E2YjIyY2FiNmJhMDZlNDg1MzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDEyIDA2OjU0OjMzIDIwMTEgKzAwMDAKCiAgICBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudCBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2YzhhZWU3ZjhhMzRkN2RhMjI5ZjQ1OTA4YzhmMzMxZTcyNTQ0MjJlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAxMiAwNjo1NDozMyAyMDExICswMDAwCgogICAgRG9jdW1lbnRhdGlvbiAvIHNvdXJjZSBjb2RlIGNvbW1lbnQgc3BlbGxpbmcgZml4OiBleGl0ZW50IC0+IGV4aXN0ZW50LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzJkMzViZDVjMzIyZDdhODUzNmExZmYzMWQ3M2U0MWY3N2M4NWI5NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgMTAgMTU6MDI6NTEgMjAxMSArMDAwMAoKICAgIE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nIGEgKGNoYXIgKikgYXJndW1lbnQgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzZGJlMjc3OTlhM2YwNjViYmYyMTI1OTk0NjY5NjliZWI3MjY5MGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSAxMCAxNTowMjo1MSAyMDExICswMDAwCgogICAgTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcgYSAoY2hhciAqKSBhcmd1bWVudCB3aGlsZSAodW5zaWduZWQgY2hhciAqKSBpcyBleHBlY3RlZC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDE5M2UzOTg0OTI0YmRlYTliYmI3MDMwODA2MmJhZWUzNzMyYWJiYTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDEwIDE1OjAyOjUxIDIwMTEgKzAwMDAKCiAgICBNaW5HVzogYXZvaWQgdGhhdCBnY2MgY29tcGxhaW5zIGFib3V0IHBhc2luZyBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTRiNTIzOGQ4OGEwMjczMDZhYTkxMTU3NTgxMTFjNzg1YTRhYmFkOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXkgOSAyMDo1MjowMSAyMDExICswMDAwCgogICAgVXNlIHN5bWJvbGljIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwNGI4ZTI3OWE3YTc4NWE3NmViZjRiNjU3NWY0MWNlNjI5OTQ1MmM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1heSA5IDIwOjUyOjAxIDIwMTEgKzAwMDAKCiAgICBVc2Ugc3ltYm9saWMgbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDNkY2JmZGQ0ZjFmZmVhZDU1MjQxNDliNGVmYjAwMTI4Njg4ZTE1MDUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWF5IDkgMjA6NTI6MDEgMjAxMSArMDAwMAoKICAgIFVzZSBzeW1ib2xpYyBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjY1ODZhZWNmYTJkMmJjNDlkZWZkM2QyMWY0NzFhYTlhM2M1NDM2ZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXkgOSAyMDo1MjowMSAyMDExICswMDAwCgogICAgVXNlIHN5bWJvbGljIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1ZDMzOGY3Yjk0NTkzNDZjYzBjMjU1YWJiNzFlMDkzZmYzZWFhODM4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1heSA5IDIwOjQzOjUxIDIwMTEgKzAwMDAKCiAgICBJQU5BIGhhcyBmaXhlZCB0aGUgSUFOQS1JUFBNLU1FVFJJQ1MtUkVHSVNUUlktTUlCCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1YmIxYzlhOGZkYzQ3YjNlZjM1NWNiNDJlOWUxOGFkODhjZTQ5NmZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSA4IDIwOjAxOjI2IDIwMTEgKzAwMDAKCiAgICBGaXggd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLgogICAgVGhlc2UgbW9kdWxlcyB3b3JrLCBidXQ6CiAgICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKICAgIC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUgcG9wdWxhdGVkCiAgICAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QKICAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KICAgIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QgYmluYXJ5CiAgICAgIChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pCiAgICAKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgOCAyMDowMToyNiAyMDExICswMDAwCgogICAgRml4IHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4KICAgIFRoZXNlIG1vZHVsZXMgd29yaywgYnV0OgogICAgLSBUaGV5IGFyZSBMaW51eCBvbmx5CiAgICAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlIHBvcHVsYXRlZAogICAgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290CiAgICAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuCiAgICAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90IGJpbmFyeQogICAgICAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKQogICAgCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU5YWM4NjI3OGMzNTg4MDIyOTE0NzU4YTM0NWZiOTgyYmI1ZDRlYzQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDggMjA6MDE6MjYgMjAxMSArMDAwMAoKICAgIEZpeCB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuCiAgICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKICAgIC0gVGhleSBhcmUgTGludXggb25seQogICAgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZSBwb3B1bGF0ZWQKICAgIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdAogICAgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1bgogICAgLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdCBiaW5hcnkKICAgICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKICAgIAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjNGY1ZDliOTRiNDg5NWJiOWM5YTA1MGIxYTg4YjIwMWY5MDFmOTczCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSA4IDIwOjAxOjI2IDIwMTEgKzAwMDAKCiAgICBGaXggd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLgogICAgVGhlc2UgbW9kdWxlcyB3b3JrLCBidXQ6CiAgICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKICAgIC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUgcG9wdWxhdGVkCiAgICAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QKICAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KICAgIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QgYmluYXJ5CiAgICAgIChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pCiAgICAKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTNkYjk1ZTE2MTlkZDU3ZGZiNTVhYzc0OTRmNDhkMmFkZDU2ZDk3MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXkgNyAxNToyMjoyNyAyMDExICswMDAwCgogICAgUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGVhOGNlMDA3NDRlODMyMzNkODU0Mzg1MmY4ODRhYTAzN2MxMTgzYTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWF5IDcgMTU6MjI6MjcgMjAxMSArMDAwMAoKICAgIFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwOTk5NDViYjJmODJlYTZjYjUwM2M3NDg2YzY0YmUwODcxNjQxMjNkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1heSA3IDE1OjIyOjI3IDIwMTEgKzAwMDAKCiAgICBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTZhMWJkYWU0ZjdiZjYyNWFiNjA3YjRmMjgwNzQ3MGNkMjc3Nzc3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXkgNyAxMzoxNTo0NCAyMDExICswMDAwCgogICAgV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5IHVzaW5nIExQQ1RTVFIgaW5zdGVhZCBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IFVuaWNvZGUgYnVpbGRzIGFyZSBzdXBwb3J0ZWQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA0ZWJmY2VhNDE5NjRhODc0MmEwMmM2ODc4NTEyNGJjMjRkYTUwNmJlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1heSA3IDEzOjExOjQ0IDIwMTEgKzAwMDAKCiAgICBSZXZlcnRlZCBhIGNoYW5nZSB0aGF0IHdhcyBjb21taXR0ZWQgYWNjaWRlbnRhbGx5IGluIHIyMDI3Ni4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDgxODZjZjNjM2ZjY2QwMjI2YTA3NjE0NjU5ZjNlOGZjN2QzYWViN2EKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWF5IDcgMTI6NTQ6MTEgMjAxMSArMDAwMAoKICAgIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncy4KICAgIChCYWNrcG9ydGVkIHIyMDIzNiBmcm9tIHRoZSB0cnVuay4pCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGM3NmUyYzc2OTg1YWI3YTQwZDZkYmVmZDJlNDczMjM4NTc2NDk3MzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWF5IDcgMTI6NTE6MDQgMjAxMSArMDAwMAoKICAgIENvbW1lbnRlZCBvdXQgYW4gdW51c2VkIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNvbXBsYWluZWQgYWJvdXQgaXQuCiAgICAoQmFja3BvcnRlZCByMjAyMzcgZnJvbSB0aGUgdHJ1bmsuKQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhNTg5NjllZGRiM2I2Njk4NzdkNzIyOWY3MTkwODdiYmQ3MjdkMDMzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDIxOjMyOjAxIDIwMTEgKzAwMDAKCiAgICBORVdTOiBQQVRDSCAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdCBsZWFzdCBjb21waWxlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyY2NhNjEyNWQ1MzhmYWE5YjUxYjc3MjE0MWYxOTJkN2I2M2NjMGNiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDIxOjMyOjAxIDIwMTEgKzAwMDAKCiAgICBORVdTOiBQQVRDSCAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdCBsZWFzdCBjb21waWxlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiMWU3NmJlZjgxYmZjZTE2YzhkMGJjMDFlODU2Y2I0Yzc1OTMwYjVjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDIxOjMyOjAxIDIwMTEgKzAwMDAKCiAgICBORVdTOiBQQVRDSCAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdCBsZWFzdCBjb21waWxlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBkMGYyMmRkMTBiN2EwZDNkYmY3OTVjMmQ0OGUzZmE5NjM2NmFlZjFiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDIxOjMyOjAxIDIwMTEgKzAwMDAKCiAgICBORVdTOiBQQVRDSCAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdCBsZWFzdCBjb21waWxlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmY2I4YThkMjdjMmNjMzc5ZGNlMjYzZGJlZTY3MjBkN2I0ZTAyZDc0CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDYgMTc6NDY6MjkgMjAxMSArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1MTVhZjk5Y2I5ZTZhM2IwOTIzZTY1MDQ2NmY3NDQ2NGUzYjliNWY2CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDYgMTc6Mzc6NTkgMjAxMSArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2ZjkyN2ZkNzNhZjJhNGNlYjY3ZmM0MDkwODI2YTI4NGE3ZTZmYzE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDYgMTc6MzU6NTAgMjAxMSArMDAwMAoKICAgIG1ha2UgZGVwZW5kCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA4MDgwYTgxODllZDdlZTczY2EzMjE4YzgyODBjNjg3MTdkNDUzNWRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDYgMTc6MjI6MTQgMjAxMSArMDAwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2MmZiOTNlMjg3MjhiMGU5M2MxMzRjODhiNjViMWQ0NTNiNmU4OWMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDYgMTc6MTc6NDYgMjAxMSArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNzRlMTNjYzk1YmVlNDY1NWRmMjNiYTUxNGJkMjY1Nzg4NmM5ZTRiNgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDE0OjIzOjI0IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNzkzMTg3YWFhMDRjODgxZjZiNTdmY2YzNjEyOTZiNTJhOTQwZTFmOApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDE0OjIxOjQ1IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMTQ2NmUxNWU1MjM4MDk2NWY4NDRjNmQ5OGIzZWIyNTc4OTlhNGNlMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDE0OjE5OjU3IDIwMTEgKzAwMDAKCiAgICBtYWtlIGRlcGVuZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZGVjN2Q0N2NhMzc2N2MzN2QxNzk4MWYxY2Y5ZTU4MGFlMmZlMDIxNApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDE0OjAyOjA0IDIwMTEgKzAwMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMGVjMWM5MjkxNjdhZGIzZDk2YjQxZWFjMjQzNTM0OTZjMzM3MWIwOApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDEzOjU5OjIwIDIwMTEgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDFhMDE0NTI5YzVjNGEwN2M4NDA3ZTk1NWE3ZjFmZTY4NmNiN2VlN2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXkgNiAxMzo1MDowNiAyMDExICswMDAwCgogICAgRml4IGluY29tcGxldGUgdW5pbnN0YWxsIGNvbmZpZ3VyYXRpb246CiAgICAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwKICAgIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMWQwOTFjNTc5MjgyNmUzOWVjNzJiNmJiZmI1YzcwNzdhNGE3ZDhlYgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDEzOjUwOjA2IDIwMTEgKzAwMDAKCiAgICBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwgY29uZmlndXJhdGlvbjoKICAgIC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTAogICAgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBkYWMxMDJiZDViNjNhMjExODFhODAzMGFkYWY1ZmY5NmI5ZjgyNmMzCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDYgMTM6NTA6MDYgMjAxMSArMDAwMAoKICAgIEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbCBjb25maWd1cmF0aW9uOgogICAgLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMCiAgICAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGZjM2I0MTY3OTRjZjcyOTIyZjhiMmQ2MzZiYmVkMzc3Y2ExYTM2ZWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXkgNiAxMzo1MDowNiAyMDExICswMDAwCgogICAgRml4IGluY29tcGxldGUgdW5pbnN0YWxsIGNvbmZpZ3VyYXRpb246CiAgICAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwKICAgIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjNiMTM3MjViN2JkNjRhYzk0OGQ5NzBkOWZlOTY1Mjk4OGVhNDExOApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDEyOjU4OjI4IDIwMTEgKzAwMDAKCiAgICBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMgY29udGFpbmluZyBzcGFjZXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMjRlYmZhNDgyMDRmODM4NDZhNzE2NjJkYjkyMWQ4M2M5NzMwYmQ2YQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDEyOjU4OjI4IDIwMTEgKzAwMDAKCiAgICBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMgY29udGFpbmluZyBzcGFjZXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWVjMTc4NzZhNjUzZmQwNTJmZjYyNDI0YTg3OTU4ZmE4ZDAyOTQ0MgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1heSA2IDEyOjU3OjA3IDIwMTEgKzAwMDAKCiAgICBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyYTRjMmFhMTdjMWFhYjE5ZjdiZDJjMGNmYzEyMTFhNzE0Y2MyYTU1CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWF5IDYgMTI6NTc6MDcgMjAxMSArMDAwMAoKICAgIFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5CiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDcxMDQzNGM0ZTc1MTFlMjY2YjdlZWQ1YWY1MzJlMjNkYzQ5NWM5N2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDUgMjE6NDg6MjQgMjAxMSArMDAwMAoKICAgIEZpeCBmb3IgRHJhZ29uRmx5IEJTRCAoZG9lcyBub3QgZGVmaW5lIElQX1NFTkRTUkNBRERSKQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgN2Y3Y2Q3OTZlMDhkOTQyMWYwYzkwN2E5N2VjODk2MzZhOTc1NmE4OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgNSAyMDoyOTozOCAyMDExICswMDAwCgogICAgRml4IHNwZWxsaW5nIG9mIFNPX1JFQ1ZEU1RBRERSCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMWZiMzcyMjkxNDc0MWZhOTk4ZTZiN2NlZTljZThlMDdjZDQ3MDBlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSA1IDA2OjA3OjUxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogTWFkZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZSBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0IGZhaWxlZCBwcmV2aW91c2x5IGFmdGVyIHRoZSBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkgaGFkIGJlZW4gaW5zdGFsbGVkIGRvIG5vdyBwYXNzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYmM1MjU4ZGUyMDMwMjI4YjM2OWUxM2QyYTQ3NDhjODU3YTBhNGI1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgNSAwNjowNzo1MSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDM3OWNkZjNhOTZjZjI3ZjQ3ZjQxMTIyM2I1M2Y4MDA1ZjA0MzJhMTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDUgMDY6MDc6NTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IE1pbkdXOiBNYWRlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQgZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKSBoYWQgYmVlbiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmNjdjMTUwZmIwNWVkMzhkZjQ0ZjhiNTI2MDkxZDZlOWI4OGQ5ZjMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSAzIDE5OjE1OjI3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBHdWFyZCBuZXRzbm1wX3VkcF9yZWN2ZnJvbSgpIGV0Yy4gZGVjbGFyYXRpb25zIGNvbnNpc3RlbnRseS4KICAgIENIQU5HRVM6IFdpbjMyOiBCdWlsZHMgd2l0aCBWaXN1YWwgU3R1ZGlvIDIwMTAuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGVlYmVhNjgzYTgwMjYxMzdhNzA4ZTVjYzQ5OTZkYmFhNDE1NTgwOTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDMgMTg6NTU6MDIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEd1YXJkIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMgY29uc2lzdGVudGx5LgogICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDA5ODFlNjAwYTYyZDUyNGJiYTBmYzg3ODQ0MzVkNzZkMjc1ZDdmMzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDMgMTU6Mjk6NDYgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmM2VhMzQxZmIxOTQ0ZGM2YTYzOTZhZGQ3MmFjMzlmNTc5NGEyZDY5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSAzIDE1OjI5OjQ2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZSByZWdpc3RyeSBhcmd1bWVudCBsaW1pdCBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcyByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDE3NjE1MzdiMTFiNzBiYTlmNWM1NWQ2OGQwM2IxNGJmZTMyOTkyNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgMyAxNToyOTo0NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGEyOTAwYzQ1ZDFkOTI3ZTFkODkxODAwYTE0MjJhOTIyYjM3NmQ4NWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWF5IDIgMTE6MjI6MzQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgTWluR1cgZW52aXJvbm1lbnQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA0MjA1ZjUzODI5YTcyNWI1YjVlZTgzNWQ3OTE4YTc4MzViMjZhZGM2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1heSAyIDExOjIyOjM0IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93IGJlIHVzZWQgaW4gdGhlIE1pbkdXIGVudmlyb25tZW50LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMGZkN2IwNjA2OTliOTA0N2ZjYWM5YTE1ZDZjNGRlMWMwOTQ0YzVjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXkgMiAxMToyMjozNCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVyBlbnZpcm9ubWVudC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDJlMDA5MTRkNDA4YjBlZjlhNDVkMmIzMTdiMDMzMjllODE0NTY1ODYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWF5IDIgMTE6MTM6MjMgMjAxMSArMDAwMAoKICAgIFdpbjMyIERMTCBidWlsZCBmaXhlcy4KICAgIChCYWNrcG9ydGVkIHIyMDE4NCBmcm9tIHRydW5rLikKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDI1OWMyMjQ4NDNlNmRkNzEzYWU2Nzc2ODhkNDE3YjAwNzhiMGEzNzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWF5IDIgMTE6MTM6MjMgMjAxMSArMDAwMAoKICAgIFdpbjMyIERMTCBidWlsZCBmaXhlcy4KICAgIChCYWNrcG9ydGVkIHIyMDE4NCBmcm9tIHRydW5rLikKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU3ODY0MjA3Zjg4ODIzMGRlNjc5YWNmZGExZmQ5YjY1N2Q3OTI2MTAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXByIDI5IDExOjE3OjExIDIwMTEgKzAwMDAKCiAgICBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZSBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTdiMzNmNDNkMGMzMTI1MTYyYWJiZDI2NGQ3ZTFmYTNmYTQwNjMwMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBcHIgMjkgMTE6MTc6MTEgMjAxMSArMDAwMAoKICAgIFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlIGNvZGUgY29tbWVudHMgaW4gc25tcGxpYi93aW5zZXJ2aWNlLmMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMTc2MjJlZTdlZTgwNmYwMmU0ZWE5OWQ2NGNjN2VhYmNkNDYwOGQ0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEFwciAyOSAxMToxNzoxMSAyMDExICswMDAwCgogICAgU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UgY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDMxMWFkZTIzZGU0YTAwMTRmZTBmYzIzY2Y4M2QwNzdjZDY2M2FkMDUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXByIDI3IDIxOjE2OjIzIDIwMTEgKzAwMDAKCiAgICBEb24ndCBmcmVlIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWRlMjQ2ODk0NjFiNzVjNDQxYTM2YTM4NGE2YzU1OTcyM2RkZTJkMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBcHIgMjcgMjE6MTY6MjMgMjAxMSArMDAwMAoKICAgIERvbid0IGZyZWUgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0CiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxYWYwOGUxZDYwOGI3YmQxMzM2MWVhZDVjNDJmNGM0N2EyODNiNTk5CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEFwciAyNyAyMToxNjoyMyAyMDExICswMDAwCgogICAgRG9uJ3QgZnJlZSB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDYzNzNlZjA5YWRkNWIyYTJjZDFkOGUxMzZjNjc0ZTg2OTEwYjkwYTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXByIDI3IDIxOjE2OjIzIDIwMTEgKzAwMDAKCiAgICBEb24ndCBmcmVlIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNDBhYmQ4ZTVhYjExYTA3YzQ5NmFiMjVmMWFkNTRjYzNlNTgzMjdhNApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEFwciAxNyAyMDo1Njo0OCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDJmNmY1NTEzNmIzOTgzZmFiMTY0MGMwMzFkNWU3YmYzMmE0ODUzNQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEFwciAxNyAyMDo1Njo0OCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzA0OGYyY2U0M2JmYTgyZThkM2FkOGEyYmQzMTIyOTBjNmJhMjdmMApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEFwciAxNSAxMzo0MjoxNCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwZTJkOGU4MzM3YWY3MjU3ZjdlYjcyNzY3OGY4MDM0ZTg0YWU3NGNlCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXByIDE1IDEzOjQyOjE0IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDM5MTU5N2NmZmQ5YWJkZTVmZjQ2Yjc0YzViNmM3ZTMyMWFiN2QzYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBcHIgMTUgMTM6NDI6MTQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGgKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGgKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNmIzZmJiYWQ5MTNhOGQ3NWE4YWU1MGE2ZDUzMjBlMWZhZmUwZTEwZApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEFwciAxNSAxMzo0MjoxNCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwZjFiNzg3NTVmOWQ5MmQzOWIxMGJiNmYwYWMzMjQ5MzIwNmIzNjg0CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXByIDE1IDEzOjE3OjM3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzIwNTgxMTogT3B0aW9uIHRvIHNraXAgZmQvbG9vcC9yYW0gZGV2aWNlcyBpbiBkaXNrSU9UYWJsZQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlNDU3NDM3MmU0NzhkMzdlZmEzOTc1Y2EwZmM3MThmY2RhMzA2MDhmCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIxOjMxOjA5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2YzA2YTI1OTRmNmU4N2M3MjI1MWZmNzkzZTdkOTE4N2I4OTE1ZmJjCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIxOjMxOjA5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyNTdmNGQ3MzcwMmZjNGM3YmEyZjdlMTMyMWE5NjU1OTQ2YjBlODAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIxOjMxOjA5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3ZTg5OWI1Y2YyZGIyMTY0ZTBjMWQ1ODcwNmI5NTAyZTg2NTk2OTcwCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIxOjEwOjU2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mICd3aGlsZSAoZmFsc2UpJyBibG9ja3MKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjk2N2Q3ODk5OWI3ZjRjYjUyNzAyMDc1MGNkMzU5MjdmZTRmMmZlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEFwciAxNCAyMToxMDo1NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDUwMjM5ZjY2NTA1ODZiYjRiOTkyMDU0MjQ1OTJiN2I1MTkxZDU0MDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBcHIgMTQgMjE6MTA6NTYgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YgJ3doaWxlIChmYWxzZSknIGJsb2NrcwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5M2IzMmUyOGVmNTUxOTkzM2Y1MDJkZWNmOTljNjhlYTg1YTBkZWE1CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIxOjEwOjU2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mICd3aGlsZSAoZmFsc2UpJyBibG9ja3MKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNWQ1ZDZmZDQ4MTUyOGFkZjdjYTAxZWMwNzkwODQ5Y2E3MzE5NmRjMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEFwciAxNCAyMDo1Mjo1OSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzYThkY2EzMTQzYzVjYTExNDQzZmViMDdmN2FmNGJlZDgwOGJkZDMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIwOjUyOjU5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGI0YmM3YjI3Y2RhNDk5MzkxYjllY2IyY2JlNTQxZTEwYzE1MWFiZDUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBcHIgMTQgMjA6NTI6NTkgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2Ygbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNTlkNGQ5ZGMyZTQyYTI5OWM1OGI4MGM3Y2U4OTgzNjgzYmQyYTc3MgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEFwciAxNCAyMDo1Mjo1OSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2YTI5OTY4Y2JkYzAxNjZhNDdhOTNkMWMxNGQzOWEyZTM5ZmE5OGQyCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIwOjQ0OjM3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDM0MmNhOWRiNTM3MWNiYWQ3ZmE5NmFmMzJhY2VkNzUwYzJkNzdkYjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBcHIgMTQgMjA6NDQ6MzcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0IGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzZhNzFlYWViZWY2YzgzMWRhYTM2ZjU3ZWMxZmYyMzBmMDUyYjMzMApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEFwciAxNCAyMDo0NDozNyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQgZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1Mjg3ZjVkMTQ2MzFkNDA4NGVlZTI0MDMxNzQ2YzU0MjI1MjY3MTIyCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXByIDE0IDIwOjQ0OjM3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYwOGExOTk4MDcxYjZkNGY0ZWM4ZDlmNWZiZjhhZWZlNTYyOWNlN2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDIwOjAxOjU1IDIwMTEgKzAwMDAKCiAgICBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDMzMzFlMDliYmVjNzM0MDM0ZGJkYjc2N2U2NmMwM2UxNGE0NTQ4ZDUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDIwOjAxOjU1IDIwMTEgKzAwMDAKCiAgICBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGRkODg5ZDU2YWJjNGE2YTJiNzZiMWY3NDg5ZWE1NWIwNDY3YmUxODQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDIwOjAxOjU1IDIwMTEgKzAwMDAKCiAgICBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDBhMTg1YTlkMzA2YjY4MTZhMjZlMzUwOGRjYjA5OGI5MTg2MWRjMGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDIwOjAxOjU1IDIwMTEgKzAwMDAKCiAgICBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGQ5NDc3MjUxZDE1NGZiYjUyNmY1MzM2N2IwYjZlYmNkMWQyNjc0YWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDE5OjUzOjEwIDIwMTEgKzAwMDAKCiAgICBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZSBjb2x1bW5zIGluIGJ1bGsKICAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDc5YzY5OGExNDc0ZTEwODU1ZjIxMGE2OTk4NzA4MDk2NzEyYmU2MDgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDE5OjUzOjEwIDIwMTEgKzAwMDAKCiAgICBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZSBjb2x1bW5zIGluIGJ1bGsKICAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYzOTRhMjY2NjA0YWY5ZjNlMWI1M2VmNmRhMzc1YmFhNGEzOTAxZmUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDE5OjUzOjEwIDIwMTEgKzAwMDAKCiAgICBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZSBjb2x1bW5zIGluIGJ1bGsKICAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDU0Nzg3ZDI1YjJmYmFhZDA0N2E1NGZjMzBlZmVlY2MyZDI4MDVjZTcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDE5OjUzOjEwIDIwMTEgKzAwMDAKCiAgICBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZSBjb2x1bW5zIGluIGJ1bGsKICAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDAwN2U3NmQ2ZGMzOGFjZGZhYjc1NmZlOWJkOGUyM2Q4MjA5NWI0YzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDE5OjUwOjA4IDIwMTEgKzAwMDAKCiAgICBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmMWVkY2ZkMDQ5Yjc2MGJjNTAxMDRjZmU4MjgzOGVkMmIzNjMyODYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAxMiAxOTo1MDowOCAyMDExICswMDAwCgogICAgRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYWY1MDkyNDA2OWE4OGI1YmFkYzA4NDA2NWUyMWI2OTFmMzFmMzEzZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMTIgMTk6NTA6MDggMjAxMSArMDAwMAoKICAgIEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4gJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDMzYjk0MDVkMTIwMzA0NmE0NTkwNjM0YzU5MmM3MTgxYzEzM2I3ZjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXByIDEyIDE5OjUwOjA4IDIwMTEgKzAwMDAKCiAgICBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyZmIwYjg5YzIzMjNkYjMwOWIxNjJkNjBhOTQzYzFlM2EwYTE3ZDA3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciA5IDIxOjU5OjExIDIwMTEgKzAwMDAKCiAgICBSZW1vdmUgYm9ndXMgKExpbnV4KSBkZWZpbmVzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA0ZjNkYTc2N2IwZjg3Yzk5YzRjMWY1Yjc0MTIwM2Q3ZDY5NmJlZWVhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciA5IDIxOjU5OjExIDIwMTEgKzAwMDAKCiAgICBSZW1vdmUgYm9ndXMgKExpbnV4KSBkZWZpbmVzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjM2RiYmQ5ZmM1N2FjYmNhOTk5MzU2Y2RmOWJlOTU4Y2MxMTczNWVmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciA5IDIxOjU2OjMzIDIwMTEgKzAwMDAKCiAgICBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDE4NDg0OGY2YTUzNjJhNDUwMTk3NGE1Y2YyZTU3NzFkMjg2NGZmNzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXByIDkgMjE6NTY6MzMgMjAxMSArMDAwMAoKICAgIEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjFjZDIxYTRkNzFjMTdjMTIyMTM0YWMzMjg0OTE3ZjY1MzYzZTRkMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgOSAyMDowNDoyOSAyMDExICswMDAwCgogICAgU29sYXJpcyBzdXBwb3J0IGZvciBTQ1RQLU1JQgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgY2NlMzA0MTkzMDk4Zjc1NzM4MDdjODJhNzA4YmNiZTAzNDdhN2EyYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgOSAyMDowNDoyOSAyMDExICswMDAwCgogICAgU29sYXJpcyBzdXBwb3J0IGZvciBTQ1RQLU1JQgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzY2NTljOTRhZDliYTgwNjBkZGUxODk0Mjc2MWNlODVkMWE1Y2MxOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgOSAxOTo1MDozMCAyMDExICswMDAwCgogICAgVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZCBTWVNWIChzdWNoIGlzIExpbnV4KQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5ZmE2NGYyN2FjNTE5OGU1NGZlZjJkZjU4ZGMwOTRhZjIzN2ZhZjFlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciA5IDE5OjUwOjMwIDIwMTEgKzAwMDAKCiAgICBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kIFNZU1YgKHN1Y2ggaXMgTGludXgpCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGE5YTYxOWUwZDE3MzAzYzllZTdkNWE3ZTcxMDZlYTBhZjMzYjllOTYKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEFwciAxIDAxOjExOjA3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOiBvdmVyaGF1bCBvZiBkZWJ1ZwogICAgCiAgICAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eQogICAgICAgIGZvciBiYXNpYyBkdGxzdWRwIHRva2VuCiAgICAgIC0gcHJldmlvdXMgbGV2ZWwgb2YgZGV0YWlsIGF2YWlsYWJsZSBieSBhZGRpbmcgOTpkdGxzZHVwIHRva2VuCiAgICAKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMWZhZDk4N2VlYzFkZWY3Y2Q4NmM2NWFjMjc5MDEzNzNlN2E2M2QwYgpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXByIDEgMDA6NTM6MjkgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IGR0bHM6IGNsZWFuIHVwIGNsb3NlOyBjYXRjaCAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnCiAgICAKICAgICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEKICAgICAgZGlzY29ubmVjdCA9IDAgYnl0ZSByZWFkLCBzc2ggc2h1dGRvd24gZmxhZyBzZXQKICAgICAgYWRkIGJpb19jYWNoZSBmbGFncyBmb3IgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZAogICAgICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKICAgICAgY2xvc2UgaGFuZGxpbmc6CiAgICAgIC0gIG9ubHkgc2VuZCBxdWV1ZWQgZGF0YSBpZiB3ZSBnb3QgdG8gY29ubmVjdGVkIHN0YXRlCiAgICAgIC0gIHNlcmlvdXNseSByZWR1Y2UgdGltZW91dCB0byB3YWl0IGZvciBqdW5rIHJlYWQuIGkgdGhpbmsKICAgICAgICAgd2Ugc2hvdWxkbid0IGV2ZW4gYm90aGVyCiAgICAgIC0gcmV0dXJuIGVhcmx5IGlmIGNhY2hlcCBpcyBOVUxMLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHRlc3QgaXQKICAgICAgICByZXBlYXRlZGx5CiAgICAgIC0gdXNlIGNvcnJlY3QgbmZkcyB2YWx1ZSBpbiBzZWxlY3QgY2FsbAogICAgCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDgwNjMyNmI1OGE5MTY4M2VhMmE2NDJmNmMzMmExOGIwOTg3NjQ1ZGYKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAzMSAwNToxNzo0MCAyMDExICswMDAwCgogICAgbWFrZSB0cnVuayBhbmQgdjUtNi1wYXRjaGVzIGNsb3NlbHkgYWxpZ25lZAogICAgCiAgICAgIG1vc3RseSBjaGFuZ2VzIGluIGRlYnVnLCBjb29raWUgdHJhY2tpbmcKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMGQ3ZTdlNDJlZTNiYTBmYWYyMTU0MDA5MDA0MzRkNjAyNGMyNTBmOApBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDMxIDAzOjUzOjMzIDIwMTEgKzAwMDAKCiAgICBhZGQgY29va2llIGhhbmRsaW5nOyByZW1vdmUgaWZkZWYnZCBjb2RlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5ODg4ZDQ0NDM4OGUzZjZiMGY2OWVhYWFhMjI1OGIzMTRiMzc3MDU3CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDE4IDExOjIzOjI0IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTJiNDUzYmRhNzIzNzNkYmJiMTE1ZjdhOWMwNGE2MzVkOTMzOWUwOQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAxOCAxMToxODoyMiAyMDExICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGI1ZDU0OWEyZTE3OWNiMThkNWFiMzQ0MDMwNTMxMDg0MTE2MWZmMWYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMTggMTE6MTU6NTUgMjAxMSArMDAwMAoKICAgIG1ha2UgZGVwZW5kCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiZGEyMmUwYmM1ZDQ4MmM1YzMwM2UzMWJhNWM0MzJjMDkxZmEwZGQ4CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDE4IDEwOjM2OjIyIDIwMTEgKzAwMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNzM0NTMyMmUyODEyNTg4YjEzYTRjODFiM2NkYzg3NzI5Y2MzZDhmNwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAxOCAxMDozMjo0OSAyMDExICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA0YWVhNTg2NmYxNWY5NjVkYTcyNjRiOWMxMjNhNzI4YzljZmE4NzNkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAxNyAyMTowOToxMCAyMDExICswMDAwCgogICAgRm9ybWF0dGluZyBib3RjaAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMGVmOGRjZDAxZDE1NDBiOGZjNzcxNjM4NDVmMDFlM2UyZDliNTEwMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMTcgMjE6MDc6MjcgMjAxMSArMDAwMAoKICAgIEluc3RhbGwgcmVxdWlyZWQgbWlicwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNzY3OTM2YTM3NWM0YTk3ZmQyMjk1MWRmZDJlYTdiODVhZWFmZDk2YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMTcgMjE6MDU6MjEgMjAxMSArMDAwMAoKICAgIE5ldyBSRkMgbWlicwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOWU1MDU2ZjEyNGYxNTQ2ZjZmNTA2ZDg2MTY5YmM4Y2YwZjUwNWUwMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1hciAxNSAxMjozNzoyMCAyMDExICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDY2NjI4YWE3ZTA0MGQ2YThhM2U2MThkY2Y3Mjg0M2VhMGI4MWUxMTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXIgMTUgMTA6NTc6NTkgMjAxMSArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3ZWE1MTc5MDVhODE3ODRjNzhlN2ZjYWU4ZTcyMzQ4NTI0MTY2YWI4CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWFyIDE1IDEwOjU2OjAwIDIwMTEgKzAwMDAKCiAgICBtYWtlIGRlcGVuZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNmI4YjQxNjhmOWVlODJhNmIyNWExYWY3ZTAwN2NkMGU3NTU0N2Q1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1hciAxNSAxMDo0MjowNiAyMDExICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlYzQ0ZjdjZTQzYzM2MmI4NmUzZmQxYzhiYTk5ZGQ1MTRkZjk4MjMxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWFyIDE1IDEwOjQxOjI3IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTM3MTYxOTNmZTRjZjJlODJjNGJlMGU5ZThlNmY0ZTY3ZDRkMDZiZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXIgMTUgMTA6MzE6MTIgMjAxMSArMDAwMAoKICAgIFNwZWxsaW5nIGZpeDogcmVnaW5lcmF0ZWQgLT4gcmVnZW5lcmF0ZWQuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGJlZDkyNzJmZjlmYTZmZmI3NTEzYTgyZWM2ZDQyM2U2YTRkZTViMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWFyIDE1IDA5OjU5OjMwIDIwMTEgKzAwMDAKCiAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMjAxMTMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2OWQ2ODE1YjY1NDRmNDdkMzkyOTExOTFlOWRlYjViYmFlMTEzNGUyCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDE0IDE1OjIxOjM2IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOWNjOGM3MmU2NzZmMGU0NmQ3ODRkMTVmMWFiMDcyYzE5MmE1NGJmNwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAxNCAxNDoxNDowNyAyMDExICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIwNzlhMGEzZDFjZmY0ZjRhMzBhNTZmZmQ1NWJkY2UxZWE1ZGRlZTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMTQgMTQ6MTE6MTQgMjAxMSArMDAwMAoKICAgIG1ha2UgZGVwZW5kCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwNjk3ZDBhZGE5NzQ3NDYxMzIzM2E2OWI1NzMzMDMzM2U3NWIxODg2CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDE0IDE0OjAwOjUyIDIwMTEgKzAwMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWRmY2ZlMDc2ZjcwN2QwZDc0ZmI4ZTFjN2Y1NjQyZGM4ZDg4OTUxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAxNCAxMzo1NzowMCAyMDExICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiNWU5YzhkZDQyNzJiNjdmOTg3NzY0OGQ0NDVhMDc0YzRlNDA1YjI4CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDE0IDEzOjQ3OjA1IDIwMTEgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDViMzcyODFkMDBlZDBjYTEyNzgwNDJjMDUwMjEwODRjN2I5YTM1NApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAxNCAwOTozMTo1NyAyMDExICswMDAwCgogICAgRml4IG1haW4gYWdlbnQgc2VsZWN0IGNhbGwgdG8gdXNlIHRoZSByZW5hbWVkIEFQSSByb3V0aW5lLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3YTYxZjgzMjUyM2VhYmE2MDM5N2U3YmQ1NjczNjY3ZTAzZmYyOGVhCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDEzIDIwOjA5OjUyIDIwMTEgKzAwMDAKCiAgICBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50bwogICAgbGluZSB3aXRoIHRoZSByZXN0IG9mIHRoZSBBUEkuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDZlNWJkYzVjYmE0MzQ3OTIyZjY4Y2ExNWEzN2MzMzIxYWM5ODY1NTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgMTMgMjA6MDk6NTIgMjAxMSArMDAwMAoKICAgIEJyaW5nIHRoZSBuYW1pbmcgb2YgdGhlIGxhcmdlX2ZkX3NldCBzZWxlY3QgY2FsbCBpbnRvCiAgICBsaW5lIHdpdGggdGhlIHJlc3Qgb2YgdGhlIEFQSS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNmRlYjM2MDBjZGVkYmI4MDBkMGQ0YjE4MGJkNGEwY2Q4NTYyOWZlYwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1hciAxMyAyMDowNjoyNCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24gbmV0c25tcF9sYXJnZV9zZWxlY3QoKQogICAgKHBsdXMgdHdlYWtzIHRvIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNzExZTMzYmFiYjIwOGE5MDYyM2VjZjZiNDI0ZWQxMWMzMzA5Zjk4NwpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDEyIDA2OjU5OjU2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQgaW5zdGVhZCBvZiBjYWxsb2MKICAgIAogICAgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlcgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDExOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxZTdhNmI0N2M4ZDdkNzcxNzE4OWE5NDY2ZDE3MjFkZTg4YTdhODc3CkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMTIgMDY6NTk6NTYgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IHJlYWxsb2MraW5pdCBpbnN0ZWFkIG9mIGNhbGxvYwogICAgCiAgICAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDE4ZjEyNWY5ZjNmM2YzY2ZjZjcxZWE3NTI5NDM1M2EwNmNhMWY0MmUKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAxMiAwNTo0Nzo1OCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBvcHRpbWl6YXRpb25zIGZvciBsYXJnZSByb3V0ZSB0YWJsZXMgZnJvbSBTdGVwaGVuIEhlbW1pbmdlcgogICAgCiAgICAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsgc3ViamVjdAogICAgIGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0IG5lZWRzIG1vcmUgd29yawogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDExOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhMjRkNzliNzA0NzNiMWRjMjY2NDQ3MGFmZDc5Y2U2MzE4MDQ2NTU4CkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMTIgMDU6NDc6NTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzIGZyb20gU3RlcGhlbiBIZW1taW5nZXIKICAgIAogICAgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7IHN1YmplY3QKICAgICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDU5OGI3N2UxYzNhYzczMGFjMDdkOTJmNzljMWIwMjQ1Yjc5MzUyZQpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDExIDE0OjQzOjE2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZSBvcGVuc3NsIGVycm9yIGNhc2VzIHdoZXJlIHdlIGNoZWNrIGZvciBsb2NhbCBjZXJ0CiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDUxZGQ2MjNlZTQ2N2UzYjk3ZGFjNGM1Y2NkYmNlNDJjMjcwN2UwMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDExIDEyOjAxOjIzIDIwMTEgKzAwMDAKCiAgICBNaW5HVzogZHNrVGFibGU6IFJlcG9ydCB6ZXJvIGZvciB1bmltcGxlbWVudGVkIGZpZWxkcyBpbnN0ZWFkIG9mIHJhbmRvbSBkYXRhLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgODRjMjQxMmYwMDIyYTk2ZWFjMmYyOTQ4Y2FhMTg4MDM2YTk0NTAzNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDExIDExOjExOjI4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZSBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlCiAgICBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmQ0OGNjZjZjYzkzYzBlNDRlZWM1NWVkZjU1OWQ5ZjE1MjNjNzRmOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDExIDExOjExOjI4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZSBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlCiAgICBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjgxOGZjZWRjYzNiNTdhMjg4YTUyNzRiOTkzZWRjYmIwZmZiYWQwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMTEgMDg6NDI6MDUgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCdWlsZHMgd2l0aCBtb3N0IHJlY2VudCBNaW5HVyAoaGF2aW5nICNkZWZpbmUgbG9jYWx0aW1lX3IpLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMDgyMjEwNWEzOWMxMTE4MTYyOTE4NWVlNmQ3MzQ4YWVjZmI1ZjE4CkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMTEgMDM6MDg6NTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1YTE2NDFlYmExYzg1ZjI0ZWE3NDYxZTcxODVjODA0MmQ3NjY1M2RjCkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMTAgMjE6MjE6MzIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMyMDU3NjU6IGhhbmRsZSByZWNvbmZpZyBmb3IgY2VydFNlY05hbWUgdG9rZW4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjViNzEyN2Y0MmM0NTRhMmQ5MWExYTkyM2E5ZTQ4MjIzNTRkZjYxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMTAgMjA6MDE6MzMgMjAxMSArMDAwMAoKICAgIFNwZWxsaW5nIGZpeCBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQ6IG1lc3NnZXMgLT4gbWVzc2FnZXMuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDBiMTk2ZGZkNDJkNjY5MGU0ZjViZTdlZTNlMjA2NGYwMzcyNzQ3ZTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDEwIDE5OjU1OjI2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWlub3IgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjNGU4YmI3NTkyODZlNzMxNTU5ZjFiODJhYjdmYWZiYWZkMmQ3ZWEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAxMCAxOTo0ODo0MyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluIGFnZW50IHByb2Nlc3NpbmcgbG9vcCAtIHdoZW4gdXNpbmcgbW9yZSB0aGFuIEZEX1NFVFNJWkUgZmlsZSBkZXNjcmlwdG9ycyAtIGNhbiBjYXVzZSBtZW1vcnkgY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZGJiMGY3Yjk3OWYwNzYyMTg1ZWU1ZWUxODRiYTNjZjIzYjViMzFhMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMTAgMTk6NDM6MTYgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGE3NTJhODYyNmZmMjBmYTU2Yzk1OWU2MDk0NTUzMGU1ODJjOTI5ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDEwIDE4OjU3OjI0IDIwMTEgKzAwMDAKCiAgICBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MgKGJhY2twb3J0ZWQgcjIwMDk4IGZyb20gdGhlIHRydW5rKS4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGRlNmM1MjJjYmM2MWE3MjhmZjczN2ZlZTFlNGY0NDc5MTMzMDEzZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDEwIDE4OjU1OjUzIDIwMTEgKzAwMDAKCiAgICBBZGRlZCBhIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX2xhcmdlX2ZkX3NldC4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjRmMTc2YTlkYjE2OTkzZWFlMWMxYTMxYzk4ZmQ0YzczNDc0YjE1MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMTAgMTg6NTI6MzQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIGNsZWFyIGFsbCByZWxldmFudCBmaWxlIGRlc2NyaXB0b3JzLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzYzBmYzM2MGQwZThiYTFmY2YwYzMxODU5ODBlNWJhZjZmYzkzZWY3CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDEwIDE1OjUxOjI3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIFRaIG9mZnNldHMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2U2OWZhNWEyZmIyYjI0ODZlZjI4MmUzYmEyYzhmZmQ1OGIwYWQ3MQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAxMCAxNTo1MToyNyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudCBoYW5kbGluZyBvZiBUWiBvZmZzZXRzCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGI5YTE0Njk4OThhYTUxNWM2ODk3MjYwOGNiYmYwMWE4MmYyYTk4ODIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMTAgMTU6NTE6MjcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQgaGFuZGxpbmcgb2YgVFogb2Zmc2V0cwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmOGE4NTIxMDRhZjY3YzZjZmFkODIwNjY1ZWNhMmRjNzNkOWI1MWZmCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDEwIDE1OjUxOjI3IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIFRaIG9mZnNldHMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDBlOGU2ZjRkMjExZWI1NWQwNWU2MTk2NTBiZTY1NWRmYTkzOTRlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNyAxNzoxOTo0NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMxOTU1Mzc6IE1pbm9yIGJpbmFyeV9hcnJheSBjb250YWluZXIgc29ydCBvcHRpbWl6YXRpb24KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWIwM2M0OGUzNTVlMDhhZTU2MjRkNjA1OTQ2NjY1OWI0MGJkOTg1YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgNiAxOTo0NzowNiAyMDExICswMDAwCgogICAgVGFicyB0byBzcGFjZXMKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDZiZDJiMGJiMDFjNzQyODM1MzRlZGNmYzFjYjA4NzkwODYxZTBkNzQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDYgMTE6Mjg6MDQgMjAxMSArMDAwMAoKICAgIENvbmZpZ3VyZSBjaGVjayBmb3IgZ2V0aG9zdG5hbWUyCiAgICBVc2UgZ2V0YWRkcmluZm8gaWYgYXZhaWxhYmxlLiBOb3cgd29ya3MgZm9yIFNvbGFyaXMgKGFuZCBXaW5kb3dzPykKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDg2ODQzNjIxNWMwZTcwYmRlM2M0NGU0YzkyNmRhYTZhYjg4MDA3OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgNSAxMjo1MDo0NCAyMDExICswMDAwCgogICAgQ2xlYW4gdXAsIGFuZCBjb3NvbGlkYXRlIHJlc3VsdCB0YWJsZSByb3cgY3JlYXRpb24gaW50byBhIG5ldyBmdW5jdGlvbi4KICAgIFNhdmVzIDIwMCBsaW5lcyBvZiBjb2RlLCB3aXRoIChob3BlZnVsbHkpIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGM4MjEwMmQ5ZTJhNjJkYjQ2MjhiMmM1ZGQ5ZmZiNmQ3MDc3ZjAyYzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciA0IDE1OjA5OjI2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24gTGludXgKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDQ3NmNjYTgzYTI4MzMzNTc4MGE4NGVjMGI4NzM0NDFmMTE0ODYzZGEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciA0IDE1OjA5OjI2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24gTGludXgKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDE1YWYwYWRmODFmMjU1NDYzYjkwODg1OWIzODNmNGE1MTViZWMzNmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciA0IDE1OjA5OjI2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24gTGludXgKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDY1NzkxZWQ2MDM0YjQ0OTVkZmY2N2UwYmQ3NzVhMmM1NzdkMTNmNjcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDMgMTA6NTY6MjEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBEZXByZWNhdGVkIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbnN0ZWFkIHRvIGV4cG9ydCBhIGZ1bmN0aW9uIGZyb20gbmV0c25tcC5kbGwuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1YTRmOWVhYjZiZjIxMWYwYTA5MTdjNTkyY2RlMmU1ZTg0ZDBjNGRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAzIDEwOjUwOjIzIDIwMTEgKzAwMDAKCiAgICBNb3ZlZCBhIHNvdXJjZSBjb2RlIGNvbW1lbnQgc3VjaCB0aGF0IGl0IGlzIGFnYWluIGltbWVkaWF0ZWx5IGFib3ZlIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaXQgYXBwbGllcyB0by4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU2NGY1MTBmZmIxNzk2MTkxMTI2OGE4NDVkNjliYmE3YWRhZGJmODUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDMgMTA6NDg6MzQgMjAxMSArMDAwMAoKICAgIEFkZGVkIG1pc3NpbmcgTkVUU05NUF9JTVBPUlQgZGVjbGFyYXRpb25zLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNDYxZDJkMDkwMzhlMzIxYjU5ZDgzMTkwNWFjOWI3NjViYjRhM2M4ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMyAxMDoyNDowMSAyMDExICswMDAwCgogICAgUmVtb3ZlZCB0d28gb2Jzb2xldGUgV2luMzIgZmlsZXMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyODg2ZDAyYzcyNzY5ZmE5NjlmMGExMTdkYzcyY2I1ZDZiNDBiMmQ1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciAzIDEwOjA5OjE0IDIwMTEgKzAwMDAKCiAgICBUcml2aWFsIGNvbW1lbnQgZml4OiBzbm1wSVB2NkJhc2VEb21haW4uYyBjb250YWlucyBJUHY2IGJhc2UgdHJhbnNwb3J0IHN1cHBvcnQgZnVuY3Rpb25zIGluc3RlYWQgb2YgSVB2NC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDJmNTRmNWIzOWQ5NmFhN2I0ODRkMGM5OTQ0MzRiZDkyOWIxNzI3NjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjUgMTI6NTU6MDQgMjAxMSArMDAwMAoKICAgIEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCiAgICAKICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2gKICAgICBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cwogICAgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKiBicmFuY2hlcywgcmF0aGVyCiAgICAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpCiAgICAKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTY5MWMyZjc0NTFlNDAxZjRmYjhkNzRiZmY4YmYxMTY4ZjBhNmZmMQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEZlYiAyNSAxMjo1NTowNCAyMDExICswMDAwCgogICAgRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKICAgIAogICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaAogICAgIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzCiAgICAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqIGJyYW5jaGVzLCByYXRoZXIKICAgICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkKICAgIAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjNmNlNWE4YmVjZjNlZTUyMjE2ZDE2MGY1YzczYTE3OTM1ZWFmNzkxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRmViIDI1IDEyOjU1OjA0IDIwMTEgKzAwMDAKCiAgICBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAgCiAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoCiAgICAgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMKICAgICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCogYnJhbmNoZXMsIHJhdGhlcgogICAgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKQogICAgCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGJlYTkwMzNkNmE1ODNhMWQ5ZjgyNzRhZjRjZTE1NjVkZmZmMGYwOTAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjUgMTE6NDk6MTcgMjAxMSArMDAwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1MjI5YTA2NmYyMzRmNzBmNWIwODk0ZjBmMzYxN2I0ZjllZDFmY2MxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRmViIDI1IDExOjQxOjMxIDIwMTEgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGJlMmE5MTg1YjZmNGFkZmM0YzgxZDU0MmFmN2UzYjY1NGY1NTNiMTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjUgMTE6Mzk6MjQgMjAxMSArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxNWE0NTZlMWQyZWQxMTJhMDc4MzhjYWY3ZjM0NTY1MjFjMTdmZGY5CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRmViIDI1IDExOjE1OjUyIDIwMTEgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTkyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDFjNGZlM2ExYjkxYjgzNzg2OWQ4MmUzZDgxNDNlNmJlNTY5YTA5NjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjUgMTE6MTA6MDAgMjAxMSArMDAwMAoKICAgIEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdCBhdmFpbGFibGUgb3Igc2V0LgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBkMmZkNzdkODYyODAzZTNhZDUwZjIxMDY3NDMwYTcxZjFlY2U5ZDhkCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRmViIDI1IDExOjEwOjAwIDIwMTEgKzAwMDAKCiAgICBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QgYXZhaWxhYmxlIG9yIHNldC4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNTc3MWMyMjVkYTk2YjQ5NmI4ZGIyZjQ3ODRlN2I4NWM0YmI1MjNjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEZlYiAyNSAxMToxMDowMCAyMDExICswMDAwCgogICAgQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90IGF2YWlsYWJsZSBvciBzZXQuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDQxZTI2YWJkZTJiNWQ2ZjQwY2FmNjg0YTdhMzA5ZjdhNjExYzYzMWYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjUgMTE6MTA6MDAgMjAxMSArMDAwMAoKICAgIEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdCBhdmFpbGFibGUgb3Igc2V0LgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5ODg5MDgyZTMyNTJlMDJjYWY1Y2M0ZjNiYzFjNGI0ZDFjMTM0YzUyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiAyMyAyMTowNDozNCAyMDExICswMDAwCgogICAgSW5jbHVkZSByZXF1aXJlZCBwcm90b3R5cGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDMxMzAxNjYyMjZkMDAzNjRkNjA3YmE5ZTg3NDNhYmI3YWE0MmVjYzEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDIzIDE1OjIzOjM3IDIwMTEgKzAwMDAKCiAgICB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDVhYWE0YjNmNjg5M2FlNDEyZTc0ZDBjYWVkMjZmNDczZGMzOGI0MzUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDIzIDE1OjIwOjExIDIwMTEgKzAwMDAKCiAgICBFbmFibGUgKHByb2JhYmx5IGZvcmdvdHRlbikgaXBBZGRyZXNzUHJlZml4VGFibGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDVkYWVjMTJkZTQ0MmEyMmZmMjk4MjM1ZTEyNTBiZTk5NjEwM2NkODkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDIzIDA5OjU0OjE2IDIwMTEgKzAwMDAKCiAgICBMb2FkaW5nIElQdjYgZGF0YSBpcyBhIG5vLW5vIHdoZW4gSVB2NiBub3QgZW5hYmxlZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOGFiNmNlOTVkYjdiY2RhNDQyOTFmMDdlYjgzYTJiYzNiOTFkMjYyYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMjMgMDk6MzY6MjIgMjAxMSArMDAwMAoKICAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6IGNoYXJhY3RlcgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTY1YTc3YjkyM2YxNDA5N2I5MWVkYjg5YmEzNmJjMGI1NjkwNzhjOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMjMgMDk6MzY6MjIgMjAxMSArMDAwMAoKICAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6IGNoYXJhY3RlcgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzViNzQyZDkzNTU4NDNlODQxMDBjOTc3YTlhYmMxNTFlMmQ3OGFmZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMjMgMDk6MzY6MjIgMjAxMSArMDAwMAoKICAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6IGNoYXJhY3RlcgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgN2E2MTIyM2Y0Y2Y3YTM4OWI4N2ZhY2UyNDdhN2E2NTczNDkwMGM2NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMjMgMDk6MzY6MjIgMjAxMSArMDAwMAoKICAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6IGNoYXJhY3RlcgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNmNjYjU0ZTk0NTcyNzlkOGMyYjBjMDMwYWNlZDIxNWU3MDM2MDEwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMjMgMDk6MzA6NTIgMjAxMSArMDAwMAoKICAgIEZyZWVCU0QgOCBzdXBwb3J0CiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmOWM3MGRkMTZiZWZlODcyOGVmMmFiM2YxMDNkZDgzZThjMzNlYWNlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEZlYiAyMyAwOTozMDo1MiAyMDExICswMDAwCgogICAgRnJlZUJTRCA4IHN1cHBvcnQKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDkxYjk1ODgxZWRkYzI1YTg4NWIwYjQ3MTFiNTJiMTEyNzg5OTBlN2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDIzIDA5OjMwOjUyIDIwMTEgKzAwMDAKCiAgICBGcmVlQlNEIDggc3VwcG9ydAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNTgzZTdiMTQ1NGEyN2NhYzg5OTA3ZDQ0MzI1YTE0MzJmZDBiOWE4OApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAyMiAxNToyNTozNSAyMDExICswMDAwCgogICAgUmV2ZXJ0IGEgYm9ndXMgY2hhbmdlIHRoYXQgY3JlcHQgaW50byB0aGUgY29kZS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDBlZjU2OWUwMGQxNjRkOWUxMDcwY2Q3MDVjNjVlNGE3MzkwYTE2MgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAyMiAwODo1NTo0OCAyMDExICswMDAwCgogICAgRml4IDUuNS54IGJyYW5jaCBzdHJ1Y3R1cmUgKHBhcnQgMikKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDcyN2EyZjIxYzNjYzc0ZDNjM2JlOGE0NzA3ZWYxZWM0OWFiNmJmN2MKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDIyOjQwOjA2IDIwMTEgKzAwMDAKCiAgICBwcm9wZXIgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIGZvciBuZXRic2QKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDBkODIwZmNmOTVlNDQ0ZGQ4YTUzMWNjNmY4MmNjN2I4YTY5ODY2YjgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDIyOjM5OjA1IDIwMTEgKzAwMDAKCiAgICBjb25kaXRpb25hbGl6ZSB2YXJpYWJsZQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTQ5ZDBkODA4MmMxOTEyNzMzYTg3NzVhNzM4MTdhZGY0YWIzZWJlZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgMjEgMjI6MjA6MDQgMjAxMSArMDAwMAoKICAgIHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDVmNzI5ZDQ4MDk3ODVhZTBjNzVkYjJhODMxZWE5NDQxNjIyY2Y3ZjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDIyOjE2OjU2IDIwMTEgKzAwMDAKCiAgICB0Y3AtbWliL3VkcC1taWIgc3VwcG9ydCBmb3IgdGhlICpic2RzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyYjRmMDcwNmMzYzE0MzMwNjlkNTY2YmNiNDg4OTJmNDUxY2E2MGQ4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAyMSAyMjowNTo1NiAyMDExICswMDAwCgogICAgUHJvcGVybHkgZW5kIGRlYnVnIG1lc3NhZ2Ugd2l0aCBuZXdsaW5lCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1M2IzNTk2NDk2YjNkNzg1ODI5ODMyMGVmM2U4M2U0YTI2YTdhYTNlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAyMSAyMjowNDoyNCAyMDExICswMDAwCgogICAgcmVtb3ZlIHZhciB0aGF0IHNoYWRvd3MgdGhlIHVzZWZ1bCBvbmUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDUwZDczZjBkNTZmZTIyYzU5MDUzMGIzZTMwNWQ0MWRjZGFjM2NlMDAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDIyOjAyOjMwIDIwMTEgKzAwMDAKCiAgICBtYWpvciBmaWRkbGluZyB0byBnZXQgdGhpbmdzIHdvcmtpbmcgZm9yIG9wZW5ic2QgdG9vLiBUaGlzIHNob3VsZCByZWFsbHkgYmUgcmV3b3JrZWQgdG8gdXNlIHRoZSB0Y3AtbWliL3VkcC1taWIvZGF0YV9hY2Nlc3MKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDI3NjA3ZTMxZjc0NTRkYmMxZDcwYTEwNmQwNTMxZjQzNTU5YTMxYmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDIxOjU5OjUwIDIwMTEgKzAwMDAKCiAgICBmaXggdGNwIHN0YXRlcyBmb3IgZHJhZ29uZmx5YnNkCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2MGQ1NDk1NjZhOTA0OTQwNDM1MzdkNThlYzg0N2FmYzQ4N2Q2NmQwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAyMSAyMTo1Nzo1OSAyMDExICswMDAwCgogICAgZW5hYmxlIG5ldyB0Y3AvdWRwIG1pYnMgZm9yIHNvbGFyaXMKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDhhMjQwOGMxNmZhYjgzZDZiNDAxMGU0NzdjZjY2MGRjMThmYmIzM2IKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDE5OjA4OjAwIDIwMTEgKzAwMDAKCiAgICBVcGRhdGVkIGNvbW1lbnQgYWJvdXQgd2hlcmUgbWFrZXJlbGVhc2UgY29tZXMgZnJvbSAobm93IGdpdGh1YikKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDNhYmJjYWEwOTFkYTQxZTQwZjgyMDgxZjYxYjI0YmJmMGNmZDIxOGIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDE5OjA4OjAwIDIwMTEgKzAwMDAKCiAgICBVcGRhdGVkIGNvbW1lbnQgYWJvdXQgd2hlcmUgbWFrZXJlbGVhc2UgY29tZXMgZnJvbSAobm93IGdpdGh1YikKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDE5ZWE4ODYzMWU1ZmZmN2UwNDhkZTM4ZWZmMzUyYTlmMDA0ZDYyZTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDIxIDExOjE0OjAxIDIwMTEgKzAwMDAKCiAgICBCYWNrcG9ydGVkIHIxOTQ1NCBmcm9tIHRoZSB0cnVuayBhbmQgdGhlcmVieSBmaXhlZCB0aGlzIFZhbGdyaW5kIGNvbXBsYWludDoKICAgIAogICAgPT02Mjg3PT0gSW52YWxpZCByZWFkIG9mIHNpemUgOAogICAgPT02Mjg3PT0gICAgYXQgMHg0RTZDQ0FFOiBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldCAodGFibGVfZGF0YXNldC5jOjE4NikKICAgID09NjI4Nz09ICAgIGJ5IDB4NTEyMTk3NDogc2h1dGRvd25fbm90aWZpY2F0aW9uX2xvZyAobm90aWZpY2F0aW9uX2xvZy5jOjU2NCkKICAgID09NjI4Nz09ICAgIGJ5IDB4NTE5NDFEQjogX3NodXRkb3duX21pYl9tb2R1bGVzIChtaWJfbW9kdWxlX3NodXRkb3duLmg6MzIpCiAgICA9PTYyODc9PSAgICBieSAweDU0QjE0RjQ6IHNubXBfY2FsbF9jYWxsYmFja3MgKGNhbGxiYWNrLmM6MzQ0KQogICAgPT02Mjg3PT0gICAgYnkgMHg1NDhCNThCOiBzbm1wX3NodXRkb3duIChzbm1wX2FwaS5jOjg2MikKICAgID09NjI4Nz09ICAgIGJ5IDB4NDA0QzA2OiBtYWluIChzbm1wZC5jOjEwNjApCiAgICA9PTYyODc9PSAgQWRkcmVzcyAweDY4NmYzMTggaXMgMjQgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSA0MCBmcmVlJ2QKICAgID09NjI4Nz09ICAgIGF0IDB4NEEwNjBFMDogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzozNjYpCiAgICA9PTYyODc9PSAgICBieSAweDRFNkFCMTY6IG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUgKHRhYmxlX2RhdGEuYzozMjApCiAgICA9PTYyODc9PSAgICBieSAweDRFNkNDODQ6IG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0ICh0YWJsZV9kYXRhc2V0LmM6MTgwKQogICAgPT02Mjg3PT0gICAgYnkgMHg1MTIxOTc0OiBzaHV0ZG93bl9ub3RpZmljYXRpb25fbG9nIChub3RpZmljYXRpb25fbG9nLmM6NTY0KQogICAgPT02Mjg3PT0gICAgYnkgMHg1MTk0MURCOiBfc2h1dGRvd25fbWliX21vZHVsZXMgKG1pYl9tb2R1bGVfc2h1dGRvd24uaDozMikKICAgID09NjI4Nz09ICAgIGJ5IDB4NTRCMTRGNDogc25tcF9jYWxsX2NhbGxiYWNrcyAoY2FsbGJhY2suYzozNDQpCiAgICA9PTYyODc9PSAgICBieSAweDU0OEI1OEI6IHNubXBfc2h1dGRvd24gKHNubXBfYXBpLmM6ODYyKQogICAgPT02Mjg3PT0gICAgYnkgMHg0MDRDMDY6IG1haW4gKHNubXBkLmM6MTA2MCkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTk1MWMyMGE2ODY1OTIwOTQ5ZjQ1MDRjYjA3NjkwNmMyM2NhYjQ4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgMjEgMDc6MTM6MzMgMjAxMSArMDAwMAoKICAgIEZpeGVkIGEgTWluR1ctc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZyAoYmFja3BvcnRlZCByMTk5MjIgZnJvbSB0cnVuaykuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3MWI2MTVlMzhhNWFmMGMwN2FiOTg5OTRkOTQwNThkZWQxZWYwMDZkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEZlYiAyMCAwOToyNDoyOSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE4NTUyODogc2h1dGRvd25fbWFzdGVyX2FnZW50IGRvZXNuJ3QgY2xvc2UgVURQIHNvY2tldAogICAgKEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gcjE5NTExLikKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTJhNjkxOWU2YTk3NWQ2NjhjN2FmMTFmNzg4ZmJiMzU1MWNmMTg2YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBGZWIgMjAgMDk6MjQ6MjkgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxODU1Mjg6IHNodXRkb3duX21hc3Rlcl9hZ2VudCBkb2Vzbid0IGNsb3NlIFVEUCBzb2NrZXQKICAgIChGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIHIxOTUxMS4pCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDM2NTRmY2QwYWE5ZDQ2MDliYWZjN2U4Nzc5NThmNWUyMzRlMWIxYzkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAxNyAxMToyODoyNyAyMDExICswMDAwCgogICAgRml4ZWQgc25tcC1icmlkZ2UtbWliIGluIHN0YW5kYWxvbmUgKGFnZW50eCkgdmVyc2lvbi4KICAgIERvbid0IGRlY2xhcmUgbG9jYWwgdmFyaWFibGVzIGluc2lkZSBibG9jay4gUGF0Y2ggcHJvdmlkZWQgYnkgSmVucyBPc3RlcmthbXAuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBkYWNiZTYzYzE4YjYxZjdlN2RkNzM2ODFiNzhiZmJlYTNlMjIxYWY5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMTYgMTQ6NTY6MzMgMjAxMSArMDAwMAoKICAgIEZpeGVkIHNubXAtYnJpZGdlLW1pYiB3aGVuIHdvcmtpbmcgaW4gdGhlIGVtYmVkZGVkIHBlcmwuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjOGRhMzQxYTY0YmQxOTk1MjlhOWU1OWFjMzUyMzU0N2NjMmZlMWY2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMTYgMTM6MTY6NTcgMjAxMSArMDAwMAoKICAgIEZpeGVkIEdFVE5FWFQgcHJvY2Vzc2luZyBpbiBzbm1wLWJyaWRnZS1taWIuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGJjYzY4ZjczNzhjMjllZmNmODFkYWEwYzI5OTZjNGVkZTgwZTU1YmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDE1IDIyOjI0OjA2IDIwMTEgKzAwMDAKCiAgICBQcm9wZXJseSBzYXZlIGVudHJpZXMgZm9yIE5ldEJTRCBhbmQgRHJhZ29uRmx5CiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxMDA1MGM5NDIwOWIwYTlkZmU0NWFiNzEwYzkyOGI2NTZkOTA2YTNhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxNSAyMjoyNDowNiAyMDExICswMDAwCgogICAgUHJvcGVybHkgc2F2ZSBlbnRyaWVzIGZvciBOZXRCU0QgYW5kIERyYWdvbkZseQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNTQwMjI0OGNkNDZkY2MyMmU4ZTVkMzBhZjc3NzBhYjhmYTAxZGZkYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMTUgMjI6MTg6NDMgMjAxMSArMDAwMAoKICAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZXMKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGRmNjQ5Y2NhZjg0M2VkNzZjYmQ4Zjk2NTY0ZjU3MTc2YThhNjFiYTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDE1IDIyOjE4OjQzIDIwMTEgKzAwMDAKCiAgICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGVzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiNTY1NWNjMTA3MjFlOWRkYzIzZDhlYTBhNTQwMDdiMWFiMDY4MGUxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxNSAyMTo0ODowNSAyMDExICswMDAwCgogICAgcmVydW4gYXV0b2hlYWRlci9hdXRvY29uZgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgY2U4ZTg3NDU4Nzc1YzI4MDllZDhmOTIwY2U4MDQyMWFkNmYxNGNiYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMTUgMjE6NDg6MDUgMjAxMSArMDAwMAoKICAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDljZmJkOGIxNDRkNjU5NWU5ODhmMzNjYTQ4NDM4MmM3MDgyYmI2ZWQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDE1IDIxOjI2OjMwIDIwMTEgKzAwMDAKCiAgICBUb28gbXVjaCBxdW90aW5nIGlzIGJhZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgODhkYzE0NGJjNmJhMmFiMjM3N2Y5ZDcxODJhMWMyYzAzMzc1NDU5ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMTUgMjE6MTE6MzcgMjAxMSArMDAwMAoKICAgIEZpeCBJUHY2IFRDUCBhbmQgVURQIHRhYmxlcywgKkJTRCBzdXBwb3J0CiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1Y2QxNTczNjI1NDcxYzA1ODNlOTA4N2FlYzY4MDJiNzcxNTdkNWEyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxNSAyMToxMTozNyAyMDExICswMDAwCgogICAgRml4IElQdjYgVENQIGFuZCBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIwMDU5NWM3Yjg3Mjg3ODZjZDg0M2YyNjg3Nzc5YjExZjBlNjE5NmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDE1IDIwOjQ1OjM0IDIwMTEgKzAwMDAKCiAgICBLaWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiNzZhNTRmN2VlNjY0NGE5NjM2ZDk4ZDk2MGZlZmVjYWJiNzRiYzI5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxNSAyMDo0NTozNCAyMDExICswMDAwCgogICAgS2lsbCBjb21waWxlciB3YXJuaW5ncwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjU1NTg5MzVlOWIyNzE4NzU3MzY2ZThiM2IxMGE5MTQxMmI5NmFlOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMTUgMjA6NDQ6MjIgMjAxMSArMDAwMAoKICAgIEZpbHRlciBJUHY2IGVudHJpZXMgZnJvbSBJUHY0IHRhYmxlCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlODhmOTIyMmM5OWViZGIxMWU5NGFlZjM5NGM4NGQ2Y2Y2N2JjNzUxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxNSAyMDo0NDoyMiAyMDExICswMDAwCgogICAgRmlsdGVyIElQdjYgZW50cmllcyBmcm9tIElQdjQgdGFibGUKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDhmZGMyMWZhYTFmNDE4NTFkZjdlMDBkMGUwNWI1ODgzY2MzMjE4MmUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDE1IDIwOjQyOjQ3IDIwMTEgKzAwMDAKCiAgICBQcm9wZXIgdXNlIG9mIGdldHByb2MyIGFuZCBkcmFnb25mbHkgc3VwcG9ydAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWRkNWRlNmM3YzAwNGQxMTY0YWUyYzUxZDliN2YxYjNiN2M1MzA2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMTUgMjA6NDE6MDkgMjAxMSArMDAwMAoKICAgIGdldHZmc3N0YXQgaXMgb25seSBmb3IgTmV0QlNECiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBkMDJlNWRhZjIzOGYwOGI1MDcwNDMxOWVkNDQ0MDYwNTg5ZGNlYmEyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxNSAyMDozOTo1MyAyMDExICswMDAwCgogICAgRGV0ZWN0IG5lZWQgZm9yIC1sa3ZtIGluIHByb3BlciB0aW1lCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA0ZGU4NDg4NDA0MWUyM2FjOGMxYjZkZmMzMzE1M2E2ZmNjYTRlNmQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAxNCAxNDozODowMCAyMDExICswMDAwCgogICAgRml4ZWQgYSBNaW5HVy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjcxZTE2ZDM4ZGRjOTkwMmJlNjEzZDM3NDk4ZWFhZDUyNTc1N2NkYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRmViIDEzIDE2OjI4OjE2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHN0YXRpYyBhcHBsaWNhdGlvbnMgdXNpbmcgbmV0LXNubXAtY29uZmlnIGFuZCB0aGUgLSpsaWJzIGZsYWdzIG9uY2UgbW9yZS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMWM0ZGVhMjViMGU1MWY1NDI1MTdkNTJjZDdiYWQ5NDFmOGQwMWVkNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRmViIDEzIDE2OjI4OjE2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHN0YXRpYyBhcHBsaWNhdGlvbnMgdXNpbmcgbmV0LXNubXAtY29uZmlnIGFuZCB0aGUgLSpsaWJzIGZsYWdzIG9uY2UgbW9yZS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMTNmZGY2YzQ5NmJhOTQ5MDg3MDJhYzE4ZmMwNWY5NzYyZjBmZjMxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAxMCAxNToxMzo1OSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24gNjQtYml0IHN5c3RlbXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTVkMzNmOTMwNDdmNzM3NjExMDJiNjQyZGZlYWE5M2ViYjI4NGNmMQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAxMCAxNToxMzo1OSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24gNjQtYml0IHN5c3RlbXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjMwMjYzMTZjNjgzMmIwNWJkMzY0OTI4ZTRiYzVmOTVhNzEyNTJiMQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAxMCAxNToxMzo1OSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24gNjQtYml0IHN5c3RlbXMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWQ1ZjdjMzdmODk5NjRjMWY3ZGQxNmU2MjJjZDYzYzYzYmQzMzU3NApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAxMCAxNTowNjo0NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMgcmVhZGluZyAvcHJvYy92bXN0YXQKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDEyOGRkZDRhZTU5MTliOWJmODJlMjQ0YTU3Mjk0MTE1Y2ZkMTg1OQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAxMCAxNTowNjo0NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMgcmVhZGluZyAvcHJvYy92bXN0YXQKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDI3MTMzNDI2NTRlZmM0MDk5ZjZhNjUzODAxODQ2YjMwMGJiZmE4NApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAxMCAxNTowNjo0NiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMgcmVhZGluZyAvcHJvYy92bXN0YXQKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgN2NlOGUyMjU3ODdlNGQwNzA5MmE2MzRiODAzZmJhNjM1NTc4NzYwZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgOCAxNzo0MTozNyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggZnJvbSBNYXJ0aW4gQnVjazogZG9uJ3QgYWx3YXlzIG9wZW4gc3RkZXJyIGFzIHRoZSBjYWxscyB0byBzbm1wX2xvZyBhbHJlYWR5IGRvIHRoaXMgYW5kIGl0IG1lc3NlcyB1cCB0aGUgYWdlbnQgd2hlbiBlbWJlZGRlZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMTE4Y2Q0MmJkYTFkNjBhODFmMGU0NDk1NjMxMTBmYThjMzg4OWUyYwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgOCAxNzo0MTozNyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggZnJvbSBNYXJ0aW4gQnVjazogZG9uJ3QgYWx3YXlzIG9wZW4gc3RkZXJyIGFzIHRoZSBjYWxscyB0byBzbm1wX2xvZyBhbHJlYWR5IGRvIHRoaXMgYW5kIGl0IG1lc3NlcyB1cCB0aGUgYWdlbnQgd2hlbiBlbWJlZGRlZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOThhMjNmMGM4ZjFkMDUyMjE4ZDI5NmFkMWZlZDU2OTJiYjBjNTQ3OApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgOCAxNzo0MTozNyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggZnJvbSBNYXJ0aW4gQnVjazogZG9uJ3QgYWx3YXlzIG9wZW4gc3RkZXJyIGFzIHRoZSBjYWxscyB0byBzbm1wX2xvZyBhbHJlYWR5IGRvIHRoaXMgYW5kIGl0IG1lc3NlcyB1cCB0aGUgYWdlbnQgd2hlbiBlbWJlZGRlZAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjQzZWFiMzIwMzFkN2E1OGZhZDQ4ODgzYWJhNjQ4YjAwMDMzOGRlNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgOCAxNzozNzowMSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZpeCBhIHN0cmxlbiBjYWxjdWxhdGlvbiBhcyBwb2ludGVkIG91dCBieSBLb25zdGFudGluIEJheWRhcm92CiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTkxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzY2QyNDIyMjM5NzcyMWNhNTUyMDNiNDE0NThkZjliYzNiYjViNjMzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiA4IDE3OjM3OjAxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRml4IGEgc3RybGVuIGNhbGN1bGF0aW9uIGFzIHBvaW50ZWQgb3V0IGJ5IEtvbnN0YW50aW4gQmF5ZGFyb3YKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGZmMzlmYTc3NWY4ZjZmMDQwN2JjNGM3ZmNmOGMxZGU4MzAxOTYwODAKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDggMTc6Mzc6MDEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXggYSBzdHJsZW4gY2FsY3VsYXRpb24gYXMgcG9pbnRlZCBvdXQgYnkgS29uc3RhbnRpbiBCYXlkYXJvdgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjBkNmJmMDNkNWZlNmRiZmNlNDQzMGYwYWYyMDQwZjAwY2UxNGU0NQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBGZWIgMyAyMjo0MjoyOSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMTcxODc4OiBVc2luZyBTTk1QdjMgY29udGV4dCBkb2VzIG5vdCB3b3JrCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMi1wYXRjaGVzQDE5OTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDFjZjljNDU2YjNjYTQzMTdkMWQ3ZDIyMGFkZWNjZDg0ZDA1MzVkZGIKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRmViIDMgMjI6NDI6MjkgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzE3MTg3ODogVXNpbmcgU05NUHYzIGNvbnRleHQgZG9lcyBub3Qgd29yawogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTkxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5ZWQ3YmE0MmZjMjI5NzcyMjlhNmU0MzFiMzA5MDMxZWY4ZjhjY2E0CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEZlYiAzIDIyOjQyOjI5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMxNzE4Nzg6IFVzaW5nIFNOTVB2MyBjb250ZXh0IGRvZXMgbm90IHdvcmsKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOWMwN2Q0ODU2MjE0NTgwN2Y3MjE4MGE3YjIxM2NjNTk5ZDhhNmJlNQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBGZWIgMyAyMjo0MjoyOSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMTcxODc4OiBVc2luZyBTTk1QdjMgY29udGV4dCBkb2VzIG5vdCB3b3JrCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDY5YzQwNzU1MzBjNjU3YTI4ZmE0NTI4M2U5NjRhM2MxYTEyZjk4MGUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxIDEzOjA3OjU1IDIwMTEgKzAwMDAKCiAgICBEb24ndCBjaGVjayBmb3IgMzIvNjRiaXQgd3JhcCBpbiBjYWxjdWxhdGVkIGVudHJpZXMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwYTQyMDAzZWIxOGZjMDUxMTA0OGQwYWMyNmU1ZGU0MjBiNGUxZGM0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMSAwOTo0MToyOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHRoZSBhZ2VudCB3cml0aW5nICdsb29rcyBsaWtlIGEgNjRiaXQgd3JhcCwgYnV0IHByZXYhPW5ldycgaW4gc3lzbG9nIHdoZW4gY29tcHV0aW5nIGlwU3lzdGVtU3RhdHMKICAgIAogICAgV2l0aG91dCB0aGUgbWVtY3B5LCBwcmV2X3ZhbHMtPnN0YXRzIGFuZCBuZXdfdmFscy0+c3RhdHMgY291bGQgZ2V0IGRpZmZlcmVudCwKICAgIHdoaWNoIGNvdWxkIG11Y2ggbXVjaCBsYXRlciAod2hlbiBhIGNvdW50ZXIgZ2V0cyBiaWdnZXIgdGhhbiAzMiBiaXRzKSByZXN1bHQKICAgIGluICdwcmV2IT1uZXcnIG1lc3NhZ2UgaW4gc3lzbG9nLiBUeXBpY2FsbHkgdGhpcyBoYXBwZW5zIGFmdGVyIGxvbmcgdGltZSBvZgogICAgdXB0aW1lIGFuZCBpdCBpcyB2ZXJ5IGhhcmQgdG8gcmVwcm9kdWNlLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5MDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZmZmYzMwMDJhMGY3NTgwY2I0NDFkZjc2MGJkM2RkNGI1NDkwMTVlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDEgMDk6NDE6MjggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB0aGUgYWdlbnQgd3JpdGluZyAnbG9va3MgbGlrZSBhIDY0Yml0IHdyYXAsIGJ1dCBwcmV2IT1uZXcnIGluIHN5c2xvZyB3aGVuIGNvbXB1dGluZyBpcFN5c3RlbVN0YXRzCiAgICAKICAgIFdpdGhvdXQgdGhlIG1lbWNweSwgcHJldl92YWxzLT5zdGF0cyBhbmQgbmV3X3ZhbHMtPnN0YXRzIGNvdWxkIGdldCBkaWZmZXJlbnQsCiAgICB3aGljaCBjb3VsZCBtdWNoIG11Y2ggbGF0ZXIgKHdoZW4gYSBjb3VudGVyIGdldHMgYmlnZ2VyIHRoYW4gMzIgYml0cykgcmVzdWx0CiAgICBpbiAncHJldiE9bmV3JyBtZXNzYWdlIGluIHN5c2xvZy4gVHlwaWNhbGx5IHRoaXMgaGFwcGVucyBhZnRlciBsb25nIHRpbWUgb2YKICAgIHVwdGltZSBhbmQgaXQgaXMgdmVyeSBoYXJkIHRvIHJlcHJvZHVjZS4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDBjOTlhZjI0MDQxNmJjZDZkNWM1MTU5NmMzMTBkNTdiMGFmZjRjNWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAxIDA5OjQxOjI4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdGhlIGFnZW50IHdyaXRpbmcgJ2xvb2tzIGxpa2UgYSA2NGJpdCB3cmFwLCBidXQgcHJldiE9bmV3JyBpbiBzeXNsb2cgd2hlbiBjb21wdXRpbmcgaXBTeXN0ZW1TdGF0cwogICAgCiAgICBXaXRob3V0IHRoZSBtZW1jcHksIHByZXZfdmFscy0+c3RhdHMgYW5kIG5ld192YWxzLT5zdGF0cyBjb3VsZCBnZXQgZGlmZmVyZW50LAogICAgd2hpY2ggY291bGQgbXVjaCBtdWNoIGxhdGVyICh3aGVuIGEgY291bnRlciBnZXRzIGJpZ2dlciB0aGFuIDMyIGJpdHMpIHJlc3VsdAogICAgaW4gJ3ByZXYhPW5ldycgbWVzc2FnZSBpbiBzeXNsb2cuIFR5cGljYWxseSB0aGlzIGhhcHBlbnMgYWZ0ZXIgbG9uZyB0aW1lIG9mCiAgICB1cHRpbWUgYW5kIGl0IGlzIHZlcnkgaGFyZCB0byByZXByb2R1Y2UuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzYjFkMzBjNzM5MTA1NWQ1MzY3NTk3ZDBkN2RjZTcxYWEyYTI4NGNkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzMSAyMjozOTozOCAyMDExICswMDAwCgogICAgYWRkcHJvdG90eXBlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhNjA4MTI4MjlmMmM5MzY5OGYwYzQyYTc5MDQ5YTU1MTMzYTA1OWE1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzMSAyMjozOTozOCAyMDExICswMDAwCgogICAgYWRkcHJvdG90eXBlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5MDE2NjQ2MjBjNDk4OGU1ZTlmNGJlNmYxZmRiOTM0ZGE5YjIzODUyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzMSAyMjozNzo1OCAyMDExICswMDAwCgogICAgY29uc3QganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5ZTMyNDYzNGJlN2IwZGMwMDg2MzQ5ZWI2YzBmNzU0Mjg4M2ViMTVkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzMSAyMjozNzo1OCAyMDExICswMDAwCgogICAgY29uc3QganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMjNhYTRkOTBkOTJmNWM0OTg2YThkY2EwYjE4MjUyM2RjNTg1OTBiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzMSAyMjozMDo1NCAyMDExICswMDAwCgogICAgZGlza2lvIGZvciBkcmFnb25mbHkKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTAzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDI4NTEzZjEyYTcyYTlhMGRlNGE5NTQ1MDQ3OWFjNTRhNjgxYWQ4YTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDMxIDIyOjMwOjU0IDIwMTEgKzAwMDAKCiAgICBkaXNraW8gZm9yIGRyYWdvbmZseQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMGQ0ZjhkNjExOWIyZWI2ZmRmNTY5MDkwYzJhMzRmYzk2NDI0YzBmNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMzEgMjI6Mjg6MzAgMjAxMSArMDAwMAoKICAgIHByb3Blcmx5IG5hbWUgaW5pdGFsaXplciBmdW5jdGlvbiBmb3IgY3B1X2tpbmZvCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1OTQzYzU5NDQxMzkzZWJkY2Q5YjFjYjZiODMyYTQyODAyNGY5MTQ1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzMSAyMjoyODozMCAyMDExICswMDAwCgogICAgcHJvcGVybHkgbmFtZSBpbml0YWxpemVyIGZ1bmN0aW9uIGZvciBjcHVfa2luZm8KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU2OTY5Yjk5M2IyMDk1MWNjZDgyMzJlYmQ1MTAxYzY2OTRlOTg4N2YKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDMwIDAxOjA2OjIxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTUxODk3OiBmZCBsZWFrIHcvIC9wcm9jL3BhcnRpdGlvbnMKICAgIHJlYWQgaW4gZGlza2lvCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMi1wYXRjaGVzQDE5ODk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDU1ZWVhMzcyNDFhNTk5ODk4Y2U2MWYzNjRhNmEwN2Q4NTYyMDJmYWQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDMwIDAxOjA2OjIxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTUxODk3OiBmZCBsZWFrIHcvIC9wcm9jL3BhcnRpdGlvbnMKICAgIHJlYWQgaW4gZGlza2lvCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDdmMmM3ZmZhMDIwZWE1N2Y4NTRhMjcxMjlhNjgzZWNjYTNiZDY5YzYKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDMwIDAxOjA2OjIxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTUxODk3OiBmZCBsZWFrIHcvIC9wcm9jL3BhcnRpdGlvbnMKICAgIHJlYWQgaW4gZGlza2lvCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDkwNTEzMDM0MDkzNDFmOGIxNTFhY2QzM2Q1M2NhNzYzYzRlODVkMGUKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDMwIDAxOjA2OjIxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTUxODk3OiBmZCBsZWFrIHcvIC9wcm9jL3BhcnRpdGlvbnMKICAgIHJlYWQgaW4gZGlza2lvCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU2M2RhNzliMWI2MmI3YjA2MWMwNWM0ZTdhMmFkODM4NmI0NzY2MWQKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSmFuIDI5IDIzOjM2OjI5IDIwMTEgKzAwMDAKCiAgICBORVdTOiBzbm1wZDogQlVHOiAzMTY2NTY4OiBoclN5c3RlbVByb2Nlc3NlcyBtaXNzaW5nIGluIDUuNi81LjYuMQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg5OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3OTFkNDIwZTQ4NzRkMDNhY2MyNTM3NGY3OWViMmFhMTlkYjcyYTljCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDI3IDA5OjM1OjI0IDIwMTEgKzAwMDAKCiAgICBBZnRlciB0ZW4geWVhcnMgaW50ZW5zaXZlIHVzZSwgYW4gImV4cGVyaW1lbnRhbCIKICAgIGZlYXR1cmUgY2FuIHByb2JhYmx5IGJlIHJlbGVhc2VkIGZvciBnZW5lcmFsIHVzZS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgY2VlMjU0MjZiNGNjYzU5YmQzZDU5MmE3MzE4MmNhZjc2MDMwMTRkOApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAyNyAwOTozNToyNCAyMDExICswMDAwCgogICAgQWZ0ZXIgdGVuIHllYXJzIGludGVuc2l2ZSB1c2UsIGFuICJleHBlcmltZW50YWwiCiAgICBmZWF0dXJlIGNhbiBwcm9iYWJseSBiZSByZWxlYXNlZCBmb3IgZ2VuZXJhbCB1c2UuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDA4OTU4ZjY5YWM2YTg0NTBjNzEzM2MwNTJjNDdjOTBiYTM1ZWU5ZWIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMjcgMDk6MzU6MjQgMjAxMSArMDAwMAoKICAgIEFmdGVyIHRlbiB5ZWFycyBpbnRlbnNpdmUgdXNlLCBhbiAiZXhwZXJpbWVudGFsIgogICAgZmVhdHVyZSBjYW4gcHJvYmFibHkgYmUgcmVsZWFzZWQgZm9yIGdlbmVyYWwgdXNlLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA4YTA2ZjlkNGQ5YjA4OTBhNWY5M2FmMDBjZjhhZTRhNDVkYTgzY2ZjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAyNiAxNjo1MDo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IG1ha2UgdGhlIG1pYjJjIGZvcmVhY2ggcmFuZ2VzIHdvcmsgYXMgYWR2ZXJ0aXNlZCBpbiB0aGUgY29tbWVudHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTg5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwY2YxYmE2Y2E1ZDVhZDMyNzhjYWE4ODc5YmM0NmQyNWVkMWQ1NTU0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAyNiAxNjo1MDo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IG1ha2UgdGhlIG1pYjJjIGZvcmVhY2ggcmFuZ2VzIHdvcmsgYXMgYWR2ZXJ0aXNlZCBpbiB0aGUgY29tbWVudHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzYmJkZTVmM2NmOGRmZjk5YmQ4MDZmMWZjZGFhMzg0ZWNlYjE4ODU3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAyNiAxNjo1MDo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IG1ha2UgdGhlIG1pYjJjIGZvcmVhY2ggcmFuZ2VzIHdvcmsgYXMgYWR2ZXJ0aXNlZCBpbiB0aGUgY29tbWVudHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzZTk3MmRlOTc0MjdiNjY0ODUyMjU4YWVjZWNhMmE0ZDk1Y2MzMGI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMjYgMDk6MTI6MjAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gY291bnRpbmcgcHJvY2Vzc2VzIGZvciBVQ0QtU05NUC1NSUI6OnByVGFibGUKICAgIAogICAgVGhlIFhYIHByb2Nlc3MgY2FuIGV4aXQgYWZ0ZXIgZm9wZW4oL3Byb2MvWFgvc3RhdHVzKSBhbmQgYmVmb3JlIGZnZXRzKCkgZnJvbSBpdC4gc25tcGQgc2hvdWxkIGNvbnRpbnVlIHdpdGggb3RoZXIgcHJvY2Vzc2VzIGFuZCBub3QgdG8gc3RvcC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGJjZWUwMzdjNzFmMDA2ZTJiZTNiNDQ2ZTNlODFjNTA5ZDQ5YzY1Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAyNiAwOToxMjoyMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiBjb3VudGluZyBwcm9jZXNzZXMgZm9yIFVDRC1TTk1QLU1JQjo6cHJUYWJsZQogICAgCiAgICBUaGUgWFggcHJvY2VzcyBjYW4gZXhpdCBhZnRlciBmb3BlbigvcHJvYy9YWC9zdGF0dXMpIGFuZCBiZWZvcmUgZmdldHMoKSBmcm9tIGl0LiBzbm1wZCBzaG91bGQgY29udGludWUgd2l0aCBvdGhlciBwcm9jZXNzZXMgYW5kIG5vdCB0byBzdG9wLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4OTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmU1ZjU2NDBkYjk5OTc4M2I4Mzk4MTE2Zjg0NjJhNWIwYTMyNDdlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE5IDEzOjU3OjQ3IDIwMTEgKzAwMDAKCiAgICBNYWtlIHVzIGNvbXBhdGlibGUgd2l0aCBycG0tNC45LCBycG1HZXRGaWxlc3lzdGVtTGlzdCBkb2VzIG5vdCBleGlzdCBhbnltb3JlLCBzbyB0aGUgY29uZmlndXJlIHNjcmlwdCBzaG91bGQgbm90IGNoZWNrIGl0LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4OTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgODQyNGVmZDk3ZTAwMmQ1MzRjODFkNGJjNjg3MzI5ZDcyM2E5ZTE4YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTkgMDY6MzE6MDEgMjAxMSArMDAwMAoKICAgIGRpc2tJT0xBeCByZXF1aXJlcyBleHAgd2hpY2ggbWF5IHJlcXVpcmUgLWxtCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzMjMzNDAzODk3MGM1YWY2YTFjMTk4MTUyMDRkMWNkNDg0MDUyNDkzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOSAwNjoyMDo0NSAyMDExICswMDAwCgogICAgRGVmaW5lIERSQUdPTkZMWUlECiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2YTBjMzUyZTkxY2ZjZTk1ZDRkNGNiYmU1NTU4OTVjMjY2ZGE3NDU2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOSAwNjoyMDo0NSAyMDExICswMDAwCgogICAgRGVmaW5lIERSQUdPTkZMWUlECiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1YjcwMmIwMjRiNjAxNzZkN2Y1Njk5YjkyZTU1ZGE1MGE4ZGVhZTcxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxOCAyMjowMToyNCAyMDExICswMDAwCgogICAgdHlwbwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4ODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYmNiNTk3MjY4NzQ1MDBiYTM3MDRmMGI0ODdhMDM5MDgzNTgyMmNhOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTggMjE6NTQ6MjQgMjAxMSArMDAwMAoKICAgIEZpbmQgcHJvcGVyIGlmLW1pYiBpbnRlcmZhY2UgZm9yIE5ldEJTRAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4ODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTdjZTM4NTg2OThiM2JmMGUxMzM4OTk0MGE1OGM3YTNkZjBmZjI2OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDE0IDEyOjI4OjQwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBSb2JlcnQgU3Rvcnk6IGZpeGVkIGFkZGluZyBuZXcgYWRkcmVzc2VzIHRvIGlwQWRkcmVzc1RhYmxlCiAgICAKICAgIExvbmcgdGltZSBhZ28sIHRoZXJlIHdhcyBhIGJ1Z3JlcG9ydFsxXSByZWdhcmRpbmcgaXBBZGRyZXNzVGFibGUgb24KICAgIG5ldC1zbm1wLWNvZGVycyBsaXN0IGFuZCByc3RvcnkncyBleHBlcmltZW50YWwgcGF0Y2ggd2l0aG91dCBhbnkgZmVlZGJhY2suCiAgICBOb3cgSSd2ZSBnb3QgZmV3IGNvbXBsYWludHMgdGhhdCBTTk1QIFNFVCBvbiBpcEFkZHJlc3NUYWJsZSBwcm9kdWNlcyB0aGUKICAgIHNhbWUgZXJyb3JzIGFuZCBndWVzcyB3aGF0LCB0aGUgcGF0Y2ggZml4ZXMgdGhlbS4KICAgIAogICAgWzFdOiBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL2ZvcnVtLnBocD90aHJlYWRfbmFtZT0yMDA2MDkyMDEzNDkzNS4zNWIzNmVkNiU0MGRldi5mdXR6Lm9yZyZmb3J1bV9uYW1lPW5ldC1zbm1wLWNvZGVycwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4ODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjFiZGRlYzJjMjc2Y2JhZGMyNzYxYzQzOGQ2ZTljMGRlY2YxMWViZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDE0IDEyOjI4OjQwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBSb2JlcnQgU3Rvcnk6IGZpeGVkIGFkZGluZyBuZXcgYWRkcmVzc2VzIHRvIGlwQWRkcmVzc1RhYmxlCiAgICAKICAgIExvbmcgdGltZSBhZ28sIHRoZXJlIHdhcyBhIGJ1Z3JlcG9ydFsxXSByZWdhcmRpbmcgaXBBZGRyZXNzVGFibGUgb24KICAgIG5ldC1zbm1wLWNvZGVycyBsaXN0IGFuZCByc3RvcnkncyBleHBlcmltZW50YWwgcGF0Y2ggd2l0aG91dCBhbnkgZmVlZGJhY2suCiAgICBOb3cgSSd2ZSBnb3QgZmV3IGNvbXBsYWludHMgdGhhdCBTTk1QIFNFVCBvbiBpcEFkZHJlc3NUYWJsZSBwcm9kdWNlcyB0aGUKICAgIHNhbWUgZXJyb3JzIGFuZCBndWVzcyB3aGF0LCB0aGUgcGF0Y2ggZml4ZXMgdGhlbS4KICAgIAogICAgWzFdOiBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL2ZvcnVtLnBocD90aHJlYWRfbmFtZT0yMDA2MDkyMDEzNDkzNS4zNWIzNmVkNiU0MGRldi5mdXR6Lm9yZyZmb3J1bV9uYW1lPW5ldC1zbm1wLWNvZGVycwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4ODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjVmNGZlZDMxMzcxNGM0MmNhY2NiNjdhNWY2NzFkYjYyZWU0NmVmZApBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDE0IDA2OjI1OjU5IDIwMTEgKzAwMDAKCiAgICByZW1vdmUgY29tcGxldGVseSB1c2VsZXNzIGFuZCBub25zZW5zaWNhbCBjb2RlCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGE3MDk2NmEyZjhiMzY0OWVhMWM3MTdiNWU4ODM1ZWU4NTUxMGJmNmUKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAxNCAwNjoyNTo1OSAyMDExICswMDAwCgogICAgcmVtb3ZlIGNvbXBsZXRlbHkgdXNlbGVzcyBhbmQgbm9uc2Vuc2ljYWwgY29kZQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2NGFhZDhlOTFjYjRlMGMxZjYyYzEyZGU5NmUxYTY0ODY2MGE1NmM1CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEzIDE1OjU2OjM3IDIwMTEgKzAwMDAKCiAgICBFbnN1cmUgcmVsZWFzZXMgYXJlIGluc3RhbGxlZCB0byB0aGUgY29ycmVjdCBwYXRoIHdpdGhpbiB0aGUgL3RhZ3MgU1ZOIHRyZWUKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTc1NDU4ZmU1ZTg0YmEyOTIwOWM0NzdiYmY3NDIzYzkyMDMzZDVhZQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMyAxNTo1NjozNyAyMDExICswMDAwCgogICAgRW5zdXJlIHJlbGVhc2VzIGFyZSBpbnN0YWxsZWQgdG8gdGhlIGNvcnJlY3QgcGF0aCB3aXRoaW4gdGhlIC90YWdzIFNWTiB0cmVlCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGU0ZDk2ZGNlYzA5MzM4MjA3MzNmYTU4OWNlZTYyODc1ZWRmNmNkZTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTMgMTU6MTU6NTcgMjAxMSArMDAwMAoKICAgIFJlbW92ZSBDKysgY29tbWVudHMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNGVjOGI0MzFiNThjNWNkZWQxNjc5NGE0YmU5MmY4ODM3NjkzOTFhOApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMyAxNToxNTo1NyAyMDExICswMDAwCgogICAgUmVtb3ZlIEMrKyBjb21tZW50cwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzYmM0ODJhOTEwNGJhNjlkY2IyYmYxZjZmNTczNzQyOTc3Mzc2YzcwCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEzIDEzOjE3OjQxIDIwMTEgKzAwMDAKCiAgICBGaXggYnJva2VuIHBhdGNoCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODY0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGNhN2FlNWMzZjI5MDE0MDY2ZDU1NjYyZjU5ZTMzODI1ZDFmNzNlNDcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTMgMTI6MTQ6MTkgMjAxMSArMDAwMAoKICAgIENvbmZpZ3VyZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTRkZDFiNGRhZmI4OTcwMDQxYzFmMzhjZjI2ZGEyYTAwNmU0ZGRlMwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMyAxMjoxNDoxOSAyMDExICswMDAwCgogICAgQ29uZmlndXJlIGZpeGVzIGZvciBEcmFnb25GbHkgc3VwcG9ydAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhNTE0MTE4MDQ3OTUwYTZkYTNlODJjYzVkMDdkNDUzMGNmZWY4Mjg2CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEzIDEyOjA0OjUzIDIwMTEgKzAwMDAKCiAgICBDb2RlIGZpeGVzIGZvciBEcmFnb25GbHkgc3VwcG9ydAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5ODZiMmRlZGE1NzkyYTI0NGZmZGE1ZTAwNzQxMmJiNWU0M2E2NzNmCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEzIDEyOjA0OjUzIDIwMTEgKzAwMDAKCiAgICBDb2RlIGZpeGVzIGZvciBEcmFnb25GbHkgc3VwcG9ydAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxOWY5NzA2OTlhYTA2NjM5Mzc4ODYxYjZkNmE1ZTI3ZjRjM2ZjOTY3CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEzIDExOjMzOjE0IDIwMTEgKzAwMDAKCiAgICBGaXggdHlwbwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzNmU1ZDZkYjliOWJjZjMxYWQ3NTRkMjA3YWI4YTU4OWIxMjU5ZTQwCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEzIDExOjMzOjE0IDIwMTEgKzAwMDAKCiAgICBGaXggdHlwbwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhYmFmMDI1NDExMWFhYzA4NTNkM2VjNDM0N2IwZmZjODQzZGFlYzIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMiAxOToyMDoyMyAyMDExICswMDAwCgogICAgR2V0IHJpZCBvZiBhIGNvbXBpbGVyIHdhcm5pbmcgaW4gYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldGVycy5jLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYmU4MDRjN2JlODQ3NjkyY2I4MDhjMTllZmMwNjAzYmI1NjYwZmQ1YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTIgMTk6MjA6MjMgMjAxMSArMDAwMAoKICAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nIGluIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDRkYzZhYTY4NmRjN2Y2YmIzNmMwNTQ1MzJlZjI2NjJiMjYyY2U1YzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDEyIDE5OjA0OjM5IDIwMTEgKzAwMDAKCiAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoKSB0aGF0IHdhcyBpbnRyb2R1Y2VkCiAgICBpbiByMTk4MDggKCJzbm1wZDogUEFUQ0hFUzogMjk3NTI1NDogQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucyIpLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmMmQ3MzQ1NGJhMDczNDdiNDFjZmVkNzc1MWVjNmY5MjFiZGJkODAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMiAxOTowNDozOSAyMDExICswMDAwCgogICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaCkgdGhhdCB3YXMgaW50cm9kdWNlZAogICAgaW4gcjE5ODA4ICgic25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMiKS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4NTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDY2Zjg4ZmY0ZjBhNjY5ZjVjNWRlNzAyN2UxZWIwYzdjZDlhYWZiYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTIgMTk6MDQ6MzkgMjAxMSArMDAwMAoKICAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2gpIHRoYXQgd2FzIGludHJvZHVjZWQKICAgIGluIHIxOTgwOCAoInNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zIikuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDhmNThkYWUyYTFiM2U3NDVlZTFlOGI5NDRmN2VhN2U1YWUxYzRjZjAKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMiAxNTowMzoxMSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcDogcGF0Y2g6IDMwOTY3MjU6IHN5c09SVGFibGUgcmVnaXN0YXRpb24gZm9yIG5vdGlmaWNhdGlvbiBsb2cgbWliCiAgICAKICAgICAgb3JpZ2luYWwgcGF0Y2ggZml4ZWQgc2V2ZXJhbCBpc3N1ZXMsIG90aGVyIHBhcnRzIGFwcGxpZWQgZWFybGllcgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA4OTA1Yzk4ZGI2ZGU4ODBiM2JjOTkyZWRkOTRlZjcwZmE0ZDUxNzczCkF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTIgMTU6MDM6MTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXA6IHBhdGNoOiAzMDk2NzI1OiBzeXNPUlRhYmxlIHJlZ2lzdGF0aW9uIGZvciBub3RpZmljYXRpb24gbG9nIG1pYgogICAgCiAgICAgIG9yaWdpbmFsIHBhdGNoIGZpeGVkIHNldmVyYWwgaXNzdWVzLCBvdGhlciBwYXJ0cyBhcHBsaWVkIGVhcmxpZXIKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMTU5NTMwZWE1ZmUzYWQ2MjNkYjgyMWM4Yjc5M2NkMDQ2NWRhYjBiMgpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDEyIDE0OjM3OjA5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogTUlCLXNwZWNpZmljIGxlYWstYXQtZXhpdCBmaXhlcy4KICAgIAogICAgICBiYWNrcG9ydCBhcHBsaWNhYmxlIHBhcnRzIG9mIHIxOTUzMyBmcm9tIHRydW5rCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDk1NmM4NDk1MzBlNTljMDQ1MWQ5NjQzMjQ3ZTQzNDhlMmFiMDk1ODQKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMiAxNDozNzowOSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IE1JQi1zcGVjaWZpYyBsZWFrLWF0LWV4aXQgZml4ZXMuCiAgICAKICAgICAgYmFja3BvcnQgYXBwbGljYWJsZSBwYXJ0cyBvZiByMTk1MzMgZnJvbSB0cnVuawogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAxNjVjOGJhZGRhNjk3MDY3ZGY4ZmFhYzBkYjEyNDU1YjgxMmNjNWE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDExIDE2OjA0OjE2IDIwMTEgKzAwMDAKCiAgICBSZWNvZ25pc2UgQWdlbnQgT0lEIGZvciBEcmFnb25GbHkgc3lzdGVtcyAoYW5kIGdlbmVyYWwgdGlkeWluZyB1cCkKICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICBRbjogU2hvdWxkIHRoZXNlIGJlIHVwZGF0ZWQgdG8gcmVmZXIgdG8gTmV0LVNOTVAgKHJhdGhlciB0aGFuIFVDRCk/CiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDliNmQyNzZhMmNiYzNmMTg2NGFlOTZhZTFiZDdhYTQzMDY0MmM4NjUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTY6MDQ6MTYgMjAxMSArMDAwMAoKICAgIFJlY29nbmlzZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zIChhbmQgZ2VuZXJhbCB0aWR5aW5nIHVwKQogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIFFuOiBTaG91bGQgdGhlc2UgYmUgdXBkYXRlZCB0byByZWZlciB0byBOZXQtU05NUCAocmF0aGVyIHRoYW4gVUNEKT8KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjJmYWViMGVjZDZjMzBhMDNmOWRlMmRhZjM3MzI1OTEwZDJmZDAwZgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxNjowMToyMiAyMDExICswMDAwCgogICAgRGVmaW5lIEFnZW50IE9JRCBmb3IgRHJhZ29uRmx5IHN5c3RlbXMKICAgIChhbmQgZ2VuZXJhbCB0aWR5aW5nIHVwKQogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGRkMDFkZWJhN2ZlZDU4NTQ5ZjM0NzgwOTFhNzk0MTEyMDc1ZjkyOWYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTY6MDE6MjIgMjAxMSArMDAwMAoKICAgIERlZmluZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zCiAgICAoYW5kIGdlbmVyYWwgdGlkeWluZyB1cCkKICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhNmU1MzkwOGJlNDhlOGIwZmVhNWFhMzk2MWRlZDNkNzE4NGRjNDYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDExIDE2OjAxOjIyIDIwMTEgKzAwMDAKCiAgICBEZWZpbmUgQWdlbnQgT0lEIGZvciBEcmFnb25GbHkgc3lzdGVtcwogICAgKGFuZCBnZW5lcmFsIHRpZHlpbmcgdXApCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMWNiMWMyMGVjYWEyNTRkMTI0NjFhNmEyYzAzNWY1NWE5MDM0YmM5OApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxNToyNzo1MCAyMDExICswMDAwCgogICAgTmV0QlNEIERyYWdvbkZseSBzdXBwb3J0IGZvciBVRFAgJiBUQ1AgdGFibGVzCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMjUzNDljZjgzOWNmY2YxY2M3ZTgzZWNkYmVjYTU3NjFjYjkxZWE3YQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxNToyNzo1MCAyMDExICswMDAwCgogICAgTmV0QlNEIERyYWdvbkZseSBzdXBwb3J0IGZvciBVRFAgJiBUQ1AgdGFibGVzCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYThiZTgwNDEyZmI0N2VkZTVhMjViNWE2YWM2MDZmMzIzM2JmYTg5YwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxNDo0MToyNiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogTmV0QlNEOiBEcmFnb25GbHkgc3VwcG9ydAogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGI0NDNjYmQ4NWE2NWUzNTVmZjAxMDFmZTY4MTQyZDQ5YjhjYzRlNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTQ6NDE6MjYgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IE5ldEJTRDogRHJhZ29uRmx5IHN1cHBvcnQKICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwOTMyYjA0OTEwZWM2NzAxMTJlMjE2ZTY0Nzg5Y2EyZjRiNWIwNzYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDExIDE0OjM2OjI1IDIwMTEgKzAwMDAKCiAgICBOZXRCU0QvRHJhZ29uRmx5ICdzdHJ1Y3QgaWZuZXQnIHJlcXVpcmVzIEtFUk5FTCwgYnV0IG5vdCBfS0VSTkVMCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgICAgICAoSSBob3BlIEkndmUgZ290IHRoaXMgb25lIHJpZ2h0ISkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTUyZjhjM2Y4NTYzMTg5YmQwZDFkZmU0OWQwYzgwOWVmMDhkN2RlMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxNDozNjoyNSAyMDExICswMDAwCgogICAgTmV0QlNEL0RyYWdvbkZseSAnc3RydWN0IGlmbmV0JyByZXF1aXJlcyBLRVJORUwsIGJ1dCBub3QgX0tFUk5FTAogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAgICAgKEkgaG9wZSBJJ3ZlIGdvdCB0aGlzIG9uZSByaWdodCEpCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGM3NTg4ZTg3MWJmYTkxNDI2OTg0MDIxNjkwYWZkYTc2YjIzMWY1ZmIKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxNDoxNDowNyAyMDExICswMDAwCgogICAgcmV2ZXJ0IFBBVENIIDMwNTM0MzY6IHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2VzcyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKICAgIAogICAgICB0aGUgYnVnIHRoaXMgaXMgZml4aW5nIHdhcyBpbnRyb2R1Y2VkIGluIHIxNzcxOSwgYW5kIGZpeGVkIGluIHIxNzg2MS4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgY2EyNzBiOTU0OTVkNjM3YmNhOWQyMTY1OGMwMjk1ZDVlMGNiZTNiNgpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDExIDE0OjE0OjA3IDIwMTEgKzAwMDAKCiAgICByZXZlcnQgUEFUQ0ggMzA1MzQzNjogdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzIGludmFsaWQgbWVtb3J5IGFjY2VzcwogICAgCiAgICAgIHRoZSBidWcgdGhpcyBpcyBmaXhpbmcgd2FzIGludHJvZHVjZWQgaW4gcjE3NzE5LCBhbmQgZml4ZWQgaW4gcjE3ODYxLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhZTk5NzA0ZjVjZDliODVlOTNmZTRhOGRkZjE4ZjE3MDBmNzMwNjJmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTM6MzQ6MjIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IGZyb20gQmlsbCBGZW5uZXI6IGZpeCBzZW5kaW5nIG9mIFVEUCByZXNwb25zZXMgZnJvbSBtdWx0aWhvbWVkIGFnZW50cy4KICAgIAogICAgVHJ5IHRvIHNlbmQgdGhlIHJlc3BvbnNlIGFzIGl0IHdhcyBiZWZvcmUgTmV0LVNOTVAgNS42IChhc3N1bWluZyB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdCB3YXMgdW5pY2FzdCkgYW5kIG9ubHkgaWYgaXQgZmFpbHMgdHJ5IHRvIHNldCBpZl9pbmRleCAodGhlIHJlcXVlc3QgbXVzdCBiZSBicm9hZGNhc3QpLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzNmZTJmNzIwMGZiMDBiZTFmM2MyMzIwNTE5MzhlYTg3ODQ3YzI1OApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxMzoyMjoxMCAyMDExICswMDAwCgogICAgUmVhbGx5IGhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJwogICAgKG1pc3NpbmcgZWxlbWVudCBmcm9tIFNWTiByZXZpc2lvbiAxOTg0MSkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjQ4M2M5Yjk5ZGUwMzRlOThhOTE0ODlmMmM2NWNmYWQ5YWM4ODM2ZgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxMzoyMjoxMCAyMDExICswMDAwCgogICAgUmVhbGx5IGhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJwogICAgKG1pc3NpbmcgZWxlbWVudCBmcm9tIFNWTiByZXZpc2lvbiAxOTg0MSkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNWIxMGI0YjBjODQ0NGIwNDMyZTFmY2I1YjMzNWQ4ODViMDFmNDg3MwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxMjoyNDoxMiAyMDExICswMDAwCgogICAgQWRkaXRpb25hbCBoZWFkZXJzIHdoZW4gdGVzdGluZyBmb3IgSVB2NiBoZWFkZXJzCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNGFlYmJmZjcwN2JmMGNkNGI1MTcyNDc0MTQzYWExYjMwMmMzMWJlZgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxMjoyNDoxMiAyMDExICswMDAwCgogICAgQWRkaXRpb25hbCBoZWFkZXJzIHdoZW4gdGVzdGluZyBmb3IgSVB2NiBoZWFkZXJzCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzQwZWQ2ZWUzOTg0MGYzNzI5ZjkzZWU3ZjNjNzkyZGRlOTIyNTcwZQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxMjoyNDoxMiAyMDExICswMDAwCgogICAgQWRkaXRpb25hbCBoZWFkZXJzIHdoZW4gdGVzdGluZyBmb3IgSVB2NiBoZWFkZXJzCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2Y0M2ZjZWRmYWIwMTNhZGI2MmJiZGM5MTljNTE5ZDAyM2RmOWNmMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxMjoxNDoyNSAyMDExICswMDAwCgogICAgTWlzc2luZyB0eXBlIHVuZGVyIGRhcndpbgogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDk2ZDEzMWY5YTY2YzMzNGE1N2NhNTA0YTAyNjk1MjNiZDAxNmE5NjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTI6MTQ6MjUgMjAxMSArMDAwMAoKICAgIE1pc3NpbmcgdHlwZSB1bmRlciBkYXJ3aW4KICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmMDg5MDUyZDY5MDM2ZTMyODdhNWY0NTI1YjM4ODU1YTBjMWE2NjMxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDExIDEyOjEwOjU2IDIwMTEgKzAwMDAKCiAgICBOZXRCU0Qgc3VwcG9ydCBmb3IgRGlzayBJL08gc3RhdHMKICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzNTU3ZWY3MGYwY2E4NjE3ZDc4N2I0YmZjMWJmN2FkOTFiZTAyMDJmCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDExIDEyOjAxOjI3IDIwMTEgKzAwMDAKCiAgICBIYW5kbGUgc3lzdGVtcyB3aXRoICdzdHJ1Y3QgdGltZXNwZWMgaWZuZXQuaWZfbGFzdGNoYW5nZScgKHJhdGhlciB0aGFuIHN0cnVjdCB0aW1ldmFsKQogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDc5ZThiM2Y5NThhOTc3ZDVlOWNlYjk5NDgxNTQ0NjY1MmMwODlmZGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTI6MDE6MjcgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJyAocmF0aGVyIHRoYW4gc3RydWN0IHRpbWV2YWwpCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNWFhM2EzMzYyMWRmODliZjFmNTU2N2UxY2Q5YTY2NzdhZTlmMjBkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMSAxMToyNzowNiAyMDExICswMDAwCgogICAgUHVsbCBpbiBrZXJuZWxfbmV0YnNkIG1vZHVsZSB3aGVuIHJlcXVpcmVkCiAgICBbQmFzZWQgb24gZml4IGZyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIzMjlkYzlmZmM2YTdkMTRjY2IwMjc3Zjc2M2NmZGE3NTBhNTdlY2EKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTE6Mjc6MDYgMjAxMSArMDAwMAoKICAgIFB1bGwgaW4ga2VybmVsX25ldGJzZCBtb2R1bGUgd2hlbiByZXF1aXJlZAogICAgW0Jhc2VkIG9uIGZpeCBmcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3YjU3YmRiNTE1NDcxNjEyMzk2YzVmNzExYjlmZTA0YTY5ZGEwZDUwCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDExIDEwOjM2OjA4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBOZXRCU0Q6IFJldHJpZXZlIE1JQi1JSSBuZXR3b3JrIHN0YXRpc3RpY3MgdmlhIHN5c2N0bAogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDgzYjFjYWI4YjhkY2JjYWViMWE2OGQwM2NiMGUwYzRjMTk2OTY1NjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTEgMTA6MzY6MDggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IE5ldEJTRDogUmV0cmlldmUgTUlCLUlJIG5ldHdvcmsgc3RhdGlzdGljcyB2aWEgc3lzY3RsCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZDUyMTIxZDdjOTVhNmVmMmFmZTg2YzJiYmM0MzVmNGU0OWM3ZjI4YgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxMCAxNjo1NjoxMSAyMDExICswMDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgogICAgKFRoZSBwYXRjaCBmcm9tIHRoZSBOZXRCU0QgYXJjaGl2ZSBhcHBlYXJzIHRvIGJlIGVzc2VudGlhbGx5IHRoZQogICAgc2FtZSBhcyB0aGUgZXF1aXZhbGVudCBjb2RlIGZyb20gdGhlIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWEwNWYzOWQyNzFlMzZlNGExZDFmMDE4ZTY1ZmQxODkyMDIxOWY4YwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxMCAxNjo1NjoxMSAyMDExICswMDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgogICAgKFRoZSBwYXRjaCBmcm9tIHRoZSBOZXRCU0QgYXJjaGl2ZSBhcHBlYXJzIHRvIGJlIGVzc2VudGlhbGx5IHRoZQogICAgc2FtZSBhcyB0aGUgZXF1aXZhbGVudCBjb2RlIGZyb20gdGhlIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmQ5NmJlNzBlYjdjYjQ2ZTI4OThjOTU3ZWQ4NzY3NjcwNmE2ZDZkZgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxMCAxNjo1NjoxMSAyMDExICswMDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgogICAgKFRoZSBwYXRjaCBmcm9tIHRoZSBOZXRCU0QgYXJjaGl2ZSBhcHBlYXJzIHRvIGJlIGVzc2VudGlhbGx5IHRoZQogICAgc2FtZSBhcyB0aGUgZXF1aXZhbGVudCBjb2RlIGZyb20gdGhlIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMzBmNjgzNmQwNDRjMzNhNTU5NWI2MmQxNmZmYzU5NmYwYWMyYzkwYQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxMCAxNjo1NDowMiAyMDExICswMDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDFhNmFkMTk3MDUwNjlmYzhjYjRmNzBjMzBjOTYyYWYzOGQ1NDFkMjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTAgMTY6NTQ6MDIgMjAxMSArMDAwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBkYXJ3aW4KICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3NGQzMGI2MzE0NjdhYzE3NzhlYzcxMjMxYzU1YTNjYzg1OGE1YzZhCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDEwIDE2OjU0OjAyIDIwMTEgKzAwMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgZGFyd2luCiAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjRmZDAxYWEwNzRlNGI3NDlhOTZmOWNhNDM5Mjg5ZjM4NGNiODBjMwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxMCAxNDo1NTo1NyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogTmV0QlNEOiBVcGRhdGUgbWVtb3J5IGFuZCBDUFUgc3RhdGlzdGljcyBoYW5kbGluZwogICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGNlODU0ZDE5NjM1ODIxYWVhMWE4Y2Y1ZjkwOTVlMTQwNjhmM2ZiOWIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTAgMTQ6NTU6NTcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IE5ldEJTRDogVXBkYXRlIG1lbW9yeSBhbmQgQ1BVIHN0YXRpc3RpY3MgaGFuZGxpbmcKICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5OGMzOWI2ODc2ZGQ1MzBjOWFjZTc2YTg2ZTkxNzIzNjMxZmVhNjllCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDEwIDE0OjIyOjQ0IDIwMTEgKzAwMDAKCiAgICBGaXggZGl2aWRlLWJ5LXplcm8gZXJyb3IgaW4gQ1BVIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3MKICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiNjFkZGM0ZmM2ZGNiMzMxYzY5MjFjODI1YjkzYjYwYzhiMjU3ZmI0CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDEwIDE0OjIyOjQ0IDIwMTEgKzAwMDAKCiAgICBGaXggZGl2aWRlLWJ5LXplcm8gZXJyb3IgaW4gQ1BVIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3MKICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA4YTQ5Y2FkYjVlMmE4ZTRmMWEzZjIwYmY3MmI5ZGI0YTA0ZmEzMGM5CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDkgMjI6NTQ6NTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IE9wZW5CU0Q6IFVwZGF0ZSBTV1J1biBjb2RlIHRvIHVzZSBrdm1fZ2V0cHJvYzIKICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMjcxNjE5MzJhM2NjYzI4ZmMyNjQyN2M3NjQwOGI4NmYzYjcwODAwMwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEphbiA5IDIxOjMwOjM4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBidWlsZDogT3BlbkJTRDogRml4IG9yZGVyIG9mIGhlYWRlcnMgd2hlbiBjaGVja2luZyA8bmV0aW5ldC9pbl9wY2IuaD4KICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOGQyOWQ0MGRlNGJhNWYyNTdmNmJmNDZlMmIzOWIxMWIyNzgxYzg4NApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEphbiA5IDE5OjQ0OjU3IDIwMTEgKzAwMDAKCiAgICBBbWVuZCBob3cgbXVsdGktQ1BVIHN0YXRpc3RpY3MgYXJlIHJldHJlaXZlZCB1c2luZyBzeXNjdGwgb24gT3BlbkJTRCBzeXN0ZW1zCiAgICAoaWYgdGhpcyBibG9jayB3YXMgYWN0aXZlLCB3aGljaCBpdCBpc24ndCwgYnV0IHRoYXQncyBub3QgaW1wb3J0YW50IHJpZ2h0IG5vdCkKICAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmUsIGFtZW5kZWQgKHByb2JhYmx5IHdyb25nbHkpIGJ5IERUU10KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNGFmZWM3Zjg4YWI4NDBjNmI4YmMwYjk2YzZhYTc3N2NjMzNjYmIzYwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEphbiA5IDE5OjQ0OjU3IDIwMTEgKzAwMDAKCiAgICBBbWVuZCBob3cgbXVsdGktQ1BVIHN0YXRpc3RpY3MgYXJlIHJldHJlaXZlZCB1c2luZyBzeXNjdGwgb24gT3BlbkJTRCBzeXN0ZW1zCiAgICAoaWYgdGhpcyBibG9jayB3YXMgYWN0aXZlLCB3aGljaCBpdCBpc24ndCwgYnV0IHRoYXQncyBub3QgaW1wb3J0YW50IHJpZ2h0IG5vdCkKICAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmUsIGFtZW5kZWQgKHByb2JhYmx5IHdyb25nbHkpIGJ5IERUU10KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTM3N2U4OTMwNTE5NGUxOWZmYzM5ZDZkODhkODRkMjM2ZmFjYTU1OQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEphbiA5IDE4OjEzOjUwIDIwMTEgKzAwMDAKCiAgICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDc3YWY4OTlhZWRlYjg1NDExMjNmZjg4OWMyZjlmNDUyNjVkOGRiYWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKYW4gOSAxODoxMzo1MCAyMDExICswMDAwCgogICAgc3lzY3RsIHRha2VzIGEgJ3NpemVfdCcgdmFyaWFibGUgZm9yIHRoZSBzaXplIHBhcmFtZXRlcgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBkMjA5MDZjYjY4NWRhMjlkY2VhNzFiODkzZDI3MjExNDIxODZiZDZmCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDkgMTg6MTM6NTAgMjAxMSArMDAwMAoKICAgIHN5c2N0bCB0YWtlcyBhICdzaXplX3QnIHZhcmlhYmxlIGZvciB0aGUgc2l6ZSBwYXJhbWV0ZXIKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTBjMTQwY2U4OTNlOGE2YzJmZDk3Y2QzMzk2NTRhMzZjMzZlNjgyYQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEphbiA5IDE4OjExOjAxIDIwMTEgKzAwMDAKCiAgICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDI5NGEyZGE5NTY3OWQ2NjgyMmZmMzlkNDY5NmNlNmY0MDM1ZGZkZTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKYW4gOSAxODoxMTowMSAyMDExICswMDAwCgogICAgc3lzY3RsIHRha2VzIGEgJ3NpemVfdCcgdmFyaWFibGUgZm9yIHRoZSBzaXplIHBhcmFtZXRlcgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwZTU5YzE0YzVjZjJmODdmNTNhZmI5OGIzNzA1YmVkZTE0ODIzNjE4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKYW4gOCAwMDo0NzoyMiAyMDExICswMDAwCgogICAgVXBkYXRlIGFjY29uZmlnLmggd2l0aCBjaGFuZ2VzIGZyb20gcjE5ODE5LgogICAgUmVydW4gYXV0b2hlYWRlci4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMzliOWEwYWJjYmJhMGNhZmVhNWE2MzI0ZTFjNTc2ZTY1ODhhMWNkNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSmFuIDggMDA6NDc6MjIgMjAxMSArMDAwMAoKICAgIFVwZGF0ZSBhY2NvbmZpZy5oIHdpdGggY2hhbmdlcyBmcm9tIHIxOTgxOS4KICAgIFJlcnVuIGF1dG9oZWFkZXIuCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGM2NGEwNjI5ZDNkMzI2M2Q4NmFjNTFlYTE5ODY3MmRkMzA3ZGQ0ZjUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEphbiA4IDAwOjQ3OjIyIDIwMTEgKzAwMDAKCiAgICBVcGRhdGUgYWNjb25maWcuaCB3aXRoIGNoYW5nZXMgZnJvbSByMTk4MTkuCiAgICBSZXJ1biBhdXRvaGVhZGVyLgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwYzg5NzBlYzIzYzEwNjRhODFjZmM1YzM2MmUzYjM0OGFmYjAyMDcwCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMjA6NTY6MjYgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IE9wZW5CU0Q6IFN1cHBvcnQgdXBkYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUKICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgODM0Y2MxMjhhZjdmZDU0MjJhOWVkYTczYWE0ODk4Nzc3NGYyNDM1ZApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDIwOjU2OjI2IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBPcGVuQlNEOiBTdXBwb3J0IHVwZGF0aW5nIHRoZSByb3V0aW5nIHRhYmxlCiAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDExNDM3NTRhNGMxODUzY2JjODJlOWMwMjZiZTJkMmM4ZmFlYmJkODgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAyMDo1NjoyNiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogT3BlbkJTRDogU3VwcG9ydCB1cGRhdGluZyB0aGUgcm91dGluZyB0YWJsZQogICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiMmQ4ZjEwMjY2NmUyMjZmZjE4NmQxYTUzZTBmNTk4YmI0YTNjODRjCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMjA6Mjk6MzkgMjAxMSArMDAwMAoKICAgIFNldCAnbmV4dCcgZmllbGQgZm9yIHVkcCBlbnRyeSBsaW5rZWQgbGlzdCBvbiBPcGVuQlNENAogICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBzZXQgaW4gPG5ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg+CiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDFiNWM5YzAwMzBmN2E4MzA5ZmU4ODYwNDRhZGQxNmEyNDQ2MjhiNGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAyMDoyOTozOSAyMDExICswMDAwCgogICAgU2V0ICduZXh0JyBmaWVsZCBmb3IgdWRwIGVudHJ5IGxpbmtlZCBsaXN0IG9uIE9wZW5CU0Q0CiAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHNldCBpbiA8bmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaD4KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMWUyYzY2NDE3MjBlMGJkNDk2MDM0YTRmMjU0M2E5ODRhZTVhNTA0MQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDIwOjI5OjM5IDIwMTEgKzAwMDAKCiAgICBTZXQgJ25leHQnIGZpZWxkIGZvciB1ZHAgZW50cnkgbGlua2VkIGxpc3Qgb24gT3BlbkJTRDQKICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgc2V0IGluIDxuZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oPgogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlZWNiNjlmMjZhNDRmZDdlN2M4ZjNlZjk2ODI1NDZkNjM4MGRiNTE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMjA6MTI6MjUgMjAxMSArMDAwMAoKICAgIFVzZSBhIHN1aXRhYmxlIGNvbnN0YW50IGZvciBDV0QgYnVmZmVyIHNpemUKICAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGVjZTAzMzM1NWY3ZDY5YTlkZWY0YjhkMjMwN2JkNWRiMzMwOGEyOGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAyMDoxMjoyNSAyMDExICswMDAwCgogICAgVXNlIGEgc3VpdGFibGUgY29uc3RhbnQgZm9yIENXRCBidWZmZXIgc2l6ZQogICAgW0Jhc2VkIG9uIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMTQzMzM2MGMwYzNhYjAzZGRmZDE0OTYxNzk2YjFmZDljZDBjZTFiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDIwOjEyOjI1IDIwMTEgKzAwMDAKCiAgICBVc2UgYSBzdWl0YWJsZSBjb25zdGFudCBmb3IgQ1dEIGJ1ZmZlciBzaXplCiAgICBbQmFzZWQgb24gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBkODI5ZWQ2NTI1NWNkYzYyMGJjMjYzOGU2OGFiMmY3ZWZlNTkzNzA1CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMjA6MDc6MTcgMjAxMSArMDAwMAoKICAgIE1vdmUgZ2xvYmFsIHZhcmlhYmxlIGludG8gdGhlIG1ldGhvZCB3aGVyZSBpdCdzIHVzZWQuCiAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDhhMjM4YjU5ODM1ODljYmE0NzRkODc1NTcxZGRlMmE1MWE4ZjgyNzMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAyMDowNzoxNyAyMDExICswMDAwCgogICAgTW92ZSBnbG9iYWwgdmFyaWFibGUgaW50byB0aGUgbWV0aG9kIHdoZXJlIGl0J3MgdXNlZC4KICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTgzZTVmMmI3ZWE4ZDFiODI2M2M3MGUyZDRiZmJhMmI1NmI5YTVjMApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDIwOjA3OjE3IDIwMTEgKzAwMDAKCiAgICBNb3ZlIGdsb2JhbCB2YXJpYWJsZSBpbnRvIHRoZSBtZXRob2Qgd2hlcmUgaXQncyB1c2VkLgogICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyNTQ2ZWMyZDQ3NGNkZTU0ZTg1M2Y0MGVmNjg5YmY0NmM1MmU0N2Q0CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMTY6NDg6NTYgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBzeXN0ZW1zIHdpdGhvdXQgSUZNX1RPS0VOCiAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDc5MTMyMzYxNzZhMDAxMjQ2YjBhN2JkNDI0OTA1MjEwMmNlZTcwZGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxNjo0ODo1NiAyMDExICswMDAwCgogICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBJRk1fVE9LRU4KICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOGU0YmY0YjUzYTEzZGM5N2RmMThkZGQ4MThkMDJhNDNhODBiY2ZhNgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDE0OjM4OjM3IDIwMTEgKzAwMDAKCiAgICBVcGRhdGUgcmV0cmlldmFsIG9mIGNhY2hlIHVzYWdlIHN0YXRpc3RpY3Mgb24gRnJlZUJTRAogICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzODI4MTc3NzExNWYyN2UwNTBhNjYzM2QzZGQ1ODFhOTBhZTdjNmUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMTQ6Mzg6MzcgMjAxMSArMDAwMAoKICAgIFVwZGF0ZSByZXRyaWV2YWwgb2YgY2FjaGUgdXNhZ2Ugc3RhdGlzdGljcyBvbiBGcmVlQlNECiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDJkYmRjNWNiNjc2MTUwMWE2YjllMTJlYzkyZDc3ODQ5YzU0NzBkNzAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxNDoyMDozMCAyMDExICswMDAwCgogICAgSW5jcmVhc2UgbWF4aW11bSBzaXplIG9mIGV4ZWN1dGUgb3V0cHV0IGNhY2hlCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDU0OWE3N2Y3MjIwMGQ0NDcwNzM1OWE4ZTQ5ZmY4YzViZDUzYTNmMzAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxNDoyMDozMCAyMDExICswMDAwCgogICAgSW5jcmVhc2UgbWF4aW11bSBzaXplIG9mIGV4ZWN1dGUgb3V0cHV0IGNhY2hlCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGI1NDBkM2M5OTcxMDQ1ODkwYmRkZDNkZTUwZjQwZjE0NjhmMWIwM2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxNDoyMDozMCAyMDExICswMDAwCgogICAgSW5jcmVhc2UgbWF4aW11bSBzaXplIG9mIGV4ZWN1dGUgb3V0cHV0IGNhY2hlCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGNjNDU5ZjY5ZmJhNjhiNjMzMmI5YWQyN2I0YmM4MWEzZGYxM2JjMWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxNDowOToxNSAyMDExICswMDAwCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlIGRpcmVjdGl2ZXMKICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA3ZjcxNTE2MzJkZWE1YWQ4OTQ1MzBlZTU4NDc2NTY0MjQxZDk1ODA3CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMTQ6MDk6MTUgMjAxMSArMDAwMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZSBkaXJlY3RpdmVzCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjhkNmI0NmMyYzMyYTcyMjE3MTZlZjUzM2JmYWFlZDg5NTkwMzg0ZQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEzOjQ3OjIzIDIwMTEgKzAwMDAKCiAgICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBSVEZfTExJTkZPIGlzIG5vdCBkZWZpbmVkCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGJhODFiMWRmYjQ4OGU1NjAyYWYxMzFhOTIzOWE5YWI4ZDNkMzVlMWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxMzo0NzoyMyAyMDExICswMDAwCgogICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgUlRGX0xMSU5GTyBpcyBub3QgZGVmaW5lZAogICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyZmY0NmZlNjk3ZDljM2FmOTEwNjUxNWM0MWI3ZTZhOTgxMjZhYTA5CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMTM6NDc6MjMgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIFJURl9MTElORk8gaXMgbm90IGRlZmluZWQKICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjAyMzEyYWFlYmZmNTVmMDQwNDc2YTFjNzEwM2U5OTFhMTFjNmFhMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEzOjQwOjQwIDIwMTEgKzAwMDAKCiAgICBJbmNsdWRlIHpmcyBtb3VudCBwb2ludHMgZm9yIGRpc2sgcmVwb3J0cyB1bmRlciBGcmVlQlNECiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDgzYmY0NDRmMDc2ZWQyYjkyMTIyMzk1OTU4NmE0ZWUzODM1OTU2MjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxMzo0MDo0MCAyMDExICswMDAwCgogICAgSW5jbHVkZSB6ZnMgbW91bnQgcG9pbnRzIGZvciBkaXNrIHJlcG9ydHMgdW5kZXIgRnJlZUJTRAogICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiZDZjZGNhMjZmOTQ2OTYxMTMwMzM1NmJiZGFlZGQ4MjM3ZDNkMWJhCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMTM6NDA6NDAgMjAxMSArMDAwMAoKICAgIEluY2x1ZGUgemZzIG1vdW50IHBvaW50cyBmb3IgZGlzayByZXBvcnRzIHVuZGVyIEZyZWVCU0QKICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTJkNzcxYjcyN2U2MGFmMTA0NWFmMjg3MWE4ZjRhOWUwMTA3Y2NiNQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEzOjM0OjUzIDIwMTEgKzAwMDAKCiAgICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjVjMGYzOWJlY2E0YjIzMjExY2QyMTdhZGU3Y2ExOTZkNGVlOWVmYwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEzOjM0OjUzIDIwMTEgKzAwMDAKCiAgICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTBhZmNkYWFkOTA4NDQwYWQ4YTAwZGJmN2I3MTEzMmUzZTYzMWU4ZQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEzOjM0OjUzIDIwMTEgKzAwMDAKCiAgICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMzQ5ZmFjZDVhYzU1NTZiOWY5ZWI2YjJmYmJhOWMwZWQ4ZmRhMTZlMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEzOjI0OjMxIDIwMTEgKzAwMDAKCiAgICBJbmNsdWRlIDx1bmlzdGQuaD4KICAgIFtGcm9tIEJTRCBwYXRjaGVzIGFyY2hpdmVdCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDU0NTEwNjdkZmZhMDFmOTkxZWIyZjkxYmJkNWVkNWI2NTU5ODlhMWMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxMzoyNDozMSAyMDExICswMDAwCgogICAgSW5jbHVkZSA8dW5pc3RkLmg+CiAgICBbRnJvbSBCU0QgcGF0Y2hlcyBhcmNoaXZlXQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBhOGY0OTJhOWZiZWI0ZjEzMzU3ZTdhNzU5MTA3ZGZmY2M1ZTljNDkxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMTM6MjQ6MzEgMjAxMSArMDAwMAoKICAgIEluY2x1ZGUgPHVuaXN0ZC5oPgogICAgW0Zyb20gQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjQ1MGE5ODQ1MTliOGJjODc3MjdlYzdjZjA4Y2U1YjdjMTBlM2M1MApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEzOjIxOjQ4IDIwMTEgKzAwMDAKCiAgICBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zLgogICAgKFBhcnQgb2YgcGF0Y2ggIzI5NzUyNTQgLSBzZWUgU1ZOIHJldmlzaW9uIDE5ODA4KQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmZjQ3Nzc1MWRkYzg2YzdhOGVmNTg4MmQzOGQ0MmUzYThkYjE5OWIxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDcgMTM6MjE6NDggMjAxMSArMDAwMAoKICAgIEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMuCiAgICAoUGFydCBvZiBwYXRjaCAjMjk3NTI1NCAtIHNlZSBTVk4gcmV2aXNpb24gMTk4MDgpCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGNmNjFhMzEyNjM4NzE2YjA5N2U1ODNiZTA5ZmE1MjE3NjNlNDViZWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gNyAxMzoyMTo0OCAyMDExICswMDAwCgogICAgQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucy4KICAgIChQYXJ0IG9mIHBhdGNoICMyOTc1MjU0IC0gc2VlIFNWTiByZXZpc2lvbiAxOTgwOCkKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOWM1NDE3ZDE1YjRjZWRjYTk1NDgzYjQ0YTlkY2YxYjM4MTJjY2I2OQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEyOjU1OjMxIDIwMTEgKzAwMDAKCiAgICBGcmVlQlNEIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgbmFtaW5nIHNjaGVtZSBmb3Igc3RydWN0IGlmcmVxCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMzhiMjkxYjA5NmE1ZDFkZGY2ZDgwM2E0MzM2NDc1ZDNiN2FkOTIzNgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEyOjU1OjMxIDIwMTEgKzAwMDAKCiAgICBGcmVlQlNEIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgbmFtaW5nIHNjaGVtZSBmb3Igc3RydWN0IGlmcmVxCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjg1YTdkZDlkNWVlYzk5OGFhN2M1ZWEwNTBjNjk4N2FmNDIyMGYwYgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEyOjU1OjMxIDIwMTEgKzAwMDAKCiAgICBGcmVlQlNEIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgbmFtaW5nIHNjaGVtZSBmb3Igc3RydWN0IGlmcmVxCiAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjBlYjE1YTIzZDljODdiOGE0MTExNGUzNmY4NGJiYWFkYTZhMTJjZQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEyOjIyOjAzIDIwMTEgKzAwMDAKCiAgICBFbnN1cmUgVENQIHRhYmxlIGluZm9ybWF0aW9uIGlzIGxvYWRlZCBiZWZvcmUgY291bnRpbmcgY29ubmVjdGlvbnMKICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjUxMmY4MGQ3ZmRkNzZkZDA5MmU3MGVhOGZjMTcwM2IwMTllNjJjMwpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEyOjIyOjAzIDIwMTEgKzAwMDAKCiAgICBFbnN1cmUgVENQIHRhYmxlIGluZm9ybWF0aW9uIGlzIGxvYWRlZCBiZWZvcmUgY291bnRpbmcgY29ubmVjdGlvbnMKICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTVhMjE5MzdiY2ViMTdhNjEwY2I2MzhlNWY1ZmJkMWJiN2I3M2M0MgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA3IDEyOjIyOjAzIDIwMTEgKzAwMDAKCiAgICBFbnN1cmUgVENQIHRhYmxlIGluZm9ybWF0aW9uIGlzIGxvYWRlZCBiZWZvcmUgY291bnRpbmcgY29ubmVjdGlvbnMKICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNGY3YzUyYjU4YzJiNzk1NzhhMDc3YWRmZGI2M2UyODcyYTEwZWUxMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gNiAxOTozNTowNiAyMDExICswMDAwCgogICAgRml4IGRvY3VtZW50YXRpb24gYnVnIHBvaW50ZWQgb3V0IGluIGNwYW4gYnVnICM1MjYxOAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTNhNTlhZTU2NjliNDYxZTBiMTA3ZTdjMmU5ZmVjMjQxMGVmNzNhYwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gNiAxOTozNTowNiAyMDExICswMDAwCgogICAgRml4IGRvY3VtZW50YXRpb24gYnVnIHBvaW50ZWQgb3V0IGluIGNwYW4gYnVnICM1MjYxOAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgY2ZjOTJlYzg0NTA2YmMxNjk5ZWRlZDU1OGYwMzVhOTQwMDVhMWJjOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gNiAxOTozNTowNiAyMDExICswMDAwCgogICAgRml4IGRvY3VtZW50YXRpb24gYnVnIHBvaW50ZWQgb3V0IGluIGNwYW4gYnVnICM1MjYxOAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNzBlYTliYjYxMDEyYTc1YmI2YTYyYThjOTVjODYxYzRkN2E2ZDAzZgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiA2IDE0OjExOjIyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk3NTI1NDogQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucwogICAgCiAgICBRbjogU2hvdWxkIHRoaXMgYWxzbyBiZSBhcHBsaWVkIHdoZW4gbWFpbiBzZXNzaW9uIGlzIE5VTEw/CiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDNjNTA3NTQzMTk2NjRkZGE4ODlmNmJmYjIxNjc5MmRiYzMwMDViNzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gNiAxNDoxMToyMiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMKICAgIAogICAgUW46IFNob3VsZCB0aGlzIGFsc28gYmUgYXBwbGllZCB3aGVuIG1haW4gc2Vzc2lvbiBpcyBOVUxMPwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBmYmJlMmM3NTg2ODExMGNiYjNhYWFlZjgwOWZkZDU3MzIyNjg0OTU0CkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDYgMTQ6MTE6MjIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zCiAgICAKICAgIFFuOiBTaG91bGQgdGhpcyBhbHNvIGJlIGFwcGxpZWQgd2hlbiBtYWluIHNlc3Npb24gaXMgTlVMTD8KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgOTdiMGU5MTVkYWJiYWU0ZTliODc4ZDlhM2MwZTAxNzYxZjRlZDliNgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiA2IDEzOjIxOjM5IDIwMTEgKzAwMDAKCiAgICBGaXggbWlzbGVhZGluZyBpbmRlbnRhdGlvbgogICAgCiAgICBRbjogU2hvdWxkIHRoaXMgY2FsbCAnc3ViYWdlbnRfc3RhcnR1cCcgcmF0aGVyIHRoYW4gJ2FnZW50eF9yZW9wZW5fc2Vzc2lvbic/CiAgICBRbjogV2h5IGRvZXNuJ3QgdGhpcyBhdHRlbXB0IHRvIHJlLW9wZW4gdGhlIHNlc3Npb24gaWYgaXQgd2FzIG9yaWdpbmFsbHkgTlVMTD8KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjdkY2Y4N2ZjNWU5ZWQ0ZmM3OGEzZGRhMGM0ZjE3MjU1NzNiMDQzOApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiA2IDEzOjIxOjM5IDIwMTEgKzAwMDAKCiAgICBGaXggbWlzbGVhZGluZyBpbmRlbnRhdGlvbgogICAgCiAgICBRbjogU2hvdWxkIHRoaXMgY2FsbCAnc3ViYWdlbnRfc3RhcnR1cCcgcmF0aGVyIHRoYW4gJ2FnZW50eF9yZW9wZW5fc2Vzc2lvbic/CiAgICBRbjogV2h5IGRvZXNuJ3QgdGhpcyBhdHRlbXB0IHRvIHJlLW9wZW4gdGhlIHNlc3Npb24gaWYgaXQgd2FzIG9yaWdpbmFsbHkgTlVMTD8KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZWNjZWI1MWRmYWYyMzBjODljZGIyY2IyZDEwNDM5ZTJlMGUyNDFhNgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiA2IDEzOjIxOjM5IDIwMTEgKzAwMDAKCiAgICBGaXggbWlzbGVhZGluZyBpbmRlbnRhdGlvbgogICAgCiAgICBRbjogU2hvdWxkIHRoaXMgY2FsbCAnc3ViYWdlbnRfc3RhcnR1cCcgcmF0aGVyIHRoYW4gJ2FnZW50eF9yZW9wZW5fc2Vzc2lvbic/CiAgICBRbjogV2h5IGRvZXNuJ3QgdGhpcyBhdHRlbXB0IHRvIHJlLW9wZW4gdGhlIHNlc3Npb24gaWYgaXQgd2FzIG9yaWdpbmFsbHkgTlVMTD8KICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTU1MDk5OGM0MjExZGFmZjM5NGEyZjc3MjU3NWY5ZTQ2OWQxODU0YQpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiA2IDEyOjQ2OjE5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk0MTgxMTogSGFuZGxlIHN1Y2Nlc3NmdWwgcmVxdWVzdHMgd2l0aCByZXFJRCAwCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDg2ZmY1MzVlMjc2NmI1ZjVhYjIzN2U3MDAyYTdlYzA3ODRlOWY4MDYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gNiAxMjo0NjoxOSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5NDE4MTE6IEhhbmRsZSBzdWNjZXNzZnVsIHJlcXVlc3RzIHdpdGggcmVxSUQgMAogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBiNDIwZTFiNjliZjIzMTNiNmNlNzVjZGVlMjBkNjIyNTg2MGE0Y2IxCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDYgMTI6NDY6MTkgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTQxODExOiBIYW5kbGUgc3VjY2Vzc2Z1bCByZXF1ZXN0cyB3aXRoIHJlcUlEIDAKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNDg1MjVhMGVmNTNhODVkMWYwMjk0MjA1ZDQxYzlkOTE3OWEwMDdkZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gNiAwOTozODo1MCAyMDExICswMDAwCgogICAgU3BlbGxpbmcgZml4OiBJbml0aWFsemllcyAtPiBJbml0aWFsaXplcy4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGFkZGEzNmRhNzc2NDg2ZDA3MmM0ZGNmOWVhYThlNTdkNzgzODRiYzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNSAxNjozMTo1MCAyMDExICswMDAwCgogICAgVXNlIHRoZSBhcHByb3ByaWF0ZSBBUEkgY2FsbCBmb3IgcmVwb3J0aW5nIGNvbmZpZyBlcnJvcnMuCiAgICAoIkRvbid0IGJlIHNvIGltcGF0aWVudCwgRGF2ZS4uLi4iKQogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2ZmY4ZjIyZmQ3YjU3Y2YwOTQ1ZDBmMTViMDQzM2E0NzZhNjdkOWJkCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDUgMTY6MzE6NTAgMjAxMSArMDAwMAoKICAgIFVzZSB0aGUgYXBwcm9wcmlhdGUgQVBJIGNhbGwgZm9yIHJlcG9ydGluZyBjb25maWcgZXJyb3JzLgogICAgKCJEb24ndCBiZSBzbyBpbXBhdGllbnQsIERhdmUuLi4uIikKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzEyYWI1ZWRiZDg3NjVkNjMzZjMyOGZmNDY4ZmMxZThkY2Y2ZTJhMApBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA1IDE0OjA2OjUyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAzMTM0MzIzOiBGaXggY3Jhc2ggd2hlbiBjb21wYXJpbmcgaW52YWxpZCBPSURzCiAgICAKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGM5MmYyODYwNGQxM2JhZjJhYjBhNmIzZDcxMDA3MzBkMzM5NDlmMGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNSAxNDowNjo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzEzNDMyMzogRml4IGNyYXNoIHdoZW4gY29tcGFyaW5nIGludmFsaWQgT0lEcwogICAgCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA5YWIxNWZjNmU0MjZlNWUwOGEzMzc0ZWMzZGE3YmU0MjgyN2JkYzUyCkF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDUgMTQ6MDY6NTIgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDMxMzQzMjM6IEZpeCBjcmFzaCB3aGVuIGNvbXBhcmluZyBpbnZhbGlkIE9JRHMKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMDg5ODViNTkxNDcxYjliNDc5MDhiZmJiN2ViYzYzYWQ1Yjc0YjFlMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA1IDE0OjA0OjU5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVR1M6IDMxNTEyNTQ6IEZpeCBjcmFzaCB3aXRoIGludmFsaWQgdHJhcGhhbmRsZSBkaXJlY3RpdmUKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZmJhYzhiNzI2ZGJjOWE0ZDBmNzM0YzZkNWQzYjc3NjJmMjdmMmVkZgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA1IDE0OjA0OjU5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVR1M6IDMxNTEyNTQ6IEZpeCBjcmFzaCB3aXRoIGludmFsaWQgdHJhcGhhbmRsZSBkaXJlY3RpdmUKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmVmMDJlYzAzM2I5MmEwMDBlODAxY2MzOTcwMjk4M2RmODdlZjQxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA1IDE0OjA0OjU5IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVR1M6IDMxNTEyNTQ6IEZpeCBjcmFzaCB3aXRoIGludmFsaWQgdHJhcGhhbmRsZSBkaXJlY3RpdmUKICAgIAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMWI4NjI4YTJmNWEwMDZlNmYzMmIxMjBkMjMzNDc4OGRmNTgwMTAzOApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gNCAxODoyNDo1NSAyMDExICswMDAwCgogICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0yLXBhdGNoZXNAMTk3OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYmM5YmYwODM5NWY5ODdkMWQzOWQxNjUxYTI1ODZlZTA2NzIyNzA4OQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gNCAxODoyNDo1NSAyMDExICswMDAwCgogICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk3OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNTc0NTAyYTNjNzFmNWY5NzYwYzIwZTQyYzM4ZDNlOTY3MTZhYTdlYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gNCAxODoyNDo1NSAyMDExICswMDAwCgogICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk3OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYTdlNjc1N2RkOTIxOGRkYzBmYjQ1OTFlYjQ5OTk5OThlOWIwYWZjYwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gNCAxODoyNDo1NSAyMDExICswMDAwCgogICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk3OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZGZmZDYyMWFiMDVlZTJhZDRmMTg5MjU1YWVmZDQyYmYyY2I1ZWI3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gNCAxMjoxOToxMyAyMDExICswMDAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgV2luMzIgTUlCLUlJIGltcGxlbWVudGF0aW9uIChiYWNrcG9ydGVkIHIxOTc5MCBmcm9tIHRoZSB0cnVuaykuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTc5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjNGVjNTQwZjYzYzVlMTg0ZDk0N2I2ZWJhNTExNDgyNTdjNDE2Nzk2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiA0IDEyOjE3OjUxIDIwMTEgKzAwMDAKCiAgICBSZW1vdmVkIHR3byB1bnVzZWQgdmFyaWFibGVzIGZyb20gdGhlIHNjdHAtbWliIGltcGxlbWVudGF0aW9uIChiYWNrcG9ydGVkIHIxOTc4MCBmcm9tIHRoZSB0cnVuaykuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTc5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlMjg2OTk2YTU4MTI0MmJlZmRmMGZjZmUzN2Q5ZTUwMzUzOGQyMDRlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiA0IDEyOjE1OjI3IDIwMTEgKzAwMDAKCiAgICBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgbWlzbWF0Y2ggYmV0d2VlbiBmb3JtYXQgc3BlY2lmaWNhdGlvbiBhbmQgYXJndW1lbnQgbGlzdCBpbiB0aGUgaXAtbWliIGltcGxlbWVudGF0aW9uIChiYWNrcG9ydGVkIHIxOTc3OSBmcm9tIHRoZSB0cnVuaykuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTc5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYgLT4gVjUuNi4xCgoyMDExLTAxLTAzIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTkVXUyB1cGRhdGUKCjIwMTEtMDEtMDMgMjI6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBVcGdyYWRlZCBEVExTIHN1cHBvcnQgZnJvbSBhbHBoYSB0byBmdWxsOyBtZW50aW9uIHRoYXQKICAgdHNtIGlzIG5lZWRlZCBmb3IgVExTIHRvbwoKMjAxMS0wMS0wMyAyMjoyNCAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTEyLTI5IDAxOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBhdXRvY29uZiB1c2luZyB0aGUgcmlnaHQgdmVyc2lvbgoKMjAxMC0xMi0yOSAwMTo0MCAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTEyLTI5IDAxOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIE5FV1M6IHNubXBkOiBQYXRjaCAzMTQxNDYyOiBmcm9tIGZlbm5lcjogZml4IGFnZW50eCBzdWJhZ2VudAogICBpc3N1ZXMgd2l0aCBtdWx0aXBsZS1vYmplY3QgcmVxdWVzdHMKCjIwMTAtMTItMjkgMDE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogc25tcGQ6IFBhdGNoIGZyb20gTmllbHMgdG8gZml4IFZBQ00gcGVyc2lzdGFudCBzdG9yYWdlLgoKMjAxMC0xMi0yMSAxNjozMyAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIGZpeGVkIHRoZSBORVdTIGZpbGUgdG8gbWVudGlvbiA1LjYuMSBpbnN0ZWFkIG9mIDUuNwoKMjAxMC0xMi0yMSAxNjozMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGZpeGVkIHRoZSBORVdTIGZpbGUgdG8gbWVudGlvbiA1LjYuMSBpbnN0ZWFkIG9mIDUuNwoKMjAxMC0xMi0yMSAxNTo1MCAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTEyLTIxIDE1OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBmaXhlZCBhdXRvY29uZiB2ZXJzaW9uCgoyMDEwLTEyLTIxIDE1OjA3ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMTItMjEgMTE6MjkgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgQnJpbmcgYWxsIHZlcnNpb25zIG9mIG1ha2VyZWxlYXNlLnhtbCBpbnRvIGxpbmUKCjIwMTAtMTItMjEgMDY6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmg6CgogICBmaXggY29uZmlndXJpbmcgd2l0aCAtLWRpc2FibGUtZGVidWdnaW5nCgoyMDEwLTEyLTIwIDIzOjI3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBQYXRjaCBmcm9tIE1hZ251cyB0byBmaXggaWYgISB0ZXN0cyBvbiBzb2xhcmlzCgoyMDEwLTEyLTE0IDIwOjEwICByc3RvcnkKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBmaXggdHlwbyBpbiBtYW4gcGFnZQoKMjAxMC0xMi0xMCAxNTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQYXRjaCBmcm9tIENsYXVzIEtsZWluIHRvIGZpeCBlbmdpbmVpZCBnZW5lcmF0aW9uCiAgIG9uIG91dGdvaW5nIHYzIHRyYXBzIGZyb20gdGhlIGFnZW50CgoyMDEwLTEyLTEwIDA1OjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCBtYWtlIHRlc3Qgb3B0aW9ucwoKMjAxMC0xMi0wOCAxMzoxNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgbmV3bHkgY3JlYXRlZC9kZXN0cm95ZWQgaW50ZXJmYWNlcyB0bwogICBpcHY2SWZUYWJsZQogICAKICAgVGhlIGxpc3Qgb2YgaW50ZXJmYWNlcyB3YXMgbmV2ZXIgcmVmcmVzaGVkLCBub3cgaXQgaXMgcmVsb2FkZWQKICAgZXZlcnkgdGltZSB0aGUKICAgdGFibGUgaXMgYWNjZXNzZWQuIEkndmUgYWxzbyBmaXhlZCBhIG1lbW9yeSBsZWFrIGFuZCBvcHRpbWl6ZWQKICAgdGhlIGxvYWRpbmcKICAgb2YgdGhlIGxpc3QgYSBiaXQuCgoyMDEwLTEyLTA4IDA2OjE3ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuNi4xLnByZTIKCjIwMTAtMTItMDggMDY6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0xMi0wNiAyMzoyNyAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTEyLTA2IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jOgoKICAgUGF0Y2ggZnJvbSBOaWVscyB0byByZW1vdmUgZXh0cmEgaGVhZGVycyBmcm9tIHRoZSBsaW51eCBkb3Qzc3RhdHMKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMTItMDYgMjI6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIENoZWNrIGZvciB0aGUgbWluaW11bSByZXF1aXJlZCBmdW5jdGlvbiBpbiBPcGVuU1NMIGZvciBEVExTCiAgIHN1cHBvcnQKCjIwMTAtMTItMDYgMTY6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNhbGwgbmV0c25tcF9jZXJ0c19hZ2VudF9pbml0IHNvb25lciwgZml4aW5nIHNubXB0cmFwZCAoRClUTFMKICAgc3VwcG9ydAoKMjAxMC0xMi0wNiAxNjoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgZml4IGNvbnRleHRFbmdpbmVJRHMgZm9yIG91dGdvaW5nIGluZm9ybXMgZnJvbSBzbm1waW5mb3JtIHRvIGJlCiAgIHRoZSBsb2NhbCBlbmdpbmVJRAoKMjAxMC0xMi0wMSAxNDozMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgZ2VuZXJhdGUgd2l0aCB0aGUgcHJvcGVyIGF1dG9jb25mCgoyMDEwLTEyLTAxIDAxOjA2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTEyLTAxIDAxOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CgoyMDEwLTEyLTAxIDAwOjQ2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTEyLTAxIDAwOjQ2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0xMS0zMCAyMzoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBwYXRjaCAzMDQ5MDI5OiBmcm9tIGZlbm5lYzogZml4IGEgbWVtb3J5IGxlYWsgd2l0aAogICBzbm1wIGJ1bGt3YWxrcwoKMjAxMC0xMS0zMCAyMzoxNiAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDUzNDM2OiBmcm9tOiB0YWtldm9zOiBmaXg6CiAgIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2VzcyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKCjIwMTAtMTEtMzAgMjM6MTIgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDUzNDM2OiBmcm9tOiB0YWtldm9zOiBmaXg6CiAgIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MgaW52YWxpZCBtZW1vcnkgYWNjZXNzCgoyMDEwLTExLTMwIDIxOjA4ICBuYmEKCiAgICogYXBwcy9zbm1wdGxzLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jOgoKICAgdV9pbnQzMl90IGlzIGxlc3MgcG9ydGFibGUgdGhhbiB1aW50MzJfdCAoU29sYXJpcyAxMSkKCjIwMTAtMTEtMzAgMjA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgY29tcGlsZSB3YXJuaW5nIGFib3V0IGEgbmVzdGVkIGlmIHdpdGhvdXQgYSBibG9jawoKMjAxMC0xMS0zMCAxOTo1NyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBlcnJvciBjaGVjayB0aGUgcmlnaHQgcG9pbnRlciBhZnRlciBhdHRlbXB0aW5nIGFsbG9jYXRpb24KCjIwMTAtMTEtMzAgMDU6NTYgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDU3MDkwOiBmcm9tIHNoZW1taW5nZXI6IG1ha2UgZXRodG9vbAogICBzdXBwb3J0IG9uIGxpbnV4IHVzZSB0aGUgaGlnaCBzcGVlZCBzdHJ1Y3QgaW5mbyBmb3IgMTAwRysuCgoyMDEwLTExLTMwIDA0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIENIQU5HRVM6IFBBVENIIDMwNzQ5MTg6IGZyb20gd2Vpemhlbmc6IGNoZWNrIGZvciBDT05UQUlORVJfSU5TRVJUCiAgIGZhaWx1cmVzIGFuZCByZWFjdCBhcHByb3ByaWF0ZWx5IHRvIGF2b2lkIG1lbW9yeSBsZWFrcwoKMjAxMC0xMS0zMCAwNDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogYWRkIGRlYnVnIGZvciBjZXJ0IGZpbmQgaGludCBhcyBzdHJpbmcvaW50CgoyMDEwLTExLTMwIDA0OjMwICByc3RvcnkKCiAgICogIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogaW5zdGVhZCBvZiByZWx5aW5nIG9uIE5FVFNOTVBfRFNfTElCX0FQUFRZUEUsCiAgIGJyZWFrIG91dAogICBjZXJ0IHRhYmxlIGluaXRzIHRvIG5ldyBhZ2VudCBjZXJ0IGluaXQgZnVuY3Rpb24sIGNhbGxlZCBmcm9tCiAgIGluaXRfYWdlbnQuCgoyMDEwLTExLTMwIDA0OjIxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IGVuZm9yY2UgbWF4IGxlbmd0aCBvbiBUTFMgc2VjTmFtZSBtYXBzCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgcHJpb3JpdHkgdG8gc2VjbmFtZSBkZWJ1Z2dpbmcKCjIwMTAtMTEtMzAgMDQ6MDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmM6CgogICBDSEFOR0VTOiBhZ2VudDogZG9uJ3Qgc2Vjb25kLWd1ZXNzIGNhY2hlIGhhbmRsZXIKICAgCiAgICh3YXZlcyBoYW5kKSB0aGlzIGlzIG5vdCB0aGUgZnVuY3Rpb24geW91IGFyZSBsb29raW5nIGZvci4KICAgCiAgIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQoKSBpcyBub3QgbWVhbnQgZm9yIG1pYiBtb2R1bGVzCgoyMDEwLTExLTI5IDIyOjIwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogYWRkIGRlYnVnIGZvciBzc2wgY2lwaGVycywgY2xhcmlmeSBmaW5nZXJwcmludAogICBtYXRjaCBkZWJ1ZwoKMjAxMC0xMS0yOSAyMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHVzZSBjYWNoZS11bmlxdWUgaWQgaW5zdGVhZCBvZiBoYW5kbGVyIG5hbWUgZm9yCiAgIHNoYXJlZAogICBjYWNoZSByZWxvYWQgcHJvdGVjdGlvbgoKMjAxMC0xMS0xOSAxNToyNSAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmM6CgogICBOaWVscywgTmllbHMsIHlvdSBzaG91bGQga25vdyBiZXR0ZXIgdGhhbiBtYWtpbmcgbGFzdCBtaW51dGUKICAgY2hhbmdlcyB0byBhCiAgIHBhdGNoIGFuZCB0aGVuIGNvbW1pdCBpdCB3aXRob3V0IHRlc3RpbmcgOi0oCgoyMDEwLTExLTE4IDEwOjU1ICBidmFzc2NoZQoKICAgKiAgLiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQ29tcGlsZXIgd2FybmluZyBmaXhlcyBmb3IgdGhlIFRMUyB0cmFuc3BvcnQgY29kZTogYmFja3BvcnRlZAogICByMTk1NDYgZnJvbSB0aGUgdHJ1bmsuCgoyMDEwLTExLTE4IDEwOjUzICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jOgoKICAgRml4ZWQgd2hhdCB3YXMgYnJva2VuIGJ5IHIxOTY4NTogZGl2aWRpbmcgdGhlIHJldHVybiB2YWx1ZSBvZgogICBzbm1wX2xvZygpIGRvZXMgbm90IG1ha2Ugc2Vuc2UuCgoyMDEwLTExLTE3IDE5OjU5ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6CgogICBNb3JlIHByb2N0aW9uIGFnYWluc3Qgb3ZlcmZsb3dpbmcgc25wcmludGYKCjIwMTAtMTEtMTcgMTk6NTcgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBEb250IHVzZSBmaXJzdCBlbGVtZW50IG9mIG9pZCB0byBzYXZlIGlmSW5kZXggLSBpdCBjYW4gb25seSBiZQogICAwLi4yCiAgIFNlY29uZCBlbGVtZW50IGlzIG9ubHkgMC4uMzksIHNvIHdlIGhhdmUgdG8gdXNlIGEgdGhpcmQgZWxlbWVudC4KCjIwMTAtMTEtMTcgMTk6MzkgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgCiAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIFRlc3QgZ2V0ZnNzdGF0L2dldHZmc3N0YXQgaW4gdGltZSBmb3IgbW9kdWxlIHNlbGVjdGlvbgoKMjAxMC0xMS0xNyAxOTozNyAgbmJhCgogICAqIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgUmVtb3ZlIGJvZ3VzIHRlc3QgZm9yIGZsYWdzPT0wIChPX1JET05MWT09MCkuIE1ha2VzCiAgIHVkcEVuZHBvaW50VGFibGUgd29yayBhZ2FpbgoKMjAxMC0xMS0xNyAwNDo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IGRvdWJsZSBmcmVlIGluIFRMUyBlcnJvciBoYW5kbGluZwoKMjAxMC0xMS0xNiAxMjo0MyAgYnZhc3NjaGUKCiAgICogd2luMzIvTWFrZWZpbGUtYXBwcy5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDIyLgoKMjAxMC0xMS0xNiAxMjozOCAgYnZhc3NjaGUKCiAgICogd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oOgoKICAgQ0hBTkdFUzogV2luMzI6IHNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpIGFuZAogICBzaHV0ZG93bl93aW5FeHRETEwoKSBhcmUgbm93IGludm9rZWQgd2hlbiB0aGUgTmV0LVNOTVAgc2VydmljZSBpcwogICBzdG9wcGVkLgogICAoUGFydGlhbGx5IGJhY2twb3J0ZWQgcjE5NTE1IGZyb20gdGhlIHRydW5rLikKCjIwMTAtMTEtMTYgMTA6NDEgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIEJhY2twb3J0ZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSBjaGFuZ2VzIGZyb20gdGhlIHRydW5rLgoKMjAxMC0xMS0xNiAxMDozOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlOgoKICAgUmV2ZXJ0ZWQgTWluR1ctc3BlY2lmaWMgY2hhbmdlcyBmcm9tIHIxOTU0OSBzdWNoIHRoYXQgdGVzdCBUMDY1CiAgIHBhc3NlcyBhZ2FpbiBvbiBNaW5HVy4KCjIwMTAtMTEtMTYgMTA6MDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIENIQU5HRVM6IExpbnV4OiBhZ2VudDogaXBOZXRUb1BoeXNpY2FsVGFibGU6IERvIG5vdCBsb2cgYW4gZXJyb3IKICAgbWVzc2FnZSBpZiBvbmUgb3IgbW9yZSBpbnRlcmZhY2VzIGFyZSBwcmVzZW50IHRoYXQgZG8gbm90IGhhdmUKICAgc3VjaCBpbmZvcm1hdGlvbiAoTlVEX05PQVJQKSwgZS5nLiB0dW5uZWxzLiBSZXBvcnRlZCBieSBTdGVwaGVuCiAgIEhlbW1pbmdlci4gU2VlIGFsc28gcGF0Y2ggIzMxMDcwMDMuCgoyMDEwLTExLTE2IDA4OjQ5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBNaW5HVzogQmFja3BvcnRlZCByMTk2NTIgZnJvbSB0aGUgdHJ1bmsuCgoyMDEwLTExLTE2IDA4OjAxICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBNaW5HVzogY29uZmlndXJlOiBEZXRlY3Rpb24gb2YgdGhlIGZ1bmN0aW9ucwogICBnYWlfc3RyZXJyb3IoKSwgZ2V0YWRkcmluZm8oKSwgZ2V0aG9zdG5hbWUoKSBhbmQgZ2V0aG9zdG5hbWUoKQogICBkb2VzIG5vdyBzdWNjZWVkLgogICAoQmFja3BvcnRlZCByMTk2NDYgZnJvbSB0aGUgdHJ1bmsuKQoKMjAxMC0xMS0xNiAwNzo1NSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBhZ2VudDogY29tMnNlYzYgZGlyZWN0aXZlOiBJZiBjb25maWd1cmUgaGFzIG5vdCBmb3VuZAogICBnZXRhZGRyaW5mbygpLCBub24tbnVtZXJpYyBJUHY2IGFkZHJlc3NlcyBkbyBub3cgdHJpZ2dlciBhbiBlcnJvcgogICBtZXNzYWdlLgogICAoQmFja3BvcnRlZCByMTk2NTAuKQoKMjAxMC0xMS0xNiAwNzo1MSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZSBvZgogICBkZWJ1Z19yZWdpc3Rlcl90b2tlbnMoKSBmcm9tIGNoYXIgKiBpbnRvIGNvbnN0IGNoYXIgKi4KICAgKEJhY2twb3J0ZWQgcjE5NjY1IGFuZCByMTk2NjYgZnJvbSB0aGUgdHJ1bmsuKQoKMjAxMC0xMS0xNSAxNDoxNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBidWdzIGluIGFzbl9wYXJzZV91bnNpZ25lZF9pbnQ2NCgpLAogICBhc25fYnVpbGRfdW5zaWduZWRfaW50NjQoKSwgYXNuX3BhcnNlX3NpZ25lZF9pbnQ2NCgpIGFuZAogICBhc25fYnVpbGRfc2lnbmVkX2ludDY0KCkuIE1vc3QgYnV0IG5vdCBhbGwgb2YgdGhlc2UgYnVncyB3ZXJlCiAgIHNwZWNpZmljIHRvIDY0LWJpdCBzeXN0ZW1zLiBGaXhlcyBidWcgIzMwOTMxOTkuCgoyMDEwLTExLTE1IDE0OjA5ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA3aW5ldF9wdG9uX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CgogICBDb3BpZWQgdHdvIHVuaXQtdGVzdHMgZnJvbSB0aGUgdHJ1bmsuCgoyMDEwLTExLTE1IDE0OjA5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBNZXJnZWQgcmVjZW50IGNsaWJfYnVpbGQgY2hhbmdlcyBmcm9tIHRoZSB0cnVuay4KCjIwMTAtMTEtMTEgMjI6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBGaXggcjE5NjM2OiBUcmFwT0lEIGlzIG5vdCB0aGUgZmlyc3QgdmFyYmluZCBpbiB0aGUgY29udmVydGVkIHYyCiAgIHRyYXAKCjIwMTAtMTEtMTEgMDg6MzggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgQ2xlYW51cDogUmVtb3ZlZCBzdXBlcmZsdW91cyByZWZlcmVuY2VzIHRvIHRoZSBQT1NJWCB0aHJlYWRzCiAgIGxpYnJhcnkuCgoyMDEwLTExLTEwIDEyOjMxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IEJVRzogMzEwMjkwNDogQWxsIE5ldC1TTk1QIEMgc291cmNlIGZpbGVzIGFyZSBub3cKICAgY29tcGlsZWQgd2l0aCAtZm5vLXN0CiAgIHJpY3QtYWxpYXNpbmcsIGF0IGxlYXN0IGlmIHRoZSBjb25maWd1cmVkIGNvbXBpbGVyIHN1cHBvcnRzIHRoaXMKICAgZmxhZy4KCjIwMTAtMTEtMDkgMTM6NDcgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGU6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBUZXN0IFQwMzAgZG9lcyBub3cgcGFzcyBvbiBNaW5HVy4KCjIwMTAtMTEtMDkgMTM6NDAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBzaW1wbGVfZXZhbF90b29scy5zaDogUmVtb3ZlZCBhIHN1cGVyZmx1b3VzIElTREVGSU5FRCBpbnZvY2F0aW9uLgoKMjAxMC0xMS0wOSAxMjowNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlOgoKICAgQmFja3BvcnRlZCByMTk2NTMuCgoyMDEwLTExLTA5IDExOjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IElmIHRoZSBhZ2VudCBoYXMgYmVlbiBhc2tlZCB0byBzdG9wLAogICB3YWl0IHVudGlsIHRoZSBzbm1wZCBwcm9jZXNzIGRpc2FwcGVhcmVkIGJlZm9yZSBwcm9jZWVkaW5nLgoKMjAxMC0xMS0wOCAxNTozOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVGVzdCA3MSAoY29tMnNlYzZfc2ltcGxlKSBkb2VzIG5vdyBzdWNjZWVkIGV2ZW4KICAgaWYgSVB2NiBETlMgcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlLgogICAoQmFja3BvcnRlZCByMTk2NDguKQoKMjAxMC0xMS0wOCAwODo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFdpbjMyOiBhZ2VudDogZWxpbWluYXRlZCBjYXN0cyBmcm9tL3RvIGludCBmb3IgdGhyZWFkIGhhbmRsZXMuCgoyMDEwLTExLTA3IDIxOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyMTE5NzI1OiBGaXggc2tpcE5GU0luSG9zdFJlc291cmNlcwogICBoYW5kbGluZyBvZiBoclN0b3JhZ2VUYWJsZQoKMjAxMC0xMS0wNyAyMToxNCAgbWFnZnIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2Ygc3RyZHVwIGluCiAgIG5ldHNubXBfY3JlYXRlX2RhdGFfbGlzdCBhbmQgZmFpbCBpZiBzdHJkdXAgZmFpbHMuCgoyMDEwLTExLTA3IDE5OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzA5NjcyNTogRG9uJ3QgcmVnaXN0ZXIgdjFUcmFwIGNhbGxiYWNrLAogICBpZiBTTk1QdjEgaXMgbm90IHN1cHBvcnRlZAoKMjAxMC0xMS0wNyAxOTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDE4NDAyMzA6IERvbid0IGluY2x1ZGUgdGhlIGluZGV4IG9iamVjdCBhcwogICAocHNldWRvLSlhY2Nlc3NpYmxlIGNvbHVtbi4KCjIwMTAtMTEtMDcgMTk6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMDk2NzI1OiBJbmNsdWRlIFNOTVB2MSB0cmFwIE9JRHMgaW4KICAgbmxtTG9nTm90aWZpY2F0aW9uSUQgY29sdW1uCgoyMDEwLTExLTA3IDE2OjM1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZvcmNlIGEgOyBhdCB0aGUgZW5kIG9mIHRoZSBzdGF0aWNfYXNzZXJ0CiAgIG1hY3JvLgoKMjAxMC0xMS0wNSAxNTo0MSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgTWFkZSBzdXJlIHRoYXQgcnBtR2V0UGF0aCgpIGNhbiBiZSBmb3VuZCBieSBjb25maWd1cmUuCgoyMDEwLTExLTA1IDE0OjU4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIFJlbW92ZWQgbW9yZSBjb2RlIHRoYXQgd2FzIGFjY2lkZW50aWFsbHkgaW5zZXJ0ZWQgYnkgdGhlIHBhdGNoCiAgIHRvb2wuCgoyMDEwLTExLTA1IDE0OjU3ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmV2ZXJ0ZWQgcjE5NjIyLgoKMjAxMC0xMS0wNSAxNDo1MiAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBDbGVhbmVkIHVwIHIxOTYyNDogcmVtb3ZlZCBnYXJiYWdlIGFkZGVkIGJ5IHRoZSBwYXRjaCB0b29sLgoKMjAxMC0xMS0wNSAxMzo1NSAgYnZhc3NjaGUKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIENIQU5HRVM6IGFnZW50OiBGaXhlZCBvcmRlciBvZiBycG1saWIgZGV0ZWN0aW9uIGFuZCBhZ2VudCBtb2R1bGUKICAgY29uZmlndXJhdGlvbiAoYmFja3BvcnRlZCByMTk2MjEgZnJvbSB0cnVuaykuCgoyMDEwLTExLTA1IDEzOjM3ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVnZW5lcmF0ZWQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMTEtMDUgMTA6MDAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGhvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbTogRml4ZWQgYSBtZW1vcnkgbGVhawogICBpbiBuZXRzbm1fc3dpbnN0X2FyY2hfaW5pdCgpLgoKMjAxMC0xMS0wNSAwOToyMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtOiBQYXNzIGNvcnJlY3QgcGF0aCB0bwogICBycG1kYk9wZW4oKSBzdWNoIHRoYXQgb3BlbmluZyB0aGUgZGF0YWJhc2Ugc3VjY2VlZHMuCiAgIENIQU5HRVM6IGFnZW50OiBob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG06IExvZyBhbiBlcnJvciBtZXNzYWdlCiAgIGlmIHJwbWRiT3BlbigpIGZhaWxzLgoKMjAxMC0xMS0wNSAwODo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCBtYWNybyBuZXRzbm1wX3N0YXRpY19hc3NlcnQoKS4KCjIwMTAtMTEtMDQgMTM6MDkgIGR0czEyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIENIQU5HRVM6IExpbnV4OiBQQVRDSEVTOiAzMDgzMDI3OiBGaXggUlBNIHNwZWMgZmlsZSB0byBzdXBwb3J0CiAgIENlbnRPUwoKMjAxMC0xMS0wNCAxMjo0NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJldmVydGVkIHIxOTYwMSBhbmQgdGhlcmVieSByZWVuYWJsZWQgdGhlIGludm9jYXRpb24gb2YKICAgc2h1dGRvd25fbWFzdGVyX2FnZW50KCkgYW5kIHNodXRkb3duX2FnZW50KCkgZHVyaW5nCiAgIHNubXBfc2h1dGRvd24oKS4KCjIwMTAtMTEtMDMgMTM6MjIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMFRsc0lwdjZfc2ltcGxlOgoKICAgc2tpcCB0bHNpcHY2IHRlc3QgaWYgbm90IHRsc3RjcC90Y3BpcHY2IGRvbWFpbnMKCjIwMTAtMTEtMDEgMTY6NTAgIGR0czEyCgogICAqIG1hbi92YXJpYWJsZXMuNS5kZWY6CgogICBSZXdvcmsgZGVzY3JpcHRpb24gb2YgT0lEIG5hbWUgaGFuZGxpbmcgdG8gYmUKICAgbm90IHF1aXRlIHNvIGluY3JlZGlibHkgb3V0IG9mIGRhdGUuCgoyMDEwLTExLTAxIDE2OjQ3ICBkdHMxMgoKICAgKiBtYW4vc25tcGdldC4xLmRlZjoKCiAgIERvY3VtZW50IC1DZiBpbiB0aGUgdHdvIG1hbiBwYWdlcyBzZXBhcmF0ZWx5LgoKMjAxMC0xMS0wMSAxNjozMCAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCAgIAogICAgICBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcHNldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCBtYW4vc25tcHdhbGsuMS5kZWY6CgogICBSZW1vdmUgQ01VIGNvcHlyaWdodCBub3RpY2UgZnJvbSBtYW4gcGFnZXMgdGhhdAogICB3ZXJlIG5vdCBpbmhlcml0ZWQgZnJvbSBDTVUtU05NUAogICAoYW5kIHF1YWxpZnkgdGhlIGNvcHlyaWdodCBmb3IgdGhvc2UgdGhhdCB3ZXJlKS4KCjIwMTAtMTEtMDEgMTY6MjMgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFBhcnRpYWxseSByZXZlcnRlZCByMTk0ODUgYmVjYXVzZSBpdCB0cmlnZ2VyZWQgZG91YmxlIGZyZWVzCiAgIGR1cmluZyBzbm1wZCBleGl0ICh0aGlzIGNoYW5nZSBpcyBhbHJlYWR5IHByZXNlbnQgb24gdGhlIHRydW5rKS4KICAgQW4gZXhhbXBsZToKICAgCiAgID09MTg3MDk9PSBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSA4CiAgID09MTg3MDk9PSBhdCAweDRFNzZENTQ6IG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fZnJlZQogICAodGFibGUuYzoxMDA4KQogICA9PTE4NzA5PT0gYnkgMHg1MERCRUIyOiBzaHV0ZG93bl9zeXNPUlRhYmxlIChzeXNPUlRhYmxlLmM6Mjg2KQogICA9PTE4NzA5PT0gYnkgMHg1MThFMzdDOiBfc2h1dGRvd25fbWliX21vZHVsZXMKICAgKG1pYl9tb2R1bGVfc2h1dGRvd24uaDozKQogICA9PTE4NzA5PT0gYnkgMHg2MDNDQTdDOiBzbm1wX2NhbGxfY2FsbGJhY2tzIChjYWxsYmFjay5jOjMzOCkKICAgPT0xODcwOT09IGJ5IDB4NjAwRUFFNDogc25tcF9zaHV0ZG93biAoc25tcF9hcGkuYzo4OTgpCiAgID09MTg3MDk9PSBieSAweDQwNTE3RjogbWFpbiAoc25tcGQuYzoxMDY2KQogICA9PTE4NzA5PT0gQWRkcmVzcyAweDczMjI5NjAgaXMgMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDMyCiAgIGZyZWUnZAogICA9PTE4NzA5PT0gYXQgMHg0QzI2NDk2OiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOjM2NikKICAgPT0xODcwOT09IGJ5IDB4NEU3NjdDNzoKICAgbmV0c25tcF9mcmVlX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKHRhYmxlLmM6NzQpCiAgID09MTg3MDk9PSBieSAweDRFNDQxNkI6IG5ldHNubXBfaGFuZGxlcl9mcmVlCiAgIChhZ2VudF9oYW5kbGVyLmM6Njg1KQogICA9PTE4NzA5PT0gYnkgMHg0RTQ0MTRGOiBuZXRzbm1wX2hhbmRsZXJfZnJlZQogICAoYWdlbnRfaGFuZGxlci5jOjY4MCkKICAgPT0xODcwOT09IGJ5IDB4NEU0NDJBRjogbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlCiAgIChhZ2VudF9oYW5kbGVyLmM6NzQyKQogICA9PTE4NzA5PT0gYnkgMHg0RTQ2RjdDOiBuZXRzbm1wX3N1YnRyZWVfZnJlZQogICAoYWdlbnRfcmVnaXN0cnkuYzo0NjgpCiAgID09MTg3MDk9PSBieSAweDRFNDg2Qjk6IHVucmVnaXN0ZXJfbWliX2NvbnRleHQKICAgKGFnZW50X3JlZ2lzdHJ5LmM6MTc0NSkKICAgPT0xODcwOT09IGJ5IDB4NEU0MzBGQzogbmV0c25tcF91bnJlZ2lzdGVyX2hhbmRsZXIKICAgKGFnZW50X2hhbmRsZXIuYzozMjYpCiAgID09MTg3MDk9PSBieSAweDRFNzY4OTE6IG5ldHNubXBfdW5yZWdpc3Rlcl90YWJsZSAodGFibGUuYzoxMzcpCiAgID09MTg3MDk9PSBieSAweDRFN0IxMjQ6IG5ldHNubXBfY29udGFpbmVyX3RhYmxlX3VucmVnaXN0ZXIKICAgKHRhYmxlX2NvbnRhaW5lci5jOjMzNCkKICAgPT0xODcwOT09IGJ5IDB4NTBEQkU5MDogc2h1dGRvd25fc3lzT1JUYWJsZSAoc3lzT1JUYWJsZS5jOjI4MykKICAgPT0xODcwOT09IGJ5IDB4NTE4RTM3QzogX3NodXRkb3duX21pYl9tb2R1bGVzCiAgIChtaWJfbW9kdWxlX3NodXRkb3duLmg6MykKCjIwMTAtMTEtMDEgMTU6MjcgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBQYXJ0aWFsbHkgcmV2ZXJ0ZWQgcjE5NTExOiBkaXNhYmxlZCBpbnZvY2F0aW9uIG9mCiAgIHNodXRkb3duX21hc3Rlcl9hZ2VudCgpIGFuZCBzaHV0ZG93bl9hZ2VudCgpIGR1cmluZwogICBzbm1wX3NodXRkb3duKCkgYWdhaW4uCgoyMDEwLTExLTAxIDEzOjU1ICBkdHMxMgoKICAgKiBtYW4vdGttaWIuMS5kZWY6CgogICBTdXBwcmVzcyBmb3JjaW5nIG9mICJCZXJrZWxleSBEaXN0cmlidXRpb24iIGZvb3RlcgogICAoQWxsb3dzIE5ldC1TTk1QIHZlcnNpb24gaW5mb3JtYXRpb24gdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtYW4KICAgcGFnZSkKCjIwMTAtMTEtMDEgMTM6NDIgIGR0czEyCgogICAqIG1hbi9zbm1wdGFibGUuMS5kZWYsIG1hbi9zbm1wdGVzdC4xLmRlZjoKCiAgIFVwZGF0ZSBtYW4gcGFnZSBkYXRlc3RhbXBzIHRvIG1hdGNoIHRoZSBsYXRlc3QgKG5vbi10cml2aWFsKQogICBjb250ZW50IGNoYW5nZS4KCjIwMTAtMTAtMjkgMjI6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG51bGwgb3V0IGJpbyBwb2ludGVycyBhZnRlciBiZWluZyBmcmVlZDsgYmFpbCBvbiBjb25uZWN0aW9uCiAgIHdpdGggbm8gc3NsIHBvaW50ZXIKCjIwMTAtMTAtMjkgMTI6MTggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgU3BlbGxpbmcgZml4IGluIGxvZyB0ZXh0czogY29udGFpbnRlciAtPiBjb250YWluZXIuCgoyMDEwLTEwLTI5IDExOjM0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBCYWNrcG9ydGVkIHIxOTU4OCBhbmQgcjE5NTg5IGZyb20gdGhlIHRydW5rLgoKMjAxMC0xMC0yOSAwNzo1NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0xMC0yOCAxODozMSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXggY29uc3QgcXVhbGlmaWVyIHdhcm5pbmcKCjIwMTAtMTAtMjggMTc6NTMgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDbGVhbiBvdXQgU29sYXJpcyB3YXJuaW5ncwoKMjAxMC0xMC0yOCAxNzo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgTFZNIGlzIExpbnV4IG9ubHkKCjIwMTAtMTAtMjggMTc6NTEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEF2b2lkIGNoYXIgc3Vic2NyaXB0cyAoc2lnbmVkIGNoYXJzXCEpCgoyMDEwLTEwLTI4IDE3OjQzICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICBjYXN0cyBhbmQgZm9ybWF0IHNwZWNpZmllcnMgaW4gZGVidWcgb3V0cHV0CgoyMDEwLTEwLTI4IDE3OjQxICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBDYXN0IHRvIHNvY2thZGRyIHRvIGF2b2lkIHdhcm5pbmcKCjIwMTAtMTAtMjggMTc6NDAgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgVW50YW5nbGUgcGljbCBmcm9tIGtzdGF0IGFjY2VzcyBzbyBpdCBjb21waWxlcyBvbiB4ODYgU29scmFpcwogICAxMC9PcGVuU29sYXJpcwoKMjAxMC0xMC0yOCAxNDowMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBGaXggbG9naWMgb2YgdGVzdGluZyBmb3Igb3V0LW9mLXJhbmdlIGVudW0gdmFsdWVzLgogICBSZXBvcnRlZCBieSBCb3JpcyBad2VpbXVlbGxlci4KCjIwMTAtMTAtMjggMTI6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgR2V0IHJpZCBvZiBPcGVuU1NMLXJlbGF0ZWQgY29tcGlsYXRpb24gd2FybmluZ3MuIFNob3VsZCB3b3JrIGZvcgogICBib3RoIE9wZW5TU0wgdmVyc2lvbnMgMC45LnggYW5kIDEuMC54LgoKMjAxMC0xMC0yOCAxMTo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChtaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgIGFuZCBhcmd1bWVudCkgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByNjU2Mi4KCjIwMTAtMTAtMjggMTE6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5NTUwLgoKMjAxMC0xMC0yOCAxMTozMiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIFJldmVydGVkIHIxOTU2NSBiZWNhdXNlIGl0IGNhdXNlZCBnY2MgdG8gcmVwb3J0IG1vcmUgd2FybmluZ3MKICAgaW5zdGVhZCBvZiBsZXNzLgoKMjAxMC0xMC0yOCAxMDozMiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZpcnN0IHR3byBhcmd1bWVudHMgc3VjaCB0aGF0IGl0IGlzIG5vCiAgIGxvbmdlciBuZWNlc3NhcnkgdG8gY2FzdCB0aGVzZSB0d28gYXJndW1lbnRzIChoYXMgYmVlbiByZXZlcnRlZAogICB2aWEgcjE5NTY4KS4KCjIwMTAtMTAtMjggMDk6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgY3Jhc2ggaW4gbmV0c25tcF9jYWNoZV9yZW1vdmUoKS4KCjIwMTAtMTAtMjcgMjA6MzcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgU2l6ZW9mIGhhcyB0eXBlIHNpemVfdAoKMjAxMC0xMC0yNyAyMDozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0CgoyMDEwLTEwLTI3IDE4OjQwICBuYmEKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jOgoKICAgU3ByaW5rbGUgc29tZSB1bnNpZ25lZG5lc3Mgc28gdmFycyBhbmQgcGFyYW1zIGFncmVlIG9uIHR5cGUKCjIwMTAtMTAtMjcgMTg6MzggIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgSW5pdGlhbGl6ZSB2YXJzIHRoYXQgZ2NjIHRoaW5rcyBhcmUgdW5pbml0aWFsaXplZAoKMjAxMC0xMC0yNyAxODozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEEgbW9yZSBtZWFuaW5nZnVsIHRlc3QgZm9yIE1MRF9MSVNURU5FUl9RVUVSWQoKMjAxMC0xMC0yNyAxODozNSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgcHJvdG90eXBlcyBhbmQgaW5jbHVkZXMgd2VyZSBtaXNzaW5nCgoyMDEwLTEwLTI3IDE4OjMzICBuYmEKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRlc3QuYzoKCiAgIENoZWNrIGZnZXRzIHJldHVybgoKMjAxMC0xMC0yNSAyMDo1OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAzMDg4MzYwOiBFbnN1cmUgcHl0aG9uIG1vZHVsZXMgYXJlIGJ1aWx0CiAgIGFnYWluc3QgdGhlIGNvcnJlY3QgbGlicmFyaWVzCgoyMDEwLTEwLTI1IDIwOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwNTgxMDE6IFdyaXRlYWJsZSAnbG9uZycgaW5zdGFuY2VzIHdvcmsgb24KICAgNjQtYml0IHN5c3RlbXMsIGJ1dCBub3Qgd3JpdGFibGUgJ2ludCdzCgoyMDEwLTEwLTI1IDE2OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEb24ndCBhdHRlbXB0IHRvIHByb2Nlc3MgdW5yZWNvZ25pc2VkICJpZ25vcmUqIiBkaXJlY3RpdmVzLgogICBQYXNzIHRoZXNlIHRocm91Z2ggdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQgY29uZmlnIGhhbmRsZXJzCiAgIChpZiBhbnkpCgoyMDEwLTEwLTI1IDE1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeCBhIHN0dXBpZCB0eXBvCgoyMDEwLTEwLTI1IDE1OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwNjI1Mzg6IEZpeCBjb20yc2VjKiBoYW5kbGluZyBvZgogICBub24tZGVmYXVsdCBjb250ZXh0cwoKMjAxMC0xMC0yNSAxMjo1NCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlOgoKICAgQ0hBTkdFUzogV2luMzI6IHRlc3Rpbmc6IEF2b2lkIHRoYXQgVDIwMCBmYWlscyBvbiBrbm93biBNaWNyb3NvZnQKICAgU05NUCBleHRlbnNpb24gRExMIGJ1Z3MuCgoyMDEwLTEwLTI1IDA4OjA2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgTkVXUzogTGludXg6IHNubXBkIGlzIGFnYWluIHNpbmdsZS10aHJlYWRlZC4KICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTU5ODExOiBmcm9tIEphbiBTYWZyYW5lazogUmVpbXBsZW1lbnQKICAgTGludXggTmV0bGluayBJUHY2IHByZWZpeCBsaXN0ZW5lci4KCjIwMTAtMTAtMjUgMDc6NDIgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlZCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLgoKMjAxMC0xMC0yNSAwNjoyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIGluY2x1ZGUgbmVlZGVkIHByb3RvdHlwZXMKCjIwMTAtMTAtMjUgMDY6MTYgIG5iYQoKICAgKiAgYXBwcy9zbm1wdGxzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEFkanVzdCB0eXBlcyB0byBiZXR0ZXIgbWF0Y2ggdXNhZ2UKCjIwMTAtMTAtMjUgMDY6MTUgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFJldmVhbCBoaWRkZW4gLWUgYW5kIC11IG9wdGlvbnMKCjIwMTAtMTAtMjUgMDY6MTQgIG5iYQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgaW5jbHVkZSBuZWVkZWQgcHJvdG90eXBlcwoKMjAxMC0xMC0yNSAwNjowMSAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgaW5jbHVkZSBuZWVkZWQgcHJvdG90eXBlcwoKMjAxMC0xMC0yNSAwNjowMCAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jOgoKICAgY29uc3QtanVnZ2xpbmcgLSB3ZSBkb250IGxpa2Ugd2FybmluZ3MKCjIwMTAtMTAtMjMgMTE6MDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgYW5vdGhlciBjcmFzaCBpbiBuZXRzbm1wX2NhY2hlX3JlbW92ZSgpLgoKMjAxMC0xMC0yMyAxMTowMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUmVtb3ZpbmcgdGhlIGxhc3QgY2FjaGUgdmlhCiAgIG5ldHNubXBfY2FjaGVfcmVtb3ZlKCkgZG9lcyBubyBsb25nZXIgdHJpZ2dlciBhIGNyYXNoLgoKMjAxMC0xMC0yMiAwOToyMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogbmV0c25tcF9jYWNoZV9mcmVlKCk6IEEgbW9yZSBkZXRhaWxlZCBtZXNzYWdlIGlzCiAgIG5vdyBsb2dnZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGZyZWUgYSBjYWNoZSB0aGF0IGlzIHN0aWxsIGluIHRoZQogICBjYWNoZSBsaXN0LgogICAoQmFja3BvcnRlZCByMTk1MjQuKQoKMjAxMC0xMC0yMiAwOToxOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEJhY2twb3J0ZWQgcjE5NTI1OiBtYWRlIHN1cmUgdGhhdCBjbGVhbl9zdWJ0cmVlKCkgZGVhbGxvY2F0ZXMgYWxsCiAgIGNvbnRleHQgY2FjaGUgbm9kZXMuCgoyMDEwLTEwLTIwIDEzOjEyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIEZpeCBub24tQU5TSSBmdW5jdGlvbiBoZWFkaW5nCgoyMDEwLTEwLTIwIDEwOjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCiAgIENIQU5HRVM6IGFnZW50OiBDYWxsIHNodXRkb3duX21hc3Rlcl9hZ2VudCgpIGFuZCBzaHV0ZG93bl9hZ2VudCgpCiAgIGR1cmluZyBzaHV0ZG93bi4KICAgQ0hBTkdFUzogYWdlbnQ6IFRoZSBmdW5jdGlvbiBjbGVhbl9zdWJ0cmVlKCkgZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBkb3VibGUgZnJlZXMgYW5kIGludmFsaWQgbWVtb3J5IHJlYWRzLiBOb3RlOiB0aGlzCiAgIGZ1bmN0aW9uIHdhcyBhbHJlYWR5IHdyb25nIGF0IHRoZSB0aW1lIGl0IHdhcyBpbnRyb2R1Y2VkIChwYXRjaAogICAjNzI0OTI1IC8gcjg1MzEsIEp1bHkgMjAwMykuCiAgIENIQU5HRVM6IGFnZW50OiBSZW1vdmVkIGEgY29tbWVudCBpbiBuZXRzbm1wX2hhbmRsZXJfZnJlZSgpIHRoYXQKICAgaXMgbm93IG9ic29sZXRlIGJlY2F1c2Ugb2YgdGhlIGNsZWFuX3N1YnRyZWUoKSBjaGFuZ2VzLgogICBDSEFOR0VTOiBhZ2VudDogTW9kaWZpZWQgbmV0c25tcF9kZXJlZ2lzdGVyX2FnZW50X25zYXAoKSBzdWNoCiAgIHRoYXQgaXQgbmV2ZXIgZXhhbWluZXMgc2Vzc2lvbnMgdGhhdCBhbHJlYWR5IGhhdmUgYmVlbiBjbG9zZWQuIEl0CiAgIGlzIGZvciB0aGlzIGNoYW5nZSB0aGF0IGl0IHdhcyBuZWNlc3NhcnkgdG8gaW50cm9kdWNlIHRoZSBuZXcKICAgZnVuY3Rpb24gc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCgoyMDEwLTEwLTE5IDIxOjEzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQlVHIDMwNzkwNzIgZnJvbSBEYXZlIEJlYWw6IGZpeCBidWZmZXIgb3ZlcmZsb3cgZnJvbSBiYWQgdXNlIG9mCiAgIHN0cm5jYXQKCjIwMTAtMTAtMTkgMjA6NTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgUEFUQ0g6IDMwODUyOTUgZnJvbSBCaWxsIEZlbm5lcjogcmVjb2duaXplIExJU1RFTiBzdGF0ZSBhZ2FpbgoKMjAxMC0xMC0xOSAyMDowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jOgoKICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTEwLTE5IDIwOjA4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBGaXggcmV0dXJuaW5nIGdhcmJhZ2UgaW4gaHJTV0luc3RhbGxlZE5hbWUgKHNlZSByZXYgMTk0ODQgZm9yCiAgIGZ1cnRoZXIgbm90ZXMpCgoyMDEwLTEwLTE5IDE5OjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHVuc2FmZSAoJSkgZGV2aWNlIG5hbWVzCgoyMDEwLTEwLTE5IDE5OjU3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBTb2xhcmlzIGRvZXMgbm90IHVzZSBnZXRzdGF0LCBzbyBkb250IGRlY2xhcmUgaXQKCjIwMTAtMTAtMTkgMTk6NTYgIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIHVkcC90Y3AgY29uZnVzaW9uIGluIGRlYnVnIGhhbmRsZQoKMjAxMC0xMC0xOSAxOTo1NCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBBYm9ydCBhZnRlciBiYWQgLUM/IG9wdGlvbgoKMjAxMC0xMC0xOSAxOTo1MyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBEZWxldGUgcmVkdW5kYW50IGV4dGVybiBkZWNsYXJhdGlvbnMKCjIwMTAtMTAtMTkgMTg6MDggIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEF2b2lkIHRoYXQgTVNWQyAyMDEwIHByaW50cyBhIHdhcm5pbmcKICAgbWVzc2FnZSBhYm91dCByZWRlZmluaW5nIEVBRERSSU5VU0UuCgoyMDEwLTEwLTE5IDE4OjA1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCBNU1ZDIHJlcG9ydHMgYSB3YXJuaW5nIG1lc3NhZ2UgYWJvdXQKICAgcmVkZWZpbml0aW9uIG9mIHRoZSBtYWxsb2MoKSBtYWNybyBkdXJpbmcgYnVpbGRpbmcgdGhlIE5ldC1TTk1QCiAgIHNvdXJjZSBjb2RlLgoKMjAxMC0xMC0xOCAxMDozNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIEJhY2twb3J0ZWQgcjE5NDkxIHRvIHRoZSBWNS42IGJyYW5jaCAoY29tcGlsZXIgd2FybmluZyBmaXgpLgoKMjAxMC0xMC0xOCAwODo1MiAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBXaGVuIHNubXBkLmV4ZSBpcyBzdGFydGVkIGluIGEgY29tbWFuZCBwcm9tcHQKICAgd2luZG93LCB0aGUgc25tcGQgcHJvY2VzcyBub3cgc3RvcHMgdXBvbiB0aGUgZmlyc3Qga2V5IHByZXNzLgogICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBkZWJ1ZyBzbm1wZC5leGUgZm9yIG1lbW9yeSBsZWFrcy4KCjIwMTAtMTAtMTggMDY6MjUgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGhvdXQgd2FybmluZ3Mgd2l0aCBNU1ZDIDYuCgoyMDEwLTEwLTE4IDA2OjE1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDSEFOR0VTOiBzbm1wZDogVXNlIHRoZSBzYW1lIGF1dG9jb25mIHN5bWJvbCB0byBkZWNpZGUgYm90aCBpZgogICBzdHJjYXNlY21wIHNob3VsZCBiZSBkZWNsYXJlZCBhbmQgaWYgaXQgc2hvdWxkIGJlIGRlZmluZWQuCgoyMDEwLTEwLTE3IDE4OjI5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQgdGhhdCB3YXMgdHJpZ2dlcmVkIGJ5CiAgIGNsZWFuaW5nIHVwIHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCBmb3IgZW1iZWRkZWQgUGVybCBzdXBwb3J0LgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZpeGVkIGEgZG91YmxlIGZyZWUgYXQgZXhpdCB0aGF0IHdhcwogICB0cmlnZ2VyZWQgYnkgY2xlYW5pbmcgdXAgdGhlIGRhdGEgc3RydWN0dXJlcyB1c2VkIGZvciBlbWJlZGRlZAogICBQZXJsIHN1cHBvcnQuCiAgIAogICBWYWxncmluZCByZXBvcnRlZCB0aGF0IGRvdWJsZSBmcmVlIGFzIGZvbGxvd3M6CiAgIAogICBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSA0CiAgIGF0IDB4NTlEMDUwMTogcGVybF9kZXN0cnVjdCAoaW4KICAgL3Vzci9saWIvcGVybDUvNS4xMi4xL3g4Nl82NC1saW51eC10aHJlYWQtbXVsdGkvQ09SRS9saWJwZXJsLnNvKQogICBieSAweDU0NERGOEU6IHNodXRkb3duX3BlcmwgKHNubXBfcGVybC5jOjE2NikKICAgYnkgMHg0MDM5NjY6IHRlcm1faGFuZGxlciAoc25tcHRyYXBkLmM6MzE4KQogICBieSAweDZENDNBNUY6ID8/PyAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBBZGRyZXNzIDB4NzY2MGY4OCBpcyA1NiBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDIsOTEyIGZyZWUnZAogICBhdCAweDRDMjY0OTY6IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MzY2KQogICBieSAweDU0NERGOUE6IHNodXRkb3duX3BlcmwgKHNubXBfcGVybC5jOjE2NykKICAgYnkgMHg0MDM5NjY6IHRlcm1faGFuZGxlciAoc25tcHRyYXBkLmM6MzE4KQogICBieSAweDZENDNBNUY6ID8/PyAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEREFERjI6IF9fc2VsZWN0X25vY2FuY2VsIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NDA0RTIwOiBtYWluIChzbm1wdHJhcGQuYzoxMjU4KQoKMjAxMC0xMC0xNyAxNzozMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgdGhhdCBWYWxncmluZCBjb21wbGFpbnMgYWJvdXQKICAgdW5pbml0aWFsaXplZCBkYXRhIGZvciB0aGUgYnVmZmVycyByZXR1cm5lZCBieQogICBuZXRzbm1wX2NhbGxiYWNrX3JlY3YoKSBhbmQgbmV0c25tcF9jYWxsYmFja19ob29rX2J1aWxkKCkuCgoyMDEwLTEwLTE3IDE2OjU3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogdGFibGVfaGVscGVyX2hhbmRsZXIoKSwgNjQtYml0IGFyY2hpdGVjdHVyZXM6CiAgIGF2b2lkIHBhc3NpbmcgYSBwb2ludGVyIHRvIGEgMzItYml0IHZhbHVlIHRvIGEgZnVuY3Rpb24gdGhhdAogICBleHBlY3RzIGEgcG9pbnRlciB0byBhIDY0LWJpdCB2YWx1ZSAocGFyc2Vfb25lX29pZF9pbmRleCgpKS4gTm90CiAgIHN1cmUgd2hhdCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgYnVnIHdlcmUuIEl0IG1pZ2h0IGhhdmUgY2F1c2VkCiAgIHZlcnkgc3RyYW5nZSB0YWJsZSBiZWhhdmlvciBvbiA2NC1iaXQgYmlnIGVuZGlhbiBzeXN0ZW1zLgogICBGb3VuZCB0aGlzIHZpYSBWYWxncmluZC4KCjIwMTAtMTAtMTcgMTY6NTEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBoclNXUnVuUGF0aCBjb250YWlucyB0cmFpbGluZyBnYXJiYWdlCiAgIGNoYXJhY3RlcnMgb24gTGludXggc3lzdGVtcy4KICAgRm91bmQgdGhpcyBieSBhbmFseXppbmcgYSBWYWxncmluZCBjb21wbGFpbnQuIEZvciBhbnlvbmUgd2hvIGlzCiAgIHdvbmRlcmluZyB3aHkgdGhpcyBwYXRjaCBtYWtlcyBzZW5zZSwgYSBxdW90ZSBmcm9tIHRoZSBnbGliYwogICBzbnByaW50ZigpIGRvY3VtZW50YXRpb24KICAgKGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjL21hbnVhbC9odG1sX25vZGUvRm9ybWF0dGVkLU91dHB1dC1GdW5jdGlvbnMuaHRtbCk6CiAgIDxxdW90ZT4KICAgVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd2hpY2ggd291bGQgYmUKICAgZ2VuZXJhdGVkIGZvciB0aGUgZ2l2ZW4gaW5wdXQsIGV4Y2x1ZGluZyB0aGUgdHJhaWxpbmcgbnVsbC4gSWYKICAgdGhpcyB2YWx1ZSBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHNpemUsIG5vdCBhbGwgY2hhcmFjdGVycyBmcm9tCiAgIHRoZSByZXN1bHQgaGF2ZSBiZWVuIHN0b3JlZCBpbiBzLgogICA8L3F1b3RlPgogICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZGlmZmVycyBmcm9tIHRoZSBzdGFuZGFyZCBiZWhhdmlvci4gQSBxdW90ZQogICBmcm9tIGh0dHA6Ly9vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA3OTA4Nzk5L3hzaC9zbnByaW50Zi5odG1sOgogICA8cXVvdGU+CiAgIFJFVFVSTiBWQUxVRQogICBVcG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiwgdGhlc2UgZnVuY3Rpb25zIHJldHVybiB0aGUgbnVtYmVyIG9mCiAgIGJ5dGVzIHRyYW5zbWl0dGVkIGV4Y2x1ZGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCBpbiB0aGUgY2FzZSBvZgogICBzcHJpbnRmKCkgb3Igc25wcmludGYoKSBvciBhIG5lZ2F0aXZlIHZhbHVlIGlmIGFuIG91dHB1dCBlcnJvcgogICB3YXMgZW5jb3VudGVyZWQuCiAgIDwvcXVvdGU+CgoyMDEwLTEwLTE3IDE0OjMxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdGluZzogSXQgaXMgYWdhaW4gcG9zc2libGUgdG8gcnVuIGFuIGluZGl2aWR1YWwgdGVzdAogICB2aWEgdGhlIHNjcmlwdCB0ZXN0aW5nL1JVTlRFU1RTLgoKMjAxMC0xMC0xNyAxNDoyNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmg6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGRlY2xhcmF0aW9uOiB0aGUgZnVuY3Rpb24gYWdlbnR4X2J1aWxkKCkgaGFzCiAgIGJlZW4gcmVtb3ZlZCBhIGxvbmcgdGltZSBhZ28uCgoyMDEwLTEwLTE3IDEyOjAxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRm9sbG93LXVwIGZvciByMTk0Nzc6IG1hZGUgdGhlIGluc2VydGVkIHR5cGVjYXN0cyBwb3J0YWJsZS4KCjIwMTAtMTAtMTcgMTE6MDQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxOTQ3NjogZml4ZWQgYSB0eXBvLgoKMjAxMC0xMC0xNyAwOTozNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzIGJ5IGluc2VydGluZyBhcHByb3ByaWF0ZSBjYXN0cy4KCjIwMTAtMTAtMTcgMDk6MjUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS1yZWxhdGVkIGNsZWFudXAuCgoyMDEwLTEwLTE2IDA4OjM3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgU3BlbGxpbmcgZml4OiBkdWxwaWNhdGUgLT4gZHVwbGljYXRlLgoKMjAxMC0xMC0xNSAxOToxNyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FnZW50bGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhZ2VudGxpYl9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jLAogICAgICAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEludHJvZHVjZWQgbmV3IHRlc3QgdHlwZSBuZXh0IHRvIGNhcHAgYW5kIGNsaWI6CiAgIGNhZ2VudGxpYi4KCjIwMTAtMTAtMTUgMTg6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMTAtMTUgMTI6NTQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2xpYi5jOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVW5pdCB0ZXN0cyBjYW4gbm93IGludm9rZSBmdW5jdGlvbnMgZnJvbQogICBsaWJhZ2VudC4KICAgQ0hBTkdFUzogdGVzdGluZzogQWRkZWQgdW5pdCB0ZXN0IGZvciB0YWJsZV9kYXRhc2V0LgogICAoQmFja3BvcnRlZCBmcm9tIHIxOTQ1MCBmcm9tIHRoZSB0cnVuay4pCgoyMDEwLTEwLTE1IDEyOjUzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGZ1bmN0aW9uIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KCkuCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24KICAgbmV0c25tcF90YWJsZV9kYXRhX2RlbGV0ZV90YWJsZSgpIGluIGEgcHVibGljIGFnZW50IGhlYWRlciBmaWxlLgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBtZW1vcnkgbGVhayBpbgogICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuCiAgIChCYWNrcG9ydGVkIHIxOTQ1MCBhbmQgcjE5NDU0IGZyb20gdHJ1bmsuKQoKMjAxMC0xMC0xNSAxMjozMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CgogICBSZXZlcnRlZCByMTk0NjAgYmVjYXVzZSBpdCBtYWtlcyBzb21lIHJlZ3Jlc3Npb24gdGVzdHMgZmFpbAogICAoVDEyMHByb3h5Z2V0X3NpbXBsZSwgVDEyMXByb3h5c2V0X3NpbXBsZSwKICAgVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsIFQyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUpLiBEaXNhYmxlZCB0aGUKICAgaGFuZGxlciBkdXBsaWNhdGlvbiB0ZXN0IGluIFQwMDYgYmVjYXVzZSBpdCB0cmlnZ2VycyBhIGNyYXNoCiAgIHdpdGhvdXQgcjE5NDYwLgoKMjAxMC0xMC0xNSAxMTozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogbmV0c25tcF9oYW5kbGVyX2R1cCgpOiBmcmVlaW5nIHRoZSBkdXBsaWNhdGVkCiAgIGhhbmRsZXIgbm8gbG9uZ2VyIGNhdXNlcyBhIGNyYXNoIChkb3VibGUgZnJlZSkgd2hlbgogICBoYW5kbGVyLT5teXZvaWQgb2YgdGhlIG9yaWdpbmFsIGhhbmRsZXIgd2FzIG5vbi1OVUxMLgoKMjAxMC0xMC0xNSAxMTozMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CgogICBBZGRlZCBhIHVuaXQgdGVzdCBmb3IgaGFuZGxlciByZWdpc3RyYXRpb24gYW5kIGRlcmVnaXN0cmF0aW9uLgoKMjAxMC0xMC0xNSAxMDo1NiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQKICAgY29tcGlsZXIuCgoyMDEwLTEwLTE0IDIzOjAxICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQmUgY29uc3QgY29ycmVjdCBvdmVyIGNhbGxzIHRvIHN0ciogZnVuY3Rpb25zLgoKMjAxMC0xMC0xNCAyMjo1NyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ0hBTkdFUzogdGVzdGluZzogR2VuZXJhdGUgYSBub3JtYWwgI2xpbmUgZGlyZWN0aXZlIGFzIHBlciBDOTkKICAgaW5zdGVhZCBvZiB0aGUgY29tcGlsZXItc3BlY2lmaWMgIzxuPi1kaXJlY3RpdmUuCgoyMDEwLTEwLTE0IDE0OjA1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgVW5pdCB0ZXN0IFQwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOiBGaXhlZCBsZWFrcy1hdC1leGl0LgoKMjAxMC0xMC0xNCAwODo0MyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9ydW46CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBJdCBpcyBub3cgcG9zc2libGUgdG8gYW5hbHl6ZSB0aGUgdW5pdCB0ZXN0cwogICB3aXRoIFZhbGdyaW5kIGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcwogICBTTk1QX1NBVkVfVE1QRElSIGFuZCBEWU5BTUlDX0FOQUxZWkVSLiBBbiBleGFtcGxlOiAoZXhwb3J0CiAgIFNOTVBfU0FWRV9UTVBESVI9eWVzIERZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kCiAgIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbGVhay1jaGVjaz1mdWxsIjsgY2QgdGVzdGluZyAmJgogICAuL1JVTkZVTExURVNUUyAtZyB1bml0LXRlc3RzKQoKMjAxMC0xMC0xNCAwODo0MCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIFVuaXQgdGVzdCBUMDA0c25tcF9lbnVtX2NsaWIuYzogYWRkZWQgdGVzdCBoZWFkZXIgLyBhZGRlZCBhIHRlc3QKICAgY2FzZS4KCjIwMTAtMTAtMTQgMDg6MzkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgRml4ZWQgbGVha3MtYXQtZXhpdCBpbiB1bml0IHRlc3QgVDAwMmNvbnRhaW5lcnNfY2xpYi5jLgoKMjAxMC0xMC0xNCAwODozOCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIEZpeGVkIGEgbGVhay1hdC1leGl0IGluIHVuaXQgdGVzdCBUMDAxZGVmYXVsdHN0b3JlX2NsaWIuYy4KCjIwMTAtMTAtMTQgMDg6MzYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgY2FsbGluZwogICBzZV9hZGRfcGFpcl90b19saXN0KCkgd2l0aCBhIHZhbHVlIHRoYXQgYWxyZWFkeSBleGlzdGVkIGluIHRoZQogICBsaXN0LgoKMjAxMC0xMC0xNCAwNzoxNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZzoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMTAtMTQgMDc6MTIgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDBjb25maWd1cmUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMGNvbmZpZ3VyZV9zaW1wbGU6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgdmFyaWFibGUgJFNOTVBfQkFTRURJUiBpcyBhdmFpbGFibGUgaW4gdGhlCiAgIFQwMDBjb25maWd1cmUgdGVzdC4KCjIwMTAtMTAtMTQgMDU6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIFF1ZWxsIHdhcm5pbmdzCgoyMDEwLTEwLTE0IDAzOjI4ICByc3RvcnkKCiAgICogIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgdHJhbnNwb3J0U2VjdXJpdHlMZXZlbCBiYXNlZCBvbiBzc2wgc2Vzc2lvbiBhbGdvcml0aG1zCgoyMDEwLTEwLTE0IDAzOjI2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYWRkIG5ldHNubXBfb3BlbnNzbF9udWxsX2NoZWNrcwoKMjAxMC0xMC0xNCAwMzoyMyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjbGVhbnVwIHNzbC9iaW8gb24gZmFpbGVkIGNvbm5lY3Rpb24KCjIwMTAtMTAtMTQgMDM6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZwoKMjAxMC0xMC0xNCAwMzoxOCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAxMC0xMC0xNCAwMzoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG8KCjIwMTAtMTAtMTQgMDM6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgY2hlY2sgZm9yIG51bGwgYmVmb3JlIGRlcmVmCgoyMDEwLTEwLTEzIDE2OjU1ICBoYXJkYWtlcgoKICAgKiBkaXN0L2F1dG9jb25mLXZlcnNpb24sIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMGNvbmZpZ3VyZToKCiAgIGFkZGVkIGEgYXV0b2NvbmYgdmVyc2lvbiBjaGVja2luZyB0ZXN0IHRvIGNhdGNoIGRldmVsb3BlcnMgYW5kCiAgIHNjcmlwdHMgdGhhdCBmYWlsIHRvIHVzZSB0aGUgY29ycmVjdCBhdXRvY29uZiB2ZXJzaW9uCgoyMDEwLTEwLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFBhdGNoIGZyb20gQmlsbCBGZW5uZXIgdG8gZml4IG9ubHkgaW5jbHVkaW5nIHRoZSBzZXNzaW9uX2FwaS5oCiAgIGZpbGUKCjIwMTAtMTAtMTMgMTY6MjkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDIxOiBNYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgYWdhaW4gcmVwb3J0cwogICB0aGUgcHJvcGVyIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciBpbmZvcm1hdGlvbiB3aGlsZSBjb21waWxpbmcKICAgdW5pdCB0ZXN0cy4KCjIwMTAtMTAtMTMgMTE6NTMgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGJhdGNoIGJ1aWxkIHdpdGggT3BlblNTTCBlbmFibGVkIGFuZAogICB3aXRoIHJlY2VudCBPcGVuU1NMIGRldmVsb3BtZW50IGZpbGVzIHdvcmtzIGFnYWluLgoKMjAxMC0xMC0xMyAwOTo1OCAgYnZhc3NjaGUKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfcnVuOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBSdW5uaW5nIHRoZSB1bml0IHRlc3RzIGRvZXMgbm93IHdvcmsgKGNkIHRlc3RpbmcKICAgJiYgLi9SVU5GVUxMVEVTVFMgLWcgdW5pdC10ZXN0cykuCiAgIENIQU5HRVM6IE1pbkdXOiBSdW5uaW5nIHRoZSB1bml0IHRlc3RzIGRvZXMgbm93IHdvcmsgKGNkIHRlc3RpbmcKICAgJiYgLi9SVU5GVUxMVEVTVFMgLWcgdW5pdC10ZXN0cykuCgoyMDEwLTEwLTEzIDA4OjAwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgRml4ZWQgYSBzcGVsbGluZyBlcnJvciBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTEwLTEzIDA3OjQzICBidmFzc2NoZQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTcGVsbGluZyBmaXhlcy4KCjIwMTAtMTAtMTIgMTQ6MDIgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIEFkZGVkIGRlY2xhcmF0aW9uIGZvciBzZV9jbGVhcl9zbGlzdCgpLgoKMjAxMC0xMC0xMiAxMToxMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIEFkZGVkIG1vcmUgdGVzdCBjYXNlcyB0bwogICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jLgogICBWZXJpZmllZCB3aXRoIFZhbGdyaW5kIHRoYXQgZXZlcnl0aGluZyBkb2VzIG5vdyB3b3JrIGNvcnJlY3RseQogICBhbmQgdGhhdCB0aGUKICAgdGVzdCBwcm9ncmFtIGlzIGZyZWUgb2YgbGVha3MtYXQtZXhpdC4KCjIwMTAtMTAtMTIgMTE6MTEgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEludm9raW5nIHNlX2NsZWFyX3NsaXN0KCkgZG9lcyBubyBsb25nZXIgY3JlYXRlCiAgIGEgZGFuZ2xpbmcgcG9pbnRlci4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgbGVha3MtYXQtZXhpdCB0cmlnZ2VyZWQgYnkgdXNpbmcgdGhlCiAgIHNubXBfZW51bSBjb2RlLgogICBDSEFOR0VTOiBzbm1wbGliOiBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyKCksCiAgIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkgYW5kIGNsZWFyX3NubXBfZW51bSgpLiBNYWRlIHNubXBfZW51bQogICBleGFtcGxlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZSBieSBhZGRpbmcgc3RyZHVwKCkKICAgY2FsbHMgYW5kIGFkZGVkIGEgY2FsbCB0byBzZV9jbGVhcl9hbGxfbGlzdHMoKS4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgY29ycnVwdGlvbiBwcm9ibGVtIHRyaWdnZXJlZCBieQogICB0aGUgKHVuZG9jdW1lbnRlZCkgc25tcGQuY29uZiAiZW51bSIga2V5d29yZCBoYW5kbGVyIC0gc3RvcmluZwogICBwb2ludGVycyB0byBzdHJpbmdzIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sgaW4gYSBnbG9iYWwgbGlzdCBkb2VzCiAgIG5vdCB3b3JrLgogICBDSEFOR0VTOiBzbm1wbGliOgoKMjAxMC0xMC0xMiAwNjoyNyAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvbGliaGVscGVycywgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzA4NTE4NzogQnVpbGRpbmcgdmlhIHRoZSBNaWNyb3NvZnQgVmlzdWFsCiAgIFN0dWRpbyBwcm9qZWN0IGZpbGUgKC5kc3cvLmRzcCkgd29ya3MgYWdhaW4uCgoyMDEwLTEwLTEyIDA1OjM1ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgZXh0ZXJuICJDIiBkZWNsYXJhdGlvbnMgdG8gYmUKICAgY29uc2lzdGVudC4gUmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZS4KCjIwMTAtMTAtMTEgMjE6NDEgIG5iYQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMTAtMTAtMTEgMjE6MzkgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfYXB0LmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIFN1cHBvcnQgZm9yIGhyU1dJbnN0YWxsZWRUYWJsZSBmb3IgZHBrZy9hcHQtYmFzZWQgc3lzdGVtcwoKMjAxMC0xMC0xMSAyMDo0NiAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL3JmY2xpc3Q6CgogICBVcGRhdGUgc291cmNlcyBmb3IgU05NUC1UTFMtVE0tTUlCCgoyMDEwLTEwLTExIDIwOjQyICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDaGVjayBlYXJseSBmb3IgcGljbC5oCgoyMDEwLTEwLTExIDIwOjMxICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvc2Vuc29ycy5oOgoKICAgRml4IHdhcm5pbmdzIGZyb20gbG1zZW5zb3JNaWIKCjIwMTAtMTAtMTEgMjA6MzAgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuYzoKCiAgIEZpeCBuZXcgc3R5bGUgbG1zZW5zb3JNaWIgZm9yIFNvbGFyaXMgKHdhcyBpdCBldmVyIGNvbXBpbGVkCiAgIGJlZm9yZSkKCjIwMTAtMTAtMTEgMjA6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEZpeCBsbVNlbnNvcnMgZm9yIFNvbGFyaXMKCjIwMTAtMTAtMTEgMjA6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYzoKCiAgIEZpeCBhIFNvbGFyaXMgZmlsZSBkZXNjcmlwdG9yIGxlYWsKCjIwMTAtMTAtMTEgMjA6MjUgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE1ha2UgLS1kaXNhYmxlLWRldmVsb3BlciB3b3JrCgoyMDEwLTEwLTExIDE4OjIzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBDSEFOR0VTOiBzbm1wZDogVXBkYXRlIHRoZSBsZW5ndGggb2Ygc3lzT2JqZWN0SUQgYXMgd2VsbCBhcyB0aGUKICAgZGF0YSB3aGVuIGl0IGlzIHNldCBmcm9tIGEgY29uZmlndXJhdGlvbiBmaWxlLgoKMjAxMC0xMC0xMSAxNzo1OCAgbWFnZnIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGZyb20gIk5pZWxzIEJhZ2dlc2VuIjogU29tZSBzeXN0ZW1zIGRvIG5vdAogICBzdXBwb3J0IHRoZSAtRSBmbGFnIHRvIGdyZXAsIHVzZSBhdXRvY29uZiB0byBmaW5kIHRoZSByaWdodCBlZ3JlcAogICBhdCBhbGwgdGltZXMuCgoyMDEwLTEwLTExIDE0OjExICBoYXJkYWtlcgoKICAgKiAuOgoKICAgY3JlYXRlIHBhdGNoIGJyYW5jaCBjb3B5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LlJDMyAtPiBWNS42CgoyMDEwLTEwLTA3IDIwOjMzICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMTAtMDYgMTE6MzEgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBGaXggaXB2NiBnZW5lcmljIGNhc2Ugc28gdGVzdCBtYXRjaGVzIHZlcmlmaWNhdGlvbgoKMjAxMC0xMC0wMSAxNjo0NCAgZHRzMTIKCiAgICogbWFuL3ZhcmlhYmxlcy41LmRlZjoKCiAgIFJld29yayBkZXNjcmlwdGlvbiBvZiBPSUQgbmFtZSBoYW5kbGluZyB0byBiZQogICBub3QgcXVpdGUgc28gaW5jcmVkaWJseSBvdXQgb2YgZGF0ZS4KCjIwMTAtMDktMjIgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGVyZy4uLiByZWFsbHkgdXNlIHRoZSByaWdodCBhdXRvY29uZiB2ZXJzaW9uIGJ5IHNldHRpbmcgdGhlIHBhdGgKICAgcmlnaHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucmMyIC0+IFY1LjYucmMzCgoyMDEwLTA5LTIxIDIzOjUzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZWdlbmVyYXRlZCB3aXRoIHByb3BlciBhdXRvY29uZiB2ZXJzaW9uCgoyMDEwLTA5LTIxIDIzOjQ5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDktMjEgMjM6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB2ZXJpZmllZCBwYXRjaCBmcm9tIHJzdG9yeSB0byBmaXggY2VydGlmaWNhdGUgbG9hZGluZyBvZgogICBpbmNvbXBsZXRlIGNoYWlucwoKMjAxMC0wOS0yMSAxODowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2ggMzA1ODM4ODogZnJvbSBjaHJpc2JvbHQ6IGRvbid0IHBhcnNlCiAgIGluY2x1ZGVBbGxEaXNrcyBpbiB0aGUgbWFpbiBzbm1wbGliIHJvdXRpbmVzCgoyMDEwLTA5LTIxIDE4OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzA2MjUyNjogZnJvbSBtYXJpb2c4NTogZml4IHNlY3VyaXR5CiAgIGVuZ2luZUlEIHNldHRpbmcgaW4gdGhlIHRyYXBzZXNzIGRpcmVjdGl2ZQoKMjAxMC0wOS0yMSAxNToxMyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBXaW4zMiBkb2N1bWVudGF0aW9uLgoKMjAxMC0wOS0yMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgUGF0Y2ggZnJvbSBGdWxrbyBIZXcgdG8gZml4IHBhdGNoIDI5MDAwNzggd2hpY2ggYnJva2Ugc3lzT2JqZWN0SUQKICAgbGVuZ3RocwoKMjAxMC0wOS0yMCAyMTozMiAgZHRzMTIKCiAgICogbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZjoKCiAgIERvY3VtZW50IC1DZiBpbiB0aGUgdHdvIG1hbiBwYWdlcyBzZXBhcmF0ZWx5LgoKMjAxMC0wOS0yMCAyMDoyMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMDY3NTQwOiBmcm9tIGpveWNlYW5tYWNoaW5lOiBGaXggSVB2NAogICBPSUQgaW5kZXhlcyBvbiA2NC1iaXQgYmlnLWVuZGlhbiBzeXN0ZW1zLgoKMjAxMC0wOS0yMCAxOToyNSAgYnZhc3NjaGUKCiAgICogIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgd2luMzIvQ29uZmlndXJlLCAgIAogICAgICB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJkbGwuZHN3OgoKICAgVW4tYnJlYWsgdGhlIE1TVkMgYnVpbGQuCgoyMDEwLTA5LTIwIDA5OjE4ICBidmFzc2NoZQoKICAgKiBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cywgbWFuLCB0ZXN0aW5nLCB3aW4zMjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdHMuCgoyMDEwLTA5LTE3IDEwOjM0ICBkdHMxMgoKICAgKiAgbWFuL2FnZW50eHRyYXAuMS5kZWYsIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3NubXBidWxrZ2V0LjEuZGVmLCAgIAogICAgICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCAKICAgICAgICBtYW4vc25tcHNldC4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAgIAogICAgICBtYW4vc25tcHdhbGsuMS5kZWY6CgogICBSZW1vdmUgQ01VIGNvcHlyaWdodCBub3RpY2UgZnJvbSBtYW4gcGFnZXMgdGhhdCB3ZXJlIG5vdAogICBpbmhlcml0ZWQgZnJvbSBDTVUtU05NUCAoYW5kIHF1YWxpZnkgdGhlIGNvcHlyaWdodCBmb3IKICAgdGhvc2UgdGhhdCB3ZXJlKS4KCjIwMTAtMDktMTcgMDk6NTEgIGR0czEyCgogICAqICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcF9hbGFybS4zLmRlZiwgbWFuL3NubXBfY29uZmlnLjUuZGVmLCAKICAgICAgICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgIAogICAgICBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFVwZGF0ZSBtYW4gcGFnZSByZWZlcmVuY2VzIHRvIHJlZmxlY3QgbmV3IEFQSSBkb2N1bWVudGF0aW9uCiAgIHN0cnVjdHVyZS4KCjIwMTAtMDktMTAgMDQ6MjMgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBuZXcgdGVzdCogZW50cmllcyBmcm9tIHRoZSB0ZXN0aW5nCiAgIE1ha2VmaWxlLmluIHRvIHRoZSB0b3AtbGV2ZWwgTWFrZWZpbGUuaW4KCjIwMTAtMDktMDggMTU6NDEgIGR0czEyCgogICAqICBtYW4vYWdlbnR4dHJhcC4xLmRlZiwgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsICAgCiAgICAgIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCBtYW4vZml4cHJvYy4xLmRlZiwgICAKICAgICAgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZiwgbWFuL21pYjJjLjEuZGVmLCBtYW4vbWliMmMuY29uZi41LmluLCAgIAogICAgICBtYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmLCBtYW4vbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuMS5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wLWJyaWRnZS1taWIuMSwgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBfYWxhcm0uMy5kZWYsIAogICAgICAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBidWxrZ2V0LjEuZGVmLCAgIAogICAgICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBjb25mLjEuZGVmLCAgIAogICAgICBtYW4vc25tcGQuOC5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYsICAKICAgICAgIG1hbi9zbm1wZC5pbnRlcm5hbC41LmRlZiwgbWFuL3NubXBkZWx0YS4xLmRlZiwgbWFuL3NubXBkZi4xLmRlZiwgCiAgICAgICAgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBuZXRzdGF0LjEuZGVmLAogICAgICAgICBtYW4vc25tcHNldC4xLmRlZiwgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsICAKICAgICAgIG1hbi9zbm1wdGVzdC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgCiAgICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLAogICAgICBtYW4vc25tcHVzbS4xLmRlZiwgICAgbWFuL3NubXB2YWNtLjEuZGVmLCBtYW4vc25tcHdhbGsuMS5kZWYsCiAgICAgIG1hbi90a21pYi4xLmRlZiwgICAgbWFuL3RyYXB0b2VtYWlsLjEuZGVmLCBtYW4vdmFyaWFibGVzLjUuZGVmOgoKICAgVXBkYXRlIG1hbiBwYWdlIGRhdGVzdGFtcHMgdG8gbWF0Y2ggdGhlIGxhdGVzdCAobm9uLXRyaXZpYWwpCiAgIGNvbnRlbnQgY2hhbmdlLgogICBTdXBwcmVzcyBmb3JjaW5nIG9mICJCZXJrZWxleSBEaXN0cmlidXRpb24iIGZvb3RlcgogICAoQWxsb3dzIE5ldC1TTk1QIHZlcnNpb24gaW5mb3JtYXRpb24gdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtYW4KICAgcGFnZSkKCjIwMTAtMDktMDggMDU6MzcgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlZ2VuZXJhdGVkCgoyMDEwLTA5LTA0IDA2OjM4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5MzU2IGJ5CiAgIGNoYW5naW5nIHRoZSByZXR1cm4KICAgdHlwZSBvZiBuZXRzbm1wX3Rsc2Jhc2VfZnJlZV90bHNkYXRhKCkgZnJvbSB2b2lkKiB0byB2b2lkLgoKMjAxMC0wOS0wNCAwNjozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5MzIyIChwYXRjaAogICAzMDQ0NTEyKS4KICAgVGhlIHRoaXJkIGFyZ3VtZW50IHBhc3NlZCB0byByZWFkX29iamlkKCkgd2FzIGFuIGludCBpbnN0ZWFkIG9mCiAgIHNpemVfdC4KICAgVGhpcyBjb3VsZCBoYXZlIGNhdXNlZCBtZW1vcnkgY29ycnVwdGlvbiBvbiA2NC1iaXQgc3lzdGVtcy4KCjIwMTAtMDktMDQgMDM6MDkgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wOS0wNCAwMzowOCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDktMDQgMDE6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOS0wNCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTAzIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHRsc3RjcCBwYXJzaW5nIG9mIGhvc3QgbmFtZXMuCgoyMDEwLTA5LTAzIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzoKCiAgIGNoZWNrIHRoZSByZXR1cm4gY29kZSBvZiBmZ2V0cyBhbmQgZm9wZW4gYmVmb3JlIGluc2VydGluZyB0aGUKICAgcmVzdWx0cy4KCjIwMTAtMDktMDMgMjI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUGF0Y2ggZnJvbSB0YW5kZXJzIHRvIGZpeCBicm9rZW4gYWxhcm1zIGFmdGVyIHRoZSBwcmV2aW91cwogICByZS1lbnRyYW50IHBhdGNoCgoyMDEwLTA5LTAzIDIyOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTg2NDU6IGZyb20gam9yaXNlc2F0dXJudXM6IG1vZGlmaWVkCiAgIHZlcnNpb24gb2YgdGhlIHBhdGNoIHRvIHVzZSBNU0dfRE9OVFdBSVQgZm9yIHRoZSB1bml4IGRvbWFpbgogICBzb2NrZXQKCjIwMTAtMDktMDMgMjE6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTgxNDA6IGZyb20gdGFrZXZvczogY2hlY2sgdGhhdCBpbm9kZSBpcwogICBub24temVybwoKMjAxMC0wOS0wMyAyMTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQyODogZnJvbSB0YWtldm9zOiBmaXgKICAgZ2V0X3BpZF9mcm9tX2lub2RlIHdoZW4gdGhlIGlub2RlIGlzIG5vdCBmb3VuZC4KCjIwMTAtMDktMDMgMjA6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgZHVwbGljYXRlIHJldHVybiBiZWZvcmUgdGhlIGVycm9yIGNvZGVzIGdldCBzZXQuCgoyMDEwLTA5LTAxIDE4OjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogTG9nIGJlZm9yZSByZXR1cm5pbmcuCgoyMDEwLTA5LTAxIDAyOjQzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIFRMUyBzZW5kX25vdGlmeSBvbiBjbG9zdXJlIGFuZCBzb21lIG1lbW9yeSBjbGVhbi11cCBwYXRjaGVzCgoyMDEwLTA4LTMxIDE3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPbmx5IHByaW50IHRoZSBzZWN1cml0eS9jb250ZXh0IEVuZ2luZUlEIG1pc21hdGNoIG5vdGUgdW5kZXIgVVNNCgoyMDEwLTA4LTI1IDE1OjEzICByc3RvcnkKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSByZWZlcmVuY2UgdG8gcmV2ZXJ0ZWQgcGF0Y2ggMzA0Mjc2NQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgbm90ZSBvbiB3aGVyZSB0byBmaW5kIGNvbnRlbnQgdXNlZCB0byBnZW5lcmF0ZQogICBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHJldmVydCByMTkzNDIsIHBhdGNoIDMwNDI3NjUsIHdoaWNoIGJyb2tlIGNsaWVudCB0Y3AgZGlzY29ubmVjdAogICBoYW5kbGluZwoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggbW9yZSBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBjaGVjayBmb3IgY29uZiBlcnJvcnMgYWZ0ZXIgYWdlbnQgc3RhcnR1cDsgZW5hYmxlIGxvZ1RpbWVzdGFtcDsKICAgbWFrZSBzdXJlCiAgIGFsbCBjZXJ0IG5hbWUvdGFncyBhcmUgdW5pcXVlCgoyMDEwLTA4LTI0IDIxOjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCBlcnJvciBzdHJpbmcgdG8gZGlzY3VzcyB0aGUgcmlnaHQgZmFpbGVkIG9wZW5zc2wgbmV3CiAgIGludm9jYXRpb24KCjIwMTAtMDgtMjQgMDU6MzcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogQ29ycmVjdCBpZmRlZnMsIHJlbW92ZSBkZWFkIHZhcmlhYmxlcy4KCjIwMTAtMDgtMTkgMjE6MjIgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wOC0xOSAyMToyMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDgtMTkgMjE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDgtMTkgMjE6MTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICAvLyAtPiBDIGNvbW1lbnRzCgoyMDEwLTA4LTE5IDIwOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDgtMTkgMjA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDMwNDI3NjU6IGZyb20gbWVoYWY6IG1ha2UKICAgc25tcF9zeW5jaF9yZXNwb25zZV9jYigpIHJlLWVudHJhbnQKCjIwMTAtMDgtMTkgMjA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgdHVybiBvZmYgY29va2llIGV4Y2hhbmdlcyB1bnRpbCBhIGNvbXBsZXRlIGNvZGUgc2V0IGNhbiBiZQogICB3cml0dGVuIHRvIHN1cHBvcnQgaXQgYmFzZWQgb24gdGhlIHJlcXVpcmVkIGZ1bmN0aW9uIGNhbGxiYWNrcwoKMjAxMC0wOC0xNyAxODozMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBhZGQgbWlzc2luZyBjYWxsIHRvIHN0b3JlIHBlcnNpc3RlbnQgZGF0YSBhcyBuZWVkZWQKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogd2hlbiBkaXNwbGF5aW5nIGEgYnl0ZSBhcyBzaW5nbGUgZGlnaXQgaGV4CiAgIHZhbHVlLCBkZWZhdWx0IHRvCiAgIHByZWZpeGluZyB3aXRoIDAgdW5sZXNzIHRoZXJlIGlzIGEgc2VwZXJhdG9yIG9yIGFkZGl0aW9uIGhpbnQKICAgZGF0YQoKMjAxMC0wOC0xNyAxMDozMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgYW4gdW51c2VkIGxhYmVsIHRoYXQgd2FzIHRyaWdnZXJlZAogICB3aGVuCiAgIGNvbXBpbGluZyB3aXRob3V0IFNTTCBzdXBwb3J0LgoKMjAxMC0wOC0xNiAyMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI3OTAyNDk6IGZyb20gd2lsbHB3aWxscDogcmVkdWNlIGNhY2hlIHRpbWUKICAgZm9yIHRoZSBpZnRhYmxlIHRvIDNzZWNvbmRzIHRvIGluY3JlYXNlIGFjY3VyYWN5CgoyMDEwLTA4LTE2IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBDSEFOR0VTOiBwZXJsOiBwYXRjaCAzMDQ2MzcxOiBmcm9tIGNocmlzdG9waGI0OiBGaXggbWVtb3J5IGxlYWsKICAgaW4gU05NUHYxIHRyYXAgaGFuZGxpbmcuCgoyMDEwLTA4LTE2IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyODI1NjUzOiBmcm9tIGJydTVjZTogZml4IHNlbmRtYWlsLmNmCiAgIHBhcnNpbmcgaW4gY2VydGFpbiBjb25kaXRpb25zCgoyMDEwLTA4LTE2IDEwOjE2ICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBCdWlsZCBuZXRzbm1wX2FnZW50X2FwaS4zIG1hbiBwYWdlIGZyb20gdGVtcGxhdGUKCjIwMTAtMDgtMTYgMDk6MjAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IERvY3VtZW50YXRpb24gKFByb3ZpZGVkIGJ5IFRvbWFzegogICBMaXMpCgoyMDEwLTA4LTE2IDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBSZS1vcmRlciBjb2RlIHRvIGdyb3VwIHJlbGF0ZWQKICAgZnVuY3Rpb25zIHRvZ2V0aGVyCgoyMDEwLTA4LTE2IDA3OjQyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyOTk1MDk4OiBGaXggY3JlYXRpb24gb2YgU05NUHYzIHNlc3Npb25zCiAgIHdpdGggQVBJX1NJTkdMRQoKMjAxMC0wOC0xNCAxNjozMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmVtb3ZlIHJlZHVuZGFudCB2YXJpYWJsZXMKCjIwMTAtMDgtMTQgMTY6MjMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkwNDkwMDogRG9jdW1lbnRhdGlvbiBwbHVzIGFzc29ydGVkCiAgIGhhbmRsZXIgY29kZSBmaXhlcwoKMjAxMC0wOC0xNCAwOToyOCAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgUmVzdG9yZSBhZ2VudCBBUEkgbWFuIHBhZ2UKICAgRG9uJ3QgdHJ5IHRvIGV4dHJhY3QgbXVsdGlwbGUgbWFuIHBhZ2UgbGlua3MgcGVyIGxpbmUKICAgKHdoaWNoIHJ1bnMgaW50byBwcm9ibGVtcyB3aXRoIE9TLXNwZWNpZmljIGxpbmUgZW5kaW5ncykuCiAgIEluc3RlYWQsIGVuc3VyZSB0aGUgbWFuIHBhZ2UgTkFNRSBzZWN0aW9uIGxpc3RzIG9uZQogICByb3V0aW5lIHBlciBsaW5lCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggYnJva2VuIE1ha2VmaWxlIGFmdGVyIG1hbiBwYWdlIG1vdmVzCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQsIG1pYnMvcmZjbGlzdDoKCiAgIHVwZGF0ZWQgVExTIE1JQiB0byBjdXJyZW50IGNvcHkKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZXBsYWNlZCBSRkMgY29tbWVudCBudW1iZXIKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2g6IDMwNDI3NzA6IGZyb20gbWVoYWY6IE1hZGUgcnVuX2FsYXJtcygpCiAgIHJlZW50cmFudAoKMjAxMC0wOC0xMyAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDQ0NTEyOiBmcm9tIHBoaWx3ZWJzdGVyOiBmaXggc3lzb2JqZWN0aWQKICAgZGlyZWN0aXZlLgoKMjAxMC0wOC0xMyAxOTowMCAgcnN0b3J5CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXg6CgogICB1c2UgMTI3LjAuMC4xIGluc3RlYWQgb2YgbG9jYWxob3N0IGFzIGRlZmF1bHQgU05NUF9URVNUX0RFU1Qgc28KICAgVExTIHRlc3RzIHdvcmsKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogaW1wbGVtZW50ZWQgYSBmaXggZm9yIHRoZSBpc3N1ZSByZXBvcnRlZCBpbgogICBwYXRjaCAjMzA0Mjc3MC4gQ3JlYXRlZCBhIHNubXBfc2VsZWN0X2luZm9fZmxhZ3MgZnVuY3Rpb24sIGFuZAogICBzaW1pbGFyLCB0aGF0IGFsbG93IGZvciBhbGFybXMgdG8gbm90IGJlIHJ1bi4gVGhpcyBpcyB0aGVuIHVzZWQKICAgaW4gdGhlIHN5bmNoX3Jlc3BvbnNlIGZ1bmN0aW9ucyB0byBhdm9pZCAxMDAlIENQVSBsb29wcwoKMjAxMC0wOC0xMyAxODo1MCAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1ha2Ugc25tcHRyYXBkIHJlZ2lzdGVyIHRoZSBjZXJ0dG9zZWNuYW1lIHRhYmxlIGluIHRoZSBhZ2VudHgKICAgcmVnaXN0cmF0aW9ucwoKMjAxMC0wOC0xMyAxODo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIG1pbm9yIHdvcmRpbmcgYWRkaXRpb25zCgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmM6CgogICBDSEFOR0VTOiBhaXg6IFBBVENIOiAyODg2NTk4OiBmcm9tIGV4c25hZnU6IEhlYWRlciBmaXhlcyBmb3IKICAgY29tcGlsaW5nIG9uIEFJWDYKCjIwMTAtMDgtMTMgMTU6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbnRvLXFueDYuaDoKCiAgIE5FV1M6IHBvcnRzOiBQQVRDSDogMjgzNjg5NTogZnJvbSBzZWFuYm91ZHJlYXU6IHN1cHBvcnQgZm9yIFFOWDYKCjIwMTAtMDgtMTMgMTQ6MzMgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWY6CgogICAnZW5mb3JjZSBuZXRzbm1wIHByZWZpeGVzCgoyMDEwLTA4LTEzIDE0OjI5ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3Nlc3Npb25fYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgbWFuL3BkdV9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9jb25maWdfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyMCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGRveHlnZW4uY29uZjoKCiAgIERvbid0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgbWFuIHBhZ2VzCgoyMDEwLTA4LTEzIDE0OjE4ICBkdHMxMgoKICAgKiAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9lcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIG1hbi9zbm1wX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsIG1hbi9zbm1wX3NlbmQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19hc3luY19zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfY2xvc2UuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19lcnJvci4zLCBtYW4vc25tcF9zZXNzX2luaXQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19vcGVuLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfcmVhZC4zLCBtYW4vc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfc2VuZC4zLCBtYW4vc25tcF9zZXNzX3Nlc3Npb24uMywgICAKICAgICAgbWFuL3NubXBfc2Vzc190aW1lb3V0LjMsIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMywgICAKICAgICAgbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMsIG1hbi9zbm1wX3RpbWVvdXQuMzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgbWFuIHBhZ2UgbGlua3MKICAgKFNob3VsZCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSwgYnV0IGRvbid0IGV4aXN0IGFueSBtb3JlCiAgIGFueXdheSkKCjIwMTAtMDgtMTMgMTQ6MTMgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9hZGRfbWliZGlyLjMsIG1hbi9hZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsICAKICAgICAgIG1hbi9nZXRfbW9kdWxlX25vZGUuMywgbWFuL2luaXRfbWliLjMsIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMywgCiAgICAgICAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbGVhZi4zLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zZXRfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93LjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgICAKICAgICAgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMywgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsIG1hbi9wcmludF9taWIuMywgIAogICAgICAgbWFuL3ByaW50X29iamlkLjMsIG1hbi9wcmludF92YWx1ZS4zLCBtYW4vcHJpbnRfdmFyaWFibGUuMywgICAKICAgICAgbWFuL3JlYWRfYWxsX21pYnMuMywgbWFuL3JlYWRfbWliLjMsIG1hbi9yZWFkX21vZHVsZS4zLCAgIAogICAgICBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLCBtYW4vcmVhZF9vYmppZC4zLCBtYW4vc2h1dGRvd25fbWliLjM6CgogICBSZW1vdmUgRG94eWdlbi1nZW5lcmF0ZWQgbWFuIHBhZ2VzLCBhbmQgdGhvc2UgbGlua2luZwogICBpbmRpdmlkdWFsIHJvdXRpbmVzIHRvIHRoZSBhcHByb3ByaWF0ZSBtYW4gcGFnZS4KICAgKFRoZXNlIGFyZSBiZXR0ZXIgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5KQoKMjAxMC0wOC0xMyAxMjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBQcm9tcHQgZm9yIHdoZXRoZXIgdG8gZ2VuZXJhdGUgY2FjaGluZyBjb2RlIG9yIG5vdC4KCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBSZXdvcmsgZ3VpZGFuY2UgcXVlc3Rpb25zIHdoZW4gc2VsZWN0aW5nIHRoZSBiZXN0IHRhYmxlIGZyYW1ld29yawogICB0byB1c2UuCiAgIEVuc3VyZSB0YWJsZSBoYW5kbGluZyBjb2RlIGRvZXNuJ3Qgb3ZlcndyaXRlIHNjYWxhciBoYW5kbGluZwogICBjb2RlLgogICBDaGVjayB0aGF0IHRoZSBzdGFydGluZyBwb2ludCBpcyBzdWl0YWJsZSBmb3IgTWZEIGZyYW1ld29yay4KCjIwMTAtMDgtMTIgMTU6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IGNvZGUgYnJva2VuIGJ5ICdjb21waWxlciB3YXJuaW5nIGZpeCcgaW4gcjE5MTc5CgoyMDEwLTA4LTEyIDE1OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgYSBkdXBsaWNhdGUgdmFsdWUgY2hlY2sKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBhZGQgYSB0ZXN0IHdoZXJlIHdlIGNhbiB0cnVzdCBhIENBLXNpZ25lZCBjZXJ0IGFuZCB3ZSBkb24ndCB0cnVzdAogICB0aGUgQ0EKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICB0ZXN0IGEgZGlyZWN0bHkgbWFwcGVkIENBIGNlcnRpZmljYXRlCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBjaGFuZ2UgdGhlIGxhQ29uZmlnIHRvIHJlYWQtd3JpdGUgdG8gbWF0Y2ggdGhlIHBhdGNoCgoyMDEwLTA4LTExIDIyOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDI5MzE0NDY6IGZyb20gYWhtYWtlOiBtYWtlIHRoZSBsb2FkIGF2ZXJhZ2VzCiAgIHdyaXRhYmxlLgoKMjAxMC0wOC0xMSAwNjo0MyAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgoKICAgQ0hBTkdFUzogU2lsZW5jZSBzb21lIGNvbXBpbGF0aW9uIHdhcm5pbmdzIGZyb20gdGVzdCBjYXNlcy4KCjIwMTAtMDgtMDkgMjE6MDkgIG1hZ2ZyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogSGFuZGxlIGVtYmVkZGVkICUncyBpbiB0aGUgcmVzdWx0IG1lc3NhZ2UuCgoyMDEwLTA4LTA5IDIxOjA3ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIENIQU5HRVM6IERvIG5vIGRvdWJsZSBkZWNsYXJlIHRoZSBpbmRleCB2YWx1ZXMuCgoyMDEwLTA4LTA1IDExOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFVwZGF0ZSAiYXV0aCoiIHVzYWdlIG1lc3NhZ2Ugd2l0aCBjb250ZXh0IHN1cHBvcnQKCjIwMTAtMDgtMDIgMjA6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEZpeCB0d28gc2lsbHkgbWlzdGFrZXMuCgoyMDEwLTA4LTAyIDE0OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBBSVggZmlsZXN5c3RlbSB0eXBlcyBhcmUgdGFnZ2VkIGFzIGludGVnZXJzLCBub3Qgc3RyaW5ncy4KCjIwMTAtMDgtMDIgMTM6NDkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBmaXggUGVybCBzeXN0ZW0oKSBjb25maWd1cmUgY2hlY2sgdG8gd29yayByZWxpYWJseSBvbiBzeXN0ZW1zCiAgIHRoYXQgbGFjawogICBQZXJsCgoyMDEwLTA4LTAyIDExOjA4ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogbWFkZSBpdCBwb3NzaWJsZSB0byBhbmFseXplIGFsbCBjb2RlIGNvdmVyZWQgYnkKICAgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgd2l0aCBhIGR5bmFtaWMgYW5hbHl6ZXIsIGF0IGxlYXN0IGlmIHRoYXQKICAgYW5hbHl6ZXIgc3VwcG9ydHMgZm9sbG93aW5nIGNoaWxkIHByb2Nlc3Nlcy4gQW4gZXhhbXBsZToKICAgCiAgIHJtIC1yZiAvdG1wL3NubXAtdGVzdC0qCiAgIG1ha2UgLXMKICAgU05NUF9TQVZFX1RNUERJUj15ZXMgRFlOQU1JQ19BTkFMWVpFUj0idmFsZ3JpbmQKICAgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS10cmFjay1vcmlnaW5zPXllcyIgbWFrZSAtcyB0ZXN0CiAgIGdyZXAgLWkgdW5pbml0aWFsaXNlZCAvdG1wL3NubXAtdGVzdC0qIHwgeGFyZ3MgbGVzcwoKMjAxMC0wOC0wMiAxMTowMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jOgoKICAgRml4ZWQgdGhlIGZvbGxvd2luZyB0d28gVmFsZ3JpbmQgY29tcGxhaW50czoKICAgCiAgIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKICAgYXQgMHg2RDcwMkUwOiB2ZnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEOTlEMTE6IHZzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEN0E0MTI6IHNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkUxNDQzNzogaW5ldF9udG9hIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NUU1RTIxOTogbmV0c25tcF9pcHY0X2ZtdGFkZHIgKHNubXBJUHY0QmFzZURvbWFpbi5jOjIxNSkKICAgYnkgMHg1RTY1NzE3OiBuZXRzbm1wX3RjcF9mbXRhZGRyIChzbm1wVENQRG9tYWluLmM6NzApCiAgIGJ5IDB4NUU1NjdFQzogbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcKICAgKHNubXBfdHJhbnNwb3J0LmM6MjI0KQogICBieSAweDVFMjQ3OUE6IF9zZXNzX3Byb2Nlc3NfcGFja2V0IChzbm1wX2FwaS5jOjU0NDEpCiAgIGJ5IDB4NUUyNUUzNzogX3Nlc3NfcmVhZCAoc25tcF9hcGkuYzo2MDM3KQogICBieSAweDVFMjYxREE6IHNubXBfc2Vzc19yZWFkMiAoc25tcF9hcGkuYzo2MTQ5KQogICBieSAweDVFMjYyODI6IHNubXBfcmVhZDIgKHNubXBfYXBpLmM6NTc0MCkKICAgYnkgMHg0MDRERTQ6IG1haW4gKHNubXBkLmM6MTIyNykKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NUU2NTczOTogbmV0c25tcF90Y3BfYWNjZXB0IChzbm1wVENQRG9tYWluLmM6ODIpCiAgIGJ5IDB4NUUyNTM4MzogX3Nlc3NfcmVhZCAoc25tcF9hcGkuYzo1Nzg2KQogICBieSAweDVFMjYxREE6IHNubXBfc2Vzc19yZWFkMiAoc25tcF9hcGkuYzo2MTQ5KQogICBieSAweDVFMjYyODI6IHNubXBfcmVhZDIgKHNubXBfYXBpLmM6NTc0MCkKICAgYnkgMHg0MDRERTQ6IG1haW4gKHNubXBkLmM6MTIyNykKICAgCiAgIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKICAgYXQgMHg2RjdCMkUwOiB2ZnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZGQTREMTE6IHZzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZGODU0MTI6IHNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NzAxRjQzNzogaW5ldF9udG9hIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NTZGQTIxOTogbmV0c25tcF9pcHY0X2ZtdGFkZHIgKHNubXBJUHY0QmFzZURvbWFpbi5jOjIxNSkKICAgYnkgMHg1NzAxNzE3OiBuZXRzbm1wX3RjcF9mbXRhZGRyIChzbm1wVENQRG9tYWluLmM6NzApCiAgIGJ5IDB4NTZGMjdFQzogbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcKICAgKHNubXBfdHJhbnNwb3J0LmM6MjI0KQogICBieSAweDU2RjI5NEY6IG5ldHNubXBfdHJhbnNwb3J0X3NlbmQgKHNubXBfdHJhbnNwb3J0LmM6MjQ4KQogICBieSAweDU2QkM0ODc6IHNubXBfc2Vzc19hc3luY19zZW5kIChzbm1wX2FwaS5jOjUyMDQpCiAgIGJ5IDB4NTZCQzY1MTogc25tcF9hc3luY19zZW5kIChzbm1wX2FwaS5jOjQ5OTgpCiAgIGJ5IDB4NTZCQzY3Nzogc25tcF9zZW5kIChzbm1wX2FwaS5jOjQ5ODQpCiAgIGJ5IDB4NTY5ODQ0MDogc25tcF9zeW5jaF9yZXNwb25zZV9jYiAoc25tcF9jbGllbnQuYzoxMDA2KQogICBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCiAgIGF0IDB4NEMyNzBBNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKICAgYnkgMHg1NzAxQjNFOiBuZXRzbm1wX3RjcF90cmFuc3BvcnQgKHNubXBUQ1BEb21haW4uYzoxNjMpCiAgIGJ5IDB4NTcwMUU2RjogbmV0c25tcF90Y3BfY3JlYXRlX3RzdHJpbmcgKHNubXBUQ1BEb21haW4uYzozMDUpCiAgIGJ5IDB4NTZGMzgwNDogbmV0c25tcF90ZG9tYWluX3RyYW5zcG9ydF9mdWxsCiAgIChzbm1wX3RyYW5zcG9ydC5jOjYwMSkKICAgYnkgMHg1NkYzQUNDOiBuZXRzbm1wX3RyYW5zcG9ydF9vcGVuX2NsaWVudAogICAoc25tcF90cmFuc3BvcnQuYzo2NjkpCiAgIGJ5IDB4NTQzNDRGNjogc3ViYWdlbnRfb3Blbl9tYXN0ZXJfc2Vzc2lvbiAoc3ViYWdlbnQuYzo3NTgpCiAgIGJ5IDB4NTQzNDlDODogYWdlbnR4X3Jlb3Blbl9zZXNzaW9uIChzdWJhZ2VudC5jOjg2OSkKICAgYnkgMHg1NDM0RDAwOiBzdWJhZ2VudF9zdGFydHVwIChzdWJhZ2VudC5jOjk5KQogICBieSAweDU2RUFFQjc6IHNubXBfY2FsbF9jYWxsYmFja3MgKGNhbGxiYWNrLmM6MzM4KQogICBieSAweDU2REU2RkI6IHJlYWRfY29uZmlncyAocmVhZF9jb25maWcuYzoxMDE4KQogICBieSAweDU2QzI4N0U6IGluaXRfc25tcCAoc25tcF9hcGkuYzo4NTApCiAgIGJ5IDB4NDA0NzdCOiBtYWluIChzbm1wdHJhcGQuYzoxMDQ4KQoKMjAxMC0wOC0wMSAwNjoxMSAgYnZhc3NjaGUKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIEZpeGVkIHNwZWxsaW5nIGVycm9ycyByZXBvcnRlZCBieSBpc3BlbGwgLWwuCgoyMDEwLTA4LTAxIDA2OjAwICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX2VudW0uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHRleHQgc3RyaW5nIGluIGEgdW5pdCB0ZXN0OiByZXN0dXJhbnQgLT4KICAgcmVzdGF1cmFudC4KCjIwMTAtMDgtMDEgMDU6NTMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIERvY3VtZW50ZWQgYmVoYXZpb3Igb2Ygc2VfYWRkX3BhaXJfdG9fc2xpc3QoKS4KCjIwMTAtMDctMzEgMjM6NTAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTAuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE5MjY2OiBhZGQgbWlzc2luZyBoZWFkZXIgZmlsZSB0byBzdXBwb3J0IE1hYyBPUyBYCiAgIDEwLjYKICAgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCgoyMDEwLTA3LTMxIDIwOjM4ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MzUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDctMzEgMjA6MjQgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDoxMSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBjaGFuZ2VkIHRoZSBuYW1lIG9mIHRoZSByZWFkbWUgc2VjdGlvbiB0byBjYWxsIG91dCBORVdTLXRvbwoKMjAxMC0wNy0zMSAyMDoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG1pc3NpbmcgbmV3cyBpdGVtcwoKMjAxMC0wNy0zMCAxMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSCAzMDM1MzI4OiBmcm9tOiBzd3M6IGNoZWNrIHRoZSByZXN1bHRzIG9mCiAgIHNlc3Npb24gY3JlYXRpb24gZm9yIGEgZmFpbHVyZSBjYXNlLgoKMjAxMC0wNy0zMCAxMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogcGF0Y2ggMzAzNTU3ODogZnJvbSBzd3M6IGtlZXAgZXJyb3IgY29kZXMgdXAgdG8KICAgZGF0ZQoKMjAxMC0wNy0yOSAxNTo0OCAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjQ3ICBkdHMxMgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBBZGQgc3VwcG9ydCBmb3IgTWFjIE9TIFggMTAuNiAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKICAgKE9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyB0aGUgc2FtZSBhcyBNYWMgT1MgWCAxMC41CiAgIChMZW9wYXJkIC0gImRhcndpbjkiKSkKCjIwMTAtMDctMjkgMTU6MDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gb2YgJ3ZhX2xpc3QnIGZvciB2YXJhcmdzLWJhc2VkIEFQSXMKCjIwMTAtMDctMjkgMTQ6NTggIGR0czEyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3lzdGVtLmM6CgogICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgQUlYIDcKICAgKG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyBpZGVudGljYWwgdG8gQUlYIDYpCgoyMDEwLTA3LTI5IDE0OjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgRGlzYWJsZSBlbWJlZGRlZCBwZXJsIGJ5IGRlZmF1bHQgb24gYXJjaGl0ZWN1cmVzIHdoZXJlCiAgIHRoaXMgc2VlbXMgdG8gY2F1c2UgcHJvYmxlbXMgKEhQLVVYICYgTWFjIE9TIFgpCgoyMDEwLTA3LTI5IDExOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBHdWFyZCBhZ2FpbnN0IGJsYW5rICdpbmNsdWRlKicgbGluZXMuCiAgIEhhbmRsZSByZWxhdGl2ZSAnaW5jbHVkZUZpbGUnIHBhdGhzCgoyMDEwLTA3LTI5IDEwOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV0dXJuIGFuIGluZGljYXRpb24gb2Ygd2hldGhlciBjb25maWcgZmlsZXMgYXJlIGFjdHVhbGx5CiAgIHByb2Nlc3NlZC4KICAgUmVwb3J0IHByb2JsZW1zIHdpdGggZmFpbGluZyB0byBpbmNsdWRlIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDctMjggMTQ6NDQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBtYW4vY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmLCAgCiAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEJyaW5nIG1hbiBwYWdlIGRvY3VtZW50YXRpb24sIGhlYWRlciBmaWxlcyBhbmQgV2luZG93cyBETEwKICAgZGVmaW5pdGlvbnMKICAgb2YgdG9wLWxldmVsIHB1YmxpYyBBUEkgY2FsbHMgaW50byBsaW5lIHdpdGggZWFjaCBvdGhlci4KCjIwMTAtMDctMjggMTQ6NDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBtaXNuYW1lZCBjb21tZW50CgoyMDEwLTA3LTI4IDE0OjM2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgRG9uJ3QgbWl4IFNNSXYxIGFuZCBTTUl2MiBNSUJzIGluIHRoZSBsaXN0IG9mIGRlZmF1bHQgTUlCcyB0bwogICBsb2FkLgogICBVc2UgbmV3ZXIgU01JdjIgdmVyc2lvbnMgKHdoaWNoIGluY2x1ZGUgc3VpdGFibGUgZGlzcGxheSBoaW50cykKICAgcmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIFJGQzEyMTMgTUlCICh3aGljaCBkb2Vzbid0KQoKMjAxMC0wNy0yOCAxNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGluZGVudGF0aW9uIGZvciAnaW5jbHVkZVNlYXJjaCcgcHJvY2Vzc2luZyBjb2RlLgoKMjAxMC0wNy0yOCAxNDowOSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRXh0ZW5kICdpbmNsdWRlJyBjb25maWcgZmlsZSBwcm9jZXNzaW5nIHRvIGNvdmVyIHRocmVlCiAgIGRpZmZlcmVudCBtb2RlcyBvZiB3b3JraW5nOgogICAtIGxvb2sgZm9yIHRoZSBmaWxlIG9uIHRoZSBjb25maWcgc2VhcmNoIHBhdGgKICAgLSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgZmlsZSBieSBuYW1lCiAgIC0gaW9hZCB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkKICAgVXNlIGRpZmZlcmVudCBjb25maWcgdG9rZW5zIHRvIGRpc3Rpbmd1aXNoIHRoZXNlIGNhc2VzLgoKMjAxMC0wNy0yNyAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyOTEyNTIwOiBmcm9tIGxpc3RvbTogRnJlZSBrbWVtIHJlZmVyZW5jZXMKICAgb24gc2h1dGRvd24KCjIwMTAtMDctMjcgMTA6NTQgIGhhcmRha2VyCgogICAqIG1pYnMvU01VWC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogcGF0Y2ggMjk3NDcxNjogZnJvbSBidmFzc2NoZTogZml4IGlzc3VlcyBpbiB0aGUKICAgU01VWC1NSUIKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGluY2x1ZGUgdGhlIG5ldyBzZWN1cml0eS1oZWRhZXJzIG1vZHVsZQoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgcmVtb3RlIGRlYnVnZ2luZy9wcm9jZXNzaW5nIHN0ZGVyciBvdXRwdXQKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMzAyODkyMzogZnJvbSBqZW5zbzogbmV3IGNvcHkgb2YgdGhlCiAgIGJyaWRnZS1taWIgcGVybCBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tc2VjdXJpdHktaGVhZGVycy5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgc2VjdXJpdHkgaGVhZGVyL2luaXQgZ2VuZXJhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0czoKCiAgIHRyYW5zcG9ydCBjb25maWd1cmUgcG9ydGlvbgoKMjAxMC0wNy0yNyAwODozMCAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXRyYW5zcG9ydC1oZWFkZXJzLmluLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tdmFyaWFibGVzLmluOgoKICAgbW92ZSB0cmFuc3BvcnQgaGVhZGVyIGdlbmVyYXRpb24gdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBjcmVhdGUgYW4KICAgZXh0ZXJuYWwgc2VwYXJhdGUgc2NyaXB0IGZvciBnZW5lcmF0aW5nIGl0CgoyMDEwLTA3LTI3IDA4OjE0ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCBnZnMgZmlsZXN5c3RlbXMgaW4gaHJTdG9yYWdlVGFibGUgYW5kCiAgIGhyRlNUYWJsZS4KCjIwMTAtMDctMjQgMTU6NDIgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgd2FzIGJlaW5nIHBhcnNlZCwKICAgd2hlbiBwcm9jZXNzaW5nIGFuIGluY2x1ZGVkIGNvbmZpZyBmaWxlLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yNCAxNTozNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG9uJ3QgbG9zZSB0cmFjayBvZiB3aGljaCBjb25maWcgZmlsZSBpcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gb3BlbmluZyBhIG5ldyBTTk1QIHNlc3Npb24uCiAgIEZpeGVzIGEgYnVnIHdpdGggcmVwb3J0aW5nIGxhdGVyIGNvbmZpZyBlcnJvcnMuCgoyMDEwLTA3LTIzIDAzOjEyICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZCB0aGUgVExTIG1vZHVsZXMgdG8gdGhlIGxpc3Qgb2YgdGVzdCBtb2R1bGVzCgoyMDEwLTA3LTIxIDE5OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBGaXggdHlwbyBpbiBkb3h5Z2VuIGNvbW1lbnQKCjIwMTAtMDctMjEgMTk6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgRml4IHR5cG8gaW4gc3BlZWQgY29tcHV0YXRpb24KCjIwMTAtMDctMjEgMTk6MjEgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICBJbmNsdWRlIGdlbmVyYXRlZCBzZWN1cml0eS1pbmNsdWRlcy5oCgoyMDEwLTA3LTIxIDE5OjIwICBuYmEKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmg6CgogICBGaXggaW5pdCBmdW5jIG5hbWUgKGNvcHktcGFzdGUgZ2xpdGNoKQoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIHNlbWljb2xvbgoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgT3V0IG9mIG9yZGVyIGRlY2xhcmF0aW9uCgoyMDEwLTA3LTIxIDE5OjE3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIExvZyBlcnJvciBvbiBmaWxlIG9wZW4gZXJyb3IKCjIwMTAtMDctMjEgMTk6MTYgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTcGVsaW5nIGVycm9yCgoyMDEwLTA3LTIxIDE4OjEwICBuYmEKCiAgICogbWlicy9pYW5hbGlzdCwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIFVwZGF0ZSBmb3IgY3VycmVudCBSRkNzCgoyMDEwLTA3LTIxIDE4OjA4ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBDdXJyZW50IHZlcnNpb24gZnJvbSBJQU5BCgoyMDEwLTA3LTIxIDE4OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByMTc0OTUgZXJyb25lb3VzbHkgZGlzYWJsZWQgZGlza0lPTEF4IGZvciBsaW51eAoKMjAxMC0wNy0yMCAxMDozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXhlZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHdoZW4gZ2VuZXJhdGluZwogICB0ZW1wLiBmaWxlIG5hbWVzCgoyMDEwLTA3LTIwIDA3OjMyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L3NubXBkLmMsIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCAgIAogICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRGVzY3JpYmUgLUQgdXNhZ2UgYXMgLURbVE9LRU5dIGluc3RlYWQgb2YgLUQgW1RPS0VOXQoKMjAxMC0wNy0xNyAxNToxMCAgcnN0b3J5CgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIHVwZGF0ZSBkaXNwbGF5IGhpbnQgdG8gc29tZSBsZXNzIGFtYmlndW91cyAoYW5kIHRoYXQgd29ya3Mgd2l0aAogICBvdXIgbGliKQoKMjAxMC0wNy0xNyAwNDoxMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggdGVzdHNpbXBsZSBmb3IgYnVpbGRkaXIhPXNyY2RpcgoKMjAxMC0wNy0xNyAwNDoxMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBhZGQgdGVzdHNpbXBsZSB0YXJnZXQKCjIwMTAtMDctMTYgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbGVhc2UgaXRlcmF0b3Igd2hlbiBkb25lIHdpdGggaXQKCjIwMTAtMDctMTUgMTg6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGlzc3VlIHdpdGggVVNNIHVzaW5nIGluYWN0aXZlIHVzZXJzCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgaW5jbHVkZSBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyOyBkZWZpbmUgTkFNRV9NQVggaWYgbm90IGFscmVhZHkKICAgZGVmaW5lZDsKICAgZG9uJ3QgdXNlIHN0cm5kdXAgKHBvcnRhYmlsaXR5KQoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgdGhhdCBzb21lIG5ld2VyIG9wZW5zc2wgbWFjcm9zIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZwogICB0aGVtOyBpbmNsdWRlCiAgIGFwcHJvcHJpYXRlIHN0cmluZyBoZWFkZXIKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZG9uJ3QgY29tcGlsZSBkdGxzIGRvbWFpbiBpZiBubyBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBpZmRlZiBwcm90ZWN0aW9uIGZvciBsYXRlciBzaGEgYWxnb3JpdGhtcwoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIGRhcndpbiBvcGVuc3NsIGRvZXMgbm90IHN1cHBvcnQgbW9yZSByZWNlbnQgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBmaXggdHlwbyBpbiBpZmRlZiB0ZXN0CgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGVycm9yIGluIGluY2x1ZGVkIGZpbGUgbmFtZQoKMjAxMC0wNy0xNCAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBmaXggdGhlIGZpeDogcHV0IFBSSXogc3BlYyBpbiBjb3JyZWN0IHBsYWNlCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIHNwZWNpZnkgU05NUCB2ZXJzaW9uIG9uIGNvbW1hbmRsaW5lCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDEwLTA3LTE0IDE1OjAyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgYXBwcy9zbm1wdGxzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluY2x1ZGUgc3NsLmggYmVmb3JlIGNlcnRfdXRpbC5oCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGZvdW5kIGNlcnQKCjIwMTAtMDctMTMgMTY6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGxvZyBtc2cKCjIwMTAtMDctMTIgMTA6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENIQU5HRVM6IFdpbjMyIGFuZCBDeWd3aW46IG1hZGUgc3VyZSB0aGF0IGFjY2Vzc2luZyB0aGUgbWliSUkKICAgaW50ZXJmYWNlcyB0YWJsZSBkb2VzIG5vdCB0cmlnZ2VyIG91dC1vZi1yYW5nZSBhcnJheSBhY2Nlc3NlcwogICAod2FzIGRldGVjdGVkIGJ5IEJvdW5kc0NoZWNrZXIpLgoKMjAxMC0wNy0xMiAxMDoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXhlZCBhIGRhbmdsaW5nLXBvaW50ZXItcmVhZCB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTAxOC4gSW4KICAgcjE5MDE4IHRoZSB0eXBlIG9mIGdyb3VwU3VidHJlZUxlbiB3YXMgY2hhbmdlZCBmcm9tIGludCB0bwogICBzaXplX3QsIHdoaWNoIGNoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHRoZSBsb29wICJ3aGlsZQogICAoZ3JvdXBTdWJ0cmVlTGVuLS0gPiAwKSAuLi4iOiBpbnN0ZWFkIG9mIG5vdCBleGVjdXRpbmcgdGhlIGxvb3AKICAgYm9keSB3aGVuIGdyb3VwU3VidHJlZUxlbiB3YXMgbmVnYXRpdmUsIHIxOTAxOCBjYXVzZWQgdGhlIGJvZHkgb2YKICAgdGhhdCBsb29wIHRvIGJlIGV4ZWN1dGVkLiBEZXRlY3RlZCBieSBydW5uaW5nIHNubXBkIHVuZGVyCiAgIEJvdW5kc0NoZWNrZXIgd2hpbGUgcGVyZm9ybWluZyBhIE1JQiB3YWxrLgoKMjAxMC0wNy0xMiAxMDoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIFJldmVydGVkIHIxOTA0NyAod2hpY2ggd2FzIHdyb25nKSBhbmQgaW1wbGVtZW50ZWQgYSBwcm9wZXIgZml4CiAgIGZvciB0aGUgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMuCgoyMDEwLTA3LTEyIDEwOjA5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA3LTEyIDEwOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmg6CgogICBTdXBwcmVzc2VkIG1vcmUgTVNWQyBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1ZhcnM6CgogICBhZGQgY29tbWVudCB3aXRoIG9iamVjdCBuYW1lIGZvciBudW1lcmljIGlkcwoKMjAxMC0wNy0xMiAwNDo0NSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBnZXQgc2VydmVySWQgZnJvbSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YTsgdXNlCiAgIG5ldyBhcGkKICAgdG8gY29uZmlnIHNlcnZpY2VJZCBmb3IgdHJhcCB0cmFuc3BvcnQgd2hlbiBzZW5kaW5nIHRyYXBzCgoyMDEwLTA3LTExIDExOjE4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBDSEFOR0VTOiBCVUc6IDMwMjc5MDA6IHdoZW4gY3Jvc3MtY29tcGlsaW5nIGl0IGlzIG5vdyBhc3N1bWVkCiAgIHRoYXQgbWVtY21wKCkgaXMgYXZhaWxhYmxlIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCBpdCBpcyBub3QKICAgYXZhaWxhYmxlLgoKMjAxMC0wNy0xMSAxMDozMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgcjE5MTk3LgoKMjAxMC0wNy0xMCAyMDowMCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3luYyB1cCBoZWxwIG91dHB1dCBhbmQgb3B0aW9ucyBwcm9jZXNzaW5nCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIEN5Z3dpbiBzZWN0aW9uIGluIFJFQURNRS53aW4zMi4KCjIwMTAtMDctMDkgMTU6MTMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBTdXBwcmVzc2VkICJpbXBsaWNpdCBjYXN0IGZyb20gaW50IHRvIHVfY2hhciIKICAgd2FybmluZ3MgZ2VuZXJhdGVkIGJ5IE1TVkMuCgoyMDEwLTA3LTA5IDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgVGVzdGluZzogbWFkZSB0aGUgZGVidWcgb3V0cHV0IHRoYXQgYXBwZWFycyBpbiB0aGUgImludm9rZWQiIGZpbGUKICAgZXZlbiBtb3JlIHZlcmJvc2UuCgoyMDEwLTA3LTA5IDE1OjEwICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcy4KCjIwMTAtMDctMDggMTk6MzAgIG1hcnoKCiAgICogIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydCwgICAKICAgICAgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgYWRkcyBwZXIgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmaWxlIHN1cHBvcnQgc28gZGVmYXVsdHMgY2FuIGJlCiAgIGN1c3RvbWlzZWQgb24gY21kbGluZSB3IC1pIDxpZGVudGl0eT4gLSBzZWUgbmV0LXNubXAtY2VydC5jb25mCiAgIGZvciBleGFtcGxlcyBhbmQgc29tZSBoZWxwIGluZm8KCjIwMTAtMDctMDggMTI6MTcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDAzOTgxOiBQcm90ZWN0IGFnYWluc3QgYnVmZmVyIG92ZXJmbG93CgoyMDEwLTA3LTA4IDExOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwMTkyNDM6IFJlZ2lzdGVyIGV4ZWNGaXggY29tcGF0YWJpbGl0eQogICBkaXJlY3RpdmUgY29ycmVjdGx5LgoKMjAxMC0wNy0wNyAxMDoxOSAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZToKCiAgIENIQU5HRVM6IEN5Z3dpbiBhbmQgTWluR1c6IHRlc3RzIFQxMTAsIFQxMTEsIFQxMTIsIFQxMjAsIFQxMjEgYW5kCiAgIFQxMjIgZG8gbm93IHBhc3Mgd2hlbiBzbm1wZCBpcyBidWlsdCB3aXRoIHdpbkV4dERMTCBzdXBwb3J0CiAgIGVuYWJsZWQuCgoyMDEwLTA3LTA2IDE4OjU5ICBidmFzc2NoZQoKICAgKiAgQ2hhbmdlTG9nLCBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIE1hZGUgcmVncmVzc2lvbiB0ZXN0cyBlYXNpZXIgdG8gZGVidWcgYnkgaW5jbHVkaW5nIG9rIC8gbm90IG9rCiAgIHN0YXR1cyBpbiB0aGUgImludm9rZWQiIGZpbGUuCiAgIFNwZWxsaW5nIGZpeGVzOiByZW1lYmVyIC0+IHJlbWVtYmVyOyBzZXBlcmF0b3IgLT4gc2VwYXJhdG9yLgoKMjAxMC0wNy0wNiAxNTowNCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBUZXN0IFQwNjUgZG9lcyBub3cgcmVhbGx5IHBhc3Mgb24gTWluR1cuCgoyMDEwLTA3LTA1IDEwOjAxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgY3VybHkgYnJhY2VzIHN1Y2ggdGhhdCAnfHwnIGFuZCAnJiYnIGFyZSBldmFsdWF0ZWQgaW4gdGhlCiAgIGNvcnJlY3Qgb3JkZXIuCgoyMDEwLTA3LTA0IDExOjM3ICBidmFzc2NoZQoKICAgKiBhcHBzOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wNy0wNCAxMTozNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEZhbGwgYmFjayBmcm9tIFJVTkZVTExURVNUUyB0byBSVU5URVNUUyBpZiBuZWl0aGVyIFRBUDo6SGFybmVzcwogICBub3IgVGVzdDo6SGFybmVzcyBpcyBhdmFpbGFibGUuCgoyMDEwLTA3LTA0IDExOjIxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgdGVzdCBudW1iZXIgaW4gL3RtcC9zbm1wLXRlc3RzLSR0ZXN0bnVtIGlzIHNldAogICB0byBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsIHRoYW4ganVzdCAiMCIuCgoyMDEwLTA3LTA0IDExOjIwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU3BsaXQgYSBsb25nIGNvbW1lbnQgbGluZS4KCjIwMTAtMDctMDQgMTA6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCBzcmNkaXIgaXMgY29tcHV0ZWQgY29ycmVjdGx5IGlmIGBkaXJuYW1lCiAgICQwYCA9IC4KCjIwMTAtMDctMDIgMTY6MjcgIGJ2YXNzY2hlCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBTaW1wbGlmaWVkIHIxOTE4MSAoRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoCiAgIG5vbi1lbXB0eSAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVykuCgoyMDEwLTA3LTAxIDE4OjE1ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoIG5vbi1lbXB0eQogICAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVy4KCjIwMTAtMDctMDEgMTg6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNy0wMSAxNzo1MyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEZpeGVkIHR3byByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNy0wMSAwMDoxOSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTAxIDAwOjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDowMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMzAgMjM6NTUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDggIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcHl0aG9uL25ldHNubXAvdGVzdHMvc25tcGQuY29uZjoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaXNzZWQgdHdvIHRva2VucyBpbiB0aGUgbWFuIHBnYWVzCgoyMDEwLTA2LTMwIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiAgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZiwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ2lwaGVyVGVzdHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ3JsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0FnZW50VHJhcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJlbmFtZSB0aGUgZGVmWDUwOSB0b2tlbnMgdG8gc29tZXRoaW5nIG1vcmUgZnJpZW5kbHk6IGNsaWVudENlcnQKICAgYW5kIHNlcnZlckNlcnQKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHRvcC1maWxlIGNvbW1lbnQgdXBkYXRlcwoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IGNhbGwgY2VydF9maW5kIHdpdGggYSBOVUxMIGFyZ3VtZW50CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWxsb3cgZGVmIGNlcnRzIHRvIGJlIHNwZWNpZmllZCB1c2luZyBhIGZpbGVuYW1lCgoyMDEwLTA2LTMwIDIzOjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMTAtMDYtMzAgMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB0dXJuIGEgY291cGxlIG9mIG5vbi1jcml0aWNhbCBlcnJvcnMgaW50byBkZWJ1ZyBzdGF0ZW1lbnRzIHBlcgogICBkaXNjdXNzaW9uIHdpdGggcnN0b3J5CgoyMDEwLTA2LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1ha2UgdGhlIHJlZ2V4cCBwYXR0ZXJuIG1hdGNoIGZvciB0ZXN0cyB0byBydW4gY2FzZSBpbnNlbnNpdGl2ZQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgaW1wb3J0IHN0ZGVyciBmcm9tIHN5cywgcGVyIGRpc2N1c3Npb24gb24gLXVzZXJzCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGQgYmFjayBpbiB0aGUgZGVmYXVsdCBwb3J0IHNwZWNpZmllcgoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGVuYWJsZSBwdWxsaW5nIHRoZSBwcml2YXRlIGtleSBvdmVyIGh0dHAKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3ZlIFVSTCBjb2xsZWN0aW9uIGludG8gYSBzdWIgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhYmlsaXR5IHRvIHB1bGwgYSBjZXJ0IGZyb20gYSBVUkwKCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXJndW1lbnQgYnVnIGluIHRoZSBpc191cmwgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjA6NDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlCgoyMDEwLTA2LTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdEdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZToKCiAgIHJlbmFtZSBmaWxlIGZvciBjb25zaXN0ZW5jeQoKMjAxMC0wNi0zMCAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IHNubXB0bHMgYXBwCgoyMDEwLTA2LTMwIDIwOjAwICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgcmVtb3ZlIGFjY2lkZW50YWxseSBjaGVja2VkIGludCBkZWJ1ZyBjb2RlCgoyMDEwLTA2LTMwIDE5OjU5ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgZGVmaW5lIE9JRHMgYmFzZWQgb24gU05NUF9UTFNfVE1fQkFTRQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU3ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGF1dG8tdHJhbnNpc3Rpb24gYmV0d2VlbiBub3RSZWFkeS9ub3RJblNlcnZpY2U7IGFkZAogICBzbm1wX3N0b3JlX25lZWRlZCBvbiBjb21taXQKCjIwMTAtMDYtMzAgMTk6NTYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgbmV3IGZpbmdlcnByaW50IHBhcnNlL2J1aWxkIGZ1bmN0aW9uczsgcmVtb3ZlIGJhZCBsZW5ndGgKICAgY2hlY2s7IGF1dG8KICAgdHJhbnNpdGlvbiBiZXR3ZWVuIG5vdFJlYWR5IGFuZCBub3RJblNlcnZpY2UKCjIwMTAtMDYtMzAgMTk6NTUgIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICByZW1vdmUgcHJlLXJmYyBtaWI7IHNlZSBTTk1QLVRMUy1UTS1NSUIudHh0IGluc3RlYWQKCjIwMTAtMDYtMzAgMTk6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBjb25zb2xpZGF0ZSBtdWx0aXBsZSBmaWxlcwoKMjAxMC0wNi0zMCAxOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1ha2UgaGFzaCB0eXBlIHBhcnNlIHJvdXRpbmUgcHVibGljOyBhZGQgcm91dGluZXMgdG8gYnVpbGQvcGFyc2UKICAgU25tcFRMU0ZpbmdlcnByaW50CgoyMDEwLTA2LTMwIDE5OjUxICByc3RvcnkKCiAgICogIE1ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0bHMuYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBORVdTOiBzbm1wdGxzOiBuZXcgYXBwIGZvciBtYW5hZ2luZyAoRClUTFMgY29uZmlnIHZpYQogICBTTk1QLVRMUy1UTS1NSUIgdGFibGVzCgoyMDEwLTA2LTMwIDE5OjUwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYzoKCiAgIGNhbGwgbmV3IHNubXBfc3RvcmVfbmVlZGVkKCkgZnVuY3Rpb24gYWZ0ZXIgYSBjb21taXQgaW4gdGFibGVzCiAgIHRoYXQKICAgaGF2ZSBwZXJzaXN0ZW50IHN0b3JlCgoyMDEwLTA2LTMwIDE5OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgc2ltcGxlIHN0YXRlIG1hY2hpbmUKICAgTkVXUzogc25tcGxpYjogbmV3IGV4cGVyaW1lbnRhbCByb3cgY3JlYXRpb24gQVBJIHdoaWNoIHVzZXMgYQogICBzdGF0ZSBtYWNoaW5lCiAgIHRvIHRyeSByZWFsbHkgaGFyZCB0byBjcmVhdGUgYSByb3cgZnJvbSBhIGdpdmVuIHZhcmJpbmQgbGlzdAoKMjAxMC0wNi0zMCAxOTo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wZDogbmV3IEFQSSBmb3IgaW5kaWNhdGluZyB0aGF0IHBlcnNpc3RlbnQgc3RvcmUgbmVlZHMKICAgdG8gYmUgc2F2ZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgcmVxdWVzdCBmaW5pc2hlcyBwcm9jZXNzaW5nCgoyMDEwLTA2LTMwIDE5OjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBhZGQgc29tZSBuZXcgd3JhcHBlciBtYWNyb3MKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0NOU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW5TZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE1RHRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNlRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN2R0bHNDTlNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExOFRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICBhZGRlZCBjaGVja3MgZm9yIGNoZWNraW5nIGRpcmVjdCBwYXNzaW5nIG9mIGxvY2FsaG9zdCB0byB0aGUKICAgZXhwZWN0ZWQgbmFtZQoKMjAxMC0wNi0zMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXI6CgogICBjaGVjayBmb3Igd2lsZGNhcmQgc3VwcG9ydAoKMjAxMC0wNi0zMCAxNTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzdXBwb3J0IFNBTiBhbmQgQ04gd2lsZGNhcmQgbWF0Y2hpbmcgcGVyIHNwZWMKCjIwMTAtMDYtMzAgMTU6MDAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzTmFtZSwgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1RyYXBkVXNlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeCwgCiAgICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFEdGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAyVGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFEdGxzU2VydmVyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMlRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM0R0bHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM2R0bHN1ZHBzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNFRsc1Nhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFEdGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIyVGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFEdGxzQWdlbnRUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFkdGxzdWRwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMlRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MUR0bHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MWR0bHN1ZHBjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MlRsc0NybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFEdGxzQ2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxZHRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MlRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MnRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMFRsc0lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMHRsc2lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMFRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxRHRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMUR0bHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMlRsc1RzbVByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIG1vdmVkIHRlc3QgZmlsZXMgYXJvdW5kIGZvciBiZXR0ZXIgbmFtaW5nCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgZHRscyB0cmFuc3BvcnQgYWRkcmVzcyB0byB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUgZnJvbSB0aGUgdHJhbnNwb3J0IHN0cmluZyBpZiBwb3NzaWJsZQoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGEgYml0IG1vcmUgaGVscCBvdXRwdXQgYnkgZGVmYXVsdAoKMjAxMC0wNi0yOSAyMjoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTExNjogbWFrZSBzdXJlIHdlIGluY2x1ZGUgYWdlbnQgY29uZmlnCgoyMDEwLTA2LTI5IDIyOjE4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgQWRkIG1pc3NpbmcgY29uZmlnX3JlcXVpcmVzCgoyMDEwLTA2LTI5IDE3OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIHJld29yayB0aGUgc25tcGNtZCBtYW51YWwgcGFnZSB0byBzZXBhcmF0ZSBvdXQgdGhlIGZsYWdzIGludG8KICAgc2VjdGlvbnMgYXBwcm9wcmlhdGUgZm9yIHRoZWlyIHVzYWdlIHR5cGUKCjIwMTAtMDYtMjkgMTY6NTEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHBvZCBkb2NzLCBzb21lIGRlZmF1bHQgdmFsIGZpeGVzLCBpbmZvIG91dHB1dCBub3JtYWxpemVkCgoyMDEwLTA2LTI5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBhZGRlZCBzc2guaCBpbmNsdWRlCgoyMDEwLTA2LTI5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHJlb3JnYW5pemUgdGhlIG1hbnVhbCBwYWdlIGEgYml0IGZvciBTTk1QdjMgYW5kIFRMUwoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBkZWZhdWx0IHRscyByZWdpc3RyYXRpb25zCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjaGVjayBmb3IgTlVMTCB0cmFuc3BvcnRzIGFmdGVyIGFuIG9wZW4gZmFpbHMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92aW5nIGxvZ2dpbmcgYXJvdW5kIHNvIHRoYXQgb3BlbnNzbCBlcnJvcnMgYXJlIHByaW50ZWQgb24KICAgZmFpbHVyZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeDoKCiAgIGZpeCBzb21lIG5vbi1pbnRlcmFjdGl2ZSBpbnZvY2F0aW9uIGlzc3VlcwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHNvbWUgY29tbW9uIGNvZGUgaW50byBhIGNvbW1vbiBmdW5jdGlvbgoKMjAxMC0wNi0yOCAxOToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NpcGhlclRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZToKCiAgIGNpcGhlciBzdWl0ZSBzZWxlY3Rpb24gYW5kIHRlc3RzIGZvciBpdAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL0xJQ0VOU0U6CgogICBsaWNlbnNlIHVwZGF0ZXMKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqICBweXRob24vUkVBRE1FLCBweXRob24vbmV0c25tcC9jbGllbnQucHksICAgCiAgICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBTTk1QdjMgb3ZlciBUTFMgc3VwcG9ydAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGJldHRlciBvdXRwdXQgc2hvd2luZyB0ZXN0IHR5cGVzCgoyMDEwLTA2LTI4IDAwOjU0ICB0YW5kZXJzCgogICAqICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogbWFuOiBjbGVhbiB1cCBtYW51YWwgcGFnZXMKICAgKGZyb20gRGViaWFuIHBhdGNoIDU2X21hbnBhZ2UpCgoyMDEwLTA2LTI3IDIzOjI5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgY2FsbCB2YWNtX3N0YW5kYXJkX3ZpZXdzKCkgb3IKICAgaW5pdF92YWNtX2NvbmZpZ190b2tlbnMoKSBpZiB0aGUgY29ycmVzcG9uZGluZyBtb2R1bGUgd2FzIG5vdAogICBjb21waWxlZAogICAoZnJvbSBEZWJpYW4gcGF0Y2ggNjFfdmFjbV9taXNzaW5nX2RlcGVuZGVuY3lfY2hlY2spCgoyMDEwLTA2LTI3IDAzOjIzICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXBwIHRhZyBjb21wbGV0aW9ucwoKMjAxMC0wNi0yNyAwMDo1NiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBoYW5kbGUgY29uZmlnIGZpbGUgc2V0dGluZyBpbnRlcmFjdGl2ZSwgdHJ1ZS9mYWxzZSB2YWx1ZXMgaGFuZGxlZAogICBpbiBjb25maWcKCjIwMTAtMDYtMjYgMjA6NTggIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBzb21lIGJ1Z3Mgdy8gc3BhY2VzIGluIG5hbWVzIGFuZCBhcHAgdGFnIGhlbHAKCjIwMTAtMDYtMjYgMTk6MzggIG1hcnoKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0ZXN0cyB0byB1c2Ugbm9uLWludGVyYWN0aXZlIC1JCgoyMDEwLTA2LTI2IDE3OjQ2ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGJldHRlciBpbnRlcmFjdGl2ZSwgPz1oZWxwLCA8dGFiPiBjb21wbCwgbW9yZSBoZWxwLCBTQU4gbG9vcAogICBmb3JtYXQgYW5kIHRlcm1pbmF0aW9uIGZpeCwgdG9sZXJhdGUgc3BhY2VzIGluIGZpZWxkcyBhbmQKICAgZmlsZW5hbWVzLCBtb3JlIGNvbXBsZXRlIGVycm9yIG91dHB1dCwgZW1icnlvbmljIGltcG9ydCBmcm9tIHVybAoKMjAxMC0wNi0yNiAxMzo0OCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMuCgoyMDEwLTA2LTI2IDEzOjQ3ICBidmFzc2NoZQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRml4ZWQgdGhlIGVycm9ycyBpbiBhY2NvbmZpZy5oIGFuZCByZWdlbmVyYXRlZAogICBuZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMDYtMjYgMTM6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IFNNVVggTUlCIGltcGxlbWVudGF0aW9uLgoKMjAxMC0wNi0yNiAwMDo0NSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzYW50ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTR0bHN0Y3BzYW5fc2ltcGxlOgoKICAgZml4ZXMgYW5kIHRlc3RpbmcgZm9yIGNoZWNraW5nIFNBTiBETlMgbmFtZXMgZnJvbSB0aGUgc2VydmVyCgoyMDEwLTA2LTI2IDAwOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICBnZW5lcmljaXplIHRoZSBzZXJ2ZXIgbmFtZSB0ZXN0cwoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmgsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxZHRsc3RzbXByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIHVzZXByZWZpeCBzY2FsYXIgdGVzdGluZyBhbmQgc3VwcG9ydAoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0czoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgbGluZXMKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICBwdXQgaW4gb25seSBtaW5pbWlhbCBkZWJ1ZyBmbGFncwoKMjAxMC0wNi0yNSAyMzowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJ0bHN0Y3Bjcmxfc2ltcGxlOgoKICAgY29kZSBhbmQgdGVzdCBjYXNlcyBmb3IgQ1JMIGhhbmRsaW5nCgoyMDEwLTA2LTI1IDE1OjI0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlOgoKICAgQWRkZWQgYSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgZWFjaCBsaW5lIHByaW50ZWQgYnkgdGhlIFBlcmwKICAgaW50ZXJwcmV0ZXIuCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlZHVjZSBudW1iZXIgb2YgcmVzZW5kIGF0dGVtcHRzIGFuZCB0aW1lb3V0CgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsIHNubXBsaWIvY2VydF91dGlsLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHdhcm5pbmcgZml4ZXMKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZW1vdmUgbG9naWMgdHlwbyBmcm9tIHByZXZpb3VzIGNvbW1pdAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZToKCiAgIElQdjYgZml4ZXMgZm9yIFRDUAoKMjAxMC0wNi0yNSAxMzowMSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGluZyAxOTA5NSwgaXQgYnJlYWtzIHRlc3RzCgoyMDEwLTA2LTI1IDA5OjQwICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcHRyYW5zbGF0ZTogZml4ZWQgcHJpbnRpbmcgb2YgcmFuZ2VzIHdpdGggVU5TSUdORUQKICAgdHlwZS4KCjIwMTAtMDYtMjQgMjM6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGZ1bmN0aW9uIG5hbWVzIGZvciBzdGF0IGluY3JlYXNlcwoKMjAxMC0wNi0yNCAyMzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3JzIGluIGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjQgZm9yIGR0bHMKCjIwMTAtMDYtMjQgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tbWVudHMgZm9yIDUuMy4yCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNsaWVudCBzaWRlIGNvbm5lY3QgY29tbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY291bnRlciBhbmQgY29tbWVudCBpbXByb3ZlbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgdXBkYXRlIGNvdW50ZXIgY2FsbHMgYW5kIGNvbW1lbnQgdGV4dAoKMjAxMC0wNi0yNCAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIE1vdmVkIExEX0xJQlJBUllfUEFUSCBzZXR1cCBmcm9tIGluZGl2aWR1YWwgdGVzdHMgc2NyaXB0cyB0bwogICBzaW1wbGVfVEVTVENPTkYuc2guCgoyMDEwLTA2LTI0IDE5OjAyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBGaXhlZCBhIGNvbW1lbnQuCgoyMDEwLTA2LTI0IDE3OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIFNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE5MDg0LgoKMjAxMC0wNi0yNCAxNzo0NyAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA2LTI0IDEyOjMwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgInRlc3QgLWUiIGlzbid0IHBvcnRhYmxlOyB1c2UgInRlc3QgLXgiIGluc3RlYWQgZm9yIHRoZSBQZXJsCiAgIHN5c3RlbSgpCiAgIGNoZWNrCgoyMDEwLTA2LTIzIDExOjE0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB2YWx1ZSBvZiBJUC1NSUI6OmlwdjZJbnRlcmZhY2VGb3J3YXJkaW5nIG9uCiAgIExpbnV4CiAgIAogICBUaGUgdmFsdWUgd2FzIDAgKG5vdCBmb3J3YXJkaW5nKSBvciAxIChmb3J3YXJkaW5nKSwgc2hvdWxkIGJlIDIKICAgYW5kIDEKICAgaW5zdGVhZCAtIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LmZvcndhcmRpbmdfdjYgaXMgYm9vbGVhbiwgbm90CiAgIFRydXRoVmFsdWUuCgoyMDEwLTA2LTIyIDIzOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBzdXBwb3J0IGZvciBjZXJ0U2VjTmFtZSBtYXBwaW5nIGZyb20gYSBsb2NhbCBjZXJ0IGZpbGUgbmFtZSBhbmQgYQogICB0ZXN0IGZvciBpdAoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVuYXRpb24gdXBkYXRlIHRvIGNsZWFuIHVwIGFuZCBpbmNsdWRlIFRMUyBwYXJhbWV0ZXJzCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBzdXBwb3J0IGZvciBwYXNzaW5nIGlkZW50aXRpZXMgYW5kIGZ1bGwgd29ya2luZyB2ZXJzaW9uCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1MzMDB0bHNwZXJsLnBsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMHRsc3RjcHBlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50OgoKICAgcGVybCBUTFMvRFRMUyB0ZXN0cwoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZmlyc3QgcHRhY2ggb24gU05NUC9UTFMgY3JlYXRpbmcgYSBuZXcgc2Vzc2lvbiBmdW5jdGlvbgoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXJzdCB3b3JraW5nIHN1cHBvcnQgZm9yIGEgZGVsYXllZCBjbG9zZSgpIHRvIGF0dGVtcHQgdG8gc2VuZGluZwogICBvdXRzdGFuZGluZyBwYWNrZXRzIGluIHRoZSBxdWV1ZTsgdGhpcyBpcyByZXF1aXJlZCBmb3Igc25tcHRyYXAKICAgdG8gd29yayBhdCBhbGwgd2hlbiBzZW5kaW5nIHRyYXBzIChub3QgaW5mb3Jtcykgb3ZlciBEVExTCgoyMDEwLTA2LTIyIDE5OjAzICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0cyBUMDU5dHJhcGhhbmRsZV9zaW1wbGUgYW5kCiAgIFQwNjVhZ2VudGV4dGVuZF9zaW1wbGUgZG8gbm93IHBhc3MuCgoyMDEwLTA2LTIyIDE5OjAxICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBUaGUgd2lkdGggYXJndW1lbnQgZm9yICUuKmQgbXVzdCBoYXZlIHR5cGUgaW50LCBub3Qgc2l6ZV90LiBUaGlzCiAgIGJ1ZyB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTQuCgoyMDEwLTA2LTIyIDE4OjU3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgTkVXUzogTWluR1c6IHRoZSBzbm1wZC5jb25mIGtleXdvcmQgZXh0ZW5kIGRvZXMgbm93IHdvcmsuCiAgIE5FV1M6IE1pbkdXOiB0aGUgc25tcHRyYXBkLmNvbmYga2V5d29yZCB0cmFwaGFuZGxlIGRvZXMgbm93IHdvcmsuCiAgIENIQU5HRVM6IE1pbkdXOiBydW5fc2hlbGxfY29tbWFuZCgpIHdpdGggZWl0aGVyIGlucHV0IG9yIG91dHB1dAogICAoYnV0IG5vdCBib3RoKSBkb2VzIG5vdyB3b3JrLgogICBUaGlzIGRpZCBub3Qgd29yayB1bnRpbCBub3cgYmVjYXVzZSBvbiBNaW5HVyBta3N0ZW1wKCkgZ2VuZXJhdGVzCiAgIGEgTWluR1ctc3R5bGUgcGF0aCAoL3RtcC8uLi4pIHdoaWxlIHN5c3RlbSgpIGludm9rZXMgY21kLmV4ZSBhbmQKICAgaGVuY2UgZXhwZWN0cyBhIFdpbmRvd3Mtc3R5bGUgcGF0aCAoQzpcLi4uKS4KCjIwMTAtMDYtMjIgMTc6MzkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBBbHNvIHJlcG9ydCB0aGUgcG9ydCBzcGVjaWZpY2F0aW9uIGlmIFsgJFNOTVBfVkVSQk9TRSAtZ3QgMCBdLgoKMjAxMC0wNi0yMiAxNzozOCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIFJlcGxhY2VkIGFuIGV4cGxpY2l0IHRlc3QgZm9yIE1pbkdXIGJ5IGEgdGVzdCBvbiBIQVZFX1NJR0hVUC4KCjIwMTAtMDYtMjIgMTc6MzYgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBTSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgUmVwb3J0IHdoaWNoIHRlc3RzIGZhaWxlZCwgaWYgYW55LgoKMjAxMC0wNi0yMiAwODozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXhlZCBhbiBlcnJvciBpbiBhIGNvbW1lbnQgYmxvY2suCgoyMDEwLTA2LTIxIDE5OjI2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgUmVhcnJhbmdlZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyB0ZXN0IHN1Y2ggdGhhdCBpdCBpcyBubwogICBsb25nZXIgbmVjZXNzYXJ5CiAgIHRvIGludm9rZSBzaW1wbGVfZXZhbF90b29scy5zaCB3aGVuIHRoaXMgc2NyaXB0IGlzIGludm9rZWQgYXMgYQogICB0cmFwIGhhbmRsZXIKICAgYnkgc25tcHRyYXBkLgoKMjAxMC0wNi0yMSAwODowMSAgZHRzMTIKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEVuc3VyZSB0aGF0IGZkc2V0IHN0cnVjdHVyZSBpcyByZXNpemVkIHN1ZmZpY2llbnRseQogICB0byBhY2NvbW9kYXRlIHRoZSBzcGVjaWZpZWQgc29ja2V0IElELgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFNoaXlhbGVpLgoKMjAxMC0wNi0yMCAxOTozMiAgZHRzMTIKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgICAKICAgICAgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgQXZvaWQgZHVwbGljYXRlICh1bnVzZWQpIHN5bWJvbHMuCgoyMDEwLTA2LTIwIDE5OjMxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgQ29tbWVudGVkIG91dCBkZWJ1ZyBjb2RlLgoKMjAxMC0wNi0yMCAxOTozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgUmVzdG9yZWQgc3VtbWFyeSBzdWNjZXNzL2ZhaWx1cmUgY291bnQgcmVwb3J0aW5nLgogICBBbHNvLCBtb3ZlZCBraWxsLmV4ZSB0ZXN0IGJhY2sgdG8gUlVOVEVTVFMuCgoyMDEwLTA2LTIwIDE5OjI5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogYWRkIHRoZSB0ZXN0IG5hbWUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmaWxlCiAgICJpbnZva2VkIi4KCjIwMTAtMDYtMjAgMTk6MjcgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogc2tpcCB0aGUgdGVzdHMgdGhhdCByZXF1aXJlIFNJR0hVUCBzaW5jZQogICBNaW5HVyBkb2VzIG5vdCBzdXBwb3J0IFNJR0hVUC4KCjIwMTAtMDYtMjAgMTU6MTkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjb25maWd1cmUgdGVzdCB0aGF0IGRldGVjdHMgd2hldGhlciBvciBub3QgUGVybCdzCiAgIHN5c3RlbSgpIGZ1bmN0aW9uCiAgIGludm9rZXMgYSBQT1NJWCBzaGVsbC4gIm1ha2UgdGVzdCIgZG9lcyBub3cgZmFsbCBiYWNrIHRvIFJVTlRFU1RTCiAgIGlmIG5vdC4KCjIwMTAtMDYtMjAgMTU6MTYgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBCdWlsZHMgYWdhaW4gb24gTWluR1cgLS0gYWRkZWQgI2luY2x1ZGUgPG5ldC1zbm1wL3R5cGVzLmg+IHdoZXJlCiAgIG5lY2Vzc2FyeS4KICAgTm90ZTogYWx0aG91Z2ggPG5ldC1zbm1wL3R5cGVzLmg+IGlzIGluY2x1ZGVkIGluZGlyZWN0bHkgZnJvbSB0aGUKICAgKiAgICAgKnRyYW5zcG9ydC5oICAgIGhlYWRlciBmaWxlcywgdGhlc2UgI2luY2x1ZGUgc3RhdGVtZW50cyBhcmUKICAgICAgbmVjZXNzYXJ5IGJlY2F1c2Ugb2YgICAgYSBwZXNreSAgICBjaXJjdWxhciBkZXBlbmRlbmNlIGJldHdlZW4KICAgICAgPG5ldC1zbm1wL3R5cGVzLmg+IGFuZCAgICA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oPi4gCiAgICAgIDIwMTAtMDYtMjAgMTU6MTIgIGJ2YXNzY2hlCgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBDSEFOR0VTOiBNaW5HVzogcmVmdXNlIHRvIHJ1biB0aGUgcmVncmVzc2lvbiB0ZXN0cyBpZiBraWxsLmV4ZQogICBjYW5ub3QgYmUgZm91bmQuCgoyMDEwLTA2LTIwIDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU2hvcnRlbmVkIHRoZSBzcmNkaXIgcGF0aCBieSBtYWtpbmcgc3VyZSB0aGF0IGl0IGRvZXMgbm90IGNvbnRhaW4KICAgLy4uCgoyMDEwLTA2LTE5IDE4OjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIHJ1bm5pbmcgUlVORlVMTFRFU1RTIHdpdGggVGVzdDo6SGFybmVzcyBpbgogICBhbm90aGVyIGRpcmVjdG9yeSB0aGFuIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBjb21wbGV0ZSByZXdyaXRlIG9mIHBhcmFtcyB0byB1c2UgdGFibGVfZGF0YXNldCBpbnN0ZWFkIG9mCiAgIGNyZWF0ZS1kYXRhc2V0CgoyMDEwLTA2LTE5IDE2OjQxICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVzZSB0ZXh0IGZvciBoYXNoIHR5cGUgaW4gcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0xOSAxNjo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBtaXNzaW5nIHNwZWNpZmllciBpbiBkZWJ1ZwoKMjAxMC0wNi0xOSAxNjozOSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVzZSBkZWZpbmUgaW5zdGVhZCBvZiBjb25zdGFudDsgZml4IGNoZWNrIGZvciByb3dzIHRvIHNhdmUKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgcmVtb3ZlL2ZpbmQgZnVuY3Rpb24gZm9yIG1hcHMvYWRkcnMvcGFyYW1zOyByZW5hbWUgcGFyYW1zCiAgIHRhZy0+bmFtZTsKICAgZGVzdHJveSAtPiBmcmVlOyBncm91cCByZWNlbnQgdHJ1c3QgZnVuY3Rpb25zIHRvZ2V0aGVyIGluIHNyYzsKICAgZG9uJ3Qgc3RvcmUKICAgcGFyYW1zIGZwIGFzIGJpbmFyeTsgaGFuZCB0ZXh0IGFyZ3MgZm9yIGhhc2ggdHlwZSAoZS5nIC0tc2hhMSkKCjIwMTAtMDYtMTggMTU6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBDSEFOR0VTOiBDeWd3aW46IGNvcnJlY3RlZCBlcnJvciBoYW5kbGluZyBpbiBtaWJJSS9hdC4KCjIwMTAtMDYtMTggMDc6MjMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNi0xOCAwMTo0MiAgbWFnZnIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgRG8gbm90IGRlZmluZSByZXQgdHdpY2Ugd2hlbiBORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8gaXMgc2V0LgoKMjAxMC0wNi0xOCAwMTozOSAgbWFnZnIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIENvcnJlY3RlZCB0eXBvLgoKMjAxMC0wNi0xOCAwMDozMSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIGJldHRlciBORVdTIGFuZCBDSEFOR0VTIGZpbGVzCgoyMDEwLTA2LTE3IDIwOjM5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTE3IDE4OjU5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHJlLWVuYWJsZSBzb21lIGNvbW1hbmRzCgoyMDEwLTA2LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICBmb3Jnb3QgbWlzc2luZyBxdW90ZXMgaW4gU0VUIG91dHB1dAoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRscyB0ZXN0aW5nIGNsZWFudXAKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGZpeGVzIGZvciBhZGRyZXNzIHByaW50aW5nOyBtb3JlIHRvIGNvbWUKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3N0bHkgcHJvcGVybHkgc2V0IHJlbW90ZS9sb2NhbCB0cmFuc3BvcnQgcGFyYW1ldGVycwoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJ0bHN0Y3BhZ2VudHRyYXB0ZXN0c19zaW1wbGU6CgogICB0ZXN0cyBmb3IgYWdlbnRzIHNlbmRpbmcgb2YgdHJhcHMgb3ZlciAoRClUTFMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlOgoKICAgbW92ZSBleHBvcnQgc3RhdGVtZW50cyB0byB0aGUgc3VwcG9ydCBmaWxlIGZvciBzaW1wbGljaXR5CgoyMDEwLTA2LTE3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGxzIGJvb3RzdHJhcHBpbmcgdG8gcG9zdF9wcmVtaWIgc28gb3RoZXIgY29uZmlnIHRva2VucyBjYW4KICAgdXNlIHRoZSBjZXJ0IGxvYWRpbmcgcmVzdWx0cwoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIGFkZGVkIHNubXBfZW51bSB0ZXN0cyBwdWxsZWQgZnJvbSB0aGUgbWFpbigpIHRlc3QgYXQgdGhlIGJvdHRvbQogICBvZiB0aGUgb3JpZ2luYWwgLmMgZmlsZQoKMjAxMC0wNi0xNyAxNjowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBFbGltaW5hdGUgImRpZmZlciBpbiBzaWduZWRuZXNzIiB3YXJuaW5nCgoyMDEwLTA2LTE3IDAwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIHJldmVydCBVRFAgY2hhbmdlcyBmcm9tIHIxODk4NCBzaW5jZSBpdCBicm9rZSB0aGUgVURQIHRyYW5zcG9ydDsKICAgdGhlIHN0cnVjdCBwcm9iYWJseSBuZWVkcyB0byBtYXRjaCBhbm90aGVyIHN0cnVjdCBzb21ld2hlcmUgZWxzZQoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIG5ldyBLRVlXT1JEIG91dHB1dCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzCgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICB1c2UgY29uZmlnX2FuZF9vcGVuIGZvciBvcGVuaW5nIHRoZSB0cmFuc3BvcnQKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZXh0cmEgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMTAtMDYtMTYgMjI6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIGV4cGxpY2l0bHkgZGVjbGFyZSB0cnVzdCBjZXJ0aWZpY2F0ZXMgdG8gdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2xlYW51cCBzb21lIGxvc3QgbWVtb3J5IG9uIGNsb3NpbmcKCjIwMTAtMDYtMTYgMjE6NTYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwb3MKCjIwMTAtMDYtMTYgMjE6MzQgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBhZ2VudCBjb2RlIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMjA6MTYgIGR0czEyCgogICAqICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiB3YXJuaW5ncyBmcm9tCiAgIGxpYnJhcnkgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE5OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBvbGRlciBuby1sb25nZXItbmVlZGVkLWR1cGxpY2F0ZS1jb25maWcgZW50cmllcwoKMjAxMC0wNi0xNiAxOToxNCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBGaXggcHJvY2Vzc2luZyBvZiB2aWV3IG1hc2tzIChtaXNwbGFjZWQgcGFyZW50aGVzZXMpCgoyMDEwLTA2LTE2IDE4OjQ1ICBkdHMxMgoKICAgKiAgYXBwcy9hZ2VudHh0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIGZyb20gYXBwIGNvZGUKICAgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0czoKCiAgIGNoZWNrIGZvciBpbmZvcm1zIHNlbnQgb3ZlciB0bHMgdHJhbnNwb3J0cwoKMjAxMC0wNi0xNiAxNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IG90aGVyIHZhbHVzZSBmcm9tIHBhcmVudCB0bHNiYXNlIGRhdGEKCjIwMTAtMDYtMTYgMTc6MjEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIGFkZGVkIGJhc2ljIHRyYXAgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHRlc3RzCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCB0ZW1wIGZpbGUgdG91Y2hlcwoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZGVkIGEgbmV3IGZ1bmN0aW9uIGFuZCB0cmFuc3BvcnQgZmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgZl9vcGVuCiAgIGNhbGwgaGFzIGJlZW4gY2FsbGVkIHlldAoKMjAxMC0wNi0xNiAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1bnVzZWQgdmFyIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhZGRlZCB0cnVzdENlcnQgY29uZmlndXJhdGlvbiB0b2tlbgoKMjAxMC0wNi0xNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgbWlub3IgdHdlYWtzIGZvciB0ZXN0aW5nIGNsYXJpdHkKCjIwMTAtMDYtMTYgMTc6MTggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGU6CgogICBtb3ZlZCBjb21wbGV4IChEKVRMUyB0byBhIHNlcGFyYXRlIHNlY3Rpb24gYW5kIG1hZGUgdGhlIHRyYW5zcG9ydAogICB0ZXN0cyBvbmx5IHRlc3QgbWluaW1hbCBzdXBwb3J0CgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIG1lY2hhbmlzbXMgZm9yIHNwZWNpZnlpbmcgYW5kIGV4cGVjdGluZyB0aGUgaG9zdG5hbWUgb2YgdGhlCiAgIGZhciBzaWRlCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgdGVzdHMgZm9yIHZlcmlmeWluZyBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hlY2sgZmFpbHVyZXMKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZToKCiAgIHRlc3RpbmcgZm9yIGNoZWNraW5nIGNsaWVudCBzaWRlIHZlcmlmaWNhdGlvbiBvZiBzZXJ2ZXIKICAgY2VydGlmaWNhdGVzCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2V0dXAgZm9yIGEgaG9zdG5hbWUgY29uZmlnIG9wdGlvbgoKMjAxMC0wNi0xNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoZWNrIHRvIG1ha2Ugc3VlciBzc2wgcG9pbnRlciBoYXMgYmVlbiBjcmVhdGVkIHZpYSBmX29wZW4gY2FsbAoKMjAxMC0wNi0xNiAxNTowMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9wZXJsLmgsIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWNsYXJlICdzaHV0ZG93bl9wZXJsJyBwcm9wZXJseS4KCjIwMTAtMDYtMTYgMTQ6MzcgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgRWxpbWluYXRlICJzaWduZWQgYW5kIHVuc2lnbmVkIHR5cGUgaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lvbiIKICAgd2FybmluZ3MgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxNDoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgRWxpbWluYXRlICJ1bnVzZWQgdmFyaWFibGUiIHdhcm5pbmcKCjIwMTAtMDYtMTYgMTQ6MjIgIGR0czEyCgogICAqICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgdmFyaW91cyAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTYgMTM6MTMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFwcHMvc25tcHZhY20uYywgc25tcGxpYi90b29scy5jOgoKICAgRWxpbWluYXRlIChtb3N0KSBzaWduZWQtdnMtdW5zaWduZWQgd2FybmluZ3MgZnJvbSBudW1lcmljIHNjYW5mCiAgIHByb2Nlc3NpbmcgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTYgMDM6MjggIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB0aGUgZ3JlYXQgdW4tbmFtZWQgY29udGFpbmVyIGh1bnQKCjIwMTAtMDYtMTYgMDM6MjcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHNoYXJlIGNhY2hlIGJldHdlZW4gdGFibGUgYW5kIGNvdW50IHNjYWxhcjsgd2hlbiByZWFkaW5nIGNvbmZpZywKICAgYWRkIHRvCiAgIGxpYnJhcnkgY29udGFpbmVycyBmb3IgYWN0aXZlIHJvd3MsIHRhYmxlIGNvbnRhaW5lcnMgZm9yIGluYWN0aXZlCiAgIHJvd3M7CiAgIHVzZXIgY2VydF91dGlsIGFwaXMgaW5zdGVhZCBvZiBkaXJlY3QgY29udGFpbmVyIG1hbmlwdWxhdGlvbjsKICAgd2hlbgogICBzYXZpbmcgaW5hY3RpdmUgbWFwIHJvd3MsIHNraXAgYWxsIGJ1dCBub25Wb2xhdGlsZQoKMjAxMC0wNi0xNiAwMzoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggZGVidWcgdG9rZW4gdHlwbwoKMjAxMC0wNi0xNiAwMzoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhcGkgZm9yIGFkZGluZyBlbnRyaWVzIHRvIHRsdHNtIGFkZHIsIHBhcmFtcyBhbmQgY2VydCBtYXAKICAgY29udGFpbmVyczsKICAgcmVnaXN0ZXIgc2Ugc2xpc3QgcGFpciBlYXJsaWVyIHNvIHRoZXkgYXJlIGF2YWlsYWJsZSBkdXJpbmcKICAgY29uZmlnIHBhcnNpbmc7CiAgIG1ha2Ugc3VyZSBjb25maWcgc3RyaW5ncyBhcmUgbnVsbCB0ZXJtaW5hdGVkCgoyMDEwLTA2LTE1IDIxOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBTdXBwcmVzcyB3YXJuaW5nczoKICAgJ3N0cnVjdCBubG1zZ2hkciBkZWZpbmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCcgYW5kCiAgICdmdW5jdGlvbiBfbG9hZF92NiBkZWNsYXJlZCBidXQgbmV2ZXIgZGVmaW5lZCcKCjIwMTAtMDYtMTUgMjE6MzAgIGR0czEyCgogICAqICBhZ2VudC9rZXJuZWwuYywgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgRWxpbWluYXRlICJlbXB0eSB0cmFuc2xhdGlvbiB1bml0IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNSAwNzowNyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAzY29weV9ud29yZF9jbGliLmM6CgogICBBZGQgdGVzdCBvZiBjb3B5X253b3JkCgoyMDEwLTA2LTE0IDIxOjMyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgRWxpbWluYXRlICJvdmVyZmxvdyBpbiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9uIiB3YXJuaW5ncwogICBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xNCAxNTo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEVsaW1pbmF0ZSAic3RyaW5nIGxlbmd0aCBncmVhdGVyIHRoYW4gNTA5IiB3YXJuaW5ncyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAxNToxOSAgZHRzMTIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBFbGltaW5hdGUgImluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbXB1dGFibGUiIHdhcm5pbmdzCiAgIFstcGVkYW50aWNdCgoyMDEwLTA2LTE0IDA1OjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIGNvdW50IGhhbmRsZXJzIHRvIGNvdW50IG5vbi1hY3RpdmUgcm93cyB0b28KCjIwMTAtMDYtMTQgMDU6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBvbmx5IHR3ZWFrIHN0b3JhZ2VUeXBlIGZvciBhY3RpdmUgcm93czsgcmVzZXQgZW50cnkgZmxhZ3Mgd2hlbgogICByZW1vdmluZyBmcm9tCiAgIGNlcnRfdXRpbCBtYXBzOyB3aGVuIGNyZWF0ZWluZyByb3dzIGZyb20gY2VydF91dGlsIG1hcHMsIHNldAogICBzdHJhZ2V0VHlwZSB0bwogICB2b2xhdGlsZSBpZiBub25Wb2xhdGlsZSBmbGFnIG5vdCBzZXQ7IGRvbnQgZnJlZSBjYWNoZSBpbgogICBjYWNoZV9sb2FkIG9uIGVycgoKMjAxMC0wNi0xNCAwNToxMCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBtb3ZlIHRsc3RtQWRkciB0YWJsZSBjb25maWcgcGFyc2luZyB0byBjZXJ0X3V0aWw7IGFkZCBjYWNoZSB0bwogICBtZXJnZSBjZXJ0X3V0aWwKICAgYWRkcnMgKGFjdGl2ZSkgYW5kIG5vbi1hY3RpdmUgcm93czsKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgbm9uVm9sYXRpbGUgZmxhZyB0byB0bHN0bUFkZHIgdGFibGU7IHNldCBjb250YWluZXIgbmFtZTsgc2tpcAogICAnMHgnIGluIGZwCgoyMDEwLTA2LTE0IDA1OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgTE9HX0VSUiB0byBMT0dfSU5GTyBmb3Igbm9uLWVycm9yIGxvZyBtc2cKCjIwMTAtMDYtMTMgMjE6MDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tCiAgIE1mRC1iYXNlZCBNSUIgbW9kdWxlIGNvZGUsIGFuZCBNZkQgdGVtcGxhdGUgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMjE6MzMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20gKG5vbi1NZkQpCiAgIE1JQiBtb2R1bGUgY29kZS4gWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTIgMTA6MjYgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIGxpYnJhcnksCiAgIGFwcHMgYW5kIGFnZW50IGZyYW1ld29yaytoZWxwZXJzIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEwIDIwOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgbG9va3VwIGNlcnQga2V5cyBmb3IgdGxzIGRvbWFpbnM7IHVzZSBTRUNfTU9ERUwgZGVmaW5lIGluc3RlYWQgb2YKICAgaGFyZGNvZGVkCiAgIGNvbnN0YW50OyBhZGQgU0VDX01PREVMX1RTTSB0byBhbGxvd2VkIHNlYyBtb2RlbHMgZm9yIG1wTW9kZWwKICAgU05NUF9WRVJTSU9OXzMKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBkZWZhdWx0IHRvIHJlYWRPbmx5L2FjdGl2ZSBmb3IgYmFkIGNvbmZpZwoKMjAxMC0wNi0xMCAyMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkIGRlYnVnOyBzd2l0Y2ggdG8gU0VDX01PREVMX1RTTSBhbmQgd2FybiBpZiBvdGhlciBzZWNtb2RlIHNldCwKICAgaW5zdGVhZAogICBvZiBzaW1wbHkgbG9nZ2luZyB0aGF0IGl0IHdvbid0IHdvcmsKCjIwMTAtMDYtMTAgMTk6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNoZWNrIHB0cnMgYmVmb3JlIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTEwIDE5OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YSBtYW5hZ2VtZW50IHRvIGNlcnRfdXRpbDsgaW1wbGVtZW50CiAgIFRBUkdFVF9BRERSCiAgIGFuZCBUQVJHRVRfUEFSQU1TIGxvb2t1cCBpbiBjZXJ0IEFQSQoKMjAxMC0wNi0xMCAxOTo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVwZGF0ZSBzZWMgbW9kZWwgZGVmaW5lIG1pc3NlZCBpbiBlYXJsaWVyIGNoZWNraW4KCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBjb25maWcgdHJhcHNlc3MgdHJhbnNwb3J0cyBvbiBjcmVhdGlvbjsgc2ltcGxpZnkgaWZkZWZzIGZvcgogICBESVNBQkxFX1NOTVBWMQoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wa3NtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGF1dG8gc3dpdGNoIHRvIHYzIGZvciAoZCl0bHMgc2Vzc2lvbnMgaW5zdGVhZCBvZiBsb2dnaW5nIHRoYXQKICAgb3RoZXJzIHdvbnQKICAgd29yazsgZGVmaW5lIFRTTSBzZWMgbW9kZWwgd2l0aCBvdGhlciBzZWMgbW9kZWxzOyBjb25zaXN0ZW50bHkKICAgdXNlCiAgIFNOTVBfU0VDX01PREVMXyogaW4gdGhlIGNvZGUsIHVzaW5nICNkZWZpbmVzIGZvciBiYWNrd2FyZHMKICAgY29tcGF0aWJpbGl0eQogICB3LypfU0VDVVJJVFlfTU9ERUwKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0VG9UU046IG1vdmUgbWliIHJlbGF0ZWQgcGVyc2lzdGVuY2UgYmFjayBpbnRvIG1pYiBtb2R1bGU7CiAgIGNlcnRfdXRpbDogYWRkIHRsc3RtUGFyYW1zIHBlcnNpc3RlbmNlOyB1c2Ugc2xpc3QgZm9yIGNlcnQgbWFwCiAgIHR5cGUgbmFtZQogICBtYXBwaW5nOwoKMjAxMC0wNi0xMCAxOTo0NSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZyAoY29uc3QpCgoyMDEwLTA2LTEwIDA0OjU4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBBZGQgbWlzc2luZyBpbmRlbnRhdGlvbiBvZiBhIGRvLXdoaWxlIGxvb3AgdG8gbWFrZSB0aGUgY29kZQogICByZWFkYWJsZS4KCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBjb21tZW50IG91dCBrZXlVc2FnZSBzbyBwcm9wZXIgc2VsZi1zaWduZWQgY2VydHMgYXJlIGdlbmVyYXRlZAoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzb2xpZGlmeSBjZXJ0aWZpY2F0ZSBhY2NlcHRhbmNlIGZvciB0aGUgY2xpZW50IHNpZGUKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJyYXkgdHlwbwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvZyBvcGVuc3NsIGVycm9ycyBvbiBhY2NlcHQgZmFpbHVyZQoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVnaXN0ZXIgZGVmYXVsdCBwb3J0cyBmb3IgdGxzL2R0bHMKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkbyBwcm9wZXIgU1RPUkUgbG9hZGluZyBvZiB0cnVzdGVkIGNlcnRpZmljYXRlcyByYXRoZXIgdGhhbiBmaWxlCiAgIGJhc2VkIGxvYWRpbmcKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZGVkIHR3byBuZXcgQVBJczogbmV0c25tcF9jZXJ0X3RydXN0IGFuZCBuZXRzbm1wX2NlcnRfdHJ1c3RfY2EKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAndGxzJyB0cmFuc3BvcnQgbmFtZQoKMjAxMC0wNi0wOSAyMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBzdHJhaWdodCAnZHRscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDggMjE6MDUgIG1hZ2ZyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBhZ2VudF9yZWFkX2NvbmZpZy5oIGluIDUuNiBhcyB3ZWxsLiBJdCBkaXNhcHBlYXJlZCBpbgogICByMTg4NDMuCgoyMDEwLTA2LTA4IDA5OjI1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOgoKICAgUmVtb3ZlIChvciBhY3RpdmF0ZSkgdW51c2VkIHZhcmlhYmxlcy4KICAgRml4IG1pc25hbWVkIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgoKMjAxMC0wNi0wOCAwNzoxMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBBUEkgY2hhbmdlcyBmb3IgcHJlbGltaW5hcnkgSEFMX2Jhc2VkIGltcGxlbWVudGF0aW9uIG9mIFVDRCBkaXNrCiAgIG1vZHVsZS4KICAgKE9taXR0ZWQgZnJvbSByZXZpc2lvbiAxODkzMiBjaGVja2luKQoKMjAxMC0wNi0wOCAwNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgdXBkYXRlIG1ha2VmaWxlIGZvciBtb3ZlZCBoZWxwZXIgaGVhZGVycwoKMjAxMC0wNi0wNyAyMDoxOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgUmV2ZXJ0aW5nIHJldi4gMTc2MTYsIHRoZSBuZWNlc3NhcnkgY2hlY2sgaXMgYWxyZWFkeSBpbiByZXYuCiAgIDE3NDE1LgoKMjAxMC0wNi0wNiAwMzo0NSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRoczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbiBjYXNlIGV4ZWNfcHJlZml4IGlzIHVuc2V0IHRoZW4gc2V0IGl0IHRvCiAgICcke3ByZWZpeH0nIGluIG9yZGVyIHRvIHBpY2sgdXAgb3ZlcnJpZGVzIG9mICRwcmVmaXggaW4gbWFrZQogICBpbnN0YWxsLgoKMjAxMC0wNi0wNCAwNDowNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvIGEgYmV0dGVyIGpvYiBvZiB2ZXJpZnlpbmcgZmluZ2VycHJpbnRzIG9mIHJlbW90ZSBzZXJ2ZXJzCiAgIHB1bGxpbmcgZmluZ2VycHJpbnRzIGZyb20gYSBudW1iZXIgb2YgcG9zc2libGUgcGxhY2VzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgZ28gYWhlYWQgYW5kIGxvZyBvdXRwdXQgZmlsZSBmb3IgZWFzaWVyIGRlYnVnZ2luZyBpbiBlcnJvcnMKCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IHR5cG8KCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBjb21tZW50IGFib3V0IHJhbmRvbSBiZWluZyBpbmFkZXF1YXRlOyB3ZSdyZSBkb2luZyB0aGUKICAgYmVzdCB3ZSBjYW4gYmFzZWQgb24gd2hhdCB3ZSBoYXZlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSBhbm90aGVyIHVzZXIgZm9yIHRlc3Rpbmcgc25tcGFwcCBkZWZhdWx0IGNlcnRpZmljYXRlCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJ1biBhIGRlZmF1bHQgdGVzdCB3aXRob3V0IGEgbG9jYWwga2V5IHRvIGVuc3VyZSB0aGUgc25tcGFwcCB0eXBlCiAgIGlzIHBpY2tlZCB1cAoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgdGhlIGxvY2FsIGlkZW50aXR5IGFuZCBwdWxsIGl0IGZyb20gYQogICBmaWxlbmFtZSBvZiB0aGUgaW5pdF9zbm1wKCkgcmVnaXN0ZXJlZCB0eXBlIG5hbWUKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBkb2MgdXBkYXRlCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDV1bml4LnQ6CgogICB1bml4IHNvY2tldCB0ZXN0CgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAzdWRwNi50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDR0Y3A2LnQ6CgogICBpcHY2IHRlc3RzCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgbWVudGlvbiB0ZXN0IG5hbWUgaXMgSVB2NAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIGNoZWNrIHRoYXQgdHJhbnNwb3J0IHdhcyBjb25maWd1cmVkCgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgYWRkIHN1cHBvcnQgZm9yIG5ldC1zbm1wLWNvbmZpZy5oIGNoZWNrcwoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvTmV0U05NUFRlc3RUcmFuc3BvcnQucG0sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIHNvbWUgYmFzaWMgdHJhbnNwb3J0IGNoZWNraW5nIGZvciBwZXJsOiB1ZHAgYW5kIHRjcAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybCwgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMDAxYmFzaWMudDoKCiAgIGJhc2ljIHRlc3RzIGZvciBwZXJsCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgaW5mcmFzdHJ1Y3R1cmUgbW9kdWxlIGZvciB0ZXN0aW5nIHBlcmwgc3VwcG9ydAoKMjAxMC0wNi0wMyAxNTo1NiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBQb2ludCBMSUJ7Q1VSUkVOVCxBR0UsUkVWSVNJT059IGRvY3VtZW50YXRpb24gdG8gdGhlIGNvcnJlY3QKICAgZmlsZS4KICAgV2FybiBhYm91dCAnbWFrZWRlcGVuZCcgcGlja2luZyB1cCB0ZXN0aW5nIG1vZHVsZSBjb2RlLgogICBFbXBoYXNpcyB1cGRhdGUgb2YgJ2Rvd25sb2FkLmh0bWwnIHBhZ2UKICAgTWVudGlvbiB1cGRhdGUgb2YgT2ZmaWNpYWwgUGF0Y2hlcwogICBTdXBwcmVzcyBicm9rZW4gY29tbWFuZHMKCjIwMTAtMDYtMDMgMTU6MTYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzayBtb2R1bGUuCiAgIEVuc3VyZXMgY29uc2lzdGVudCByZXBvcnRpbmcgYmV0d2VlbiBVQ0QgYW5kIEhvc3RSZXMgRlN5cyB1c2FnZQogICBhbmQgZXh0ZW5kcyAnc2tpcE5GU0luSG9zdFJlc291cmNlcycgY29uZmlnIHRvIFVDRCBkaXNrIHN0YXRzLgoKMjAxMC0wNi0wMyAxNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmM6CgogICBGaXggYnJva2VuIHNpemUgY2FsY3VsYXRpb25zLgogICBTdXBwb3J0IDY0LWJpdCBzaXplL3VzYWdlIHZhbHVlcy4KCjIwMTAtMDYtMDIgMTQ6NTIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIC0td2l0aC1jYSBpbnN0ZWFkIG9mIC0tY2EKCjIwMTAtMDYtMDIgMTQ6NTEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIHRoZSBuZXcgLWJyaWVmIG9wdGlvbiBmb3IgZmluZ2VycHJpbnQgY2FwdHVyaW5nCgoyMDEwLTA2LTAyIDE0OjQwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggLS13aXRoLWNhIGhhbmRsaW5nLCBmaXggQ0EgbmV3Y2VydHMgYm9va2tlZXBpbmcKCjIwMTAtMDYtMDIgMTA6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBwYXJzaW5nIE9JRHMKICAgaW4gY29uZmlnIGZpbGVzLgoKMjAxMC0wNi0wMiAwMDoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjaGVjayB0aGF0IENBIGNlcnRpZmljYXRlcyBjcmVhdGVkIGFmdGVyIHNubXBkIHN0YXJ0cyBhcmUgc3RpbGwKICAgdXNhYmxlOyBjaGVjayBhbGwgb3V0cHV0IGZpbmdlcnByaW50cyB0byBlbnN1cmUgdGhleSB3ZXJlCiAgIHByb3Blcmx5IGNyZWF0ZWQKCjIwMTAtMDYtMDIgMDA6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGQgbWlzc2luZyBkaXJlY3RvcnkgYW5kIGZpbGUgc3VmZml4IHRvIGNhIGludm9jYXRpb25zCgoyMDEwLTA2LTAyIDAwOjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBjaGVjayB0aGF0IGNlcnRpZmljYXRlIG91dHB1dCBmaW5nZXJwcmludHMgd2VyZSBmb3VuZAoKMjAxMC0wNi0wMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIHR3byBuZXcgZnVuY3Rpb25zIGZvciB2YWx1ZSBjb21wYXJpc29uIHRlc3Qgb3V0cHV0CgoyMDEwLTA2LTAyIDAwOjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIHJlbW92ZSBuby1sb25nZXItdXNlZCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSB0b2tlbiBzcGVjaWZpZXIgKHdlCiAgIHJlcXVpcmUgYSBjb3B5IG9mIHRoZSBrZXkpCgoyMDEwLTA2LTAyIDAwOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIC0gY2hhbmdlZCAnZmluZ2VycHJpbnQnIHRva2VuIHRvIG1vcmUgZ2VuZXJpYyAnaWRlbnRpdHknIGtleXdvcmQKICAgLSBhZGRlZCB0aGUgYWJpbGl0eSBmb3IgbmV0c25tcF9jZXJ0X2ZpbmQgdG8gdHJ5IG11bHRpcGxlIHR5cGVzCiAgIChGUCAmIGZpbGUpCiAgIC0gYW5kIHByb3ZpZGUgdGVzdCBzdWl0ZSB0ZXN0IGZvciBpdC4KCjIwMTAtMDYtMDEgMjA6MTIgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBQZXJsIGV4dGVuc2lvbiBtb2R1bGVzIGNhbiBsb2FkIHRoZSBOZXQtU05NUAogICBETExzIHdoaWxlIHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHJlZ3Jlc3Npb24gdGVzdHMuCgoyMDEwLTA2LTAxIDE2OjQ3ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ham9yIHVwZGF0ZSBidWcgZml4ZXMgYW5kIGZlYXR1cmVzIC0gaW50ZXJhY3RpdmUgbW9kZSwgc2VwYXJhdGUKICAgQ0EgZGlycywgZ2VuIGNzciBmcm9tIGNlcnQsIGZpbmdlcnByaW50IGRpc3BsYXkgLS1icmllZiwKICAgZWxpbWluYXRlIHNlZCwgb3BlbnNzbC5jb25mIG92ZXJ3cml0ZSBhbmQgdGVtcGxhdGluZwoKMjAxMC0wNi0wMSAxNDo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDYtMDEgMTQ6MjUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgSVAtTUlCOjppcElmU3RhdHNSZWFzbVJlcWRzIHZhbHVlLgogICAKICAgSnVzdCBmaXhpbmcgYSBzdHVwaWQgdHlwby4KCjIwMTAtMDUtMzEgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBlbmFibGVkIFVuaXggdHJhbnNwb3J0LgogICAoRm9yd2FyZC1wb3J0ZWQgcjE4Njg3IGZyb20gdGhlIFY1LjUgYnJhbmNoKS4KCjIwMTAtMDUtMzAgMjI6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgdG8gcnVuIHdpdGggb2xkZXIgUGVybCAoZS5nLiBQZXJsIDUuMDA0MDUgYXMgc2hpcHBlZCB3aXRoCiAgIElSSVgKICAgNi41KQoKMjAxMC0wNS0zMCAyMjo0OSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHBvbGlzaCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTMwIDIwOjE5ICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW4sICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IERvIG5vdCBsaW5rIHdpdGggbGlibmV0c25tcGhlbHBlcnMgYW55IG1vcmUgYXMKICAgaXQgaXMgZW1wdHkuCgoyMDEwLTA1LTMwIDE5OjE4ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL3NubXAuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBhIHZvaWQgYXJndW1lbnQgZm9yIHRoZSBkYXRhIGFyZ3VtZW50IG9mCiAgIHhkdW1wLgoKMjAxMC0wNS0zMCAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBCVUc6IDIwNTE3NDI6IGFkZGVkIG1pc3NpbmcgUEVSTF9TWVNfSU5JVDMoKSBjYWxsIChzZWUKICAgYWxzbyBtYW4gcGVybGVtYmVkKS4KCjIwMTAtMDUtMzAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZnJlZSgpIGNhbGxlZCB3aXRob3V0IGJlaW5nIGRlY2xhcmVkCiAgIGZpcnN0KS4KCjIwMTAtMDUtMzAgMTY6NTYgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcGxpYjogRG8gbm90IHJlcXVpcmUgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBpbmNsdWRlZC4KCjIwMTAtMDUtMzAgMTI6MDAgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLiBSZW1vdmUKICAgdW5uZWNlc3NhcnkgaW5jbHVkZXMuCgoyMDEwLTA1LTMwIDA2OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2R1bW15LmM6CgogICBNYWRlIHN1cmUgdGhhdCBsaWJuZXRzbm1waGVscGVycyBpcyBub3QgZW1wdHkgc3VjaCB0aGF0IGJ1aWxkaW5nCiAgIE5ldC1TTk1QIG9uIEFJWCBhbmQgSVJJWCBpcyBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDUtMjkgMDk6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRm9sbG93LXVwIGZvciByMTg5MDI6IHdvcmtzIGFnYWluIHdpdGhvdXQgVEFQOjpIYXJuZXNzLgoKMjAxMC0wNS0yOCAyMzoyMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbG9uZy1hZ28gYnJva2VuIHZlcmJvc2l0eQoKMjAxMC0wNS0yOCAyMzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggbW9yZSBwcmV2aW91c2x5IGJyb2tlbiBvcHRpb24gcmVuYW1lczsgY2hhbmdlIC1kIHRvCiAgIG1hc3Rlci1kaXJlY3RvcnkgYW5kIGFkZCBhcyBhIHJlYWwgYXJndW1lbnQKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIG1vcmUgbWlzc2luZyBvbGR1Y2QgcmVuYW1lcwoKMjAxMC0wNS0yOCAyMjo1NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX3NpbXBsZToKCiAgIHJlbmFtZWQgJ29sZHVjZCcgdG8gJ3NpbXBsZScgdG8gcHV0IGEgbW9yZSBwb3NpdGl2ZSBzcGluIG9uIHRoZW0KCjIwMTAtMDUtMjggMjI6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSB0ZXN0IHN1aXRlCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgcmV2ZXJ0IHVuaW50ZW50aW9uYW5hbGx5IGNvbW1pdHRlZCB0ZXN0IHRlc3QKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBmcmVlIHZhcmlhYmxlcyBhZ2FpbgoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeCB3YWxrcyBzbyB0aGF0IG11bHRpcGxlIHdhbGtzIHRlcm1pbmF0ZSBwcm9wZXJseQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIHBhdGNoIHRvIGhhbmRsZSB0ZXN0aW5nIG9mIGxvb3Bpbmcgb2YgbXVsdGlwbGUgdmFyYmluZHMgaW4gYSB3YWxrCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgaW5pdGFsIHBhdGNoIHRvIHByZXZlbnQgbG9vcGluZyB3YWxrcwoKMjAxMC0wNS0yOCAyMDo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGltcGxlbWVudCBjZXJ0IGxvb2t1cCBieSBmaWxlbmFtZQoKMjAxMC0wNS0yOCAwNzowMiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgY29uc3QgZGVjbGFyYXRpb25zIHRvIHRoZSBkaXNhYmxlZCB2ZXJzaW9ucwogICBvZiB0aGUgZGVidWdnaW5nIGNvZGUgYXMgd2VsbC4KCjIwMTAtMDUtMjggMDI6MTIgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhZGQgcGVyc2lzdGVuY2U7IGNoZWNrIGZvciBjb2wgbW9kcyB3aGlsZSByb3cgYWN0aXZlCgoyMDEwLTA1LTI4IDAyOjExICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIENIQU5HRVM6IGFnZW50bGliOiBuZXcgZnVuY3Rpb25zIHRvIG1ha2Ugc3Rhc2ggcHRyIGFuZCBuZXdyb3cKICAgYXZhaWxhYmxlIHRvCiAgIHRhYmxlX2RhdGFzZXQgaGFuZGxlcnMKICAgbm9uZXdzOiBmaXggdHlwbzsgdGFicyB0byBzcGFjZXM7IHVzZSBzaXplb2YgaW5zdGVhZCBvZiBjb25zdGFudAoKMjAxMC0wNS0yNyAxODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzLgoKMjAxMC0wNS0yNyAxODoyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICAibWFrZSB0ZXN0IiB3aXRob3V0IFRBUDo6SGFybmVzcyAod2FzIGJyb2tlbiBieSByMTg4MDIpLgoKMjAxMC0wNS0yNyAxNToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIAogICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4gTW9zdCBmaXhlcyBpbnZvbHZlZCBhZGRpbmcgdGhlCiAgICJjb25zdCIga2V5d29yZC4KCjIwMTAtMDUtMjcgMTM6NTIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjk3MjU3OTogZml4ZWQgY2hlY2tpbmcgb2YKICAgc25tcFRhcmdldEFkZHJSb3dTdGF0dXMgU0VUIHJlcXVlc3RzLgoKMjAxMC0wNS0yNyAxMzo0MSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICByZXZlcnQgcGFydCBvZiAxODg4NTogdGVzdCBmaWxlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBydW4gYnkKICAgdGhlbXNlbHZlcyB0b28KCjIwMTAtMDUtMjcgMTE6MTkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBjb3JyZWN0bHkgY2FsY3VsYXRlIGlmWFRhYmxlLmlmSENJblVjYXN0UGt0cyBvbiAzMi1iaXQKICAgTGludXgKICAgCiAgIExpbnV4IGRvZXMgbm90IHByb3ZpZGUgc3RhbmRhbG9uZSBjb3VudGVyIGZvciBpbmNvbWluZyB1bmljYXN0CiAgIHBhY2tldHMgKGl1Y2FzdCkKICAgLSBpdCBwcm92aWRlcyBjb3VudGVyIG9mIGFsbCBwYWNrZXRzIChpYWxsKSArIHNlcGFyYXRlIGNvdW50ZXIKICAgZm9yIHRoZSBtdWx0aWNhc3QKICAgb25lcyAoaW1jYXN0KS4gUHJldmlvdXMgaW1wbGVtZW50YXRpb24gb2YgaWZUYWJsZSByZWFkIHRoZXNlCiAgIGNvdW50ZXJzIGFuZAogICBjYWxjdWxhdGVkIGl1Y2FzdCA9IGlhbGwgLSBpbWNhc3QgKmJlZm9yZSogdGhlc2UgdmFsdWVzIHdlcmUKICAgZXhwYW5kZWQgaW50bwogICA2NGJpdHMuIFRoaXMgcHJvZHVjZWQgZXJyb3JzIG9uIDMyYml0IHN5c3RlbXMgd2hlbiBpYWxsCiAgIG92ZXJmbG93ZWQgdG8gemVybyBhbmQKICAgaW1jYXN0IHdhcyBub3plcm8gLT4gaXVjYXN0IGdvdCBuZWdhdGl2ZSBhbmQgJ2M2NCAzMiBiaXQgY2hlY2sKICAgZmFpbGVkJyBlcnJvciBpbgogICBzbm1wZCBsb2cuIE5vdyB0aGUgYWdlbnQgZXhwYW5kcyB0aGVzZSB2YWx1ZXMgdG8gNjRiaXRzIGZpcnN0IGFuZAogICAqICAgICAqdGhlbiogcGVyZm9ybXMgICAgdGhlIGNhbGN1bGF0aW9uLCB1c2luZyBhIG5ldyBmbGFnLiAKICAgICAgMjAxMC0wNS0yNyAwODoxOCAgbWFnZnIKCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9SVU5URVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1bjoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IE1vdmUgdGhlIHNldHRpbmcgb2YgTUlCRElSUyBmcm9tIHRoZSBzdXBwb3J0CiAgIHNjcmlwdCB0byB0aGUgZHJpdmVycyBzaW5jZSBpdCBpcyBuZWVkZWQgZm9yIHRoZSBDIHRlc3RzIGFzIHdlbGwuCgoyMDEwLTA1LTI3IDA4OjA5ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVXNlIG9sZHVjZF9ydW4sIG5vdCBydW5fb2xkdWNkLiBDaGFuZ2Ugc3JjZGlyCiAgIHRvIHJlZmVyIHRvIHRoZSB0b3AgZGlyZWN0b3J5IGFuZCBub3QgdGhlIHRlc3Rpbmcgc3ViZGlyZWN0b3J5IGFzCiAgIHRoYXQgaXMgd2hhdCBpcyBleHBlY3RlZCBpbiB0aGUgdGVzdCBzY3JpcHRzLgoKMjAxMC0wNS0yNyAwNToxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgd2FybmluZyBzcXVhc2hpbmcKCjIwMTAtMDUtMjcgMDU6MTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIHNubXBsaWIva2V5dG9vbHMuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jOgoKICAgbW9yZSBjb25zdCBjb3JyZWN0bmVzcwoKMjAxMC0wNS0yNyAwNDoxOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0cyBmb3IgYWdlbnQtbm90LWtub3duLXVzZXItY2VydGlmaWNhdGVzCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgcmVmZXJlbmNlIHRoZSBpdG5lcm5hbCBzdXBwb3J0IGFuZCByZWxhdGVkIGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbC9PUEVOU1NMLUxJQ0VOU0UsIHNubXBsaWIvb3BlbnNzbC9SRUFETUU6CgogICBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIE5FV1M6IGxpYm5ldHNubXA6IFN1cHBvcnQgZm9yIGEgc3RyZWFtLWxpbmUgc3RyaXBwZWQgZG93biB2ZXJzaW9uCiAgIG9mIGludGVybmFsIE9wZW5TU0wgc3VwcG9ydCB1c2luZyAtLXdpdGgtb3BlbnNzbD1pbnRlcm5hbAoKMjAxMC0wNS0yNyAwNDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Flcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9vcGVuc3NsX21kNS5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zcHIuaCwgCiAgICAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgcmVtb3ZlIG1vcmUgZGVwZW5kZW5jaWVzIGZvciBleHRlcm5hbCBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL29wZW5zc2wsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NvcmUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kMzJfY29tbW9uLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDVfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2V0X2tleS5jLCBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGEuaCwgCiAgICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGFfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jLCBzbm1wbGliL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYywgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQzMl9jb21tb24uaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1X2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIG1vdmUgb3BlbnNzbCBjb2RlIGludG8gYSBzdWJkaXJlY3RvcnkKCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkOgoKICAgZml4IHRlc3Rpbmcgc28gaXQgdXNlcyBtdWx0aXBsZSB0eXBlcyBvZiBjcnlwdG8KCjIwMTAtMDUtMjcgMDQ6MTMgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5pdGlvbnMgYW5kIGZpbGVzIGZvciBkb2luZyBpbnRlcm5hbCBjcnlwdG8gc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgaW5jbHVkZSBpbnRlcm5hbCBhZXMvZGVzIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsIHNubXBsaWIvb3BlbnNzbF9tb2Rlcy5oOgoKICAgaW5pdGFsIGNvcGllcyBvZiBjZmIxMjggbW9kZXMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYzoKCiAgIGxvY2FsaXplCgoyMDEwLTA1LTI3IDA0OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oOgoKICAgaW5pdGlhbCB2ZXJzaW9ucyBvZiBhZXNfY29yZS5jIGFuZCBhZXNfbG9jbC5oCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBhZXMuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY2ZiLmM6CgogICBpbml0aWFsIGNvcHkgb2YgdGhlIG9wZW5zc2wgYWVzX2NmYi5jIGZpbGUKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBpbmNsdWRlIGxvY2FsaXplZCBjb3BpZXMgb2YgdGhlIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICB1c2UgaW50ZXJuYWwgREVTCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jOgoKICAgbG9jYWxpemVkIGNvcHkgb2YgdGhlIGNiY19lbmMuYyBmaWxlIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3Nwci5oOgoKICAgZGVzL3Nwci5oIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYzoKCiAgIGFkZGVkIGRlc19lbmMuYyBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfbWQ1LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX3NoYS5oOgoKICAgbG9jYWwgY29waWVzIG9mIHRoZSBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oOgoKICAgaW5pdGlhbCBjb3B5IG9mIG9wZW5zc2wncyBkZXMuaAoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBsb2NhbGl6ZWQgaGVhZGVyIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX2Rlc19sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYzoKCiAgIGluaXRhbCBjb3BpZXMgb2Ygc29tZSBvZiB0aGUgb3BlbnNzbCBERVMgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgZmluaXNoaW5nIHBvcnRpbmcgb2YgaW50ZXJuYWwgYXV0aCBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGludGVybmFsIGNyeXB0byBmaWxlcyB0byB0aGUgY2hlY2svdXNlIGxpc3QKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhX2xvY2FsLmgsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGxvY2FsaXplZCBmaWxlIG5hbWVzIHdpdGggb3BlbnNzbCBwcmVmaXhlcwoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgc25tcGxpYi9tZDVfbG9jbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1LmM6CgogICBsb2NhbGl6ZSB0aGUgbWQ1IGltcGxlbWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjA1ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9vcGVuc3NsX3NoYS5oLCBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCAgIAogICAgICBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBjb21wbGV0ZWx5IGxvY2FsaXplIHRoZSBvcGVuc3NsIFNIQSBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfc2hhLmg6CgogICBpbml0aWFsIHZlcmlzb24gb2Ygc2hhLmggY29weQoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvbWQzMl9jb21tb24uaCwgc25tcGxpYi9tZDVfbG9jbC5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGFkZGVkIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBjcnlwdG8gZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBtYWtlIHVzZSBvZiBpbnRlcm5hbCBjcnlwdG8gaGFzaCBmdW5jdGlvbnMKCjIwMTAtMDUtMjcgMDQ6MDMgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY29uZmlndXJlIGNoZWNrcyBmb3IgaW50ZXJuYWwtY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjYgMjI6MTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBwcm9wZXJseSB2ZXJpZnkgZXhwZWN0ZWQgc2VydmVyIGNlcnRpZmljYXRlcyB1bmRlciBEVExTOyBhZGQgYQogICBuZXcgZmxhZyBpbiB0bHNiYXNlIHRvIGluZGljYXRlIHZlcmlmaWNhdGlvbiBoYXMgb2NjdXJyZWQKCjIwMTAtMDUtMjYgMjE6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIGNvbXBpbGVyIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIGFkZCBjb25zdCBxdWFsaWZpZXJzIHRvIGEgZmV3IHBsYWNlcwoKMjAxMC0wNS0yNiAxOTo0NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wbWlicywgbGlibmV0c25tcGhlbHBlcnMgYW5kCiAgIGxpYm5ldHNubXBhZ2VudCBkbyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbiBjb25maWd1cmVkIHdpdGgKICAgLS1lbmFibGUtc2hhcmVkLgoKMjAxMC0wNS0yNiAxNzo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBORVdTOiBtb3ZlZCBhbGwgZnVuY3Rpb25zIGRlZmluZWQgaW4gbGlibmV0c25tcGhlbHBlcnMgdG8KICAgbGlibmV0c25tcGFnZW50LiBsaWJuZXRzbm1waGVscGVycyBpcyBub3cgYW4gZW1wdHkgbGlicmFyeS4KCjIwMTAtMDUtMjYgMTc6MjAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbnVsbC5jLCAgIAogICAgICBhZ2VudC9vbGRfYXBpLmM6CgogICBSZXZlcnRlZCByMTg4MjkgaW4gb3JkZXIgdG8gbWluaW1pemUgZGlmZnMgd2l0aCBvbGRlciBicmFuY2hlcy4KCjIwMTAtMDUtMjUgMDc6MjMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIFRlbGwgbmV0LXNubXAtY2VydCB3aGVyZSBuZXQtc25tcC1jb25maWcgaXMgbG9jYXRlZAoKMjAxMC0wNS0yNSAwNzoxNCAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ29ycmVjdCB0aGUgc2lnbmF0dXJlIG9mIG1haW4uIFVzZSAjaW5jbHVkZSBpbnN0ZWFkIG9mIHNvdXJjaW5nCiAgIHRvIGdldCB0aGUgY29kZSB1bmRlciB0ZXN0IGluIG9yZGVyIHRvIGdldCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKCjIwMTAtMDUtMjUgMDc6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBBZGQgYXJndW1lbnRzIHRvIHNwcmludGYgc3RhdGVtZW50cyB0byBtYWtlIHRoZSB0ZXN0IHdvcmsKCjIwMTAtMDUtMjUgMDc6MDcgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCBkaXNhYmxlZCBjb2RlCgoyMDEwLTA1LTI1IDA1OjIwICBtYWdmcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFNwbGl0IHNubXBJUEJhc2VEb21haW4gYW5kIG1vdmUgdGhlIElQdjQgcGFydHMKICAgdG8gSVB2NEJhc2UgYW5kIHRoZSBzb2NrZXQgZ2VuZXJpYyBwYXJ0cyB0byBTb2NrZXRCYXNlLgoKMjAxMC0wNS0yNCAyMDoyNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpbmlzaCB0bHN0bVBhcmFtc1RhYmxlIGxhc3RDaGFuZ2VkIHNjYWxhcgoKMjAxMC0wNS0yNCAxOToyOCAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQWRkIC0tZXh0ZXJuYWwtbGlicyBpbiBvcmRlciB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0ZXN0cyBvbgogICBzb2xhcmlzCgoyMDEwLTA1LTI0IDEzOjMzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBhcmdoLi4gZml4IGZhbGxvdXQgZnJvbSBtYW51YWxseSAobWlzKWFwcGx5aW5nIHBhdGNoCgoyMDEwLTA1LTI0IDEyOjU5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGZpcnN0IHBhc3MgYXQgdGxzdG1QYXJhbXNUYWJsZQoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBkZWZpbmVzIHRvIG1hdGNoIE1JQiBuYW1lcywgcGVyIGdyYW5kLXBvb2JhaAoKMjAxMC0wNS0yNCAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYzoKCiAgIHVwZGF0ZSBPSUQgdG8gbWF0Y2ggdXBjb21pbmcgUkZDCgoyMDEwLTA1LTI0IDExOjQ4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlibmV0c25tcGFnZW50LCBsaWJuZXRzbm1waGVscGVyczogbW92ZWQgdGhlIGZ1bmN0aW9ucwogICBuZXRzbm1wX2J1bGtfdG9fbmV4dF9maXhfcmVxdWVzdHMoKSwKICAgbmV0c25tcF9nZXRfYnVsa190b19uZXh0X2hhbmRsZXIoKSwgbmV0c25tcF9yZWdpc3Rlcl9udWxsKCksCiAgIG5ldHNubXBfcmVnaXN0ZXJfbnVsbF9jb250ZXh0KCkgYW5kIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgpCiAgIGZyb20gbGlibmV0c25tcGhlbHBlcnMgdG8gbGlibmV0c25tcGFnZW50LgogICBOb3RlczoKICAgLSBUaGlzIGRvZXMgbm90IGFmZmVjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgYXBwbGljYXRpb25zCiAgIHRoYXQgbGluayB3aXRoICQobmV0LXNubXAtY29uZmlnIC0tYWdlbnQtbGlicykgc2luY2UgdGhpcwogICBpbnZvbHZlcyBsaW5raW5nIHdpdGggYm90aCBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50LgogICAtIEZ1bmN0aW9ucyBoYXZlIGJlZW4gbW92ZWQgYmV0d2VlbiBsaWJyYXJpZXMgYnkgbW92aW5nIGVudGlyZQogICBzb3VyY2UgZmlsZXMuCgoyMDEwLTA1LTI0IDEwOjEwICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgIFVzZSBwcm9wZXIgc3RyaW5nIHNpemVzIGFuZCBtYWtlIHN1cmUgc3RyaW5ncyBhcmUKICAgemVyby10ZXJtaW5hdGVkLgoKMjAxMC0wNS0yNCAwODowMSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCBuZXQtc25tcC1jb25maWcuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBDeWd3aW46IGxpYm5ldHNubXAgZG9lcyBub3cgYnVpbGQgYXMgYSBETEwgd2hlbgogICBjb25maWd1cmVkIHdpdGggLS1lbmFibGUtc2hhcmVkLgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmwgbW9kdWxlcyBkbyBub3cgYnVpbGQgKC0td2l0aC1wZXJsLW1vZHVsZXMpLgogICBOb3RlOiB0aGUgVDA2MHRyYXBkcGVybF9vbGR1Y2QsIFQwNjFhZ2VudHBlcmxfb2xkdWNkIGFuZAogICBUMTE1YWdlbnR4cGVybF9vbGR1Y2QgdGVzdHMgc3RpbGwgZmFpbC4KCjIwMTAtMDUtMjMgMjM6MDYgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgdXBkYXRlIGZpbGVuYW1lcy9wYXRzaCBmb3IgcmVjZW50IGZpbGUgcmVuYW1lczsgZml4IHR5cG9zCgoyMDEwLTA1LTIzIDIyOjA4ICBtYWdmcgoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgdGhlIHNhbWUgY29tcGlsZXIgY29tbWFuZCBhbmQgZmxhZ3MgZm9yCiAgIGJ1aWxkaW5nIG9mIHRlc3RzIGFzIGZvciBidWlsZGluZyBvZiB0aGUgY29kZSwgdGh1cyBlbmFibGluZyB0ZXN0CiAgIG9mIGUuZy4gMzItYml0IGNvZGUgY29tcGlsZWQgb24gYSA2NC1iaXQgcGxhdGZvcm0uCgoyMDEwLTA1LTIzIDIxOjQxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgdXBkYXRlIGluY2x1ZGUvY29uZmlnIGZpbGUvcGF0aHMgZm9yIHJlY2VudCByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjMxICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICByZW5hbWUgZmlsZXMgZm9yIE1JQiByZW5hbWVzCgoyMDEwLTA1LTIzIDIxOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZToKCiAgIHJlbmFtZSBkaXJlY3RvcmllcyB0byBtYXRjaCByZW5hbWVzIGluIE1JQgoKMjAxMC0wNS0yMCAwODo0OCAgYnZhc3NjaGUKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3dhcHBlZCBsaW5rIG9yZGVyIG9mIC1sbmV0c25tcGhlbHBlcnMgLWxuZXRzbm1wbWliczogbmV0c25tcG1pYnMKICAgZGVwZW5kcyBvbiBuZXRzbm1waGVscGVycyBhbmQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgoKMjAxMC0wNS0yMCAwODo0MiAgYnZhc3NjaGUKCiAgICogIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE5IDE4OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaGluZwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIG91dHB1dCBmaWxlbmFtZXMgb2YgZmFpbGVkIHRlc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHdpcGUgdHJhaWxpbmcgY29tbWVudCBDIG1hcmtlciBpZiBpdCBleGlzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgdGl0bGUgdGhlIFNOTVB2MyB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGVzdGluZyBvZiBidWlsdCB0aXRsZXMKCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgb25seSBwcmludCBmYWlsdXJlIGhlYWRlciBpZiB0aGVyZSB3YXMgYXQgbGVhc3Qgb25lCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZDoKCiAgIG1ha2UgZGVzY3JpcHRpdmUgdGl0bGVzIHdvcmsgYWdhaW4KCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIHJlbmFtZSBmaWxlcyBzbyBwcmVmaXhpbmcgaXMgYmFzZWQgb24gdGhlIHN1aXRlIG5hbWUsIG5vdCBmaWxlCiAgIHR5cGUKCjIwMTAtMDUtMTkgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5QTCwgcGVybC9NYWtlZmlsZS5zdWJzLnBsLCAgIAogICAgICBwZXJsL09JRC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IEN5Z3dpbjogcGVybDogYnVpbGRpbmcgdGhlIFBlcmwgbW9kdWxlcyB3aXRoIHRoZSBDeWd3aW4KICAgUGVybCBwYWNrYWdlIGlzIG5vdyBwb3NzaWJsZS4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4OCBmcm9tIHRoZSBWNS41IGJyYW5jaC4pCgoyMDEwLTA1LTE5IDE3OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xOSAxMjowNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgRmlyc3QtZHJhZnQgc3VwcG9ydCBmb3IgQUlYIGZpbGVzeXN0ZW0gSEFMIG1vZHVsZSAodW50ZXN0ZWQpCgoyMDEwLTA1LTE5IDExOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBTdXBwb3J0IGZvciBTb2xhcmlzLXN0eWxlICdnZXRtbnRlbnQnIEFQSS4KCjIwMTAtMDUtMTkgMDk6NTcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIFNpbXBsaWZ5IHRoZSBoYW5kbGluZyBvZiB1bmtub3duL3Vud2FudGVkIGZpbGUgc3lzdGVtcy4KCjIwMTAtMDUtMTkgMDk6MzAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBGaXggbWlzc2luZy9icm9rZW4gQVBJIGRlY2xhcmF0aW9ucy4KCjIwMTAtMDUtMTkgMDg6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIE1hZGUgZXJyb3IgbWVzc2FnZXMgbW9yZSBjbGVhciBpbiBjYXNlIG9mIGZhaWx1cmUgb3Igd3JvbmcKICAgaW52b2NhdGlvbi4KCjIwMTAtMDUtMTkgMDA6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgdGVzdCBmb3IgdXNpbmcgYSBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkgYSBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wNS0xOCAyMzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIHdlIGNhbGwgdGhlIHJpZ2h0IFBlcmwKCjIwMTAtMDUtMTggMjA6MzkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IGFnZW50OiBpbmNsdWRlIGxvY2FsIHBvcnQgbnVtYmVyIGluIHBhY2tldCBkdW1wcy4gQW4KICAgZXhhbXBsZToKICAgCiAgIFJlY2VpdmVkIDM2IGJ5dGUgcGFja2V0IGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCAyMiAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMSAxNSAwMgogICAwIi4uLi4ucHVibGljLi4uCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDA3IDMwIDA1IDA2CiAgIC43Li4uLi4uLi4uMC4wLi4KICAgMDAzMjogMDEgMDEgMDUgMDAgLi4uLgogICAKICAgUmVjZWl2ZWQgU05NUCBwYWNrZXQocykgZnJvbSBVRFA6CiAgIFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIEdFVE5FWFQgbWVzc2FnZQogICAtLSBjY2l0dC4xCiAgIAogICBTZW5kaW5nIDExOCBieXRlcyB0byBVRFA6IFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIDAwMDA6IDMwIDc0IDAyIDAxIDAxIDA0IDA2IDcwIDc1IDYyIDZDIDY5IDYzIEEyIDY3IDAyCiAgIDB0Li4uLi5wdWJsaWMuZy4KICAgMDAxNjogMDQgMzcgRjIgRDQgOUIgMDIgMDEgMDAgMDIgMDEgMDAgMzAgNTkgMzAgNTcgMDYKICAgLjcuLi4uLi4uLi4wWTBXLgogICAwMDMyOiAwOCAyQiAwNiAwMSAwMiAwMSAwMSAwMSAwMCAwNCA0QiA0QyA2OSA2RSA3NSA3OAogICAuKy4uLi4uLi4uS0xpbnV4CiAgIDAwNDg6IDIwIDYxIDczIDc1IDczIDIwIDMyIDJFIDM2IDJFIDMzIDMzIDJFIDMyIDJEIDczIGFzdXMKICAgMi42LjMzLjItcwogICAwMDY0OiA2MyA3MyA3NCAyMCAyMyAzMSAyMCA1MyA0RCA1MCAyMCA1MCA1MiA0NSA0NSA0RCBjc3QgIzEgU01QCiAgIFBSRUVNCiAgIDAwODA6IDUwIDU0IDIwIDUzIDYxIDc0IDIwIDQxIDcwIDcyIDIwIDMzIDIwIDMyIDMxIDNBIFBUIFNhdCBBcHIKICAgMyAyMToKICAgMDA5NjogMzEgMzAgM0EgMzUgMzggMjAgNDMgNDUgNTMgNTQgMjAgMzIgMzAgMzEgMzAgMjAgMTA6NTggQ0VTVAogICAyMDEwCiAgIDAxMTI6IDc4IDM4IDM2IDVGIDM2IDM0IHg4Nl82NAoKMjAxMC0wNS0xOCAxOTo0MiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUFkZHJUYWJsZQogICAtIGRlYWwgd2l0aCBoYXNoIHR5cGUgcHJvcGVybHkgZm9yIGdldC9zZXQgYW5kIHBlcnNpc3RlbmNlCiAgIC0gYWRkIGNvdW50IGFuZCBsYXN0IGNoYW5nZWQgc2NhbGFycwoKMjAxMC0wNS0xOCAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljYWwgT0lEIGZyb20gdXBjb21pbmcgcmZjCgoyMDEwLTA1LTE4IDE2OjE2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdG8gb2ZmaWNpYWwgT0lEcyBmcm9tIHVwY29taW5nIFJGQzsgYWRkIGNvdW50L2xhc3QgY2hhbmdlZAogICBzY2FsYXJzCgoyMDEwLTA1LTE4IDE0OjU2ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjAwMTY1NjogSGFuZGxlIG51bGwtdGVybWluYXRpb24gb2YKICAgc3RyaW5nIHZhbHVlcyBwcm9wZXJseS4KICAgQmFzZWQgb24gdGhlIHByaW5jaXBsZXMgb2YgdGhlIHBhdGNoIGZyb20gVG9tbXkgQmVhZGxlLgoKMjAxMC0wNS0xOCAxNDozOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgV29ya2luZyg/KSBIQUwtYmFzZWQgdmVyc2lvbiBvZiBockZTVGFibGUuCgoyMDEwLTA1LTE4IDE0OjEyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA1LTE3IDIxOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIHVzZSBwcm9wZXIgVFNNIHNlY3VyaXR5IGNvZGUgKDQpIG5vdyB0aGF0IGl0J3Mgb2ZmaWNpYWwKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgYmVnaW5uaW5nIG9mIGEgY29udGFpbmVyIHVuaXQgdGVzdAoKMjAxMC0wNS0xNyAxODo0MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rlc3RpbmcuaDoKCiAgIGEgYmFzaWMgQy1jb2RlIGJhc2VkIHRlc3QgcmVwb3J0aW5nIG1lY2hhbmlzbQoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBiYXNpYyBkZWZhdWx0X3N0b3JlIHRlc3RzCgoyMDEwLTA1LTE3IDE4OjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NsaWI6CgogICBhIGJ1aWxkIHN5c3RlbSBmb3IgYmFzaWMgbGlibmV0c25tcCB0ZXN0cwoKMjAxMC0wNS0xNyAxODoxNCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGZpeCBmaW5nZXJwcmludCBiaW4vaGV4IGNvbnZlcnNpb247IGFkZC9yZW1vdmUgY2VydCBzZWMgbWFwcyB2aWEKICAgbWliIG5vdyB3b3JrcwoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXcgZnVuY3Rpb24gbmV0c25tcF9iaW5hcnlfdG9faGV4CgoyMDEwLTA1LTE3IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmcHJpbnRmKHN0ZGVyciAtPiBERUJVR01TR1RMKCgKCjIwMTAtMDUtMTcgMTg6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBjaGVjayBmb3IgaGFzaCB0eXBlCgoyMDEwLTA1LTE3IDE2OjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgbWFrZSBSVU5URVNUUyB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZWRpcgoKMjAxMC0wNS0xNyAxNTozNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5URVNUUzoKCiAgIG1hZGUgYSBsaW1pdGVkIHJ1biB0ZXN0IHBvc3NpYmxlIGFnYWluIHdpdGhvdXQgcGVybAoKMjAxMC0wNS0xNyAxNTozMiAgZHRzMTIKCiAgICogIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVXNlIG5ld2VyIERpc01hbiBFdmVudCBNSUIgY29kZSBmb3IgTVNWQy1iYXNlZCBidWlsZHMKICAgKGluIGxpbmUgd2l0aCBhbGwgY29uZmlndXJlLWJhc2VkIGJ1aWxkcykKCjIwMTAtMDUtMTcgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSB0aGUgcmV0dXJuIG91dHNpZGUgdGhlIGlmIHN0YXRlbWVudAoKMjAxMC0wNS0xNyAxNToxOCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFByb3ZpZGUgbWlzc2luZyBwdWJsaWMgaW50ZXJmYWNlIHRvIEhBTC1iYXNlZCBmaWxlc3RvcmUgbW9kdWxlLgoKMjAxMC0wNS0xNyAxMDo0MSAgYnZhc3NjaGUKCiAgICogd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgRm9sbG93LXVwIGZvciByMTg3NTQgKHJldmVydCByMTg3MzgpOiByMTg3NTQgb25seSBwYXJ0aWFsbHkKICAgcmV2ZXJ0ZWQgcjE4NzM4CiAgIGFuZCBoZW5jZSBicm9rZSB0aGUgV2luMzItYnVpbGQuIEZpbmlzaGVkIHJldmVyc2FsIG9mIHIxODczOCBieQogICByZXN0b3JpbmcKICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oLgoKMjAxMC0wNS0xNiAxODoxNyAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgRm9sbG93LXVwIGZvciByMTg3MjY6IG9ubHkgcGFzcyAtZnN0YWNrLXByb3RlY3RvciogZmxhZ3MgdG8gdGhlCiAgIGxpbmtlciBpbnN0ZWFkIG9mIGFsbCAtZiogZmxhZ3Mgc3VjaCB0aGF0IGl0IGJlY29tZXMgbGVzcyBsaWtlbHkKICAgdGhhdCB0aGlzIG1vZGlmaWNhdGlvbiBjYXVzZXMgdHJvdWJsZSB3aXRoIG5vbi1HTlUgdG9vbGNoYWlucy4KCjIwMTAtMDUtMTYgMTg6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2Q6CgogICBNYWRlIHNoZWxsIGNvZGUgZm9yIGNvbnZlcnRpbmcgYSByZWxhdGl2ZSBwYXRoIHRvIGFuIGFic29sdXRlCiAgIHBhdGggbW9yZQogICByb2J1c3QgYW5kIGNvbnZlcnRlZCAiJHsuLi4jLi4ufSIgY29uc3RydWN0IGludG8gZWNobyArIGN1dC4KCjIwMTAtMDUtMTYgMTg6MTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgTW9yZSBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSB0bwogICBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUgc3Vic3RpdHV0aW9ucywgbmVjZXNzYXJ5IHRvIG1ha2UKICAgdGVzdCAwNTkgYW5kIDA2NSBwYXNzLgoKMjAxMC0wNS0xNiAxNzozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGZpeCB0ZXN0cyBmb3IgY2hlY2tpbmcgc2h1dGRvd24gb2YgYXBwbGljYXRpb25zIHRvIG5vdCByZXBvcnQKICAgZmFsc2UgbmVnYXRpdmVzCgoyMDEwLTA1LTE2IDEyOjE1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSB0ZXN0IFQwNTkgcGFzcyBhZ2Fpbi4gVGhpcyB0ZXN0IHdhcyByZWNlbnRseSBicm9rZW4gYnkKICAgcGFzc2luZyBhcmd1bWVudHMgdG8gaXQgd2l0aCBhYnNvbHV0ZSBwYXRocyBpbnN0ZWFkIG9mIHJlbGF0aXZlCiAgIHBhdGhzLgoKMjAxMC0wNS0xNiAxMjoxNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkOgoKICAgQWRkZWQgJ1NLSVBJRk5PVCBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUnLgoKMjAxMC0wNS0xNiAxMTo0MiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE2IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFwcHMvc3NodG9zbm1wLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIG9sZCBjb2RlLgoKMjAxMC0wNS0xNiAwOTo1OSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBkb24ndCB0cmlnZ2VyIGEgbmV0c25tcF9hc3NlcnQoKSB3aGVuCiAgIG5vIGV4dGVuc2lvbiBETExzIGhhdmUgYmVlbiBsb2FkZWQuCgoyMDEwLTA1LTE1IDE3OjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3RvcC1nYXAgZml4IHRvIHVuYnJlYWsgIm1ha2UgdGVzdCIgZm9yIHRoZSBuaWdodGx5IGJ1aWxkcwoKMjAxMC0wNS0xNSAxMDo1OSAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgUmV2ZXJ0ZWQgcjE4NzI3IGJlY2F1c2UgaXQgY2F1c2VkIGJ1aWxkIGVycm9ycyBvbiBTb2xhcmlzLCBBSVgKICAgYW5kIEhQLVVYLgoKMjAxMC0wNS0xNSAwMDo0MiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGw6CgogICByZXZlcnQgcjE4NzM4IHNpbmNlIG5ldyB0cmFuc3BvcnQgcmVxdWlyZSBkeW5hbWljbHkgYnVpbHQgaGVhZGVyCiAgIGZpbGVzCgoyMDEwLTA1LTE1IDAwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbG9nIGVudiB2YXJpYWJsZXMgdXNlZCB0byB0aGUgaW52b2tlZCBmaWxlCgoyMDEwLTA1LTE0IDIxOjI5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBmaXggc2NyaXB0IHNvIGl0IGNhbiBiZSBpbnZva2VkIG91dHNpZGUgdGhlIHRlc3QgZW52aXJvbm1lbnQKICAgYWdhaW4KCjIwMTAtMDUtMTQgMjE6MjggIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRMUy1UTS1NSUIgd2l0aCBmaW5hbCBJQU5BIGFzc2lnbm1lbnQgc2xvdHMKCjIwMTAtMDUtMTQgMjE6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgVFNNIHByZWZpeGVzCgoyMDEwLTA1LTE0IDIxOjI2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICB1c2UgZmluYWwgSUFOQSBhc3NpZ25lZCBEb21haW4gbnVtYmVycwoKMjAxMC0wNS0xNCAyMToyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldCBkZWZhdWx0IHZlcnNpb24gYW5kIHNlY2xldmVsIGlmIHRscy9kdGxzCgoyMDEwLTA1LTE0IDE1OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGVjayByYyBmcm9tIHNlY25hbWUgbWFwcGluZzsgY2xhcmlmeSBjb21tZW50CgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IHVzZSB1bnNvcnRlZCBjb250YWluZXI7IGRvbid0IGZyZWUgY2FsbGVyJ3MgY29udGFpbmVyCgoyMDEwLTA1LTE0IDE1OjIyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgbGluZWFyX3NlYXJjaCBmb3IgdW5zb3J0ZWQgY29udGFpbmVycwoKMjAxMC0wNS0xNCAxMTo1NiAgYnZhc3NjaGUKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgd2luMzIvYnVpbGQucGwsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEltcHJvdmVkIHBvcnRhYmlsaXR5IGJ5IHJlbW92aW5nIHRoZSBnZW5lcmF0ZWQgZmlsZQogICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KICAgQ29tbWVudGVkIG91dCB0aGUgY29kZSBpbiB0aGUgY29uZmlndXJlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZwogICB0aGlzIGhlYWRlciBmaWxlLgogICBBZGRlZCBjb25maWd1cmUtdGltZSBjb2RlIGZvciBjaGVja2luZyB3aGV0aGVyIHRoZSBjb25zdHJ1Y3RvcnMKICAgZm9yIGFsbCBjb25maWd1cmVkCiAgIHRyYW5zcG9ydHMgYXJlIGludm9rZWQgZnJvbSBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMuCgoyMDEwLTA1LTE0IDExOjAwICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uOiB1cGRhdGVkIEN5Z3dpbiBidWlsZCBpbnN0cnVjdGlvbnMuCgoyMDEwLTA1LTE0IDA5OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfbnVsbC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCAgCiAgICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTQgMDg6NTAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIC1uby11bmRlZmluZWQgZmxhZyB0byBsaWJyYXJ5IGxpbmsgY29tbWFuZHMgc3VjaCB0aGF0CiAgIGxpYnRvb2wgY2FuIGJ1aWxkIERMTHMgb24gV2luMzIuCiAgIE5vdGU6IGJ1aWxkaW5nIERMTHMgb24gV2luMzIgZG9lcyBub3QgeWV0IHdvcmsgYmVjYXVzZSBvZiB0aGUKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuCiAgIGxpYm5ldHNubXBoZWxwZXJzIGFuZCBsaWJuZXRzbm1wYWdlbnQKICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cubmV0LXNubXAub3JnL3dpa2kvaW5kZXgucGhwL0xpYnJhcnlfbGF5ZXJpbmcpLgoKMjAxMC0wNS0xNCAwODo0MiAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgbGlidG9vbCBidWcgZml4OiBhbHNvIHBhc3MgZmxhZ3Mgc3RhcnRpbmcgd2l0aCAtZiB0byB0aGUgbGlua2VyCiAgIHNpbmNlIHRoZXNlIGNhbiBhZmZlY3QgbGlua2luZy4gVGhlIGZsYWcgLWZzdGFjay1wcm90ZWN0b3IgZS5nLgogICB0cmlnZ2VycyBpbmNsdXNpb24gb2YgbGlic3NwLgoKMjAxMC0wNS0xNCAwODo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWJvcnQgaWYgdGhlIGZpbGUgcHJvZ3JhbSBjb3VsZCBub3QgYmUgZm91bmQsCiAgIHNpbmNlIHRoaXMgaXMgZXNzZW50aWFsIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIGxpYnRvb2wuCiAgIENIQU5HRVM6IEN5Z3dpbjogbmVpdGhlciBjb21waWxlIG5vciBsaW5rIHdpbnBpcGUuYy4KCjIwMTAtMDUtMTMgMDg6NTggIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJhbiBhdXRvcmVjb25mLgoKMjAxMC0wNS0xMiAyMDoxNiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IExpbnV4OiBidWlsZHMgYWdhaW4gd2l0aCBlbWJlZGRlZCBQZXJsIGRpc2FibGVkIChidWcKICAgMjk4NTkxNSkuCgoyMDEwLTA1LTEyIDE5OjQ3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBGb2xsb3ctdXAgZm9yIHIxODY4NDogdW4tYnJlYWsgdGhlIFdpbjMyIE1TVkMgYnVpbGQuCgoyMDEwLTA1LTEyIDE5OjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBXaW4zMjogZml4ZWQgYSB0eXBvIGFuZCBtYWRlIGluZGVudGF0aW9uIGNvbnNpc3RlbnQuCgoyMDEwLTA1LTEyIDE5OjExICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNvbnN0cnVjdCB0ZW1wIGJ1aWxkIGZpbGVzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5CgoyMDEwLTA1LTEyIDE5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCByZWNlbnRseSBicm9rZW4gb2xkIHBlcmwgZnVuY3Rpb25hbGl0eQoKMjAxMC0wNS0xMiAxODowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIGEgLS1zaG9ydCBvcHRpb24gdG8gc2hvcnRlbiB0aGUgc2hvdyBvdXRwdXQgdG8gbWluaW1hbGlzdGljCgoyMDEwLTA1LTEyIDE0OjE0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gVENQLU1JQi4KCjIwMTAtMDUtMTIgMTM6MDIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIG1lbW9yeSBsZWFrIHdoZW4gcmVhZGluZyBzZW5zb3JzIGZvcgogICBMTS1TRU5TT1JTLU1JQi4KCjIwMTAtMDUtMTIgMTI6NTcgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZXZlcnQgcmV2aXNpb24gMTg2ODkKICAgTGF0ZXN0IFdpbjMyIGJ1aWxkcyBpbmNsdWRlIHN1cHBvcnQgZm9yIHN0cnRvdWxsLgoKMjAxMC0wNS0xMiAxMjowNSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogYWRkZWQgZGV0ZWN0aW9uIG9mIGxtX3NlbnNvcnMgdmVyc2lvbi4KICAgSSBhbSBub3QgQXV0b2NvbmYgZ3VydSwgc28gSSBob3BlIEkgZ290IGl0IHJpZ2h0LiBUaGUgZ29hbCBpcyB0bwogICBkZWZpbmUgTkVUU05NUF9VU0VfU0VOU09SU19WMyAqYmVmb3JlKiBjb25maWdfbW9kdWxlc19hZ2VudAogICBwcm9jZXNzZXMgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLgoKMjAxMC0wNS0xMiAwNzowMyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0cmFuc3BvcnRzLgoKMjAxMC0wNS0xMiAwMzowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggdGl0bGUgZ2VuZXJhdGlvbiBhZnRlciBjaGFuZ2UgdG8gd2hhdCBzcmNkaXIgbWVhbnQKCjIwMTAtMDUtMTIgMDI6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICB1bmRvIGxhc3QgY2hhbmdlIHdoaWNoIHR1cm5lZCBvdXQgdG8gb25seSBjYXVzZSBlcnJvcnMgaWYgeW91IGhhZAogICBhIG9sZCAuY29uZiBmaWxlIGFyb3VuZAoKMjAxMC0wNS0xMiAwMjoxMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCB2M19jYSBjcmVhdGlvbiBleHRlbnNpb24gbmFtZQoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBrZWVwIGZvcm1hdCB2ZXJzaW9uICMgaW4gY2VydCBpbmRleGVzOyBkb24ndCBzdG9yZSBoYXNoIHR5cGUKICAgc3RyaW5nIGluIGluZGV4OwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggaW52ZXJ0ZWQgY29udmVyc2lvbiBjYWxsOyBsZXNzIHZlcmJvc2UgZGVmYXVsdCBkZWJ1ZwoKMjAxMC0wNS0xMiAwMjowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggcGFyc2luZyBvZiAtVCBuYW1lL3ZhbHVlIHBhaXJzCgoyMDEwLTA1LTExIDIzOjMzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYnVnIGZpeGluZyBhbmQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciAibWFrZSB0ZXN0IiB3aXRoCiAgIFRlc3Q6Okhhcm5lc3MKICAgKHN0aWxsIGRvZXNuJ3Qgd29yayBmb3IgbWUsIHRob3VnaCkKCjIwMTAtMDUtMTEgMjI6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBEbyBOT1QgaGFyZGNvZGUgL3Vzci9iaW4vcGVybCBhcyB0aGUgUGVybCBwYXRoCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBzdGFzaCBmaWxlIGhhbmRsaW5nCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGxvbmcgb3B0aW9ucyBzdWNrIDstKS4gcHJlZmVyIGRvdWJsZSBkYXNoZXMgZm9yIGxvbmcgb3B0aW9ucyB0bwogICBtYXRjaCB0aGUgcmVzdCBvZiB0aGUgTmV0LVNOTVAgY29kZSBiYXNlCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFkZGVkIGFiaWxpdHkgdG8gcnVuIG9ubHkgdGhlIGZhaWxlZCB0ZXN0cyBmcm9tIHRoZSBsYXN0IHJ1bgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb24ndCBmb3JjZSBjb2xvcgoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjbGVhbnVwIG9mIG9sZGVyCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIE1pbmltYWxseSBzdXBwb3J0IHRoZSBvbGRlciBUZXN0OjpIYXJuZXNzIHBlcmwgbW9kdWxlIGZvciBydW5uaW5nCiAgIHRoZSBvbGRlciB0ZXN0cyBhdCBsZWFzdAoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgYSBkZWZhdWx0IHNlY3VyaXR5TmFtZSBhbmQgc2VjdXJpdHlNb2RlbCBpZiBUTFMgb3IgRFRMUyBpcyBpbgogICB1c2Ugb24gdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICBhbGxvdyBzZWN1cml0eSBtb2RlbHMgdG8gcGVyZm9ybSBtb3JlIG9mIHRoZSBzZXNzaW9uIHNldHVwOyBtb3ZlZAogICBtb3JlIFVTTSBzcGVjaWZpYyBzZXR1cCBpbnRvIGl0J3Mgc2V0dXAgcm91dGluZQoKMjAxMC0wNS0xMSAxODowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHBhcmFtIHRvIGxvb2t1cCBwZWVyIGNlcnQKCjIwMTAtMDUtMTEgMTY6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhbGxvdyAnLScgaW4gZnFkbjsgYWRkIGRlYnVnIG91dHB1dCBmb3IgaG9zdCBzcGVjaWZpYyBjb25maWcKCjIwMTAtMDUtMTEgMTU6NDYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRW5zdXJlICduZXRzbm1wX3JlYWRfbW9kdWxlJyBpcyBhdmFpbGFibGUgZm9yIHBlcmwgYnVpbGQuCgoyMDEwLTA1LTExIDE1OjQ0ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4IHBlcmwgYnVpbGQgdW5kZXIgV2luZG93cyAoc3RydG91bGwgbm90IGF2YWlsYWJsZSkKCjIwMTAtMDUtMTAgMDc6MDcgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3Npbmcgc3ltYm9sIG5ldHNubXBfc25tcFNTSERvbWFpbl9sZW4sCiAgIG1ha2UgbmV0c25tcF9zbm1wU1NIRG9tYWluIGNvbnN0LgoKMjAxMC0wNS0wOSAyMjowMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkOgoKICAgRG8gbm90IHJlcXVpcmUgcXVvdGVzIGFyb3VuZCB0aGUgQ1BVIHN0cmluZyBhcyB0aGF0IGRlcGVuZHMgb24KICAgaG93IHRoZSBhZ2VudCBpcyBjb25maWd1cmVkLgoKMjAxMC0wNS0wOSAyMTo0MyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9FeGl0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogRXh0cmFjdCB0aGUgRXhpdCBhbmQgcmVzdGFydCogc3Vicm91dGluZXMgZnJvbQogICB1dGlsX2Z1bmMgaW4gb3JkZXIgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBsZXNzIGNvZGUgZm9yIHRoZQogICBtaW5pbWFsIGNhc2UuCgoyMDEwLTA1LTA5IDE2OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBmdW5jdGlvbgogICBnZXRfZXhlY19vdXRwdXQoKSByZXR1cm5zIGEgdmFsdWUgd2hlbiB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBVU0lOR19VQ0RfU05NUF9FWFRFTlNJQkxFX01PRFVMRSBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDUtMDkgMTY6NDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBDSEFOR0VTOiBDeWd3aW46IGJ1aWxkcyBub3cgYWxzbyB3aGVuIHRoZSBzb3VyY2UgZmlsZXMgYXJlCiAgIGxvY2F0ZWQgb24gYSBTYW1iYSBmaWxlc3lzdGVtIGluc3RlYWQgb2YgYSBsb2NhbCBmaWxlc3lzdGVtLgoKMjAxMC0wNS0wOSAxMzowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENvcnJlY3QgdGhlIGlmIHRoYXQgdHJpZXMgdG8gZmlndXJlIG91dCBpZiBhIHN1ZmZpY2llbnRseSBuZXcgZ2NjCiAgIGlzIGluIHVzZS4KCjIwMTAtMDUtMDkgMTI6NTAgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDaGVjayBmb3IgdGhlIG5lZWRlZCBtb2R1bGUgYW5kIG5vdCBzb21lIG90aGVyIG9uZS4KICAgTG9nIHRoZSBjb3JyZWN0IG1pc3Npbmcgc3ltYm9sLgoKMjAxMC0wNS0wOSAwOToyMSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogdXRpbGl0aWVzL2V4ZWN1dGUgZG8gbm90IG5lZWQgYW55dGhpbmcgZnJvbQogICB1dGlsX2Z1bmNzLCBzbyBzdG9wIGRlcGVuZGluZyBvbiBpdC4KCjIwMTAtMDUtMDkgMDk6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBORVdTOiBzbm1wZDogUmVtb3ZlZCB0aGUgdW51c2VkIGZ1bmN0aW9uIHh4X3Rva2VuaXplX2V4ZWNfY29tbWFuZAogICBmcm9tIHV0aWxpdGllcy9leGVjdXRlLgoKMjAxMC0wNS0wOSAwOTowMSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZXBsYWNlIHRoZSBkZWJ1Z2dpbmcgZnVuY3Rpb25zIHdpdGggZHVtbWllcwogICB3aGVuIGRlYnVnZ2luZyBpcyBkaXNhYmxlZC4KCjIwMTAtMDUtMDkgMDg6MDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2Q6CgogICBDaGVjayB0aGF0IHRoZSBVRFAgdHJhbnNwb3J0IGlzIGVuYWJsZWQKCjIwMTAtMDUtMDkgMDg6MDEgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0cmFuc3BvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBGYWN0b3Igb3V0IGNoZWNrIGZvciBtaWJJSS9zeXN0ZW1fbWliCgoyMDEwLTA1LTA5IDA3OjU5ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgaW5jbHVkZXMKCjIwMTAtMDUtMDggMjM6MTYgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgQWRkaXRpb25hbGx5IGZpeCBtYWtlIHRlc3QgZm9yIHRoZSB1bmNvbW1vbiBjYXNlIHdoZXJlIGJ1aWxkZGlyCiAgID09IHNyY2RpcgoKMjAxMC0wNS0wOCAyMjo1NSAgbWFnZnIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biB0aGUgdGVzdCBzdWl0ZSBmcm9tCiAgIGFueXdoZXJlLgogICBDaGFuZ2UgdGhlIC1EIG9wdGlvbiB0byBleHBlY3QgdGhlIHBhdGggb2YgdGhlIHRvcCBzb3VyY2UKICAgZGlyZWN0b3J5LgogICBBZGQgYW4gLXNyY2RpciBvcHRpb24gdGhhdCBpcyBhbiBhbGlhcyBmb3IgLUQuCiAgIEFkZCBhbiAtYnVpbGRkaXIgb3B0aW9uIHRvIGRlc2lnbmF0ZSB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB0ZXN0CiAgIG9iamVjdCBpcy4KICAgUHV0IHNyY2RpciBhbmQgYnVpbGRkaXIgaW4gdGhlIGVudmlyb25tZW50IGZvciB0aGUgdGVzdCBzY3JpcHRzCiAgIEZhY3RvciBvdXQgdGhlIGdyZXAgcGFydCBvZiBTS0lQSUYgYW5kIFNLSVBJRk5PVCB0byBJU0RFRklORUQKICAgVXNlIG1vcmUgcmVhZGFibGUga2V5cyBpbiB0aGUgb3B0cyBoYXNoIGluIFJVTkZVTExURVNUUwogICBBZGp1c3QgZXZlcnl0aGluZyB0byB1c2Ugc3JjZGlyIGFuZCBidWlsZGRpcgoKMjAxMC0wNS0wOCAyMjo0MiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjA3ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENvbnNvbGlkYXRlIHRoZSB0ZXN0IGFuZCB0ZXN0LW1pYnMgdGFyZ2V0cy4KICAgRXhwb3NlIHRoZSB0ZXN0YWxsIHRhcmdldCBpbiB0aGUgdG9wIG1ha2VmaWxlLgoKMjAxMC0wNS0wOCAyMjowNSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG8gbm90IGFib3J0IHdoZW4gc3RyIGlzIE5VTEwgYXMgdGhhdCBpcyBhIHBlcmZlY3RseSB2YWxpZCBpbnB1dC4KCjIwMTAtMDUtMDggMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIFVzZSBjb3JyZWN0IGFyZ3VtZW50IHR5cGVzCgoyMDEwLTA1LTA4IDIyOjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBBZGQgbWlzc2luZyBuZXdsaW5lCgoyMDEwLTA1LTA3IDIxOjExICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmFjCgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgZml4IGhhbmRsaW5nIG9mIGNlcnQgYWxnb3JpdGhtIGluIGZpbmdlcnByaW50czsgY29udmVydCBpbi9vdXQKICAgZmluZ2VycGludHMKICAgZnJvbS90byBoZXgKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGRvbnQgc3BlY2lmeSBoYXNoIHR5cGUgZm9yIGZpbmdlcnByaW50CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaGFuZGxlIGZpbmdlcnByaW50IHR5cGVzOyBkcm9wIHNhbiBmaWVsZHMgZnJvbSBjZXJ0IHN0cnVjdDsKICAgY29uc2lkZXIgZGlyZWN0b3J5CiAgIHdoZW4gcGFydG5lcmluZyBrZXlzL2NlcnRzCgoyMDEwLTA1LTA3IDE5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgbW92ZSBkZWZhdWx0IHByb21wdHMgZWFybGllcgoKMjAxMC0wNS0wNiAxNTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBiZXR0ZXIgU0FOIGV4dHJhY3Rpb247IHR3ZWFrIGR1Ymd1cyBtZXNzYWdlczsgcXVpZXQgY29tcGlsZXIKICAgd2FybmluZ3MKCjIwMTAtMDUtMDYgMTU6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgcmVkdWNlIGNlcnQgZGVidWcgb3V0cHV0OyBkZWJ1ZyBpbnN0ZWFkIG9mIGxvZ19pbmZvIGluIGR1bXBzCgoyMDEwLTA1LTA2IDE0OjQ5ICBkdHMxMgoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgRG9uJ3QgYXNzdW1lIHRoZSBwcmVzZW5jZSBvZiA8c3RyaW5nLmg+CiAgIChicmluZyBpbnRvIGxpbmUgd2l0aCBhbGwgb3RoZXIgb2NjdXJhbmNlcykKCjIwMTAtMDUtMDYgMTQ6NDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBDSEFOR0VTOiBXaW5kb3dzOiBGaXggYnVpbGQgdW5kZXIgTWluR1cKICAgYmFjay9mb3J3YXJkIHBvcnQgb2YgcmV2aXNpb24gMTg2MzEKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHR5cGUgaW4gbG9nIG1zZwoKMjAxMC0wNS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICByZW1vdmUgaW1wb3J0IGZvciB1bnVzZWQgZnVuY3Rpb24KCjIwMTAtMDUtMDQgMDc6MTIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBOZWdhdGUgcmVhc29uIGdpdmVuIGZyb20gU0tJUElGCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBsZW4gaW4gZW1haWwgY21wOyBtb3JlIGV4dHJhY3QgZGVidWdnaW5nCgoyMDEwLTA1LTAzIDIyOjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNvcHkgb2NlcnQgdG8gYWRkaW9uYWwgbWFwcwoKMjAxMC0wNS0wMyAxNDoyMCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGRlcGVuZGVuY3kgb24gcGVybCBtb2R1bGUgbm90IHByZXNlbnQgaW4gQ2VudE9TCgoyMDEwLTA1LTAzIDAzOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IGFjY2VzcyBzdHJ1Y3QgaW50ZXJuYWxzIGRpcmVjdGx5CgoyMDEwLTA1LTAzIDAzOjQ4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBmaXggY29tcGlsaW5nIHdpdGgtb3V0LW1pYm1vZHVsZXM9dXRpbGl0aWVzL2V4ZWN1dGUKCjIwMTAtMDUtMDEgMTk6MDggIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIENvcnJlY3QgdGhlIHNvdWdodCBzdHJpbmcgdG8gbWFrZSB0aGUgdGVzdCBwYXNzIHdoZW4gb2suCgoyMDEwLTA1LTAxIDE3OjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3JlIGNvbnNpc3RlbnQgdHJlYXRtZW50IG9mIGtleVVzYWdlLCBiYXNpY0NvbnN0cmFpbnRzLCBvdGhlcgogICB4NTA5djMgb3B0aW9ucwoKMjAxMC0wNC0zMCAyMzozNyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGw6CgogICBsYW1lIHRlc3Qgc2NyaXB0IGJ1dCBjb3ZlcnMgYSBjaHVuayBvZiB0aGUgY29kZQoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBta2luc3RhbGxkaXJzIGluc3RlYWQgaW5zdGVhZCBvZiBGaWxlOjpQYXRoCgoyMDEwLTA0LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGVuc3VyZSBuZXQtc25tcC1jb25maWcgc2NyaXB0IGNhbiBiZSBydW4gZnJvbSB0aGUgYnVpbGQgZGlyCgoyMDEwLTA0LTMwIDIxOjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgZ2VuY2VydCAtLWNhCgoyMDEwLTA0LTMwIDIxOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBoZWxwIGZvciBjZXJ0U2VjTmFtZTsgY29udGludWUgYnVpbGRpbmcgY2VydCBpbmRleGVzIGV2ZW4gaWYKICAgd2UgY2FudCBzYXZlCiAgIHRvIHBlcnNpc3RlbnQgZGlyCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBjaGVjayBjb3VudCBmb3IgODIyIG5hbWVzIGluIHRoZSBzbm1wZC5sb2cKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IG1hbGxvYyB1bm5kZXJsZW5ndGggYnkgMSBlcnJvcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBjb21tZW50IG91dCB0aGUgODIyIHRlc3RzOyB0aGV5J3JlIGJyb2tlbiBhdCB0aGUgbW9tZW50CgoyMDEwLTA0LTMwIDE5OjM2ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBkb24ndCBsb3NlIFNBTiB3aGVuIHNpZ25pbmcgdy8gQ0EKCjIwMTAtMDQtMzAgMTg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIG5hbWUgY2hhbmdlIHRvIHJmYzgyMiBmcm9tIHR5cG9lZCA4MjIwCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3RzIHRvIGRvIG90aGVyIHN1YmplY3RBbHROYW1lIG1hcHBpbmcKCjIwMTAtMDQtMzAgMTc6MzEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBpc3N1ZXMgMSwyLDQgYW5kIC1DIGhhbmRsaW5nCgoyMDEwLTA0LTI5IDAzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRsc3RtQ2VydFRvVFNOVGFibGUgdG8gdXNlIGNhY2hlICsgY2VydF91dGlsIG1hcHMKICAgY29udGFpbmVyCgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgaW5zZXJ0IHJldHVybgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIHJlbW92ZSBmdW5jdGlvbiB0byBjb250YWluZXIgaXRlcmF0b3I7CiAgIGltcGxlbWVudCBpdCBmb3IKICAgYmluYXJ5X2FycmF5CgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBtYWtlIHN1cmUgY29udGFpbmVyIHN5bmMgaW5jcmVtZW50ZWQgb24gc29ydCwgaW5zZXJ0IGFuZCByZW1vdmUKCjIwMTAtMDQtMjggMDc6MjAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2VmaWxlIGZvciB0ZXN0IHRhcmdldAoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBtYWtlIHRoZSB0ZXN0IHN1aXRlIHJ1biBvdXRzaWRlIHRoZSBzb3VyY2UgZGlyZWN0b3J5IGFnYWluLgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgZGVhbCB3aXRoIG91dC1vZi1zb3VyY2UgdHJlZSBidWlsZGluZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB0ZXN0aW5nIHRvIGNoZWNrIGNlcnRpZmljYXRlIHRvIHNlY3VyaXR5bmFtZSBtYXBwaW5ncyBhbmQgZGVuaWFscwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY3JlYXRlZCBhIG1hcHBlZCB1c2VyCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHA6CgogICBnZW5lcmF0ZSBvYmplY3QgY29kZSB3aXRoIC1nIGRlYnVnZ2luZwoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jOgoKICAgbW9yZSBhY2N1cmF0ZSBjdXJyZW50IEFQSSB1c2FnZSBmb3Igc2NhcGkgY29kZQoKMjAxMC0wNC0yNyAyMToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggY2VydCBpbml0IGR1cGxpY2F0ZSBjYWxsIGNoZWNrCgoyMDEwLTA0LTI3IDIwOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY29udmVydCB1c2VyIGZpbmdlcnByaW50IHRvIGxvd2VyIGFuZCBzdHJpcCBjb2xvbnM7IGFkZCBleHRlcm4KICAgcHJvdG90eXBlCiAgIGZvciBjZXJ0IGluaXQgc28gd2UgZG9uJ3QgbmVlZCBoZWFkZXIKCjIwMTAtMDQtMjcgMjA6MTUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNlcGFyYXRlIGNlcnQgaW5pdCBhbmQgY2VydCBsb2FkaW5nOyBhZGQgY2VydFNlY05hbWUgY29uZmlnIHRva2VuCgoyMDEwLTA0LTI3IDAzOjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtZXJnZSBORVRTTk1QX0ZVTkNUSU9OIGFuZCAhTkVUU05NUF9GVU5DVElPTiBhc3NlcnQgY2FzZXMKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGxvdHMgb2YgbmV3IGNlcnQgZnVuY3Rpb25hbGl0eQogICAtIGFkZCBzc2wgZnVuY3MgZm9yIGNlcnQgZXh0ZW5zaW9ucyBhbmQgc3NsIGNlcnQgY2hhaW5zCiAgIC0gZnVuY3Rpb25zIGFuZCBuZXcgbmV0c21wX2NlcnRfbWFwIHN0cnVjdCBmb3IgbG9va2luZyB1cCBjZXJ0CiAgIG1hcHBpbmdzCiAgIC0gYWRkIGNlcnRpZmljYXRlIG1hcHBpbmcgZm9yIHNlY25hbWUKICAgLSBhZGQgY29kZSB0byBidWlsZCBjZXJ0IGNoYWlucwogICAtIGFkZCBzdWJqZWN0IHRvIGNlcnQgaW5kZXggY2FjaGUKICAgLSByZWJ1aWxkIGluZGV4ZXMgaWYgYW55IGVycm9yIHdoaWxlIHBhcnNpbmcgaW5kZXgKICAgLSByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnQgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgY2VydCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIG1vdmUgaXB2NiBzcGVjaWZpYyB2YXIgZGVjbCBpbnNpZGUgaWZkZWYKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBDSEFOR0VTOiBhZ2VudDogdGRhdGEgaGVscGVyIG5vdyBzYXZlcyBmbGFncyBwYXNzZWQgZHVyaW5nCiAgIGNyZWF0aW9uOyBhZGQgdGRhdGEKICAgZmxhZyB0byBOT1QgY3JlYXRlIHRoZSB0YWJsZSBjb250YWluZXIKCjIwMTAtMDQtMjcgMDM6MDEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBpbnRlcmZhY2UgZm9yIGR1cGxpY2F0aW5nIGEgY29udGFpbmVyCiAgIENIQU5HRVM6IHNubXBsaWI6IGNvbnRhaW5lciBjaGFuZ2VzOiBhZGQgZmxhZ3MgZmllbGQgdG8gY29udGFpbmVyCiAgIG1ldGEtZGF0YTsKICAgY2hnIGJpbmFyeV9hcnJheSBjb250YWluZXIgdG8gdXNlIGNvbnRhaW5lciBtZXRhLWRhdGEgZmxhZ3MKCjIwMTAtMDQtMjYgMjI6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHdoZW4gdGhlIHRyYW5zcG9ydCBpcyBjb25maWd1cmVkIHdpdGgKICAgYSByZW1vdGUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQgdGhlIGNvbm5lY3Rpb24gaXMgZGVuaWVkCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICBhZGRlZCB0ZXN0cyBmb3IgLVQgZmxhZyB1c2FnZSBhbmQgaW52YWxpZCB1c2VyIHVzYWdlCgoyMDEwLTA0LTI2IDIwOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2Q6CgogICBoYXZlIHRoZSBhbGlhcyB0cmFuc3BvcnQgc291cmNlIHRoZSByaWdodCBTdjNjb25maWcgZmlsZQoKMjAxMC0wNC0yNiAyMDo1MCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgd29ya2luZyBzdXBwb3J0IG9mIFRMUy9EVExTIHRlc3RpbmcgaW5jbHVkaW5nIGNlcnQgZ2VuZXJhdGlvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhvbm9yIHRoZSBjb25maWcgZGlyIGlmIHNwZWNpZmllZCB2aWEgLUMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IHJlYWxsb2MgY2FsbCBmb3IgYnVmZmVyZWQgcGFja2V0cwoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHByb3BlciBza2lwIG91dHB1dCBmb3IgcmVwb3J0aW5nIHJlYXNvbgoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgYmFja3NsYXNoIGluIG1hY3JvCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtdXNlci5wcml2OgoKICAgdGVzdHMgZm9yIG1pbmltYWxseSB0ZXN0aW5nIGFsbCB0aGUgdHJhbnNwb3J0cwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SRUFETUU6CgogICBtaW5pbWFsbHkgZG9jdW1lbnQgbmV3IFJVTkZVTExURVNUUyBzY3JpcHQKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcywgICAKICAgICAgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwgdGVzdGluZy9taXNjdGVzdC5jLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgZGVsZXRlZCBvbGQgZmlsZXMgbm90IHdvcnRoIHJlc3RvcmluZwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rlc3RsaXN0OgoKICAgcmVtb3ZlIG9ic29sdXRlIHRlc3QgbGlzdAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jOgoKICAgYSBoYXNoLXRlc3RpbmcgLmMgZmlsZSBJIGhhZCBsYXlpbmcgYXJvdW5kCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSB0ZXN0YWxsIHRhcmdldAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgbW92ZSBvbGQgQy1jb2RlIHRlc3RzIGluIHBsYWNlCgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2Q6CgogICBza2lwIHNvbGFyaXMgY29tbWVudHMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggaW52b2NhdGlvbiBvZiBSVU5GVUxMVEVTVFMKCjIwMTAtMDQtMjYgMjA6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjJjY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdhZ2VudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ3RyYXBkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1N2MWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjJjY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudCwgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXgsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzJzbm1wdjN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBORVdTOiB0ZXN0aW5nOiBCcmFuZCBuZXcgdGVzdCBzdWl0ZSBkZXNpZ2VuZWQgdG8gZXZlbnR1YWxseSB0ZXN0CiAgIG1vcmUgZnVuY3Rpb25hbGl0eSwgcHJvdmlkZSBmb3Igc3VwcG9ydCBvZiB1bml0LXRlc3RzIGFuZCBzdXBwb3J0CiAgIG9mIEFQSSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHJlbW92ZWQgYSBkZWJ1Z2dpbmcgZWNobwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1vcmUgYnVnIGZpeGVzIGZvciBzdHJpbmcgc2VhcmNoZXMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBhZGRlZCBhIG5ldyBtYWNybyB0byBjaGVjayBhIHRyYXBkIGNvdW50CgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGluZGl2aWR1YWwgb3V0cHV0IGZpbGVzIGFuZCBmaXggc29tZSB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbWFkZSBleGlzdGluZyB0ZXN0IHN1aXRlIHB1dCBvdXQgVEFQIG91dHB1dAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLCB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy9mdWxsdGVzdHMsICAKICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBiZWdpbm5pbmcgb2YgbW92aW5nIFVDRCB0ZXN0IHN1aXRlIGludG8gYSBsYXJnZXIgc3ViZGlyZWN0b3J5CgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGFsbG93IHJ1bm5pbmcgdGVzdHMgdGhhdCBtYXRjaCBhIHJlZ2V4cAoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdW1tYXJpemUgdGVzdHMgdGhhdCBmYWlsZWQKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY3JlYXRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIHJ1bl8gc2NyaXB0cyBmb3IgZXhlY3V0aW5nIGNlcnRhaW4KICAgdHlwZXMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWFkZSB0aGUgYnVpbGQtc2NyaXB0LWNoZWNrIHJvdXRpbmUgZ2VuZXJpYwoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdXBwb3J0IGZvciBidWlsZCBzY3JpcHRzCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHByb3ZpZGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIGJ1aWxkaW5nIGFuZCByZW5hbWluZyB0ZXN0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtb3JlIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgc2V0dXAKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCB0aGUga2V5d29yZCAnYWxsJwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBlbmFibGUgZ3JvdXAgZ2F0aGVyaW5nCgoyMDEwLTA0LTI2IDIwOjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0aW5vIG9mIGEgbmV3IHRlc3RpbmcgaGFybmVzcwoKMjAxMC0wNC0yNSAxNzozNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbiB1cGRhdGUuCgoyMDEwLTA0LTI1IDE1OjIxICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IHJldmVydGVkIGEgcmVjZW50IHVubmVjZXNzYXJ5IG1vZGlmaWNhdGlvbi4KCjIwMTAtMDQtMjUgMTU6MDAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhhbmRsZSBtdWx0aXBsZSAtLXNhbiBhcmdzLCBjaGVjayBlcnJvciBjb2RlcyBvbiBvcGVuc3NsIGNtZHMgYW5kCiAgIGRpZSBvbiBmYWlsdXJlCgoyMDEwLTA0LTI1IDE0OjE4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogcmVzdG9yZWQgY29uc2lzdGVuY3kgYmV0d2VlbiB3b3Jrc3BhY2UtYnVpbGQgYW5kIGJhdGNoCiAgIGJ1aWxkIC0tIG1hZGUgc3VyZSB0aGF0IG5vdGlmaWNhdGlvbl9sb2cuYyBpcyBvbmx5IGluY2x1ZGVkIGluCiAgIHRoZSBuZXRzbm1wbWlicyBwcm9qZWN0LgoKMjAxMC0wNC0yNSAxMzo1OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGZpeGVzIGZvciByZWNlbnRseSBpbnRyb2R1Y2VkIGJ1aWxkIGJyZWFrYWdlLgoKMjAxMC0wNC0yNSAxMzo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGggU0RLIHN1cHBvcnQgZGlzYWJsZWQuCgoyMDEwLTA0LTI1IDEzOjQ4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBzbm1wbGliL2Nsb3NlZGlyLmMsIHNubXBsaWIvb3BlbmRpci5jLCAgCiAgICAgICBzbm1wbGliL3JlYWRkaXIuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgV2luMzIgTVNWQyA2IG5vbi1TREsgYnVpbGQgd29ya3MgYWdhaW4uCgoyMDEwLTA0LTI1IDEzOjQyICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIHRyYW5zZm9ybWF0aW9uIHJ1bGUuCgoyMDEwLTA0LTI1IDEyOjA1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1hZGUgaXQgYWdhaW4gcG9zc2libGUgdG8gZGlzYWJsZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESyB3aGVuCiAgIGJ1aWxkaW5nIHZpYSB3aW4zMi9idWlsZC5iYXQuCgoyMDEwLTA0LTIzIDEzOjE0ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCAtLXNhbiBETlM6YS5iLmMgaGFuZGxpbmcsIGhlbHAgdGV4dCBmaXhlcywgb3RoZXIgYnVnIGZpeGVzLgogICBOb3RlIG11bHRpcGxlIC0tc2FuIG5vdCBzdXBwb3J0ZWQgeWV0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGJ1aWxkIHRoZSAubWFkZSB2ZXJzaW9uIG9mIG5ldC1zbm1wLWNlcnQKCjIwMTAtMDQtMjEgMjI6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZCBhZnRlciBtb3ZpbmcgYWxsIHRoZSBmaWxlcyBhcm91bmQKCjIwMTAtMDQtMjEgMjA6MTYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYnVpbGQgdHJ1c3QgY2hhaW4gZm9yIGNsaWVudCBjZXJ0OyBhZGQgc3ViamVjdCB0byBpbmRleCBjYWNoZTsKICAgcmVidWlsZCBpbmRleGVzCiAgIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4OyByZWZvcm1hdCBkdW1wIG91dHB1dAogICAtIGFkZCBOU19DRVJUX0NBIGFsbG93ZWRfdXNlIGZsYWcKICAgLSBhZGQgc3ViamVjdCwgaXNzdWVyIGFuZCBpc3N1ZXJfY2VydCB0byBuZXRzbm1wX2NlcnQKICAgLSBtb3ZlIGNlcnRUb1RTTl9lbnRyeSB0byBjZXJ0X3V0aWwgaGVhZGVyCiAgIC0gbW92ZSBjb250YWluZXIgc2V0dXAgdG8gaXRzIG93biBmdW5jdGlvbgogICAtIGFkZCBzdWJqZWN0IG5hbWUgc3ViY29udGFpbmVyCiAgIC0gYWRkIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2R1bXBfZXh0ZW5zaW9ucywKICAgbmV0c25tcF9vcGVuc3NsX2NlcnRfaXNzdWVkX2J5CgoyMDEwLTA0LTIxIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IHRoZSBzaW5nbGUtZGFzaCAvIHNubXAuY29uZiAvIGRvdWJsZS1kYXNoIHByZWNpZGVuY2UKCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdGhhdCB0aGUgdG9rZW5zIGNhbiBiZSB1c2VkIGZvcgogICBjb21tYW5kIGxpbmUgYXBwbGljYXRpb25zIHRvbwoKMjAxMC0wNC0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBmaWxlIGxvYWRpbmcgb3JkZXIgYW5kIGhvdyB0byB0dXJuIG9mZiBob3N0LXNwZWNpZmljCiAgIGNvbmZpZwoKMjAxMC0wNC0yMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IEdlbmVyaWMgaG9zdC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIHNubXAuY29uZiBmaWxlcwogICBhcmUgbm93IHJlYWQuIFNlZSB0aGUgSE9TVC1TUEVDSUZJQyBGSUxFUyBzZWN0aW9uIG9mIHRoZQogICBzbm1wLmNvbmYgbWFudWFsIHBhZ2UuCgoyMDEwLTA0LTIwIDEyOjQ0ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjk3MTI3MDogcmVmdXNlIHRvIHBhcnNlIEFTTi4xIHRva2VucwogICB3aXRoIHdyb25nIHR5cGUgZmllbGQuCiAgIFRoaXMgbWF5IHlpZWxkIHRvIHByb2JsZW1zIHdpdGggdGhpcmQtcGFydHkgYXBwbGljYXRpb25zIHdoaWNoCiAgIG1heSBkZXBlbmQgb24gcGFyc2luZyB1Z2x5IEFTTi4xIGRhdGEgLSB3ZSdsbCBzZWUuLi4KCjIwMTAtMDQtMjAgMDA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tYmluZSByZW1vdGUgZmluZ2VycHJpbnQgY2hlY2tpbmcgYW5kIGNoZWNrIGJvdGggc2lkZXMKCjIwMTAtMDQtMjAgMDA6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgaWYgdGhlIHJlbW90ZSBmaW5nZXJwcmludCBpcyBzcGVjaWZpZWQsIHJlcXVpcmUgYW4gZXhhY3QgbWF0Y2gKCjIwMTAtMDQtMTkgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB2YXJpb3VzIG1pbm9yIGJ1Z3MsIGVzcGVjaWFsbHkgaW4gb3V0cHV0IG1lc3NhZ2VzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBkb2N1bWVudGF0aW9uIGFuZCBwcm90b3R5cGluZyBvZiBuZWVkZWQgUkZDIHN0ZXBzCgoyMDEwLTA0LTE5IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY29udmVydCBpZiBlcnJvciBjaGVjayB0byByZXR1cm4gaW1tZWRpYXRlbHkgc28gb3RoZXIgY29kZSBjYW4gYmUKICAgb3V0ZGVudGVkCgoyMDEwLTA0LTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBjb21tZW50cyBmcm9tIHRoZSBSRkMgdGV4dAoKMjAxMC0wNC0xOCAxNToyNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3RyYW5zcG9ydHMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgCiAgICAgICAgd2luMzIvdHJhbnNwb3J0cywgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjcmVhdGVkIGEgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgc2VjdXJpdHlOYW1lIGZyb20gdGhlIGNlcnQKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBkb24ndCBuZWVkIHRvIHNldCB0aGUgYWNjZXB0IHN0YXRlIGZvciBUTFMgKGp1c3QgRFRMUykKCjIwMTAtMDQtMTYgMTg6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIFRMUyBjb21tZW50IGRvY3VtZW50YXRpb24gYW5kIHN0ZXBzIHRha2VuIGZyb20gdGhlIFJGQwoKMjAxMC0wNC0xNiAxMzo1NSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbnVtZXJvdXMgZml4ZXMsIG1vcmUgdmVyYm9zZSBkZWZhdWx0IG91dHB1dCwgYWRkaXRpdmUgc2hvdyBmbGFncywKICAgYXJiaXRyYXJ5IGNvbmZpZyBwYXJhbSBoYW5kbGluZywgYmV0dGVyIGhlbHAgdGV4dAoKMjAxMC0wNC0xNiAxMzowOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBkb24ndCBkb3VibGUgZGVjbGFyZSBhIHN0cnVjdAoKMjAxMC0wNC0xNiAwMzozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjZXJ0IHV0aWwgZml4ZXMKICAgLSByZW1vdmUgdW51c2VkIHZhcnMgYW5kIGR1cGxpY2F0ZSBjb2RlCiAgIC0gY2hlY2sgcHJ0IGJlZm9yZSBmcmVlCiAgIC0gbmV3IGZ1bmMgZm9yIHR5cGUgZnJvbSBmaWxlbmFtZQogICAtIG5ldyBmdW5jdGlvbnMgZm9yIGZpbmRpbmcgc3Vic2V0cyBmcm9tIGZpbGVuYW1lCiAgIC0gZml4IHR5cGVzIGluIGtleSBzZWFyY2ggZnVuY3Rpb24gYnV0IHRoZW4gaWZkZWYgaWYgKHVudXNlZAogICBmdW5jdGlvbikKCjIwMTAtMDQtMTUgMjI6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdXNlIGEgc3RydWN0dXJlIHJlZmVyZW5jZSB0byBwcmVkZWNsYXJlIHRoZSBzdHJ1Y3R1cmUKCjIwMTAtMDQtMTUgMjE6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgY29ycmVjdCBkZWNsYXJhdGlvbiBvZiB0aGUgZl9vcGVuIGNvbW1hbmQgbm93IHJlcXVpcmluZyByZXR1cm5pbmcKICAgYSB0cmFuc3BvcnQKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgdW5uZWVkZWQgY29uZmlnIGNvbnRhaW5lcgoKMjAxMC0wNC0xNSAyMTowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGZpbmdlcnByaW50IHRyYW5zcG9ydCBpbmZvcm1hdGlvbiBpbnRvIG5ldyB0bHMgc3RydWN0dXJlCiAgIHdpdGhpbiBEVExTVURQIHNvIHBlci10cmFuc3BvcnQgZmluZ2VycHJpbnRzIGNhbiBiZSBzcGVjaWZpZWQKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVybHkgY2hlY2sgZm9yIHRsc2Jhc2UgcG9pbnRlcnMgaW4gZHRsc3VkcF9zZW5kKCkKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgZ3JlcCB0aGUgdHJhbnNwb3J0IGxpc3QgZm9yIFRMUyBub3QganVzdCBEVExTIGZvciBjaGVja2luZyBmb3IKICAgLWxzc2wKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBidWcgZml4ZXMgYW5kIG1hZGUgVExTVENQIHdvcmsgd2l0aCB0aGUgLVQgZmxhZwoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWFrZSB0aGUgZl9vcGVuIGNhbGwgYXNzaWduIHRoZSBuZXcgdHJhbnNwb3J0IHBvaW50ZXIgdG8gdXNlIChhbmQKICAgY2hlY2sgaWYgTlVMTCBhcyBhIGZhaWx1cmUgY29uZGl0aW9uCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmVnaW4gd29yayBtb3ZpbmcgRFRMUyBjb25maWcgcm91dGluZSBpbiBwbGFjZQoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHBhc3MgdGhlIGVudGlyZSB0bHNiYXNlIHRvIHRoZSBjbGllbnRfc2V0dXAKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCBzbm1wbGliL3NubXBfYXBpLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3RhcnRpbmcgdGhlIHN0b3Jpbmcgb2YgY29uZmlnIGRhdGEgaW50byB0aGUgdGxzYmFzZQoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgY2xpZW50IHNzbCBzZXR1cCB0byBhbGxvdyBmb3IgZGlyZWN0IGZpbmdlcnByaW50CiAgIHNwZWNpZmljYXRpb24gb2YgbXkvdGhlaXIgY2VydHMKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKICAgICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzcGxpdCBUTFMgaW50byBjcmVhdGlvbi9jbG9zZSBmdW5jdGlvbnMgZm9yIGV2ZW50dWFsIGNvbmZpZwogICBwYXNzaW5nIHN1cHBvcnQKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXNzIHRyYW5zcG9ydCBjb25maWcgZGF0YSB0byB0aGUgdHJhbnNwb3J0IGZfY29uZmlnKCkgZnVuY3Rpb24KCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldHVybiBOVUxMIG9uIHRyYW5zcG9ydCBjb25maWcgZXJyb3IKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogYXBwczogLVQgY29tbWFuZCBsaW5lIGZsYWcgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlCiAgIHRyYW5zcG9ydHMKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNoZWNrIHRyYW5zcG9ydCBOVUxMbmVzcyBiZWZvcmUgdXNpbmcKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYmVnaW5uaW5nIG9mIHdvcmsgdG8gbWFrZSB0cmFuc3BvcnRzIGNvbmZpZ3VyYWJsZSB3aXRoCiAgIHN1cHBsaW1lbnRhbCBjb25maWd1cmF0aW9uIGRhdGEgYW5kIG5ldyBjYWxscyBmb3IgZl9vcGVuL2ZfY29uZmlnCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgdGV4dCBpbiBjb21tZW50cyBmcm9tIGZ1dHVyZSBSRkMgdG8gZG9jdW1lbnQgdGhlCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTA0LTE1IDE4OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1hcmsgcGVtIHcva2V5IGFzIGlkZW50aXR5OyB0d2VhayBwYXJ0bmVyIGRlYnVnOyBjb21wYXJlIGZpbGUKICAgY3RpbWUgYWdhaW5zdCBpbmRleCB0b28KCjIwMTAtMDQtMTUgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdXNlIGxvY2FsIHNwYWNlIHRvIHJlZm9ybWF0IGNlcnQgZm9yIHNlYXJjaAoKMjAxMC0wNC0xNSAxNjo1NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFBhcnRpYWxseSByZXZlcnRlZCByMTg0OTY6CiAgIC0gQ29tbWVudGVkIG91dCAjZGVmaW5lIE5FVFNOTVBfVVNFX0RMTCBhZ2FpbiBpbiBmaWxlCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIG9uIHRoZSA1LjQgYnJhbmNoLiBUaGlzIGNoYW5nZQogICBoYWQgYmVlbiBjb21taXR0ZWQgdW5pbnRlbnRpb25hbGx5LgogICAtIFJlLWVuYWJsZWQgI2RlZmluZQogICBVU0lOR19OT1RJRklDQVRJT05fTE9HX01JQl9OT1RJRklDQVRJT05fTE9HX01PRFVMRSBpbgogICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oIG9uIHRoZSB0cnVuayBhbmQgdGhlCiAgIFY1LjUgYnJhbmNoLiBXaGlsZSBidWlsZC5iYXQgcmVwb3J0cyBhbiBlcnJvciBvbiBlYXJsaWVyIGJyYW5jaGVzCiAgIHdpdGggdGhpcyBzeW1ib2wgZW5hYmxlZCwgdGhlcmUgaXMgbm8gc3VjaCBwcm9ibGVtIG9uIHRoZSB0cnVuawogICBvciBWNS41IGJyYW5jaGVzIGFuZCBoZW5jZSB0aGVyZSB3YXMgbm8gcmVhc29uIHRvIGRpc2FibGUgdGhpcwogICBwcmVwcm9jZXNzb3Igc3ltYm9sLgoKMjAxMC0wNC0xNSAxNTowOCAgbWFyegoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXQtc25tcC1jZXJ0IHRvIG1ha2UvaW5zdGFsbAoKMjAxMC0wNC0xNSAxMDo1MiAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldDoKCiAgIFRlc3RzIG5vdCB3b3JraW5nIGZvciBUQ1Agc2hvdWxkIGJlIHNraXBwZWQgYWxzbyBmb3IgVENQNi4KCjIwMTAtMDQtMTQgMTg6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IHZhcnMvdGV4dCBmcm9tIGN1dC1uLXBhc3RlCgoyMDEwLTA0LTE0IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBjb21tZW50cwoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBsb3RzIG9mIGNlcnQgdXBkYXRlcwogICAtIGNoYW5nZSBjZXJ0IHN1YmRpciBzZWFyY2hpbmcgdG8gbWF0Y2ggbmV0LXNubXAtY2VydAogICAtIHVwZGF0ZSBrZXkgdHlwZSBoYW5kbGluZwogICAtIGlnbm9yZSB3b3JsZCByZWFkYWJsZSBrZXlzCiAgIC0ga2VlcCB0eXBlIGluIGluZGV4ZXMKICAgLSB0d2VhayBjZXJ0L2tleSBwcmludCBmb3JtYXQKCjIwMTAtMDQtMTQgMTc6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbWFrZSBuZXQtc25tcC1jZXJ0IGV4ZWN1dGFibGUKCjIwMTAtMDQtMTQgMTM6MTIgIGpzYWZyYW5lawoKICAgKiAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBGaXhlZCB0ZXN0cyAnUHJveHkgR0VUL1NFVCBzdXBwb3J0JyBhbmQgJ1NOTVB2MiB2YWNtIGRlbmlhbAogICBzdXBwb3J0JyB3aXRoIHVkcDYgdHJhbnNwb3J0LgoKMjAxMC0wNC0xNCAwOTo0NyAgZHRzMTIKCiAgICogIHdpbjMyLCB3aW4zMi9iaW4sIHdpbjMyL2Rpc3QsIHdpbjMyL2Rpc3QvaHRtbGhlbHAsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLCB3aW4zMi9kaXN0L3NjcmlwdHMsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsIAogICAgICAgIHdpbjMyL2xpYiwgd2luMzIvbGliYWdlbnQsIHdpbjMyL2xpYmhlbHBlcnMsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgd2luMzIvbGlic25tcCwgd2luMzIvbGlic25tcF9kbGwsICAgCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMsIHdpbjMyL2xvY2FsLCB3aW4zMi9uZXQtc25tcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQsIHdpbjMyL25ldC1zbm1wL2xpYnJhcnksIHdpbjMyL25ldHNubXBtaWJzLCAgCiAgICAgICB3aW4zMi9zbm1wYnVsa2dldCwgd2luMzIvc25tcGJ1bGt3YWxrLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhLCB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBnZXQsIHdpbjMyL3NubXBnZXRuZXh0LCAgCiAgICAgICB3aW4zMi9zbm1wbmV0c3RhdCwgd2luMzIvc25tcHNldCwgd2luMzIvc25tcHN0YXR1cywgICAKICAgICAgd2luMzIvc25tcHRhYmxlLCB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYXAsIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHVzbSwgd2luMzIvc25tcHZhY20sICAgCiAgICAgIHdpbjMyL3NubXB3YWxrOgoKICAgRG9uJ3QgdHJ5IHRvIFNWTi1tYW5hZ2UgdGhlIFdpbmRvd3MgYmF0Y2ggYnVpbGQgaW5mcmFzdHJ1Y3R1cmUKICAgKGFkZCByZWxlYXNlLCBkZWJ1ZywgTWFrZWZpbGUgdG8gdGhlIHByZXZpb3VzIGlnbm9yZSBsaXN0KQoKMjAxMC0wNC0xNCAwODoxNiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggV2luZG93cyBiYXRjaCBidWlsZCB1c2luZyBWaXN1YWwgU3R1ZGlvIHdpdGggZHluYW1pYyBsaW5raW5nLgogICBVbnJlZmVyZW5jZWQgc3ltYm9sIGludHJvZHVjZWQgYnkgU1ZOIHJldmlzaW9uIDE4MzkzCgoyMDEwLTA0LTE0IDA4OjA4ICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IEZpeCBiYXRjaCBidWlsZCB1c2luZyByZWNlbnQgdmVyc2lvbnMgb2YgVmlzdWFsCiAgIFN0dWRpby4KICAgUGFydGlhbCBiYWNrIHBvcnQgb2YgU1ZOIHJldmlzaW9ucyAxNzU3MyBhbmQgMTc2OTYuCgoyMDEwLTA0LTE0IDAxOjQ3ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggcGVybXMgb24gY3JlYXRlZCBmaWxlcyAtcnctLS0tLS0tLCB1bWFzaygwNzcpCgoyMDEwLTA0LTEzIDIyOjE1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQsIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGZpeCBwZXJtcywgYWRkIC0tY24vLWMsIGJldHRlciBkYXRlcyBkZWZhdWx0cywgc25tcC10bHMgb3JnX3VuaXQsCiAgIGFkZGVkIGluaXRpYWwgZHVtbXkgY29uZmlnIGZpbGUKCjIwMTAtMDQtMTMgMTQ6MjEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeGVzIGZvciBzaG93IGNtZHMsIGNtZGxpbmUsIGhlbHAKCjIwMTAtMDQtMTMgMDI6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIGtleStjZXJ0IGluIC5wZW0gZmlsZXM7IG1pc2MgdHdlYWtzCgoyMDEwLTA0LTEwIDIzOjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiBvbiBIUC1VWCAxMC4yMCkKCjIwMTAtMDQtMTAgMjI6MjUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGluaXRpYWwgY3V0IGF0IHRsc3RtQ2VydFRvVFNOVGFibGUKCjIwMTAtMDQtMTAgMjI6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBhZGQgZGVmaW5lIG9mIG1heCBoYXNoIGNvbnN0YW50CgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmM6CgogICB1c2UgY2VydCB1dGlsIGNoZWNrIGZvciBmaW5nZXJwcmludCBsZW4vYWxnb3JpdGhtCgoyMDEwLTA0LTEwIDEyOjU5ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBzaG93IGNtZCBmaXhlcwoKMjAxMC0wNC0wOSAyMTozMiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZmFpcmx5IGZ1bmN0aW9uYWwgKG5vbi1pbnRlcmFjdGl2ZSkgLSBiZSBpdCBrbm93bjogdGhlcmUgYXJlIGJ1Z3MKCjIwMTAtMDQtMDkgMjA6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaDoKCiAgIG1lcmdlIHNvbWUgdGFibGVfZGF0YS5jb25mIGNoYW5nZXM7IHJlbW92ZSB1bnVzZWQgY29kZSBhbmQgYQogICBidW5jaCBvZiB2ZXJib3NlIGNvbW1lbnRzCgoyMDEwLTA0LTA4IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgdXNlIGZ1bGwgcGF0aAoKMjAxMC0wNC0wOCAxMDo1NSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ2hlY2sgcmVzdWx0cyBvZiBjYWxscyB0byBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUgYW5kIGxvZwogICBhbiBlcnJvci4KICAgVGhpcyBhbGxvd3MgdXNlcnMgdG8gcmVsYXRlIHZhcmlvdXMgJ2M2NCAzMiBiaXQgY2hlY2sgZmFpbGVkJwogICBlcnJvcnMgd2l0aCBzcGVjaWZpYyBjb3VudGVyLgoKMjAxMC0wNC0wOCAwMTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldyBmdW5jdGlvbgoKMjAxMC0wNC0wOCAwMTowNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiB0cmFuc2xhdGUgTk9TVUNIKi9FTkRPRk1JQiBlcnJvcnMgZHVyaW5nIFJFU0VSVkUxCiAgIHRvIE5PQ1JFQVRJT04KCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBORVdTOiBzbm1wZDogdGFibGVfZGF0YS90ZGF0YSBuZXh0IGhhbmRsZXIgd2lsbCBub3QgYmUgY2FsbGVkCiAgIGR1cmluZyBnZXQKICAgcHJvY2Vzc2luZyBpZiBubyB2YWxpZCByb3dzIGFyZSBmb3VuZCBmb3IgdGhlIGhhbmRsZXIKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBORVdTOiBzbm1wZDogYWdlbnQgd2lsbCBubyBsb25nZXIgY2FsbCB0YWJsZSBoYW5kbGVycyBpZiBhIHNldAogICByZXF1ZXN0IGZvcgogICB0aGUgaGFuZGxlciBoYXMgaW52YWxpZCBpbmRleGVzCiAgIENIQU5HRVM6IHNubXBkOiBkb24ndCBjYWxsIGNsZWFudXAgb24gZmlyc3QgcmVxdWVzdCBvbiBiYWQKICAgaW5kZXhlcy4gaW5zdGVhZCwKICAgc2V0IGFjdHVhbCBlcnJvciBsYXRlciwgYW5kIGZyZWUgcmVxdWVzdCBkYXRhIHNldHMgb24gZmlyc3QKICAgcmVxdWVzdCBmb3Igc2V0cwoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBmaW5nZXJwcmludCB2YXJiaW5kCgoyMDEwLTA0LTA3IDIyOjU2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIFNvbGFyaXMgdHIgZG9lc24ndCBzdXBwb3J0IGNoYXJhY3RlciByYW5nZXMgcmVsaWFibHkgKHNlZSB0aGUKICAgYXV0b2NvbmYgbWFudWFsKSwgY2hhbmdlIHRoZSBleHByZXNzaW9uIHRvIG9uZSB0aGF0IGlzIHNpbXBsZQogICBlbm91Z2ggdG8gYiBzdXBwb3J0ZWQuCgoyMDEwLTA0LTA3IDE0OjA1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbnNlcnQgdGhlIGNhY2hlIGhlbHBlciBjb3JyZWN0bHkuCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb25zIHRvIHJlbW92ZSBsaXN0L3JvdyBkYXRhIGZyb20KICAgcmVxdWVzdCBsaXN0CgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgaWZkZWYgdmFyIGRlY2wgZm9yIHZhcnMgb25seSB1c2VkIGluIGxhdGVyIGlmZGVmIGJsb2NrCgoyMDEwLTA0LTA3IDEwOjQwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBmdW5jdGlvbiB0byB2YWxpZGF0ZSBSb3dTdGF0dXMgYW5kCiAgIFN0b3JhZ2VUeXBlIHZhcmJpbmRzCiAgIC0gYWxzbyByZW1vdmUgc29tZSBkdXBsaWNhdGUgY29kZSBhbmQgZml4IGNvbW1lbnRzIGluZGVudCBtYW5nbGVkCgoyMDEwLTA0LTA3IDEwOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlLCBtYW4vbWliMmMtdXBkYXRlLjEuZGVmOgoKICAgdXBkYXRlIG1hbiBwYWdlOyBmaXggc2hlbGwgcmVkaXJlY3Q7IGNyZWF0ZSBleGFtcGxlIHJjZmlsZSBpZgogICBtaXNzaW5nCgoyMDEwLTA0LTA3IDA3OjE1ICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFVzZSBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcgaW5zdGVhZCBvZiBESVNBQkxFX01JQl9MT0FESU5HCgoyMDEwLTA0LTA3IDAwOjM4ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE9ubHkgZW5hYmxlIGhvc3RTd0luc3QgcnBtIHN1cHBvcnQgb24gbGludXggaG9zdHMKICAgd2l0aCBsaWJycG0uIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gbm9uLXJwbSBsaW51eAogICBkaXN0cmlidXRpb25zLgoKMjAxMC0wNC0wNyAwMDoxNCAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoYW5nZSB0aGUgdGVzdCBzdWl0ZSB0byB3b3JrIGV2ZW4gaWYgbWliCiAgIGxvb2t1cCBpcyBkaXNhYmxlZC4KCjIwMTAtMDQtMDcgMDA6MTEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2OgoKICAgQ2hlY2sgZm9yIGNvbTJzZWM2LCBub3QgY29tMnNlYy4KCjIwMTAtMDQtMDYgMjI6NTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgTW92ZSBkaXJlY3RvcnkgY3JlYXRpb24gYmVmb3JlIHRoZSBkaXJlY3RvcmllcyBhcmUgdXNlZC4KCjIwMTAtMDQtMDYgMTE6MDMgIGR0czEyCgogICAqIEZBUToKCiAgIFB5dGhvbiBpcyBhcHBhcmVudGx5IGNsaWVudC1zaWRlIG9ubHkuCgoyMDEwLTA0LTA2IDEwOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU2V0IHN1cHBsZW1lbnRhcnkgZ3JvdXBzIGJlZm9yZSBjaGFuZ2luZyBVSUQKICAgKHdoaWNoIHByb2JhYmx5IGludm9sdmVzIGdpdmluZyB1cCBwcml2aWxlZ2VzKQoKMjAxMC0wNC0wNiAwODo1NyAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgRG9jdW1lbnQgbGFyZ2UtZGlzayBzdGF0aXN0aWNzIGFzIGxhdGNoaW5nIGF0IDJUYiAocmF0aGVyIHRoYW4KICAgd3JhcHBpbmcpLgoKMjAxMC0wNC0wNiAwMTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLCBtYW4vbWliMmMuMS5kZWY6CgogICBORVdTOiBtaWIyYzogbWliMmMgY2FuIG5vdyBvcHRpb25hbGx5IHJ1biBzZWQgb24gZ2VuZXJhdGVkIGNvZGUKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbnZlcnQgQysrIGNvbW1lbnRzIHRvIEMgY29tbWVudHMKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgcHRyIGNoZWNrIGJlZm9yZSBwcnQgdXNlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBmaWxlbmFtZSB0byBkZWJ1ZyBvbiBuZXcgY2VydHM7IG1ha2Ugc3RhdGljIGZ1bmMgdG8gcmV0dXJuCiAgIG1vZGUgbmFtZXMKCjIwMTAtMDQtMDYgMDA6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWxsb3cgYSBmb3VuZCBmaW5nZXJwcmludCBzZWxmLXNpZ25lZCBjZXJ0IGZvciBub3c7IGV2ZW50dWFsbHkKICAgbmVlZCB0byByZXNwZWN0IHRoZSBNSUIgY29uZmlnIHRhYmxlCgoyMDEwLTA0LTA2IDAwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1rZGlyIHNubXBsaWIvdHJhbnNwb3J0cyB3aGVuIERORSBmb3IgYnVpbGRpbmcgb3V0c2lkZSB0aGUgc291cmNlCiAgIGRpcgoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGVycm9yIGNvZGUgY2xlYW51cCBmb3IgdGxzYmFzZV93cmFwdXBfcmVjdgoKMjAxMC0wNC0wNSAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vcmUgYmV0dGVyIGVycm9yL2RlYnVnIGNvZGVzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgZnV0dXJlLVJGQyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb247IHVzZQogICBmbGFncyBmb3Igc2VydmVyL2NsaWVudCBzcGVjaWZpY2F0aW9uIGZvciBleHBhbnNpb24KCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIHVzYWdlIGNvbnN0cmFpbnRzCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW92ZSBmdW5jdGlvbiBwcm90ZWN0aW9uIGxvZ2ljIGluIGEgdG9wLWxldmVsIGNoZWNrCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBpbml0IG9yZGVyaW5nCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbXYgdGxzYmFzZSBpbml0IGZ1bmN0aW9uIHRvIGEgcHJvcGVyIGN0b3IgZm9yIGF1dG8tY2FsbGluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBnZW5lcmF0ZSB0aGUgdHJhbnNwb3J0IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGxpc3QKICAgZHluYW1pY2FsbHkgYW5kIHVzZSBpdAoKMjAxMC0wNC0wMiAxNjozNSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTU0hEb21haW4uYywgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IG1vdmVkIHRyYW5zcG9ydCBjb2RlIGludG8gYSBzZXBhcmF0ZSBzdWJkaXJlY3RvcnkgaW4KICAgc25tcGxpYgoKMjAxMC0wNC0wMiAwOTowMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBEbyBub3QgYXR0ZW1wdCB0byBjaGVjayBzaXplb2Ygdm9pZCB0byBvYnRhaW4gdGhlIGFtb3VudCBvZgogICBtZW1vcnkgdG8gY29weS4KCjIwMTAtMDQtMDEgMTc6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluc3RlYWQgb2YgZndkIGRlY2xhcmVzLCByZXF1aXJlIG90aGVyIGhlYWRlcgoKMjAxMC0wNC0wMSAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb3V0ZGF0ZWQgZGVidWcgbXNnCgoyMDEwLTA0LTAxIDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdXNlIGNlcnRhcGkgdG8gZmluZCBjZXJ0cy9rZXlzCgoyMDEwLTA0LTAxIDE0OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVnaXN0ZXIgZXh0cmFYNTA5U3ViRGlyIHRva2VuCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBjaGVjayBwdHIgYmVmb3JlIHVzZQoKMjAxMC0wNC0wMSAxMzoxMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIGFkZCBwZXJzaXN0ZW50IHN0b3JhZ2U7IHRva2VuIGZvciBjcmVhdGluZyBlbnRyaWVzIGluIHNubXBkLmNvbmY7CiAgIGZpeCBpbmRleAoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBjZXJ0aWZpY2F0ZSBhcGkgdG8gc3VwcG9ydCB0bHMvZHRscwoKMjAxMC0wNC0wMSAxMzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIENIQU5HRVM6IGFkZCBmdW5jdGlvbnMgdG8gZ2V0IGZpbmdlcnByaW50IGZyb20gY2VydCBhbmQgbG9nCiAgIG9wZW5zc2wgZXJycwoKMjAxMC0wNC0wMSAxMjo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBmaXggdHlwbwoKMjAxMC0wNC0wMSAxMDozMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIHdpdGggcHJlLUM5MCBjb21waWxlcnMuCgoyMDEwLTA0LTAxIDEwOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IHRhYmxlX2RhdGEgdGVtcGxhdGUgZW5oYW5jZW1lbnRzCiAgIC0gYWRkIGVycm9yIGNoZWNrcyBkdXJpbmcgdGFibGUgaW5pdAogICAtIGNyZWF0ZSBjYWNoZSBlYXJsaWVyIHNvIHdlIGNhbiBiYWlsIG9uIGZhaWx1cmUKICAgLSBhZGQgb3B0aW9uIHRvIGNyZWF0ZS9kZWxldGUgcm93IHcvb3V0IGFkZGluZy9yZW1vdmluZyBmcm9tCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIGFkZCBoZWxwZnVsIHBhcmFtIG5hbWVzIGFzIGhpbnRzIGluIHByb3RvdHlwZQoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHNlYXJjaCBmb3IgY29udGFpbmVyIHNwZWNpZmljIGNvbnRhaW5lciBiZWZvcmUgZ2VuZXJpYwoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgTkVXUzogc25tcGxpYjogZW5oYW5jZSBmaWxlIHV0aWxzIGFuZCBkaXIgdXRpbHMKICAgLSBhZGQgb3B0aW9uYWwgc3RhdHMgc3RydWN0IHRvIG5ldHNubXBfZmlsZQogICAtIGdlbmVyYWxpemUgZGlyIGNvbnRhaW5lciBmaWx0ZXIsIGFkZCBjb250ZXh0IHRvIGNhbGxiYWNrCiAgIC0gYWRkIG9wdGlvbiB0byBzdG9yZSBuZXRzbm1wX2ZpbGVzICh3L3N0YXRzKSBpbiBjb250YWluZXIKICAgaW5zdGVhZCBvZiBqdXN0IG5hbWUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBwcm90b3R5cGUgdG8gaGVhZGVyOyBjaGVjayBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKCjIwMTAtMDMtMzEgMTU6MzQgIGpzYWZyYW5lawoKICAgKiAgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL3NubXAtYnJpZGdlLW1pYiwgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vc25tcC1icmlkZ2UtbWliLjEsIG1pYnMvQlJJREdFLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTWFrZWZpbGUubWliOgoKICAgTkVXUzogbWlzYzogUEFUQ0g6IDI5NTI3MDg6IGZyb20gSmVucyBPc3RlcmthbXA6IEFkZGVkIFBlcmwKICAgaW1wbGVtZW50YXRpb24gb2YgQlJJREdFLU1JQgoKMjAxMC0wMy0zMSAwMjoxMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm9wZXIgcGFja2V0IGxhYmVsaW5nIGZvciBEVExTVURQCgoyMDEwLTAzLTMxIDAyOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjb21tb24gY29udGV4dCBjcmVhdGlvbiBjb2RlCgoyMDEwLTAzLTMwIDIzOjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoYW5nZSBUTFMgbWV0aG9kIHRvIFRMU3YxIGZyb20gU1NMdjIzCgoyMDEwLTAzLTMwIDIzOjIzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgbW9yZSBjb21tb24gZGF0YSBhbmQgZnVuY3Rpb25hbGl0eSBpbnRvIHRoZSBUTFMgYmFzZQoKMjAxMC0wMy0zMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtaW5vciBUTFMgY29kZSBjbGVhbnVwCgoyMDEwLTAzLTMwIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZXdvcmsgaWYoKSB3cmFwcGluZyBmb3IgbGVzcyBjb25mdXNpb24gaW4gZXJyb3IgaGFuZGxpbmcKCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvZGUgY29uc29saWRhdGlvbiBpbiBzdGFydF9uZXdfY2FjaGVkX2Nvbm5lY3RpbwoKMjAxMC0wMy0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1lIGdlbmVyaWMgJ2JpbycgcG9pbnRlciB0byAncmVhZF9iaW8nIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkKCjIwMTAtMDMtMzAgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1vdmUgYnVmZmVyZWQgZGF0YSBjcmVhdGlvbiB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZQoKMjAxMC0wMy0zMCAxNzo1MiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaW5pdGlhbCBjZXJ0IGdlbiB3cmFwcGVyIHNjcmlwdCAtIG5vdCB3b3JraW5nCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGVhbiB1cCBlcnJvciBvdXRwdXQgc28gaXQgZG9lc24ndCByZXBvcnQgd2FudF9yZWFkIGFuZAogICB3YW50X3dyaXRlIGVycm9ycwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVuYW1pbmcgb2Ygc2VuZGluZyBmdW5jdGlvbiBmb3IgY2xhcml0eSBhbmQgY2hlY2sgb25lIG1vcmUKICAgbG9jYXRpb24gZm9yIG5lZWRlZCBvdXRnb2luZyBwYWNrZXRzCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBhZGRlZCBkdGxzdWRwIHRyYWNpbmcgdG9rZW5zCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQ0hBTkdFUzogYWRkZWQgYSBuZXcgREVCVUdUUkFDRVRPSygpIG1hY3JvCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZXR0ZXIgY29tbWVudHMgYW5kIG1vcmUgd29yayBvbiBzZW5kaW5nIGJ1ZmZlcmVkIGRhdGEgaW4gdGhlCiAgIHJpZ2h0IHNwb3RzCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBhcmd1bWVudHMgdG8gZ2V0X2NvbW1vbk5hbWUKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2lubmluZyBvZiBjYWNoaW5nIG9mIHBhY2tldHMgYmVmb3JlIHRoZXkgY2FuIGJlIHNlbnQgdmlhIERUTFMKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGhhbmRsZSBTU0xfV0FOVF9SRUFEL1dSSVRFIGJldHRlcjsgc3RpbGwgbmVlZCB0byBidWZmZXIgb3V0Z29pbmcKICAgd3JpdGUgZGF0YQoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbWlub3IgY2hhbmdlIHRvIG91dHB1dCBlcnJvciBwcmludGluZwoKMjAxMC0wMy0yOSAxNToyMCAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBORVdTOiBzbm1wZDogRml4IGhhbmRsaW5nIG9mIG11bHRpcGxlIG1hdGNoaW5nIFZBQ00gZW50cmllcy4KICAgKFVzZSB0aGUgImJlc3QiIG1hdGNoLCByYXRoZXIgdGhhbiB0aGUgZmlyc3Qgb25lKS4KICAgUmVwb3J0ZWQgYnkgQWRhbSBMZXdpcy4KICAgTm90ZSB0aGF0IHRoaXMgY291bGQgcG90ZW50aWFsbHkgYWZmZWN0IHRoZSBiZWhhdmlvdXIgb2YKICAgZXhpc3RpbmcgYWNjZXNzIGNvbnRyb2wgY29uZmlndXJhdGlvbnMuCgoyMDEwLTAzLTI5IDE1OjE2ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDoKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfcmVxdWVzdF9pbmZvUHRyOjpnZXRWYWx1ZSgpOiBkb24ndCByZXR1cm4KICAgYSBwb2ludGVyIHRvIGEgYnVmZmVyIG9uIHRoZSBzdGFjay4gSG93IGNhbiB0aGlzIGhhdmUgd29ya2VkCiAgIHJlbGlhYmx5ID8/CiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6c2V0VmFsdWUoKSwKICAgQVNOX0NPVU5URVI2NDogZml4ZWQgYnVnIHRoYXQgY291bGQgY2F1c2UgdGhpcyBtZXRob2QgdG8gZmFpbAogICBldmVuIHdoZW4gYSB2YWxpZCBudW1iZXIgd2FzIHByb3ZpZGVkLgoKMjAxMC0wMy0yOSAxNToxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggYWdlbnQgY3Jhc2ggd2hlbiBzZW5kaW5nIGVuY3J5cHRlZCBTTk1QdjMKICAgdHJhcHMuCiAgIFJlcG9ydGVkIGJ5IFNyaWthcGlsYW4gR2FuZGhpCgoyMDEwLTAzLTI5IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2F0Y2ggc3RkZXJyIG9uIFdpbmRvd3MgdG9vLgoKMjAxMC0wMy0yOSAxMTo0OCAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wMy0yOSAxMToxOSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZGVzdHJveWluZyBhCiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uIG9iamVjdC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZmFpbHVyZSBvZgogICBjcmVhdGluZyBhIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZQogICBOZXRTTk1QOjpPSUQ6OmdldHRhYmxlKCkgc3Vicm91dGluZS4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgdHJpZ2dlcmVkIGJ5CiAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBhIFBEVSBwcm9jZXNzaW5nCiAgIGVycm9yIGluIE5ldFNOTVA6OlNOTVAuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIG1lbW9yeSBsZWFrcyB0cmlnZ2VyZWQgYnkgY3JlYXRpbmcgYW4gU05NUHYzCiAgIHNlc3Npb24gdmlhIE5ldFNOTVA6OlNOTVAuCiAgIAogICBBbHNvIGZpeGVkIHRoZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGFjY2Vzc2VzIHRyaWdnZXJlZCBieQogICBhZGRpbmcgYSB2YXJiaW5kIHRvIGEgUERVIHZpYSBOZXRTTk1QOjpTTk1QIGludHJvZHVjZWQgYSBmZXcgZGF5cwogICBhZ28uCiAgIAogICBUaGUgYnVncyBtZW50aW9uZWQgYWJvdmUgaGF2ZSBiZWVuIGZvdW5kIGJ5IGluc3BlY3RpbmcgdGhlIG91dHB1dAogICBvZiB0aGUgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmQ6CiAgIGNkIHBlcmwgJiYgdmFsZ3JpbmQgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS1sZWFrLWNoZWNrPWZ1bGwgbWFrZQogICB0ZXN0CgoyMDEwLTAzLTI5IDEwOjU5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgU3dpdGNoZWQgYmFjayB0byB0aGUgcHJldmlvdXMgd2F5IG9mIHN0YXJ0aW5nIHByb2Nlc3NlcwogICBhc3luY2hyb25vdXNseSBiZWNhdXNlIGl0IGlzIG1vcmUgcmVsaWFibGUuCgoyMDEwLTAzLTI5IDA5OjI3ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgRG8gbm90IG9ubHkgc2F2ZSBzbm1wZCAvIHNubXB0cmFwZCBsb2dzIGJ1dCBhbHNvIHRoZSBzdGRvdXQgLwogICBzdGRlcnIgb3V0cHV0IGdlbmVyYXRlZCBieSB0aGVzZSBwcm9jZXNzZXMuCgoyMDEwLTAzLTI4IDE2OjA5ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgQ2hhbmdlcyBpbiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgogICAtIEFkZGVkIGNvbW1hbmQtbGluZSBvcHRpb24gLWQgZm9yIHNubXBkIGFuZCBzbm1wdHJhcGQuCiAgIC0gc25tcGQgYW5kIHNubXB0cmFwZCBvdXRwdXQgaXMgbm93IHNhdmVkIHRvIGEgbG9nIGZpbGUgKG9uZSBwZXIKICAgdGVzdCkuCiAgIC0gUmV3cm90ZSBQZXJsIGNvZGUgZm9yIHN0YXJ0aW5nIHRoZSBzbm1wZC9zbm1wdHJhcGQgcHJvY2Vzc2VzCiAgIHN1Y2ggdGhhdCB0aGUgc2FtZSBjb2RlIHdvcmtzIG9uIFVuaXggYW5kIG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI4IDEzOjM3ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkZWQgdGhlIGZ1bmN0aW9ucyBuZXRzbm1wX21hbGxvYygpLAogICBuZXRzbm1wX2NhbGxvYygpLCBuZXRzbm1wX3JlYWxsb2MoKSwgbmV0c25tcF9zdHJkdXAoKSBhbmQKICAgbmV0c25tcF9mcmVlKCkuCiAgIENIQU5HRVM6IFdpbjMyOiBzbm1wbGliOiByZW1vdmVkIHRoZSB0cm91Ymxlc29tZSAjZGVmaW5lIG1hbGxvYwogICBuZXRzbm1wX21hbGxvYyBldGMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGNhbGxpbmcgZnVuY3Rpb25zIGZyb20KICAgdGhlIE5ldC1TTk1QIERMTCBmcm9tIEMgb3IgQysrIGNvZGUgdGhhdCBpcyBiZWluZyBsaW5rZWQgYWdhaW5zdAogICBhbm90aGVyIHZlcnNpb24gb2YgdGhlIE1TVkMgcnVudGltZSBETEwgdGhhbiB0aGUgTmV0LVNOTVAgRExMLAogICBhbmQgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeSB0aGF0IHdpbGwgYmUgZnJlZWQgYnkgdGhlIE5ldC1TTk1QCiAgIERMTCwgeW91IHdpbGwgZWl0aGVyIGhhdmUgdG8gY2FsbCB0aGUgTmV0LVNOTVAgbWVtb3J5IGFsbG9jYXRpb24KICAgZnVuY3Rpb25zIGV4cGxpY2l0bHkgb3IgcmVkZWZpbmUgbWFsbG9jKCkgZXRjLiB5b3Vyc2VsZi4KCjIwMTAtMDMtMjggMTI6NDYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4ZWQgYSByZWNlbnRseSByZWludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDMtMjcgMTg6NDIgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjaGVjayBmb3IgaW52b2NhdGlvbiBvZiBjYWxsb2MoKSBmcm9tIFhTVUJzLgoKMjAxMC0wMy0yNiAxOToxNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL09JRC9PSUQueHMsICAgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBGb2xsb3ctdXAgZm9yIHIxODM2OCBhbmQgcjE4MzY5OiBtYWRlIHN1cmUgdGhhdCB0aGUgTmV0LVNOTVAgUGVybAogICBleHRlbnNpb25zIGNvbXBpbGUgd2l0aG91dCB0cmlnZ2VyaW5nIHByZXByb2Nlc3NvciB3YXJuaW5ncyBhYm91dAogICByZWRlZmluaW5nIG1hbGxvYyBldGMuIG5vciB0cmlnZ2VyICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycyBvbgogICBXaW5kb3dzLgoKMjAxMC0wMy0yNiAxNDo0NCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgUmVmYWN0b3Jpbmc6IGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb246CiAgIG5ldHNubXBfc2V0X25vbl9ibG9ja2luZ19tb2RlKCkuCgoyMDEwLTAzLTI2IDExOjU4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgIAogICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHVzaW5nIHZhcmlhYmxlcyBvZiB0eXBlIGNoYXIgYXMgYW4KICAgYXJyYXkgc3Vic2NyaXB0LiBOb3RlOiBhcyBmYXIgYXMgSSBrbm93IHRoZXNlIHdhcm5pbmdzIGFyZSBvbmx5CiAgIHJlcG9ydGVkIHdoZW4gdXNpbmcgdGhlIEN5Z3dpbiBnbGliYyBoZWFkZXJzLgoKMjAxMC0wMy0yNiAxMDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSBkaXJlY3RpdmUgKG9uIFdpbmRvd3MgTVNWQyB3YXMgY29tcGxhaW5pbmcKICAgYWJvdXQgc2l6ZV90IHdoaWxlIHByb2Nlc3NpbmcgPG5ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg+KS4KCjIwMTAtMDMtMjUgMjA6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBDSEFOR0VTOiBhZ2VudHg6IGNoYW5nZWQgZGVmYXVsdCBUQ1AgdGFyZ2V0IGZyb20gMC4wLjAuMDo3MDUgdG8KICAgbG9jYWxob3N0OjcwNS4gVGhpcyBpcyBub3Qgb25seSBhIG1vcmUgc2VjdXJlIGNob2ljZSBidXQgaXQgYWxzbwogICBtYWtlcyBpdCBwb3NzaWJsZSBvbiBXaW5kb3dzIHN5c3RlbXMgdG8gbGV0IGFuIEFnZW50WCBzdWJhZ2VudAogICBjb25uZWN0IHRvIGFuIEFnZW50WCBtYXN0ZXIgYWdlbnQgcnVubmluZyBvbiB0aGUgc2FtZSBzeXN0ZW0KICAgd2l0aG91dCBoYXZpbmcgdG8gc2V0IHRoZSB2YXJpYWJsZSBORVRTTk1QX0RTX0FHRU5UX1hfU09DS0VULgoKMjAxMC0wMy0yNSAxNjoxMSAgYnZhc3NjaGUKCiAgICogIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBwZXJsOiBmaXhlZCBzZXZlcmFsICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9ycy4KICAgTm90ZTogc2luY2UgY2FsbG9jKCkgaXMgbm90IHJlZGVmaW5lZCBpbiA8Q09SRS9YU1VCLmg+IHVzaW5nCiAgIGNhbGxvYygpIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgbGVhZHMgdG8gIkZyZWUgdG8gd3JvbmcgcG9vbCIKICAgZXJyb3JzLCBhdCBsZWFzdCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxNjowNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBtb3JlIHNpbGVudCBieSBub3QKICAgcmVkZWZpbmluZyBtYWxsb2MoKSBvciBmcmVlKCkgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIFBlcmwKICAgZXh0ZW5zaW9ucyAocmVzdWx0ZWQgaW4gd2FybmluZ3MgYWJvdXQgbWFsbG9jKCkgLyBmcmVlKCkKICAgcmVkZWZpbml0aW9uIGluIHRoZSBQZXJsIGhlYWRlciBDT1JFL1hTVUIuaCkuCgoyMDEwLTAzLTI1IDE1OjA2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IEJVRzogMjk2OTg3MjogbWFkZSBzdXJlIHRoYXQgU09DS19TVEFSVFVQIGlzIGludm9rZWQKICAgYmVmb3JlIGluaXRfYWdlbnQoKSBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yNSAxMzozOSAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSBtYWNyb3MgaW5zdGVhZCBvZiBtYWdpYyBudW1iZXJzIGFzIG5ldHNubXBfcGFyc2VfYXJncyByZXR1cm4KICAgY29kZXMuCgoyMDEwLTAzLTI1IDEzOjMwICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIGJ1aWxkIHByb2Nlc3MgYnkKICAgcmVtb3ZpbmcgdGhlIGZpbGUgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4uIFdoaWNoIElQdjYKICAgZnVuY3Rpb25zIGFyZSBleHBvcnRlZCBmcm9tIG5ldHNubXAuZGxsIGlzIG5vdyBkZXRlcm1pbmVkIGJ5CiAgIHdoaWNoIG9mIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBETEwgaGF2ZSBiZWVuIGRlY2xhcmVkIGFzCiAgIE5FVFNOTVBfSU1QT1JULgoKMjAxMC0wMy0yNCAyMDoxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBkb24ndCB1c2UgcGFzc2VkIHB0ciBhcyB0ZW1wIHZhcjsgdXNlIHNubXBfZW51bV9saXN0cyBpbiBpbml0CiAgIHRlc3QKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgYWRkIE5FVFNOTVBfRFNfTElCX0NFUlRfRVhUUkFfU1VCRElSCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCBlYXJsaWVyIChoYXZlIHRsc19ib290c3RyYXAgY2FsbCBpdCkKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3M7IGFkZCBjZXJ0IGRlYnVnIG1zZ3MgaW4gc2VydmVyIHNldHVwOyBmcmVlCiAgIHNzbCBsb2cgZGF0YQoKMjAxMC0wMy0yNCAxMDo0NyAganNhZnJhbmVrCgogICAqICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCAgIAogICAgICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENIQU5HRVM6IGFwcHM6IHJldHVybiBub3plcm8gZXhpdCBjb2RlIHdoZW4gcGFyc2luZyBvZiBjZXJ0YWluCiAgIHBhcmFtZXRlciBmYWlscy4KICAgRS5nLiAnLUEnIHBhcmFtZXRlciB3aXRoIHRvbyBzaG9ydCBwYXNzcGhyYXNlIG9yIEt1IGtleQogICBnZW5lcmF0aW9uIGluIGdlbmVyYWwuCgoyMDEwLTAzLTI0IDA3OjExICBtYWdmcgoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIENvcnJlY3QgdGhlIHR5cGUgb2YgdGhlIGlkL2Rlc2NyaXB0aW9uIG9mIHRoZSBPcGVuLVBEVS4KCjIwMTAtMDMtMjIgMTg6MjkgIGJ2YXNzY2hlCgogICAqIE1ha2VmaWxlLmluOgoKICAgVXBkYXRlcyBmb3IgIm1ha2UgY2hlY2tzIjoKICAgLSBNYWRlIHN1cmUgdGhhdCBleGl0IGNvZGUgMCBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgaXMKICAgc3VjY2Vzc2Z1bCBhbmQgdGhhdAogICBleGl0IGNvZGUgMSBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUgY2hlY2sgZmFpbGVkLgogICAtIE1hZGUgIm1ha2VmaWxlY2hlY2siIHNraXAgU3VidmVyc2lvbiBib29ra2VlcGluZyBmaWxlcyBhbmQgYWxzbwogICB0aGUgbWFrZWZpbGUKICAgdGhhdCBjb250YWlucyAibWFrZWZpbGVjaGVjayIuCgoyMDEwLTAzLTIyIDE2OjEwICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIEZpeCB0eXBvIGluIGRlZmF1bHQgSXBBZGRyZXNzIHZhbHVlCiAgIChTZWUgQnVnICMyOTcyMTQxKQoKMjAxMC0wMy0yMiAxNTo0NCAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9jYWxsYmFjay5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgY2hhbmdlIGFsbCBhc3NlcnQoKSB0byBuZXRzbm1wX2Fzc2VydCgpOyBhZGQgYXNzZXJ0Y2hlY2sgdG8gdG9wCiAgIGxldmVsIG1ha2VmaWxlCgoyMDEwLTAzLTIyIDE1OjI0ICBidmFzc2NoZQoKICAgKiBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MzQ5OiBhZGRlZCBtaXNzaW5nIGNvbW1hIHN1Y2ggdGhhdCBpdCBpcyBhZ2FpbgogICBwb3NzaWJsZSB0byBjb21waWxlIFVDRC1ESVNLSU8tTUlCLgoKMjAxMC0wMy0yMiAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEZpeCBidWlsZCB3aGVuIE1JQiBsb2FkaW5nIGlzIGRpc2FibGVkIChicm9rZW4gYnkgU1ZOIHJldmlzaW9uCiAgIDE4MzQxKQogICBSZXBvcnQgZGVmYXVsdCBNSUIgcGF0aCBmb3IgY2xpZW50IGFwcHMgdG9vLgoKMjAxMC0wMy0yMiAxMzo1OSAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wX3RpbWVvdXQuMzoKCiAgIENIQU5HRVM6IG1hbjogQlVHOiAyOTcyODYwOiBVcGRhdGUgYnJva2VuIHJlZmVyZW5jZXMKCjIwMTAtMDMtMjIgMTM6NDkgIGR0czEyCgogICAqICBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwgICAKICAgICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogQlVHOiAyOTczODkwOiBGaXggaW1wb3J0cywgRGlza0lPRW50cnkgbGlzdCBhbmQKICAgcmV2aXNpb24gaGlzdG9yaWVzCgoyMDEwLTAzLTIyIDExOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBXaW4zMiwgd2luRXh0RExMOiBzb2x2ZWQgdGhlIG15c3Rlcnkgb2YgIkFTTiB0eXBlIHplcm8iLiBUaGUKICAgd2luRXh0RExMIGNvZGUgZG9lcyBub3cgbm8gbG9uZ2VyIHRyaWdnZXIgY29udmVyc2lvbnMgb2YgV2luZG93cwogICBBU04gdmFyYmluZHMgd2l0aCBBU04gdHlwZSB6ZXJvLiBOb3RlOiB0aGlzIGNvZGUgY2hhbmdlIGRvZXMgbm90CiAgIGNoYW5nZSB0aGUgYWdlbnQgYmVoYXZpb3IuCgoyMDEwLTAzLTIwIDIwOjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaDoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCgoyMDEwLTAzLTIwIDIwOjIwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBBZGRlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCAoc2hvdWxkIGhhdmUgYmVlbiBhZGRlZCBpbiB0aGUKICAgcHJldmlvdXMgY29tbWl0KS4KCjIwMTAtMDMtMjAgMTk6MzYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAKICAgICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoCiAgIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbgogICBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdAogICBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgIEFsc28sIGZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgKG1vc3RseSBjaGFyICogPD4gdV9jaGFyICoKICAgbWlzbWF0Y2hlcykgYW5kIHJlbW92ZWQgc29tZSBjYXN0cy4KCjIwMTAtMDMtMjAgMTk6MTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IGdjYyAoTWluR1cpLgoKMjAxMC0wMy0yMCAxOTowNSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzaWdwcm9jbWFzay4KCjIwMTAtMDMtMjAgMDk6MTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgUmVmYWN0b3Jpbmc6IG1vdmVkIGR1cGxpY2F0ZWQgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uLgoKMjAxMC0wMy0xOSAyMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcG9ydCBNSUIgYW5kIGNvbmZpZyBkaXJlY3RvcmllcyBzZWFyY2ggcGF0aHMgb24gZXJyb3JzCiAgIChhbmQgaW4gdGhlIGhlbHAgbWVzc2FnZSkKCjIwMTAtMDMtMTkgMTM6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IGlzIGxvZ2dlZCB3aGVuCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaXMgYXR0ZW1wdGVkIG1vcmUgZGV0YWlsZWQuCiAgIAogICBBbiBleGFtcGxlOgogICAoYmVmb3JlKQogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIChtaWJJSS9zbm1wLAogICBDOlxXSU5ET1dTXFN5c3RlbTMyXHNubXBtaWIuZGxsKQogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCiAgIChhZnRlcikKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbjogTUlCIG1vZHVsZXMgbWliSUkvc25tcCBhbmQKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCAob2lkIC4xLjMuNi4xLjIuMS4xMSkuCiAgIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxlZC4KCjIwMTAtMDMtMTkgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbXVsdGlwbGUgdmFyYmluZCBzZXQgcmVxdWVzdHMgYXJlIG5vdwogICBwcm9jZXNzZWQgY29ycmVjdGx5LgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtYWRlIGVycm9yIGNvZGVzIGluIFNOTVAgcmVzcG9uc2UgUERVcwogICBhcyBSRkMtY29tcGxpYW50IGFzIHBvc3NpYmxlLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBpZiBsb2FkaW5nIGFuIGV4dGVuc2lvbiBETEwgZmFpbHMsIHRoZQogICByZWFzb24gd2h5IGxvYWRpbmcgZmFpbGVkIGlzIG5vdyBsb2dnZWQuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdGhhdCBvY2N1cnJlZCB3aGVuCiAgIFNubXBFeHRlbnNpb25RdWVyeShFeCkgZmFpbGVkLiBUaGlzIG1lbW9yeSBsZWFrIGhhcyBiZWVuIGZvdW5kCiAgIHZpYSBzb3VyY2UgcmVhZGluZy4gTm90ZTogaXQgaXMgbm90IGNsZWFyIHdoZXRoZXIgaXQgd2FzIHBvc3NpYmxlCiAgIHRvIHRyaWdnZXIgdGhpcyBtZW1vcnkgbGVhay4gVGhpcyBsZWFrIGlzIGNlcnRhaW5seSBub3QgdHJpZ2dlcmVkCiAgIGJ5IGV2ZXJ5IHJlcXVlc3QgZm9yIHdoaWNoIGEgcmVzcG9uc2Ugd2l0aCBub24temVybyBlcnJvciBzdGF0dXMKICAgaXMgc2VudCBiYWNrLgoKMjAxMC0wMy0xOCAxNjoyOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAga2VlcCBjb3VudCBvZiBlbmFibGVkIGxvZ3M7IHVzZSB0aGlzIGNvdW50IHRvIGRldGVybWluZSB3aGVuIHRvCiAgIGxvZyB0byBzdGRlcnIKCjIwMTAtMDMtMTggMTY6MjggIHJzdG9yeQoKICAgKiAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgc25tcCB0b2tlbiBsb2dPcHRpb24gYWxsb3dzIHNwZWNpZnlpbmcgbG9nCiAgIGRlc3RpbmF0aW9ucyB2aSBjb25mIGZpbGVzCiAgIC0gaWYgc3RkZXJyIGxvZyBlbmFibGVkIGJlY2F1c2Ugb2Ygbm8gbG9nIGRlc3RpbmF0aW9uLCB0dXJuIGl0CiAgIG9mZiB3aGVuIGEKICAgbG9nIGRlc3RpbmF0aW9uIGlzIGVuYWJsZWQKICAgLSBkb24ndCBjYWxsIG5ldHNubXBfZW5hYmxlX3N0ZGVycmxvZygpIGZyb20gYXBwcyBhbnltb3JlCgoyMDEwLTAzLTE4IDE1OjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICB1ZHAgdHJhbnNwb3J0IGluaGVyaXRhbmNlIHR3ZWFrcwogICAtIG1vdmUgYmFzaWMgdWRwIHJlY3Zmcm9tL3NlbmR0byBjb2RlIGZyb20gVURQRG9tYWluIHRvCiAgIFVEUEJhc2VEb21haW4KICAgLSB0d2VhayB1cGQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzdGlvbgogICAtIHR3ZWFrIHVkcGlwdjQgcmVjdmZyb20vc2VuZHRvIHRvIGNhbGwgdWRwYmFzZSB2ZXJzaW9uCiAgIC0gYWxzbyBmaXhlZCBuZXRzbm1wX2lwdjRfKiAtPiBuZXRzbm1wX3VkcGlwdjRfKgogICAtIHR3ZWFrIERUTFNVRFBEb21haW4gb3QgdXNlIHVkcGJhc2VfKiBpbnN0ZWFkIG9mIHVkcF8qCgoyMDEwLTAzLTE4IDE1OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwcm90ZWN0IGNlcnQgaGVhZGVyIGFuZCBpbml0IGNhbGwgd2l0aCBpZmRlZnMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgdXNlIG5ldyB1dGlsaXR5IHJvdXRpbmUgZm9yIGNlcnQgbmFtZXMKCjIwMTAtMDMtMTcgMTk6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW92ZSBzbm1wX29wZW5zc2wgaGVhZGVyIGFmdGVyIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGFkZCByb3V0aW5lcyB0byBwdWxsL2R1bXAgbmFtZXMgZnJvbSBYNTA5IGNlcnRzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBlbnVtIGxpc3RzIHRvIG1hbmFnZSBkaXJlY3RvcnkgaW5kZXhlcwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBpbml0aWFsaXplIHN0YXRpYyBzdG9yYWdlIGJlZm9yZSB1c2U7IHByb3RlY3QgZW51bSBpbml0IGZyb20KICAgbXVsdGlwbGUgY2FsbHMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCBpbmZvIGFib3V0IG5ldyB0c20vdGxzIG1pYnMKCjIwMTAtMDMtMTcgMTg6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY2VydCBpbml0IHRvIHNubXAgaW5pdAoKMjAxMC0wMy0xNyAxMzozNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgVXBkYXRlZCBNSUIgcmV2aXNpb24gaGlzdG9yeS4KCjIwMTAtMDMtMTcgMTM6MjkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBvbmUgbGVhay1hdC1leGl0LgoKMjAxMC0wMy0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBCVUc6IDI5NzEyNTc6IEZpeGVkIHdpbkV4dERMTCBoYW5kbGluZyBvZiBtdWx0aS12YXJiaW5kCiAgIGdldE5leHQgcmVxdWVzdHMgd2l0aCBPSURzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgoKMjAxMC0wMy0xNyAxMDoyNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNb3JlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgdHVuaW5nLgoKMjAxMC0wMy0xNiAxOTozMSAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgQ29tcGlsZXMgbm93IHdpdGggTUlCIGNvbXBpbGVycyB0aGF0IGRvIG5vdCByZWNvZ25pemUgYSBkb3VibGUKICAgZGFzaCBhcyB0aGUgZW5kIG9mIGEgTUlCIGNvbW1lbnQuCgoyMDEwLTAzLTE2IDE5OjI3ICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgRml4ZWQgdHdvIHN5bnRheCBlcnJvcnMuCgoyMDEwLTAzLTE2IDE5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgYnVnIGluIGdldE5leHQgaGFuZGxpbmcgdGhhdAogICBjb3VsZCBjYXVzZSB0aGUgTUlCIG91dHB1dCB0byBiZSB0cnVuY2F0ZWQuCgoyMDEwLTAzLTE2IDE4OjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE1hZGUgd2luRXh0RExMIGRlYnVnIG91dHB1dCBtb3JlIGRldGFpbGVkLgoKMjAxMC0wMy0xNiAxNToyNCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaDoKCiAgIE1hZGUgc3VyZSB0aGF0IEMrKyBwcm9ncmFtcyB0aGF0IGluY2x1ZGUgTmV0LVNOTVAgaGVhZGVyIGZpbGVzCiAgIGNvbXBpbGUgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjIwICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCAtLWRpc2FibGUtZGVwcmVjYXRlZCBhZ2Fpbi4KCjIwMTAtMDMtMTUgMDc6MTkgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgRGlzYWJsZSBhbGwgdGhlIHByaW50aW5nIGlmIGRlYnVnIG91dHB1dCBpcyBvZmYuCgoyMDEwLTAzLTE1IDAwOjE3ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNSAwMDowNyAgdGFuZGVycwoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyByZWdhcmRpbmcgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMy0xNCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgbWFrZSBzdXJlIGhlYWRlciBpZmRlZiBuYW1lIGlzIHVuaXF1ZQoKMjAxMC0wMy0xNCAyMTowNCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBhZGQgbWlzc2luZyBpbml0L3NodXRkb3duIHByb3RvdHlwZXMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTAzLTE0IDIxOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIG1vdmUgZGVidWcgbWVzc2FnZSBlYXJsaWVyCgoyMDEwLTAzLTE0IDIxOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXRzbm1wX2luaXRfY29udGFpbmVyOyBmaXggY29tcGxlciB3YXJuaW5nCgoyMDEwLTAzLTE0IDIwOjUxICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENvcnJlY3QgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuIGFuZCBuZXRzbm1wX2Fzc2VydF9vcl9tc2dyZXR1cm4KICAgZm9yIHRoZSBORVRTTk1QX05PX0RFQlVHR0lORyBjYXNlCgoyMDEwLTAzLTE0IDE5OjEwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVuYW1lIGNlcnQgaW5pdC9zaHV0ZG93biBmdW5jczsgb25seSBjb21waWxlIGNlcnRfdXRpbHMgaWYKICAgdXNpbmcvaGF2ZSBTU0w7IGluaXQgY2VydHMgZnJvbSB0bHMgYmFzZQoKMjAxMC0wMy0xNCAxOTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjYWxsIG5ldHNubXBfaW5pdF9vcGVuc3NsIGluc3RlYWQgb2YgbmV0c25tcF9pbml0X3Rsc2Jhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBvYmplY3RzIGluIHZlcnNpb24gMDggb2YgdGhlIGR0bHMgZHJhZnQKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLCBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24sICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIsIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIGltcG9ydCBpbml0aWFsIGNvZGUgZm9yIGR0bHMgbWlicwoKMjAxMC0wMy0xNCAxOTowOCAgcnN0b3J5CgogICAqIG1pYnMvVExTVE0tTUlCLnR4dDoKCiAgIFRMU1RNLU1JQiBmcm9tIGRyYWZ0LWlldGYtaXNtcy1kdGxzLXRtLTA5LnR4dAoKMjAxMC0wMy0xNCAxNzoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBmZXcgbW9yZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTQ6MTAgIGJ2YXNzY2hlCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgRm9sbG93LXVwIGZvciByMTczODQ6IGNoYW5nZWQgTkVUU05NUF9EU19NQVhfU1VCSURTIGZyb20gNDAgdG8KICAgNDguCgoyMDEwLTAzLTE0IDEzOjUzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENoYW5nZXM6CiAgIC0gUmVtb3ZlZCAtV25vLWNoYXItc3Vic2NyaXB0cyBmcm9tIERFVkZMQUdTLiBVc2luZyBhIHZhcmlhYmxlIG9yCiAgIGV4cHJlc3Npb24gb2YKICAgdHlwZSBjaGFyIGFzIGFuIGFycmF5IGluZGV4IGlzIGFsbW9zdCBhbHdheXMgYW4gZXJyb3IuCiAgIEZ1cnRoZXJtb3JlLAogICAtV2NoYXItc3Vic2NyaXB0IGRvZXMgbm90IHRyaWdnZXIgYW55IHdhcm5pbmdzIG9uIHRoZSBOZXQtU05NUAogICBjb2RlIGJhc2UuCiAgIC0gUmVtb3ZlZCAtV2lubGluZSBmcm9tIERFVkZMQUdTLiBOb3Qgb25seSB3YXMgbm9ib2R5IHBheWluZwogICBhdHRlbnRpb24gdG8gdGhlCiAgIG1lc3NhZ2VzIHRyaWdnZXJlZCBieSAtV2lubGluZSwgYnV0IHJlY2VudCB2ZXJzaW9ucyBvZiB0aGUgZ2NjCiAgIGNvbXBpbGVyIGFyZQogICBiZXR0ZXIgdGhhbiBodW1hbnMgYXQgZGVjaWRpbmcgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBiZSBpbmxpbmVkCiAgIGFuZCB3aGljaAogICBvbmVzIG5vdC4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZXJhbiBhdXRvcmVjb25mLgoKMjAxMC0wMy0xNCAxMzozOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xNCAxMzozNiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBSZW1vdmVkIHRoZSAnMHgnIHByZWZpeCBhZ2FpbiBmcm9tIGEgZGVidWcgc3RhdGVtZW50IHRoYXQgd2FzCiAgIGludHJvZHVjZWQgaW4gcjE4MjgyLgoKMjAxMC0wMy0xMyAxOTowNyAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL0FTTi54cywgcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9wcHBvcnQuaCwgICAKICAgICAgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUKICAgcGVybCBzdWJkaXJlY3RvcnkuCiAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4KCjIwMTAtMDMtMTMgMDk6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluZSB0aGUgVExTVENQIERPTUFJTgoKMjAxMC0wMy0xMyAwMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IGlmZGVmIHR5cG8KCjIwMTAtMDMtMTIgMjA6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoYW5nZSBkZWJ1Z2dpbmcgc3ltYm9sIG5hbWVzIHRvIGEgZ2VuZXJpYyB0bHMgc3RyaW5nCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGluaXRpYWwgd29ya2luZyBTTk1QIG92ZXIgVExTIG92ZXIgVENQIGNvbm5lY3Rpb24KCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHByaW50IGEgbW9yZSBjb21wbGV0ZSBPcGVuU1NMIHN0YWNrCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCBhc3NlcnQgc3RhdGVtZW50cwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBhZGRlZCBhbiBhY2NlcHRlZF9iaW8gcG9pbnRlciBmb3IgdGhlIGJpbyBhZnRlciBTU0xfYWNjZXB0CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhZGQgdGhlIGFiaWxpdHkgZm9yIGZfY29weSBhbmQgZl9jb25maWcKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgbWlzc2luZyA7CgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZCBhIGZfY29weSBwb2ludGVyCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHJldHVybiBpbnQgbm90IGludCAqIG9uIGVycm9yCgoyMDEwLTAzLTEyIDIwOjIwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGEgZl9jb25maWcgZnVuY3Rpb24gZm9yIHRyYW5zcG9ydHMKCjIwMTAtMDMtMTIgMTE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IFBBVENIOiAyODUwMDY3OiBTdXBwcmVzcyBleHRyYW5lb3VzICJpbmRleCIKICAgaGVhZGVyIHRva2VuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IERhbiBOZWxzb24KCjIwMTAtMDMtMTIgMTE6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YKICAgZ2V0dWxvbmdmcm9tc3lzY2xhc3NuZXRzdGF0aXN0aWNzKCkKCjIwMTAtMDMtMTEgMTY6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGZvcm1hdCBvZiB0aGUgLWUvLUUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgoyMDEwLTAzLTExIDE2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAoYWJhbmRvbmVkKSAnZGF0YXNldDInIGhlbHBlci4KCjIwMTAtMDMtMTEgMTU6NTkgIGR0czEyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBEb24ndCBpbml0aWFsaXNlIHRoZSBUTFMgdHJhbnNwb3J0IHVubGVzcyBpdCdzIGFjdHVhbGx5IGJlZW4KICAgY29uZmlndXJlZCBpbi4KCjIwMTAtMDMtMTEgMTU6NDcgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICB1c2UgU05NUF9UTVBESVIgaW5zdGVhZCBvZiBUTVBESVIKCjIwMTAtMDMtMTEgMTU6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHF1ZXJ5IHJpZ2h0IGJvb2wgKHRzbSBwcmVmaXggaXMgbGliIGJvb2wsIG5vdCBhcHApCgoyMDEwLTAzLTExIDE1OjA4ICBkdHMxMgoKICAgKiAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjk1MjAzNDogUmV0dXJuIG9mIHRoZSBHcmVhdCBTdVNFICdzcHJpbnRmJwogICBIdW50Li4uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxNDo1NSAgZHRzMTIKCiAgICogbG9jYWwvdHJhcHRvZW1haWw6CgogICBDSEFOR0VTOiBQQVRDSDogMjkzNzk5NjogQWRkIERhdGU6IGhlYWRlciB0byBlbWFpbCBzZW5kIGJ5CiAgIHRyYXB0b2VtYWlsCgoyMDEwLTAzLTExIDE0OjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY3NDAwOiBSZXRyaWV2ZSBlcnJvciBjb3VudGVycyBmb3IgdGhlCiAgIEV0aGVyTGlrZS1NSUIKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMuCgoyMDEwLTAzLTExIDE0OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5Njg2NDI6IENhdGNoIG92ZXJmbG93IG9mIHBhc3MtdGhyb3VnaAogICBjb21tYW5kIGJ1ZmZlci4KICAgUGF0Y2ggZnJvbSBBbmRyZWFzIEphZWdlci9MZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTI6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTU2NjU3OiBIYW5kbGUgb3Zlci1sZW5ndGggQWdlbnRYIE9JRHMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFJvYiBXZXN0CgoyMDEwLTAzLTExIDEyOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBkZWJ1ZyBwYXJhbWV0ZXIuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmM6CgogICBQcm92aWRlIG1pc3NpbmcgKGR1bW15KSByZXR1cm4gdmFsdWUsIHRvIHN1cHByZXNzIGNvbXBpbGVyCiAgIHdhcm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3Mgb2YgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93LgogICBUaGlzIGRvZXNuJ3QgX2FjdHVhbGx5XyBwcm90ZWN0IGFnYWluc3Qgc3VjaCBhbiBvdmVyZmxvdywKICAgc2luY2UgdGhlIHRhcmdldCBidWZmZXIgaXMgbm9uLWVtcHR5LCBzbyBzdHJuY2F0IGNhbid0CiAgIHVzZSBpdCBhbGwgYW55d2F5LiBCdXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgbWlzbGVhZCB0aGUKICAgY29tcGlsZXIgc3VmZmljaWVudGx5IHRvIHNodXQgaXQgdXAhCiAgIAogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTE6NTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgUmVwbGFjZSBiYWNrcXVvdGUgd2l0aCBzaW5nbGUgcXVvdGUgaW4gY29uZmlndXJlIG91dHB1dCBtZXNzYWdlLgogICBXaGlsZSB0aGlzIGNoYW5nZSBpcyBwcm9iYWJseSBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBpdCBmZWVscwogICBzZW5zaWJsZSB0byBhdm9pZCB0aGlzIHBhcnRpY3VsYXIgdXNlIG9mIGJhY2txdW90ZXMsIEp1c3QgSW4KICAgQ2FzZS4KICAgU2VlIGRpc2N1c3Npb24gaW4gUGF0Y2ggIzI5NTIxNjkKCjIwMTAtMDMtMTEgMTE6NDMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjk1MjE0MDogT3ZlcmZsb3cgY291bnRlcjMyIGFuZCBnYXVnZTMyCiAgIG9uIDY0Yml0IHN5c3RlbXMgY29ycmVjdGx5CiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMTozNiAgZHRzMTIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyOTUyMDIwOiBFeHBsaWNpdGx5IHNldCBwZXJtaXNzaW9uIG9uCiAgIHRlbXBvcmFyeSB0ZXN0aW5nIG91dHB1dCBkaXJlY3Rvcmllcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvLgoKMjAxMC0wMy0xMSAxMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTA4NDU6IEZpeCBpZkhpZ2hTcGVlZCBjYWxjdWxhdGlvbgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMDg6MjYgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL09JRC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9PSUQvT0lELnhzLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBNYWRlIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIG1vZHVsZSBOZXRTTk1QLnBtIG9uIFdpbmRvd3MgbW9yZQogICBzaWxlbnQ6IGFkZGVkIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MgYW5kIG1hZGUgc3VyZSB0aGF0ICNpbmNsdWRlCiAgIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gb2NjdXJzIGJlZm9yZSBhbnkgb3RoZXIgaW5jbHVkZSBmaWxlCiAgIHRoYXQgZGVmaW5lcyBfV0lOMzJfV0lOTlQuCgoyMDEwLTAzLTEwIDIzOjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNyZWF0ZSBpbmRleGVzIGZvciBjZXJ0aWZpY2F0ZXMgaW4gY29uZmlnIHBhdGgKCjIwMTAtMDMtMTAgMTg6NDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYzoKCiAgIEFkZGVkICIjaW5jbHVkZSA8dW5pc3RkLmg+IiBzdWNoIHRoYXQgb24gVW5peCBzeXN0ZW1zIHRoZQogICBjb21waWxlciBkb2VzIG5vdCBwcmludCBhIHdhcm5pbmcgYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvcgogICB0aGUgZnVuY3Rpb24gY2xvc2UoKS4KCjIwMTAtMDMtMTAgMTg6MzAgIHJzdG9yeQoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS42LmRldgoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBDSEFOR0VTOiBidWlsZGluZzogdXBkYXRlIFZlcnNpb24tTXVuZ2UgZm9yIHJlbmFtZWQgY29uZmlndXJlLmFjCgoyMDEwLTAzLTEwIDE4OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHNhdmUgY29uZmlndXJlIGNhY2hlIGV2ZXJ5IG9uY2UgaW4gd2hpbGUKCjIwMTAtMDMtMTAgMTY6MTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBSZW9yZGVyZWQgc29tZSBvZiB0aGUgTWFrZWZpbGUgcnVsZXMgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhlCiAgIGRpZmZzIHdpdGggbGlic25tcF9kbGwvTWFrZWZpbGUuaW4uCgoyMDEwLTAzLTEwIDE2OjEwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyLCBiYXRjaCBidWlsZGluZzogRExMIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMTAgMTY6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcgYnkgYWRkaW5nIGEgZm9yd2FyZAogICBkZWNsYXJhdGlvbiBmb3IgdGhlIGZ1bmN0aW9uIF9jYWNoZV9mcmVlKCkuCgoyMDEwLTAzLTEwIDE2OjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFdpbjMyLgoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBtaXNzaW5nIGNvbnRyaWJ1dG9ycwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBwb3RlbnRpYWwgZG91YmxlIGZyZWUgaW4gQ09OVEFJTkVSX0ZSRUUKICAgLSBhbHNvIGFkZGVkIHNldmVyYWwgY29tcGFyZSByb3V0aW5lcwoKMjAxMC0wMy0xMCAwNDoxNyAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiB3aGVuIGZyZWVpbmcgYSBjYWNoZSwgc3RvcCB0aW1lciBhbmQgY2FsbCBjYWNoZQogICBmcmVlIGZ1bmMKICAgLSBhbHNvIGFkZCBuZXRzbm1wX2NhY2hlX3JlbW92ZQoKMjAxMC0wMy0xMCAwMzo1MiAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1bmRvIGNvbW1pdCAxODIzNAoKMjAxMC0wMy0xMCAwMzo0MSAgcnN0b3J5CgogICAqICBSRUFETUUsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBNZXJnZSBicmFuY2ggJ3B1bGxtZScgb2YgLi4vdHJ1bmstc3RhZ2luZwoKMjAxMC0wMy0wOSAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICBDSEFOR0VTOiBXaW4zMjogZXhwb3J0ZWQgbmV0c25tcF9yZWFkX21vZHVsZSgpIGZyb20gbmV0c25tcC5kbGwKICAgc3VjaCB0aGF0IE5ldFNOTVAucG0gYnVpbGRzIGFnYWluLgoKMjAxMC0wMy0wOSAxNzo0NyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgU2ltcGxpZmllZCB0d28gbWFrZWZpbGVzIHVzZWQgYnkgYnVpbGQuYmF0IChXaW4zMikuCgoyMDEwLTAzLTA5IDE3OjI0ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogYnVpbGRpbmcgTmV0U05NUC5wbSBkb2VzIG5vIGxvbmdlcgogICB0cmlnZ2VyIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHJlZGVmaW5pbmcgX1dJTjMyX1dJTk5UIG5vcgogICBOVERESV9WRVJTSU9OLgoKMjAxMC0wMy0wOSAxNzoyMiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIE5ldFNOTVAucG0gbW9yZSBzaWxlbnQgYnkKICAgYWRkaW5nIHRoZSBNU1ZDIGNvbXBpbGVyIGZsYWdzIC1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKICAgLURfQ1JUX05PTlNURENfTk9fV0FSTklOR1MuCgoyMDEwLTAzLTA5IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcmVtb3ZlIGRlYnVnIG1zZyB1c2VkIGR1cmluZyBkZWJ1Z2dpbmcKCjIwMTAtMDMtMDkgMTc6MDIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCB3cmFwcGVyIC0gdGVzdGluZyByZXBvIHdyaXRlIHByaXZzCgoyMDEwLTAzLTA5IDEwOjIwICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZWQgZHVwbGljYXRlIGJ1aWxkIHJ1bGVzLiBUaGVzZSBkdXBsaWNhdGUgcnVsZXMgd2VyZQogICBoYXJtbGVzcyBidXQgdHJpZ2dlcmVkIGEgd2FybmluZy4KCjIwMTAtMDMtMDkgMDI6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkaXJlY3RvcnkgY29udGFpbmVyIGVuaGFuY2VtZW50cwogICAtIGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKICAgLSBhZGQgZmlsdGVyIGNhbGxiYWNrIHRvIGZpbHRlciBmaWxlcyByZXR1cm5lZAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIHJlbGF0aXZlIGFuZCBub3QgZnVsbCBwYXRocwogICAtIGFkZCBvcHRpb24gdG8gc29ydCByZXR1cm5lZCBsaXN0CiAgIC0gYWRkIG9wdGlvbiB0byByZXR1cm4gZW1wdHkgY29udGFpbmVyIGluc3RlYWQgb2YgTlVMTCBpZiBubwogICBmaWxlcyBmb3VuZAogICAtIGNoYW5nZSBkZWZhdWx0IGNvbnRhaW5lciBuYW1lIHRvIGRpcmVjdG9yeSB0aGF0IHdhcyBzY2FubmVkCiAgIC0gdHdlYWsgZGVidWcvbG9nIG1lc3NhZ2VzCgoyMDEwLTAzLTA4IDIzOjA3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IGRlZmluZSBhbmQgdXNlIG5ldyBORVRTTk1QX0xPR09OQ0UgbWFjcm8KCjIwMTAtMDMtMDggMjI6NDQgIHJzdG9yeQoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGNvbmYgZmlsZXMgY2FuIG5vdyBpbmNsdWRlIG90aGVyIGNvbmYgZmlsZXMKICAgLSBhbHNvIHR3ZWFrZWQgZGVidWcgdG9rZW5zIGhlcmUgYW5kIHRoZXJlCgoyMDEwLTAzLTA4IDIyOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IHR5cG8gKGNhdXNlZCBleHRlcm5hbCByZWZlcmVuY2Ugd2hlbiBEVExTVURQIGNvbmZpZ3VyZWQKICAgd2l0aG91dCBkdGxzdGNwKQoKMjAxMC0wMy0wNiAwMjoyNyAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldHNubXBfY29udGFpbmVyIGVuaGFuY2VtZW50czoKICAgLSBhZGQgZnJlZV9pdGVtIGZ1bmN0aW9uOyBkZWZhdWx0cyB0bwogICBuZXRzbm1wX2NvbnRhaW5lcl9zaW1wbGVfZnJlZQogICAtIGFkZCBDT05UQUlORVJfRlJFRV9BTEwgbWFjcm8vZnVuY3Rpb24gKGxpa2UgQ09OVEFJTkVSX0NMRUFSIGJ1dAogICBjYWxscyBjb250YWluZXIgZnJlZV9pdGVtIGZvciBlYWNoIGl0ZW0gaW4gcHJpbWFyeSBjb250YWluZXIpCiAgIC0gYWRkIGFiaWxpdHkgdG8gc2V0IG9wdGlvbnMgb24gYmluYXJ5X2FycmF5IGNvbnRhaW5lcnMKCjIwMTAtMDMtMDIgMTc6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW46CgogICBNYWRlIHN1cmUgdGhhdCB3aW4zMi9idWlsZC5iYXQgd29ya3MgYWdhaW4gYnkgYWRkaW5nIG1pc3NpbmcKICAgc291cmNlIGZpbGUgbmFtZXMuIFNvcnRlZCBzb3VyY2UgZmlsZSBuYW1lcyBhbHBoYWJldGljYWxseSB0b28uCgoyMDEwLTAzLTAyIDE2OjU0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE2NyAobWVyZ2Ugb2Ygc25tcGQgYW5kIHNubXBkc2RrIGFuZCBhbHNvIG9mCiAgIG5ldHNubXBtaWJzIGFuZCBuZXRzbm1wbWlic3Nkayk6IHRoZSBiYXRjaCBmaWxlIHdpbjMyL2J1aWxkLmJhdAogICB3b3JrcyBhZ2FpbiB3aXRoIHRoZSBQbGF0Zm9ybSBTREsgZW5hYmxlZC4KCjIwMTAtMDMtMDIgMTY6NTIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL01ha2VmaWxlLWFwcHMuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODIxNSAocmVwbGFjZWQgdGhlIG9ic29sZXRlIGNsLmV4ZSBvcHRpb24gL0dYIGJ5CiAgIHRoZSBlcXVpdmFsZW50IC9FSHNjOyBhZGRlZCAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiLCBhZGRlZAogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiBhbmQgcmVtb3ZlZCAvRnAuLi4gYW5kIC9ZWCkuCgoyMDEwLTAyLTI4IDE1OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFdpbjMyOiBmaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgcmVkZWZpbml0aW9uIG9mCiAgIF9XSU4zMl9XSU5OVCBieSBtYWtpbmcgc3VyZSB0aGF0IDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gaXMKICAgaW5jbHVkZWQgYmVmb3JlIDx3aW5kb3dzLmg+LgoKMjAxMC0wMi0yOCAxNToyNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSAvR1ggYnkgdGhlCiAgIGVxdWl2YWxlbnQgL0VIc2MuCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIgogICAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiB0byBtYWtlIGJ1aWxkaW5nIHdpdGggTVNWQyAyMDA4CiAgIG1vcmUgc2lsZW50LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVguIFRoZXNlCiAgIG9wdGlvbnMgaW5mbHVlbmNlIGhvdyBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMgYXJlIGdlbmVyYXRlZCwKICAgd2hpY2ggYXJlIG5vdCB1c2VkIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdC4gL1lYIGlzIG5vdAogICBzdXBwb3J0ZWQgYnkgTVNWQyAyMDA4LgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IHJlbW92ZWQgYSBkdXBsaWNhdGUgb2NjdXJyZW5jZSBvZgogICBzdHJ0b3VsbC5vYmouCgoyMDEwLTAyLTI4IDE0OjExICBidmFzc2NoZQoKICAgKiB3aW4zMi9Db25maWd1cmUsIHdpbjMyL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiBhcHBsaWVkIHRoZSBuZWNlc3NhcnkgY2hhbmdlcyB0bwogICB0aGUgd2luMzIvQ29uZmlndXJlIHNjcmlwdCBhbmQgd2luMzIvTWFrZWZpbGUuaW4uCgoyMDEwLTAyLTI3IDEzOjExICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsICAgCiAgICAgIHNubXBsaWIvZ2V0b3B0LmMsIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b3VsbC5jLCAgIAogICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3dpbnBpcGUuYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGRlY2xhcmVkIGFsbCBmdW5jdGlvbnMgdGhhdCBhcmUgZXhwb3J0ZWQgZnJvbSB0aGUKICAgTmV0LVNOTVAgRExMIGFzIE5FVFNOTVBfSU1QT1JULiBUaGUgcmVzdWx0IGlzIGEgbWlub3IKICAgb3B0aW1pemF0aW9uOiBjb2RlIHRoYXQgdXNlcyB0aGUgTmV0LVNOTVAgRExMIHdpbGwgbm93IGNhbGwgdGhlCiAgIERMTC1leHBvcnRlZCBmdW5jdGlvbnMgZGlyZWN0bHkgaW5zdGVhZCBvZiBpbmRpcmVjdGx5IHZpYSB0aGUKICAgc3R1YiBpbiB0aGUgaW1wb3J0IGxpYnJhcnkuCgoyMDEwLTAyLTI3IDExOjUwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBSZW1vdmVkIGEgcmVkdW5kYW50IHN0cm5jYXNlY21wKCkgZGVjbGFyYXRpb24uCgoyMDEwLTAyLTI3IDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3N0cnRva19yLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0wMi0yNyAwOTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRm9sbG93LXVwIGZvciByMTgxODkgKHJzdG9yeSk6IGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzLgoKMjAxMC0wMi0yNSAxNzo1MyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAKICAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgUmV2ZXJ0ZWQgcjE4MjA3IChkc3AvZHN3IHRvIHZjcHJvai9zbG4gY29udmVyc2lvbikgZXhjZXB0IHRoZQogICBzdXBwcmVzc2lvbgogICBsaXN0IGNoYW5nZXMuIFRoZSBnb2FsIG9mIHRoaXMgY29udmVyc2lvbiB3YXMgdHdvZm9sZDogbm90IG9ubHkKICAgdG8gYmUgYWJsZQogICB0byBsb2FkIHRoZSBwcm9qZWN0IGZpbGVzIGluIE1TVkMgMjAwMiAtIDIwMDggYnV0IGFsc28gdG8gYmUgYWJsZQogICB0byBjb21taXQKICAgY2hhbmdlcyBtYWRlIGZyb20gaW5zaWRlIHRoZSBNU1ZDIDIwMDggSURFLiBVbmZvcnR1bmF0ZWx5CiAgIGNvbnZlcnRpbmcgZHNwL2RzdwogICBmaWxlcyB0byB2Y3Byb2ovc2xuIGZpbGVzIHdpdGggTVNWQyAyMDA4IG1ha2VzIGl0IGltcG9zc2libGUgdG8KICAgbG9hZCB0aGUKICAgdmNwcm9qL3NsbiBmaWxlcyB3aXRoIGVhcmxpZXIgTVNWQyB2ZXJzaW9ucy4gV2h5IG9uIGVhcnRoIGRpZAogICBNaWNyb3NvZnQKICAgZGVjaWRlIHRvIHB1dCBhIHZlcnNpb24gbnVtYmVyIGluIFhNTCBmaWxlcyA/CgoyMDEwLTAyLTI0IDE5OjQxICBidmFzc2NoZQoKICAgKiAgd2luMzIsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIHdpbjMyL2xpYmFnZW50LCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycywgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgd2luMzIvbGlibmV0c25tcHRyYXBkLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIHdpbjMyL2xpYnNubXAsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgd2luMzIvbmV0c25tcG1pYnMsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCB3aW4zMi9zbm1wYnVsa2dldCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osIHdpbjMyL3NubXBidWxrd2FsaywgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIHdpbjMyL3NubXBkZWx0YSwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLAogICAgICAgICB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQsIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCB3aW4zMi9zbm1wbmV0c3RhdCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osIHdpbjMyL3NubXBzZXQsICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIHdpbjMyL3NubXB0YWJsZSwgICAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIHdpbjMyL3NubXB0cmFwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIHdpbjMyL3NubXB1c20sICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB2YWNtLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgd2luMzIvc25tcHdhbGssICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLnNsbiwgd2luMzIvd2luMzJkbGwuZHN3LCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICAocmV2ZXJ0ZWQpIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogY29udmVydGVkIC5kc3AvLmRzdyBmaWxlcyB0bwogICAudmNwcm9qLy5zbG4gZmlsZXMuIFRoaXMgaW1wbGllcyB0aGF0IHN1cHBvcnQgZm9yIE1TVkMgNi4wIGhhcwogICBiZWVuIGRyb3BwZWQgYW5kIHRoZSBtaW5pbXVtIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHZlcnNpb24KICAgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGlzIE1pY3Jvc29mdCBWaXN1YWwKICAgU3R1ZGlvIC5ORVQgKDIwMDIpLgoKMjAxMC0wMi0yMyAxOTowMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogd2hlbiBnZW5lcmF0aW5nIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHN5c3RlbQogICBsb2NhdGlvbiBhbmQgbm8gZG9tYWluIG5hbWUgaXMgZm91bmQgaW4gL2V0Yy9yZXNvbHYuY29uZiwgdXNlCiAgICJAbm8ud2hlcmUiIGluc3RlYWQgb2YgIiIuCgoyMDEwLTAyLTIzIDE4OjUwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIG00L2FjX3Byb21wdF91c2VyLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXMgbm8KICAgbG9uZ2VyIGludm9rZSAidGFpbCAtMSIsIHdoaWNoIGlzIG5vdCBQT1NJWC1jb21wbGlhbnQuCgoyMDEwLTAyLTIzIDE4OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBSZW1vdmVkIGFsbCB0cmFuc3BvcnQgdGVzdHMgc2luY2UgaXQncyBpbXBvc3NpYmxlIHRvIGRldGVybWluZQogICB3aGVyZSB0aGV5IGNhbiBzYWZlbHkgb3BlcmF0ZSAod2FzIHN0b3BwaW5nIHRhbmRlcnMnIG5pZ2h0bHkKICAgdGVzdHMgZnJvbSBzdWNjZWVkaW5nKQoKMjAxMC0wMi0yMyAxODo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGVycm9yIGFuZCBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdGhlIHNlcnZlciBjb250ZXh0IGdlbmVyYXRvciB0byBhY3R1YWxseSwgdW0sIHJldHVybiB0aGUKICAgY29udGV4dC4KCjIwMTAtMDItMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGluaXRpYWxpemUgdGhlICdyZXMnIHZhcmlhYmxlIHNpbmNlIGl0J3MgY2hlY2tlZAoKMjAxMC0wMi0yMyAxODozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIHByb2dyZXNzIHRvd2FyZCBhIHJlYWwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHRsc3RjcCBjdG9yIGludm9jYXRpb24KCjIwMTAtMDItMjMgMTg6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmg6CgogICByZXF1aXJlIFRMU0Jhc2UKCjIwMTAtMDItMjMgMTg6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkZWQgaG9zdCBpZGVudGlmaWVyIGFzIG91dHB1dAoKMjAxMC0wMi0yMyAxODozNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNpZ25pZmljYW50IG1vcmUgd29yayBvbiB0aGUgVExTIFRDUCBkb21haW4KCjIwMTAtMDItMjMgMTc6NDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTkzIChqc2FmcmFuZWspOiByZXJhbiBhdXRvcmVjb25mIGZvciB0aGUgdHJ1bmsKICAgYW5kIHRoZSA1LjUgYnJhbmNoLgoKMjAxMC0wMi0yMyAxNDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBORVRTTk1QX1BSSXogaW5zdGVhZCBvZiAlegoKMjAxMC0wMi0yMyAxMjoyNyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEZpeGVkIGNvbXBpbGF0aW9uIHdpdGggcnBtLTQuNi4KICAgVHVybiBvbiB0aGUgbGVnYWN5IEFQSSB3aGVuIHJwbS00LjYgaXMgZGV0ZWN0ZWQuCgoyMDEwLTAyLTIzIDA3OjM4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4MDAwIChkaXNhYmxpbmcgU0lHQUxSTSBzdXBwb3J0KSBiZWNhdXNlIHRoaXMgaW52b2x2ZXMKICAgYSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZS4KCjIwMTAtMDItMjMgMDA6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDItMjMgMDA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWJ1ZyBtc2cgdHdlYWtzOyB1c2UgbmV3IHRyYW5wb3J0IGZ1bmN0aW9ucwogICAtIGFkZCBkZWJ1ZyBoZWFkZXIgZm9yIHNubXAgdmVyc2lvbgogICAtIGFkZCBsZW5ndGggdG8gZGVidWcgc2VuZC9yZWNlaXZlIG1lc3NhZ2VzCiAgIC0gdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMgZm9yIHNlbmQvcmVjdi9maW5kaW5nIHBlZXIgYWRkcmVzcwoKMjAxMC0wMi0yMyAwMDoyNSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nLCBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kICYKICAgbmV0c25tcF90cmFuc3BvcnRfcmVjdgogICAtIG1vdmVzIHRyYW5zcG9ydCBtYW5pcHVsYXRpb24gaW50byB0cmFuc3BvcnQgY29kZQogICAtIGNlbnRyYWwgcGxhY2UgZm9yIGxvZ2dpbmcvZGVidWdnaW5nIHNlbnQvcmVjZWl2ZWQgZGF0YQoKMjAxMC0wMi0yMiAxOTozMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMiAxOToyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg2LiBSZWdyZXNzaW9uIHRlc3QgMzQgKHdoZXRoZXIgYXV0aGVudGljYXRpb24KICAgZmFpbHVyZSB0cmFwcyBhcmUgc2VudCBieSBzbm1wZCkgcGFzc2VzIG5vdyBhZ2Fpbi4KCjIwMTAtMDItMjIgMDk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWFkZSBzdXJlIHRoYXQgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHVyZSBkb2VzCiAgIG5vdCBjcmVhdGUgZGFuZ2xpbmcgcG9pbnRlcnMgaW4gdGhlIE1JQiBzdWJ0cmVlIHJlZ2lzdHJ5LgoKMjAxMC0wMi0yMiAwOToxMSAgYnZhc3NjaGUKCiAgICogYWdlbnQsIGFwcHMsIGFwcHMvc25tcG5ldHN0YXQ6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAyLTIyIDA4OjQyICBidmFzc2NoZQoKICAgKiBjb25maWd1cmU6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgbGliZWF5MzIgKE9wZW5TU0wpIGNvbmZpZ3VyZSB0ZXN0IGZvcgogICBNaW5HVy4KCjIwMTAtMDItMjIgMDg6MzEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjEzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIE1pbkdXIHdoZW4gSVB2NiBzdXBwb3J0IGlzIGVuYWJsZWQuCgoyMDEwLTAyLTIxIDE4OjU4ICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9saWJzZGxsLmRzdywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCB3aW4zMi93aW4zMmRsbC5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHJlbmFtZWQgbGlic2RsbC5kc3cgaW50byB3aW4zMmRsbC5kc3cuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCBsaW5raW5nIHRoZSBOZXQtU05NUAogICBhcHBsaWNhdGlvbnMgd2l0aCBuZXRzbm1wLmRsbCBieSBhZGRpbmcgYWxsIGFwcGxpY2F0aW9uIHByb2plY3RzCiAgIHRvIHRoZSBzYW1lIHdvcmtzcGFjZSB0aGF0IGlzIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBETEwuCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBuZXRzbm1wLmRsbCBsZXNzIGVycm9yCiAgIHByb25lIGJ5IGxldHRpbmcgdGhlIGNvbXBpbGVyIHByaW50IGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlCiAgIHByZXByb2Nlc3NvciBzeW1ib2wgTkVUU05NUF9VU0VfRExMIGhhcyBub3QgYmVlbiBkZWZpbmVkLgoKMjAxMC0wMi0yMSAxODo1MSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBBZGRlZCBsaWJzbm1wLmRlZiB0byB0aGUgbGlzdCBvZgogICBsaWJzbm1wX2RsbC5kc3Agc291cmNlIGZpbGVzIHN1Y2ggdGhhdCB0aGUgRExMIGlzIHJlYnVpbHQgd2hlbgogICB0aGUgLmRlZiBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkLgoKMjAxMC0wMi0yMSAxODo0NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfc2V0X2xpbmVfYnVmZmVyaW5nKCkgZnJvbQogICBuZXRzbm1wLmRsbC4KCjIwMTAtMDItMjEgMTc6MzkgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vcmUgV2luMzIgSVB2NiBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudHM6CiAgIC0gTW92ZWQgI3VuZGVmIEhBVkVfSUZfTkFNRVRPSU5ERVggZnJvbSBzbm1wbGliLyouYyB0bwogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC4KICAgLSBDaGFuZ2VkIHRoZSBnbG9iYWwgaW42YWRkcl9hbnkgdmFyaWFibGUgaW50byBhIHN0YXRpYyB2YXJpYWJsZQogICBzdWNoIHRoYXQKICAgbXVsdGlwbGUgZGVmaW5pdGlvbnMgZG8gbm90IHRyaWdnZXIgYSBsaW5rZXIgZXJyb3IuCiAgIC0gQWRkZWQgdHlwZWRlZnMgZm9yIHVpbnQ4X3QsIGludDhfdCwgdWludDE2X3QgYW5kIGludDE2X3QuCiAgIC0gUmVwbGFjZWQgJyNpZiBORVRTTk1QX0VOQUJMRV9JUFY2JyBieSAnI2lmZGVmCiAgIE5FVFNOTVBfRU5BQkxFX0lQVjYnLgoKMjAxMC0wMi0yMSAwODozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYzoKCiAgIG1ha2Ugc3VyZSB0aGF0IElOQUREUl9OT05FIGlzIGRlZmluZWQgKGZpeGVzIGJ1aWxkIGVycm9yIG9uCiAgIFNvbGFyaXMpCgoyMDEwLTAyLTE5IDE5OjM5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFN5bmNocm9uaXplZCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBhbmQKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTAyLTE5IDE0OjE4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDSEFOR0VTOiBXaW4zMjogbGlic25tcCBidWlsZHMgYWdhaW4gYXMgYSBETEwgd2hlbiBJUHY2IGlzCiAgIGVuYWJsZWQuCgoyMDEwLTAyLTE5IDEzOjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MTY0OiBzeW5jaHJvbml6ZWQgbGlic25tcC5kZWYuaW4gd2l0aAogICBsaWJzbm1wLmRlZgoKMjAxMC0wMi0xOSAwOTowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogYWRkZWQgI2luY2x1ZGUgPG1hbGxvYy5oPiBpbgogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQgdGhlIE1TVkMgY29tcGlsZXIKICAgZG9lc24ndCBnZXQgY29uZnVzZWQgYnkgdGhlIG1hbGxvYyByZWRlZmluaXRpb24gd2hlbiBidWlsZGluZwogICBsaWJzbm1wIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnRlZCBuZXRzbm1wX3BhcnNlX2FyZ3MoKSBzdWNoIHRoYXQgdGhlIE5ldC1TTk1QIGFwcGxpY2F0aW9ucwogICBidWlsZCBhZ2FpbiB3aGVuIGxpYnNubXAgaXMgYnVpbHQgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtb3ZlZCBNU1ZDIE9wZW5TU0wgbGlua2VyIHNldHRpbmdzIGZyb20KICAgc25tcGxpYi9rZXl0b29scy5jIHRvIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHN1Y2ggdGhhdAogICB0aGVzZSBzZXR0aW5ncyBhcmUgbm90IG9ubHkgZWZmZWN0aXZlIHdoZW4gYnVpbGRpbmcgc25tcGxpYiBhcyBhCiAgIHN0YXRpYyBsaWJyYXJ5IGJ1dCBhbHNvIHdoZW4gYW55IE5ldC1TTk1QIGFwcGxpY2F0aW9uIGlzIGJ1aWx0CiAgIHRoYXQgbGlua3Mgd2l0aCBzbm1wbGliIGFzIGEgc3RhdGljIGxpYnJhcnkgb3IgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjMyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBXaW4zMiBjbGVhbnVwOiBNU1ZDIC8gRExMIHRlc3RzIG5vdyB1c2UgdGhlIG9mZmljaWFsbHkgZW5kb3JzZWQKICAgbWFjcm8gbmFtZXMuCgoyMDEwLTAyLTE5IDA3OjUwICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBCdWlsZHMgYWdhaW4uCgoyMDEwLTAyLTE5IDA2OjQ3ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBORVdTOiBzbm1wbGliOiBQQVRDSDogMjk0Mjk0MDogZnJvbSAiQmlsbCBGZW5uZXIiOiBBZGQgYSBuZXcKICAgZnVuY3Rpb24sIG5ldHNubXBfcGFyc2VfYXJncywgdGhhdCBpcyBsaWtlIHNubXBfcGFyc2VfYXJncyBidXQKICAgdGFrZXMgYW4gYWRkaXRpb25hbCBiaXRtYXNrLCBmbGFncywgdG8gYWZmZWN0IHRoZSBiZWhhdmlvdXIuIEFsc28KICAgcmVtb3ZlIHRoZSBtYWdpYyBoYW5kbGluZyBvZiBzb21lIGFwcGxpY2F0aW9uIG5hbWVzLgoKMjAxMC0wMi0xOCAxNDoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvYmluOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0xOCAxNDoyMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBTb3J0ZWQgbmFtZXMgb2Ygc291cmNlIGZpbGVzIGFscGhhYmV0aWNhbGx5LgoKMjAxMC0wMi0xOCAxMzowMyAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIHdpbjMyL25ldHNubXBtaWJzc2RrLCAgIAogICAgICB3aW4zMi9zbm1wZHNkaywgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBkcm9wcGVkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIE5ldC1TTk1QIHdpdGgKICAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4wIHdpdGhvdXQgcGxhdGZvcm0gU0RLLiBCdWlsZGluZwogICBOZXQtU05NUCB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCArIFBTREsgb3IgYW55IGxhdGVyCiAgIHZlcnNpb24gb2YgTVNWQyBpcyBzdGlsbCBwb3NzaWJsZSBob3dldmVyLgogICAKICAgTm90ZTogaWYgaW4gdGhlIGZ1dHVyZSBmb3Igd2hhdGV2ZXIgcmVhc29uIGl0IHNob3VsZCBiZWNvbWUKICAgbmVjZXNzYXJ5IGFnYWluIHRvIGJlIGFibGUgdG8gYnVpbGQgTmV0LVNOTVAgd2l0aCBNU1ZDIHdpdGhvdXQKICAgcmVseWluZyBvbiB0aGUgcGxhdGZvcm0gU0RLIGhlYWRlcnMsIHBsZWFzZSAjaWZkZWYgb3V0IHRoZSBNSUIKICAgY29kZSB0aGF0IHJlbGllcyBvbiB0aGUgUFNESyBoZWFkZXJzIGluc3RlYWQgb2Ygc3BsaXR0aW5nIHRoZQogICB3b3Jrc3BhY2UgZmlsZXMgYWdhaW4uCgoyMDEwLTAyLTE4IDEyOjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgZG9zMnVuaXguCgoyMDEwLTAyLTE4IDA5OjQ1ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIFNvdXJjZSBjb2RlIGNsZWFudXA6CiAgIC0gTW92ZWQgZG9jdW1lbnRhdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldCBtZW1iZXJzIHRvIHRoZQogICBjb21tZW50CiAgIGJsb2NrIGp1c3QgYWJvdmUgdGhlIGRlZmluaXRpb24gb2YgdGhpcyB0eXBlLgogICAtIFJlbW92ZWQgc3VwZXJmbHVvdXMgJ2V4dGVybiAiQyInIHNwZWNpZmllcjogdGhpcyBsaW5rYWdlCiAgIHNwZWNpZmllcgogICBvbmx5IGhhcyBhbiBlZmZlY3Qgb24gZGVjbGFyYXRpb25zIG9mIHZhcmlhYmxlcyBvZiBmdW5jdGlvbnMgYW5kCiAgIG5vdAogICBvbiB0eXBlZGVmcyBvciBzdHJ1Y3QgZGVmaW5pdGlvbnMuCiAgIC0gUmFuIHRoaXMgaGVhZGVyIGZpbGUgdGhyb3VnaCBpbmRlbnQuCgoyMDEwLTAyLTE4IDA5OjI2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIENoYW5nZXM6CiAgIC0gQnVpbGRzIGFnYWluIHdpdGggTVNWQy4KICAgLSBGaXhlZCBhIGZldyBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBNU1ZDIChwYXNzaW5nIGludAogICBpbnN0ZWFkIG9mIHVfc2hvcnQgdG8gaHRvbnMoKSAvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0aGF0IHdlcmUKICAgbWlzc2luZyBiZWNhdXNlIG9mIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlcykuCgoyMDEwLTAyLTE2IDE3OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBXaW4zMjogVGhlIGhlYWRlciBmaWxlIDxzeXMvdGltZWIuaD4gaXMgbm8gbG9uZ2VyCiAgIGluY2x1ZGVkIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+LiBPcjogdGhlIGhlYWRlciBmaWxlCiAgIDxzeXMvdGltZWIuaD4gd2lsbCBoYXZlIHRvIGJlIGluY2x1ZGVkIGV4cGxpY2l0bHkgaW4gc291cmNlIGZpbGVzCiAgIHRoYXQgbmVlZCB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIGZ0aW1lKCkuCiAgIAogICBOb3RlOiBjb21wYXJlZCB0byByMTgwMjQgYW5kIGJlZm9yZSwgdGhpcyBjaGFuZ2UgZG9lcyBub3QgYWZmZWN0CiAgIEJTRCBzeXN0ZW1zIC0tIDxzeXMvdGltZWIuaD4gd2FzIG9ubHkgaW5jbHVkZWQgZnJvbQogICA8bmV0LXNubXAvdHlwZXMuaD4gb24gQlNEIHN5c3RlbXMgaW4gcmV2aXNpb25zIHIxODAyNS4ucjE4MTUyLgoKMjAxMC0wMi0xNCAxOToyOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDoKCiAgIEJ1aWxkcyBub3cgb24gRnJlZUJTRCB2ZXJzaW9uIDguMC4KCjIwMTAtMDItMTMgMjA6NTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgQWRqdXN0IHRoZSBwbGFjZW1lbnQgb2YgOydzIGluIG9yZGVyIHRvCiAgIGEpIEF2b2lkIHdhcm5pbmdzIGFib3V0IHNwdXJpb3VzIHNlbWljb2xvbnMKICAgYikgTm90IGhhdmUgdW50ZXJtaW5hdGVkIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzCgoyMDEwLTAyLTEyIDAyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogdXBkYXRlIGlubGluZSBkb2N1bWVudGF0aW9uOyBhZGQgc3RvcmFnZXR5cGUgdGVzdAogICBmb3IgY29sdW1ucwoKMjAxMC0wMi0xMiAwMTo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHR5cG8gaW4gZGVmaW5lCgoyMDEwLTAyLTEyIDAxOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGZpeCBzZWQgcHJvY2Vzc2luZyBvbiB3aGl0ZS1zcGFjZSBhZGRpbmcgc29sYXJpcyBtYWNoaW5lcwoKMjAxMC0wMi0xMCAyMzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBhZGQgdG9wIHNyY2RpciB0byBjcHAgc2VhcmNoIHBhdGgKCjIwMTAtMDItMTAgMjM6NTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGZyZWVic2QgbmVlZHMgdGltZS5oIGFib3ZlIHRpbWViLmgKCjIwMTAtMDItMTAgMjM6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgdXNlIHNlZCB3aXRoIG11bHRpcmVwbGFjZSBvbiBhIGxpbmUgdG8gZml4IHBvc3NpYmxlIHdoaXRlc3BhY2UKICAgaXNzdWUgb24gc29sYXJpcwoKMjAxMC0wMi0xMCAyMzoyMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgd29yayBmb3IgVExTIHNlcGFyYXRpb24gaW50byBzZXBhcmF0ZSBmaWxlcyB3aXRoIGEgYmFzZQogICBmaWxlCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6CgogICBtb3ZlIGJhc2UgdHJhbnNwb3J0IGNyZWF0aW9uIGZ1bmN0aW9uIG91dCBvZiBsaW51eCBpZmRlZnMKCjIwMTAtMDItMTAgMjM6MjEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBhbm90aGVyIGVycm9yIGxvZ2dpbmcgZnVuY3Rpb24KCjIwMTAtMDItMTAgMjM6MjAgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgYWRkZWQgVExTIG92ZXIgVENQCgoyMDEwLTAyLTEwIDE2OjM5ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogTGludXg6IEltcHJvdmVkIEV0aGVyTGlrZS1NSUIgc3VwcG9ydAogICBQYXRjaCBzdXBwbGllZCBieSBKb3NlZiBNb2VsbGVycwoKMjAxMC0wMi0xMCAxMDowNCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogU3VwcG9ydCBudWxsLWJ5dGVzIGluIG9jdGV0IHN0cmluZ3MKICAgUGF0Y2ggc3VwcGxpZWQgYnkgVG9tbXkgQmVhZGxlCgoyMDEwLTAyLTEwIDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmVkIFRMUyBpbmZyYXN0cnVjdHVyZSBpbnRvIGEgYmFzZSBkb21haW4gZmlsZQoKMjAxMC0wMi0xMCAwMDowNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldDYgZnVuY3Rpb25zIHRvIHRoZSBpcHY2IGJhc2UKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdoaXRlIHNwYWNlIGZvcm1hdHRpbmcKCjIwMTAtMDItMTAgMDA6MDMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHVkcF9zZW5kL3JlY3YgdG8gdWRwYmFzZQoKMjAxMC0wMi0xMCAwMDowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZSBuZXRzbm1wX3NvY2tfYnVmZmVyX3NldCBpbnRvIHNvY2tldGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBtb3ZlIGlwdjQgc3BlY2lmaWMgVURQIHRyYW5zcG9ydCBjcmVhdGlvbiB0byB1ZHBpcHY0IGJhc2UKCjIwMTAtMDItMTAgMDA6MDEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgbWFkZSBjb21tb24gZnVuY3Rpb25zIGJlIHJlZmVyZW5jZWQgZGlyZWN0bHkgYnkgdGhlIHRyYW5zcG9ydHMKICAgYW5kIHJlbW92ZWQgb3JpZ2luYWwgZnVuY3Rpb25hbGl0eTsgdGhleSB3ZXJlIHN0YXRpYyBzbyB0aGVyZSBpcwogICBubyBiYWNrd2FyZHMgY29tcGF0IGlzc3VlcwoKMjAxMC0wMi0xMCAwMDowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIHNvY2tldCBiYXNlZCBjbG9zZSB0byBhIHNvY2tldCBiYXNlZCBkb21haW4gY29tbW9uIHRvIG1hbnkKICAgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBtb3ZlIFRDUCBjb21tb24gZnVuY3Rpb25zIHRvIGEgVENQQmFzZSBkb21haW4gaW1wbGVtZW50YXRpb24KCjIwMTAtMDItMDkgMjM6NTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHdhcm5pbmcgY2xlYW51cAoKMjAxMC0wMi0wOSAyMzo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICB0bVN0YXRlUmVmZXJlbmNlIHNob3VsZCBiZSB1c2luZyB0aGUgaW5kZXhlZCBhZGRyX3BhaXIKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIG1ha2UgbmV0c25tcF9kdGxzdWRwX2Nsb3NlIG1ha2UgdXNlIG9mIG5ldHNubXBfYmFzZXVkcF9jbG9zZQoKMjAxMC0wMi0wOSAyMzo1NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBiYXNlIFVEUCBzb2NrZXQgY3JlYXRpb24gaW50byBhIGNvbW1vbiBiYXNlIGZ1bmN0aW9uIGFuZAogICBtYWRlIHVzZSBvZiBpdAoKMjAxMC0wMi0wOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaDoKCiAgIHByb3BlciBfSCBpZmRlZiBjaGVja3MKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIGFkZGVkIGEgcmF3IFVEUCBiYXNlIGRvbWFpbgoKMjAxMC0wMi0wOSAyMzo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgY3JlYXRlZCBhIFVEUCBJUHY0IGJhc2U7IG1vdmVkIGFuZCByZXVzZWQgbW9yZSBpbmZyYXN0cnVjdHVyZQoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgaXB2NCBhZGRyZXNzIGZvcm1hdHRpbmcgaW50byBzbm1wSVB2NEJhc2VEb21haW4KCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQVjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIHY2IGRvbWFpbiBpbmZyYXN0cnVjdHVyZSBmaWxlcwoKMjAxMC0wMi0wOSAyMzo1MCAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBOZXcgSVB2NCBhbmQgSVAgYmFzZSB0cmFuc3BvcnQgZmlsZXMKCjIwMTAtMDItMDkgMjM6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGRvbid0IGRvdWJsZSBpbmNsdWRlIHRyYW5zcG9ydCBtb2R1bGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0NSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGNoZWNrIGZvciBhbmQgcmVwb3J0IGNvbmZpZ19lcnJvcnMgaW4gdHJhbnNwb3J0IGhlYWRlcnMKCjIwMTAtMDItMDkgMjM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgYWxsb3cgYSBORVRTTk1QX1FVSUNLX0NIRUNLIGVudiB2YXJpYWJsZSB0byBieXBhc3MgaGVhZGVyIGNoZWNrcwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYmV0dGVyIGNvbW1lbnRzCgoyMDEwLTAyLTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGluIHRyYW5zcG9ydCBoZWFkZXJzIGZvcgogICBmb3JjZS1pbmNsdWRpbmcgb2Ygb3RoZXIgdGhpbmdzCgoyMDEwLTAyLTA5IDIzOjQxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZGVmaW5lIGEgc3RhbmRhcmRpemVkIGluZGV4ZWQgYWRkcl9wYWlyIGluc3RlYWQgb2YgdXNpbmcgb25lCiAgIGxhYmVsZWQgb25seSBmb3IgVURQIGV2ZXJ5d2hlcmUKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IHRyYW5zcG9ydCBwcmVmaXggbGlzdCBmb3IgaW5jb21pbmcgbWVzc2FnZXMKCjIwMTAtMDItMDkgMjM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcmVtb3ZlIHRoZSBzZWN1cml0eSBsZXZlbCBmcm9tIHRoZSBUU00gY2FjaGU7IHByZXZpb3VzIGV4aXN0ZW5jZQogICBmcm9tIGZyb20gYSBkcmFmdCBjb3B5IG9mIHRoZSBUU00gUkZDIGFuZCBpcyBub3cgc3RvcmVkIGVudGlyZWx5CiAgIGluIHRoZSB0bSByZWZlcmVuY2UKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IGluY29taW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBpbXBsZW1lbnQgb3V0Z29pbmcgVFNNIHByb2NlZHVyZXMgYWNjb3JkaW5nIHRvIFJGQyB0ZXh0CgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaDoKCiAgIGNyZWF0ZSBkZWZpbmVkIHNpemVkIGFycmF5IGFuZCBsZW5ndGggdmFyaWFibGUKCjIwMTAtMDItMDUgMDk6NTIgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgZmlsZWRlc2NyaXB0aW9yIGxlYWsgaW4gRXRoZXJsaWtlLU1JQiBhbmQKICAgUk1PTi1NSUIKCjIwMTAtMDItMDQgMTU6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcmVwb3J0IHJlYWwgaWZTcGVlZCBvZiBuZXR3b3JrIGludGVyZmFjZSBldmVuIGl0CiAgIGlzIGRvd24uCiAgIFNvbWUgaW50ZXJmYWNlcyBjYW4gcmVwb3J0IHRoZWlyIHJlYWwgc3BlZWQsIGV2ZW4gdGhleSBhcmUgZG93bi4KICAgQW5kIGlmIHRoZXkgY2FuJ3QsIHRoZSBmYWxsYmFjayB0byAxME1icHMgaXMgc3RpbGwgdGhlcmUuCgoyMDEwLTAyLTAxIDE0OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBGaXhlZCB0aGUgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgZmlsZQogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMuCgoyMDEwLTAyLTAxIDE0OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCB0aGUgcHJvY2VkdXJlIGZvciBidWlsZGluZwogICB3aXRoIFNOTVB2MyBzdXBwb3J0IGVuYWJsZWQgKE9wZW5TU0wpLgoKMjAxMC0wMi0wMSAxNDozNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFsbCBjYWxscyB0byBmcmVlKCkgYXJlIGludGVyY2VwdGVkIHdoZW4gYnVpbGRpbmcKICAgd2l0aCBkbWFsbG9jCiAgIHN1cHBvcnQgZW5hYmxlZC4gSW5jbHVkZWQgPGRtYWxsb2MuaD4gaW4gdGhvc2Ugc291cmNlIGZpbGVzIHdoZXJlCiAgIGl0IHdhcyBub3QKICAgeWV0IGluY2x1ZGVkLCBhbmQgcHJvdmlkZWQgYSB3cmFwcGVyIGZ1bmN0aW9uIGZvciBmcmVlKCkgd2hlcmUKICAgdGhlIGFkZHJlc3Mgb2YKICAgdGhpcyBmdW5jdGlvbiB3YXMgdGFrZW4gKERtYWxsb2MgY2FuIG9ubHkgaW50ZXJjZXB0IGZyZWUoKSB3aGVuCiAgIGl0IGlzIGNhbGxlZAogICBkaXJlY3RseSBidXQgbm90IHdoZW4gaXQgaXMgY2FsbGVkIHRocm91Z2ggYSBmdW5jdGlvbiBwb2ludGVyKS4KCjIwMTAtMDItMDEgMTA6NDkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBCdWlsZGluZyBOZXQtU05NUCB3aXRoIGRtYWxsb2Mgc3VwcG9ydCBlbmFibGVkIGlzCiAgIGFnYWluIHBvc3NpYmxlLgoKMjAxMC0wMi0wMSAwMTowNSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiAnbWFrZSB0ZXN0IFRFU1RPUFRTPSItUCB0Y3AiJyB3b3JrcyBmaW5lIG5vdwoKMjAxMC0wMS0zMSAwODowMiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzI6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgYW4gc2ggc3ludGF4IGVycm9yIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0CiAgIHRoYXQgd2FzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdpdGhvdXQgbGliY3J5cHRvIGFuZCB3aXRob3V0CiAgIGxpYmVheTMyLgogICBUaGUgZm9sbG93aW5nIGVycm9yIHdhcyByZXBvcnRlZDoKICAgY29uZmlndXJlWzMzMTM2XTogeDogdW5rbm93biB0ZXN0IG9wZXJhdG9yCgoyMDEwLTAxLTI5IDIwOjA3ICBqc2FmcmFuZWsKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRWxhYm9yYXRlIG9uIHJldi4gMTgwODkgYW5kIGFkanVzdCB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byB0aGUKICAgKiAgICAqcmVhbGx5IHdvcmtpbmcgb25lKi4gIDIwMTAtMDEtMjkgMTk6MTEgIGpzYWZyYW5lawoKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgRml4IHRlc3QgMzUgd2hlbiBjb25maWd1cmUgb3B0aW9uICctLXdpdGgtdGVtcC1maWxlLXBhdHRlcm4nIHdhcwogICB1c2VkIGFuZCB0aGUgZGlyZWN0b3J5IGZvciB0ZW1wLiBmaWxlcyBkb2VzIG5vdCBleGlzdCB5ZXQuCgoyMDEwLTAxLTI5IDE1OjA3ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvY2xvc2VkaXIuYywgICAKICAgICAgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYywgc25tcGxpYi9vcGVuZGlyLmMsIHNubXBsaWIvcmVhZGRpci5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgTW92ZWQgdGhlIHNvdXJjZSBjb2RlIG9mIHRoZSBvcGVuZGlyKCksIHJlYWRkaXIoKSwgY2xvc2VkaXIoKSBhbmQKICAgZ2V0dGltZW9mZGF5KCkgcmVwbGFjZW1lbnRzIGZvciBNU1ZDIGZyb20gc25tcGxpYi9zeXN0ZW0uYyB0bwogICBzZXBhcmF0ZSBzb3VyY2UgZmlsZXMgaW4gc25tcGxpYi4KCjIwMTAtMDEtMjkgMDg6NTcgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDb25maWd1cmUgc2NyaXB0IGNvbnNpc3RlbmN5IGltcHJvdmVtZW50OiByZW5hbWVkIHRoZSB2YXJpYWJsZQogICAic2F2ZWRfTElCUyIgaW50byAibmV0c25tcF9zYXZlX0xJQlMiLgoKMjAxMC0wMS0yOSAwNjozOSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IENoZWNrIHRoZSBzaXplIG9mIHN1bl9wYXRoIGFuZCB1c2UgdGhhdCB0bwogICBnZW5lcmF0ZSB0aGUgbWF4aW1hbCBzaXplIHN0cmluZ3MgZm9yIHN0cmVzc2luZyBjb20yc2VjdW5peC4KCjIwMTAtMDEtMjcgMTU6MTYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIE5FV1M6IE1pbkdXOiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3Qgc3VpdGUgaXMgYWdhaW4gcG9zc2libGUKICAgKCdtYWtlIHRlc3QnKS4KCjIwMTAtMDEtMjcgMTQ6NDMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBDeWd3aW46IGJ1aWxkaW5nIHdpdGggYW5vdGhlciBPcGVuU1NMIHBhY2thZ2UgdGhhbiB0aGUKICAgQ3lnd2luLXByb3ZpZGVkIHBhY2thZ2VzIG9wZW5zc2wgYW5kIG9wZW5zc2wtZGV2ZWwgaXMgYWdhaW4KICAgcG9zc2libGUuCiAgIE5FV1M6IE1pbkdXOiBidWlsZGluZyB3aXRoIE9wZW5TU0wgd29ya3MgYWdhaW4uCgoyMDEwLTAxLTI2IDIxOjI3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgY29udGV4dCBhcmd1bWVudCBvZiBzZW5kX3YzdHJhcCwKICAgc2VuZF90cmFwX3ZhcnNfd2l0aF9jb250ZXh0IGFuZCBuZXRzbm1wX3NlbmRfdHJhcHMgcmVmZXIgdG8gYQogICBjb25zdCBjaGFyKi4KCjIwMTAtMDEtMjYgMjE6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzoKCiAgIENvcnJlY3QgbWlzc3BlbGxpbmcgLSAjZWxzaWYgdG8gI2VsaWYKCjIwMTAtMDEtMjYgMjE6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQXBwYXJlbnRseSBub3QgYWxsIHN5c3RlbXMgZGVmaW5lIElORVRfQUREUlNUUkxFTiBzbyBhZGQgaXQgaWYgaXQKICAgaXMgbWlzc2luZy4KCjIwMTAtMDEtMjYgMTU6NDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBBZGRlZCBuZXRzdGF0IHBhdGggZm9yIE1pbkdXLgoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmaXggc3RhdCBuYW1lcwoKMjAxMC0wMS0yNiAxNTowMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1cGRhdGUgY29tbWVudHMgdG8gcmVmbGVjdCBSRkM1NTkxIGFzIHRoZSBkb2N1bWVudCBkZXNjcmliaW5nIHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMS0yNiAxMTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmg6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogYnl0ZSBvcmRlciBvZiB1ZHBMb2NhbFBvcnQgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDEwLTAxLTI2IDEwOjQ2ICBidmFzc2NoZQoKICAgKiAgbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBORVdTOiBDeWd3aW46IEJVRzogMjkzOTE2ODogZml4ZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSAoIm1ha2UKICAgdGVzdCIpLiBUaGlzIGhhcyBiZWVuIGZpeGVkIGJ5IHVzaW5nIHRoZSBwcm9wZXIgZW52aXJvbm1lbnQKICAgc2VwYXJhdG9yIGNoYXJhY3RlciBhbmQgYnkgYWRkaW5nIHRoZSBwYXRoIG9mIHRoZSBuZXRzdGF0CiAgIGV4ZWN1dGFibGUgZm9yIEN5Z3dpbiBpbiB0ZXN0aW5nL1RFU1RDT05GLnNoLgoKMjAxMC0wMS0yNiAwOToyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiByZWFkaW5nIFJQTQogICBkYXRhYmFzZS4KICAgT2xkIHJwbSB2ZXJzaW9ucyByZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEhlYWRlciB3aGVuIGFub3RoZXIgUlBNCiAgIGluc3RhbmNlIGhvbGRzCiAgIGRhdGFiYXNlIGxvY2tzLiBJLmUuIHNubXBkIHNvbWV0aW1lcyBjcmFzaGVzIHdoZW4gcmVhZGluZwogICBocl9zd0luc3QgYW5kIHJwbSBpcwogICBpbnN0YWxsaW5nL3VwZGF0aW5nL3JlbW92aW5nIGFub3RoZXIgcGFja2FnZS4gQXMgYSBzb2x1dGlvbiwKICAgd2hvbGUgUlBNIGNhY2hlCiAgIGlzIHRocm93biBhd2F5IGFuZCByZS1yZWFkIHdoZW4gd2UgZ290IGFuIGVycm9yIGZyb20gbGlicnBtLiBUaGUKICAgd2hvbGUgcHJvY2VzcwogICBpcyByZXN0YXJ0ZWQgb25seSB0aHJlZSB0aW1lcywgdG8gcHJldmVudCBlbmRsZXNzIGxvb3AuCgoyMDEwLTAxLTI1IDIyOjE2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogRG8gbm90IGNoZWNrIGlmIHZhbHVlcyBvZiB0eXBlIHNpemVfdAogICBhcmUgbGVzcyB0aGFuIDAuCgoyMDEwLTAxLTI1IDIyOjExICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBDaGVjayB0aGUgcmFuZ2Ugb2Ygb2lkIHZhbHVlcyB0b3dhcmRzIHRoZSBtYXhpbXVtCiAgIG9pZCB2YWx1ZSwgbm90VUxPTkdfTUFYCgoyMDEwLTAxLTI1IDIwOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIG9ubHkgYmFpbCBvbiBtaXNzaW5nIGxpYmlwaGxwYXBpIGZvciB4d2luc29jazIKCjIwMTAtMDEtMjUgMTk6NTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVuYW1lIE1BWF9TVEFUUyB0byBORVRTTk1QX1NUQVRfTUFYX1NUQVRTCgoyMDEwLTAxLTI1IDE5OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYzoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljczsgY2hlY2sgZm9yIGluZGV4CiAgIG92ZXJmbG93CgoyMDEwLTAxLTI1IDE5OjQ0ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuaDoKCiAgIHVwZGF0ZSBmb3IgbmV3IHBhdGggdG8gc25tcF9nZXRfc3RhdGlzdGljcwoKMjAxMC0wMS0yNSAxNjowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1c2UgKmN1cnJlbnQqIGNvcHkgb2YgdGhlIE1JQiB3aGVuIGdlbmVyYXRpbmcgc3RhdHMKCjIwMTAtMDEtMjUgMTY6MDEgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaDoKCiAgIG1vdmUgc25tcF9nZXRfc3RhdGlzdGljIGhlbHBlciB0byBoZWxwZXJzIGRpcjsgdXBkYXRlIGFsbF9oZWxwZXJzCiAgIGhlYWRlcgoKMjAxMC0wMS0yNSAxNDozNCAgYnZhc3NjaGUKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBSZXBsYWNlZCBleHBsaWNpdCBkZWNsYXJhdGlvbnMgb2Ygb3B0aW5kLCBvcHRvcHQgYW5kIG9wdGFyZyBieQogICAjaW5jbHVkZSA8dW5pc3RkLmg+IGJlY2F1c2UgZXhwbGljaXRseSBkZWNsYXJpbmcgdGhlc2UgdmFyaWFibGVzCiAgIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggQ3lnd2luLgoKMjAxMC0wMS0yNSAxNDoyNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBORVdTOiBDeWd3aW46IElQdjYgaXMgb25seSBzdXBwb3J0ZWQgdW5kZXIgQ3lnd2luIDEuNyBvciBsYXRlci4KICAgVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiBvZiBJUHY2IHN1cHBvcnQgaW4gTmV0LVNOTVAgdW5kZXIgQ3lnd2luCiAgIGludm9sdmVkIGEgc3RyYW5nZSBtaXh0dXJlIG9mIEN5Z3dpbiBhbmQgV2luc29jazIgc29ja2V0IGNhbGxzLAogICB3aGljaCB3YXMgdG9vIGhhcmQgdG8gbWFpbnRhaW4uCiAgIE5FV1M6IEN5Z3dpbjogYnVpbGRzIGFnYWluIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQKICAgKC0tZW5hYmxlLWlwdjYpLiBBdCBsZWFzdCBOZXQtU05NUCA1LjUgZG9lc24ndCBidWlsZCB1bmRlciBDeWd3aW4KICAgd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZC4gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgcmVwb3J0ZWQKICAgImNoZWNraW5nIGlwdjYgc3RhY2sgdHlwZSAuLi4gcmVzdWx0OiAidW5rbm93biwgbm8iIC4uLiBlcnJvcjoKICAgSVB2NiB0cmFuc3BvcnRzIG5vdCBhdmFpbGFibGUgaWYgSVB2NiBzdXBwb3J0IGlzIG5vdCBlbmFibGVkIi4KCjIwMTAtMDEtMjUgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBBZGRlZCBtaXNzaW5nICNpbmNsdWRlIDxzdHJpbmcuaD4uCgoyMDEwLTAxLTI1IDE0OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgdGhlIElQdjYgc3RhY2sgaW5jbHVkZWQgaW4gQ3lnd2luCiAgIHZlcnNpb24gMS43LgogICBJUHY2IHN1cHBvcnQgaXMgb25lIG9mIHRoZSBuZXcgZmVhdHVyZXMgb2YgQ3lnd2luIDEuNy4gRm9yIG1vcmUKICAgaW5mb3JtYXRpb24sCiAgIHNlZSBhbHNvIGh0dHA6Ly9jeWd3aW4uY29tL2N5Z3dpbi11Zy1uZXQvb3YtbmV3MS43Lmh0bWwuCgoyMDEwLTAxLTI1IDEyOjQwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBDeWd3aW46IHRoZSBtZXNzYWdlICJjb25maWd1cmU6IFdBUk5JTkc6IHdpbnNvY2suaDoKICAgcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiBkb2VzIG5vIGxvbmdlciBhcHBlYXIgd2hlbgogICBydW5uaW5nIHRoZSBjb25maWd1cmUgc2NyaXB0LgogICBGb2xsb3ctdXAgZm9yIHIxODA1MDogcmUtZW5hYmxlZCBsaWJpcGhscGFwaSBhbmQgaXBobHBhcGkuaCB0ZXN0cwogICBmb3Igbm9uLU1pbkdXIHBsYXRmb3JtcyBzaW5jZSB0aGUgQ3lnd2luIGJ1aWxkIG5lZWRzIHRoZXNlLgoKMjAxMC0wMS0yNSAwNzoyOCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgc25tcGxpYi9pbmV0X250b3AuYywgIAogICAgICAgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgYXV0b2NvbmYgdG8gZGVjaWRlIGlmIGluZXRfbnRvcC5jIGFuZAogICBpbmV0X3B0b24uYyBhcmUgdG8gYmUgY29tcGlsZWQuCgoyMDEwLTAxLTI1IDA3OjA5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIENIQU5HRVM6IE1pbkdXOiBzdHJ1Y3Qgc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQgY29uZmlndXJlIHRlc3QKICAgZG9lcyBub3cgd29yay4KCjIwMTAtMDEtMjUgMDU6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgVExTVE0gY291bnRlciBzdGF0cwoKMjAxMC0wMS0yNSAwNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgaW4gVFNNIG5lZWRlZCBjb3VudGVyIGRlZmluaXRpb25zCgoyMDEwLTAxLTI1IDA1OjEyICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVFNNLU1JQi50eHQsIG1pYnMvcmZjbGlzdDoKCiAgIGFkZGVkIHRoZSBTTk1QLVRTTS1NSUIKCjIwMTAtMDEtMjQgMTQ6NDMgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIE5FV1M6IHNubXBkOiBNYWRlIHN1YnRyZWVfY29udGV4dF9jYWNoZTo6Y29udGV4dF9uYW1lIGEgY29uc3QKICAgY2hhciouCgoyMDEwLTAxLTI0IDE0OjI3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvcgogICBORVRTTk1QX1JFTU9WRV9DT05TVAoKMjAxMC0wMS0yNCAxMzoyNyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBQcmVmZXIgdG8gdXNlIGEgdmFyaWFibGUgb2YgdGhlIHJpZ2h0IHR5cGUgb3ZlcgogICBhbiB1Z2x5IGNhc3QuIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIGFzIHdlbGwuCgoyMDEwLTAxLTI0IDEyOjU5ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBJbnRyb2R1Y2VkIHRoZSB2YXJpYWJsZSAnd2l0aF9zb2NrbGliJyBpbiB0aGUKICAgY29uZmlndXJlIHNjcmlwdC4gVGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiBmb3IgTWluR1cKICAgYW5kIHRvICJkZWZhdWx0IiBmb3IgYWxsIG90aGVyIHN5c3RlbXMuIFdpbnNvY2syIHRlc3RzIGFyZSBvbmx5CiAgIHJ1biBpZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byAid2luc29jazIiIChNaW5HVykuCgoyMDEwLTAxLTI0IDEyOjUzICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgZGVidWcgbG9ncy4KCjIwMTAtMDEtMjQgMTI6NDUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXhlczogZml4ZWQgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8KICAgdW5zaWduZWQgY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4OiBtYWtlIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKQogICBkZWNsYXJhdGlvbnMKICAgYXZhaWxhYmxlIHRvIHRoZSBjb21waWxlci4KCjIwMTAtMDEtMjQgMTI6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFkZSBzdXJlIHRoYXQgPHdzMnRjcGlwLmg+IHdpbGwKICAgYmUgaW5jbHVkZWQKICAgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4gc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IGNvbXBsYWluCiAgIGFib3V0IHN0cnVjdAogICBzb2NrYWRkcl9pbjYgYmVpbmcgdXNlZCBiZWZvcmUgYmVpbmcgZGVmaW5lZC4KCjIwMTAtMDEtMjQgMTE6NDIgIGJ2YXNzY2hlCgogICAqIG1hbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDEtMjQgMTE6NDEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa2dldC5jLCAgIAogICAgICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCAgIAogICAgICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgICAKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmM6CgogICBDbGVhbnVwIChXaW5kb3dzKTogcmVtb3ZlZCBzdXBlcmZsdW91cyAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAgIGRpcmVjdGl2ZXMuIFRoaXMgaGVhZGVyIGZpbGUKICAgaGFzIG9ubHkgdG8gYmUgaW5jbHVkZWQgZnJvbSBzbm1wbGliL3N5c3RlbS5jIGJlY2F1c2Ugb2YgdGhlCiAgIF9mdGltZSgpIGNhbGwgaW4gdGhhdCBmaWxlLgoKMjAxMC0wMS0yNCAxMDo0MyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBUaGUgbWFjcm8gJ0MoKScgbm93IGNhc3RzIGl0cyByZXN1bHQgZnJvbSB1bnNpZ25lZCBsb25nIHRvCiAgIHVuc2lnbmVkIGludC4KICAgVGhpcyBjaGFuZ2UgZml4ZXMgYSBjb21waWxlciB3YXJuaW5ncyBhYm91dCBmb3JtYXQgc3BlY2lmaWNhdGlvbgogICBtaXNtYXRjaGVzCiAgIGFuZCBmaXhlcyBhIGJ1ZyAoaW5jb3JyZWN0IHNubXBuZXRzdGF0IG91dHB1dCkgb24gYmlnIGVuZGlhbgogICBzeXN0ZW1zLgoKMjAxMC0wMS0yNCAxMDozMyAgYnZhc3NjaGUKCiAgICogbWFuL2NvbmZpZ19hcGkuMzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTQ2OiByZW1vdmVkIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbQogICByZXBvc2l0b3J5LgoKMjAxMC0wMS0yNCAxMDozMSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNb3ZlZCB0d28gZGVjbGFyYXRpb25zIG9mIHN0YXRpYyBmdW5jdGlvbnMgZnJvbSAuaCB0byAuYy4KCjIwMTAtMDEtMjQgMTA6MjEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cy4KCjIwMTAtMDEtMjQgMTA6MTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGJ1aWxkcyBhZ2FpbiB3aGVuIEhBVkVfR0VUQUREUklORk8gaXMgbm90CiAgIGRlZmluZWQuCgoyMDEwLTAxLTI0IDEwOjAzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2luZXRfbnRvcC5jLCAgIAogICAgICBzbm1wbGliL2luZXRfbnRvcC5oLCBzbm1wbGliL2luZXRfcHRvbi5jLCBzbm1wbGliL2luZXRfcHRvbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0cyBmb3IgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpLgogICAtIEFkZGVkIGhlYWRlciBmaWxlcyBzbm1wbGliL2luZXRfbnRvcC5oIGFuZCBzbm1wbGliL2luZXRfcHRvbi5oLgogICAtIFJlcGxhY2VkICJleHRlcm4gaW5ldF9udG9wKC4uLik7IiBhbmQgImV4dGVybiBpbmV0X3B0b24oLi4uKTsiCiAgIGJ5ICNpbmNsdWRlICJpbmV0X250b3AvcHRvbi5oIi4KICAgLSBDb252ZXJ0ZWQgc25tcGxpYi9pbmV0X250b3AuYyBhbmQgc25tcGxpYi9pbmV0X3B0b24uYyBmcm9tIEsmUgogICBDIHRvIEFOU0kgQy4KICAgLSBSZXBsYWNlZCB0aGUgaW5ldF9hdG9uKCkgY2FsbHMgdGhhdCB3ZXJlIGludHJvZHVjZWQgaW4gcjE4MDMzCiAgIGluIHNubXBsaWIvc25tcFVEUERvbWFpbi5jIGJ5IGluZXRfcHRvbigpIGNhbGxzIHN1Y2ggdGhhdCBpdCBpcwogICBhZ2FpbiBwb3NzaWJsZSB0byBidWlsZCBOZXQtU05NUCBvbiBXaW5kb3dzLgoKMjAxMC0wMS0yNCAwNjowOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucyB0aGF0IGRvbid0CiAgIGV4aXN0IG9yIGFyZSBkZWNsYXJlZCBlbHNld2hlcmUuCgoyMDEwLTAxLTI0IDA1OjQ4ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmVkIHRoZSB1bnVzZWQgdmFyaWFibGVzIHdhcm1fc3RhcnRfb2lkLAogICBsaW5rX2Rvd25fb2lkLCBsaW5rX3VwX29pZCwgYXV0aF9mYWlsX29pZCBhbmQgZWdwX3h4eF9vaWQuCgoyMDEwLTAxLTIzIDIyOjA2ICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmV0dGVyIHNldCBvZiBTS0lQSUYvU0tJUElGTk9UUwoKMjAxMC0wMS0yMyAyMDozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQmUgY29ycmVjdCBpbiB3aGF0IGl0IGlzIHRoYXQgaXMgdGVzdGVkIGluIHRoZSBoZWFkZXIuCgoyMDEwLTAxLTIzIDIwOjI3ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlZCB0aGUgY29tMnNlYyBkaXJlY3RpdmVzIHRvIGZhaWwgaWYgdGhlcmUKICAgYXJlIHRvbyBmZXcgYXJndW1lbnRzLiBBZGRpdGlvbmFsbHkgY2hhbmdlZCB0aGUgc3RvcmFnZSBzdHJ1Y3R1cmUKICAgdG8gbm90IGFsbG9jYXRlIG1vcmUgc3BhY2UgdGhhbiBuZWNlc3NhcnkuCgoyMDEwLTAxLTIzIDIwOjIyICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgbmV3IHRlc3RzIGNoZWNraW5nIHRoZSBlcnJvciBoYW5kbGluZyBvZiB0aGUgY29tMnNlYyogZGlyZWN0aXZlcwoKMjAxMC0wMS0yMyAxOToxNyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDI1OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjMgMTc6NTEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IE9TIGhlYWRlciBkZXRlY3Rpb24gY2hlY2sgaXMgbm93IHJ1biBiZWZvcmUKICAgSVB2NiBzdGFjayBkZXRlY3Rpb24uCiAgIENIQU5HRVM6IFNvbGFyaXM6IHNvY2thZGRyX2luNi5zaW42X2FkZHIgY29uZmlndXJlIHRlc3QgZG9lcyBub3cKICAgd29yay4KCjIwMTAtMDEtMjMgMTc6NDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBGaXhlZCBhIFNvbGFyaXMtc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDEtMjMgMTc6MDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIE1pbkdXOiBhZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgPHN5cy90aW1lYi5oPiBhbmQgYWxzbyBmb3Igc3RydWN0CiAgIHRpbWV6b25lLgoKMjAxMC0wMS0yMyAxNjozMiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTWluR1c6IG1hZGUgc3VyZSB0aGF0IHRoZSBJUHY2LXJlbGF0ZWQgZGF0YXR5cGVzIGFyZSBhdmFpbGFibGUKICAgYmVmb3JlIGJlaW5nIHVzZWQuCgoyMDEwLTAxLTIzIDE2OjMwICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgI3VuZGVmIEhBVkVfV0lORE9XU19ILgoKMjAxMC0wMS0yMyAxNjoyOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaW5HVzogbWFkZSBnZXR0aW1lb2ZkYXkoKSBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZQogICBjb21waWxlci4KCjIwMTAtMDEtMjMgMTY6MjYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nCiAgIHByb3RvdHlwZSBmb3IgaXNkaWdpdCgpLgoKMjAxMC0wMS0yMyAxNjoyNCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIE1pbkdXOiBpcGhscGFwaS5oIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTIzIDE1OjEwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXM6CgogICBSZW5hbWVkIHRoZSBXaW5zb2NrMiBJUHY2IHN0YWNrIGZyb20gJ21pbmd3JyBpbnRvICd3aW5zb2NrMicuCgoyMDEwLTAxLTIzIDE1OjA3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBiZXR3ZWVuIHRoZSBzdXBwb3J0ZWQgV2luMzIgY29tcGlsYXRpb24KICAgZW52aXJvbm1lbnRzIGFzIGZvbGxvd3M6CiAgIC0gTWFkZSBzdXJlIHRoYXQgdGhlIDx3aW5zb2NrMi5oPiBhbmQgPHdzMnRjcGlwLmg+IGhlYWRlciBmaWxlcwogICBhcmUgb25seSBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4KICAgLSBBZGRlZCBjb25maWd1cmUgY2hlY2sgZm9yIDxpcGhscGFwaS5oPi4KICAgLSBSZXBsYWNlZCBzZXZlcmFsIFdJTjMyIC8gY3lnd2luIHRlc3RzIGJ5IGEgSEFWRV9JUEhMUEFQSV9ICiAgIHRlc3QuCiAgIC0gRG9jdW1lbnRlZCB0aGF0IHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGlzIG9ubHkgdXNlZAogICBmb3IgdGhlIE1TVkMgYnVpbGQuCgoyMDEwLTAxLTIyIDE2OjQ2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxMDogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8KICAgNi4KCjIwMTAtMDEtMjIgMTY6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oOgoKICAgRm9sbG93IHVwIGZvciByMTgwMTY6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLgoKMjAxMC0wMS0yMiAxNDoxMyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDE2OiBtYWRlIE1pbkdXIGxpYmlwaGxwYXBpIGNoZWNrIG1vcmUgcm9idXN0LgoKMjAxMC0wMS0yMiAxMzozMiAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgYWNsb2NhbC5tNCwgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCAgIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsICAgCiAgICAgIGFwcHMvc25tcHdhbGsuYywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAKICAgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmMsICAgCiAgICAgIHNubXBsaWIvd2lucGlwZS5jLCB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBNaW5HVzogd2luRXh0RExMIGNvbXBpbGVzIG5vdyB1bmRlciBNaW5HVy4KICAgQ0hBTkdFUzogTWluR1c6IGJ1aWxkaW5nIE5ldC1TTk1QIHdvcmtzIGFnYWluLgogICAKICAgRGV0YWlsZWQgb3ZlcnZpZXc6CiAgICogQ2hhbmdlcyBpbiB0aGUgY29uZmlndXJlIHNjcmlwdDoKCiAgIC0gc29ja2V0KCkgbGlicmFyeSBjaGVjayBwYXNzZXMgYWdhaW4gb24gTWluR1cuCiAgIC0gQWRkZWQgbGlicmFyeSBjaGVja3MgZm9yIGxpYndzMl8zMiwgbGlicmVnZXggYW5kIGxpYnNubXBhcGkuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSB3aW5zb2NrMi5oIGFuZCB3czJ0Y3BpcC5oIGhlYWRlciBmaWxlcy4KICAgLSBBZGRlZCBjaGVjayBmb3IgdGhlIGNob3duKCkgYW5kIGxvY2FsdGltZV9yKCkgZnVuY3Rpb25zLgogICAtIHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNoZWNrIGRvZXMgbm93IHdvcmsgb24gTWluR1cuCiAgIC0gQWRkZWQgSVB2NiBzdGFjayB0eXBlIGNhbGxlZCAibWluZ3ciLgogICAqIFNvdXJjZSBjb2RlIGNoYW5nZXM6CgogICAtIEluY2x1ZGUgPHdpbnNvY2syLmg+IGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IGluc3RlYWQgb2YKICAgPHdpbnNvY2suaD4KICAgdW5kZXIgTWluR1cgc3VjaCB0aGF0IElQdjYgc3VwcG9ydCBpcyBhdmFpbGFibGUuCiAgIC0gTW92ZWQgI2luY2x1ZGUgPHdpbnNvY2suaD4gZnJvbSAuYyBmaWxlcyB0byA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgYSBjb3B5IG9mIHRoZSBNaW5HVyBoZWFkZXIgZmlsZSA8c25tcC5oPiAod2hpY2ggaXMgbm90CiAgIGNvcHlyaWdodGVkKQogICBhcyB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLgogICAtIGFnZW50OiBvbmx5IGNhbGwgY2hvd24oKSB3aGVuIGF2YWlsYWJsZSAoSEFWRV9DSE9XTikuCiAgICogRG9jdW1lbnRhdGlvbiBjaGFuZ2VzOiB1cGRhdGVkIFJFQURNRS53aW4zMi4KCgoyMDEwLTAxLTIyIDA4OjM0ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY2FzdCBmcm9tIGNoYXIqIHRvIGNoYXIqCgoyMDEwLTAxLTIyIDAwOjM5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQ29weXJpZ2h0IGZpbGUgdXBkYXRlIGZvciBTUEFSVEEsIEluYy4KCjIwMTAtMDEtMjIgMDA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgYWRkIHByb3BlciBwcmVmaXhlcyBpbiBUU00gZm9yIFNTSCwgRFRMUywgZXRjLCBiYXNlZCBvbiB0aGUKICAgZG9tYWluCgoyMDEwLTAxLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYWRkZWQgNS41IGJyYW5jaAoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBtaW5vciBlY2hvIG91dHB1dCBjaGFuZ2UKCjIwMTAtMDEtMjEgMjA6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNvbW1lbnQgbmV4dCB0byBjb2RlIGl0IGlzIHRhbGtpbmcgYWJvdXQ7IE5vIGNvZGUgY2hhbmdlCgoyMDEwLTAxLTIxIDE0OjU1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5MjYzNzQ6IGZyb20gRWQgU3dpZXJrOiBmaXhlZCByZWFkaW5nIG9mCiAgIGlwQWRkcmVzc1RhYmxlIGZyb20gL3Byb2MvbmV0L2lmX2luZXQ2IG9uIExpbnV4CiAgIAogICBUaGUga2VybmVsIG1pZ2h0IHByb3ZpZGUgbG9uZ2VyIGZpZWxkcywgZXNwZWNpYWxseSBvbiA2NC1iaXQKICAgc3lzdGVtcy4KCjIwMTAtMDEtMjAgMTI6NDIgIGJ2YXNzY2hlCgogICAqIFBPUlRJTkcsIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBGaXhlZCB0eXBvOiByZXBsYWNlZCAnbmVjaXNzYXJ5JyBieSAnbmVjZXNzYXJ5Jy4KCjIwMTAtMDEtMjAgMDg6NTMgIGpzYWZyYW5lawoKICAgKiBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBGaXggbWlub3IgdHlwbyBpbiBtYW4gcGFnZSwgaXQncyBzbm1wbmV0c3RhdCAtQ3AsIG5vdCAtQ1AuCgoyMDEwLTAxLTE0IDEyOjM0ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogZml4ZWQgbWVtb3J5IGxlYWsgaW4gUk1PTi1NSUIgYW5kIEVUSEVSTElLRS1NSUIgd2hlbgogICB0aGVyZSBhcmUgbXVsdGlwbGUgYWxpYXNlcyBvZiBhbiBuZXR3b3JrIGludGVyZmFjZQogICBSYXRpb25hbGU6IHRoZSBhbGlhc2VkIGludGVyZmFjZXMgaGF2ZSB0aGUgc2FtZSBpZkluZGV4IC0+CiAgIENPTlRBSU5FUl9JTlNFUlQgZmFpbHMsIGJ1dCB0aGUgcmVqZWN0ZWQgZW50cnkgd2FzIG5vdCBmcmVlZC4KCjIwMTAtMDEtMTMgMTE6MjEgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IG1lbW9yeSBsZWFrIGluIGlwQWRkcmVzc1ByZWZpeFRhYmxlCiAgIC0gbmV0X3NubXBfc2VhcmNoX3VwZGF0ZV9wcmVmaXhfaW5mbyByZXR1cm5zIGRpZmZlcmVudCBjb2RlLCB3aGVuCiAgIHRoZSBlbnRyeSB3YXMgbm90IGluc2VydGVkIHRvIGxpc3QgYW5kIGNhbiBiZSBmcmVlZC4KCjIwMTAtMDEtMTIgMDA6NTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkOiBydW4gcnBtIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGhyX3N3aW5zdCByZXdyaXRlCiAgIChycG0KICAgdmVyc2lvbiBvbmx5KQoKMjAxMC0wMS0xMSAyMzo1OCAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgYWRkIFBFUkxMRE9QVFNfRk9SX0FQUFMgdG8gYWdlbnR4dHJhcCBsaW5rIGxpbmUgKGZpeGVzCiAgICJsaWJwZXJsLnNvIG5vdAogICBmb3VuZCIgZXJyb3JzKQoKMjAxMC0wMS0xMSAwMDoxMSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIGdldCByaWQgb2YgdXNpbmcgZGVwcmVjYXRlZCBzeW50YXggZm9yIHRyYXAvaW5mb3JtIHNpbmtzCgoyMDEwLTAxLTA4IDA4OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogb2Jzb2xldGVkIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRy4KICAgRnJvbSBub3cgb24gdXNpbmcgU0lHQUxSTSB0byB0cmlnZ2VyIE5ldC1TTk1QIGFsYXJtIGhhbmRsZXJzIGlzCiAgIG5vIGxvbmdlciBzdXBwb3J0ZWQuCiAgIAogICBNb3RpdmF0aW9uOiBhcyBrbm93biBsaWJuZXRzbm1wIHN1cHBvcnRzIHRpbWUtYmFzZWQgYWxhcm1zIHZpYQogICB0aGUgZnVuY3Rpb25zCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSwgcnVuX2FsYXJtcygpIGFuZCBvdGhlciBmdW5jdGlvbnMuIFR3bwogICBkaWZmZXJlbnQgd2F5cyB0bwogICB0cmlnZ2VyIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkgYXJlIHN1cHBvcnRlZCBpbnNpZGUKICAgbGlibmV0c25tcDoKICAgMS4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUgdGltZW91dCBhcmd1bWVudCBvZiBzZWxlY3QoKSBpcyBzbWFsbAogICBlbm91Z2ggc3VjaAogICB0aGF0IHNlbGVjdCgpIHJldHVybnMgYmVmb3JlIHRoZSBuZXh0IGFsYXJtIG11c3QgYmUgaGFuZGxlZCAod2hlbgogICB0aGUKICAgdmFyaWFibGUgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldCB0byBvbmUsIHdoaWNoCiAgIGlzIHRoZQogICBkZWZhdWx0KS4KICAgMi4gQnkgbWFraW5nIHN1cmUgdGhhdCB0aGUga2VybmVsIGZpcmVzIFNJR0FMUk0gYXQgdGhlIHRpbWUgd2hlbgogICBydW5fYWxhcm1zKCkKICAgc2hvdWxkIGJlIGNhbGxlZCAod2hlbiB0aGUgdmFyaWFibGUKICAgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGlzIHNldAogICB0byB6ZXJvLCB3aGljaCBoYXMgdG8gYmUgY29uZmlndXJlZCBleHBsaWNpdGx5KS4KICAgCiAgIFRoZSBmb2xsb3dpbmcgaXNzdWVzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlY29uZCBhcHByb2FjaDoKICAgMS4gQWxhcm0gZnVuY3Rpb25zIGFyZSB1c2VkIGluc2lkZSBOZXQtU05NUCB0byBlLmcuIHJlZnJlc2gKICAgY2FjaGVkIHRhYmxlCiAgIGNvbnRlbnRzLiBBcyBmYXIgYXMgSSBjYW4gc2VlIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIE5ldC1TTk1QCiAgIHNvdXJjZSBjb2RlCiAgIHRoYXQgcHJldmVudHMgdGhlIGZvbGxvd2luZyBmcm9tIGhhcHBlbmluZzogYSB0YWJsZSByZWZyZXNoCiAgIHRyaWdnZXJlZCB2aWEKICAgU0lHQUxSTSB3aGlsZSBhIHJvdyBpcyBiZWluZyByZW1vdmVkIGZyb20gYSBjYWNoZWQgdGFibGUuIFRoaXMKICAgY2FuIHJlc3VsdAogICBpbiBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgZXZlbiBhIGNyYXNoLgogICAyLiBQT1NJWCByZXN0cmljdHMgc2lnbmFsIGhhbmRsZXJzIHRvIGNhbGxpbmcgZnVuY3Rpb25zIHRoYXQgYXJlCiAgIGVpdGhlciByZWVudHJhbnQKICAgb3Igbm9uLWludGVycnVwdGlibGUKICAgKGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMveHNoX2NoYXAwMl8wNC5odG1sI3RhZ18wMl8wNCkuCiAgIFN0YW5kYXJkIEkvTyBmdW5jdGlvbnMgbGlrZSBwcmludGYoKSBhbmQgZnByaW50ZigpIGFyZSBuZWl0aGVyCiAgIHJlZW50cmFudCBub3IKICAgbm9uLWludGVycnVwdGlibGUuIHJ1bl9hbGFybXMoKSBpcyBjYWxsZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwKICAgaGFuZGxlciwgd2hpY2gKICAgbWVhbnMgdGhhdCB0aGlzIHJlc3RyaWN0aW9uIGFwcGxpZXMgdG8gdGhlIGZ1bmN0aW9uIHJ1bl9hbGFybXMoKQogICBpdHNlbGYgYW5kCiAgIGFsbCBmdW5jdGlvbnMgY2FsbGVkIGJ5IGl0ICh3aGljaCBpbmNsdWRlcyB0aGUgYWxhcm0gY2FsbGJhY2sKICAgZnVuY3Rpb25zKS4KICAgT3I6IGUuZy4gc25tcF9sb2coKSBhbmQgaXRzIGNhbGxlcnMgbXVzdCBub3QgYmUgY2FsbGVkIGZyb20KICAgaW5zaWRlIHJ1bl9hbGFybXMoKQogICB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCBmcm9tIGluc2lkZSBhIHNpZ25hbCBoYW5kbGVyLiBUaGlzCiAgIGlzIGEgc2V2ZXJlCiAgIHJlc3RyaWN0aW9uLCBhbmQgb25lIHRoYXQgaXMgaGFyZCB0byB3b3JrIHdpdGguCiAgIDMuIE5vdCBhbGwgc29mdHdhcmUgZGV2ZWxvcGVycyBrbm93IGhvdyB0byBtYWtlIHN1cmUgdGhhdCBzaWduYWwKICAgZGVsaXZlcnkgd29ya3MKICAgY29ycmVjdGx5IGluIGEgbXVsdGl0aHJlYWRlZCBjb250ZXh0LiBQT1NJWCBkb2VzIG5vdCBndWFyYW50ZWUgdG8KICAgd2hpY2ggdGhyZWFkCiAgIGEgc2lnbmFsIGxpa2UgU0lHQUxSTSB3aWxsIGJlIGRlbGl2ZXJlZCwgdW5sZXNzIHRoYXQgc2lnbmFsIGhhcwogICBiZWVuIGJsb2NrZWQKICAgYmVmb3JlIHRocmVhZCBjcmVhdGlvbiBhbmQgaXMgdW5ibG9ja2VkIGFmdGVyIHRocmVhZCBjcmVhdGlvbgogICAoc2VlIGFsc28KICAgaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9wdGhyZWFkX3NpZ21hc2suaHRtbCkuCiAgIFRoaXMgaXMgcmVsZXZhbnQgZm9yIHRoZSBOZXQtU05NUCBwcm9qZWN0IG5vdCBvbmx5IGJlY2F1c2UgYQogICB3b3JrZXIgdGhyZWFkIGlzCiAgIGNyZWF0ZWQgaW5zaWRlCiAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYyBidXQgYWxzbwogICBiZWNhdXNlIGxpYm5ldHNubXAgaXMgb2Z0ZW4gdXNlZCBpbnNpZGUgbXVsdGl0aHJlYWRlZCBzb2Z0d2FyZS4KICAgQ3VycmVudGx5IG5vCiAgIGF0dGVtcHQgaXMgbWFkZSB0byBtYWtlIHN1cmUgdGhhdCBTSUdBTFJNIGlzIHByb2Nlc3NlZCBieSB0aGUKICAgTmV0LVNOTVAgZXZlbnQKICAgcHJvY2Vzc2luZyBsb29wIHRocmVhZC4gSWYgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgYW5vdGhlcgogICB0aHJlYWQsIHRoaXMgd2lsbAogICByZXN1bHQgaW4gb25lIG9yIG1vcmUgZGF0YSByYWNlcy4KICAgCiAgIEJlY2F1c2UgYWxsIHRoZSBkaWZmaWN1bHRpZXMgYXNzb2NpYXRlZCB3aXRoIHByb2Nlc3NpbmcgYWxhcm1zCiAgIGZyb20gaW5zaWRlIGEKICAgc2lnbmFsIGhhbmRsZXIgZnVuY3Rpb24sIGFuZCBiZWNhdXNlIGZpeGluZyB0aGVzZSB3b3VsZCByZXF1aXJlCiAgIG1vcmUgZWZmb3J0IHRoYW4KICAgaXQgaXMgd29ydGgsIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBoYXMgYmVlbgogICBkZXByZWNhdGVkIGFuZCBmcm9tIG5vdwogICBvbiBhcHByb2FjaCAoMSkgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGFwcHJvYWNoIHRvIHRyaWdnZXIgYWxhcm0KICAgaGFuZGxlcnMuCgoyMDEwLTAxLTA3IDE5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUGF0Y2ggZnJvbSBTdGVwaGVuIEhlbW1pbmdlciB0byBmaXggYSBtaW5vciBtZW1sZWFrIGluIGNwdQogICBzeXNjdHJsIGZldGNoaW5nCgoyMDEwLTAxLTA3IDE2OjIxICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgUmVtb3ZlZCByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCBhbmQgbWFkZSBzdXJlIHRoYXQKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAnXDAnLXRlcm1pbmF0ZXMgdGhlIG91dHB1dCBidWZmZXIKICAgaW4gYWxsIGNhc2VzLgogICBVcGRhdGVkIGRvY3VtZW50YXRpb24gYW5kIHVuaXQgdGVzdHMuCgoyMDEwLTAxLTA3IDE0OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFJlbW92ZWQgdGhyZWUgc3VwZXJmbHVvdXMgY2FzdHMgYmVjYXVzZSB0aGVzZSB0cmlnZ2VyZWQgYQogICBjb21waWxlciB3YXJuaW5nCiAgIHdoZW4gY29tcGlsZWQgd2l0aCBNU1ZDLgoKMjAxMC0wMS0wNyAxMzoyOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgdGhlIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgY2hhbmdlcyBmcm9tIHIxNzk5MgogICBiZWNhdXNlIHRoZXNlCiAgIGNhdXNlZCB0aGUgZm9sbG93aW5nIFZhbGdyaW5kIGNvbXBsYWludCBkdXJpbmcgc25tcGQgc3RhcnR1cDoKICAgCiAgID09MjUyMDE9PSBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkCiAgIHZhbHVlKHMpCiAgID09MjUyMDE9PSBhdCAweDQwNDdCMTQ6IG5ldHNubXBfc2VuZF90cmFwcyAoYWdlbnRfdHJhcC5jOjc5OCkKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODEyODogc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycwogICAoYWdlbnRfdHJhcC5jOjg1MykKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODE5RDogc2VuZF90cmFwX3ZhcnMgKGFnZW50X3RyYXAuYzo5NjMpCiAgID09MjUyMDE9PSBieSAweDQwNDgyNUI6IHNlbmRfZWFzeV90cmFwIChhZ2VudF90cmFwLmM6MTAxMSkKICAgPT0yNTIwMT09IGJ5IDB4ODA0QjVEMjogbWFpbiAoc25tcGQuYzozOTQpCgoyMDEwLTAxLTA3IDEyOjMwICBidmFzc2NoZQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeGVkIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2guCgoyMDEwLTAxLTA3IDEyOjE5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaDoKCiAgIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYXNzaWduaW5nIGEgY2hhciAqIHBvaW50ZXIgdG8KICAgc3lzT1JUYWJsZTo6T1JfZGVzY3IgZG9lcyBvciBkb2VzIG5vdCB0cmFuc2ZlcgogICBvd25lcnNoaXAuIFNvIHdoZXRoZXIgT1JfZGVzY3IgaXMgZGVjbGFyZWQgYXMgY2hhciAqIG9yIGFzIGNvbnN0CiAgIGNoYXIgKiwgdGhlcmUgd2lsbCBhbHdheXMgYmUgYXQKICAgbGVhc3Qgb25lIHN0YXRlbWVudCBvbiB3aGljaCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgY2hhcgogICAqICAvIGNvbnN0IGNoYXIgKiBtaXNtYXRjaC4gVGhlIG9ubHkgICAgc29sdXRpb24gaXMgdG8gY2FzdCBhd2F5CiAgICAgIGNvbnN0IHdoZXJlIGFwcHJvcHJpYXRlIHRvIG1ha2Ugc3VyZSAgICB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICAgICBjb21wbGFpbiwgICAgYXMgaW1wbGVtZW50ZWQgaW4gdGhpcyBwYXRjaC4gIDIwMTAtMDEtMDcgMTE6NDYgCiAgICAgIGJ2YXNzY2hlCgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVzbV9zYXZlX3VzZXIoKTogd2hlbiB3cml0aW5nIHVzZXItPm5hbWUgYW5kIHVzZXItPnNlY05hbWUsIG9ubHkKICAgd3JpdGUgdGhlIEFTQ0lJIGRhdGEgYW5kIG5vdCB0aGUKICAgdGVybWluYXRpbmcgJ1wwJy4gU2luY2UgYm90aCBpdGVtcyBhcmUgcmVhZCBieSBjYWxsaW5nCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCksIHdyaXRpbmcKICAgdGhlIHRlcm1pbmF0aW5nICdcMCcgaXMgbm90IG5lY2Vzc2FyeSB0byBndWFyYW50ZWUgdGhhdCB0aGUgZGF0YQogICByZWFkIGJhY2sgaXMgdGVybWluYXRlZCBwcm9wZXJseS4KCjIwMTAtMDEtMDcgMDk6MTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCk6IHVudGlsCiAgIG5vdyB0aGlzCiAgIGZ1bmN0aW9uIHRlcm1pbmF0ZWQgdGhlIG91dHB1dCBidWZmZXIgaW4gc29tZSBjYXNlcyB3aXRoICdcMCcKICAgKHdoZW4gdGhlCiAgIGlucHV0IHdhcyBpbiB0aGUgZm9ybWF0IDB4Li4uIGFuZCBhIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCBhbmQKICAgYWxzbwogICB3aGVuIHRoZSBpbnB1dCB3YXMgaW4gQVNDSUkgZm9ybWF0LCBidXQgbm90IHdoZW4gdGhlIGlucHV0IHdhcyBpbgogICBmb3JtYXQKICAgMHguLi4gYW5kIG5vIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cnJlZCkuIENoYW5nZWQgdGhpcyBzdWNoIHRoYXQKICAgdGhpcwogICBmdW5jdGlvbiBkb2VzIG5vIGxvbmdlciB0ZXJtaW5hdGUgdGhlIGlucHV0IGJ1ZmZlciB3aXRoICdcMCcuCiAgIFRoaXMKICAgY2hhbmdlIHdhcyBwb3NzaWJsZSBiZWNhdXNlIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbGwKICAgY2FsbGVycyB0aGF0CiAgIG5lZWRlZCBhICdcMCcgdGVybWluYXRlZCBzdHJpbmcgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byB1c2UKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBpbnN0ZWFkLgoKMjAxMC0wMS0wNiAxNzo1MiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTY4IGFuZCByMTc5NzIuCgoyMDEwLTAxLTA2IDE1OjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzIHJlbGF0ZWQgdG8gdGhlIHVzZSBvZiB0aGUgY29uc3QKICAga2V5d29yZC4KCjIwMTAtMDEtMDYgMTU6MzggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNiAxNTozNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZSBmcm9tIGNoYXIgKiBpbnRvIGNvbnN0IGNoYXIgKi4gU2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZCBpbiByMTc5NzUuCgoyMDEwLTAxLTA2IDE1OjMzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMTU6MzEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB0aGUgZnVuY3Rpb25zIHJlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCkgYW5kCiAgIHNubXBkX3JlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKCksIHdoaWNoCiAgIGFjY2VwdCBhIHBhcnNlciBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgc3RyaW5nIHRoYXQgaXQKICAgcGFyc2VzLiBVc2luZyB0aGVzZSBmdW5jdGlvbnMgcmVzdWx0cwogICBpbiBlYXNpZXIgdG8gcmVhZCBjb2RlIHRoYW4gdXNpbmcgdGhlIG5vbi1jb25zdCBoYW5kbGVyCiAgIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgYW5kIGNhc3RpbmcgdGhlIHBhcnNlcgogICBmdW5jdGlvbiBleHBsaWNpdGx5IGZyb20gKHZvaWQoKikoY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKSkgdG8KICAgKHZvaWQoKikoY29uc3QgY2hhciosIGNoYXIqKSkuCgoyMDEwLTAxLTA2IDE1OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgcmVhZF9jb25maWdfcmVhZF9vYmppZF9jb25zdCgpLgoKMjAxMC0wMS0wNiAxNDo0MiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgRHVwbGljYXRlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFKCkgLwogICBSRUdJU1RFUl9TWVNPUl9FTlRSWSgpCiAgIHNpbmNlIHRoYXQgYXJndW1lbnQgaXMgZnJlZWQgd2hpbGUgdW5yZWdpc3RlcmluZyBzdWNoIGFuIGVudHJ5LgogICBOb3Qgc3VyZSB3aGV0aGVyCiAgIHRoaXMgY291bGQgYWN0dWFsbHkgdHJpZ2dlciBhIGNhbGwgb2YgZnJlZSgpIHdpdGggYSBjb25zdGFudAogICBzdHJpbmcgYXMgYXJndW1lbnQKICAgYW5kIEknbSBuZWl0aGVyIHN1cmUgYWJvdXQgd2hldGhlciBvciBub3QgdGhpcyBjb3VsZCBoYXZlCiAgIHRyaWdnZXJlZCBhIGNyYXNoLgoKMjAxMC0wMS0wNiAxNDozNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBGb3IgdGhvc2UgVkFDTSBmdW5jdGlvbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSBzdHJpbmdzIHBhc3NlZCBhcwogICBhcmd1bWVudHMsCiAgIGNoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogdG8gY29uc3QgY2hhciAqLgoKMjAxMC0wMS0wNiAxNDoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYzoKCiAgIFJlbW92ZWQgYW4gdW51c2VkIHZhcmlhYmxlLgoKMjAxMC0wMS0wNiAxNDoxNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmg6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0CiAgIHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE0OjA0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBuZXcgZnVuY3Rpb25zIHNraXBfd2hpdGVfY29uc3QoKSwgc2tpcF9ub3Rfd2hpdGVfY29uc3QoKSwKICAgc2tpcF90b2tlbl9jb25zdCgpLCBjb3B5X253b3JkX2NvbnN0KCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkuCiAgIC0gQ2hhbmdlZCByZXR1cm4gdHlwZSBvZiByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGZyb20KICAgY2hhciAqIHRvCiAgIGNvbnN0IGNoYXIgKi4gTm90ZTogdGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICAgc2luY2UgdGhpcwogICBmdW5jdGlvbiBoYXMgbm90IHlldCBiZWVuIGluY2x1ZGVkIGluIGFueSByZWxlYXNlLgogICAtIEZpeGVkIGRvY3VtZW50YXRpb24gb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KICAgLSBSZWR1Y2VkIG51bWJlciBvZiBjYXN0LWF3YXktY29uc3QgY29uc3RydWN0cyBpbiByZWFkX2NvbmZpZy5jLgoKMjAxMC0wMS0wNiAxMzozNSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBSZWZpbmVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWFjcm8gTkVUU05NUF9SRU1PVkVfQ09OU1QoKToKICAgd2hlbiB1c2luZwogICB0aGUgZ2NjIGNvbXBpbGVyLCBpdCBpcyBub3cgdmVyaWZpZWQgd2hldGhlciB0aGUgdHlwZXMgKGNvbnN0IHQpCiAgIGFuZCB0eXBlb2YoZSkKICAgYXJlIGNvbXBhdGlibGUsIHdoZXJlIHQgaXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCBlIHRoZSBzZWNvbmQKICAgYXJndW1lbnQgb2YKICAgdGhpcyBtYWNyby4KCjIwMTAtMDEtMDYgMTM6MzMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oOgoKICAgQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcyBiaWdnZXIgdGhhbiA2CiAgIGJ5dGVzIHRvIGF0VGFibGUuIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMKICAgd2l0aCA5IGFuZCBtb3JlIGJ5dGVzLgoKMjAxMC0wMS0wNiAxMjo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MjQxNDA6IEZpeCB0ZXJtaW5hdGlvbiBvZiBDUFUvRlBVIHR5cGVzCgoyMDEwLTAxLTA2IDEyOjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTIyMzkwOiBGaXggdGVzdCBmb3IgbWlzc2luZyBjb250ZXh0TmFtZQogICBwYXJhbWV0ZXIKCjIwMTAtMDEtMDYgMTE6NTcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9zbm1wX3BlcmwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgQ2hhbmdlczoKICAgLSBJbnRyb2R1Y2VkIGEgbmV3IG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgdGhhdCBhbGxvd3MgdG8KICAgY2FzdAogICBhd2F5IGNvbnN0bmVzcyB3aXRob3V0IHRoYXQgZ2NjIC1XY2FzdC1xdWFsIHJlcG9ydHMgYSB3YXJuaW5nLgogICAtIE1hZGUgY2FzdGluZyBhd2F5IGNvbnN0bmVzcyBleHBsaWNpdCBieSBpbnRyb2R1Y2luZyB0aGUKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKSBtYWNyby4gVGhpcyBzdXBwcmVzc2VzIHRoZSB3YXJuaW5nCiAgIGdjYyAtV2Nhc3QtcXVhbCBwcmludGVkIGZvciB0aGVzZSBzdGF0ZW1lbnRzLgoKMjAxMC0wMS0wNiAxMTo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdCBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDA5OjE0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEbyBub3QgdXNlIDAgd2hlbiByZWZlcnJpbmcgdG8gTlVMTC4KCjIwMTAtMDEtMDYgMDg6MjYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENoYW5nZWQgYXJndW1lbnQgdHlwZXMgb2YgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZAogICBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKICAgZnJvbSBzdHJ1Y3QgdGltZXZhbCAqIHRvIGNvbnN0IHN0cnVjdCB0aW1ldmFsICouIE5vdGU6IHRoaXMgZG9lcwogICBub3QgYWZmZWN0CiAgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgoKMjAxMC0wMS0wNiAwODoyMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDaGFuZ2VzIChubyBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vZGlmaWVkKToKICAgLSBSZW1vdmVkIGRpc2tpb19wYXJzZV9jb25maWcoKSBkZWNsYXJhdGlvbiBiZWNhdXNlIHRoYXQgZnVuY3Rpb24KICAgaXMgbmVpdGhlciBjYWxsZWQgbm9yIGRlZmluZWQgaW4gdGhlIHNvdXJjZSBmaWxlIGRpc2tpby5jLgogICAtIEFkZGVkIGRlY2xhcmF0aW9uIGZvciBnZXRzdGF0cygpIHN1Y2ggdGhhdCBnY2MgZG9lcyBub3QKICAgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uLgogICAtIExpbnV4OiBjaGFuZ2VkIHZpc2liaWxpdHkgb2YgZ2V0c3RhdHMoKSBmcm9tIGdsb2JhbCB0byBzdGF0aWMKICAgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIEJTRCBhbmQgRGFyd2luIGltcGxlbWVudGF0aW9ucyBvZgogICBnZXRzdGF0cygpLgoKMjAxMC0wMS0wNiAwODowMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDAyOjE4ICBtYWdmcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgbWFuL01ha2VmaWxlLmluLCB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYXBwczogT25seSBidWlsZCBhZ2VudHh0cmFwIGlmIHRoZSBhZ2VudHggbGlicmFyaWVzIGFyZQogICBidWlsdC4gQWRkIGEgdGVzdCBjYXNlIGZvciBhZ2VudHh0cmFwLgogICAKICAgVGhlIGVuYWJsZW1lbnQvZGlzYWJsZW1lbnQgaXMgaW5zcGllcmVkIGJ5IGF1dG9tYWtlIGNvbmRpdGlvbmFscwoKMjAxMC0wMS0wNiAwMTo1OSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdGFydHRpbWUuCgoyMDEwLTAxLTA1IDIyOjU0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaDoKCiAgIENIQU5HRVM6IEhpZGUgbW9zdCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyBpbiB0aGUgbG9nbWF0Y2gKICAgbW9kdWxlLiBDbGVhbmVkIHVwIHRoZSBoZWFkZXIgYWNjb3JkaW5nbHkuIFJlbW92ZSB0aGUgbmVlZCBmb3IKICAgZm9yd2FyZCBkZWNsYXJhdGlvbnMgYnkgcmVvcmRlcmluZyB0aGUgZnVuY3Rpb25zLgoKMjAxMC0wMS0wNSAyMjozMyAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHUzogMjkxOTM3OTogSW5pdGlhbGlzZSBTTk1QIHNlc3Npb25zIHByb3Blcmx5CiAgIFByb3ZpZGVkIGJ5IERpZWdvIEJpbGxpCgoyMDEwLTAxLTA1IDIyOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkxOTMyMDogQXZvaWQgYWNjZXNzaW5nIGZyZWVkIG1lbW9yeQogICBSZXBvcnRlZCBieSBUb21hc3ogTGlzCgoyMDEwLTAxLTA1IDE4OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMjkxNDQxMDogRml4IGNyYXNoIG9uIGVtcHR5IGNvbW1hbmQgbGluZXMKCjIwMTAtMDEtMDUgMTU6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTEyNTg0OiBGaXggbnVsbCBPSUQgaGFuZGxpbmcgaW4gQWdlbnR4CiAgIG9uIDY0Yml0CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEx1dHogSmFlbmlja2UKCjIwMTAtMDEtMDUgMTA6MTEgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgQ0hBTkdFUzogaHB1eDogZml4IGJ1aWxkIGVycm9yIG9uIEhQLVVYIDEwLjIwCgoyMDEwLTAxLTA1IDA4OjQyICBqc2FmcmFuZWsKCiAgICogbWFuLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBSZW1vdmUgZ2VuZXJhdGVkIG1hbiBwYWdlcyBmcm9tIHJlcG9zaXRvcnkuCgoyMDEwLTAxLTA0IDE2OjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkIHRoYXQgb2NjdXJyZWQgd2hlbiBhbiBBU0NJSQogICBzdHJpbmcgd2FzCiAgIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSAvCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgYW5kIHRoZSB0aGlyZCBhcmd1bWVudCAoKmxlbikKICAgZXF1YWxzIDAuCgoyMDEwLTAxLTA0IDE2OjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgJ2NvbnN0Jy4KCjIwMTAtMDEtMDQgMTY6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHVuaXQgdGVzdCBmb3IgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKS4KCjIwMTAtMDEtMDQgMTA6NDUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGNvcnJlY3Qgb2lkIGxlbmd0aCBpbiB0YWJsZSBpbmRleGVzLgoKMjAxMC0wMS0wNCAwODoxMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBNYWRlIHN1cmUgdGhhdCBzbm1wX2FsYXJtLmMgY2FuIGJlIGNvbXBpbGVkIGFnYWluIHdpdGggQzg5CiAgIGNvbXBpbGVyczogZm9yIEM4OQogICBpdCBpcyByZXF1aXJlZCB0aGF0IGluaXRpYWxpemVycyBhcmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuCgoyMDEwLTAxLTAzIDE2OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmM6CgogICBSZW5hbWUgbmV0c25tcF9hcmNoX3RjcGNvbm5fZGVsZXRlIHRvCiAgIG5ldHNubXBfYXJjaF90Y3Bjb25uX2VudHJ5X2RlbGV0ZSBpbiBvcmRlciB0byBiZSBjb25zaXN0ZW50IHdpdGgKICAgdGhlIGhlYWRlciBmaWxlIGFuZCBhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyBpbiB0aGUgbW9kdWxlLgoKMjAxMC0wMS0wMyAxNjoyNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIEFkZCBtaXNzaW5nIGRlY2xhcmF0aW9ucy4KCjIwMDktMTItMzAgMTI6NDkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkzMzogZml4ZWQgdGhlIGlzc3VlIHRoYXQgaW5jbHVkaW5nIHRoZSBoZWFkZXIKICAgZmlsZQogICA8bmV0LXNubXAvbGlicmFyeS90eXBlcy5oPiBmcm9tIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAgIHRyaWdnZXJzCiAgIGNvbXBpbGVyIGVycm9ycyBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBwcm9jZXNzIChjb21wbGFpbnRzIGFib3V0CiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBub3QgYmVpbmcgaW5jbHVkZWQgYmVmb3JlCiAgIDxuZXQtc25tcC90eXBlcy5oPikuCiAgIE5vdGU6IHRoaXMgZG9lcyBub3Qgc29sdmUgdGhlIHVuZGVybHlpbmcgcHJvYmxlbSB0aGF0IE1JQiBjb2RlCiAgIG11c3Qgbm90CiAgIGluY2x1ZGUgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC90eXBlcy5oPiBiZWNhdXNlIGRvaW5nIHNvIHdvdWxkCiAgIHRyaWdnZXIgYQogICBjaXJjdWxhciBkZXBlbmRlbmN5IGR1cmluZyB0aGUgY29uZmlndXJlIHN0ZXAgKE1JQiBjb2RlIGlzCiAgIGNvbXBpbGVkIGR1cmluZwogICB0aGUgY29uZmlndXJlIHN0ZXAsIHdoaWxlIHRoZSBjb25maWd1cmUgc3RlcCBnZW5lcmF0ZXMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+IGFuZCA8bmV0LXNubXAvdHlwZXMuaD4gbmVlZHMKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KCjIwMDktMTItMzAgMTE6NDggIGJ2YXNzY2hlCgogICAqIGFwcHMsIG1hbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE5OiB1cGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3RzLgoKMjAwOS0xMi0yOCAxODowMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgIEZpeGVkIGEgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWQuIEZvdW5kIHRoaXMgYnkgYW5hbHl6aW5nIGNvbXBpbGVyCiAgIHdhcm5pbmdzLgogICBOb3RlOiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb24sIHJlZ2lzdGVyX3N0cmluZ19pbmRleCgpLCBpc24ndAogICBjYWxsZWQgZnJvbQogICBhbnl3aGVyZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgaXRzZWxmLgoKMjAwOS0xMi0yMyAwOTo0OSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgRml4IGludmFsaWQgcmVhZCByZXBvcnRlZCBieSB2YWxncmluZDoKICAgSW52YWxpZCByZWFkIG9mIHNpemUgMQogICBtZW1jcHkgKG1jX3JlcGxhY2Vfc3RybWVtLmM6NDAyKQogICBfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWRfdjQKICAgKGlwYWRkcmVzc19pb2N0bC5jOjI0MCkKICAgbmV0c25tcF9hcmNoX2lwYWRkcmVzc19jb250YWluZXJfbG9hZCAoaXBhZGRyZXNzX2xpbnV4LmM6MTU4KQogICBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19jb21tb24uYzoxMTIpCiAgIAogICBSZXR1cm5pbmcgc3RydWN0dXJlIHdpdGggcG9pbnRlcnMgaW5zaWRlIGlzIG5vdCB0aGUgYmVzdCB0aGluZyB0bwogICBkby4KCjIwMDktMTItMjIgMTY6MDUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBGaXhlZCBzZXZlcmFsIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KCjIwMDktMTItMjIgMTI6MDIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIAogICAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgUmV2ZXJ0ZWQgdGhlIGJhY2t3YXJkcy1pbmNvbXBhdGlibGUgY2hhbmdlcyBvZiByMTc5MTM6CiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8uCiAgIC0gUmVzdG9yZWQgdGhlIGRlZmluaXRpb25zIG9mIHRoZSBmdW5jdGlvbnMKICAgY2FsY3VsYXRlX3RpbWVfZGlmZigpLAogICB1YXRpbWVfcmVhZHkoKSwgbWFya2VyX3R0aWNrcygpIGFuZCB0aW1ldmFsX3R0aWNrcygpLgogICAtIHN0YXJ0dGltZSBpcyBhZ2FpbiBhIGdsb2JhbCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgc3RhdGljIG9uZS4KICAgQWxzbyBpbXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAgIC0gTW92ZWQgdGhlIG1hcmtlcl90IHR5cGVkZWYgZnJvbSBuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggdG8KICAgbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLgogICAtIEFkZGVkIGEgbmV3IHR5cGVkZWYsIGNvbnN0X21hcmtlcl90LgogICAtIEZvciB0aG9zZSBhdGltZV8qKCkgLyB1YXRpbWVfKigpIC8gKl90dGlja3MoKSBmdW5jdGlvbnMgdGhhdCBkbwogICBub3QgY2hhbmdlCiAgIHRoZWlyIGFyZ3VtZW50cywgZGVjbGFyZWQgdGhlc2UgYXJndW1lbnRzIGNvbnN0X21hcmtlcl90IGluc3RlYWQKICAgb2YgbWFya2VyX3QuCiAgIC0gUmVuYW1lZCBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSBhbmQgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgdG8KICAgbmV0c25tcF9nZXRfYWdlbnRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X2FnZW50X3N0YXJ0dGltZSgpCiAgIHJlc3BlY3RpdmVseS4gTW92ZWQgdGhlc2UgZnVuY3Rpb25zIGZyb20gdG9vbHMuYyB0byBzeXN0ZW0uYy4KICAgLSBSZW1vdmVkIHRoZSBmdW5jdGlvbiBhdGltZV9oc3VidHJhY3QoKSAod2FzIGludHJvZHVjZWQgaW4KICAgcjE3OTEzKSBhbmQKICAgaW50cm9kdWNlZCBhIG5ldyBmdW5jdGlvbiwgbmV0c25tcF9zZXRfYWdlbnRfdXB0aW1lKCkuCgoyMDA5LTEyLTIyIDA3OjU5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCByMTc5MjYsIHdoaWNoIG1hZGUgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlZC4gQSBuZXcgcGF0Y2ggd2lsbAogICBmb2xsb3cKICAgdGhhdCBmaXhlcyB0aGUgY2FsbGVycyBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHRoYXQKICAgd2VyZQogICBhc3N1bWluZyB0aGF0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVzIHRoZQogICBzdHJpbmcKICAgcmVhZCBieSB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0yMSAxNDoyOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggY3Jhc2ggaW4gSUYtTUlCIGFuZCBJUC1NSUIgd2hlbiB0aGVyZSBhcmUKICAgc29tZSBpbnRlcmZhY2VzIHdpdGggYnJvYWRjYXN0IElQIGFkZHJlc3MgYW5kIHNvbWUgd2l0aG91dC4KICAgCiAgIFJlc2V0IHRoZSBiY2FzdGVudHJ5IGluIHRoZSBsb29wLCBzbyBpdCBjYW5ub3QgYmUgaW5zZXJ0ZWQgdG8gdGhlCiAgIGNvbnRhaW5lcgogICB0d2ljZS4KICAgCiAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aG91dCBicm9hZGNhc3QgYWRkcmVzcwogICBpcyBwcm9jZXNzZWQsCiAgIHRoZSBiY2FzdGFkZHJlc3MgZnJvbSBwcmV2aW91cyBsb29wIGlzIGluc2VydGVkIGludG8gdGhlCiAgIGNvbnRhaW5lci4gVGhpcwogICBvYnZpb3VzbHkgZmFpbHMgYW5kIHRoZSBiY2FzdGVudHJ5IGlzIGZyZWVkLCBidXQgdGhlIGNvbnRhaW5lcgogICBzdGlsbCBjb250YWlucwogICByZWZlcmVuY2UgdG8gaXQgLT4gU0lHU0VHVi4KCjIwMDktMTItMjEgMTM6NTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI4OiB3aGlsZSByMTc5MjggZml4ZWQgYSBkYW5nbGluZyBwb2ludGVyCiAgIGRlcmVmZXJlbmNlCiAgIGRldGVjdGVkIGJ5IHJ1bm5pbmcgdGhlIE5ldC1TTk1QIHNvZnR3YXJlIG9uIFdpbmRvd3MsIHRoYXQgcGF0Y2gKICAgaW50cm9kdWNlZAogICBhIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2UgYWJvdXQgd2hpY2ggb25seSBWYWxncmluZCBvbiBMaW51eAogICBjb21wbGFpbmVkLgogICBUaGlzIGZvbGxvdy11cCBwYXRjaCBmaXhlcyBib3RoIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2VzCiAgIHRyaWdnZXJlZCBieQogICBwYXJzaW5nIHRoZSBwZXJzaXN0ZW50RGlyIGtleXdvcmQuCgoyMDA5LTEyLTIxIDEzOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTAxMTIyLiBDaGFuZ2VzOgogICAtIE5ldyBmZWF0dXJlOiBzcGVjaWZ5aW5nIEFTTiB0eXBlIFNOTVBfTk9TVUNISU5TVEFOQ0UgYXMgdGhlCiAgIHRoaXJkIGFyZ3VtZW50CiAgIG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSB3aWxsIGNhdXNlIGFuIFNOTVAgR2V0UmVxdWVzdCAvCiAgIEdldE5leHRSZXF1ZXN0IHRvCiAgIHJldHVybiB0aGUgZXJyb3IgY29kZSBub1N1Y2hJbnN0YW5jZSAoU05NUHYyKSBvciBub1N1Y2hOYW1lCiAgIChTTk1QdjEpLiBUaGlzCiAgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgYSBjYWNoZWQgdGFibGUgd2l0aCBvbmUgb3IgbW9yZQogICAiaG9sZXMiLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogZG8gbm90IGZyZWUoKSAvIG1hbGxvYygpIHRoZSBtZW1vcnkKICAgZm9yIHN0b3JpbmcKICAgdGhlIGNhY2hlZCB2YWx1ZSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4KICAgbW9kaWZpZWQuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBpZiB0aGUgc2l6ZSBvZiB0aGUgY2FjaGVkIHZhbHVlCiAgIHNocnVuaywgdXNlCiAgIHJlYWxsb2MoKSBpbnN0ZWFkIG9mIGZyZWUoKSBhbmQgbWFsbG9jKCkuCgoyMDA5LTEyLTIxIDEyOjIzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkxMjA1NTogbWFrZSBzdXJlCiAgIHRoYXQKICAgcGFyc2luZyB0aGUgInBlcnNpc3RlbnREaXIiIGtleXdvcmQgaW4gc25tcC5jb25mIGRvZXMgbm90IHRyaWdnZXIKICAgYQogICBkYW5nbGluZyBwb2ludGVyLiBUbyBteSBzdXJwcmlzZSBCb3VuZHNDaGVja2VyIGNvbXBsYWluZWQgYWJvdXQKICAgdGhpcwogICAob24gV2luZG93cyksIGJ1dCBWYWxncmluZCBkaWQgbm90IHJlcG9ydCB0aGlzIGlzc3VlIChvbiBMaW51eCkuCgoyMDA5LTEyLTIxIDEyOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyNSAoZml4IG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwKTogd2hpbGUKICAgcjE3OTI1IGZpeGVkCiAgIG9ubHkgdGhlIGxlYWsgdHJpZ2dlcmVkIGZyb20gaW5zaWRlIHRoZSBmb3ItbG9vcCwgdGhpcyBwYXRjaCBkb2VzCiAgIG5vdyBhbHNvCiAgIGZpeCB0aGUgbGVhayB0cmlnZ2VyZWQgYnkgdGhlIG5ldHNubXBfdGFibGVfZGF0YXNldF9hZGRfcm93KCkKICAgY2FsbCBuZWFyCiAgIHRoZSBlbmQgb2YgbG9nX25vdGlmaWNhdGlvbigpLgoKMjAwOS0xMi0yMSAxMjowMSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2MjogbWFrZSBzdXJlIHRoYXQgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGlzIHByb3Blcmx5IHRlcm1pbmF0ZWQsIHN1Y2ggdGhhdAogICB0aGUKICAgY2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9uIGRvIG5vdCB0cmlnZ2VyIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkcy4KICAgRm91bmQKICAgdGhpcyBpc3N1ZSB2aWEgQm91bmRzQ2hlY2tlci4KCjIwMDktMTItMjEgMTE6MDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjgsIHdoaWNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXAuCiAgIFRoZQogICBmdW5jdGlvbiBsb2dfbm90aWZpY2F0aW9uKCkgYWRkcyBhIHJvdyB0byB0aGUgdGFibGUKICAgbmxtTG9nVmFyVGFibGUsIGJ1dAogICB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHRoYXQgdGFibGUgaGFzIGJlZW4KICAgaW5pdGlhbGl6ZWQuIElmCiAgIHRoYXQgaGFwcGVucywgbWVtb3J5IGlzIGFsbG9jYXRlZCBmb3IgYSByb3cgYnV0IHRoYXQgbWVtb3J5IGlzCiAgIG5ldmVyCiAgIGFkZGVkIHRvIHRoZSBjYWNoZWQgdGFibGUgZGF0YS4gVGhlIEJvdW5kc0NoZWNrZXIgdG9vbCByZXBvcnRlZAogICB0aGlzIGFzCiAgIGEgIm1lbW9yeSBsZWFrIGxlYXZpbmcgc2NvcGUiLgoKMjAwOS0xMi0yMSAxMDo1NCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgdGhlIGZvbGxvd2luZyB0ZXh0IHRvIHRoZSAiTGltaXRhdGlvbnMiIHNlY3Rpb24gb2YKICAgUkVBRE1FLndpbjMyOgogICAiV2hlbiB1c2luZyB3aW5FeHRETEwsIHRoZXJlIGlzIGFuIG9mZnNldCBvZiB1cCB0byBvbmUgc2Vjb25kCiAgIGJldHdlZW4gdGhlCiAgIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUgdmFyYmluZCBpbmNsdWRlZCBpbiB0aGUgdHJhcHMgZ2VuZXJhdGVkIGJ5CiAgIFNOTVAKICAgZXh0ZW5zaW9uIERMTHMgKGUuZy4gbGlua1VwIGFuZCBsaW5rRG93bikgYW5kIHRoZSB2YWx1ZSBvZiB0aGUKICAgc3lzVXBUaW1lCiAgIHZhcmJpbmQgaW5jbHVkZWQgaW4gdHJhcHMgZ2VuZXJhdGVkIGJ5IE5ldC1TTk1QIGl0c2VsZiAoZS5nLgogICBjb2xkU3RhcnQpLiIKCjIwMDktMTItMjEgMTA6MDkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBTcGVsbGluZyBmaXg6IHJlcGxhY2VkIGFsbCBvY2N1cnJlbmNlcyBvZiAnc3BlY2lmYycgYnkKICAgJ3NwZWNpZmljJy4KCjIwMDktMTItMjEgMTA6MDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUmVmYWN0b3Jpbmc6IGVsaW1pbmF0ZWQgZHVwbGljYXRlZCBjb2RlIGJ5IHJlaW1wbGVtZW50aW5nCiAgIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSB1c2luZyBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyKCkuIE5laXRoZXIgdGhlCiAgIE5ldC1TTk1QIEFQSSBub3IgdGhlIGJlaGF2aW9yIG9mIHNubXBfYWxhcm1fcmVnaXN0ZXIoKSBoYXMgYmVlbgogICBjaGFuZ2VkLgoKMjAwOS0xMi0yMCAxMToxMCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvYWdlbnR4dHJhcC5jLCBtYW4vTWFrZWZpbGUuaW4sICAgCiAgICAgIG1hbi9hZ2VudHh0cmFwLjEuZGVmOgoKICAgTkVXUzogYXBwczogQWRkIGNvbW1hbmQgdG8gc2VuZCBBZ2VudFggbm90aWZ5IHJlcXVlc3RzIHRvIGEKICAgbWFzdGVyIGFnZW50LgoKMjAwOS0xMi0xNyAxNjo0NCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTcgLS0gYnVpbGRzIGFnYWluIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMTcgMTY6MDMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkwMyAvIHBhdGNoIDI5MTEzMjMgIkZpeCBhZ2VudCBsb2NrdXAgd2hlbgogICBtb25pdG9yaW5nCiAgIEFnZW50WC1kZWxlZ2F0ZWQgaW5mb3JtYXRpb24iIChzdWJtaXR0ZWQgYnkgbXlzZWxmKS4gVGhhdCBwYXRjaAogICBkaWQgbm90IG9ubHkKICAgZml4IHRoZSBsb2NrdXAgYnV0IGFsc28gbWFkZSBzbm1wZCBwcmludCBhIHdhcm5pbmcgZHVyaW5nIHN0YXJ0dXAKICAgd2hlbgogICBpcXVlcnlTZWNOYW1lIHdhcyBub3QgY29uZmlndXJlZC4gVGhpcyB3YXJuaW5nIHdhcyBwcmludGVkIGV2ZW4KICAgd2hlbiBubwogICBpbnRlcm5hbCBxdWVyaWVzIHdlcmUgcGVyZm9ybWVkLiBUaGlzIHdhcm5pbmcgaXMgbm93IG9ubHkgcHJpbnRlZAogICBqdXN0IGJlZm9yZQogICB0aGUgZmlyc3QgaW50ZXJuYWwgcXVlcnkgaXMgbWFkZSAoZHVyaW5nIHRoZSBmaXJzdCBjYWxsIG9mCiAgIG5ldHNubXBfcXVlcnlfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpIGluc3RlYWQgb2YgZHVyaW5nIGNyZWF0aW9uIG9mCiAgIHRoZSBpbnRlcm5hbAogICBzZXNzaW9uKS4KCjIwMDktMTItMTcgMTM6NTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmM6CgogICBSTU9OIE1JQiBzb3VyY2UgY29kZSBjb21waWxlcyBhZ2FpbiAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzkxMy4KCjIwMDktMTItMTcgMTM6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpIGFuZAogICBBR1VUSUxfc3lzX3VwX3RpbWUoKSBzdWNoIHRoYXQgdGhlc2UgZnVuY3Rpb25zIG5vcm1hbGl6ZSB0aGUKICAgdHZfdXNlYyBmaWVsZCBvZgogICBzdHJ1Y3QgdGltZXZhbCBwcm9wZXJseS4gTm90ZTogdGhpcyBzb3VyY2UgY29kZSBtb2RpZmljYXRpb24gZG9lcwogICBub3QgYWZmZWN0CiAgIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHR3byBmdW5jdGlvbnMuCgoyMDA5LTEyLTE3IDEzOjExICBidmFzc2NoZQoKICAgKiBtYW4vbmV0c25tcF91dGlsLjM6CgogICBSZW1vdmVkIGRvY3VtZW50YXRpb24gb2YgdGhlIERJRkZUSU1FVkFMKCkgbWFjcm8gLS0gc2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjA1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ29udmVydGVkIHN0YXJ0dGltZSBmcm9tIGEgZ2xvYmFsIHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgYW5kIGFwcGxpZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIEFkZGVkIHR3byBuZXcgbWFjcm9zOiBORVRTTk1QX1RJTUVSQUREKCkgYW5kCiAgIE5FVFNOTVBfVElNRVJTVUIoKS4KICAgLSBBZGRlZCB0aHJlZSBuZXcgZnVuY3Rpb25zOiBuZXRzbm1wX2dldF9zdGFydHRpbWUoKSwKICAgbmV0c25tcF9zZXRfc3RhcnR0aW1lKCkgYW5kIGF0aW1lX2hzdWJ0cmFjdCgpLgogICAtIFJlcGxhY2VkIGdldHRpbWVvZmRheSgpICsgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGNhbGxzIGJ5IGEgY2FsbAogICB0byBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKS4KICAgLSBSZW1vdmVkIHRoZSBtYWNybyBESUZGVElNRVZBTCgpIGJlY2F1c2UgaXQgd2FzIG5vdCB1c2VkIGluc2lkZQogICB0aGUgTmV0LVNOTVAgcHJvamVjdCBhbmQgYmVjYXVzZSBpdCBjb250YWluZWQgYSBidWcuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb25zIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwgdWF0aW1lX3JlYWR5KCksCiAgIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KCjIwMDktMTItMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEJ1ZyBmaXg6IGFjY29yZGluZyB0byBSRkMgMjU3MSB0aGUgdW5pdCBvZiBzbm1wRW5naW5lVGltZSBpcyBvbmUKICAgc2Vjb25kLAogICBub3Qgb25lIGh1bmRyZWR0aCBvZiBhIHNlY29uZC4KCjIwMDktMTItMTcgMTA6MDMgIGR0czEyCgogICAqIG1hbi9zbm1wdGVzdC4xLmRlZjoKCiAgIEZpeCB0eXBvLgoKMjAwOS0xMi0xNiAxMjozMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvdG9vbHMuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cy1vbmx5IGJ1ZyBmaXhlczoKICAgLSBGaXhlZCB0aGUgc3RyYW5nZSBidWlsZCBlcnJvcnMgdGhhdCBvY2N1cnJlZCB3aGVuIGNvbXBpbGluZwogICBsaWJuZXRzbm1wIGFzIGEgRExMIGFuZCB3aGVuIGVpdGhlciA8c3RkbGliLmg+IG9yIDxzdHJpbmcuaD4gd2FzCiAgIGluY2x1ZGVkIGFmdGVyIDxuZXQtc25tcC1jb25maWcuaD4gaW5zdGVhZCBvZiBiZWZvcmUuCiAgIC0gRm9yIGRlYnVnIGJ1aWxkcyB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLCBmaXhlZCB0aGUKICAgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBfbWFsbG9jX2RiZygpIGNhbGwgaW52b2tlZCBieSBzdHJkdXAoKSBhbmQKICAgZnJlZSgpLWluZyBzdHJkdXAoKS1lZCBtZW1vcnkgYnkgaW5jbHVkaW5nIHRoZSA8Y3J0ZGJnLmg+IGhlYWRlcgogICBpbiB0b29scy5jIGFuZCBieSBkZWZpbmluZyB0aGUgcHJlcHJvY2Vzc29yIHN5bWJvbAogICBfQ1JUREJHX01BUF9BTExPQy4gRGV0ZWN0ZWQgdmlhIHRoZSBtZW1vcnkgY2hlY2tlciBpbmNsdWRlZCBpbgogICBJbnRlbCBQYXJhbGxlbCBTdHVkaW8uCgoyMDA5LTEyLTE0IDE3OjIzICB0YW5kZXJzCgogICAqICBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBzeW5jIGRlZmluaXRpb24gb2YgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIFBlcmwgd2l0aCB0aGUgY2hhbmdlcwogICBpbgogICByMTc4NTUgYW5kIHIxNzkwOAoKMjAwOS0xMi0xNCAxMzo1NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgRml4IFRDUCB0cmFuc3BvcnQgYnJva2VuIGJ5IHJldi4gMTc4NTUgLSBjb3BpZXMgb2YKICAgbmV0c25tcF91ZHBfYWRkcl9wYWlyIGluIHNubXBUQ1BEb21haW4uYyBhbmQgc25tcFVEUERvbWFpbi5jIG11c3QKICAgYmUgdGhlIHNhbWUuCgoyMDA5LTEyLTExIDE0OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBwYXRjaCBmcm9tIE1hcnRpbiBCam9ya2x1bmQgdG8gYWRkIGEgLUN3IG9wdGlvbgogICB0byB1c2UgY3JlYXRlQW5kV2FpdCBmb3IgYWdlbnRzIHRoYXQgYXJlIHN0cmljdCBhYm91dCBub3QKICAgYWxsb3dpbmcgYSByb3cgdG8gYmUgc2V0IHRvIGFjdGl2ZSB1bnRpbCB0aGUgYXV0aGVudGljYXRpb24KICAgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZDsgcGx1cyB3aGl0ZS1zcGFjZSBjbGVhbiB1cCwgbWFudWFsCiAgIGFkZGl0aW9ucyBhbmQgaGVscCBvdXRwdXQgbW9kaWZpY2F0aW9ucyBieSBoYXJkYWtlcgoKMjAwOS0xMi0xMSAxNDozNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGEgZm9ybWF0IHNwZWNpZmllciBtaXNtYXRjaC4KCjIwMDktMTItMTEgMTQ6MDYgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICB3aW5FeHRETEwgYnVncyBmaXhlZDoKICAgLSBzeXNVcFRpbWUuMCBkb2VzIG5vdyByZXBvcnQgdGhlIGNvcnJlY3QgdmFsdWUuCiAgIC0gYSBsaW5rVXAgb3IgbGlua0Rvd24gdHJhcCBpcyBub3cgc2VudCBhZnRlciB0aGUgc3RhdHVzIG9mIGEKICAgbmV0d29yayBpbnRlcmZhY2UKICAgaGFzIGNoYW5nZWQuCiAgIC0gdGhlIHZhbHVlIG9mIHRoZSBzeXNVcFRpbWUuMCB2YXJiaW5kIGluIGxpbmtVcCBhbmQgbGlua0Rvd24KICAgdHJhcHMgaXMgbm93CiAgIGNvcnJlY3QuCgoyMDA5LTEyLTEwIDE1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSEVTOiAyOTExOTcwOiBQcm9wZXJseSB0ZXJtaW5hdGUgbGlua2VkIGxpc3QKICAgb2YgcmVnaXN0cmF0aW9ucy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWlya28gRGVja2VydC4KCjIwMDktMTItMTAgMTU6NDMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTExMzIzOiBGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZyBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uCgoyMDA5LTEyLTEwIDEzOjU5ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IE1pY3Jvc29mdCdzIGltcGxlbWVudGF0aW9uIG9mCiAgIGhyU3lzdGVtVXB0aW1lLjAuCiAgIC0gRml4ZWQgYSBmZXcgdHlwb3MuCgoyMDA5LTEyLTEwIDEzOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQWRkZWQgbWlzc2luZyBuZXdsaW5lIGluIGEgbG9nZ2luZyBzdGF0ZW1lbnQuCgoyMDA5LTEyLTEwIDEyOjU0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgd2luRXh0RExMIGJ1Z3M6CiAgIC0gRml4ZWQgYnVnIGluIHRyYXAgZm9yd2FyZGluZzogbGlua0Rvd24gdHJhcHMgd2VyZSBzZW50IGFzCiAgIHdhcm1TdGFydCB0cmFwcwogICBhbmQgbGlua1VwIHRyYXBzIHdlcmUgc2VudCBhcyBsaW5rRG93biB0cmFwcy4KICAgLSBGaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBleHRlbnNpb24gRExMIGxvYWRpbmcuCiAgIC0gQSBkZWJ1ZyB0cmFjZSBzdGF0ZW1lbnQgaXMgbm93IGludm9rZWQgd2hlbmV2ZXIgYSBzZXJpb3VzIGVycm9yCiAgIGhhcyBiZWVuCiAgIGRldGVjdGVkLgoKMjAwOS0xMi0xMCAxMjozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBPSURzIGluIGRlYnVnIG1lc3NhZ2VzIGdlbmVyYXRlZCBieSB0aGUgd2luRXh0RExMIG1vZHVsZSBhcmUgbm93CiAgIHByaW50ZWQgaW4KICAgc3ltYm9saWMgZm9ybSBpbnN0ZWFkIG9mIG51bWVyaWMgZm9ybS4KCjIwMDktMTItMTAgMDg6NTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIFByb2plY3QgZGVwZW5kZW5jaWVzIHNob3VsZCBub3cgcmVhbGx5IGJlIGNvcnJlY3QuIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3ODczLgoKMjAwOS0xMi0xMCAwODo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDaGFuZ2VzIChvbmx5IHNvdXJjZSBjb2RlIGNvbW1lbnRzIGhhdmUgYmVlbiBjaGFuZ2VkKToKICAgLSBSZW1vdmVkIGEgbm90ZSB0aGF0IGNvbnRyYWRpY3RlZCB0aGUgaW5zdHJ1Y3Rpb25zIGluCiAgIFJFQURNRS53aW4zMi4KICAgLSBVcGRhdGVkIGJ1aWxkIGluc3RydWN0aW9ucyBhZnRlciB0aGUgYWRkaXRpb24gb2YgdGhlIGZpbGUKICAgd2luMzIvU25tcC13aW5FeHRETEwuaCBpbiByMTc4MzAuCgoyMDA5LTEyLTEwIDA4OjE3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIE1hZGUgZmlsZSBoZWFkZXIgY29tbWVudHMgY29uc2lzdGVudCB3aXRoIHRoZSBkZXNjcmlwdGlvbnMgaW4gdGhlCiAgIHJlc3BlY3RpdmUgbWFuIHBhZ2VzLgoKMjAwOS0xMi0xMCAwMzowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudF9zeXNPUl9jYWxsYmFjayB3b24ndCB0cmlnZ2VyIGEgd2FybmluZyB3aGVuCiAgIHJlZ2lzdGVyZWQgYXMgYSBjYWxsYmFjay4gQ2hhbmdlIGFnZW50eF9yZW9wZW5fc3lzT1JUYWJsZSBpbgogICBvcmRlciB0byBhdm9pZCB3YXJuaW5ncyBvZiBjb25zdCByZW1vdmFsLgoKMjAwOS0xMi0wOSAxNTowNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gTW92ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSB2YXJpYWJsZSAnbmV3bGluZScgaW5zaWRlIHRoZQogICBmdW5jdGlvbgogICBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBiZWNhdXNlIHRoaXMgdmFyaWFibGUgaXMgb25seSB1c2VkIGJ5CiAgIHRoYXQgZnVuY3Rpb24uCiAgIC0gRG9jdW1lbnRlZCB0aGUgcHVycG9zZSBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnLgogICAtIEJ1ZyBmaXg6IG1hZGUgc3VyZSB0aGF0IHRoZSBjYWxsIGxvZ19oYW5kbGVyX3N0ZG91dGVycigpIGRvZXMKICAgbm90IHRyaWdnZXIgYW4KICAgaW52YWxpZCBtZW1vcnkgYWNjZXNzIChzdHJbLTFdKSB3aGVuIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgdG8KICAgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMDkgMTQ6MzcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MKICAgYmlnZ2VyIHRoYW4gNiBieXRlcyB0byBpcE5ldFRvTWVkaWFUYWJsZSBhbmQKICAgaXBOZXRUb1BoeXNpY2FsVGFibGUuCiAgIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMgd2l0aCA5IGFuZCBtb3JlCiAgIGJ5dGVzLiBTbm1wZCBvbiBMaW51eCB3YXMgbm90IGFibGUgdG8gcGFyc2UgL3Byb2MvbmV0L2FycCB0aGVuCiAgIGFuZCBwcm9kdWNlZCB1Z2x5ICdpb2N0bCAzNTEyMyByZXR1cm5lZCAtMScgdG8gbG9nLgoKMjAwOS0xMi0wOSAxMjoyNyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgbWlzc2luZyAtTG8gaW4gYSBjb21tYW5kIGxpbmUgZXhhbXBsZS4KCjIwMDktMTItMDkgMTI6MTYgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIEFkZGVkIHNubXBhcGkubGliIHRvIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBzbm1wZC5leGUuCiAgIEFwcGFyZW50bHkgVmlzdWFsCiAgIFN0dWRpbyAyMDA1IGFuZCAyMDA4IG5lZWQgdGhpcyBsaWJyYXJ5IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdAogICB3aGVuIGxpbmtpbmcKICAgdGhlIGV4ZSwgd2hpbGUgZm9yIFZpc3VhbCBTdHVkaW8gNiBpdCBpcyBzdWZmaWNpZW50IHdoZW4gdGhpcwogICBsaWJyYXJ5IGlzCiAgIHByZXNlbnQgaW4gdGhlIGxpbmtlciBpbnB1dCBsaXN0IG9mIG5ldHNubXBtaWJzLmxpYi4KCjIwMDktMTItMDkgMDg6NDUgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NCBhbmQgcjE3ODczLCB0aGUgYnVpbGQKICAgcHJvY2VzcyBiZWNhbWUgc2ltcGxlci4KCjIwMDktMTItMDkgMDg6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRXhwb3J0IHN0cnRvdWxsIC0tIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE3ODg2LgoKMjAwOS0xMi0wOSAwODoyMSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUmV2ZXJ0ZWQgcjE3NzAwIGZvciBSRUFETUUud2luMzI6IGJlY2F1c2Ugb2YgcjE3ODg2LCBtb2RpZnlpbmcKICAgdGhlCiAgIHN0cnRvdWxsIGxpbmUgaW4gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgaXMgbm8gbG9uZ2VyCiAgIG5lY2Vzc2FyeS4KCjIwMDktMTItMDkgMDg6MTIgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAKICAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93czogc3dpdGNoZWQgZnJvbSBfc3RydG91aTY0KCkgdG8gc3RydG91bGwoKSBmb3IgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8KICAgMjAwMiBhbmQgbGF0ZXIgYmVjYXVzZSB0aGUgZm9ybWVyIGlzIG5vdCBmdWxseSBQT1NJWCBjb21wbGlhbnQuCiAgIFRoZSBzdHJ0b3VsbCgpCiAgIHVuaXQgdGVzdCBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91dHB1dCBmb3IgX3N0cnRvdWk2NCgpIHdpdGgKICAgTVNWQyAyMDA4OgogICB0ZXN0IDE0IGZhaWxlZCAoaW5wdXQgIjB4Iik6IGV4cGVjdGVkIGVuZCAxLCBnb3QgZW5kIDAKICAgdGVzdCAxNiBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCgoyMDA5LTEyLTA4IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogTWFrZSBzdXJlIHRoYXQgYSBtYXNrIGlzIGdpdmVuIHRvIG9wZW4KICAgd2hlbiBPX0NSRUFUIGlzIHNwZWNpZmllZAoKMjAwOS0xMi0wOCAxNjoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgdGhpcyBvdXQuCgoyMDA5LTEyLTA4IDE1OjQ3ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQnVpbGRzIGFnYWluIG9uIFVuaXggc3lzdGVtcyAoZml4ZWQgYSB0eXBvIGludHJvZHVjZWQgaW4gcjE3ODgxKS4KCjIwMDktMTItMDggMTU6MzcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4gV2l0aG91dCB0aGlzCiAgIGRlZmluZSB0aGUgTWljcm9zb2Z0CiAgIFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGEgYmVuaWduIHJlZGVmaW5pdGlvbiBvZgogICB0eXBlIHNvY2tsZW5fdC4KCjIwMDktMTItMDggMTU6MjggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ2xlYW5lZCB1cCB0aGUgY29kZSBmb3Igc2V0dGluZyBsaW5lIGJ1ZmZlcmluZzoKICAgLSBJbnN0ZWFkIG9mIGhhdmluZyBjYWxscyB0byBzZXR2YnVmKCkgaW4gbXVsdGlwbGUgZmlsZXMsIHRoZXJlCiAgIGlzIG5vdyBvbmUgY2FsbAogICB0byBzZXR2YnVmKCkgZnJvbSB0aGUgbmV3IGZ1bmN0aW9uIG5ldHNubXBfc2V0X2ZpbGVsb2cuIFRoZXNlCiAgIHNvdXJjZSBmaWxlcwogICBhcmU6IHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMKICAgYW5kIGFnZW50XG1pYmdyb3VwXGRpc21hblx0cmFjZXJvdXRlXHRyYWNlUm91dGVDdGxUYWJsZS5jLgogICAtIFVzaW5nIC1MbyAvIC1MZSBkb2VzIG5vdyBlbmFibGUgbGluZSBidWZmZXJpbmcgZm9yIHN0ZG91dCAvCiAgIHN0ZGVyciByZXNwZWN0aXZlbHkuCiAgIC0gUmVtb3ZlZCBjb2RlIGluIHNubXBkLmMgYW5kIHNubXB0cmFwZC5jIGZvciBzZXR0aW5nIGxpbmUKICAgYnVmZmVyaW5nIG9uIHN0ZG91dAogICBzaW5jZSBzZXR0aW5nIGxpbmUgYnVmZmVyaW5nIG9uIHN0ZG91dCBpcyBub3cgdHJpZ2dlcmVkIGJ5IHRoZQogICBjb21tYW5kLWxpbmUKICAgb3B0aW9uIC1Mby4KICAgQnVncyBmaXhlZDoKICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBhbHNvIHNldCBmb3Igc3RkZXJyIHdoZW4gdGhlCiAgIGNvbW1hbmQtbGluZSBvcHRpb24KICAgLUxlIGhhcyBiZWVuIHNwZWNpZmllZC4KICAgLSBMaW5lIGJ1ZmZlcmluZyBtb2RlIGlzIG5vdyBzZXQgY29ycmVjdGx5IGZvciBzdGRvdXQgb24gV2luZG93cwogICBzeXN0ZW1zCiAgIChjb21tYW5kLWxpbmUgb3B0aW9uIC1MbykuCgoyMDA5LTEyLTA4IDEyOjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgbG9jYWwgdmFyaWFibGVzIHRoYXQgd2VyZSBkZWZpbmVkCiAgIGJ1dAogICBub3QgdXNlZCBieSBvbmx5IGVuYWJsaW5nIHRoZSBsb2NhbCB2YXJpYWJsZSBkZWZpbml0aW9ucyBvbiB0aGUKICAgcGxhdGZvcm0gdGhhdCB1c2VzIHRoZXNlIHZhcmlhYmxlcyAoTGludXgpLgoKMjAwOS0xMi0wOCAxMjoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQWRkZWQgI2luY2x1ZGUgIm1pYmdyb3VwL3V0aWxfZnVuY3MuaCIuIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDktMTItMDggMTI6MjUgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgSW5jbHVkZSB0aGUgZ2V0aG9zdGVudCgpIC8gc2V0aG9zdGVudCgpIGRlY2xhcmF0aW9ucyBiZWZvcmUgdXNpbmcKICAgdGhlc2UKICAgZnVuY3Rpb25zLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcgb24gV2luZG93cyBzeXN0ZW1zLgoKMjAwOS0xMi0wOCAxMjoxMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeGVkIGFuIGluY29uc2lzdGVuY3kgKHdoaWNoIGlzIGFsbG93ZWQgYnkgdGhlIEFOU0kgQyBzdGFuZGFyZCkKICAgYmV0d2VlbgogICBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhbmQgZnVuY3Rpb24gZGVmaW5pdGlvbiBvZgogICBuZXRzbm1wX2FkZF9nbG9iYWxfdHJhcGhhbmRsZXIgYW5kCiAgIG5ldHNubXBfYWRkX2RlZmF1bHRfdHJhcGhhbmRsZXIgc3VjaAogICB0aGF0IHRoZSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBjb21waWxlciBkb2VzIG5vIGxvbmdlciBjb21wbGFpbgogICBhYm91dAogICB0aGlzLgoKMjAwOS0xMi0wOCAxMjowOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGltcGxpY2l0bHkgY2FzdGluZyBhd2F5IGNvbnN0bmVzcy4KCjIwMDktMTItMDggMTI6MDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT25seSBjb21waWxlIHRoZSB3aW5FeHRETEwgc291cmNlIGNvZGUgaWYgdGhlIHByZXByb2Nlc3NvciBtYWNybwogICBVU0lOR19XSU5FWFRETExfTU9EVUxFIGhhcyBiZWVuIGRlZmluZWQuCgoyMDA5LTEyLTA4IDEyOjAzICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQWRkZWQgbWlzc2luZyAjZGVmaW5lIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLgoKMjAwOS0xMi0wOCAxMjowMSAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgTWFkZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBleGUncyBhbmQgbGliJ3MgZXhwbGljaXQgc3VjaCB0aGF0CiAgIFZpc3VhbAogICBTdHVkaW8gY2FuIGZpZ3VyZSBvdXQgdGhlIHByb3BlciBidWlsZCBvcmRlciBpbnN0ZWFkIG9mIHRoZSB1c2VyCiAgIGhhdmluZwogICB0byBmaWd1cmUgb3V0IHRoZSBidWlsZCBvcmRlci4KCjIwMDktMTItMDggMDk6NDYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzIC8gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW86IGRpc2FibGVkIHRoZSBjb21waWxlciB3YXJuaW5nCiAgIGFib3V0CiAgIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzICg0MDE4KSBiZWNhdXNlIHRoaXMgd2FybmluZyBkb2VzIG5vdAogICB5aWVsZAogICBhbnkgdXNlZnVsIGluZm9ybWF0aW9uLgoKMjAwOS0xMi0wOCAwOToxNyAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzYzOSAocGF0Y2ggMjc4MDQxMSAtLSBmaXggY29tcGlsZXIgd2FybmluZ3MpOgogICBhcHBsaWVkCiAgIHRoaXMgcGF0Y2ggdG8gbmV0LXNubXAtY29uZmlnLmguaW4gdG9vIHN1Y2ggdGhhdAogICBuZXQtc25tcC1jb25maWcuaCBhbmQKICAgbmV0LXNubXAtY29uZmlnLmguaW4gbWF0Y2ggYWdhaW4uCgoyMDA5LTEyLTA4IDA4OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFnZW50eF9zeXNPUl9jYWxsYmFjaygpIGRvZXMgbm90IHRyaWdnZXIgYQogICBjb21waWxlcgogICB3YXJuaW5nIHdoZW4gdGhlIHRoaXJkIGFyZ3VtZW50IHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGhhcyBiZWVuCiAgIGRlY2xhcmVkIGNvbnN0LgoKMjAwOS0xMi0wOCAwODoxNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ2hhbmdlZCB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RydG91bGwoKSBmcm9tICd1bnNpZ25lZCBsb25nIGxvbmcnCiAgICh3aGljaAogICBpcyBub3QgdmFsaWQgQzg5KSB0byAndWludDY0X3QnIChkZWNsYXJlZCBpbgogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+KS4KICAgVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGNvbXBpbGUgYWdhaW4gd2l0aAogICBNU1ZDIDYuMC4KCjIwMDktMTItMDcgMTA6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBUd2VhayBtaXNzaW5nIHN1YmlkZW50aWZpZXIgcHJvY2Vzc2luZyB0byBiZSBtb3JlIHR5cGUtYXdhcmUuCiAgIChBbiBpc3N1ZSB3aXRoIEFJWCwgYXQgbGVhc3QpCgoyMDA5LTEyLTA2IDE4OjM4ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogTWFrZSB0aGUgbGlzdHMgb2YgY29tMlNlYypFbnRyaWVzIHN0YXRpYwoKMjAwOS0xMi0wNiAxODozNCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGl0ZXJhdG9yIHZhcmlhYmxlIGluIG5ldHNubXBfKl9nZXRTZWNOYW1lIGNvbnN0CgoyMDA5LTEyLTA2IDE4OjI5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogQ2hhbmdlIHRoZSB0eXBlcyBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogICBuZXRzbm1wXypfZ2V0U2VjTmFtZSBmcm9tIGNoYXIqIHRvIGNvbnN0IGNoYXIqIHNpbmNlIHRoZXkgcG9pbnQKICAgaW50byBpbnRlcm5hbCBzdHJ1Y3R1cmVzLgoKMjAwOS0xMi0wNSAyMDoxOSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBmaXggZGVjbGFyYXRpb24gb2Ygc3RydG91bGwKCjIwMDktMTItMDUgMTc6NDIgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjYWxsIG5ldHNubXBfcmVhZF9tb2R1bGUgaW5zdGVhZCBvZiByZWFkX21vZHVsZSB0byBtYWtlIGl0CiAgIGNvbXBpbGUgd2l0aAogICBORVRTTk1QX0NMRUFOX05BTUVTUEFDRQoKMjAwOS0xMi0wMiAxNTozOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgaW52YWxpZCBhY2Nlc3MgdG8gbWVtb3J5IGluIFRDUC1NSUIKICAgVGhpcyBwYXJ0bHkgcmV2ZXJ0cyBwYXRjaCAxNzcxOSAtIHRoZSBlbnRyaWVzICphcmUqIHVzZWQgYWZ0ZXIKICAgcmF3X2RhdGEgY29udGFpbmVyIGlzIGZyZWVkLiBUaGVzZSBlbnRyaWVzIHNob3VsZCBiZSBmcmVlZCB3aGVuCiAgIGFzc29jaWF0ZWQgcm93cmVxX2N0eCBpcyBmcmVlZC4KCjIwMDktMTItMDIgMDg6MzAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHVkcFRhYmxlIGluZGV4ZXMgb24gYmlnLWVuZGlhbiA2NGJpdCBMaW51eC4KICAgVGhlIGluZGV4IHdhcyBhbHdheXMgJzAuMC4wLjAnIGluc3RlYWQgb2YgcmVhbCBsb2NhbCBJUCBhZGRyZXNzLgoKMjAwOS0xMi0wMSAxMjozNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgVXBkYXRlIGEgcmVkdW5kYW50IChhbmQgcHJvYmFibHkgaW5hY2N1cmF0ZSkgY29tbWVudC4KCjIwMDktMTItMDEgMTI6MzEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODIyMzYwOiBGaXggbWVtb3J5IGxlYWsgd2hlbiBidWlsZGluZwogICB0YWJsZSBPSURzCgoyMDA5LTEyLTAxIDEyOjA4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBCVUdTOiAyODM3OTk4OiBIYW5kbGUgbWlzc2luZyBpbnN0YW5jZQogICBzdWJpZGVudGlmaWVycyBpbiByZXN1bHRzCgoyMDA5LTEyLTAxIDExOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg0MTAwODogUHJvdGVjdCBhZ2FpbnN0IGNyYXNoIGZvbGxvd2luZwogICBmYWlsZWQgQWdlbnRYIHJlc3BvbnNlCgoyMDA5LTEyLTAxIDA3OjM0ICBqc2FmcmFuZWsKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXggcmVzcG9uZGluZyB0byBicm9hZGNhc3QgcmVxdWVzdHMuCiAgIFVEUCByZXNwb25zZXMgYXJlIHNlbnQgd2l0aCBzb3VyY2UgSVAgYWRkcmVzcyB3aGljaCB3YXMKICAgZGVzdGluYXRpb24gb2YKICAgYXBwcm9wcmlhdGUgcmVxdWVzdHMgKGltcGxlbWVudGVkIGluIFNWTiByZXYuIDE1MjE1KS4gQnV0IGlmIHRoZQogICBkZXN0aW5hdGlvbgogICBvZiBhIHJlcXVlc3QgaXMgYnJvYWRjYXN0IElQIGFkZHJlc3MsIHRoZSByZXF1ZXN0IHdhcyBzZW50IHdpdGgKICAgdGhlIGJyb2FkY2FzdAogICBhZGRyZXNzIGFzIHNvdXJjZS4gc2VuZG1zZygpIG9uIExpbnV4IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBhbmQKICAgcmV0dXJucyBlcnJvcgogICAtPiByZXNwb25zZSBpcyBub3Qgc2VudC4gSW4gb3JkZXIgdG8gc2VuZCByZXNwb25zZXMgZnJvbSB0aGUgc2FtZQogICBpbnRlcmZhY2UsCiAgIGludGVyZmFjZSBpbmRleCBvZiB0aGUgYXBwcm9wcmlhdGUgaW50ZXJmYWNlIG11c3QgYmUgdXNlZC4KCjIwMDktMTItMDEgMDA6MjkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg1Mi4KCjIwMDktMTItMDEgMDA6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYWN0dWFsbHkgY29tcGlsZSBhZnRlciAxNzg0Mi4KCjIwMDktMTEtMzAgMTY6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODczODU4OiBGaXggaGFuZGxpbmcgb2Ygc2NoZWRPd25lciBpbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFNjaHViZXJ0LgoKMjAwOS0xMS0zMCAxNjo0NiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVR1M6IDI4ODg1Njk6IEZpeCBnZW5lcmF0aW9uIG9mIHRhYmxlIGNvbHVtbnMKICAgYXJyYXkKCjIwMDktMTEtMzAgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODk0MDU5OiBIYW5kbGUgZXJyb3JzIHdoZW4gY291bnRpbmcKICAgaW50ZXJmYWNlcwoKMjAwOS0xMS0zMCAxNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyODk3MDAwOiBTdXBwcmVzcyAzMi1iaXQgY291bnRlciB0cnVuY2F0aW9uCiAgIHdhcm5pbmdzLgoKMjAwOS0xMS0zMCAxNTozNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAzMDkyOiBGaXggYnJva2VuIGhhbmRsaW5nIG9mIGJyb2FkY2FzdAogICBlbnRyaWVzLgoKMjAwOS0xMS0zMCAxNToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDEwMjk6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uCiAgIENsb3NlSGFuZGxlKCkKICAgRW5kaWFuIHByb2JsZW1zIGFscmVhZHkgYWRkcmVzc2VkIGJ5IHBhdGNoICMyODM1NTc2CgoyMDA5LTExLTMwIDE1OjEzICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI4OTA5MzE6IEJldHRlciBoYW5kbGluZyBvZiBDb3VudGVyNjQKICAgdmFsdWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggUm9tYW5vdi4KCjIwMDktMTEtMzAgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODg3ODE2OiBQcm90ZWN0IGFnYWluc3QgZGl2aXNpb24tYnktemVybwogICBjcmFzaAoKMjAwOS0xMS0zMCAxNTowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMjIwOiBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbgogICBpZlhUYWJsZSBpcyBub3QgaW5jbHVkZWQuCgoyMDA5LTExLTMwIDE0OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMTU1OiBGaXggbWVtb3J5IGxlYWsgaW4gcHJveHkKICAgaGFuZGxpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEdvd3RoYW0gVGhvbW1hbmRyYS4KCjIwMDktMTEtMzAgMTQ6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMwOTI6IFN1cHBvcnQgbW9uaXRvcmluZyBwcm9jZXNzZXMgdGhhdAogICBzaG91bGQgbm90IGJlIHJ1bm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IENocmlzdGlhbiAoY2c3NSkuCiAgIAogICBRbjogU2hvdWxkIHRoaXMgZnVuY3Rpb25hbGl0eSBiZSBiYWNrLXBvcnRlZCB0byBlYXJsaWVyIGxpbmVzPwoKMjAwOS0xMS0zMCAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4Nzc1MTg6IEZpeCBoYW5kbGluZyBvZiBzY29wZWQgQWdlbnRYCiAgIHZhcmlhYmxlcwoKMjAwOS0xMS0zMCAxNDowMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4MzU1NzY6IEZpeCBlbmRpYW5uZXNzIGlzc3VlcyBpbgogICBwYXNzL3Bhc3NfcGVyc2lzdAoKMjAwOS0xMS0yNyAwODo1NCAganNhZnJhbmVrCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmM6CgogICBSZW1vdmUgZXhlY3V0YWJsZSBhdHRyaWJ1dGUgZnJvbSBzb3VyY2UgZmlsZXMuCgoyMDA5LTExLTI1IDIwOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgYWxsIHRoZSBvaWRzIGFuZCBvaWQgbGVuZ3RocyBpbiBhZ2VudF90cmFwLmMKICAgY29uc3QgYW5kIHVzZSB0aGVtIGZyb20gZXZlcnl3aGVyZS4KCjIwMDktMTEtMjUgMjA6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBJbnN0YWxsIGxpYnJhcnkvb2lkLmguIFRoYW5rcyB0byAiVG9tYXN6IExpcyIKICAgd2hvIHNwb3R0ZWQgdGhlIGJ1Zy4KCjIwMDktMTEtMjUgMDk6NDcgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIENvbW1lbnQtb25seSBjaGFuZ2U6IGNoYW5nZWQgdGhlIG5hbWUgaW4gdGhlIGZpbGUgaGVhZGVyIGZyb20KICAgdGVzdGhhbmRsZXIuaAogICB0byBpbnN0YW5jZS5oIHN1Y2ggdGhhdCBpdCBub3cgbWF0Y2hlcyB0aGUgZmlsZW5hbWUuCgoyMDA5LTExLTI0IDA3OjQ5ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdAoKMjAwOS0xMS0yMyAwNzowNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBlbnRlcnByaXNlIGFyZ3VtZW50IG9mCiAgIG5ldHNubXBfc2VuZF90cmFwcyBhbmQgc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBjb25zdAoKMjAwOS0xMS0yMyAwNzowMiAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIG5hbWUgYXJndW1lbnQgdG8gZmluZF92YXJiaW5kX2luX2xpc3QKICAgY29uc3QKCjIwMDktMTEtMjIgMjM6MjUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBSZW1vdmUgc29tZSBsb2NhbCByZWRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMKCjIwMDktMTEtMjIgMDE6MDMgIG1hZ2ZyCgogICAqICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZywgV2luMzI6IFJlbW92ZSBhIGZldyB1bnVzZWQgY29uZmlndXJlIHN5bWJvbHMKCjIwMDktMTEtMjEgMDg6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL1NubXAtd2luRXh0RExMLmgsIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBSZXBsYWNlZCBhbiBhY2NpZGVudGFsbHkgY29tbWl0dGVkIGZpbGUgYnkgdGhlIHByb3BlciBjb250ZW50cy4KCjIwMDktMTEtMjAgMTY6MjkgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUmV2ZXJ0ZWQgYWNjaWRlbnRhbGx5IG1lcmdlZCBjaGFuZ2VzLgoKMjAwOS0xMS0yMCAxNjoyNiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL3NubXAtd2luZXh0ZGxsLmg6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDA5LTExLTIwIDE2OjE4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFNwZWxsaW5nIGZpeCBpbiBDIHNvdXJjZSBjb2RlIGNvbW1lbnRzOiByZXBsYWNlZCAncmV0cml2YWwnIGJ5CiAgICdyZXRyaWV2YWwnLgoKMjAwOS0xMS0yMCAxNjoxNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCBhIG5hbWluZyBpbmNvbnNpc3RlbmN5OiByZXBsYWNlZCB0d28gb2NjdXJyZW5jZXMgd2luRXh0RGxsCiAgIGJ5IHdpbkV4dERMTCBpbiBzb3VyY2UgY29kZSBjb21tZW50cy4KCjIwMDktMTEtMTkgMjI6NTIgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5MDAwNzg6IEFkZCBzdXBwb3J0IGZvciBPSUQgdmFyaWFibGVzIHdpdGgKICAgc2l6ZSBpbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGJ5dGVzLCBjb3JyZWN0IHN5c09iamVjdElEIHRvIHVzZQogICB0aGlzLgoKMjAwOS0xMS0xMyAxMjo1OSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGxvZ2dpbmcgb2YgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyCiAgIGJpdHMnIGluIElQLU1JQiBhbmQgVENQLU1JQgogICBUaGUgY291bnRlcnMsIHdoaWNoIGdyb3cgZmFzdCBhcmUgbm93IGN1dCB0byAzMmJpdHMuCgoyMDA5LTExLTEyIDA4OjI2ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgVXNlIGJpZyBwcmludGYncyBpbnN0ZWFkIG9mIG1hbnkgc21hbGwgb25lcyB0byBzYXZlIGEgZmV3IGh1bmRyZWQKICAgYnl0ZXMgb24gdGhlIGZpbmFsIGV4ZWN1dGFibGUgc2l6ZS4KCjIwMDktMTEtMTIgMDI6MjQgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG9sLmMsICAgCiAgICAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIEFDX1JFUExBQ0VfRlVOQ1MgdG8gaGFuZGxlIGNvZGUgdGhhdCBpcwogICBtaXNzaW5nIG9uIHNvbWUgcGxhdGZvcm1zLgoKMjAwOS0xMS0xMSAwOTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggY2FjaGUgZnJlZSByb3V0aW5lIHRvIG1hdGNoIGhlYWRlciBkZWNsYXJhdGlvbi4KICAgUmV0dXJuIHN1Y2Nlc3MvZmFpbHVyZSB2YWx1ZXMgZnJvbSBjYWNoZSBsb2FkIHJvdXRpbmUuCiAgIFByb2JsZW0gaWRlbnRpZmllZCBieSBYdWFuLgoKMjAwOS0xMC0zMCAwOTo1MSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaCwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgTkVXUzogc25tcGxpYjogUmV2ZXJ0IDE3ODA4LCBpbnN0ZWFkIGZhY3RvciBvdXQgdGhlIGRlY2xhcmF0aW9uCiAgIG9mIG9pZCB0byBpdCdzIG93biBmaWxlIGFuZCBpbmNsdWRlIHRoYXQgZmlsZSBmcm9tIGJvdGggdHlwZXMuaAogICBhbmQgYXNuMS5oCgoyMDA5LTEwLTMwIDA4OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgCiAgICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHNubXBuZXRzdGF0OiBBZGQgY29ycmVjdCBzaXplIHByZWZpeGVzCiAgIHdoZW4gcHJpbnRpbmcgdmFyaWFibGVzIG9mIHR5cGUgb2lkLgoKMjAwOS0xMC0zMCAwODowNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIG9pZCB0byBiZSBhIDMyLWJpdCB0eXBlIG9uIElMUDY0IGFuZAogICBMUDY0IHBsYXRmb3Jtcy4KCjIwMDktMTAtMzAgMDg6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIG9pZCB0eXBlZGVmIGZyb20KICAgPG5ldC1zbm1wL2xpYnJhcnkvYXNuMS5oPi4gSXQgaXMgc3RpbGwgcHJlc2VudCBpbgogICA8bmV0LXNubXAvdHlwZXMuaD4sIHVzZSB0aGF0IGZpbGUuCgoyMDA5LTEwLTI4IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGRvbid0IHJlcXVpcmUgc3ViYWdlbnRfaW5pdCgpIGlmIG5vdCBvbmx5IGJ1aWxkaW5nIG1hc3RlciBhZ2VudAogICBjb2RlCgoyMDA5LTEwLTI3IDA2OjQ0ICBtYWdmcgoKICAgKiAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCAgIAogICAgICBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cyB0byB1X2NoYXIqCgoyMDA5LTEwLTE0IDIzOjEyICBtYWdmcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuCiAgIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgoKMjAwOS0xMC0xMiAyMDoyOCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgcnAgdmFyaWFibGUgdG8gdGhlIHNtYWxsZXN0IHBvc3NpYmxlIG9uZS4KCjIwMDktMTAtMDkgMTI6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoyODcxNzQ3OiBwbHVnIG1lbW9yeSBsZWFrIGluIE9JRAogICBwcm9jZXNzaW5nLgogICBUaGUgbWVtb3J5IGxlYWtlZCB3aGVuIHNtYWxsIE9JRCwgd2hpY2ggY291bGQgZml0IHByZS1hbGxvY2F0ZWQKICAgdnAtPm5hbWVfbG9jLCB3YXMgcGxhY2VkIGluIGRpZmZlcmVudCAoYWxsb2NhdGVkKSBvbmUuCgoyMDA5LTEwLTA5IDA1OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBCVUc6IDI4MzgyNDM6IENvcnJlY3QgdGhlIG91dHB1dCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKYWNrIEh1YW5nIG9mIFF1YWxjb21tIHdobyBwb2ludGVkIG91dCB0aGlzIGJ1Zy4KCjIwMDktMTAtMDkgMDU6MDAgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgcGFyc2luZyBvZiByYW5nZXMgdG8gYWNjZXB0IGFsbAogICB2YWxpZCB2YWx1ZXMuCgoyMDA5LTEwLTA3IDIyOjI0ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogbWlzYzogUEFUQ0g6IDI4MzYxMTI6IFVzZSB0aGUgcmlnaHQgbW9kaWZpZXIgd2hlbgogICBwcmludGluZyBzaXplX3QgYW5kIHNzaXplX3QgdmFyaWFibGVzLgoKMjAwOS0xMC0wNyAxMjo1MCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGNyZWF0aW9uIG9mIHZpZXdzIHVzaW5nIHNubXB1c20sIE9JRHMgd2l0aAogICBpbmRleGVzID4gMjU1IGFyZSBhbGxvd2VkIG5vdy4KICAgVGhpcyByZXZlcnRzIFNWTiBjb21taXQgIzc0OTIuCgoyMDA5LTEwLTA1IDE5OjE5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgc3BlbGxpbmcgb2YgX19jcGx1c3BsdXMgd2hlbgogICBjaGVja2luZyBpZiB0aGUgZmlsZSBzaG91bGQgYmUgd3JhcHBlZCBpbiBleHRlcm4gIkMiLgoKMjAwOS0xMC0wNSAwNjoxMyAgbWFnZnIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgQ0hBTkdFUzogc25tcHdhbGs6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIHRoZSBlbmQgb2lkIGlzIGxvbmdlcgogICB0aGFuIHRoZSBjdXJyZW50IG9pZCBjb3JyZWN0bHkKCjIwMDktMDktMzAgMTA6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYWNrYWdlIHZlcnNpb24KICAgaW5mb3JtYXRpb24gY3Jhc2hpbmcgdGhlIGFnZW50LgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IElueWF2ZW4gU2FrYXJhaS4KCjIwMDktMDktMjcgMTQ6NTkgIGFsZXhfYgoKICAgKiAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzI6IEJpbmFyeSBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIHNjcmlwdCB1cGRhdGVzLgoKMjAwOS0wOS0yNCAwMDowOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjU0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo0MiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo0MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcmVtb3ZlIFNWTiBicmFuY2ggd29yZGluZwoKMjAwOS0wOS0yMyAyMzozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcHJvcGVyIHByb2plY3QgY2FwaXRhbGl6YXRpb24KCjIwMDktMDktMjMgMjM6MzUgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzozMCAgaGFyZGFrZXIKCiAgICogbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjIgMjE6NTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggdHlwb3MKCjIwMDktMDktMTQgMjI6NDkgIGhhcmRha2VyCgogICAqIENIQU5HRVM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjo0OCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6MzkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6MzYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWl4LCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgUGF0Y2ggZnJvbSBtYWdmciBmb3IgNS41IHNwZWNpZmljIGFpeCBidWlsZCBmaXhlcwoKMjAwOS0wOS0wMiAwNzoxMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlbmFtZSBNSUIgbWFjcm8gdG8gTkVUU05NUF9NSUIyX09JRCwgTUlCIGlzCiAgIHRvbyBnZW5lcmljIGFuZCBtYXkgY29uZmxpY3Qgd2l0aCBhcHBsaWNhdGlvbnMuCiAgIAogICBUaGUgb2xkIE1JQiBtYWNybyBpcyBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1bmxlc3MKICAgTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgaXMgZGVmaW5lZC4KCjIwMDktMDgtMzEgMTk6MzggIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGRpdGlvbmFsIFJGQyBtaWJzCgoyMDA5LTA4LTMxIDE5OjM3ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBJQU5BIGZpeGVkIGEgYnVnCgoyMDA5LTA4LTI5IDA3OjI5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgoyMDA5LTA4LTI5IDA3OjI4ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiByZXQgaXMgb25seSB1c2VkIGluIHNldHRhYmxlIHRhYmxlcyBzbyBvbmx5IGRlY2xhcmUgaXQKICAgdGhlbi4KCjIwMDktMDgtMjkgMDc6MjQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlcGxhY2UgdGhlIF9vaWRfbGVuIHZhcmlhYmxlIHdpdGggYW4gZXhwbGljaXQgY2FsbCBvZgogICBPSURfTEVOR1RILgoKMjAwOS0wOC0yOSAwNzoyMSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogTWFrZSBldmVyeSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBzdGF0aWMgc3RhdGljLiBSZW1vdmUgdGhlCiAgIGRlY2xhcmF0aW9ucyBvZiB0aGUgc3RhdGljIGZ1bmN0aW9ucyBhbmQgdGhlIHByaXZhdGUgZGVmaW5lcyBmcm9tCiAgIHRoZSBoZWFkZXIuCgoyMDA5LTA4LTI5IDA3OjE5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW9yZGVyIHRoZSBmdW5jdGlvbnMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zLgoKMjAwOS0wOC0yOSAwNzoxNiAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogbmV0c25tcF90YWJsZV9yZWdpc3RlciBzaG91bGQgYmUgbmV0c25tcF9yZWdpc3Rlcl90YWJsZQogICBhbmQgdGFrZSBvbmx5IHR3byBhcmdtZW50cy4KCjIwMDktMDgtMjkgMDc6MTQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IGJ1aWxkX29pZCBleHBlY3RzIGEgcG9pbnRlciB0byBhbGxvY2F0ZWQgb2lkLiBDaGFuZ2UgdG8KICAgdXNlIGJ1aWxkX29pZF9ub2FsbG9jIGFuZCByZW1vdmUgb25lIGNvcHkgb2YgdGhlIGluZGljZXMuCgoyMDA5LTA4LTI5IDA3OjEwICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBUaGVyZSBpcyBubyBpbmRleF9vaWRfbGVuIG1lbWJlciBpbiBzdHJ1Y3QgZW50cnkuIFVzZSB0aGUKICAgaW50ZW5kZWQgbG9jYWwgdmFyaWFibGUgaW5kZXhfb2lkX2xlbi4KCjIwMDktMDgtMjkgMDc6MDYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IENvcnJlY3QgdGhlIHJldHVybiB0eXBlIG9mICR7aX1fZ2V0KmVudHJ5IHRvIG1hdGNoIHRoZQogICByZXR1cm5lZCB0eXBlLgoKMjAwOS0wOC0yNiAyMjozNyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgd2h3b29wczsgYmxldyB0aGUgY2hhbmdlbG9nIGZvciByYzIKCjIwMDktMDgtMjYgMTc6MzggIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0yNiAxNzoyOCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICB1cGRhdGVkIGJhc2VkIG9uIG5ldyBTRiB1cGxvYWQgbWV0aG9kczsgbm8gbG9uZ2VyIGFzIGF1dG9tYXRhYmxlCgoyMDA5LTA4LTI2IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIGZyb20gSmFuIHRvIGVuZGxlc3MgbG9vcCBpbiBkZWZhdWx0IHJvdXRlcwogICBvbiBsaW51eAoKMjAwOS0wOC0yNiAxNzoyNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBhcHBseSBwYXRjaCBmcm9tIEphbiB0byBmaXggQysrIHdyYXBwZXIKCjIwMDktMDgtMjYgMTQ6NTMgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIEluaXRpYWwgc3RhYiBhdCBhIG1pbmltYWwtaGVscGVyIChyYXcpIHRhYmxlIHRlbXBsYXRlLAogICBsZWF2aW5nIG1vc3Qgb2YgdGhlIHdvcmsgdG8gdGhlIHVzZXItcHJvdmlkZWQgTUlCIGhhbmRsZXIuCgoyMDA5LTA4LTI2IDE0OjUwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm90ZWN0IGFnYWluc3QgYm9ndXMgZmFpbHVyZXMgKHJldHVybmluZyAwKSBhbmQgc3Vic2VxdWVudAogICBkb3VibGUtZnJlZXMsCiAgIGR1ZSB0byAxNS0vMzEtYml0IG1hc2tpbmcgd2hlbiBzZWxlY3RpbmcgcmVxdWVzdCBJRHMuIElkZW50aWZpZWQKICAgYnkga3JvbWVza3kuCgoyMDA5LTA4LTIwIDEzOjMwICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGx1ZyBsZWFrcyBpbiBpcElmU3RhdHNUYWJsZSwKICAgaXB2NlNjb3BlWm9uZUluZGV4VGFibGUsIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUuCiAgIAogICBJdCBzZWVtcyB0byBtZSB0aGUgdGFibGVzIHdlcmUgd3JvbmdseSBnZW5lcmF0ZWQgd2l0aAogICBtMmNfZGF0YV9hbGxvY2F0ZSBvcgogICBzb21lb25lIGZvcmdvdCB0byByZWxlYXNlIHRoZSB1c2VyIHByb3ZpZGVkIGRhdGEuCgoyMDA5LTA4LTEyIDE1OjAwICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBmaXggbGlidG9vbCB2ZXJzaW9uIGluIE5FV1MKCjIwMDktMDgtMTEgMDA6NDIgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIENoYW5nZUxvZzoKCiAgIHdob29wczsgYWRkIHJlYWwgY2hhbmdlbG9nIGVudGVyaWVzIGZvciAucmMxCgoyMDA5LTA4LTEwIDIzOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCB0eXBvIGluIHN2bjJjbCBsaW5lCgoyMDA5LTA4LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA4LTEwIDIxOjMyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTEwIDIxOjIxICBoYXJkYWtlcgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0wNyAxMDozMiAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIENvcnJlY3QsIGNvbnNvbGlkYXRlLCBjbGFyaWZ5IGFuZCBjbGVhbnVwIHRoZSBjYXRhbG9nIG9mIGN1cnJlbnQKICAgY2hhbmdlcy4KCjIwMDktMDgtMDYgMDc6NTcgIGR0czEyCgogICAqIEZBUToKCiAgIEV4cGFuZCBvbiBleGVjIHZzIGV4dGVuZC4KCjIwMDktMDgtMDUgMjA6MDcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI4MjIzNTU6IEZpeCBtZW1vcnkgbGVha3Mgb24KICAgdWRwRW5kcG9pbnRUYWJsZSAobGludXgpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW5rIExpY2h0ZW5oZWxkCgoyMDA5LTA4LTA1IDE5OjA1ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjgyMjMzNzogRml4IG1lbW9yeSBsZWFrIGluCiAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA5LTA4LTA1IDE1OjE2ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgV2hlbiBkZWxldGluZyByb3cgY29udGV4dCwgZGVsZXRlIGFsc28gYXNzb2NpYXRlZCBkYXRhLgoKMjAwOS0wOC0wNSAxNToxNSAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gTmV0VG9NZWRpYVRhYmxlLgogICBUaGUgY29udGFpbmVyIHVzZWQgdG8gdHJhY2sgZW50cmllcyB0byBkZWxldGUgZnJvbSBjYWNoZSBzaG91bGQKICAgYmUgcmVsZWFzZWQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgoyMDA5LTA4LTA1IDE1OjEyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFVEUC0gYW5kIFRDUC1NSUIuCiAgIFRoZSBkYXRhIGZyb20gcmF3X2RhdGEgYXJlIGNvcGllZCB0byBjYWNoZSwgc28gaXQgc2hvdWxkIGJlCiAgIGZyZWVkLgoKMjAwOS0wOC0wNSAxMDoxNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IGFwcHM6IEJVRzogMjgxMTU3NzogRml4IGJ1ZyBpbiBHZXRCdWxrIGhhbmRsaW5nLgogICBEb24ndCBnZXQgY29uZnVzZWQgYnkgaW5kZXggdmFsdWVzIHRoYXQgY29udGFpbiBhICc6JyBjaGFyYWN0ZXIuCgoyMDA5LTA4LTA0IDIxOjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDI4MjcyNjk6IFN1cHByZXNzIG5vbi1vcmRlcmVkIFRPRE8gY29tbWVudHMuCgoyMDA5LTA4LTA0IDIxOjM1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBjb2RlIGZvciBhIHNpbmdsZSB0YWJsZSwKICAgYXMgd2VsbCBhcyBhIGxhcmdlciBncm91cC4KICAgQWxzbyBhZGRyZXNzZXMgYnVnIDIxNTAyODUKCjIwMDktMDgtMDQgMjE6MTYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIHNubXBsaWI6IGZyb20gIkJhcnQgdmFuIEFzc2NoZSAmIE1hZ251cyBGcm9tcmVpZGUiOiBNb3JlIHVwZGF0ZXMKICAgdG8gc3RydG91bGwuYwoKMjAwOS0wOC0wNCAxMDo1NyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmcm9tICJNYXJjdXMgUsO8Y2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgogICA2NC1iaXQgY291bnRlcnMgaW4gaXBTeXN0ZW1TdGF0c1RhYmxlIGdldCBiaWdnZXIgdGhhbiAyXjMyCgoyMDA5LTA4LTAzIDE5OjI3ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI4Mjc3MjI6IGZyb20gIkJhcnQgVmFuIEFzc2NoZSI6IEltcHJvdmUKICAgc3RydG91bGwgdG8gYmUgbGVzcyBNU1ZDLXNwZWNpZmljCgoyMDA5LTA4LTAzIDE4OjM4ICBtYWdmcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UgZnJvbSB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgc2hvdWxkCiAgIGJlIGluc3RhbGxlZAoKMjAwOS0wNy0yNyAxMjo0MSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA3LTI3IDEyOjExICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMzoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZQoKMjAwOS0wNy0yNyAxMjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIENIQU5HRVM6IGZyZWVic2Q6IHBhdGNoIGZyb20gQ2V6YXJ5IE1vcmdhIHRvIGZpeCBhIG1ha2UgdGVzdCBvbgogICBmcmVlYnNkCgoyMDA5LTA3LTI3IDEyOjAyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA3LTI3IDExOjUyICBoYXJkYWtlcgoKICAgKiAgRkFRLCBORVdTLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDctMjcgMDg6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICByZXZlcnQgYWNjaWRlbnRpYWxseSBhcHBsaWVkIHBhdGNoCgoyMDA5LTA3LTI3IDA4OjM3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBhZGRlZCBhIHRlc3QgY2FzZSBmb3IgdWRwL2R0bHMKCjIwMDktMDctMjcgMDg6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGNhcnJ5IGEgc2VjTmFtZQoKMjAwOS0wNy0yNiAyMTozNCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIGZvciBXb3Jrc3BhY2UgYnVpbGQuCgoyMDA5LTA3LTI2IDE4OjIwICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLUFkZGVkIHN0cnRvdWxsIGZ1bmN0aW9uIGFuZCBjb25maWd1cmUgY2hlY2sgZm9yIHN5c3RlbXMgd2l0aG91dAogICBpdCBzdWNoIGFzIFdpbjMyIE1TVkMgNgogICAtV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIC0gcmVxdWlyZXMgbmV3IHN0cnRvdWxsLmMgZmlsZQogICAtV2luMzI6IE5ldyBidWlsZC1iaW5hcnkgc2NyaXB0IHRvIHNpbXBsaWZ5IGJ1aWxkaW5nIHRoZSBXaW5kb3dzCiAgIGJpbmFyeSBwYWNrYWdlLgoKMjAwOS0wNy0yNSAwNTozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBNYWtlIHN1cmUgYSBtZXNzYWdlIGlzIHdyaXR0ZW4gaWYgdGhlIHJlbGV2YW50IHRhYmxlIGlzIG1pc3NpbmcuCgoyMDA5LTA3LTIzIDIxOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGVtYWlsIGFkZHJlc3MgaW4gUkVBRE1FLgoKMjAwOS0wNy0yMyAwMTowNyAgYWxleF9iCgogICAqICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwOCsgZml4ZXMuCgoyMDA5LTA3LTIzIDAwOjU1ICBhbGV4X2IKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwNSsgYnVpbGQgZml4ZXMuIFRoYW5rcyB0byBCYXJ0IFZhbiBBc3NjaGUuCgoyMDA5LTA3LTIxIDEyOjIyICBkdHMxMgoKICAgKiAgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMucm93LmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEFkZCBzaW1wbGUgZGVidWcgb3V0cHV0IHRvIG1pYjJjIHRlbXBsYXRlcy4KCjIwMDktMDctMjEgMTI6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBtaXNzaW5nIHNlbWljb2xvbiB0eXBvcy4KCjIwMDktMDctMjEgMDk6MTUgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBzdWdnZXN0ZWQgZW50cmllcy4KCjIwMDktMDctMjAgMTk6MjQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09ESU5HIHNlY3Rpb24uCgoyMDA5LTA3LTIwIDExOjA5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi5oOgoKICAgQWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgZnJvbSBwYXRjaCAjMjA1MzI3My4KCjIwMDktMDctMTkgMTU6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA5LTA3LTE2IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBBZGQgSVB2NiBvY3RldCBjb3VudGVycy4KICAgTmV3IExpbnV4IGtlcm5lbHMgKGUuZy4gMi42LjMxLXJjMiwgbWF5YmUgc29tZSBlYXJsaWVyKSBwcm92aWRlCiAgIGNvdW50ZXJzIGZvcgogICBpbmNvbWluZy9vdXRnb2luZyBJUHY2IHRyYWZmaWMgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBJZlN0YXRzVGFibGUuCgoyMDA5LTA3LTE1IDIyOjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBwdXQgdGVtcG9yYXJ5IGRhdGEgdG8gd2hlcmUgdGhleSBiZWxvbmcKCjIwMDktMDctMTEgMjE6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZSBjb25maWd1cmUKCjIwMDktMDctMTEgMjE6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBidWlsZCBmaXggKGUuZy4gZm9yIEZyZWVCU0QpOiBhZGp1c3Qga3ZtIGNvbmZpZ3VyZSB0ZXN0cwoKMjAwOS0wNy0xMCAxMjozNSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoZWNrIElQdjYgcG9ydCByYW5nZXMgaW4gdGhlIHNhbWUgd2F5IGFzIElQdjQgcG9ydHMgYXJlIGNoZWNrZWQuCgoyMDA5LTA3LTEwIDA3OjQ2ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmM6CgogICBGaXggYW5vdGhlciBJUHY0IGFkZHJlc3Mgc2l6ZSAtIGxvbmcgaGFzIDggYnl0ZXMgb24gNjRiaXQgTGludXguCiAgIEFsc28gZml4IHRoZSBkZWZhdWx0IHR5cGUgZm9eQ0FTTl9JUEFERFJFU1MgaW4gbWliMmMsIHNvIHRoZQogICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jIGNhbiBiZSBzYWZlbHkgcmVnZW5lcmF0ZWQuCgoyMDA5LTA3LTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIGNsZWFudXAgb2YgdGVzdGluZyBjYXNlcyB0byByZW1vdmUgZG91YmxlIGluY2x1ZGUgYW5kIGRvdWJsZQogICBleHBvcnRzCgoyMDA5LTA3LTA5IDIzOjA3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDMwMHVkcDoKCiAgIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgVENQL0lQdjQgdGVzdAoKMjAwOS0wNy0wOSAyMjoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBuZXcgdGVzdHMgZm9yIHRlc3RpbmcgZGVmaW5lZCB0cmFuc3BvcnRzCgoyMDA5LTA3LTA5IDIyOjE3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhIENPTkZJR0FQUCBtYWNybyBmb3IgYWRkaW5nIHN0dWZmIHRvIHNubXAuY29uZgoKMjAwOS0wNy0wOCAxNToxMiAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGdldGhvc3RieWFkZHIgcGFyYW1ldGVyLCBuZXRzbm1wX3VkcF9mbXRhZGRyIG5ldmVyIHJldHVybmVkIGEKICAgaG9zdG5hbWUuCgoyMDA5LTA3LTA3IDE1OjQ2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBGaXggSVAgYWRkcmVzcyBsZW5ndGggb24gNjQgYml0IHN5c3RlbXMgaW4gbWliSUksIHBhc3MgYW5kCiAgIHBhc3NfcGVyc2lzdCBtb2R1bGVzLgoKMjAwOS0wNy0wNyAxNToyNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBVc2UgY29ycmVjdGx5IHNpemVkIElQIGFkZHJlc3NlcyBpbiBhZGRyZXNzIHRyYW5zbGF0aW9uIHRhYmxlCiAgIHByb2Nlc3NpbmcgLSB1X2xvbmcgY2FuIG1ha2UgcHJvYmxlbXMgb24gYmluIGVuZGlhbiA2NCBiaXQKICAgc3lzdGVtcwoKMjAwOS0wNi0yOSAxMzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSBlbnRyeSBmb3IgYSBwYXRjaCB0aGF0IGdvdCByZXZlcnRlZAoKMjAwOS0wNi0yNSAxNToyNCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIE1vdmUgbm9uLWNvcmUgZGF0YSB0eXBlcyBpbnRvIGEgc2VwYXJhdGUgKGxpYnJhcnkgaW50ZXJuYWxzKQogICBoZWFkZXIgZmlsZS4KICAgTW92ZSB0aGUgbGFyZ2VfZmRfc2V0IGRhdGEgc3RydWN0dXJlIGludG8gdGhpcyBoZWFkZXIgZmlsZS4KCjIwMDktMDYtMTggMjI6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWxsb3cgYnVpbGRpbmcgd2l0aCBQZXJsIHZlcnNpb25zIHRoYXQgbGFjawogICBQRVJMX0VYSVRfREVTVFJVQ1RfRU5ECgoyMDA5LTA2LTE4IDIyOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBidWlsZCBmaXggZm9yIFRydTY0IFVuaXggYW5kIElSSVg6IG1vdmUgX1hPUEVOKgogICBkZWZpbml0aW9ucyB0byB3aGVyZSB0aGV5IGFyZSBpbiA1LjQueCBhbmQgZWFybGllcgoKMjAwOS0wNi0xOCAwNjowMiAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2xlYW4gdXAgLS13aXRoLW5sIGNvbmZpZ3VyYXRpb24KICAgKiAgTW92ZSB0aGUgX0FSR19XSVRIIHRvIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlICAyMDA5LTA2LTE2IDE1OjE3CiAgICAgICByc3RvcnkKCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGJlZm9yZSBkZXJlZgoKMjAwOS0wNi0xNSAyMzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBjb21tZW50IGV4cGxhaW5pbmcgbm90IHF1aXRlIG9idmlvdXMgbGFjayBvZiBtZW1tb3ZlCgoyMDA5LTA2LTE1IDE5OjMyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBSZW1vdmUgI2lmIDAgY29tbWVudGVkIGNvZGUKCjIwMDktMDYtMTUgMTU6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQUdFTlQgc2VjdGlvbi4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5yYzEgLT4gVjUuNi5yYzIKCjIwMTAtMDktMDQgMDE6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOS0wNCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTAzIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHRsc3RjcCBwYXJzaW5nIG9mIGhvc3QgbmFtZXMuCgoyMDEwLTA5LTAzIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzoKCiAgIGNoZWNrIHRoZSByZXR1cm4gY29kZSBvZiBmZ2V0cyBhbmQgZm9wZW4gYmVmb3JlIGluc2VydGluZyB0aGUKICAgcmVzdWx0cy4KCjIwMTAtMDktMDMgMjI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUGF0Y2ggZnJvbSB0YW5kZXJzIHRvIGZpeCBicm9rZW4gYWxhcm1zIGFmdGVyIHRoZSBwcmV2aW91cwogICByZS1lbnRyYW50IHBhdGNoCgoyMDEwLTA5LTAzIDIyOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTg2NDU6IGZyb20gam9yaXNlc2F0dXJudXM6IG1vZGlmaWVkCiAgIHZlcnNpb24gb2YgdGhlIHBhdGNoIHRvIHVzZSBNU0dfRE9OVFdBSVQgZm9yIHRoZSB1bml4IGRvbWFpbgogICBzb2NrZXQKCjIwMTAtMDktMDMgMjE6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTgxNDA6IGZyb20gdGFrZXZvczogY2hlY2sgdGhhdCBpbm9kZSBpcwogICBub24temVybwoKMjAxMC0wOS0wMyAyMTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQyODogZnJvbSB0YWtldm9zOiBmaXgKICAgZ2V0X3BpZF9mcm9tX2lub2RlIHdoZW4gdGhlIGlub2RlIGlzIG5vdCBmb3VuZC4KCjIwMTAtMDktMDMgMjA6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgZHVwbGljYXRlIHJldHVybiBiZWZvcmUgdGhlIGVycm9yIGNvZGVzIGdldCBzZXQuCgoyMDEwLTA5LTAxIDE4OjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogTG9nIGJlZm9yZSByZXR1cm5pbmcuCgoyMDEwLTA5LTAxIDAyOjQzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIFRMUyBzZW5kX25vdGlmeSBvbiBjbG9zdXJlIGFuZCBzb21lIG1lbW9yeSBjbGVhbi11cCBwYXRjaGVzCgoyMDEwLTA4LTMxIDE3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPbmx5IHByaW50IHRoZSBzZWN1cml0eS9jb250ZXh0IEVuZ2luZUlEIG1pc21hdGNoIG5vdGUgdW5kZXIgVVNNCgoyMDEwLTA4LTI1IDE1OjEzICByc3RvcnkKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSByZWZlcmVuY2UgdG8gcmV2ZXJ0ZWQgcGF0Y2ggMzA0Mjc2NQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgbm90ZSBvbiB3aGVyZSB0byBmaW5kIGNvbnRlbnQgdXNlZCB0byBnZW5lcmF0ZQogICBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHJldmVydCByMTkzNDIsIHBhdGNoIDMwNDI3NjUsIHdoaWNoIGJyb2tlIGNsaWVudCB0Y3AgZGlzY29ubmVjdAogICBoYW5kbGluZwoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggbW9yZSBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBjaGVjayBmb3IgY29uZiBlcnJvcnMgYWZ0ZXIgYWdlbnQgc3RhcnR1cDsgZW5hYmxlIGxvZ1RpbWVzdGFtcDsKICAgbWFrZSBzdXJlCiAgIGFsbCBjZXJ0IG5hbWUvdGFncyBhcmUgdW5pcXVlCgoyMDEwLTA4LTI0IDIxOjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCBlcnJvciBzdHJpbmcgdG8gZGlzY3VzcyB0aGUgcmlnaHQgZmFpbGVkIG9wZW5zc2wgbmV3CiAgIGludm9jYXRpb24KCjIwMTAtMDgtMjQgMDU6MzcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogQ29ycmVjdCBpZmRlZnMsIHJlbW92ZSBkZWFkIHZhcmlhYmxlcy4KCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5wcmUzIC0+IFY1LjYucmMxCgoyMDEwLTA4LTE5IDIxOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA4LTE5IDIxOjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgLy8gLT4gQyBjb21tZW50cwoKMjAxMC0wOC0xOSAyMDozNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzMDQyNzY1OiBmcm9tIG1laGFmOiBtYWtlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IoKSByZS1lbnRyYW50CgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHR1cm4gb2ZmIGNvb2tpZSBleGNoYW5nZXMgdW50aWwgYSBjb21wbGV0ZSBjb2RlIHNldCBjYW4gYmUKICAgd3JpdHRlbiB0byBzdXBwb3J0IGl0IGJhc2VkIG9uIHRoZSByZXF1aXJlZCBmdW5jdGlvbiBjYWxsYmFja3MKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWRkIG1pc3NpbmcgY2FsbCB0byBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgYXMgbmVlZGVkCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZGlzcGxheWluZyBhIGJ5dGUgYXMgc2luZ2xlIGRpZ2l0IGhleAogICB2YWx1ZSwgZGVmYXVsdCB0bwogICBwcmVmaXhpbmcgd2l0aCAwIHVubGVzcyB0aGVyZSBpcyBhIHNlcGVyYXRvciBvciBhZGRpdGlvbiBoaW50CiAgIGRhdGEKCjIwMTAtMDgtMTcgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGFuIHVudXNlZCBsYWJlbCB0aGF0IHdhcyB0cmlnZ2VyZWQKICAgd2hlbgogICBjb21waWxpbmcgd2l0aG91dCBTU0wgc3VwcG9ydC4KCjIwMTAtMDgtMTYgMjM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyNzkwMjQ5OiBmcm9tIHdpbGxwd2lsbHA6IHJlZHVjZSBjYWNoZSB0aW1lCiAgIGZvciB0aGUgaWZ0YWJsZSB0byAzc2Vjb25kcyB0byBpbmNyZWFzZSBhY2N1cmFjeQoKMjAxMC0wOC0xNiAxNjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggMzA0NjM3MTogZnJvbSBjaHJpc3RvcGhiNDogRml4IG1lbW9yeSBsZWFrCiAgIGluIFNOTVB2MSB0cmFwIGhhbmRsaW5nLgoKMjAxMC0wOC0xNiAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjgyNTY1MzogZnJvbSBicnU1Y2U6IGZpeCBzZW5kbWFpbC5jZgogICBwYXJzaW5nIGluIGNlcnRhaW4gY29uZGl0aW9ucwoKMjAxMC0wOC0xNiAxMDoxNiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQnVpbGQgbmV0c25tcF9hZ2VudF9hcGkuMyBtYW4gcGFnZSBmcm9tIHRlbXBsYXRlCgoyMDEwLTA4LTE2IDA5OjIwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBEb2N1bWVudGF0aW9uIChQcm92aWRlZCBieSBUb21hc3oKICAgTGlzKQoKMjAxMC0wOC0xNiAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmUtb3JkZXIgY29kZSB0byBncm91cCByZWxhdGVkCiAgIGZ1bmN0aW9ucyB0b2dldGhlcgoKMjAxMC0wOC0xNiAwNzo0MiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjk5NTA5ODogRml4IGNyZWF0aW9uIG9mIFNOTVB2MyBzZXNzaW9ucwogICB3aXRoIEFQSV9TSU5HTEUKCjIwMTAtMDgtMTQgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGVzCgoyMDEwLTA4LTE0IDE2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MDQ5MDA6IERvY3VtZW50YXRpb24gcGx1cyBhc3NvcnRlZAogICBoYW5kbGVyIGNvZGUgZml4ZXMKCjIwMTAtMDgtMTQgMDk6MjggIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgIFJlc3RvcmUgYWdlbnQgQVBJIG1hbiBwYWdlCiAgIERvbid0IHRyeSB0byBleHRyYWN0IG11bHRpcGxlIG1hbiBwYWdlIGxpbmtzIHBlciBsaW5lCiAgICh3aGljaCBydW5zIGludG8gcHJvYmxlbXMgd2l0aCBPUy1zcGVjaWZpYyBsaW5lIGVuZGluZ3MpLgogICBJbnN0ZWFkLCBlbnN1cmUgdGhlIG1hbiBwYWdlIE5BTUUgc2VjdGlvbiBsaXN0cyBvbmUKICAgcm91dGluZSBwZXIgbGluZQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGJyb2tlbiBNYWtlZmlsZSBhZnRlciBtYW4gcGFnZSBtb3ZlcwoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIFRMUyBNSUIgdG8gY3VycmVudCBjb3B5CgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVwbGFjZWQgUkZDIGNvbW1lbnQgbnVtYmVyCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAzMDQyNzcwOiBmcm9tIG1laGFmOiBNYWRlIHJ1bl9hbGFybXMoKQogICByZWVudHJhbnQKCjIwMTAtMDgtMTMgMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA0NDUxMjogZnJvbSBwaGlsd2Vic3RlcjogZml4IHN5c29iamVjdGlkCiAgIGRpcmVjdGl2ZS4KCjIwMTAtMDgtMTMgMTk6MDAgIHJzdG9yeQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4OgoKICAgdXNlIDEyNy4wLjAuMSBpbnN0ZWFkIG9mIGxvY2FsaG9zdCBhcyBkZWZhdWx0IFNOTVBfVEVTVF9ERVNUIHNvCiAgIFRMUyB0ZXN0cyB3b3JrCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGltcGxlbWVudGVkIGEgZml4IGZvciB0aGUgaXNzdWUgcmVwb3J0ZWQgaW4KICAgcGF0Y2ggIzMwNDI3NzAuIENyZWF0ZWQgYSBzbm1wX3NlbGVjdF9pbmZvX2ZsYWdzIGZ1bmN0aW9uLCBhbmQKICAgc2ltaWxhciwgdGhhdCBhbGxvdyBmb3IgYWxhcm1zIHRvIG5vdCBiZSBydW4uIFRoaXMgaXMgdGhlbiB1c2VkCiAgIGluIHRoZSBzeW5jaF9yZXNwb25zZSBmdW5jdGlvbnMgdG8gYXZvaWQgMTAwJSBDUFUgbG9vcHMKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBtYWtlIHNubXB0cmFwZCByZWdpc3RlciB0aGUgY2VydHRvc2VjbmFtZSB0YWJsZSBpbiB0aGUgYWdlbnR4CiAgIHJlZ2lzdHJhdGlvbnMKCjIwMTAtMDgtMTMgMTg6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBtaW5vciB3b3JkaW5nIGFkZGl0aW9ucwoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jOgoKICAgQ0hBTkdFUzogYWl4OiBQQVRDSDogMjg4NjU5ODogZnJvbSBleHNuYWZ1OiBIZWFkZXIgZml4ZXMgZm9yCiAgIGNvbXBpbGluZyBvbiBBSVg2CgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICBORVdTOiBwb3J0czogUEFUQ0g6IDI4MzY4OTU6IGZyb20gc2VhbmJvdWRyZWF1OiBzdXBwb3J0IGZvciBRTlg2CgoyMDEwLTA4LTEzIDE0OjMzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgJ2VuZm9yY2UgbmV0c25tcCBwcmVmaXhlcwoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9wZHVfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICBEb24ndCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIG1hbiBwYWdlcwoKMjAxMC0wOC0xMyAxNDoxOCAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsICAgCiAgICAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBSZW1vdmUgcmVkdW5kYW50IG1hbiBwYWdlIGxpbmtzCiAgIChTaG91bGQgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHksIGJ1dCBkb24ndCBleGlzdCBhbnkgbW9yZQogICBhbnl3YXkpCgoyMDEwLTA4LTEzIDE0OjEzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLCBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCAgCiAgICAgICBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc2V0X2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjMsIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zLCBtYW4vcHJpbnRfbWliLjMsICAKICAgICAgIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgbWFuL3ByaW50X3ZhcmlhYmxlLjMsICAgCiAgICAgIG1hbi9yZWFkX2FsbF9taWJzLjMsIG1hbi9yZWFkX21pYi4zLCBtYW4vcmVhZF9tb2R1bGUuMywgICAKICAgICAgbWFuL3JlYWRfbW9kdWxlX25vZGUuMywgbWFuL3JlYWRfb2JqaWQuMywgbWFuL3NodXRkb3duX21pYi4zOgoKICAgUmVtb3ZlIERveHlnZW4tZ2VuZXJhdGVkIG1hbiBwYWdlcywgYW5kIHRob3NlIGxpbmtpbmcKICAgaW5kaXZpZHVhbCByb3V0aW5lcyB0byB0aGUgYXBwcm9wcmlhdGUgbWFuIHBhZ2UuCiAgIChUaGVzZSBhcmUgYmV0dGVyIGdlbmVyYXRlZCBkeW5hbWljYWxseSkKCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgUHJvbXB0IGZvciB3aGV0aGVyIHRvIGdlbmVyYXRlIGNhY2hpbmcgY29kZSBvciBub3QuCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgUmV3b3JrIGd1aWRhbmNlIHF1ZXN0aW9ucyB3aGVuIHNlbGVjdGluZyB0aGUgYmVzdCB0YWJsZSBmcmFtZXdvcmsKICAgdG8gdXNlLgogICBFbnN1cmUgdGFibGUgaGFuZGxpbmcgY29kZSBkb2Vzbid0IG92ZXJ3cml0ZSBzY2FsYXIgaGFuZGxpbmcKICAgY29kZS4KICAgQ2hlY2sgdGhhdCB0aGUgc3RhcnRpbmcgcG9pbnQgaXMgc3VpdGFibGUgZm9yIE1mRCBmcmFtZXdvcmsuCgoyMDEwLTA4LTEyIDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0xMiAxNTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgZHVwbGljYXRlIHZhbHVlIGNoZWNrCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgYWRkIGEgdGVzdCB3aGVyZSB3ZSBjYW4gdHJ1c3QgYSBDQS1zaWduZWQgY2VydCBhbmQgd2UgZG9uJ3QgdHJ1c3QKICAgdGhlIENBCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgdGVzdCBhIGRpcmVjdGx5IG1hcHBlZCBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgY2hhbmdlIHRoZSBsYUNvbmZpZyB0byByZWFkLXdyaXRlIHRvIG1hdGNoIHRoZSBwYXRjaAoKMjAxMC0wOC0xMSAyMjowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyOTMxNDQ2OiBmcm9tIGFobWFrZTogbWFrZSB0aGUgbG9hZCBhdmVyYWdlcwogICB3cml0YWJsZS4KCjIwMTAtMDgtMTEgMDY6NDMgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIENIQU5HRVM6IFNpbGVuY2Ugc29tZSBjb21waWxhdGlvbiB3YXJuaW5ncyBmcm9tIHRlc3QgY2FzZXMuCgoyMDEwLTA4LTA5IDIxOjA5ICBtYWdmcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IEhhbmRsZSBlbWJlZGRlZCAlJ3MgaW4gdGhlIHJlc3VsdCBtZXNzYWdlLgoKMjAxMC0wOC0wOSAyMTowNyAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBDSEFOR0VTOiBEbyBubyBkb3VibGUgZGVjbGFyZSB0aGUgaW5kZXggdmFsdWVzLgoKMjAxMC0wOC0wNSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBVcGRhdGUgImF1dGgqIiB1c2FnZSBtZXNzYWdlIHdpdGggY29udGV4dCBzdXBwb3J0CgoyMDEwLTA4LTAyIDIwOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXggdHdvIHNpbGx5IG1pc3Rha2VzLgoKMjAxMC0wOC0wMiAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgQUlYIGZpbGVzeXN0ZW0gdHlwZXMgYXJlIHRhZ2dlZCBhcyBpbnRlZ2Vycywgbm90IHN0cmluZ3MuCgoyMDEwLTA4LTAyIDEzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgZml4IFBlcmwgc3lzdGVtKCkgY29uZmlndXJlIGNoZWNrIHRvIHdvcmsgcmVsaWFibHkgb24gc3lzdGVtcwogICB0aGF0IGxhY2sKICAgUGVybAoKMjAxMC0wOC0wMiAxMTowOCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IG1hZGUgaXQgcG9zc2libGUgdG8gYW5hbHl6ZSBhbGwgY29kZSBjb3ZlcmVkIGJ5CiAgIHRoZSByZWdyZXNzaW9uIHRlc3RzIHdpdGggYSBkeW5hbWljIGFuYWx5emVyLCBhdCBsZWFzdCBpZiB0aGF0CiAgIGFuYWx5emVyIHN1cHBvcnRzIGZvbGxvd2luZyBjaGlsZCBwcm9jZXNzZXMuIEFuIGV4YW1wbGU6CiAgIAogICBybSAtcmYgL3RtcC9zbm1wLXRlc3QtKgogICBtYWtlIC1zCiAgIFNOTVBfU0FWRV9UTVBESVI9eWVzIERZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kCiAgIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tdHJhY2stb3JpZ2lucz15ZXMiIG1ha2UgLXMgdGVzdAogICBncmVwIC1pIHVuaW5pdGlhbGlzZWQgL3RtcC9zbm1wLXRlc3QtKiB8IHhhcmdzIGxlc3MKCjIwMTAtMDgtMDIgMTE6MDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgdHdvIFZhbGdyaW5kIGNvbXBsYWludHM6CiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkQ3MDJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDk5RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDdBNDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZFMTQ0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDVFNUUyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NUU2NTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDVFNTY3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1RTI0NzlBOiBfc2Vzc19wcm9jZXNzX3BhY2tldCAoc25tcF9hcGkuYzo1NDQxKQogICBieSAweDVFMjVFMzc6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NjAzNykKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDVFNjU3Mzk6IG5ldHNubXBfdGNwX2FjY2VwdCAoc25tcFRDUERvbWFpbi5jOjgyKQogICBieSAweDVFMjUzODM6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NTc4NikKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkY3QjJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RkE0RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2Rjg1NDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDcwMUY0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDU2RkEyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NTcwMTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDU2RjI3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1NkYyOTRGOiBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kIChzbm1wX3RyYW5zcG9ydC5jOjI0OCkKICAgYnkgMHg1NkJDNDg3OiBzbm1wX3Nlc3NfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo1MjA0KQogICBieSAweDU2QkM2NTE6IHNubXBfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo0OTk4KQogICBieSAweDU2QkM2Nzc6IHNubXBfc2VuZCAoc25tcF9hcGkuYzo0OTg0KQogICBieSAweDU2OTg0NDA6IHNubXBfc3luY2hfcmVzcG9uc2VfY2IgKHNubXBfY2xpZW50LmM6MTAwNikKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NTcwMUIzRTogbmV0c25tcF90Y3BfdHJhbnNwb3J0IChzbm1wVENQRG9tYWluLmM6MTYzKQogICBieSAweDU3MDFFNkY6IG5ldHNubXBfdGNwX2NyZWF0ZV90c3RyaW5nIChzbm1wVENQRG9tYWluLmM6MzA1KQogICBieSAweDU2RjM4MDQ6IG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbAogICAoc25tcF90cmFuc3BvcnQuYzo2MDEpCiAgIGJ5IDB4NTZGM0FDQzogbmV0c25tcF90cmFuc3BvcnRfb3Blbl9jbGllbnQKICAgKHNubXBfdHJhbnNwb3J0LmM6NjY5KQogICBieSAweDU0MzQ0RjY6IHN1YmFnZW50X29wZW5fbWFzdGVyX3Nlc3Npb24gKHN1YmFnZW50LmM6NzU4KQogICBieSAweDU0MzQ5Qzg6IGFnZW50eF9yZW9wZW5fc2Vzc2lvbiAoc3ViYWdlbnQuYzo4NjkpCiAgIGJ5IDB4NTQzNEQwMDogc3ViYWdlbnRfc3RhcnR1cCAoc3ViYWdlbnQuYzo5OSkKICAgYnkgMHg1NkVBRUI3OiBzbm1wX2NhbGxfY2FsbGJhY2tzIChjYWxsYmFjay5jOjMzOCkKICAgYnkgMHg1NkRFNkZCOiByZWFkX2NvbmZpZ3MgKHJlYWRfY29uZmlnLmM6MTAxOCkKICAgYnkgMHg1NkMyODdFOiBpbml0X3NubXAgKHNubXBfYXBpLmM6ODUwKQogICBieSAweDQwNDc3QjogbWFpbiAoc25tcHRyYXBkLmM6MTA0OCkKCjIwMTAtMDgtMDEgMDY6MTEgIGJ2YXNzY2hlCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBGaXhlZCBzcGVsbGluZyBlcnJvcnMgcmVwb3J0ZWQgYnkgaXNwZWxsIC1sLgoKMjAxMC0wOC0wMSAwNjowMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF9lbnVtLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSB0ZXh0IHN0cmluZyBpbiBhIHVuaXQgdGVzdDogcmVzdHVyYW50IC0+CiAgIHJlc3RhdXJhbnQuCgoyMDEwLTA4LTAxIDA1OjUzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkuCgoyMDEwLTA3LTMxIDIzOjUwICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxOTI2NjogYWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgdG8gc3VwcG9ydCBNYWMgT1MgWAogICAxMC42CiAgIChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnByZTIgLT4gVjUuNi5wcmUzCgoyMDEwLTA3LTMxIDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDctMzEgMjA6MjQgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDoxMSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBjaGFuZ2VkIHRoZSBuYW1lIG9mIHRoZSByZWFkbWUgc2VjdGlvbiB0byBjYWxsIG91dCBORVdTLXRvbwoKMjAxMC0wNy0zMSAyMDoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG1pc3NpbmcgbmV3cyBpdGVtcwoKMjAxMC0wNy0zMCAxMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSCAzMDM1MzI4OiBmcm9tOiBzd3M6IGNoZWNrIHRoZSByZXN1bHRzIG9mCiAgIHNlc3Npb24gY3JlYXRpb24gZm9yIGEgZmFpbHVyZSBjYXNlLgoKMjAxMC0wNy0zMCAxMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogcGF0Y2ggMzAzNTU3ODogZnJvbSBzd3M6IGtlZXAgZXJyb3IgY29kZXMgdXAgdG8KICAgZGF0ZQoKMjAxMC0wNy0yOSAxNTo0OCAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjQ3ICBkdHMxMgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBBZGQgc3VwcG9ydCBmb3IgTWFjIE9TIFggMTAuNiAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKICAgKE9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyB0aGUgc2FtZSBhcyBNYWMgT1MgWCAxMC41CiAgIChMZW9wYXJkIC0gImRhcndpbjkiKSkKCjIwMTAtMDctMjkgMTU6MDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gb2YgJ3ZhX2xpc3QnIGZvciB2YXJhcmdzLWJhc2VkIEFQSXMKCjIwMTAtMDctMjkgMTQ6NTggIGR0czEyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3lzdGVtLmM6CgogICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgQUlYIDcKICAgKG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyBpZGVudGljYWwgdG8gQUlYIDYpCgoyMDEwLTA3LTI5IDE0OjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgRGlzYWJsZSBlbWJlZGRlZCBwZXJsIGJ5IGRlZmF1bHQgb24gYXJjaGl0ZWN1cmVzIHdoZXJlCiAgIHRoaXMgc2VlbXMgdG8gY2F1c2UgcHJvYmxlbXMgKEhQLVVYICYgTWFjIE9TIFgpCgoyMDEwLTA3LTI5IDExOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBHdWFyZCBhZ2FpbnN0IGJsYW5rICdpbmNsdWRlKicgbGluZXMuCiAgIEhhbmRsZSByZWxhdGl2ZSAnaW5jbHVkZUZpbGUnIHBhdGhzCgoyMDEwLTA3LTI5IDEwOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV0dXJuIGFuIGluZGljYXRpb24gb2Ygd2hldGhlciBjb25maWcgZmlsZXMgYXJlIGFjdHVhbGx5CiAgIHByb2Nlc3NlZC4KICAgUmVwb3J0IHByb2JsZW1zIHdpdGggZmFpbGluZyB0byBpbmNsdWRlIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDctMjggMTQ6NDQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBtYW4vY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmLCAgCiAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEJyaW5nIG1hbiBwYWdlIGRvY3VtZW50YXRpb24sIGhlYWRlciBmaWxlcyBhbmQgV2luZG93cyBETEwKICAgZGVmaW5pdGlvbnMKICAgb2YgdG9wLWxldmVsIHB1YmxpYyBBUEkgY2FsbHMgaW50byBsaW5lIHdpdGggZWFjaCBvdGhlci4KCjIwMTAtMDctMjggMTQ6NDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBtaXNuYW1lZCBjb21tZW50CgoyMDEwLTA3LTI4IDE0OjM2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgRG9uJ3QgbWl4IFNNSXYxIGFuZCBTTUl2MiBNSUJzIGluIHRoZSBsaXN0IG9mIGRlZmF1bHQgTUlCcyB0bwogICBsb2FkLgogICBVc2UgbmV3ZXIgU01JdjIgdmVyc2lvbnMgKHdoaWNoIGluY2x1ZGUgc3VpdGFibGUgZGlzcGxheSBoaW50cykKICAgcmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIFJGQzEyMTMgTUlCICh3aGljaCBkb2Vzbid0KQoKMjAxMC0wNy0yOCAxNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGluZGVudGF0aW9uIGZvciAnaW5jbHVkZVNlYXJjaCcgcHJvY2Vzc2luZyBjb2RlLgoKMjAxMC0wNy0yOCAxNDowOSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRXh0ZW5kICdpbmNsdWRlJyBjb25maWcgZmlsZSBwcm9jZXNzaW5nIHRvIGNvdmVyIHRocmVlCiAgIGRpZmZlcmVudCBtb2RlcyBvZiB3b3JraW5nOgogICAtIGxvb2sgZm9yIHRoZSBmaWxlIG9uIHRoZSBjb25maWcgc2VhcmNoIHBhdGgKICAgLSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgZmlsZSBieSBuYW1lCiAgIC0gaW9hZCB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkKICAgVXNlIGRpZmZlcmVudCBjb25maWcgdG9rZW5zIHRvIGRpc3Rpbmd1aXNoIHRoZXNlIGNhc2VzLgoKMjAxMC0wNy0yNyAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyOTEyNTIwOiBmcm9tIGxpc3RvbTogRnJlZSBrbWVtIHJlZmVyZW5jZXMKICAgb24gc2h1dGRvd24KCjIwMTAtMDctMjcgMTA6NTQgIGhhcmRha2VyCgogICAqIG1pYnMvU01VWC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogcGF0Y2ggMjk3NDcxNjogZnJvbSBidmFzc2NoZTogZml4IGlzc3VlcyBpbiB0aGUKICAgU01VWC1NSUIKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGluY2x1ZGUgdGhlIG5ldyBzZWN1cml0eS1oZWRhZXJzIG1vZHVsZQoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgcmVtb3RlIGRlYnVnZ2luZy9wcm9jZXNzaW5nIHN0ZGVyciBvdXRwdXQKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMzAyODkyMzogZnJvbSBqZW5zbzogbmV3IGNvcHkgb2YgdGhlCiAgIGJyaWRnZS1taWIgcGVybCBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tc2VjdXJpdHktaGVhZGVycy5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgc2VjdXJpdHkgaGVhZGVyL2luaXQgZ2VuZXJhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0czoKCiAgIHRyYW5zcG9ydCBjb25maWd1cmUgcG9ydGlvbgoKMjAxMC0wNy0yNyAwODozMCAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXRyYW5zcG9ydC1oZWFkZXJzLmluLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tdmFyaWFibGVzLmluOgoKICAgbW92ZSB0cmFuc3BvcnQgaGVhZGVyIGdlbmVyYXRpb24gdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBjcmVhdGUgYW4KICAgZXh0ZXJuYWwgc2VwYXJhdGUgc2NyaXB0IGZvciBnZW5lcmF0aW5nIGl0CgoyMDEwLTA3LTI3IDA4OjE0ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCBnZnMgZmlsZXN5c3RlbXMgaW4gaHJTdG9yYWdlVGFibGUgYW5kCiAgIGhyRlNUYWJsZS4KCjIwMTAtMDctMjQgMTU6NDIgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgd2FzIGJlaW5nIHBhcnNlZCwKICAgd2hlbiBwcm9jZXNzaW5nIGFuIGluY2x1ZGVkIGNvbmZpZyBmaWxlLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yNCAxNTozNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG9uJ3QgbG9zZSB0cmFjayBvZiB3aGljaCBjb25maWcgZmlsZSBpcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gb3BlbmluZyBhIG5ldyBTTk1QIHNlc3Npb24uCiAgIEZpeGVzIGEgYnVnIHdpdGggcmVwb3J0aW5nIGxhdGVyIGNvbmZpZyBlcnJvcnMuCgoyMDEwLTA3LTIzIDAzOjEyICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZCB0aGUgVExTIG1vZHVsZXMgdG8gdGhlIGxpc3Qgb2YgdGVzdCBtb2R1bGVzCgoyMDEwLTA3LTIxIDE5OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBGaXggdHlwbyBpbiBkb3h5Z2VuIGNvbW1lbnQKCjIwMTAtMDctMjEgMTk6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgRml4IHR5cG8gaW4gc3BlZWQgY29tcHV0YXRpb24KCjIwMTAtMDctMjEgMTk6MjEgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICBJbmNsdWRlIGdlbmVyYXRlZCBzZWN1cml0eS1pbmNsdWRlcy5oCgoyMDEwLTA3LTIxIDE5OjIwICBuYmEKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmg6CgogICBGaXggaW5pdCBmdW5jIG5hbWUgKGNvcHktcGFzdGUgZ2xpdGNoKQoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIHNlbWljb2xvbgoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgT3V0IG9mIG9yZGVyIGRlY2xhcmF0aW9uCgoyMDEwLTA3LTIxIDE5OjE3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIExvZyBlcnJvciBvbiBmaWxlIG9wZW4gZXJyb3IKCjIwMTAtMDctMjEgMTk6MTYgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTcGVsaW5nIGVycm9yCgoyMDEwLTA3LTIxIDE4OjEwICBuYmEKCiAgICogbWlicy9pYW5hbGlzdCwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIFVwZGF0ZSBmb3IgY3VycmVudCBSRkNzCgoyMDEwLTA3LTIxIDE4OjA4ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBDdXJyZW50IHZlcnNpb24gZnJvbSBJQU5BCgoyMDEwLTA3LTIxIDE4OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByMTc0OTUgZXJyb25lb3VzbHkgZGlzYWJsZWQgZGlza0lPTEF4IGZvciBsaW51eAoKMjAxMC0wNy0yMCAxMDozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXhlZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHdoZW4gZ2VuZXJhdGluZwogICB0ZW1wLiBmaWxlIG5hbWVzCgoyMDEwLTA3LTIwIDA3OjMyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L3NubXBkLmMsIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCAgIAogICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRGVzY3JpYmUgLUQgdXNhZ2UgYXMgLURbVE9LRU5dIGluc3RlYWQgb2YgLUQgW1RPS0VOXQoKMjAxMC0wNy0xNyAxNToxMCAgcnN0b3J5CgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIHVwZGF0ZSBkaXNwbGF5IGhpbnQgdG8gc29tZSBsZXNzIGFtYmlndW91cyAoYW5kIHRoYXQgd29ya3Mgd2l0aAogICBvdXIgbGliKQoKMjAxMC0wNy0xNyAwNDoxMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggdGVzdHNpbXBsZSBmb3IgYnVpbGRkaXIhPXNyY2RpcgoKMjAxMC0wNy0xNyAwNDoxMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBhZGQgdGVzdHNpbXBsZSB0YXJnZXQKCjIwMTAtMDctMTYgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbGVhc2UgaXRlcmF0b3Igd2hlbiBkb25lIHdpdGggaXQKCjIwMTAtMDctMTUgMTg6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGlzc3VlIHdpdGggVVNNIHVzaW5nIGluYWN0aXZlIHVzZXJzCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgaW5jbHVkZSBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyOyBkZWZpbmUgTkFNRV9NQVggaWYgbm90IGFscmVhZHkKICAgZGVmaW5lZDsKICAgZG9uJ3QgdXNlIHN0cm5kdXAgKHBvcnRhYmlsaXR5KQoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgdGhhdCBzb21lIG5ld2VyIG9wZW5zc2wgbWFjcm9zIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZwogICB0aGVtOyBpbmNsdWRlCiAgIGFwcHJvcHJpYXRlIHN0cmluZyBoZWFkZXIKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZG9uJ3QgY29tcGlsZSBkdGxzIGRvbWFpbiBpZiBubyBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBpZmRlZiBwcm90ZWN0aW9uIGZvciBsYXRlciBzaGEgYWxnb3JpdGhtcwoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIGRhcndpbiBvcGVuc3NsIGRvZXMgbm90IHN1cHBvcnQgbW9yZSByZWNlbnQgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBmaXggdHlwbyBpbiBpZmRlZiB0ZXN0CgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGVycm9yIGluIGluY2x1ZGVkIGZpbGUgbmFtZQoKMjAxMC0wNy0xNCAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBmaXggdGhlIGZpeDogcHV0IFBSSXogc3BlYyBpbiBjb3JyZWN0IHBsYWNlCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIHNwZWNpZnkgU05NUCB2ZXJzaW9uIG9uIGNvbW1hbmRsaW5lCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDEwLTA3LTE0IDE1OjAyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgYXBwcy9zbm1wdGxzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluY2x1ZGUgc3NsLmggYmVmb3JlIGNlcnRfdXRpbC5oCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGZvdW5kIGNlcnQKCjIwMTAtMDctMTMgMTY6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGxvZyBtc2cKCjIwMTAtMDctMTIgMTA6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENIQU5HRVM6IFdpbjMyIGFuZCBDeWd3aW46IG1hZGUgc3VyZSB0aGF0IGFjY2Vzc2luZyB0aGUgbWliSUkKICAgaW50ZXJmYWNlcyB0YWJsZSBkb2VzIG5vdCB0cmlnZ2VyIG91dC1vZi1yYW5nZSBhcnJheSBhY2Nlc3NlcwogICAod2FzIGRldGVjdGVkIGJ5IEJvdW5kc0NoZWNrZXIpLgoKMjAxMC0wNy0xMiAxMDoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXhlZCBhIGRhbmdsaW5nLXBvaW50ZXItcmVhZCB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTAxOC4gSW4KICAgcjE5MDE4IHRoZSB0eXBlIG9mIGdyb3VwU3VidHJlZUxlbiB3YXMgY2hhbmdlZCBmcm9tIGludCB0bwogICBzaXplX3QsIHdoaWNoIGNoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHRoZSBsb29wICJ3aGlsZQogICAoZ3JvdXBTdWJ0cmVlTGVuLS0gPiAwKSAuLi4iOiBpbnN0ZWFkIG9mIG5vdCBleGVjdXRpbmcgdGhlIGxvb3AKICAgYm9keSB3aGVuIGdyb3VwU3VidHJlZUxlbiB3YXMgbmVnYXRpdmUsIHIxOTAxOCBjYXVzZWQgdGhlIGJvZHkgb2YKICAgdGhhdCBsb29wIHRvIGJlIGV4ZWN1dGVkLiBEZXRlY3RlZCBieSBydW5uaW5nIHNubXBkIHVuZGVyCiAgIEJvdW5kc0NoZWNrZXIgd2hpbGUgcGVyZm9ybWluZyBhIE1JQiB3YWxrLgoKMjAxMC0wNy0xMiAxMDoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIFJldmVydGVkIHIxOTA0NyAod2hpY2ggd2FzIHdyb25nKSBhbmQgaW1wbGVtZW50ZWQgYSBwcm9wZXIgZml4CiAgIGZvciB0aGUgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMuCgoyMDEwLTA3LTEyIDEwOjA5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA3LTEyIDEwOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmg6CgogICBTdXBwcmVzc2VkIG1vcmUgTVNWQyBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1ZhcnM6CgogICBhZGQgY29tbWVudCB3aXRoIG9iamVjdCBuYW1lIGZvciBudW1lcmljIGlkcwoKMjAxMC0wNy0xMiAwNDo0NSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBnZXQgc2VydmVySWQgZnJvbSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YTsgdXNlCiAgIG5ldyBhcGkKICAgdG8gY29uZmlnIHNlcnZpY2VJZCBmb3IgdHJhcCB0cmFuc3BvcnQgd2hlbiBzZW5kaW5nIHRyYXBzCgoyMDEwLTA3LTExIDExOjE4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBDSEFOR0VTOiBCVUc6IDMwMjc5MDA6IHdoZW4gY3Jvc3MtY29tcGlsaW5nIGl0IGlzIG5vdyBhc3N1bWVkCiAgIHRoYXQgbWVtY21wKCkgaXMgYXZhaWxhYmxlIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCBpdCBpcyBub3QKICAgYXZhaWxhYmxlLgoKMjAxMC0wNy0xMSAxMDozMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgcjE5MTk3LgoKMjAxMC0wNy0xMCAyMDowMCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3luYyB1cCBoZWxwIG91dHB1dCBhbmQgb3B0aW9ucyBwcm9jZXNzaW5nCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIEN5Z3dpbiBzZWN0aW9uIGluIFJFQURNRS53aW4zMi4KCjIwMTAtMDctMDkgMTU6MTMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBTdXBwcmVzc2VkICJpbXBsaWNpdCBjYXN0IGZyb20gaW50IHRvIHVfY2hhciIKICAgd2FybmluZ3MgZ2VuZXJhdGVkIGJ5IE1TVkMuCgoyMDEwLTA3LTA5IDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgVGVzdGluZzogbWFkZSB0aGUgZGVidWcgb3V0cHV0IHRoYXQgYXBwZWFycyBpbiB0aGUgImludm9rZWQiIGZpbGUKICAgZXZlbiBtb3JlIHZlcmJvc2UuCgoyMDEwLTA3LTA5IDE1OjEwICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcy4KCjIwMTAtMDctMDggMTk6MzAgIG1hcnoKCiAgICogIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydCwgICAKICAgICAgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgYWRkcyBwZXIgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmaWxlIHN1cHBvcnQgc28gZGVmYXVsdHMgY2FuIGJlCiAgIGN1c3RvbWlzZWQgb24gY21kbGluZSB3IC1pIDxpZGVudGl0eT4gLSBzZWUgbmV0LXNubXAtY2VydC5jb25mCiAgIGZvciBleGFtcGxlcyBhbmQgc29tZSBoZWxwIGluZm8KCjIwMTAtMDctMDggMTI6MTcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDAzOTgxOiBQcm90ZWN0IGFnYWluc3QgYnVmZmVyIG92ZXJmbG93CgoyMDEwLTA3LTA4IDExOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwMTkyNDM6IFJlZ2lzdGVyIGV4ZWNGaXggY29tcGF0YWJpbGl0eQogICBkaXJlY3RpdmUgY29ycmVjdGx5LgoKMjAxMC0wNy0wNyAxMDoxOSAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZToKCiAgIENIQU5HRVM6IEN5Z3dpbiBhbmQgTWluR1c6IHRlc3RzIFQxMTAsIFQxMTEsIFQxMTIsIFQxMjAsIFQxMjEgYW5kCiAgIFQxMjIgZG8gbm93IHBhc3Mgd2hlbiBzbm1wZCBpcyBidWlsdCB3aXRoIHdpbkV4dERMTCBzdXBwb3J0CiAgIGVuYWJsZWQuCgoyMDEwLTA3LTA2IDE4OjU5ICBidmFzc2NoZQoKICAgKiAgQ2hhbmdlTG9nLCBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIE1hZGUgcmVncmVzc2lvbiB0ZXN0cyBlYXNpZXIgdG8gZGVidWcgYnkgaW5jbHVkaW5nIG9rIC8gbm90IG9rCiAgIHN0YXR1cyBpbiB0aGUgImludm9rZWQiIGZpbGUuCiAgIFNwZWxsaW5nIGZpeGVzOiByZW1lYmVyIC0+IHJlbWVtYmVyOyBzZXBlcmF0b3IgLT4gc2VwYXJhdG9yLgoKMjAxMC0wNy0wNiAxNTowNCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBUZXN0IFQwNjUgZG9lcyBub3cgcmVhbGx5IHBhc3Mgb24gTWluR1cuCgoyMDEwLTA3LTA1IDEwOjAxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgY3VybHkgYnJhY2VzIHN1Y2ggdGhhdCAnfHwnIGFuZCAnJiYnIGFyZSBldmFsdWF0ZWQgaW4gdGhlCiAgIGNvcnJlY3Qgb3JkZXIuCgoyMDEwLTA3LTA0IDExOjM3ICBidmFzc2NoZQoKICAgKiBhcHBzOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wNy0wNCAxMTozNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEZhbGwgYmFjayBmcm9tIFJVTkZVTExURVNUUyB0byBSVU5URVNUUyBpZiBuZWl0aGVyIFRBUDo6SGFybmVzcwogICBub3IgVGVzdDo6SGFybmVzcyBpcyBhdmFpbGFibGUuCgoyMDEwLTA3LTA0IDExOjIxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgdGVzdCBudW1iZXIgaW4gL3RtcC9zbm1wLXRlc3RzLSR0ZXN0bnVtIGlzIHNldAogICB0byBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsIHRoYW4ganVzdCAiMCIuCgoyMDEwLTA3LTA0IDExOjIwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU3BsaXQgYSBsb25nIGNvbW1lbnQgbGluZS4KCjIwMTAtMDctMDQgMTA6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCBzcmNkaXIgaXMgY29tcHV0ZWQgY29ycmVjdGx5IGlmIGBkaXJuYW1lCiAgICQwYCA9IC4KCjIwMTAtMDctMDIgMTY6MjcgIGJ2YXNzY2hlCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBTaW1wbGlmaWVkIHIxOTE4MSAoRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoCiAgIG5vbi1lbXB0eSAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVykuCgoyMDEwLTA3LTAxIDE4OjE1ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoIG5vbi1lbXB0eQogICAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVy4KCjIwMTAtMDctMDEgMTg6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNy0wMSAxNzo1MyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEZpeGVkIHR3byByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNy0wMSAwMDoxOSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTAxIDAwOjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDowMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMzAgMjM6NTUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucHJlMSAtPiBWNS42LnByZTIKCjIwMTAtMDYtMzAgMjM6NTUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDggIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcHl0aG9uL25ldHNubXAvdGVzdHMvc25tcGQuY29uZjoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaXNzZWQgdHdvIHRva2VucyBpbiB0aGUgbWFuIHBnYWVzCgoyMDEwLTA2LTMwIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiAgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZiwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ2lwaGVyVGVzdHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ3JsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0FnZW50VHJhcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJlbmFtZSB0aGUgZGVmWDUwOSB0b2tlbnMgdG8gc29tZXRoaW5nIG1vcmUgZnJpZW5kbHk6IGNsaWVudENlcnQKICAgYW5kIHNlcnZlckNlcnQKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHRvcC1maWxlIGNvbW1lbnQgdXBkYXRlcwoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IGNhbGwgY2VydF9maW5kIHdpdGggYSBOVUxMIGFyZ3VtZW50CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWxsb3cgZGVmIGNlcnRzIHRvIGJlIHNwZWNpZmllZCB1c2luZyBhIGZpbGVuYW1lCgoyMDEwLTA2LTMwIDIzOjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMTAtMDYtMzAgMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB0dXJuIGEgY291cGxlIG9mIG5vbi1jcml0aWNhbCBlcnJvcnMgaW50byBkZWJ1ZyBzdGF0ZW1lbnRzIHBlcgogICBkaXNjdXNzaW9uIHdpdGggcnN0b3J5CgoyMDEwLTA2LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1ha2UgdGhlIHJlZ2V4cCBwYXR0ZXJuIG1hdGNoIGZvciB0ZXN0cyB0byBydW4gY2FzZSBpbnNlbnNpdGl2ZQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgaW1wb3J0IHN0ZGVyciBmcm9tIHN5cywgcGVyIGRpc2N1c3Npb24gb24gLXVzZXJzCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGQgYmFjayBpbiB0aGUgZGVmYXVsdCBwb3J0IHNwZWNpZmllcgoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGVuYWJsZSBwdWxsaW5nIHRoZSBwcml2YXRlIGtleSBvdmVyIGh0dHAKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3ZlIFVSTCBjb2xsZWN0aW9uIGludG8gYSBzdWIgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhYmlsaXR5IHRvIHB1bGwgYSBjZXJ0IGZyb20gYSBVUkwKCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXJndW1lbnQgYnVnIGluIHRoZSBpc191cmwgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjA6NDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlCgoyMDEwLTA2LTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdEdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZToKCiAgIHJlbmFtZSBmaWxlIGZvciBjb25zaXN0ZW5jeQoKMjAxMC0wNi0zMCAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IHNubXB0bHMgYXBwCgoyMDEwLTA2LTMwIDIwOjAwICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgcmVtb3ZlIGFjY2lkZW50YWxseSBjaGVja2VkIGludCBkZWJ1ZyBjb2RlCgoyMDEwLTA2LTMwIDE5OjU5ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgZGVmaW5lIE9JRHMgYmFzZWQgb24gU05NUF9UTFNfVE1fQkFTRQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU3ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGF1dG8tdHJhbnNpc3Rpb24gYmV0d2VlbiBub3RSZWFkeS9ub3RJblNlcnZpY2U7IGFkZAogICBzbm1wX3N0b3JlX25lZWRlZCBvbiBjb21taXQKCjIwMTAtMDYtMzAgMTk6NTYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgbmV3IGZpbmdlcnByaW50IHBhcnNlL2J1aWxkIGZ1bmN0aW9uczsgcmVtb3ZlIGJhZCBsZW5ndGgKICAgY2hlY2s7IGF1dG8KICAgdHJhbnNpdGlvbiBiZXR3ZWVuIG5vdFJlYWR5IGFuZCBub3RJblNlcnZpY2UKCjIwMTAtMDYtMzAgMTk6NTUgIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICByZW1vdmUgcHJlLXJmYyBtaWI7IHNlZSBTTk1QLVRMUy1UTS1NSUIudHh0IGluc3RlYWQKCjIwMTAtMDYtMzAgMTk6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBjb25zb2xpZGF0ZSBtdWx0aXBsZSBmaWxlcwoKMjAxMC0wNi0zMCAxOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1ha2UgaGFzaCB0eXBlIHBhcnNlIHJvdXRpbmUgcHVibGljOyBhZGQgcm91dGluZXMgdG8gYnVpbGQvcGFyc2UKICAgU25tcFRMU0ZpbmdlcnByaW50CgoyMDEwLTA2LTMwIDE5OjUxICByc3RvcnkKCiAgICogIE1ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0bHMuYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBORVdTOiBzbm1wdGxzOiBuZXcgYXBwIGZvciBtYW5hZ2luZyAoRClUTFMgY29uZmlnIHZpYQogICBTTk1QLVRMUy1UTS1NSUIgdGFibGVzCgoyMDEwLTA2LTMwIDE5OjUwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYzoKCiAgIGNhbGwgbmV3IHNubXBfc3RvcmVfbmVlZGVkKCkgZnVuY3Rpb24gYWZ0ZXIgYSBjb21taXQgaW4gdGFibGVzCiAgIHRoYXQKICAgaGF2ZSBwZXJzaXN0ZW50IHN0b3JlCgoyMDEwLTA2LTMwIDE5OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgc2ltcGxlIHN0YXRlIG1hY2hpbmUKICAgTkVXUzogc25tcGxpYjogbmV3IGV4cGVyaW1lbnRhbCByb3cgY3JlYXRpb24gQVBJIHdoaWNoIHVzZXMgYQogICBzdGF0ZSBtYWNoaW5lCiAgIHRvIHRyeSByZWFsbHkgaGFyZCB0byBjcmVhdGUgYSByb3cgZnJvbSBhIGdpdmVuIHZhcmJpbmQgbGlzdAoKMjAxMC0wNi0zMCAxOTo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wZDogbmV3IEFQSSBmb3IgaW5kaWNhdGluZyB0aGF0IHBlcnNpc3RlbnQgc3RvcmUgbmVlZHMKICAgdG8gYmUgc2F2ZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgcmVxdWVzdCBmaW5pc2hlcyBwcm9jZXNzaW5nCgoyMDEwLTA2LTMwIDE5OjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBhZGQgc29tZSBuZXcgd3JhcHBlciBtYWNyb3MKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0NOU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW5TZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE1RHRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNlRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN2R0bHNDTlNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExOFRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICBhZGRlZCBjaGVja3MgZm9yIGNoZWNraW5nIGRpcmVjdCBwYXNzaW5nIG9mIGxvY2FsaG9zdCB0byB0aGUKICAgZXhwZWN0ZWQgbmFtZQoKMjAxMC0wNi0zMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXI6CgogICBjaGVjayBmb3Igd2lsZGNhcmQgc3VwcG9ydAoKMjAxMC0wNi0zMCAxNTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzdXBwb3J0IFNBTiBhbmQgQ04gd2lsZGNhcmQgbWF0Y2hpbmcgcGVyIHNwZWMKCjIwMTAtMDYtMzAgMTU6MDAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzTmFtZSwgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1RyYXBkVXNlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeCwgCiAgICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFEdGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAyVGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFEdGxzU2VydmVyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMlRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM0R0bHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM2R0bHN1ZHBzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNFRsc1Nhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFEdGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIyVGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFEdGxzQWdlbnRUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFkdGxzdWRwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMlRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MUR0bHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MWR0bHN1ZHBjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MlRsc0NybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFEdGxzQ2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxZHRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MlRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MnRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMFRsc0lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMHRsc2lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMFRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxRHRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMUR0bHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMlRsc1RzbVByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIG1vdmVkIHRlc3QgZmlsZXMgYXJvdW5kIGZvciBiZXR0ZXIgbmFtaW5nCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgZHRscyB0cmFuc3BvcnQgYWRkcmVzcyB0byB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUgZnJvbSB0aGUgdHJhbnNwb3J0IHN0cmluZyBpZiBwb3NzaWJsZQoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGEgYml0IG1vcmUgaGVscCBvdXRwdXQgYnkgZGVmYXVsdAoKMjAxMC0wNi0yOSAyMjoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTExNjogbWFrZSBzdXJlIHdlIGluY2x1ZGUgYWdlbnQgY29uZmlnCgoyMDEwLTA2LTI5IDIyOjE4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgQWRkIG1pc3NpbmcgY29uZmlnX3JlcXVpcmVzCgoyMDEwLTA2LTI5IDE3OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIHJld29yayB0aGUgc25tcGNtZCBtYW51YWwgcGFnZSB0byBzZXBhcmF0ZSBvdXQgdGhlIGZsYWdzIGludG8KICAgc2VjdGlvbnMgYXBwcm9wcmlhdGUgZm9yIHRoZWlyIHVzYWdlIHR5cGUKCjIwMTAtMDYtMjkgMTY6NTEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHBvZCBkb2NzLCBzb21lIGRlZmF1bHQgdmFsIGZpeGVzLCBpbmZvIG91dHB1dCBub3JtYWxpemVkCgoyMDEwLTA2LTI5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBhZGRlZCBzc2guaCBpbmNsdWRlCgoyMDEwLTA2LTI5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHJlb3JnYW5pemUgdGhlIG1hbnVhbCBwYWdlIGEgYml0IGZvciBTTk1QdjMgYW5kIFRMUwoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBkZWZhdWx0IHRscyByZWdpc3RyYXRpb25zCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjaGVjayBmb3IgTlVMTCB0cmFuc3BvcnRzIGFmdGVyIGFuIG9wZW4gZmFpbHMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92aW5nIGxvZ2dpbmcgYXJvdW5kIHNvIHRoYXQgb3BlbnNzbCBlcnJvcnMgYXJlIHByaW50ZWQgb24KICAgZmFpbHVyZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeDoKCiAgIGZpeCBzb21lIG5vbi1pbnRlcmFjdGl2ZSBpbnZvY2F0aW9uIGlzc3VlcwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHNvbWUgY29tbW9uIGNvZGUgaW50byBhIGNvbW1vbiBmdW5jdGlvbgoKMjAxMC0wNi0yOCAxOToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NpcGhlclRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZToKCiAgIGNpcGhlciBzdWl0ZSBzZWxlY3Rpb24gYW5kIHRlc3RzIGZvciBpdAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL0xJQ0VOU0U6CgogICBsaWNlbnNlIHVwZGF0ZXMKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqICBweXRob24vUkVBRE1FLCBweXRob24vbmV0c25tcC9jbGllbnQucHksICAgCiAgICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBTTk1QdjMgb3ZlciBUTFMgc3VwcG9ydAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGJldHRlciBvdXRwdXQgc2hvd2luZyB0ZXN0IHR5cGVzCgoyMDEwLTA2LTI4IDAwOjU0ICB0YW5kZXJzCgogICAqICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogbWFuOiBjbGVhbiB1cCBtYW51YWwgcGFnZXMKICAgKGZyb20gRGViaWFuIHBhdGNoIDU2X21hbnBhZ2UpCgoyMDEwLTA2LTI3IDIzOjI5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgY2FsbCB2YWNtX3N0YW5kYXJkX3ZpZXdzKCkgb3IKICAgaW5pdF92YWNtX2NvbmZpZ190b2tlbnMoKSBpZiB0aGUgY29ycmVzcG9uZGluZyBtb2R1bGUgd2FzIG5vdAogICBjb21waWxlZAogICAoZnJvbSBEZWJpYW4gcGF0Y2ggNjFfdmFjbV9taXNzaW5nX2RlcGVuZGVuY3lfY2hlY2spCgoyMDEwLTA2LTI3IDAzOjIzICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXBwIHRhZyBjb21wbGV0aW9ucwoKMjAxMC0wNi0yNyAwMDo1NiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBoYW5kbGUgY29uZmlnIGZpbGUgc2V0dGluZyBpbnRlcmFjdGl2ZSwgdHJ1ZS9mYWxzZSB2YWx1ZXMgaGFuZGxlZAogICBpbiBjb25maWcKCjIwMTAtMDYtMjYgMjA6NTggIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBzb21lIGJ1Z3Mgdy8gc3BhY2VzIGluIG5hbWVzIGFuZCBhcHAgdGFnIGhlbHAKCjIwMTAtMDYtMjYgMTk6MzggIG1hcnoKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0ZXN0cyB0byB1c2Ugbm9uLWludGVyYWN0aXZlIC1JCgoyMDEwLTA2LTI2IDE3OjQ2ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGJldHRlciBpbnRlcmFjdGl2ZSwgPz1oZWxwLCA8dGFiPiBjb21wbCwgbW9yZSBoZWxwLCBTQU4gbG9vcAogICBmb3JtYXQgYW5kIHRlcm1pbmF0aW9uIGZpeCwgdG9sZXJhdGUgc3BhY2VzIGluIGZpZWxkcyBhbmQKICAgZmlsZW5hbWVzLCBtb3JlIGNvbXBsZXRlIGVycm9yIG91dHB1dCwgZW1icnlvbmljIGltcG9ydCBmcm9tIHVybAoKMjAxMC0wNi0yNiAxMzo0OCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMuCgoyMDEwLTA2LTI2IDEzOjQ3ICBidmFzc2NoZQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRml4ZWQgdGhlIGVycm9ycyBpbiBhY2NvbmZpZy5oIGFuZCByZWdlbmVyYXRlZAogICBuZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMDYtMjYgMTM6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IFNNVVggTUlCIGltcGxlbWVudGF0aW9uLgoKMjAxMC0wNi0yNiAwMDo0NSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzYW50ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTR0bHN0Y3BzYW5fc2ltcGxlOgoKICAgZml4ZXMgYW5kIHRlc3RpbmcgZm9yIGNoZWNraW5nIFNBTiBETlMgbmFtZXMgZnJvbSB0aGUgc2VydmVyCgoyMDEwLTA2LTI2IDAwOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICBnZW5lcmljaXplIHRoZSBzZXJ2ZXIgbmFtZSB0ZXN0cwoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmgsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxZHRsc3RzbXByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIHVzZXByZWZpeCBzY2FsYXIgdGVzdGluZyBhbmQgc3VwcG9ydAoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0czoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgbGluZXMKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICBwdXQgaW4gb25seSBtaW5pbWlhbCBkZWJ1ZyBmbGFncwoKMjAxMC0wNi0yNSAyMzowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJ0bHN0Y3Bjcmxfc2ltcGxlOgoKICAgY29kZSBhbmQgdGVzdCBjYXNlcyBmb3IgQ1JMIGhhbmRsaW5nCgoyMDEwLTA2LTI1IDE1OjI0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlOgoKICAgQWRkZWQgYSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgZWFjaCBsaW5lIHByaW50ZWQgYnkgdGhlIFBlcmwKICAgaW50ZXJwcmV0ZXIuCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlZHVjZSBudW1iZXIgb2YgcmVzZW5kIGF0dGVtcHRzIGFuZCB0aW1lb3V0CgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsIHNubXBsaWIvY2VydF91dGlsLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHdhcm5pbmcgZml4ZXMKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZW1vdmUgbG9naWMgdHlwbyBmcm9tIHByZXZpb3VzIGNvbW1pdAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZToKCiAgIElQdjYgZml4ZXMgZm9yIFRDUAoKMjAxMC0wNi0yNSAxMzowMSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGluZyAxOTA5NSwgaXQgYnJlYWtzIHRlc3RzCgoyMDEwLTA2LTI1IDA5OjQwICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcHRyYW5zbGF0ZTogZml4ZWQgcHJpbnRpbmcgb2YgcmFuZ2VzIHdpdGggVU5TSUdORUQKICAgdHlwZS4KCjIwMTAtMDYtMjQgMjM6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGZ1bmN0aW9uIG5hbWVzIGZvciBzdGF0IGluY3JlYXNlcwoKMjAxMC0wNi0yNCAyMzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3JzIGluIGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjQgZm9yIGR0bHMKCjIwMTAtMDYtMjQgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tbWVudHMgZm9yIDUuMy4yCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNsaWVudCBzaWRlIGNvbm5lY3QgY29tbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY291bnRlciBhbmQgY29tbWVudCBpbXByb3ZlbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgdXBkYXRlIGNvdW50ZXIgY2FsbHMgYW5kIGNvbW1lbnQgdGV4dAoKMjAxMC0wNi0yNCAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIE1vdmVkIExEX0xJQlJBUllfUEFUSCBzZXR1cCBmcm9tIGluZGl2aWR1YWwgdGVzdHMgc2NyaXB0cyB0bwogICBzaW1wbGVfVEVTVENPTkYuc2guCgoyMDEwLTA2LTI0IDE5OjAyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBGaXhlZCBhIGNvbW1lbnQuCgoyMDEwLTA2LTI0IDE3OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIFNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE5MDg0LgoKMjAxMC0wNi0yNCAxNzo0NyAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA2LTI0IDEyOjMwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgInRlc3QgLWUiIGlzbid0IHBvcnRhYmxlOyB1c2UgInRlc3QgLXgiIGluc3RlYWQgZm9yIHRoZSBQZXJsCiAgIHN5c3RlbSgpCiAgIGNoZWNrCgoyMDEwLTA2LTIzIDExOjE0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB2YWx1ZSBvZiBJUC1NSUI6OmlwdjZJbnRlcmZhY2VGb3J3YXJkaW5nIG9uCiAgIExpbnV4CiAgIAogICBUaGUgdmFsdWUgd2FzIDAgKG5vdCBmb3J3YXJkaW5nKSBvciAxIChmb3J3YXJkaW5nKSwgc2hvdWxkIGJlIDIKICAgYW5kIDEKICAgaW5zdGVhZCAtIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LmZvcndhcmRpbmdfdjYgaXMgYm9vbGVhbiwgbm90CiAgIFRydXRoVmFsdWUuCgoyMDEwLTA2LTIyIDIzOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBzdXBwb3J0IGZvciBjZXJ0U2VjTmFtZSBtYXBwaW5nIGZyb20gYSBsb2NhbCBjZXJ0IGZpbGUgbmFtZSBhbmQgYQogICB0ZXN0IGZvciBpdAoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVuYXRpb24gdXBkYXRlIHRvIGNsZWFuIHVwIGFuZCBpbmNsdWRlIFRMUyBwYXJhbWV0ZXJzCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBzdXBwb3J0IGZvciBwYXNzaW5nIGlkZW50aXRpZXMgYW5kIGZ1bGwgd29ya2luZyB2ZXJzaW9uCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1MzMDB0bHNwZXJsLnBsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMHRsc3RjcHBlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50OgoKICAgcGVybCBUTFMvRFRMUyB0ZXN0cwoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZmlyc3QgcHRhY2ggb24gU05NUC9UTFMgY3JlYXRpbmcgYSBuZXcgc2Vzc2lvbiBmdW5jdGlvbgoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXJzdCB3b3JraW5nIHN1cHBvcnQgZm9yIGEgZGVsYXllZCBjbG9zZSgpIHRvIGF0dGVtcHQgdG8gc2VuZGluZwogICBvdXRzdGFuZGluZyBwYWNrZXRzIGluIHRoZSBxdWV1ZTsgdGhpcyBpcyByZXF1aXJlZCBmb3Igc25tcHRyYXAKICAgdG8gd29yayBhdCBhbGwgd2hlbiBzZW5kaW5nIHRyYXBzIChub3QgaW5mb3Jtcykgb3ZlciBEVExTCgoyMDEwLTA2LTIyIDE5OjAzICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0cyBUMDU5IGFuZCBUMDY1IGRvIG5vdyBwYXNzLgoKMjAxMC0wNi0yMiAxOTowMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgVGhlIHdpZHRoIGFyZ3VtZW50IGZvciAlLipkIG11c3QgaGF2ZSB0eXBlIGludCwgbm90IHNpemVfdC4gVGhpcwogICBidWcgd2FzIGludHJvZHVjZWQgaW4gcjE5MDE0LgoKMjAxMC0wNi0yMiAxODo1NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIENIQU5HRVM6IE1pbkdXOiBydW5fc2hlbGxfY29tbWFuZCgpIHdpdGggZWl0aGVyIGlucHV0IG9yIG91dHB1dAogICAoYnV0IG5vdCBib3RoKSBkb2VzIG5vdyB3b3JrLgogICBUaGlzIGRpZCBub3Qgd29yayB1bnRpbCBub3cgYmVjYXVzZSBvbiBNaW5HVyBta3N0ZW1wKCkgZ2VuZXJhdGVzCiAgIGEgTWluR1ctc3R5bGUgcGF0aCAoL3RtcC8uLi4pIHdoaWxlIHN5c3RlbSgpIGludm9rZXMgY21kLmV4ZSBhbmQKICAgaGVuY2UgZXhwZWN0cyBhIFdpbmRvd3Mtc3R5bGUgcGF0aCAoQzpcLi4uKS4KCjIwMTAtMDYtMjIgMTc6MzkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBBbHNvIHJlcG9ydCB0aGUgcG9ydCBzcGVjaWZpY2F0aW9uIGlmIFsgJFNOTVBfVkVSQk9TRSAtZ3QgMCBdLgoKMjAxMC0wNi0yMiAxNzozOCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIFJlcGxhY2VkIGFuIGV4cGxpY2l0IHRlc3QgZm9yIE1pbkdXIGJ5IGEgdGVzdCBvbiBIQVZFX1NJR0hVUC4KCjIwMTAtMDYtMjIgMTc6MzYgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBTSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgUmVwb3J0IHdoaWNoIHRlc3RzIGZhaWxlZCwgaWYgYW55LgoKMjAxMC0wNi0yMiAwODozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXhlZCBhbiBlcnJvciBpbiBhIGNvbW1lbnQgYmxvY2suCgoyMDEwLTA2LTIxIDE5OjI2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgUmVhcnJhbmdlZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyB0ZXN0IHN1Y2ggdGhhdCBpdCBpcyBubwogICBsb25nZXIgbmVjZXNzYXJ5CiAgIHRvIGludm9rZSBzaW1wbGVfZXZhbF90b29scy5zaCB3aGVuIHRoaXMgc2NyaXB0IGlzIGludm9rZWQgYXMgYQogICB0cmFwIGhhbmRsZXIKICAgYnkgc25tcHRyYXBkLgoKMjAxMC0wNi0yMSAwODowMSAgZHRzMTIKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEVuc3VyZSB0aGF0IGZkc2V0IHN0cnVjdHVyZSBpcyByZXNpemVkIHN1ZmZpY2llbnRseQogICB0byBhY2NvbW9kYXRlIHRoZSBzcGVjaWZpZWQgc29ja2V0IElELgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFNoaXlhbGVpLgoKMjAxMC0wNi0yMCAxOTozMiAgZHRzMTIKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgICAKICAgICAgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgQXZvaWQgZHVwbGljYXRlICh1bnVzZWQpIHN5bWJvbHMuCgoyMDEwLTA2LTIwIDE5OjMxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgQ29tbWVudGVkIG91dCBkZWJ1ZyBjb2RlLgoKMjAxMC0wNi0yMCAxOTozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgUmVzdG9yZWQgc3VtbWFyeSBzdWNjZXNzL2ZhaWx1cmUgY291bnQgcmVwb3J0aW5nLgogICBBbHNvLCBtb3ZlZCBraWxsLmV4ZSB0ZXN0IGJhY2sgdG8gUlVOVEVTVFMuCgoyMDEwLTA2LTIwIDE5OjI5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogYWRkIHRoZSB0ZXN0IG5hbWUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmaWxlCiAgICJpbnZva2VkIi4KCjIwMTAtMDYtMjAgMTk6MjcgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogc2tpcCB0aGUgdGVzdHMgdGhhdCByZXF1aXJlIFNJR0hVUCBzaW5jZQogICBNaW5HVyBkb2VzIG5vdCBzdXBwb3J0IFNJR0hVUC4KCjIwMTAtMDYtMjAgMTU6MTkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjb25maWd1cmUgdGVzdCB0aGF0IGRldGVjdHMgd2hldGhlciBvciBub3QgUGVybCdzCiAgIHN5c3RlbSgpIGZ1bmN0aW9uCiAgIGludm9rZXMgYSBQT1NJWCBzaGVsbC4gIm1ha2UgdGVzdCIgZG9lcyBub3cgZmFsbCBiYWNrIHRvIFJVTlRFU1RTCiAgIGlmIG5vdC4KCjIwMTAtMDYtMjAgMTU6MTYgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBCdWlsZHMgYWdhaW4gb24gTWluR1cgLS0gYWRkZWQgI2luY2x1ZGUgPG5ldC1zbm1wL3R5cGVzLmg+IHdoZXJlCiAgIG5lY2Vzc2FyeS4KICAgTm90ZTogYWx0aG91Z2ggPG5ldC1zbm1wL3R5cGVzLmg+IGlzIGluY2x1ZGVkIGluZGlyZWN0bHkgZnJvbSB0aGUKICAgKiAgICAgKnRyYW5zcG9ydC5oICAgIGhlYWRlciBmaWxlcywgdGhlc2UgI2luY2x1ZGUgc3RhdGVtZW50cyBhcmUKICAgICAgbmVjZXNzYXJ5IGJlY2F1c2Ugb2YgICAgYSBwZXNreSAgICBjaXJjdWxhciBkZXBlbmRlbmNlIGJldHdlZW4KICAgICAgPG5ldC1zbm1wL3R5cGVzLmg+IGFuZCAgICA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oPi4gCiAgICAgIDIwMTAtMDYtMjAgMTU6MTIgIGJ2YXNzY2hlCgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBDSEFOR0VTOiBNaW5HVzogcmVmdXNlIHRvIHJ1biB0aGUgcmVncmVzc2lvbiB0ZXN0cyBpZiBraWxsLmV4ZQogICBjYW5ub3QgYmUgZm91bmQuCgoyMDEwLTA2LTIwIDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU2hvcnRlbmVkIHRoZSBzcmNkaXIgcGF0aCBieSBtYWtpbmcgc3VyZSB0aGF0IGl0IGRvZXMgbm90IGNvbnRhaW4KICAgLy4uCgoyMDEwLTA2LTE5IDE4OjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIHJ1bm5pbmcgUlVORlVMTFRFU1RTIHdpdGggVGVzdDo6SGFybmVzcyBpbgogICBhbm90aGVyIGRpcmVjdG9yeSB0aGFuIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBjb21wbGV0ZSByZXdyaXRlIG9mIHBhcmFtcyB0byB1c2UgdGFibGVfZGF0YXNldCBpbnN0ZWFkIG9mCiAgIGNyZWF0ZS1kYXRhc2V0CgoyMDEwLTA2LTE5IDE2OjQxICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVzZSB0ZXh0IGZvciBoYXNoIHR5cGUgaW4gcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0xOSAxNjo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBtaXNzaW5nIHNwZWNpZmllciBpbiBkZWJ1ZwoKMjAxMC0wNi0xOSAxNjozOSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVzZSBkZWZpbmUgaW5zdGVhZCBvZiBjb25zdGFudDsgZml4IGNoZWNrIGZvciByb3dzIHRvIHNhdmUKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgcmVtb3ZlL2ZpbmQgZnVuY3Rpb24gZm9yIG1hcHMvYWRkcnMvcGFyYW1zOyByZW5hbWUgcGFyYW1zCiAgIHRhZy0+bmFtZTsKICAgZGVzdHJveSAtPiBmcmVlOyBncm91cCByZWNlbnQgdHJ1c3QgZnVuY3Rpb25zIHRvZ2V0aGVyIGluIHNyYzsKICAgZG9uJ3Qgc3RvcmUKICAgcGFyYW1zIGZwIGFzIGJpbmFyeTsgaGFuZCB0ZXh0IGFyZ3MgZm9yIGhhc2ggdHlwZSAoZS5nIC0tc2hhMSkKCjIwMTAtMDYtMTggMTU6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBDSEFOR0VTOiBDeWd3aW46IGNvcnJlY3RlZCBlcnJvciBoYW5kbGluZyBpbiBtaWJJSS9hdC4KCjIwMTAtMDYtMTggMDc6MjMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNi0xOCAwMTo0MiAgbWFnZnIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgRG8gbm90IGRlZmluZSByZXQgdHdpY2Ugd2hlbiBORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8gaXMgc2V0LgoKMjAxMC0wNi0xOCAwMTozOSAgbWFnZnIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIENvcnJlY3RlZCB0eXBvLgoKMjAxMC0wNi0xOCAwMDozMSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIGJldHRlciBORVdTIGFuZCBDSEFOR0VTIGZpbGVzCgoyMDEwLTA2LTE3IDIwOjM5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTE3IDE4OjU5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUgLT4gVjUuNi5wcmUxCgoyMDEwLTA2LTE3IDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMTcgMTg6NTkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6NTUgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgcmUtZW5hYmxlIHNvbWUgY29tbWFuZHMKCjIwMTAtMDYtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIGZvcmdvdCBtaXNzaW5nIHF1b3RlcyBpbiBTRVQgb3V0cHV0CgoyMDEwLTA2LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgdGxzIHRlc3RpbmcgY2xlYW51cAoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZml4ZXMgZm9yIGFkZHJlc3MgcHJpbnRpbmc7IG1vcmUgdG8gY29tZQoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vc3RseSBwcm9wZXJseSBzZXQgcmVtb3RlL2xvY2FsIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFkdGxzdWRwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZToKCiAgIHRlc3RzIGZvciBhZ2VudHMgc2VuZGluZyBvZiB0cmFwcyBvdmVyIChEKVRMUwoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGU6CgogICBtb3ZlIGV4cG9ydCBzdGF0ZW1lbnRzIHRvIHRoZSBzdXBwb3J0IGZpbGUgZm9yIHNpbXBsaWNpdHkKCjIwMTAtMDYtMTcgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSB0bHMgYm9vdHN0cmFwcGluZyB0byBwb3N0X3ByZW1pYiBzbyBvdGhlciBjb25maWcgdG9rZW5zIGNhbgogICB1c2UgdGhlIGNlcnQgbG9hZGluZyByZXN1bHRzCgoyMDEwLTA2LTE3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgYWRkZWQgc25tcF9lbnVtIHRlc3RzIHB1bGxlZCBmcm9tIHRoZSBtYWluKCkgdGVzdCBhdCB0aGUgYm90dG9tCiAgIG9mIHRoZSBvcmlnaW5hbCAuYyBmaWxlCgoyMDEwLTA2LTE3IDE2OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEVsaW1pbmF0ZSAiZGlmZmVyIGluIHNpZ25lZG5lc3MiIHdhcm5pbmcKCjIwMTAtMDYtMTcgMDA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgcmV2ZXJ0IFVEUCBjaGFuZ2VzIGZyb20gcjE4OTg0IHNpbmNlIGl0IGJyb2tlIHRoZSBVRFAgdHJhbnNwb3J0OwogICB0aGUgc3RydWN0IHByb2JhYmx5IG5lZWRzIHRvIG1hdGNoIGFub3RoZXIgc3RydWN0IHNvbWV3aGVyZSBlbHNlCgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGEgbmV3IEtFWVdPUkQgb3V0cHV0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBjb25maWdfYW5kX29wZW4gZm9yIG9wZW5pbmcgdGhlIHRyYW5zcG9ydAoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBleHRyYSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAxMC0wNi0xNiAyMjoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgZXhwbGljaXRseSBkZWNsYXJlIHRydXN0IGNlcnRpZmljYXRlcyB0byB0cmFuc3BvcnQKCjIwMTAtMDYtMTYgMjI6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjbGVhbnVwIHNvbWUgbG9zdCBtZW1vcnkgb24gY2xvc2luZwoKMjAxMC0wNi0xNiAyMTo1NiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvcwoKMjAxMC0wNi0xNiAyMTozNCAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiB3YXJuaW5ncyBmcm9tCiAgIGFnZW50IGNvZGUgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAyMDoxNiAgZHRzMTIKCiAgICogIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi92YWNtLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIHdhcm5pbmdzIGZyb20KICAgbGlicmFyeSBjb2RlIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTk6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIG9sZGVyIG5vLWxvbmdlci1uZWVkZWQtZHVwbGljYXRlLWNvbmZpZyBlbnRyaWVzCgoyMDEwLTA2LTE2IDE5OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEZpeCBwcm9jZXNzaW5nIG9mIHZpZXcgbWFza3MgKG1pc3BsYWNlZCBwYXJlbnRoZXNlcykKCjIwMTAtMDYtMTYgMTg6NDUgIGR0czEyCgogICAqICBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmM6CgogICBFbGltaW5hdGUgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgZnJvbSBhcHAgY29kZQogICBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE3OjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzOgoKICAgY2hlY2sgZm9yIGluZm9ybXMgc2VudCBvdmVyIHRscyB0cmFuc3BvcnRzCgoyMDEwLTA2LTE2IDE3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgb3RoZXIgdmFsdXNlIGZyb20gcGFyZW50IHRsc2Jhc2UgZGF0YQoKMjAxMC0wNi0xNiAxNzoyMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlOgoKICAgYWRkZWQgYmFzaWMgdHJhcCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgdGVzdHMKCjIwMTAtMDYtMTYgMTc6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIHRlbXAgZmlsZSB0b3VjaGVzCgoyMDEwLTA2LTE2IDE3OjIwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkZWQgYSBuZXcgZnVuY3Rpb24gYW5kIHRyYW5zcG9ydCBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSBmX29wZW4KICAgY2FsbCBoYXMgYmVlbiBjYWxsZWQgeWV0CgoyMDEwLTA2LTE2IDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVudXNlZCB2YXIgd2FybmluZyBjbGVhbnVwCgoyMDEwLTA2LTE2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFkZGVkIHRydXN0Q2VydCBjb25maWd1cmF0aW9uIHRva2VuCgoyMDEwLTA2LTE2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBtaW5vciB0d2Vha3MgZm9yIHRlc3RpbmcgY2xhcml0eQoKMjAxMC0wNi0xNiAxNzoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZToKCiAgIG1vdmVkIGNvbXBsZXggKEQpVExTIHRvIGEgc2VwYXJhdGUgc2VjdGlvbiBhbmQgbWFkZSB0aGUgdHJhbnNwb3J0CiAgIHRlc3RzIG9ubHkgdGVzdCBtaW5pbWFsIHN1cHBvcnQKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGQgbWVjaGFuaXNtcyBmb3Igc3BlY2lmeWluZyBhbmQgZXhwZWN0aW5nIHRoZSBob3N0bmFtZSBvZiB0aGUKICAgZmFyIHNpZGUKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICB0ZXN0cyBmb3IgdmVyaWZ5aW5nIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGVjayBmYWlsdXJlcwoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RscywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgdGVzdGluZyBmb3IgY2hlY2tpbmcgY2xpZW50IHNpZGUgdmVyaWZpY2F0aW9uIG9mIHNlcnZlcgogICBjZXJ0aWZpY2F0ZXMKCjIwMTAtMDYtMTYgMTc6MTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgc2V0dXAgZm9yIGEgaG9zdG5hbWUgY29uZmlnIG9wdGlvbgoKMjAxMC0wNi0xNiAxNzoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXR1cCBmb3IgYSBob3N0bmFtZSBjb25maWcgb3B0aW9uCgoyMDEwLTA2LTE2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hlY2sgdG8gbWFrZSBzdWVyIHNzbCBwb2ludGVyIGhhcyBiZWVuIGNyZWF0ZWQgdmlhIGZfb3BlbiBjYWxsCgoyMDEwLTA2LTE2IDE1OjAyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuaCwgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERlY2xhcmUgJ3NodXRkb3duX3BlcmwnIHByb3Blcmx5LgoKMjAxMC0wNi0xNiAxNDozNyAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmM6CgogICBFbGltaW5hdGUgInNpZ25lZCBhbmQgdW5zaWduZWQgdHlwZSBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgogICB3YXJuaW5ncyBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE0OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBFbGltaW5hdGUgInVudXNlZCB2YXJpYWJsZSIgd2FybmluZwoKMjAxMC0wNi0xNiAxNDoyMiAgZHRzMTIKCiAgICogIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIEVsaW1pbmF0ZSB2YXJpb3VzICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xNiAxMzoxMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYXBwcy9zbm1wdmFjbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBFbGltaW5hdGUgKG1vc3QpIHNpZ25lZC12cy11bnNpZ25lZCB3YXJuaW5ncyBmcm9tIG51bWVyaWMgc2NhbmYKICAgcHJvY2Vzc2luZyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNiAwMzoyOCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHRoZSBncmVhdCB1bi1uYW1lZCBjb250YWluZXIgaHVudAoKMjAxMC0wNi0xNiAwMzoyNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgc2hhcmUgY2FjaGUgYmV0d2VlbiB0YWJsZSBhbmQgY291bnQgc2NhbGFyOyB3aGVuIHJlYWRpbmcgY29uZmlnLAogICBhZGQgdG8KICAgbGlicmFyeSBjb250YWluZXJzIGZvciBhY3RpdmUgcm93cywgdGFibGUgY29udGFpbmVycyBmb3IgaW5hY3RpdmUKICAgcm93czsKICAgdXNlciBjZXJ0X3V0aWwgYXBpcyBpbnN0ZWFkIG9mIGRpcmVjdCBjb250YWluZXIgbWFuaXB1bGF0aW9uOwogICB3aGVuCiAgIHNhdmluZyBpbmFjdGl2ZSBtYXAgcm93cywgc2tpcCBhbGwgYnV0IG5vblZvbGF0aWxlCgoyMDEwLTA2LTE2IDAzOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBkZWJ1ZyB0b2tlbiB0eXBvCgoyMDEwLTA2LTE2IDAzOjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGFwaSBmb3IgYWRkaW5nIGVudHJpZXMgdG8gdGx0c20gYWRkciwgcGFyYW1zIGFuZCBjZXJ0IG1hcAogICBjb250YWluZXJzOwogICByZWdpc3RlciBzZSBzbGlzdCBwYWlyIGVhcmxpZXIgc28gdGhleSBhcmUgYXZhaWxhYmxlIGR1cmluZwogICBjb25maWcgcGFyc2luZzsKICAgbWFrZSBzdXJlIGNvbmZpZyBzdHJpbmdzIGFyZSBudWxsIHRlcm1pbmF0ZWQKCjIwMTAtMDYtMTUgMjE6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIFN1cHByZXNzIHdhcm5pbmdzOgogICAnc3RydWN0IG5sbXNnaGRyIGRlZmluZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0JyBhbmQKICAgJ2Z1bmN0aW9uIF9sb2FkX3Y2IGRlY2xhcmVkIGJ1dCBuZXZlciBkZWZpbmVkJwoKMjAxMC0wNi0xNSAyMTozMCAgZHRzMTIKCiAgICogIGFnZW50L2tlcm5lbC5jLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvcGtjcy5jLCBzbm1wbGliL3NucHJpbnRmLmM6CgogICBFbGltaW5hdGUgImVtcHR5IHRyYW5zbGF0aW9uIHVuaXQiIHdhcm5pbmdzIFstcGVkYW50aWNdCgoyMDEwLTA2LTE1IDA3OjA3ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDNjb3B5X253b3JkX2NsaWIuYzoKCiAgIEFkZCB0ZXN0IG9mIGNvcHlfbndvcmQKCjIwMTAtMDYtMTQgMjE6MzIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBFbGltaW5hdGUgIm92ZXJmbG93IGluIGltcGxpY2l0IGNvbnN0YW50IGNvbnZlcnNpb24iIHdhcm5pbmdzCiAgIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTE0IDE1OjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRWxpbWluYXRlICJzdHJpbmcgbGVuZ3RoIGdyZWF0ZXIgdGhhbiA1MDkiIHdhcm5pbmdzIFstcGVkYW50aWNdCgoyMDEwLTA2LTE0IDE1OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIEVsaW1pbmF0ZSAiaW5pdGlhbGl6ZXIgZWxlbWVudCBpcyBub3QgY29tcHV0YWJsZSIgd2FybmluZ3MKICAgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTQgMDU6MjcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgY291bnQgaGFuZGxlcnMgdG8gY291bnQgbm9uLWFjdGl2ZSByb3dzIHRvbwoKMjAxMC0wNi0xNCAwNToxMiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIG9ubHkgdHdlYWsgc3RvcmFnZVR5cGUgZm9yIGFjdGl2ZSByb3dzOyByZXNldCBlbnRyeSBmbGFncyB3aGVuCiAgIHJlbW92aW5nIGZyb20KICAgY2VydF91dGlsIG1hcHM7IHdoZW4gY3JlYXRlaW5nIHJvd3MgZnJvbSBjZXJ0X3V0aWwgbWFwcywgc2V0CiAgIHN0cmFnZXRUeXBlIHRvCiAgIHZvbGF0aWxlIGlmIG5vblZvbGF0aWxlIGZsYWcgbm90IHNldDsgZG9udCBmcmVlIGNhY2hlIGluCiAgIGNhY2hlX2xvYWQgb24gZXJyCgoyMDEwLTA2LTE0IDA1OjEwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIG1vdmUgdGxzdG1BZGRyIHRhYmxlIGNvbmZpZyBwYXJzaW5nIHRvIGNlcnRfdXRpbDsgYWRkIGNhY2hlIHRvCiAgIG1lcmdlIGNlcnRfdXRpbAogICBhZGRycyAoYWN0aXZlKSBhbmQgbm9uLWFjdGl2ZSByb3dzOwoKMjAxMC0wNi0xNCAwNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBub25Wb2xhdGlsZSBmbGFnIHRvIHRsc3RtQWRkciB0YWJsZTsgc2V0IGNvbnRhaW5lciBuYW1lOyBza2lwCiAgICcweCcgaW4gZnAKCjIwMTAtMDYtMTQgMDU6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoYW5nZSBMT0dfRVJSIHRvIExPR19JTkZPIGZvciBub24tZXJyb3IgbG9nIG1zZwoKMjAxMC0wNi0xMyAyMTowMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20KICAgTWZELWJhc2VkIE1JQiBtb2R1bGUgY29kZSwgYW5kIE1mRCB0ZW1wbGF0ZSBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMiAyMTozMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbSAobm9uLU1mRCkKICAgTUlCIG1vZHVsZSBjb2RlLiBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMiAxMDoyNiAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20gbGlicmFyeSwKICAgYXBwcyBhbmQgYWdlbnQgZnJhbWV3b3JrK2hlbHBlcnMgY29kZS4gWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTAgMjA6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBsb29rdXAgY2VydCBrZXlzIGZvciB0bHMgZG9tYWluczsgdXNlIFNFQ19NT0RFTCBkZWZpbmUgaW5zdGVhZCBvZgogICBoYXJkY29kZWQKICAgY29uc3RhbnQ7IGFkZCBTRUNfTU9ERUxfVFNNIHRvIGFsbG93ZWQgc2VjIG1vZGVscyBmb3IgbXBNb2RlbAogICBTTk1QX1ZFUlNJT05fMwoKMjAxMC0wNi0xMCAyMDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGRlZmF1bHQgdG8gcmVhZE9ubHkvYWN0aXZlIGZvciBiYWQgY29uZmlnCgoyMDEwLTA2LTEwIDIwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhZGQgZGVidWc7IHN3aXRjaCB0byBTRUNfTU9ERUxfVFNNIGFuZCB3YXJuIGlmIG90aGVyIHNlY21vZGUgc2V0LAogICBpbnN0ZWFkCiAgIG9mIHNpbXBseSBsb2dnaW5nIHRoYXQgaXQgd29uJ3Qgd29yawoKMjAxMC0wNi0xMCAxOTo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2hlY2sgcHRycyBiZWZvcmUgZGVyZWZlcmVuY2UKCjIwMTAtMDYtMTAgMTk6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIHNubXBUbHN0bUFkZHJUYWJsZSBkYXRhIG1hbmFnZW1lbnQgdG8gY2VydF91dGlsOyBpbXBsZW1lbnQKICAgVEFSR0VUX0FERFIKICAgYW5kIFRBUkdFVF9QQVJBTVMgbG9va3VwIGluIGNlcnQgQVBJCgoyMDEwLTA2LTEwIDE5OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXBkYXRlIHNlYyBtb2RlbCBkZWZpbmUgbWlzc2VkIGluIGVhcmxpZXIgY2hlY2tpbgoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGNvbmZpZyB0cmFwc2VzcyB0cmFuc3BvcnRzIG9uIGNyZWF0aW9uOyBzaW1wbGlmeSBpZmRlZnMgZm9yCiAgIERJU0FCTEVfU05NUFYxCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBrc20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYXV0byBzd2l0Y2ggdG8gdjMgZm9yIChkKXRscyBzZXNzaW9ucyBpbnN0ZWFkIG9mIGxvZ2dpbmcgdGhhdAogICBvdGhlcnMgd29udAogICB3b3JrOyBkZWZpbmUgVFNNIHNlYyBtb2RlbCB3aXRoIG90aGVyIHNlYyBtb2RlbHM7IGNvbnNpc3RlbnRseQogICB1c2UKICAgU05NUF9TRUNfTU9ERUxfKiBpbiB0aGUgY29kZSwgdXNpbmcgI2RlZmluZXMgZm9yIGJhY2t3YXJkcwogICBjb21wYXRpYmlsaXR5CiAgIHcvKl9TRUNVUklUWV9NT0RFTAoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNlcnRUb1RTTjogbW92ZSBtaWIgcmVsYXRlZCBwZXJzaXN0ZW5jZSBiYWNrIGludG8gbWliIG1vZHVsZTsKICAgY2VydF91dGlsOiBhZGQgdGxzdG1QYXJhbXMgcGVyc2lzdGVuY2U7IHVzZSBzbGlzdCBmb3IgY2VydCBtYXAKICAgdHlwZSBuYW1lCiAgIG1hcHBpbmc7CgoyMDEwLTA2LTEwIDE5OjQ1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nIChjb25zdCkKCjIwMTAtMDYtMTAgMDQ6NTggIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIEFkZCBtaXNzaW5nIGluZGVudGF0aW9uIG9mIGEgZG8td2hpbGUgbG9vcCB0byBtYWtlIHRoZSBjb2RlCiAgIHJlYWRhYmxlLgoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGNvbW1lbnQgb3V0IGtleVVzYWdlIHNvIHByb3BlciBzZWxmLXNpZ25lZCBjZXJ0cyBhcmUgZ2VuZXJhdGVkCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNvbGlkaWZ5IGNlcnRpZmljYXRlIGFjY2VwdGFuY2UgZm9yIHRoZSBjbGllbnQgc2lkZQoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBhcnJheSB0eXBvCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbG9nIG9wZW5zc2wgZXJyb3JzIG9uIGFjY2VwdCBmYWlsdXJlCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZWdpc3RlciBkZWZhdWx0IHBvcnRzIGZvciB0bHMvZHRscwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvIHByb3BlciBTVE9SRSBsb2FkaW5nIG9mIHRydXN0ZWQgY2VydGlmaWNhdGVzIHJhdGhlciB0aGFuIGZpbGUKICAgYmFzZWQgbG9hZGluZwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkZWQgdHdvIG5ldyBBUElzOiBuZXRzbm1wX2NlcnRfdHJ1c3QgYW5kIG5ldHNubXBfY2VydF90cnVzdF9jYQoKMjAxMC0wNi0wOSAyMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZGVkIHN0cmFpZ2h0ICd0bHMnIHRyYW5zcG9ydCBuYW1lCgoyMDEwLTA2LTA5IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFkZGVkIHN0cmFpZ2h0ICdkdGxzJyB0cmFuc3BvcnQgbmFtZQoKMjAxMC0wNi0wOCAyMTowNSAgbWFnZnIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGFnZW50X3JlYWRfY29uZmlnLmggaW4gNS42IGFzIHdlbGwuIEl0IGRpc2FwcGVhcmVkIGluCiAgIHIxODg0My4KCjIwMTAtMDYtMDggMDk6MjUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6CgogICBSZW1vdmUgKG9yIGFjdGl2YXRlKSB1bnVzZWQgdmFyaWFibGVzLgogICBGaXggbWlzbmFtZWQgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDEwLTA2LTA4IDA3OjExICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIEFQSSBjaGFuZ2VzIGZvciBwcmVsaW1pbmFyeSBIQUxfYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgVUNEIGRpc2sKICAgbW9kdWxlLgogICAoT21pdHRlZCBmcm9tIHJldmlzaW9uIDE4OTMyIGNoZWNraW4pCgoyMDEwLTA2LTA4IDA0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICB1cGRhdGUgbWFrZWZpbGUgZm9yIG1vdmVkIGhlbHBlciBoZWFkZXJzCgoyMDEwLTA2LTA3IDIwOjE4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBSZXZlcnRpbmcgcmV2LiAxNzYxNiwgdGhlIG5lY2Vzc2FyeSBjaGVjayBpcyBhbHJlYWR5IGluIHJldi4KICAgMTc0MTUuCgoyMDEwLTA2LTA2IDAzOjQ1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEluIGNhc2UgZXhlY19wcmVmaXggaXMgdW5zZXQgdGhlbiBzZXQgaXQgdG8KICAgJyR7cHJlZml4fScgaW4gb3JkZXIgdG8gcGljayB1cCBvdmVycmlkZXMgb2YgJHByZWZpeCBpbiBtYWtlCiAgIGluc3RhbGwuCgoyMDEwLTA2LTA0IDA0OjA2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZG8gYSBiZXR0ZXIgam9iIG9mIHZlcmlmeWluZyBmaW5nZXJwcmludHMgb2YgcmVtb3RlIHNlcnZlcnMKICAgcHVsbGluZyBmaW5nZXJwcmludHMgZnJvbSBhIG51bWJlciBvZiBwb3NzaWJsZSBwbGFjZXMKCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBnbyBhaGVhZCBhbmQgbG9nIG91dHB1dCBmaWxlIGZvciBlYXNpZXIgZGVidWdnaW5nIGluIGVycm9ycwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdHlwbwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgcmVtb3ZlIGNvbW1lbnQgYWJvdXQgcmFuZG9tIGJlaW5nIGluYWRlcXVhdGU7IHdlJ3JlIGRvaW5nIHRoZQogICBiZXN0IHdlIGNhbiBiYXNlZCBvbiB3aGF0IHdlIGhhdmUKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIGFub3RoZXIgdXNlciBmb3IgdGVzdGluZyBzbm1wYXBwIGRlZmF1bHQgY2VydGlmaWNhdGUKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcnVuIGEgZGVmYXVsdCB0ZXN0IHdpdGhvdXQgYSBsb2NhbCBrZXkgdG8gZW5zdXJlIHRoZSBzbm1wYXBwIHR5cGUKICAgaXMgcGlja2VkIHVwCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGEgc3BlY2lhbCBjYXNlIGZvciB0aGUgbG9jYWwgaWRlbnRpdHkgYW5kIHB1bGwgaXQgZnJvbSBhCiAgIGZpbGVuYW1lIG9mIHRoZSBpbml0X3NubXAoKSByZWdpc3RlcmVkIHR5cGUgbmFtZQoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGRvYyB1cGRhdGUKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwNXVuaXgudDoKCiAgIHVuaXggc29ja2V0IHRlc3QKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDN1ZHA2LnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwNHRjcDYudDoKCiAgIGlwdjYgdGVzdHMKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBtZW50aW9uIHRlc3QgbmFtZSBpcyBJUHY0CgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgY2hlY2sgdGhhdCB0cmFuc3BvcnQgd2FzIGNvbmZpZ3VyZWQKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBhZGQgc3VwcG9ydCBmb3IgbmV0LXNubXAtY29uZmlnLmggY2hlY2tzCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9OZXRTTk1QVGVzdFRyYW5zcG9ydC5wbSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgc29tZSBiYXNpYyB0cmFuc3BvcnQgY2hlY2tpbmcgZm9yIHBlcmw6IHVkcCBhbmQgdGNwCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QwMDFiYXNpYy50OgoKICAgYmFzaWMgdGVzdHMgZm9yIHBlcmwKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBpbmZyYXN0cnVjdHVyZSBtb2R1bGUgZm9yIHRlc3RpbmcgcGVybCBzdXBwb3J0CgoyMDEwLTA2LTAzIDE1OjU2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIFBvaW50IExJQntDVVJSRU5ULEFHRSxSRVZJU0lPTn0gZG9jdW1lbnRhdGlvbiB0byB0aGUgY29ycmVjdAogICBmaWxlLgogICBXYXJuIGFib3V0ICdtYWtlZGVwZW5kJyBwaWNraW5nIHVwIHRlc3RpbmcgbW9kdWxlIGNvZGUuCiAgIEVtcGhhc2lzIHVwZGF0ZSBvZiAnZG93bmxvYWQuaHRtbCcgcGFnZQogICBNZW50aW9uIHVwZGF0ZSBvZiBPZmZpY2lhbCBQYXRjaGVzCiAgIFN1cHByZXNzIGJyb2tlbiBjb21tYW5kcwoKMjAxMC0wNi0wMyAxNToxNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgUHJlbGltaW5hcnkgSEFMX2Jhc2VkIGltcGxlbWVudGF0aW9uIG9mIFVDRCBkaXNrIG1vZHVsZS4KICAgRW5zdXJlcyBjb25zaXN0ZW50IHJlcG9ydGluZyBiZXR3ZWVuIFVDRCBhbmQgSG9zdFJlcyBGU3lzIHVzYWdlCiAgIGFuZCBleHRlbmRzICdza2lwTkZTSW5Ib3N0UmVzb3VyY2VzJyBjb25maWcgdG8gVUNEIGRpc2sgc3RhdHMuCgoyMDEwLTA2LTAzIDE1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYzoKCiAgIEZpeCBicm9rZW4gc2l6ZSBjYWxjdWxhdGlvbnMuCiAgIFN1cHBvcnQgNjQtYml0IHNpemUvdXNhZ2UgdmFsdWVzLgoKMjAxMC0wNi0wMiAxNDo1MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgLS13aXRoLWNhIGluc3RlYWQgb2YgLS1jYQoKMjAxMC0wNi0wMiAxNDo1MSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgdGhlIG5ldyAtYnJpZWYgb3B0aW9uIGZvciBmaW5nZXJwcmludCBjYXB0dXJpbmcKCjIwMTAtMDYtMDIgMTQ6NDAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCAtLXdpdGgtY2EgaGFuZGxpbmcsIGZpeCBDQSBuZXdjZXJ0cyBib29ra2VlcGluZwoKMjAxMC0wNi0wMiAxMDo1NyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHBhcnNpbmcgT0lEcwogICBpbiBjb25maWcgZmlsZXMuCgoyMDEwLTA2LTAyIDAwOjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGNoZWNrIHRoYXQgQ0EgY2VydGlmaWNhdGVzIGNyZWF0ZWQgYWZ0ZXIgc25tcGQgc3RhcnRzIGFyZSBzdGlsbAogICB1c2FibGU7IGNoZWNrIGFsbCBvdXRwdXQgZmluZ2VycHJpbnRzIHRvIGVuc3VyZSB0aGV5IHdlcmUKICAgcHJvcGVybHkgY3JlYXRlZAoKMjAxMC0wNi0wMiAwMDoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZCBtaXNzaW5nIGRpcmVjdG9yeSBhbmQgZmlsZSBzdWZmaXggdG8gY2EgaW52b2NhdGlvbnMKCjIwMTAtMDYtMDIgMDA6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGNoZWNrIHRoYXQgY2VydGlmaWNhdGUgb3V0cHV0IGZpbmdlcnByaW50cyB3ZXJlIGZvdW5kCgoyMDEwLTA2LTAyIDAwOjIwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgdHdvIG5ldyBmdW5jdGlvbnMgZm9yIHZhbHVlIGNvbXBhcmlzb24gdGVzdCBvdXRwdXQKCjIwMTAtMDYtMDIgMDA6MTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgcmVtb3ZlIG5vLWxvbmdlci11c2VkIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIHRva2VuIHNwZWNpZmllciAod2UKICAgcmVxdWlyZSBhIGNvcHkgb2YgdGhlIGtleSkKCjIwMTAtMDYtMDIgMDA6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgLSBjaGFuZ2VkICdmaW5nZXJwcmludCcgdG9rZW4gdG8gbW9yZSBnZW5lcmljICdpZGVudGl0eScga2V5d29yZAogICAtIGFkZGVkIHRoZSBhYmlsaXR5IGZvciBuZXRzbm1wX2NlcnRfZmluZCB0byB0cnkgbXVsdGlwbGUgdHlwZXMKICAgKEZQICYgZmlsZSkKICAgLSBhbmQgcHJvdmlkZSB0ZXN0IHN1aXRlIHRlc3QgZm9yIGl0LgoKMjAxMC0wNi0wMSAyMDoxMiAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIFBlcmwgZXh0ZW5zaW9uIG1vZHVsZXMgY2FuIGxvYWQgdGhlIE5ldC1TTk1QCiAgIERMTHMgd2hpbGUgcnVubmluZyB0aGUgTmV0LVNOTVAgcmVncmVzc2lvbiB0ZXN0cy4KCjIwMTAtMDYtMDEgMTY6NDcgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsLCBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbWFqb3IgdXBkYXRlIGJ1ZyBmaXhlcyBhbmQgZmVhdHVyZXMgLSBpbnRlcmFjdGl2ZSBtb2RlLCBzZXBhcmF0ZQogICBDQSBkaXJzLCBnZW4gY3NyIGZyb20gY2VydCwgZmluZ2VycHJpbnQgZGlzcGxheSAtLWJyaWVmLAogICBlbGltaW5hdGUgc2VkLCBvcGVuc3NsLmNvbmYgb3ZlcndyaXRlIGFuZCB0ZW1wbGF0aW5nCgoyMDEwLTA2LTAxIDE0OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0wNi0wMSAxNDoyNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBJUC1NSUI6OmlwSWZTdGF0c1JlYXNtUmVxZHMgdmFsdWUuCiAgIAogICBKdXN0IGZpeGluZyBhIHN0dXBpZCB0eXBvLgoKMjAxMC0wNS0zMSAxMDo0MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBDSEFOR0VTOiBDeWd3aW46IGVuYWJsZWQgVW5peCB0cmFuc3BvcnQuCiAgIChGb3J3YXJkLXBvcnRlZCByMTg2ODcgZnJvbSB0aGUgVjUuNSBicmFuY2gpLgoKMjAxMC0wNS0zMCAyMjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGVuYWJsZSB0byBydW4gd2l0aCBvbGRlciBQZXJsIChlLmcuIFBlcmwgNS4wMDQwNSBhcyBzaGlwcGVkIHdpdGgKICAgSVJJWAogICA2LjUpCgoyMDEwLTA1LTMwIDIyOjQ5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgcG9saXNoIGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMzAgMjA6MTkgIG1hZ2ZyCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluLCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbiwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBidWlsZGluZzogRG8gbm90IGxpbmsgd2l0aCBsaWJuZXRzbm1waGVscGVycyBhbnkgbW9yZSBhcwogICBpdCBpcyBlbXB0eS4KCjIwMTAtMDUtMzAgMTk6MTggIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvc25tcC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIGEgdm9pZCBhcmd1bWVudCBmb3IgdGhlIGRhdGEgYXJndW1lbnQgb2YKICAgeGR1bXAuCgoyMDEwLTA1LTMwIDE5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IEJVRzogMjA1MTc0MjogYWRkZWQgbWlzc2luZyBQRVJMX1NZU19JTklUMygpIGNhbGwgKHNlZQogICBhbHNvIG1hbiBwZXJsZW1iZWQpLgoKMjAxMC0wNS0zMCAxOToxNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmcmVlKCkgY2FsbGVkIHdpdGhvdXQgYmVpbmcgZGVjbGFyZWQKICAgZmlyc3QpLgoKMjAxMC0wNS0zMCAxNjo1NiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wbGliOiBEbyBub3QgcmVxdWlyZSB0aGF0IHRoZSBVRFAgdHJhbnNwb3J0IGlzIGluY2x1ZGVkLgoKMjAxMC0wNS0zMCAxMjowMCAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRyYW5zcG9ydHMuIFJlbW92ZQogICB1bm5lY2Vzc2FyeSBpbmNsdWRlcy4KCjIwMTAtMDUtMzAgMDY6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvZHVtbXkuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGxpYm5ldHNubXBoZWxwZXJzIGlzIG5vdCBlbXB0eSBzdWNoIHRoYXQgYnVpbGRpbmcKICAgTmV0LVNOTVAgb24gQUlYIGFuZCBJUklYIGlzIGFnYWluIHBvc3NpYmxlLgoKMjAxMC0wNS0yOSAwOTo1MiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBGb2xsb3ctdXAgZm9yIHIxODkwMjogd29ya3MgYWdhaW4gd2l0aG91dCBUQVA6Okhhcm5lc3MuCgoyMDEwLTA1LTI4IDIzOjIzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBsb25nLWFnbyBicm9rZW4gdmVyYm9zaXR5CgoyMDEwLTA1LTI4IDIzOjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBtb3JlIHByZXZpb3VzbHkgYnJva2VuIG9wdGlvbiByZW5hbWVzOyBjaGFuZ2UgLWQgdG8KICAgbWFzdGVyLWRpcmVjdG9yeSBhbmQgYWRkIGFzIGEgcmVhbCBhcmd1bWVudAoKMjAxMC0wNS0yOCAyMzowNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfc2ltcGxlOgoKICAgbW9yZSBtaXNzaW5nIG9sZHVjZCByZW5hbWVzCgoyMDEwLTA1LTI4IDIyOjU3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X29sZHVjZCwgCiAgICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfc2ltcGxlOgoKICAgcmVuYW1lZCAnb2xkdWNkJyB0byAnc2ltcGxlJyB0byBwdXQgYSBtb3JlIHBvc2l0aXZlIHNwaW4gb24gdGhlbQoKMjAxMC0wNS0yOCAyMjo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SRUFETUUsIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHRlc3Qgc3VpdGUKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICByZXZlcnQgdW5pbnRlbnRpb25hbmFsbHkgY29tbWl0dGVkIHRlc3QgdGVzdAoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGZyZWUgdmFyaWFibGVzIGFnYWluCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgZml4IHdhbGtzIHNvIHRoYXQgbXVsdGlwbGUgd2Fsa3MgdGVybWluYXRlIHByb3Blcmx5CgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgcGF0Y2ggdG8gaGFuZGxlIHRlc3Rpbmcgb2YgbG9vcGluZyBvZiBtdWx0aXBsZSB2YXJiaW5kcyBpbiBhIHdhbGsKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBpbml0YWwgcGF0Y2ggdG8gcHJldmVudCBsb29waW5nIHdhbGtzCgoyMDEwLTA1LTI4IDIwOjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgaW1wbGVtZW50IGNlcnQgbG9va3VwIGJ5IGZpbGVuYW1lCgoyMDEwLTA1LTI4IDA3OjAyICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBjb25zdCBkZWNsYXJhdGlvbnMgdG8gdGhlIGRpc2FibGVkIHZlcnNpb25zCiAgIG9mIHRoZSBkZWJ1Z2dpbmcgY29kZSBhcyB3ZWxsLgoKMjAxMC0wNS0yOCAwMjoxMiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGFkZCBwZXJzaXN0ZW5jZTsgY2hlY2sgZm9yIGNvbCBtb2RzIHdoaWxlIHJvdyBhY3RpdmUKCjIwMTAtMDUtMjggMDI6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgQ0hBTkdFUzogYWdlbnRsaWI6IG5ldyBmdW5jdGlvbnMgdG8gbWFrZSBzdGFzaCBwdHIgYW5kIG5ld3JvdwogICBhdmFpbGFibGUgdG8KICAgdGFibGVfZGF0YXNldCBoYW5kbGVycwogICBub25ld3M6IGZpeCB0eXBvOyB0YWJzIHRvIHNwYWNlczsgdXNlIHNpemVvZiBpbnN0ZWFkIG9mIGNvbnN0YW50CgoyMDEwLTA1LTI3IDE4OjU5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgYnVpbGQgZml4ZXMuCgoyMDEwLTA1LTI3IDE4OjI0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgICJtYWtlIHRlc3QiIHdpdGhvdXQgVEFQOjpIYXJuZXNzICh3YXMgYnJva2VuIGJ5IHIxODgwMikuCgoyMDEwLTA1LTI3IDE1OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgCiAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL21kNS5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLiBNb3N0IGZpeGVzIGludm9sdmVkIGFkZGluZyB0aGUKICAgImNvbnN0IiBrZXl3b3JkLgoKMjAxMC0wNS0yNyAxMzo1MiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyOTcyNTc5OiBmaXhlZCBjaGVja2luZyBvZgogICBzbm1wVGFyZ2V0QWRkclJvd1N0YXR1cyBTRVQgcmVxdWVzdHMuCgoyMDEwLTA1LTI3IDEzOjQxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1bjoKCiAgIHJldmVydCBwYXJ0IG9mIDE4ODg1OiB0ZXN0IGZpbGVzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHJ1biBieQogICB0aGVtc2VsdmVzIHRvbwoKMjAxMC0wNS0yNyAxMToxOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIENIQU5HRVM6IGNvcnJlY3RseSBjYWxjdWxhdGUgaWZYVGFibGUuaWZIQ0luVWNhc3RQa3RzIG9uIDMyLWJpdAogICBMaW51eAogICAKICAgTGludXggZG9lcyBub3QgcHJvdmlkZSBzdGFuZGFsb25lIGNvdW50ZXIgZm9yIGluY29taW5nIHVuaWNhc3QKICAgcGFja2V0cyAoaXVjYXN0KQogICAtIGl0IHByb3ZpZGVzIGNvdW50ZXIgb2YgYWxsIHBhY2tldHMgKGlhbGwpICsgc2VwYXJhdGUgY291bnRlcgogICBmb3IgdGhlIG11bHRpY2FzdAogICBvbmVzIChpbWNhc3QpLiBQcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBvZiBpZlRhYmxlIHJlYWQgdGhlc2UKICAgY291bnRlcnMgYW5kCiAgIGNhbGN1bGF0ZWQgaXVjYXN0ID0gaWFsbCAtIGltY2FzdCAqYmVmb3JlKiB0aGVzZSB2YWx1ZXMgd2VyZQogICBleHBhbmRlZCBpbnRvCiAgIDY0Yml0cy4gVGhpcyBwcm9kdWNlZCBlcnJvcnMgb24gMzJiaXQgc3lzdGVtcyB3aGVuIGlhbGwKICAgb3ZlcmZsb3dlZCB0byB6ZXJvIGFuZAogICBpbWNhc3Qgd2FzIG5vemVybyAtPiBpdWNhc3QgZ290IG5lZ2F0aXZlIGFuZCAnYzY0IDMyIGJpdCBjaGVjawogICBmYWlsZWQnIGVycm9yIGluCiAgIHNubXBkIGxvZy4gTm93IHRoZSBhZ2VudCBleHBhbmRzIHRoZXNlIHZhbHVlcyB0byA2NGJpdHMgZmlyc3QgYW5kCiAgICogICAgICp0aGVuKiBwZXJmb3JtcyAgICB0aGUgY2FsY3VsYXRpb24sIHVzaW5nIGEgbmV3IGZsYWcuIAogICAgICAyMDEwLTA1LTI3IDA4OjE4ICBtYWdmcgoKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL1JVTlRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuOgoKICAgQ0hBTkdFUzogdGVzdGluZzogTW92ZSB0aGUgc2V0dGluZyBvZiBNSUJESVJTIGZyb20gdGhlIHN1cHBvcnQKICAgc2NyaXB0IHRvIHRoZSBkcml2ZXJzIHNpbmNlIGl0IGlzIG5lZWRlZCBmb3IgdGhlIEMgdGVzdHMgYXMgd2VsbC4KCjIwMTAtMDUtMjcgMDg6MDkgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBVc2Ugb2xkdWNkX3J1biwgbm90IHJ1bl9vbGR1Y2QuIENoYW5nZSBzcmNkaXIKICAgdG8gcmVmZXIgdG8gdGhlIHRvcCBkaXJlY3RvcnkgYW5kIG5vdCB0aGUgdGVzdGluZyBzdWJkaXJlY3RvcnkgYXMKICAgdGhhdCBpcyB3aGF0IGlzIGV4cGVjdGVkIGluIHRoZSB0ZXN0IHNjcmlwdHMuCgoyMDEwLTA1LTI3IDA1OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICB3YXJuaW5nIHNxdWFzaGluZwoKMjAxMC0wNS0yNyAwNToxNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgc25tcGxpYi9rZXl0b29scy5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmM6CgogICBtb3JlIGNvbnN0IGNvcnJlY3RuZXNzCgoyMDEwLTA1LTI3IDA0OjE4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHRlc3RzIGZvciBhZ2VudC1ub3Qta25vd24tdXNlci1jZXJ0aWZpY2F0ZXMKCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICByZWZlcmVuY2UgdGhlIGl0bmVybmFsIHN1cHBvcnQgYW5kIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsL09QRU5TU0wtTElDRU5TRSwgc25tcGxpYi9vcGVuc3NsL1JFQURNRToKCiAgIGludGVybmFsIE9wZW5TU0wgc3VwcG9ydCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTkVXUzogbGlibmV0c25tcDogU3VwcG9ydCBmb3IgYSBzdHJlYW0tbGluZSBzdHJpcHBlZCBkb3duIHZlcnNpb24KICAgb2YgaW50ZXJuYWwgT3BlblNTTCBzdXBwb3J0IHVzaW5nIC0td2l0aC1vcGVuc3NsPWludGVybmFsCgoyMDEwLTA1LTI3IDA0OjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfYWVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL29wZW5zc2xfbWQ1LmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zZXRfa2V5LmMsIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3Nwci5oLCAKICAgICAgICBzbm1wbGliL3NjYXBpLmM6CgogICByZW1vdmUgbW9yZSBkZXBlbmRlbmNpZXMgZm9yIGV4dGVybmFsIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDoxNSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIHNubXBsaWIvb3BlbnNzbCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY29yZS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9jZmIxMjguYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQzMl9jb21tb24uaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kNV9sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tb2Rlcy5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9uY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zZXRfa2V5LmMsIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYS5oLCAKICAgICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYV9sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zcHIuaCwgc25tcGxpYi9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmMsIHNubXBsaWIvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2NiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDVfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX21vZGVzLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGFfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX3Nwci5oOgoKICAgbW92ZSBvcGVuc3NsIGNvZGUgaW50byBhIHN1YmRpcmVjdG9yeQoKMjAxMC0wNS0yNyAwNDoxMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2Q6CgogICBmaXggdGVzdGluZyBzbyBpdCB1c2VzIG11bHRpcGxlIHR5cGVzIG9mIGNyeXB0bwoKMjAxMC0wNS0yNyAwNDoxMyAgaGFyZGFrZXIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbml0aW9ucyBhbmQgZmlsZXMgZm9yIGRvaW5nIGludGVybmFsIGNyeXB0byBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBpbmNsdWRlIGludGVybmFsIGFlcy9kZXMgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jOgoKICAgbG9jYWxpemUKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYywgc25tcGxpYi9vcGVuc3NsX21vZGVzLmg6CgogICBpbml0YWwgY29waWVzIG9mIGNmYjEyOCBtb2RlcyBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jOgoKICAgbG9jYWxpemUKCjIwMTAtMDUtMjcgMDQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jLCBzbm1wbGliL29wZW5zc2xfYWVzX2xvY2FsLmg6CgogICBpbml0aWFsIHZlcnNpb25zIG9mIGFlc19jb3JlLmMgYW5kIGFlc19sb2NsLmgKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Flcy5oOgoKICAgaW5pdGlhbCBjb3B5IG9mIGFlcy5oIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jZmIuYzoKCiAgIGluaXRpYWwgY29weSBvZiB0aGUgb3BlbnNzbCBhZXNfY2ZiLmMgZmlsZQoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYzoKCiAgIGluY2x1ZGUgbG9jYWxpemVkIGNvcGllcyBvZiB0aGUgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHVzZSBpbnRlcm5hbCBERVMKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jYmNfZW5jLmM6CgogICBsb2NhbGl6ZWQgY29weSBvZiB0aGUgY2JjX2VuYy5jIGZpbGUgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfc3ByLmg6CgogICBkZXMvc3ByLmggZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jOgoKICAgYWRkZWQgZGVzX2VuYy5jIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9tZDUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfc2hhLmg6CgogICBsb2NhbCBjb3BpZXMgb2YgdGhlIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmg6CgogICBpbml0aWFsIGNvcHkgb2Ygb3BlbnNzbCdzIGRlcy5oCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYzoKCiAgIGxvY2FsaXplZCBoZWFkZXIgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqICBzbm1wbGliL29wZW5zc2xfZGVzX2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jOgoKICAgaW5pdGFsIGNvcGllcyBvZiBzb21lIG9mIHRoZSBvcGVuc3NsIERFUyBmaWxlcwoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6CgogICBmaW5pc2hpbmcgcG9ydGluZyBvZiBpbnRlcm5hbCBhdXRoIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgaW50ZXJuYWwgY3J5cHRvIGZpbGVzIHRvIHRoZSBjaGVjay91c2UgbGlzdAoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvbWQzMl9jb21tb24uaCwgc25tcGxpYi9tZDVfbG9jbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQzMl9jb21tb24uaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1X2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGFfbG9jYWwuaCwgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgbG9jYWxpemVkIGZpbGUgbmFtZXMgd2l0aCBvcGVuc3NsIHByZWZpeGVzCgoyMDEwLTA1LTI3IDA0OjA1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9vcGVuc3NsX21kNS5oLCBzbm1wbGliL21kNV9sb2NsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDUuYzoKCiAgIGxvY2FsaXplIHRoZSBtZDUgaW1wbGVtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL29wZW5zc2xfc2hhLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGNvbXBsZXRlbHkgbG9jYWxpemUgdGhlIG9wZW5zc2wgU0hBIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9zaGEuaDoKCiAgIGluaXRpYWwgdmVyaXNvbiBvZiBzaGEuaCBjb3B5CgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL21kNV9sb2NsLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgCiAgICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgYWRkZWQgbG9jYWwgY29waWVzIG9mIHRoZSBvcGVuc3NsIGNyeXB0byBmdW5jdGlvbnMKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIG1ha2UgdXNlIG9mIGludGVybmFsIGNyeXB0byBoYXNoIGZ1bmN0aW9ucwoKMjAxMC0wNS0yNyAwNDowMyAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjb25maWd1cmUgY2hlY2tzIGZvciBpbnRlcm5hbC1jcnlwdG8gc3VwcG9ydAoKMjAxMC0wNS0yNiAyMjoxNyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHByb3Blcmx5IHZlcmlmeSBleHBlY3RlZCBzZXJ2ZXIgY2VydGlmaWNhdGVzIHVuZGVyIERUTFM7IGFkZCBhCiAgIG5ldyBmbGFnIGluIHRsc2Jhc2UgdG8gaW5kaWNhdGUgdmVyaWZpY2F0aW9uIGhhcyBvY2N1cnJlZAoKMjAxMC0wNS0yNiAyMTowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgY29tcGlsZXIgd2FybmluZyBzcXVhc2hpbmcKCjIwMTAtMDUtMjYgMjE6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgYWRkIGNvbnN0IHF1YWxpZmllcnMgdG8gYSBmZXcgcGxhY2VzCgoyMDEwLTA1LTI2IDE5OjQ2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBDeWd3aW46IGxpYm5ldHNubXBtaWJzLCBsaWJuZXRzbm1waGVscGVycyBhbmQKICAgbGlibmV0c25tcGFnZW50IGRvIG5vdyBidWlsZCBhcyBhIERMTCB3aGVuIGNvbmZpZ3VyZWQgd2l0aAogICAtLWVuYWJsZS1zaGFyZWQuCgoyMDEwLTA1LTI2IDE3OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IG1vdmVkIGFsbCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBsaWJuZXRzbm1waGVscGVycyB0bwogICBsaWJuZXRzbm1wYWdlbnQuIGxpYm5ldHNubXBoZWxwZXJzIGlzIG5vdyBhbiBlbXB0eSBsaWJyYXJ5LgoKMjAxMC0wNS0yNiAxNzoyMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9udWxsLmMsICAgCiAgICAgIGFnZW50L29sZF9hcGkuYzoKCiAgIFJldmVydGVkIHIxODgyOSBpbiBvcmRlciB0byBtaW5pbWl6ZSBkaWZmcyB3aXRoIG9sZGVyIGJyYW5jaGVzLgoKMjAxMC0wNS0yNSAwNzoyMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgVGVsbCBuZXQtc25tcC1jZXJ0IHdoZXJlIG5ldC1zbm1wLWNvbmZpZyBpcyBsb2NhdGVkCgoyMDEwLTA1LTI1IDA3OjE0ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDb3JyZWN0IHRoZSBzaWduYXR1cmUgb2YgbWFpbi4gVXNlICNpbmNsdWRlIGluc3RlYWQgb2Ygc291cmNpbmcKICAgdG8gZ2V0IHRoZSBjb2RlIHVuZGVyIHRlc3QgaW4gb3JkZXIgdG8gZ2V0IGJldHRlciBlcnJvciBtZXNzYWdlcwoKMjAxMC0wNS0yNSAwNzoxMSAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIEFkZCBhcmd1bWVudHMgdG8gc3ByaW50ZiBzdGF0ZW1lbnRzIHRvIG1ha2UgdGhlIHRlc3Qgd29yawoKMjAxMC0wNS0yNSAwNzowNyAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgYW5kIGRpc2FibGVkIGNvZGUKCjIwMTAtMDUtMjUgMDU6MjAgIG1hZ2ZyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogU3BsaXQgc25tcElQQmFzZURvbWFpbiBhbmQgbW92ZSB0aGUgSVB2NCBwYXJ0cwogICB0byBJUHY0QmFzZSBhbmQgdGhlIHNvY2tldCBnZW5lcmljIHBhcnRzIHRvIFNvY2tldEJhc2UuCgoyMDEwLTA1LTI0IDIwOjI0ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgZmluaXNoIHRsc3RtUGFyYW1zVGFibGUgbGFzdENoYW5nZWQgc2NhbGFyCgoyMDEwLTA1LTI0IDE5OjI4ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBBZGQgLS1leHRlcm5hbC1saWJzIGluIG9yZGVyIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRlc3RzIG9uCiAgIHNvbGFyaXMKCjIwMTAtMDUtMjQgMTM6MzMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGFyZ2guLiBmaXggZmFsbG91dCBmcm9tIG1hbnVhbGx5IChtaXMpYXBwbHlpbmcgcGF0Y2gKCjIwMTAtMDUtMjQgMTI6NTkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgZmlyc3QgcGFzcyBhdCB0bHN0bVBhcmFtc1RhYmxlCgoyMDEwLTA1LTI0IDEyOjU5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgdXBkYXRlIGRlZmluZXMgdG8gbWF0Y2ggTUlCIG5hbWVzLCBwZXIgZ3JhbmQtcG9vYmFoCgoyMDEwLTA1LTI0IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5jOgoKICAgdXBkYXRlIE9JRCB0byBtYXRjaCB1cGNvbWluZyBSRkMKCjIwMTAtMDUtMjQgMTE6NDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbnVsbC5jLCAgIAogICAgICBhZ2VudC9vbGRfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJuZXRzbm1wYWdlbnQsIGxpYm5ldHNubXBoZWxwZXJzOiBtb3ZlZCB0aGUgZnVuY3Rpb25zCiAgIG5ldHNubXBfYnVsa190b19uZXh0X2ZpeF9yZXF1ZXN0cygpLAogICBuZXRzbm1wX2dldF9idWxrX3RvX25leHRfaGFuZGxlcigpLCBuZXRzbm1wX3JlZ2lzdGVyX251bGwoKSwKICAgbmV0c25tcF9yZWdpc3Rlcl9udWxsX2NvbnRleHQoKSBhbmQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKICAgZnJvbSBsaWJuZXRzbm1waGVscGVycyB0byBsaWJuZXRzbm1wYWdlbnQuCiAgIE5vdGVzOgogICAtIFRoaXMgZG9lcyBub3QgYWZmZWN0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBhcHBsaWNhdGlvbnMKICAgdGhhdCBsaW5rIHdpdGggJChuZXQtc25tcC1jb25maWcgLS1hZ2VudC1saWJzKSBzaW5jZSB0aGlzCiAgIGludm9sdmVzIGxpbmtpbmcgd2l0aCBib3RoIGxpYm5ldHNubXBoZWxwZXJzIGFuZCBsaWJuZXRzbm1wYWdlbnQuCiAgIC0gRnVuY3Rpb25zIGhhdmUgYmVlbiBtb3ZlZCBiZXR3ZWVuIGxpYnJhcmllcyBieSBtb3ZpbmcgZW50aXJlCiAgIHNvdXJjZSBmaWxlcy4KCjIwMTAtMDUtMjQgMTA6MTAgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgVXNlIHByb3BlciBzdHJpbmcgc2l6ZXMgYW5kIG1ha2Ugc3VyZSBzdHJpbmdzIGFyZQogICB6ZXJvLXRlcm1pbmF0ZWQuCgoyMDEwLTA1LTI0IDA4OjAxICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIG5ldC1zbm1wLWNvbmZpZy5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogbGlibmV0c25tcCBkb2VzIG5vdyBidWlsZCBhcyBhIERMTCB3aGVuCiAgIGNvbmZpZ3VyZWQgd2l0aCAtLWVuYWJsZS1zaGFyZWQuCiAgIENIQU5HRVM6IEN5Z3dpbjogcGVybCBtb2R1bGVzIGRvIG5vdyBidWlsZCAoLS13aXRoLXBlcmwtbW9kdWxlcykuCiAgIE5vdGU6IHRoZSBUMDYwdHJhcGRwZXJsX29sZHVjZCwgVDA2MWFnZW50cGVybF9vbGR1Y2QgYW5kCiAgIFQxMTVhZ2VudHhwZXJsX29sZHVjZCB0ZXN0cyBzdGlsbCBmYWlsLgoKMjAxMC0wNS0yMyAyMzowNiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1cGRhdGUgZmlsZW5hbWVzL3BhdHNoIGZvciByZWNlbnQgZmlsZSByZW5hbWVzOyBmaXggdHlwb3MKCjIwMTAtMDUtMjMgMjI6MDggIG1hZ2ZyCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSB0aGUgc2FtZSBjb21waWxlciBjb21tYW5kIGFuZCBmbGFncyBmb3IKICAgYnVpbGRpbmcgb2YgdGVzdHMgYXMgZm9yIGJ1aWxkaW5nIG9mIHRoZSBjb2RlLCB0aHVzIGVuYWJsaW5nIHRlc3QKICAgb2YgZS5nLiAzMi1iaXQgY29kZSBjb21waWxlZCBvbiBhIDY0LWJpdCBwbGF0Zm9ybS4KCjIwMTAtMDUtMjMgMjE6NDEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICB1cGRhdGUgaW5jbHVkZS9jb25maWcgZmlsZS9wYXRocyBmb3IgcmVjZW50IHJlbmFtZXMKCjIwMTAtMDUtMjMgMjE6MzEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHJlbmFtZSBmaWxlcyBmb3IgTUlCIHJlbmFtZXMKCjIwMTAtMDUtMjMgMjE6MjUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlOgoKICAgcmVuYW1lIGRpcmVjdG9yaWVzIHRvIG1hdGNoIHJlbmFtZXMgaW4gTUlCCgoyMDEwLTA1LTIwIDA4OjQ4ICBidmFzc2NoZQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTd2FwcGVkIGxpbmsgb3JkZXIgb2YgLWxuZXRzbm1waGVscGVycyAtbG5ldHNubXBtaWJzOiBuZXRzbm1wbWlicwogICBkZXBlbmRzIG9uIG5ldHNubXBoZWxwZXJzIGFuZCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQuCgoyMDEwLTA1LTIwIDA4OjQyICBidmFzc2NoZQoKICAgKiAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgRml4ZWQgbW9yZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTkgMTg6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHN0YXNoaW5nCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgb3V0cHV0IGZpbGVuYW1lcyBvZiBmYWlsZWQgdGVzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgd2lwZSB0cmFpbGluZyBjb21tZW50IEMgbWFya2VyIGlmIGl0IGV4aXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICB0aXRsZSB0aGUgU05NUHYzIHRlc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCB0ZXN0aW5nIG9mIGJ1aWx0IHRpdGxlcwoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBvbmx5IHByaW50IGZhaWx1cmUgaGVhZGVyIGlmIHRoZXJlIHdhcyBhdCBsZWFzdCBvbmUKCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkOgoKICAgbWFrZSBkZXNjcmlwdGl2ZSB0aXRsZXMgd29yayBhZ2FpbgoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2xpYiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgcmVuYW1lIGZpbGVzIHNvIHByZWZpeGluZyBpcyBiYXNlZCBvbiB0aGUgc3VpdGUgbmFtZSwgbm90IGZpbGUKICAgdHlwZQoKMjAxMC0wNS0xOSAxNzo1MiAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL01ha2VmaWxlLlBMLCBwZXJsL01ha2VmaWxlLnN1YnMucGwsICAgCiAgICAgIHBlcmwvT0lEL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBwZXJsOiBidWlsZGluZyB0aGUgUGVybCBtb2R1bGVzIHdpdGggdGhlIEN5Z3dpbgogICBQZXJsIHBhY2thZ2UgaXMgbm93IHBvc3NpYmxlLgogICAoRm9yd2FyZC1wb3J0ZWQgcjE4Njg4IGZyb20gdGhlIFY1LjUgYnJhbmNoLikKCjIwMTAtMDUtMTkgMTc6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA1LTE5IDEyOjA1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXJzdC1kcmFmdCBzdXBwb3J0IGZvciBBSVggZmlsZXN5c3RlbSBIQUwgbW9kdWxlICh1bnRlc3RlZCkKCjIwMTAtMDUtMTkgMTE6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgIFN1cHBvcnQgZm9yIFNvbGFyaXMtc3R5bGUgJ2dldG1udGVudCcgQVBJLgoKMjAxMC0wNS0xOSAwOTo1NyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgU2ltcGxpZnkgdGhlIGhhbmRsaW5nIG9mIHVua25vd24vdW53YW50ZWQgZmlsZSBzeXN0ZW1zLgoKMjAxMC0wNS0xOSAwOTozMCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIEZpeCBtaXNzaW5nL2Jyb2tlbiBBUEkgZGVjbGFyYXRpb25zLgoKMjAxMC0wNS0xOSAwODo0NiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgTWFkZSBlcnJvciBtZXNzYWdlcyBtb3JlIGNsZWFyIGluIGNhc2Ugb2YgZmFpbHVyZSBvciB3cm9uZwogICBpbnZvY2F0aW9uLgoKMjAxMC0wNS0xOSAwMDowMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCB0ZXN0IGZvciB1c2luZyBhIGNlcnRpZmljYXRlIHNpZ25lZCBieSBhIENBIGNlcnRpZmljYXRlCgoyMDEwLTA1LTE4IDIzOjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgd2UgY2FsbCB0aGUgcmlnaHQgUGVybAoKMjAxMC0wNS0xOCAyMDozOSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGluY2x1ZGUgbG9jYWwgcG9ydCBudW1iZXIgaW4gcGFja2V0IGR1bXBzLiBBbgogICBleGFtcGxlOgogICAKICAgUmVjZWl2ZWQgMzYgYnl0ZSBwYWNrZXQgZnJvbSBVRFA6CiAgIFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIDAwMDA6IDMwIDIyIDAyIDAxIDAxIDA0IDA2IDcwIDc1IDYyIDZDIDY5IDYzIEExIDE1IDAyCiAgIDAiLi4uLi5wdWJsaWMuLi4KICAgMDAxNjogMDQgMzcgRjIgRDQgOUIgMDIgMDEgMDAgMDIgMDEgMDAgMzAgMDcgMzAgMDUgMDYKICAgLjcuLi4uLi4uLi4wLjAuLgogICAwMDMyOiAwMSAwMSAwNSAwMCAuLi4uCiAgIAogICBSZWNlaXZlZCBTTk1QIHBhY2tldChzKSBmcm9tIFVEUDoKICAgWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgR0VUTkVYVCBtZXNzYWdlCiAgIC0tIGNjaXR0LjEKICAgCiAgIFNlbmRpbmcgMTE4IGJ5dGVzIHRvIFVEUDogWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgMDAwMDogMzAgNzQgMDIgMDEgMDEgMDQgMDYgNzAgNzUgNjIgNkMgNjkgNjMgQTIgNjcgMDIKICAgMHQuLi4uLnB1YmxpYy5nLgogICAwMDE2OiAwNCAzNyBGMiBENCA5QiAwMiAwMSAwMCAwMiAwMSAwMCAzMCA1OSAzMCA1NyAwNgogICAuNy4uLi4uLi4uLjBZMFcuCiAgIDAwMzI6IDA4IDJCIDA2IDAxIDAyIDAxIDAxIDAxIDAwIDA0IDRCIDRDIDY5IDZFIDc1IDc4CiAgIC4rLi4uLi4uLi5LTGludXgKICAgMDA0ODogMjAgNjEgNzMgNzUgNzMgMjAgMzIgMkUgMzYgMkUgMzMgMzMgMkUgMzIgMkQgNzMgYXN1cwogICAyLjYuMzMuMi1zCiAgIDAwNjQ6IDYzIDczIDc0IDIwIDIzIDMxIDIwIDUzIDREIDUwIDIwIDUwIDUyIDQ1IDQ1IDREIGNzdCAjMSBTTVAKICAgUFJFRU0KICAgMDA4MDogNTAgNTQgMjAgNTMgNjEgNzQgMjAgNDEgNzAgNzIgMjAgMzMgMjAgMzIgMzEgM0EgUFQgU2F0IEFwcgogICAzIDIxOgogICAwMDk2OiAzMSAzMCAzQSAzNSAzOCAyMCA0MyA0NSA1MyA1NCAyMCAzMiAzMCAzMSAzMCAyMCAxMDo1OCBDRVNUCiAgIDIwMTAKICAgMDExMjogNzggMzggMzYgNUYgMzYgMzQgeDg2XzY0CgoyMDEwLTA1LTE4IDE5OjQyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRsc3RtQWRkclRhYmxlCiAgIC0gZGVhbCB3aXRoIGhhc2ggdHlwZSBwcm9wZXJseSBmb3IgZ2V0L3NldCBhbmQgcGVyc2lzdGVuY2UKICAgLSBhZGQgY291bnQgYW5kIGxhc3QgY2hhbmdlZCBzY2FsYXJzCgoyMDEwLTA1LTE4IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmM6CgogICB1cGRhdGUgdG8gb2ZmaWNhbCBPSUQgZnJvbSB1cGNvbWluZyByZmMKCjIwMTAtMDUtMTggMTY6MTYgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0byBvZmZpY2lhbCBPSURzIGZyb20gdXBjb21pbmcgUkZDOyBhZGQgY291bnQvbGFzdCBjaGFuZ2VkCiAgIHNjYWxhcnMKCjIwMTAtMDUtMTggMTQ6NTYgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyMDAxNjU2OiBIYW5kbGUgbnVsbC10ZXJtaW5hdGlvbiBvZgogICBzdHJpbmcgdmFsdWVzIHByb3Blcmx5LgogICBCYXNlZCBvbiB0aGUgcHJpbmNpcGxlcyBvZiB0aGUgcGF0Y2ggZnJvbSBUb21teSBCZWFkbGUuCgoyMDEwLTA1LTE4IDE0OjM4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oLCBhZ2VudC9taWJncm91cC9ob3N0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBXb3JraW5nKD8pIEhBTC1iYXNlZCB2ZXJzaW9uIG9mIGhyRlNUYWJsZS4KCjIwMTAtMDUtMTggMTQ6MTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDUtMTcgMjE6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgdXNlIHByb3BlciBUU00gc2VjdXJpdHkgY29kZSAoNCkgbm93IHRoYXQgaXQncyBvZmZpY2lhbAoKMjAxMC0wNS0xNyAxODo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBiZWdpbm5pbmcgb2YgYSBjb250YWluZXIgdW5pdCB0ZXN0CgoyMDEwLTA1LTE3IDE4OjQzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGVzdGluZy5oOgoKICAgYSBiYXNpYyBDLWNvZGUgYmFzZWQgdGVzdCByZXBvcnRpbmcgbWVjaGFuaXNtCgoyMDEwLTA1LTE3IDE4OjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIGJhc2ljIGRlZmF1bHRfc3RvcmUgdGVzdHMKCjIwMTAtMDUtMTcgMTg6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2xpYjoKCiAgIGEgYnVpbGQgc3lzdGVtIGZvciBiYXNpYyBsaWJuZXRzbm1wIHRlc3RzCgoyMDEwLTA1LTE3IDE4OjE0ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgZml4IGZpbmdlcnByaW50IGJpbi9oZXggY29udmVyc2lvbjsgYWRkL3JlbW92ZSBjZXJ0IHNlYyBtYXBzIHZpYQogICBtaWIgbm93IHdvcmtzCgoyMDEwLTA1LTE3IDE4OjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2JpbmFyeV90b19oZXgKCjIwMTAtMDUtMTcgMTg6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZwcmludGYoc3RkZXJyIC0+IERFQlVHTVNHVEwoKAoKMjAxMC0wNS0xNyAxODoxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIGNoZWNrIGZvciBoYXNoIHR5cGUKCjIwMTAtMDUtMTcgMTY6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBtYWtlIFJVTlRFU1RTIHdvcmsgb3V0c2lkZSB0aGUgc291cmNlZGlyCgoyMDEwLTA1LTE3IDE1OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgbWFkZSBhIGxpbWl0ZWQgcnVuIHRlc3QgcG9zc2libGUgYWdhaW4gd2l0aG91dCBwZXJsCgoyMDEwLTA1LTE3IDE1OjMyICBkdHMxMgoKICAgKiAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBVc2UgbmV3ZXIgRGlzTWFuIEV2ZW50IE1JQiBjb2RlIGZvciBNU1ZDLWJhc2VkIGJ1aWxkcwogICAoaW4gbGluZSB3aXRoIGFsbCBjb25maWd1cmUtYmFzZWQgYnVpbGRzKQoKMjAxMC0wNS0xNyAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHRoZSByZXR1cm4gb3V0c2lkZSB0aGUgaWYgc3RhdGVtZW50CgoyMDEwLTA1LTE3IDE1OjE4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgUHJvdmlkZSBtaXNzaW5nIHB1YmxpYyBpbnRlcmZhY2UgdG8gSEFMLWJhc2VkIGZpbGVzdG9yZSBtb2R1bGUuCgoyMDEwLTA1LTE3IDEwOjQxICBidmFzc2NoZQoKICAgKiB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxODc1NCAocmV2ZXJ0IHIxODczOCk6IHIxODc1NCBvbmx5IHBhcnRpYWxseQogICByZXZlcnRlZCByMTg3MzgKICAgYW5kIGhlbmNlIGJyb2tlIHRoZSBXaW4zMi1idWlsZC4gRmluaXNoZWQgcmV2ZXJzYWwgb2YgcjE4NzM4IGJ5CiAgIHJlc3RvcmluZwogICB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmguCgoyMDEwLTA1LTE2IDE4OjE3ICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBGb2xsb3ctdXAgZm9yIHIxODcyNjogb25seSBwYXNzIC1mc3RhY2stcHJvdGVjdG9yKiBmbGFncyB0byB0aGUKICAgbGlua2VyIGluc3RlYWQgb2YgYWxsIC1mKiBmbGFncyBzdWNoIHRoYXQgaXQgYmVjb21lcyBsZXNzIGxpa2VseQogICB0aGF0IHRoaXMgbW9kaWZpY2F0aW9uIGNhdXNlcyB0cm91YmxlIHdpdGggbm9uLUdOVSB0b29sY2hhaW5zLgoKMjAxMC0wNS0xNiAxODoxNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZDoKCiAgIE1hZGUgc2hlbGwgY29kZSBmb3IgY29udmVydGluZyBhIHJlbGF0aXZlIHBhdGggdG8gYW4gYWJzb2x1dGUKICAgcGF0aCBtb3JlCiAgIHJvYnVzdCBhbmQgY29udmVydGVkICIkey4uLiMuLi59IiBjb25zdHJ1Y3QgaW50byBlY2hvICsgY3V0LgoKMjAxMC0wNS0xNiAxODoxMiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBNb3JlIFVTSU5HX1VDRF9TTk1QX0VYVEVOU0lCTEVfTU9EVUxFIHRvCiAgIFVTSU5HX1VUSUxJVElFU19FWEVDVVRFX01PRFVMRSBzdWJzdGl0dXRpb25zLCBuZWNlc3NhcnkgdG8gbWFrZQogICB0ZXN0IDA1OSBhbmQgMDY1IHBhc3MuCgoyMDEwLTA1LTE2IDE3OjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgZml4IHRlc3RzIGZvciBjaGVja2luZyBzaHV0ZG93biBvZiBhcHBsaWNhdGlvbnMgdG8gbm90IHJlcG9ydAogICBmYWxzZSBuZWdhdGl2ZXMKCjIwMTAtMDUtMTYgMTI6MTUgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2Q6CgogICBNYWRlIHRlc3QgVDA1OSBwYXNzIGFnYWluLiBUaGlzIHRlc3Qgd2FzIHJlY2VudGx5IGJyb2tlbiBieQogICBwYXNzaW5nIGFyZ3VtZW50cyB0byBpdCB3aXRoIGFic29sdXRlIHBhdGhzIGluc3RlYWQgb2YgcmVsYXRpdmUKICAgcGF0aHMuCgoyMDEwLTA1LTE2IDEyOjE0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2Q6CgogICBBZGRlZCAnU0tJUElGTk9UIFVTSU5HX1VUSUxJVElFU19FWEVDVVRFX01PRFVMRScuCgoyMDEwLTA1LTE2IDExOjQyICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTYgMTE6NDEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYXBwcy9zc2h0b3NubXAuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgaW4gb2xkIGNvZGUuCgoyMDEwLTA1LTE2IDA5OjU5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGRvbid0IHRyaWdnZXIgYSBuZXRzbm1wX2Fzc2VydCgpIHdoZW4KICAgbm8gZXh0ZW5zaW9uIERMTHMgaGF2ZSBiZWVuIGxvYWRlZC4KCjIwMTAtMDUtMTUgMTc6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdG9wLWdhcCBmaXggdG8gdW5icmVhayAibWFrZSB0ZXN0IiBmb3IgdGhlIG5pZ2h0bHkgYnVpbGRzCgoyMDEwLTA1LTE1IDEwOjU5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBSZXZlcnRlZCByMTg3MjcgYmVjYXVzZSBpdCBjYXVzZWQgYnVpbGQgZXJyb3JzIG9uIFNvbGFyaXMsIEFJWAogICBhbmQgSFAtVVguCgoyMDEwLTA1LTE1IDAwOjQyICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICB3aW4zMi9idWlsZC5wbDoKCiAgIHJldmVydCByMTg3Mzggc2luY2UgbmV3IHRyYW5zcG9ydCByZXF1aXJlIGR5bmFtaWNseSBidWlsdCBoZWFkZXIKICAgZmlsZXMKCjIwMTAtMDUtMTUgMDA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBsb2cgZW52IHZhcmlhYmxlcyB1c2VkIHRvIHRoZSBpbnZva2VkIGZpbGUKCjIwMTAtMDUtMTQgMjE6MjkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGZpeCBzY3JpcHQgc28gaXQgY2FuIGJlIGludm9rZWQgb3V0c2lkZSB0aGUgdGVzdCBlbnZpcm9ubWVudAogICBhZ2FpbgoKMjAxMC0wNS0xNCAyMToyOCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0OgoKICAgYWRkZWQgdGhlIFNOTVAtVExTLVRNLU1JQiB3aXRoIGZpbmFsIElBTkEgYXNzaWdubWVudCBzbG90cwoKMjAxMC0wNS0xNCAyMToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1c2UgZmluYWwgSUFOQSBhc3NpZ25lZCBUU00gcHJlZml4ZXMKCjIwMTAtMDUtMTQgMjE6MjYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaDoKCiAgIHVzZSBmaW5hbCBJQU5BIGFzc2lnbmVkIERvbWFpbiBudW1iZXJzCgoyMDEwLTA1LTE0IDIxOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2V0IGRlZmF1bHQgdmVyc2lvbiBhbmQgc2VjbGV2ZWwgaWYgdGxzL2R0bHMKCjIwMTAtMDUtMTQgMTU6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHJjIGZyb20gc2VjbmFtZSBtYXBwaW5nOyBjbGFyaWZ5IGNvbW1lbnQKCjIwMTAtMDUtMTQgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG9uJ3QgdXNlIHVuc29ydGVkIGNvbnRhaW5lcjsgZG9uJ3QgZnJlZSBjYWxsZXIncyBjb250YWluZXIKCjIwMTAtMDUtMTQgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBsaW5lYXJfc2VhcmNoIGZvciB1bnNvcnRlZCBjb250YWluZXJzCgoyMDEwLTA1LTE0IDExOjU2ICBidmFzc2NoZQoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICB3aW4zMi9idWlsZC5wbCwgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgSW1wcm92ZWQgcG9ydGFiaWxpdHkgYnkgcmVtb3ZpbmcgdGhlIGdlbmVyYXRlZCBmaWxlCiAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oLgogICBDb21tZW50ZWQgb3V0IHRoZSBjb2RlIGluIHRoZSBjb25maWd1cmUgc2NyaXB0IGZvciBnZW5lcmF0aW5nCiAgIHRoaXMgaGVhZGVyIGZpbGUuCiAgIEFkZGVkIGNvbmZpZ3VyZS10aW1lIGNvZGUgZm9yIGNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbnN0cnVjdG9ycwogICBmb3IgYWxsIGNvbmZpZ3VyZWQKICAgdHJhbnNwb3J0cyBhcmUgaW52b2tlZCBmcm9tIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYy4KCjIwMTAtMDUtMTQgMTE6MDAgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIERvY3VtZW50YXRpb246IHVwZGF0ZWQgQ3lnd2luIGJ1aWxkIGluc3RydWN0aW9ucy4KCjIwMTAtMDUtMTQgMDk6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9udWxsLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsICAKICAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xNCAwODo1MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQWRkZWQgLW5vLXVuZGVmaW5lZCBmbGFnIHRvIGxpYnJhcnkgbGluayBjb21tYW5kcyBzdWNoIHRoYXQKICAgbGlidG9vbCBjYW4gYnVpbGQgRExMcyBvbiBXaW4zMi4KICAgTm90ZTogYnVpbGRpbmcgRExMcyBvbiBXaW4zMiBkb2VzIG5vdCB5ZXQgd29yayBiZWNhdXNlIG9mIHRoZQogICBjaXJjdWxhciBkZXBlbmRlbmN5IGJldHdlZW4KICAgbGlibmV0c25tcGhlbHBlcnMgYW5kIGxpYm5ldHNubXBhZ2VudAogICAoc2VlIGFsc28KICAgaHR0cDovL3d3dy5uZXQtc25tcC5vcmcvd2lraS9pbmRleC5waHAvTGlicmFyeV9sYXllcmluZykuCgoyMDEwLTA1LTE0IDA4OjQyICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBsaWJ0b29sIGJ1ZyBmaXg6IGFsc28gcGFzcyBmbGFncyBzdGFydGluZyB3aXRoIC1mIHRvIHRoZSBsaW5rZXIKICAgc2luY2UgdGhlc2UgY2FuIGFmZmVjdCBsaW5raW5nLiBUaGUgZmxhZyAtZnN0YWNrLXByb3RlY3RvciBlLmcuCiAgIHRyaWdnZXJzIGluY2x1c2lvbiBvZiBsaWJzc3AuCgoyMDEwLTA1LTE0IDA4OjQwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBhYm9ydCBpZiB0aGUgZmlsZSBwcm9ncmFtIGNvdWxkIG5vdCBiZSBmb3VuZCwKICAgc2luY2UgdGhpcyBpcyBlc3NlbnRpYWwgZm9yIHByb3BlciBvcGVyYXRpb24gb2YgbGlidG9vbC4KICAgQ0hBTkdFUzogQ3lnd2luOiBuZWl0aGVyIGNvbXBpbGUgbm9yIGxpbmsgd2lucGlwZS5jLgoKMjAxMC0wNS0xMyAwODo1OCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmFuIGF1dG9yZWNvbmYuCgoyMDEwLTA1LTEyIDIwOjE2ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogTGludXg6IGJ1aWxkcyBhZ2FpbiB3aXRoIGVtYmVkZGVkIFBlcmwgZGlzYWJsZWQgKGJ1ZwogICAyOTg1OTE1KS4KCjIwMTAtMDUtMTIgMTk6NDcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuYywgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4Njg0OiB1bi1icmVhayB0aGUgV2luMzIgTVNWQyBidWlsZC4KCjIwMTAtMDUtMTIgMTk6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFdpbjMyOiBmaXhlZCBhIHR5cG8gYW5kIG1hZGUgaW5kZW50YXRpb24gY29uc2lzdGVudC4KCjIwMTAtMDUtMTIgMTk6MTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY29uc3RydWN0IHRlbXAgYnVpbGQgZmlsZXMgaW4gYSBzZXBhcmF0ZSBkaXJlY3RvcnkKCjIwMTAtMDUtMTIgMTk6MTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHJlY2VudGx5IGJyb2tlbiBvbGQgcGVybCBmdW5jdGlvbmFsaXR5CgoyMDEwLTA1LTEyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYSAtLXNob3J0IG9wdGlvbiB0byBzaG9ydGVuIHRoZSBzaG93IG91dHB1dCB0byBtaW5pbWFsaXN0aWMKCjIwMTAtMDUtMTIgMTQ6MTQgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgYSBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCLgoKMjAxMC0wNS0xMiAxMzowMiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgbWVtb3J5IGxlYWsgd2hlbiByZWFkaW5nIHNlbnNvcnMgZm9yCiAgIExNLVNFTlNPUlMtTUlCLgoKMjAxMC0wNS0xMiAxMjo1NyAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJldmVydCByZXZpc2lvbiAxODY4OQogICBMYXRlc3QgV2luMzIgYnVpbGRzIGluY2x1ZGUgc3VwcG9ydCBmb3Igc3RydG91bGwuCgoyMDEwLTA1LTEyIDEyOjA1ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBhZGRlZCBkZXRlY3Rpb24gb2YgbG1fc2Vuc29ycyB2ZXJzaW9uLgogICBJIGFtIG5vdCBBdXRvY29uZiBndXJ1LCBzbyBJIGhvcGUgSSBnb3QgaXQgcmlnaHQuIFRoZSBnb2FsIGlzIHRvCiAgIGRlZmluZSBORVRTTk1QX1VTRV9TRU5TT1JTX1YzICpiZWZvcmUqIGNvbmZpZ19tb2R1bGVzX2FnZW50CiAgIHByb2Nlc3NlcyBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmguCgoyMDEwLTA1LTEyIDA3OjAzICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRyYW5zcG9ydHMuCgoyMDEwLTA1LTEyIDAzOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCB0aXRsZSBnZW5lcmF0aW9uIGFmdGVyIGNoYW5nZSB0byB3aGF0IHNyY2RpciBtZWFudAoKMjAxMC0wNS0xMiAwMjozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHVuZG8gbGFzdCBjaGFuZ2Ugd2hpY2ggdHVybmVkIG91dCB0byBvbmx5IGNhdXNlIGVycm9ycyBpZiB5b3UgaGFkCiAgIGEgb2xkIC5jb25mIGZpbGUgYXJvdW5kCgoyMDEwLTA1LTEyIDAyOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHYzX2NhIGNyZWF0aW9uIGV4dGVuc2lvbiBuYW1lCgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGtlZXAgZm9ybWF0IHZlcnNpb24gIyBpbiBjZXJ0IGluZGV4ZXM7IGRvbid0IHN0b3JlIGhhc2ggdHlwZQogICBzdHJpbmcgaW4gaW5kZXg7CgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBpbnZlcnRlZCBjb252ZXJzaW9uIGNhbGw7IGxlc3MgdmVyYm9zZSBkZWZhdWx0IGRlYnVnCgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCBwYXJzaW5nIG9mIC1UIG5hbWUvdmFsdWUgcGFpcnMKCjIwMTAtMDUtMTEgMjM6MzMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBidWcgZml4aW5nIGFuZCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yICJtYWtlIHRlc3QiIHdpdGgKICAgVGVzdDo6SGFybmVzcwogICAoc3RpbGwgZG9lc24ndCB3b3JrIGZvciBtZSwgdGhvdWdoKQoKMjAxMC0wNS0xMSAyMjozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIERvIE5PVCBoYXJkY29kZSAvdXNyL2Jpbi9wZXJsIGFzIHRoZSBQZXJsIHBhdGgKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHN0YXNoIGZpbGUgaGFuZGxpbmcKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbG9uZyBvcHRpb25zIHN1Y2sgOy0pLiBwcmVmZXIgZG91YmxlIGRhc2hlcyBmb3IgbG9uZyBvcHRpb25zIHRvCiAgIG1hdGNoIHRoZSByZXN0IG9mIHRoZSBOZXQtU05NUCBjb2RlIGJhc2UKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYWRkZWQgYWJpbGl0eSB0byBydW4gb25seSB0aGUgZmFpbGVkIHRlc3RzIGZyb20gdGhlIGxhc3QgcnVuCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGRvbid0IGZvcmNlIGNvbG9yCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNsZWFudXAgb2Ygb2xkZXIKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgTWluaW1hbGx5IHN1cHBvcnQgdGhlIG9sZGVyIFRlc3Q6Okhhcm5lc3MgcGVybCBtb2R1bGUgZm9yIHJ1bm5pbmcKICAgdGhlIG9sZGVyIHRlc3RzIGF0IGxlYXN0CgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCBhIGRlZmF1bHQgc2VjdXJpdHlOYW1lIGFuZCBzZWN1cml0eU1vZGVsIGlmIFRMUyBvciBEVExTIGlzIGluCiAgIHVzZSBvbiB0aGUgY2xpZW50IHNpZGUKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYzoKCiAgIGFsbG93IHNlY3VyaXR5IG1vZGVscyB0byBwZXJmb3JtIG1vcmUgb2YgdGhlIHNlc3Npb24gc2V0dXA7IG1vdmVkCiAgIG1vcmUgVVNNIHNwZWNpZmljIHNldHVwIGludG8gaXQncyBzZXR1cCByb3V0aW5lCgoyMDEwLTA1LTExIDE4OjAyICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggcGFyYW0gdG8gbG9va3VwIHBlZXIgY2VydAoKMjAxMC0wNS0xMSAxNjoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFsbG93ICctJyBpbiBmcWRuOyBhZGQgZGVidWcgb3V0cHV0IGZvciBob3N0IHNwZWNpZmljIGNvbmZpZwoKMjAxMC0wNS0xMSAxNTo0NiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFbnN1cmUgJ25ldHNubXBfcmVhZF9tb2R1bGUnIGlzIGF2YWlsYWJsZSBmb3IgcGVybCBidWlsZC4KCjIwMTAtMDUtMTEgMTU6NDQgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBGaXggcGVybCBidWlsZCB1bmRlciBXaW5kb3dzIChzdHJ0b3VsbCBub3QgYXZhaWxhYmxlKQoKMjAxMC0wNS0xMCAwNzowNyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbWlzc2luZyBzeW1ib2wgbmV0c25tcF9zbm1wU1NIRG9tYWluX2xlbiwKICAgbWFrZSBuZXRzbm1wX3NubXBTU0hEb21haW4gY29uc3QuCgoyMDEwLTA1LTA5IDIyOjAzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2Q6CgogICBEbyBub3QgcmVxdWlyZSBxdW90ZXMgYXJvdW5kIHRoZSBDUFUgc3RyaW5nIGFzIHRoYXQgZGVwZW5kcyBvbgogICBob3cgdGhlIGFnZW50IGlzIGNvbmZpZ3VyZWQuCgoyMDEwLTA1LTA5IDIxOjQzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL0V4aXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9FeGl0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBFeHRyYWN0IHRoZSBFeGl0IGFuZCByZXN0YXJ0KiBzdWJyb3V0aW5lcyBmcm9tCiAgIHV0aWxfZnVuYyBpbiBvcmRlciB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIGxlc3MgY29kZSBmb3IgdGhlCiAgIG1pbmltYWwgY2FzZS4KCjIwMTAtMDUtMDkgMTY6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGZ1bmN0aW9uCiAgIGdldF9leGVjX291dHB1dCgpIHJldHVybnMgYSB2YWx1ZSB3aGVuIHRoZSBwcmVwcm9jZXNzb3Igc3ltYm9sCiAgIFVTSU5HX1VDRF9TTk1QX0VYVEVOU0lCTEVfTU9EVUxFIGhhcyBub3QgYmVlbiBkZWZpbmVkLgoKMjAxMC0wNS0wOSAxNjo0NSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogYnVpbGRzIG5vdyBhbHNvIHdoZW4gdGhlIHNvdXJjZSBmaWxlcyBhcmUKICAgbG9jYXRlZCBvbiBhIFNhbWJhIGZpbGVzeXN0ZW0gaW5zdGVhZCBvZiBhIGxvY2FsIGZpbGVzeXN0ZW0uCgoyMDEwLTA1LTA5IDEzOjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQ29ycmVjdCB0aGUgaWYgdGhhdCB0cmllcyB0byBmaWd1cmUgb3V0IGlmIGEgc3VmZmljaWVudGx5IG5ldyBnY2MKICAgaXMgaW4gdXNlLgoKMjAxMC0wNS0wOSAxMjo1MCAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENoZWNrIGZvciB0aGUgbmVlZGVkIG1vZHVsZSBhbmQgbm90IHNvbWUgb3RoZXIgb25lLgogICBMb2cgdGhlIGNvcnJlY3QgbWlzc2luZyBzeW1ib2wuCgoyMDEwLTA1LTA5IDA5OjIxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiB1dGlsaXRpZXMvZXhlY3V0ZSBkbyBub3QgbmVlZCBhbnl0aGluZyBmcm9tCiAgIHV0aWxfZnVuY3MsIHNvIHN0b3AgZGVwZW5kaW5nIG9uIGl0LgoKMjAxMC0wNS0wOSAwOToxMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIE5FV1M6IHNubXBkOiBSZW1vdmVkIHRoZSB1bnVzZWQgZnVuY3Rpb24geHhfdG9rZW5pemVfZXhlY19jb21tYW5kCiAgIGZyb20gdXRpbGl0aWVzL2V4ZWN1dGUuCgoyMDEwLTA1LTA5IDA5OjAxICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlcGxhY2UgdGhlIGRlYnVnZ2luZyBmdW5jdGlvbnMgd2l0aCBkdW1taWVzCiAgIHdoZW4gZGVidWdnaW5nIGlzIGRpc2FibGVkLgoKMjAxMC0wNS0wOSAwODowMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZDoKCiAgIENoZWNrIHRoYXQgdGhlIFVEUCB0cmFuc3BvcnQgaXMgZW5hYmxlZAoKMjAxMC0wNS0wOSAwODowMSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RyYW5zcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIEZhY3RvciBvdXQgY2hlY2sgZm9yIG1pYklJL3N5c3RlbV9taWIKCjIwMTAtMDUtMDkgMDc6NTkgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlcwoKMjAxMC0wNS0wOCAyMzoxNiAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRpdGlvbmFsbHkgZml4IG1ha2UgdGVzdCBmb3IgdGhlIHVuY29tbW9uIGNhc2Ugd2hlcmUgYnVpbGRkaXIKICAgPT0gc3JjZGlyCgoyMDEwLTA1LTA4IDIyOjU1ICBtYWdmcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gcnVuIHRoZSB0ZXN0IHN1aXRlIGZyb20KICAgYW55d2hlcmUuCiAgIENoYW5nZSB0aGUgLUQgb3B0aW9uIHRvIGV4cGVjdCB0aGUgcGF0aCBvZiB0aGUgdG9wIHNvdXJjZQogICBkaXJlY3RvcnkuCiAgIEFkZCBhbiAtc3JjZGlyIG9wdGlvbiB0aGF0IGlzIGFuIGFsaWFzIGZvciAtRC4KICAgQWRkIGFuIC1idWlsZGRpciBvcHRpb24gdG8gZGVzaWduYXRlIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIHRlc3QKICAgb2JqZWN0IGlzLgogICBQdXQgc3JjZGlyIGFuZCBidWlsZGRpciBpbiB0aGUgZW52aXJvbm1lbnQgZm9yIHRoZSB0ZXN0IHNjcmlwdHMKICAgRmFjdG9yIG91dCB0aGUgZ3JlcCBwYXJ0IG9mIFNLSVBJRiBhbmQgU0tJUElGTk9UIHRvIElTREVGSU5FRAogICBVc2UgbW9yZSByZWFkYWJsZSBrZXlzIGluIHRoZSBvcHRzIGhhc2ggaW4gUlVORlVMTFRFU1RTCiAgIEFkanVzdCBldmVyeXRoaW5nIHRvIHVzZSBzcmNkaXIgYW5kIGJ1aWxkZGlyCgoyMDEwLTA1LTA4IDIyOjQyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgoKICAgVXNlIGNvcnJlY3QgYXJndW1lbnQgdHlwZXMKCjIwMTAtMDUtMDggMjI6MDcgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQ29uc29saWRhdGUgdGhlIHRlc3QgYW5kIHRlc3QtbWlicyB0YXJnZXRzLgogICBFeHBvc2UgdGhlIHRlc3RhbGwgdGFyZ2V0IGluIHRoZSB0b3AgbWFrZWZpbGUuCgoyMDEwLTA1LTA4IDIyOjA1ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBEbyBub3QgYWJvcnQgd2hlbiBzdHIgaXMgTlVMTCBhcyB0aGF0IGlzIGEgcGVyZmVjdGx5IHZhbGlkIGlucHV0LgoKMjAxMC0wNS0wOCAyMjowMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jOgoKICAgVXNlIGNvcnJlY3QgYXJndW1lbnQgdHlwZXMKCjIwMTAtMDUtMDggMjI6MDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIEFkZCBtaXNzaW5nIG5ld2xpbmUKCjIwMTAtMDUtMDcgMjE6MTEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuYWMKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBmaXggaGFuZGxpbmcgb2YgY2VydCBhbGdvcml0aG0gaW4gZmluZ2VycHJpbnRzOyBjb252ZXJ0IGluL291dAogICBmaW5nZXJwaW50cwogICBmcm9tL3RvIGhleAoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZG9udCBzcGVjaWZ5IGhhc2ggdHlwZSBmb3IgZmluZ2VycHJpbnQKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBoYW5kbGUgZmluZ2VycHJpbnQgdHlwZXM7IGRyb3Agc2FuIGZpZWxkcyBmcm9tIGNlcnQgc3RydWN0OwogICBjb25zaWRlciBkaXJlY3RvcnkKICAgd2hlbiBwYXJ0bmVyaW5nIGtleXMvY2VydHMKCjIwMTAtMDUtMDcgMTk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuYWM6CgogICBtb3ZlIGRlZmF1bHQgcHJvbXB0cyBlYXJsaWVyCgoyMDEwLTA1LTA2IDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGJldHRlciBTQU4gZXh0cmFjdGlvbjsgdHdlYWsgZHViZ3VzIG1lc3NhZ2VzOyBxdWlldCBjb21waWxlcgogICB3YXJuaW5ncwoKMjAxMC0wNS0wNiAxNTozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICByZWR1Y2UgY2VydCBkZWJ1ZyBvdXRwdXQ7IGRlYnVnIGluc3RlYWQgb2YgbG9nX2luZm8gaW4gZHVtcHMKCjIwMTAtMDUtMDYgMTQ6NDkgIGR0czEyCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBEb24ndCBhc3N1bWUgdGhlIHByZXNlbmNlIG9mIDxzdHJpbmcuaD4KICAgKGJyaW5nIGludG8gbGluZSB3aXRoIGFsbCBvdGhlciBvY2N1cmFuY2VzKQoKMjAxMC0wNS0wNiAxNDo0MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIENIQU5HRVM6IFdpbmRvd3M6IEZpeCBidWlsZCB1bmRlciBNaW5HVwogICBiYWNrL2ZvcndhcmQgcG9ydCBvZiByZXZpc2lvbiAxODYzMQoKMjAxMC0wNS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdHlwZSBpbiBsb2cgbXNnCgoyMDEwLTA1LTA1IDE3OjQzICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHJlbW92ZSBpbXBvcnQgZm9yIHVudXNlZCBmdW5jdGlvbgoKMjAxMC0wNS0wNCAwNzoxMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIE5lZ2F0ZSByZWFzb24gZ2l2ZW4gZnJvbSBTS0lQSUYKCjIwMTAtMDUtMDMgMjI6MzggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGxlbiBpbiBlbWFpbCBjbXA7IG1vcmUgZXh0cmFjdCBkZWJ1Z2dpbmcKCjIwMTAtMDUtMDMgMjI6MzggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY29weSBvY2VydCB0byBhZGRpb25hbCBtYXBzCgoyMDEwLTA1LTAzIDE0OjIwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICByZW1vdmUgZGVwZW5kZW5jeSBvbiBwZXJsIG1vZHVsZSBub3QgcHJlc2VudCBpbiBDZW50T1MKCjIwMTAtMDUtMDMgMDM6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZG9uJ3QgYWNjZXNzIHN0cnVjdCBpbnRlcm5hbHMgZGlyZWN0bHkKCjIwMTAtMDUtMDMgMDM6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGZpeCBjb21waWxpbmcgd2l0aC1vdXQtbWlibW9kdWxlcz11dGlsaXRpZXMvZXhlY3V0ZQoKMjAxMC0wNS0wMSAxOTowOCAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkOgoKICAgQ29ycmVjdCB0aGUgc291Z2h0IHN0cmluZyB0byBtYWtlIHRoZSB0ZXN0IHBhc3Mgd2hlbiBvay4KCjIwMTAtMDUtMDEgMTc6MTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1vcmUgY29uc2lzdGVudCB0cmVhdG1lbnQgb2Yga2V5VXNhZ2UsIGJhc2ljQ29uc3RyYWludHMsIG90aGVyCiAgIHg1MDl2MyBvcHRpb25zCgoyMDEwLTA0LTMwIDIzOjM3ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbDoKCiAgIGxhbWUgdGVzdCBzY3JpcHQgYnV0IGNvdmVycyBhIGNodW5rIG9mIHRoZSBjb2RlCgoyMDEwLTA0LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1raW5zdGFsbGRpcnMgaW5zdGVhZCBpbnN0ZWFkIG9mIEZpbGU6OlBhdGgKCjIwMTAtMDQtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgZW5zdXJlIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgY2FuIGJlIHJ1biBmcm9tIHRoZSBidWlsZCBkaXIKCjIwMTAtMDQtMzAgMjE6MzEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhhbmRsZSBnZW5jZXJ0IC0tY2EKCjIwMTAtMDQtMzAgMjE6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGhlbHAgZm9yIGNlcnRTZWNOYW1lOyBjb250aW51ZSBidWlsZGluZyBjZXJ0IGluZGV4ZXMgZXZlbiBpZgogICB3ZSBjYW50IHNhdmUKICAgdG8gcGVyc2lzdGVudCBkaXIKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IGNoZWNrIGNvdW50IGZvciA4MjIgbmFtZXMgaW4gdGhlIHNubXBkLmxvZwoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYywgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggbWFsbG9jIHVubmRlcmxlbmd0aCBieSAxIGVycm9yCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGNvbW1lbnQgb3V0IHRoZSA4MjIgdGVzdHM7IHRoZXkncmUgYnJva2VuIGF0IHRoZSBtb21lbnQKCjIwMTAtMDQtMzAgMTk6MzYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGRvbid0IGxvc2UgU0FOIHdoZW4gc2lnbmluZyB3LyBDQQoKMjAxMC0wNC0zMCAxODo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1ha2UgbmFtZSBjaGFuZ2UgdG8gcmZjODIyIGZyb20gdHlwb2VkIDgyMjAKCjIwMTAtMDQtMzAgMTg6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgdGVzdHMgdG8gZG8gb3RoZXIgc3ViamVjdEFsdE5hbWUgbWFwcGluZwoKMjAxMC0wNC0zMCAxNzozMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGlzc3VlcyAxLDIsNCBhbmQgLUMgaGFuZGxpbmcKCjIwMTAtMDQtMjkgMDM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdGxzdG1DZXJ0VG9UU05UYWJsZSB0byB1c2UgY2FjaGUgKyBjZXJ0X3V0aWwgbWFwcwogICBjb250YWluZXIKCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBjaGVjayBpbnNlcnQgcmV0dXJuCgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgcmVtb3ZlIGZ1bmN0aW9uIHRvIGNvbnRhaW5lciBpdGVyYXRvcjsKICAgaW1wbGVtZW50IGl0IGZvcgogICBiaW5hcnlfYXJyYXkKCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIG1ha2Ugc3VyZSBjb250YWluZXIgc3luYyBpbmNyZW1lbnRlZCBvbiBzb3J0LCBpbnNlcnQgYW5kIHJlbW92ZQoKMjAxMC0wNC0yOCAwNzoyMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X250b3AuYzoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgY29tbWVudC4KCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggbWFrZWZpbGUgZm9yIHRlc3QgdGFyZ2V0CgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcDoKCiAgIG1ha2UgdGhlIHRlc3Qgc3VpdGUgcnVuIG91dHNpZGUgdGhlIHNvdXJjZSBkaXJlY3RvcnkgYWdhaW4uCgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBkZWFsIHdpdGggb3V0LW9mLXNvdXJjZSB0cmVlIGJ1aWxkaW5nCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHRlc3RpbmcgdG8gY2hlY2sgY2VydGlmaWNhdGUgdG8gc2VjdXJpdHluYW1lIG1hcHBpbmdzIGFuZCBkZW5pYWxzCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBjcmVhdGVkIGEgbWFwcGVkIHVzZXIKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcDoKCiAgIGdlbmVyYXRlIG9iamVjdCBjb2RlIHdpdGggLWcgZGVidWdnaW5nCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmM6CgogICBtb3JlIGFjY3VyYXRlIGN1cnJlbnQgQVBJIHVzYWdlIGZvciBzY2FwaSBjb2RlCgoyMDEwLTA0LTI3IDIxOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjZXJ0IGluaXQgZHVwbGljYXRlIGNhbGwgY2hlY2sKCjIwMTAtMDQtMjcgMjA6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb252ZXJ0IHVzZXIgZmluZ2VycHJpbnQgdG8gbG93ZXIgYW5kIHN0cmlwIGNvbG9uczsgYWRkIGV4dGVybgogICBwcm90b3R5cGUKICAgZm9yIGNlcnQgaW5pdCBzbyB3ZSBkb24ndCBuZWVkIGhlYWRlcgoKMjAxMC0wNC0yNyAyMDoxNSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2VwYXJhdGUgY2VydCBpbml0IGFuZCBjZXJ0IGxvYWRpbmc7IGFkZCBjZXJ0U2VjTmFtZSBjb25maWcgdG9rZW4KCjIwMTAtMDQtMjcgMDM6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIG1lcmdlIE5FVFNOTVBfRlVOQ1RJT04gYW5kICFORVRTTk1QX0ZVTkNUSU9OIGFzc2VydCBjYXNlcwoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbG90cyBvZiBuZXcgY2VydCBmdW5jdGlvbmFsaXR5CiAgIC0gYWRkIHNzbCBmdW5jcyBmb3IgY2VydCBleHRlbnNpb25zIGFuZCBzc2wgY2VydCBjaGFpbnMKICAgLSBmdW5jdGlvbnMgYW5kIG5ldyBuZXRzbXBfY2VydF9tYXAgc3RydWN0IGZvciBsb29raW5nIHVwIGNlcnQKICAgbWFwcGluZ3MKICAgLSBhZGQgY2VydGlmaWNhdGUgbWFwcGluZyBmb3Igc2VjbmFtZQogICAtIGFkZCBjb2RlIHRvIGJ1aWxkIGNlcnQgY2hhaW5zCiAgIC0gYWRkIHN1YmplY3QgdG8gY2VydCBpbmRleCBjYWNoZQogICAtIHJlYnVpbGQgaW5kZXhlcyBpZiBhbnkgZXJyb3Igd2hpbGUgcGFyc2luZyBpbmRleAogICAtIHJlZm9ybWF0IGR1bXAgb3V0cHV0CiAgIC0gYWRkIE5TX0NFUlRfQ0EgYWxsb3dlZF91c2UgZmxhZwogICAtIGFkZCBzdWJqZWN0LCBpc3N1ZXIgYW5kIGlzc3Vlcl9jZXJ0IHRvIG5ldHNubXBfY2VydAogICAtIG1vdmUgY2VydCBjb250YWluZXIgc2V0dXAgdG8gaXRzIG93biBmdW5jdGlvbgogICAtIGFkZCBjZXJ0IHN1YmplY3QgbmFtZSBzdWJjb250YWluZXIKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jOgoKICAgbW92ZSBpcHY2IHNwZWNpZmljIHZhciBkZWNsIGluc2lkZSBpZmRlZgoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIENIQU5HRVM6IGFnZW50OiB0ZGF0YSBoZWxwZXIgbm93IHNhdmVzIGZsYWdzIHBhc3NlZCBkdXJpbmcKICAgY3JlYXRpb247IGFkZCB0ZGF0YQogICBmbGFnIHRvIE5PVCBjcmVhdGUgdGhlIHRhYmxlIGNvbnRhaW5lcgoKMjAxMC0wNC0yNyAwMzowMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIGludGVyZmFjZSBmb3IgZHVwbGljYXRpbmcgYSBjb250YWluZXIKICAgQ0hBTkdFUzogc25tcGxpYjogY29udGFpbmVyIGNoYW5nZXM6IGFkZCBmbGFncyBmaWVsZCB0byBjb250YWluZXIKICAgbWV0YS1kYXRhOwogICBjaGcgYmluYXJ5X2FycmF5IGNvbnRhaW5lciB0byB1c2UgY29udGFpbmVyIG1ldGEtZGF0YSBmbGFncwoKMjAxMC0wNC0yNiAyMjozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCBhIHRlc3QgdG8gdmVyaWZ5IHRoYXQgd2hlbiB0aGUgdHJhbnNwb3J0IGlzIGNvbmZpZ3VyZWQgd2l0aAogICBhIHJlbW90ZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludCB0aGUgY29ubmVjdGlvbiBpcyBkZW5pZWQKCjIwMTAtMDQtMjYgMjI6MzIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIGFkZGVkIHRlc3RzIGZvciAtVCBmbGFnIHVzYWdlIGFuZCBpbnZhbGlkIHVzZXIgdXNhZ2UKCjIwMTAtMDQtMjYgMjA6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZDoKCiAgIGhhdmUgdGhlIGFsaWFzIHRyYW5zcG9ydCBzb3VyY2UgdGhlIHJpZ2h0IFN2M2NvbmZpZyBmaWxlCgoyMDEwLTA0LTI2IDIwOjUwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICB3b3JraW5nIHN1cHBvcnQgb2YgVExTL0RUTFMgdGVzdGluZyBpbmNsdWRpbmcgY2VydCBnZW5lcmF0aW9uCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaG9ub3IgdGhlIGNvbmZpZyBkaXIgaWYgc3BlY2lmaWVkIHZpYSAtQwoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggcmVhbGxvYyBjYWxsIGZvciBidWZmZXJlZCBwYWNrZXRzCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgcHJvcGVyIHNraXAgb3V0cHV0IGZvciByZXBvcnRpbmcgcmVhc29uCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZSBhZnRlciBiYWNrc2xhc2ggaW4gbWFjcm8KCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0cmFuc3BvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtbG9jYWxob3N0LnByaXYsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC11c2VyLmNlcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC11c2VyLnByaXY6CgogICB0ZXN0cyBmb3IgbWluaW1hbGx5IHRlc3RpbmcgYWxsIHRoZSB0cmFuc3BvcnRzCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JFQURNRToKCiAgIG1pbmltYWxseSBkb2N1bWVudCBuZXcgUlVORlVMTFRFU1RTIHNjcmlwdAoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL1QyLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwgICAKICAgICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzLCAgIAogICAgICB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLCB0ZXN0aW5nL21pc2N0ZXN0LmMsICAKICAgICAgIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICBkZWxldGVkIG9sZCBmaWxlcyBub3Qgd29ydGggcmVzdG9yaW5nCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdGVzdGxpc3Q6CgogICByZW1vdmUgb2Jzb2x1dGUgdGVzdCBsaXN0CgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmM6CgogICBhIGhhc2gtdGVzdGluZyAuYyBmaWxlIEkgaGFkIGxheWluZyBhcm91bmQKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIHRlc3RhbGwgdGFyZ2V0CgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2MywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBtb3ZlIG9sZCBDLWNvZGUgdGVzdHMgaW4gcGxhY2UKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZDoKCiAgIHNraXAgc29sYXJpcyBjb21tZW50cwoKMjAxMC0wNC0yNiAyMDo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnZvY2F0aW9uIG9mIFJVTkZVTExURVNUUwoKMjAxMC0wNC0yNiAyMDo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YxY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2MmNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2FnZW50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlndHJhcGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvU3YxY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50LCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQsIHRlc3RpbmcvdGVzdHMvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI2c25tcHYzZ2V0U0hBQUVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QyLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybCwgdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMnNubXB2M3ZhY21nZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MnNubXB2M3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgIAogICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIucHJpdjoKCiAgIE5FV1M6IHRlc3Rpbmc6IEJyYW5kIG5ldyB0ZXN0IHN1aXRlIGRlc2lnZW5lZCB0byBldmVudHVhbGx5IHRlc3QKICAgbW9yZSBmdW5jdGlvbmFsaXR5LCBwcm92aWRlIGZvciBzdXBwb3J0IG9mIHVuaXQtdGVzdHMgYW5kIHN1cHBvcnQKICAgb2YgQVBJIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgcmVtb3ZlZCBhIGRlYnVnZ2luZyBlY2hvCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbW9yZSBidWcgZml4ZXMgZm9yIHN0cmluZyBzZWFyY2hlcwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGFkZGVkIGEgbmV3IG1hY3JvIHRvIGNoZWNrIGEgdHJhcGQgY291bnQKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICB1c2UgaW5kaXZpZHVhbCBvdXRwdXQgZmlsZXMgYW5kIGZpeCBzb21lIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBtYWRlIGV4aXN0aW5nIHRlc3Qgc3VpdGUgcHV0IG91dCBUQVAgb3V0cHV0CgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2gsICAgCiAgICAgIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL2Z1bGx0ZXN0cywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGJlZ2lubmluZyBvZiBtb3ZpbmcgVUNEIHRlc3Qgc3VpdGUgaW50byBhIGxhcmdlciBzdWJkaXJlY3RvcnkKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYWxsb3cgcnVubmluZyB0ZXN0cyB0aGF0IG1hdGNoIGEgcmVnZXhwCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1bW1hcml6ZSB0ZXN0cyB0aGF0IGZhaWxlZAoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjcmVhdGVkIHRoZSBhYmlsaXR5IHRvIGhhdmUgcnVuXyBzY3JpcHRzIGZvciBleGVjdXRpbmcgY2VydGFpbgogICB0eXBlcwoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWRlIHRoZSBidWlsZC1zY3JpcHQtY2hlY2sgcm91dGluZSBnZW5lcmljCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1cHBvcnQgZm9yIGJ1aWxkIHNjcmlwdHMKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgcHJvdmlkZSBpbmZyYXN0cnVjdHVyZSBmb3IgYnVpbGRpbmcgYW5kIHJlbmFtaW5nIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1vcmUgdGVzdCBpbmZyYXN0cnVjdHVyZSBzZXR1cAoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdXBwb3J0IHRoZSBrZXl3b3JkICdhbGwnCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGVuYWJsZSBncm91cCBnYXRoZXJpbmcKCjIwMTAtMDQtMjYgMjA6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY3JlYXRpbm8gb2YgYSBuZXcgdGVzdGluZyBoYXJuZXNzCgoyMDEwLTA0LTI1IDE3OjM3ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uIHVwZGF0ZS4KCjIwMTAtMDQtMjUgMTU6MjEgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogcmV2ZXJ0ZWQgYSByZWNlbnQgdW5uZWNlc3NhcnkgbW9kaWZpY2F0aW9uLgoKMjAxMC0wNC0yNSAxNTowMCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaGFuZGxlIG11bHRpcGxlIC0tc2FuIGFyZ3MsIGNoZWNrIGVycm9yIGNvZGVzIG9uIG9wZW5zc2wgY21kcyBhbmQKICAgZGllIG9uIGZhaWx1cmUKCjIwMTAtMDQtMjUgMTQ6MTggIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGggU0RLIHN1cHBvcnQgZGlzYWJsZWQuCgoyMDEwLTA0LTI1IDE0OjE4ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgCiAgICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiByZXN0b3JlZCBjb25zaXN0ZW5jeSBiZXR3ZWVuIHdvcmtzcGFjZS1idWlsZCBhbmQgYmF0Y2gKICAgYnVpbGQgLS0gbWFkZSBzdXJlIHRoYXQgbm90aWZpY2F0aW9uX2xvZy5jIGlzIG9ubHkgaW5jbHVkZWQgaW4KICAgdGhlIG5ldHNubXBtaWJzIHByb2plY3QuCgoyMDEwLTA0LTI1IDEzOjU4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAKICAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBXaW4zMjogZml4ZXMgZm9yIHJlY2VudGx5IGludHJvZHVjZWQgYnVpbGQgYnJlYWthZ2UuCgoyMDEwLTA0LTI1IDEzOjUxICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBTREsgc3VwcG9ydCBkaXNhYmxlZC4KCjIwMTAtMDQtMjUgMTM6NDggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHNubXBsaWIvY2xvc2VkaXIuYywgc25tcGxpYi9vcGVuZGlyLmMsICAKICAgICAgIHNubXBsaWIvcmVhZGRpci5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBXaW4zMiBNU1ZDIDYgbm9uLVNESyBidWlsZCB3b3JrcyBhZ2Fpbi4KCjIwMTAtMDQtMjUgMTM6NDIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgdHJhbnNmb3JtYXRpb24gcnVsZS4KCjIwMTAtMDQtMjUgMTI6MDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTWFkZSBpdCBhZ2FpbiBwb3NzaWJsZSB0byBkaXNhYmxlIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLIHdoZW4KICAgYnVpbGRpbmcgdmlhIHdpbjMyL2J1aWxkLmJhdC4KCjIwMTAtMDQtMjMgMTM6MTQgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIC0tc2FuIEROUzphLmIuYyBoYW5kbGluZywgaGVscCB0ZXh0IGZpeGVzLCBvdGhlciBidWcgZml4ZXMuCiAgIE5vdGUgbXVsdGlwbGUgLS1zYW4gbm90IHN1cHBvcnRlZCB5ZXQKCjIwMTAtMDQtMjEgMjI6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYnVpbGQgdGhlIC5tYWRlIHZlcnNpb24gb2YgbmV0LXNubXAtY2VydAoKMjAxMC0wNC0yMSAyMjozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kIGFmdGVyIG1vdmluZyBhbGwgdGhlIGZpbGVzIGFyb3VuZAoKMjAxMC0wNC0yMSAyMDoxNiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBidWlsZCB0cnVzdCBjaGFpbiBmb3IgY2xpZW50IGNlcnQ7IGFkZCBzdWJqZWN0IHRvIGluZGV4IGNhY2hlOwogICByZWJ1aWxkIGluZGV4ZXMKICAgaWYgYW55IGVycm9yIHdoaWxlIHBhcnNpbmcgaW5kZXg7IHJlZm9ybWF0IGR1bXAgb3V0cHV0CiAgIC0gYWRkIE5TX0NFUlRfQ0EgYWxsb3dlZF91c2UgZmxhZwogICAtIGFkZCBzdWJqZWN0LCBpc3N1ZXIgYW5kIGlzc3Vlcl9jZXJ0IHRvIG5ldHNubXBfY2VydAogICAtIG1vdmUgY2VydFRvVFNOX2VudHJ5IHRvIGNlcnRfdXRpbCBoZWFkZXIKICAgLSBtb3ZlIGNvbnRhaW5lciBzZXR1cCB0byBpdHMgb3duIGZ1bmN0aW9uCiAgIC0gYWRkIHN1YmplY3QgbmFtZSBzdWJjb250YWluZXIKICAgLSBhZGQgbmV0c25tcF9vcGVuc3NsX2NlcnRfZHVtcF9leHRlbnNpb25zLAogICBuZXRzbm1wX29wZW5zc2xfY2VydF9pc3N1ZWRfYnkKCjIwMTAtMDQtMjEgMTY6MTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZG9jdW1lbnQgdGhlIHNpbmdsZS1kYXNoIC8gc25tcC5jb25mIC8gZG91YmxlLWRhc2ggcHJlY2lkZW5jZQoKMjAxMC0wNC0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGluIHRoZSBzbm1wLmNvbmYgZmlsZSB0aGF0IHRoZSB0b2tlbnMgY2FuIGJlIHVzZWQgZm9yCiAgIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbnMgdG9vCgoyMDEwLTA0LTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGZpbGUgbG9hZGluZyBvcmRlciBhbmQgaG93IHRvIHR1cm4gb2ZmIGhvc3Qtc3BlY2lmaWMKICAgY29uZmlnCgoyMDEwLTA0LTIxIDE1OjUyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBtYW4vc25tcC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogYXBwczogR2VuZXJpYyBob3N0LXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gc25tcC5jb25mIGZpbGVzCiAgIGFyZSBub3cgcmVhZC4gU2VlIHRoZSBIT1NULVNQRUNJRklDIEZJTEVTIHNlY3Rpb24gb2YgdGhlCiAgIHNubXAuY29uZiBtYW51YWwgcGFnZS4KCjIwMTAtMDQtMjAgMTI6NDQgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyOTcxMjcwOiByZWZ1c2UgdG8gcGFyc2UgQVNOLjEgdG9rZW5zCiAgIHdpdGggd3JvbmcgdHlwZSBmaWVsZC4KICAgVGhpcyBtYXkgeWllbGQgdG8gcHJvYmxlbXMgd2l0aCB0aGlyZC1wYXJ0eSBhcHBsaWNhdGlvbnMgd2hpY2gKICAgbWF5IGRlcGVuZCBvbiBwYXJzaW5nIHVnbHkgQVNOLjEgZGF0YSAtIHdlJ2xsIHNlZS4uLgoKMjAxMC0wNC0yMCAwMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb21iaW5lIHJlbW90ZSBmaW5nZXJwcmludCBjaGVja2luZyBhbmQgY2hlY2sgYm90aCBzaWRlcwoKMjAxMC0wNC0yMCAwMDowNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBpZiB0aGUgcmVtb3RlIGZpbmdlcnByaW50IGlzIHNwZWNpZmllZCwgcmVxdWlyZSBhbiBleGFjdCBtYXRjaAoKMjAxMC0wNC0xOSAyMzo0NCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHZhcmlvdXMgbWlub3IgYnVncywgZXNwZWNpYWxseSBpbiBvdXRwdXQgbWVzc2FnZXMKCjIwMTAtMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGRvY3VtZW50YXRpb24gYW5kIHByb3RvdHlwaW5nIG9mIG5lZWRlZCBSRkMgc3RlcHMKCjIwMTAtMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjb252ZXJ0IGlmIGVycm9yIGNoZWNrIHRvIHJldHVybiBpbW1lZGlhdGVseSBzbyBvdGhlciBjb2RlIGNhbiBiZQogICBvdXRkZW50ZWQKCjIwMTAtMDQtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIFJGQyB0ZXh0CgoyMDEwLTA0LTE4IDE1OjI1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvdHJhbnNwb3J0cywgICAKICAgICAgd2luMzIvYnVpbGQucGwsIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAKICAgICAgICB3aW4zMi90cmFuc3BvcnRzLCB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBXaW4zMjogYnVpbGRzIGFnYWluLgoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNyZWF0ZWQgYSBmdW5jdGlvbiB0byBleHRyYWN0IHRoZSBzZWN1cml0eU5hbWUgZnJvbSB0aGUgY2VydAoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGRvbid0IG5lZWQgdG8gc2V0IHRoZSBhY2NlcHQgc3RhdGUgZm9yIFRMUyAoanVzdCBEVExTKQoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgVExTIGNvbW1lbnQgZG9jdW1lbnRhdGlvbiBhbmQgc3RlcHMgdGFrZW4gZnJvbSB0aGUgUkZDCgoyMDEwLTA0LTE2IDEzOjU1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBudW1lcm91cyBmaXhlcywgbW9yZSB2ZXJib3NlIGRlZmF1bHQgb3V0cHV0LCBhZGRpdGl2ZSBzaG93IGZsYWdzLAogICBhcmJpdHJhcnkgY29uZmlnIHBhcmFtIGhhbmRsaW5nLCBiZXR0ZXIgaGVscCB0ZXh0CgoyMDEwLTA0LTE2IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGRvbid0IGRvdWJsZSBkZWNsYXJlIGEgc3RydWN0CgoyMDEwLTA0LTE2IDAzOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNlcnQgdXRpbCBmaXhlcwogICAtIHJlbW92ZSB1bnVzZWQgdmFycyBhbmQgZHVwbGljYXRlIGNvZGUKICAgLSBjaGVjayBwcnQgYmVmb3JlIGZyZWUKICAgLSBuZXcgZnVuYyBmb3IgdHlwZSBmcm9tIGZpbGVuYW1lCiAgIC0gbmV3IGZ1bmN0aW9ucyBmb3IgZmluZGluZyBzdWJzZXRzIGZyb20gZmlsZW5hbWUKICAgLSBmaXggdHlwZXMgaW4ga2V5IHNlYXJjaCBmdW5jdGlvbiBidXQgdGhlbiBpZmRlZiBpZiAodW51c2VkCiAgIGZ1bmN0aW9uKQoKMjAxMC0wNC0xNSAyMjo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICB1c2UgYSBzdHJ1Y3R1cmUgcmVmZXJlbmNlIHRvIHByZWRlY2xhcmUgdGhlIHN0cnVjdHVyZQoKMjAxMC0wNC0xNSAyMToyNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBjb3JyZWN0IGRlY2xhcmF0aW9uIG9mIHRoZSBmX29wZW4gY29tbWFuZCBub3cgcmVxdWlyaW5nIHJldHVybmluZwogICBhIHRyYW5zcG9ydAoKMjAxMC0wNC0xNSAyMTowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBjb25maWcgY29udGFpbmVyCgoyMDEwLTA0LTE1IDIxOjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgZmluZ2VycHJpbnQgdHJhbnNwb3J0IGluZm9ybWF0aW9uIGludG8gbmV3IHRscyBzdHJ1Y3R1cmUKICAgd2l0aGluIERUTFNVRFAgc28gcGVyLXRyYW5zcG9ydCBmaW5nZXJwcmludHMgY2FuIGJlIHNwZWNpZmllZAoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm9wZXJseSBjaGVjayBmb3IgdGxzYmFzZSBwb2ludGVycyBpbiBkdGxzdWRwX3NlbmQoKQoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBncmVwIHRoZSB0cmFuc3BvcnQgbGlzdCBmb3IgVExTIG5vdCBqdXN0IERUTFMgZm9yIGNoZWNraW5nIGZvcgogICAtbHNzbAoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGJ1ZyBmaXhlcyBhbmQgbWFkZSBUTFNUQ1Agd29yayB3aXRoIHRoZSAtVCBmbGFnCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtYWtlIHRoZSBmX29wZW4gY2FsbCBhc3NpZ24gdGhlIG5ldyB0cmFuc3BvcnQgcG9pbnRlciB0byB1c2UgKGFuZAogICBjaGVjayBpZiBOVUxMIGFzIGEgZmFpbHVyZSBjb25kaXRpb24KCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZWdpbiB3b3JrIG1vdmluZyBEVExTIGNvbmZpZyByb3V0aW5lIGluIHBsYWNlCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcGFzcyB0aGUgZW50aXJlIHRsc2Jhc2UgdG8gdGhlIGNsaWVudF9zZXR1cAoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIHNubXBsaWIvc25tcF9hcGkuYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzdGFydGluZyB0aGUgc3RvcmluZyBvZiBjb25maWcgZGF0YSBpbnRvIHRoZSB0bHNiYXNlCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoYW5nZSBjbGllbnQgc3NsIHNldHVwIHRvIGFsbG93IGZvciBkaXJlY3QgZmluZ2VycHJpbnQKICAgc3BlY2lmaWNhdGlvbiBvZiBteS90aGVpciBjZXJ0cwoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNwbGl0IFRMUyBpbnRvIGNyZWF0aW9uL2Nsb3NlIGZ1bmN0aW9ucyBmb3IgZXZlbnR1YWwgY29uZmlnCiAgIHBhc3Npbmcgc3VwcG9ydAoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhc3MgdHJhbnNwb3J0IGNvbmZpZyBkYXRhIHRvIHRoZSB0cmFuc3BvcnQgZl9jb25maWcoKSBmdW5jdGlvbgoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmV0dXJuIE5VTEwgb24gdHJhbnNwb3J0IGNvbmZpZyBlcnJvcgoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBhcHBzOiAtVCBjb21tYW5kIGxpbmUgZmxhZyBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUKICAgdHJhbnNwb3J0cwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2hlY2sgdHJhbnNwb3J0IE5VTExuZXNzIGJlZm9yZSB1c2luZwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBiZWdpbm5pbmcgb2Ygd29yayB0byBtYWtlIHRyYW5zcG9ydHMgY29uZmlndXJhYmxlIHdpdGgKICAgc3VwcGxpbWVudGFsIGNvbmZpZ3VyYXRpb24gZGF0YSBhbmQgbmV3IGNhbGxzIGZvciBmX29wZW4vZl9jb25maWcKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGRlZCB0ZXh0IGluIGNvbW1lbnRzIGZyb20gZnV0dXJlIFJGQyB0byBkb2N1bWVudCB0aGUKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMDQtMTUgMTg6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFyayBwZW0gdy9rZXkgYXMgaWRlbnRpdHk7IHR3ZWFrIHBhcnRuZXIgZGVidWc7IGNvbXBhcmUgZmlsZQogICBjdGltZSBhZ2FpbnN0IGluZGV4IHRvbwoKMjAxMC0wNC0xNSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB1c2UgbG9jYWwgc3BhY2UgdG8gcmVmb3JtYXQgY2VydCBmb3Igc2VhcmNoCgoyMDEwLTA0LTE1IDE2OjU1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUGFydGlhbGx5IHJldmVydGVkIHIxODQ5NjoKICAgLSBDb21tZW50ZWQgb3V0ICNkZWZpbmUgTkVUU05NUF9VU0VfRExMIGFnYWluIGluIGZpbGUKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggb24gdGhlIDUuNCBicmFuY2guIFRoaXMgY2hhbmdlCiAgIGhhZCBiZWVuIGNvbW1pdHRlZCB1bmludGVudGlvbmFsbHkuCiAgIC0gUmUtZW5hYmxlZCAjZGVmaW5lCiAgIFVTSU5HX05PVElGSUNBVElPTl9MT0dfTUlCX05PVElGSUNBVElPTl9MT0dfTU9EVUxFIGluCiAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmggb24gdGhlIHRydW5rIGFuZCB0aGUKICAgVjUuNSBicmFuY2guIFdoaWxlIGJ1aWxkLmJhdCByZXBvcnRzIGFuIGVycm9yIG9uIGVhcmxpZXIgYnJhbmNoZXMKICAgd2l0aCB0aGlzIHN5bWJvbCBlbmFibGVkLCB0aGVyZSBpcyBubyBzdWNoIHByb2JsZW0gb24gdGhlIHRydW5rCiAgIG9yIFY1LjUgYnJhbmNoZXMgYW5kIGhlbmNlIHRoZXJlIHdhcyBubyByZWFzb24gdG8gZGlzYWJsZSB0aGlzCiAgIHByZXByb2Nlc3NvciBzeW1ib2wuCgoyMDEwLTA0LTE1IDE1OjA4ICBtYXJ6CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldC1zbm1wLWNlcnQgdG8gbWFrZS9pbnN0YWxsCgoyMDEwLTA0LTE1IDEwOjUyICBqc2FmcmFuZWsKCiAgICogdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0OgoKICAgVGVzdHMgbm90IHdvcmtpbmcgZm9yIFRDUCBzaG91bGQgYmUgc2tpcHBlZCBhbHNvIGZvciBUQ1A2LgoKMjAxMC0wNC0xNCAxODoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggdmFycy90ZXh0IGZyb20gY3V0LW4tcGFzdGUKCjIwMTAtMDQtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGNvbW1lbnRzCgoyMDEwLTA0LTE0IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGxvdHMgb2YgY2VydCB1cGRhdGVzCiAgIC0gY2hhbmdlIGNlcnQgc3ViZGlyIHNlYXJjaGluZyB0byBtYXRjaCBuZXQtc25tcC1jZXJ0CiAgIC0gdXBkYXRlIGtleSB0eXBlIGhhbmRsaW5nCiAgIC0gaWdub3JlIHdvcmxkIHJlYWRhYmxlIGtleXMKICAgLSBrZWVwIHR5cGUgaW4gaW5kZXhlcwogICAtIHR3ZWFrIGNlcnQva2V5IHByaW50IGZvcm1hdAoKMjAxMC0wNC0xNCAxNzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtYWtlIG5ldC1zbm1wLWNlcnQgZXhlY3V0YWJsZQoKMjAxMC0wNC0xNCAxMzoxMiAganNhZnJhbmVrCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIEZpeGVkIHRlc3RzICdQcm94eSBHRVQvU0VUIHN1cHBvcnQnIGFuZCAnU05NUHYyIHZhY20gZGVuaWFsCiAgIHN1cHBvcnQnIHdpdGggdWRwNiB0cmFuc3BvcnQuCgoyMDEwLTA0LTE0IDA5OjQ3ICBkdHMxMgoKICAgKiAgd2luMzIsIHdpbjMyL2Jpbiwgd2luMzIvZGlzdCwgd2luMzIvZGlzdC9odG1saGVscCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIsIHdpbjMyL2Rpc3Qvc2NyaXB0cywgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgCiAgICAgICAgd2luMzIvbGliLCB3aW4zMi9saWJhZ2VudCwgd2luMzIvbGliaGVscGVycywgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLCB3aW4zMi9saWJzbm1wLCB3aW4zMi9saWJzbm1wX2RsbCwgICAKICAgICAgd2luMzIvbGlidWNkbWlicywgd2luMzIvbG9jYWwsIHdpbjMyL25ldC1zbm1wLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudCwgd2luMzIvbmV0LXNubXAvbGlicmFyeSwgd2luMzIvbmV0c25tcG1pYnMsICAKICAgICAgIHdpbjMyL3NubXBidWxrZ2V0LCB3aW4zMi9zbm1wYnVsa3dhbGssIHdpbjMyL3NubXBkLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEsIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGdldCwgd2luMzIvc25tcGdldG5leHQsICAKICAgICAgIHdpbjMyL3NubXBuZXRzdGF0LCB3aW4zMi9zbm1wc2V0LCB3aW4zMi9zbm1wc3RhdHVzLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUsIHdpbjMyL3NubXB0ZXN0LCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcCwgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdXNtLCB3aW4zMi9zbm1wdmFjbSwgICAKICAgICAgd2luMzIvc25tcHdhbGs6CgogICBEb24ndCB0cnkgdG8gU1ZOLW1hbmFnZSB0aGUgV2luZG93cyBiYXRjaCBidWlsZCBpbmZyYXN0cnVjdHVyZQogICAoYWRkIHJlbGVhc2UsIGRlYnVnLCBNYWtlZmlsZSB0byB0aGUgcHJldmlvdXMgaWdub3JlIGxpc3QpCgoyMDEwLTA0LTE0IDA4OjE2ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEZpeCBXaW5kb3dzIGJhdGNoIGJ1aWxkIHVzaW5nIFZpc3VhbCBTdHVkaW8gd2l0aCBkeW5hbWljIGxpbmtpbmcuCiAgIFVucmVmZXJlbmNlZCBzeW1ib2wgaW50cm9kdWNlZCBieSBTVk4gcmV2aXNpb24gMTgzOTMKCjIwMTAtMDQtMTQgMDg6MDggIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogRml4IGJhdGNoIGJ1aWxkIHVzaW5nIHJlY2VudCB2ZXJzaW9ucyBvZiBWaXN1YWwKICAgU3R1ZGlvLgogICBQYXJ0aWFsIGJhY2sgcG9ydCBvZiBTVk4gcmV2aXNpb25zIDE3NTczIGFuZCAxNzY5Ni4KCjIwMTAtMDQtMTQgMDE6NDcgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBwZXJtcyBvbiBjcmVhdGVkIGZpbGVzIC1ydy0tLS0tLS0sIHVtYXNrKDA3NykKCjIwMTAtMDQtMTMgMjI6MTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgZml4IHBlcm1zLCBhZGQgLS1jbi8tYywgYmV0dGVyIGRhdGVzIGRlZmF1bHRzLCBzbm1wLXRscyBvcmdfdW5pdCwKICAgYWRkZWQgaW5pdGlhbCBkdW1teSBjb25maWcgZmlsZQoKMjAxMC0wNC0xMyAxNDoyMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4ZXMgZm9yIHNob3cgY21kcywgY21kbGluZSwgaGVscAoKMjAxMC0wNC0xMyAwMjoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgc3VwcG9ydCBmb3Iga2V5K2NlcnQgaW4gLnBlbSBmaWxlczsgbWlzYyB0d2Vha3MKCjIwMTAtMDQtMTAgMjM6MjQgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYnVpbGQgZml4IGZvciBDODkgY29tcGlsZXJzIChlLmcuIG9uIEhQLVVYIDEwLjIwKQoKMjAxMC0wNC0xMCAyMjoyNSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgaW5pdGlhbCBjdXQgYXQgdGxzdG1DZXJ0VG9UU05UYWJsZQoKMjAxMC0wNC0xMCAyMjoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGFkZCBkZWZpbmUgb2YgbWF4IGhhc2ggY29uc3RhbnQKCjIwMTAtMDQtMTAgMjI6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYzoKCiAgIHVzZSBjZXJ0IHV0aWwgY2hlY2sgZm9yIGZpbmdlcnByaW50IGxlbi9hbGdvcml0aG0KCjIwMTAtMDQtMTAgMTI6NTkgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHNob3cgY21kIGZpeGVzCgoyMDEwLTA0LTA5IDIxOjMyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmYWlybHkgZnVuY3Rpb25hbCAobm9uLWludGVyYWN0aXZlKSAtIGJlIGl0IGtub3duOiB0aGVyZSBhcmUgYnVncwoKMjAxMC0wNC0wOSAyMDo1NCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oOgoKICAgbWVyZ2Ugc29tZSB0YWJsZV9kYXRhLmNvbmYgY2hhbmdlczsgcmVtb3ZlIHVudXNlZCBjb2RlIGFuZCBhCiAgIGJ1bmNoIG9mIHZlcmJvc2UgY29tbWVudHMKCjIwMTAtMDQtMDggMTQ6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB1c2UgZnVsbCBwYXRoCgoyMDEwLTA0LTA4IDEwOjU1ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBDaGVjayByZXN1bHRzIG9mIGNhbGxzIHRvIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZSBhbmQgbG9nCiAgIGFuIGVycm9yLgogICBUaGlzIGFsbG93cyB1c2VycyB0byByZWxhdGUgdmFyaW91cyAnYzY0IDMyIGJpdCBjaGVjayBmYWlsZWQnCiAgIGVycm9ycyB3aXRoIHNwZWNpZmljIGNvdW50ZXIuCgoyMDEwLTA0LTA4IDAxOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV3IGZ1bmN0aW9uCgoyMDEwLTA0LTA4IDAxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHRyYW5zbGF0ZSBOT1NVQ0gqL0VORE9GTUlCIGVycm9ycyBkdXJpbmcgUkVTRVJWRTEKICAgdG8gTk9DUkVBVElPTgoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIE5FV1M6IHNubXBkOiB0YWJsZV9kYXRhL3RkYXRhIG5leHQgaGFuZGxlciB3aWxsIG5vdCBiZSBjYWxsZWQKICAgZHVyaW5nIGdldAogICBwcm9jZXNzaW5nIGlmIG5vIHZhbGlkIHJvd3MgYXJlIGZvdW5kIGZvciB0aGUgaGFuZGxlcgoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIE5FV1M6IHNubXBkOiBhZ2VudCB3aWxsIG5vIGxvbmdlciBjYWxsIHRhYmxlIGhhbmRsZXJzIGlmIGEgc2V0CiAgIHJlcXVlc3QgZm9yCiAgIHRoZSBoYW5kbGVyIGhhcyBpbnZhbGlkIGluZGV4ZXMKICAgQ0hBTkdFUzogc25tcGQ6IGRvbid0IGNhbGwgY2xlYW51cCBvbiBmaXJzdCByZXF1ZXN0IG9uIGJhZAogICBpbmRleGVzLiBpbnN0ZWFkLAogICBzZXQgYWN0dWFsIGVycm9yIGxhdGVyLCBhbmQgZnJlZSByZXF1ZXN0IGRhdGEgc2V0cyBvbiBmaXJzdAogICByZXF1ZXN0IGZvciBzZXRzCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGZpbmdlcnByaW50IHZhcmJpbmQKCjIwMTAtMDQtMDcgMjI6NTYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU29sYXJpcyB0ciBkb2Vzbid0IHN1cHBvcnQgY2hhcmFjdGVyIHJhbmdlcyByZWxpYWJseSAoc2VlIHRoZQogICBhdXRvY29uZiBtYW51YWwpLCBjaGFuZ2UgdGhlIGV4cHJlc3Npb24gdG8gb25lIHRoYXQgaXMgc2ltcGxlCiAgIGVub3VnaCB0byBiIHN1cHBvcnRlZC4KCjIwMTAtMDQtMDcgMTQ6MDUgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEluc2VydCB0aGUgY2FjaGUgaGVscGVyIGNvcnJlY3RseS4KCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBmdW5jdGlvbnMgdG8gcmVtb3ZlIGxpc3Qvcm93IGRhdGEgZnJvbQogICByZXF1ZXN0IGxpc3QKCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBpZmRlZiB2YXIgZGVjbCBmb3IgdmFycyBvbmx5IHVzZWQgaW4gbGF0ZXIgaWZkZWYgYmxvY2sKCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9jaGVja192YXJiaW5kLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIFJvd1N0YXR1cyBhbmQKICAgU3RvcmFnZVR5cGUgdmFyYmluZHMKICAgLSBhbHNvIHJlbW92ZSBzb21lIGR1cGxpY2F0ZSBjb2RlIGFuZCBmaXggY29tbWVudHMgaW5kZW50IG1hbmdsZWQKCjIwMTAtMDQtMDcgMTA6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGUsIG1hbi9taWIyYy11cGRhdGUuMS5kZWY6CgogICB1cGRhdGUgbWFuIHBhZ2U7IGZpeCBzaGVsbCByZWRpcmVjdDsgY3JlYXRlIGV4YW1wbGUgcmNmaWxlIGlmCiAgIG1pc3NpbmcKCjIwMTAtMDQtMDcgMDc6MTUgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgVXNlIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORyBpbnN0ZWFkIG9mIERJU0FCTEVfTUlCX0xPQURJTkcKCjIwMTAtMDQtMDcgMDA6MzggIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogT25seSBlbmFibGUgaG9zdFN3SW5zdCBycG0gc3VwcG9ydCBvbiBsaW51eCBob3N0cwogICB3aXRoIGxpYnJwbS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBub24tcnBtIGxpbnV4CiAgIGRpc3RyaWJ1dGlvbnMuCgoyMDEwLTA0LTA3IDAwOjE0ICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgQ0hBTkdFUzogdGVzdGluZzogQ2hhbmdlIHRoZSB0ZXN0IHN1aXRlIHRvIHdvcmsgZXZlbiBpZiBtaWIKICAgbG9va3VwIGlzIGRpc2FibGVkLgoKMjAxMC0wNC0wNyAwMDoxMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzY6CgogICBDaGVjayBmb3IgY29tMnNlYzYsIG5vdCBjb20yc2VjLgoKMjAxMC0wNC0wNiAyMjo1MSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBNb3ZlIGRpcmVjdG9yeSBjcmVhdGlvbiBiZWZvcmUgdGhlIGRpcmVjdG9yaWVzIGFyZSB1c2VkLgoKMjAxMC0wNC0wNiAxMTowMyAgZHRzMTIKCiAgICogRkFROgoKICAgUHl0aG9uIGlzIGFwcGFyZW50bHkgY2xpZW50LXNpZGUgb25seS4KCjIwMTAtMDQtMDYgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTZXQgc3VwcGxlbWVudGFyeSBncm91cHMgYmVmb3JlIGNoYW5naW5nIFVJRAogICAod2hpY2ggcHJvYmFibHkgaW52b2x2ZXMgZ2l2aW5nIHVwIHByaXZpbGVnZXMpCgoyMDEwLTA0LTA2IDA4OjU3ICBkdHMxMgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBEb2N1bWVudCBsYXJnZS1kaXNrIHN0YXRpc3RpY3MgYXMgbGF0Y2hpbmcgYXQgMlRiIChyYXRoZXIgdGhhbgogICB3cmFwcGluZykuCgoyMDEwLTA0LTA2IDAxOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMsIG1hbi9taWIyYy4xLmRlZjoKCiAgIE5FV1M6IG1pYjJjOiBtaWIyYyBjYW4gbm93IG9wdGlvbmFsbHkgcnVuIHNlZCBvbiBnZW5lcmF0ZWQgY29kZQoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29udmVydCBDKysgY29tbWVudHMgdG8gQyBjb21tZW50cwoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbW92ZSBwdHIgY2hlY2sgYmVmb3JlIHBydCB1c2UKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGZpbGVuYW1lIHRvIGRlYnVnIG9uIG5ldyBjZXJ0czsgbWFrZSBzdGF0aWMgZnVuYyB0byByZXR1cm4KICAgbW9kZSBuYW1lcwoKMjAxMC0wNC0wNiAwMDo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhbGxvdyBhIGZvdW5kIGZpbmdlcnByaW50IHNlbGYtc2lnbmVkIGNlcnQgZm9yIG5vdzsgZXZlbnR1YWxseQogICBuZWVkIHRvIHJlc3BlY3QgdGhlIE1JQiBjb25maWcgdGFibGUKCjIwMTAtMDQtMDYgMDA6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgbWtkaXIgc25tcGxpYi90cmFuc3BvcnRzIHdoZW4gRE5FIGZvciBidWlsZGluZyBvdXRzaWRlIHRoZSBzb3VyY2UKICAgZGlyCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZXJyb3IgY29kZSBjbGVhbnVwIGZvciB0bHNiYXNlX3dyYXB1cF9yZWN2CgoyMDEwLTA0LTA1IDIzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW9yZSBiZXR0ZXIgZXJyb3IvZGVidWcgY29kZXMKCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBjb21tZW50cyBmcm9tIHRoZSBmdXR1cmUtUkZDIGFib3V0IHRoZSBpbXBsZW1lbnRhdGlvbjsgdXNlCiAgIGZsYWdzIGZvciBzZXJ2ZXIvY2xpZW50IHNwZWNpZmljYXRpb24gZm9yIGV4cGFuc2lvbgoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgdXNhZ2UgY29uc3RyYWludHMKCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3ZlIGZ1bmN0aW9uIHByb3RlY3Rpb24gbG9naWMgaW4gYSB0b3AtbGV2ZWwgY2hlY2sKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZml4IGluaXQgb3JkZXJpbmcKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtdiB0bHNiYXNlIGluaXQgZnVuY3Rpb24gdG8gYSBwcm9wZXIgY3RvciBmb3IgYXV0by1jYWxsaW5nCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IGdlbmVyYXRlIHRoZSB0cmFuc3BvcnQgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gbGlzdAogICBkeW5hbWljYWxseSBhbmQgdXNlIGl0CgoyMDEwLTA0LTAyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCBzbm1wbGliL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3RyYW5zcG9ydHMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogbW92ZWQgdHJhbnNwb3J0IGNvZGUgaW50byBhIHNlcGFyYXRlIHN1YmRpcmVjdG9yeSBpbgogICBzbm1wbGliCgoyMDEwLTA0LTAyIDA5OjAyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYzoKCiAgIERvIG5vdCBhdHRlbXB0IHRvIGNoZWNrIHNpemVvZiB2b2lkIHRvIG9idGFpbiB0aGUgYW1vdW50IG9mCiAgIG1lbW9yeSB0byBjb3B5LgoKMjAxMC0wNC0wMSAxNzoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgaW5zdGVhZCBvZiBmd2QgZGVjbGFyZXMsIHJlcXVpcmUgb3RoZXIgaGVhZGVyCgoyMDEwLTA0LTAxIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMC0wNC0wMSAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBvdXRkYXRlZCBkZWJ1ZyBtc2cKCjIwMTAtMDQtMDEgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1c2UgY2VydGFwaSB0byBmaW5kIGNlcnRzL2tleXMKCjIwMTAtMDQtMDEgMTQ6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWdpc3RlciBleHRyYVg1MDlTdWJEaXIgdG9rZW4KCjIwMTAtMDQtMDEgMTQ6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBjaGVjayBwdHIgYmVmb3JlIHVzZQoKMjAxMC0wNC0wMSAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGNoZWNrIHB0ciBiZWZvcmUgdXNlCgoyMDEwLTA0LTAxIDEzOjEzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgYWRkIHBlcnNpc3RlbnQgc3RvcmFnZTsgdG9rZW4gZm9yIGNyZWF0aW5nIGVudHJpZXMgaW4gc25tcGQuY29uZjsKICAgZml4IGluZGV4CgoyMDEwLTA0LTAxIDEzOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IGNlcnRpZmljYXRlIGFwaSB0byBzdXBwb3J0IHRscy9kdGxzCgoyMDEwLTA0LTAxIDEzOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgQ0hBTkdFUzogYWRkIGZ1bmN0aW9ucyB0byBnZXQgZmluZ2VycHJpbnQgZnJvbSBjZXJ0IGFuZCBsb2cKICAgb3BlbnNzbCBlcnJzCgoyMDEwLTA0LTAxIDEyOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCB0eXBvCgoyMDEwLTA0LTAxIDEwOjMzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBwcmUtQzkwIGNvbXBpbGVycy4KCjIwMTAtMDQtMDEgMTA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogdGFibGVfZGF0YSB0ZW1wbGF0ZSBlbmhhbmNlbWVudHMKICAgLSBhZGQgZXJyb3IgY2hlY2tzIGR1cmluZyB0YWJsZSBpbml0CiAgIC0gY3JlYXRlIGNhY2hlIGVhcmxpZXIgc28gd2UgY2FuIGJhaWwgb24gZmFpbHVyZQogICAtIGFkZCBvcHRpb24gdG8gY3JlYXRlL2RlbGV0ZSByb3cgdy9vdXQgYWRkaW5nL3JlbW92aW5nIGZyb20KICAgY29udGFpbmVyCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgYWRkIGhlbHBmdWwgcGFyYW0gbmFtZXMgYXMgaGludHMgaW4gcHJvdG90eXBlCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgc2VhcmNoIGZvciBjb250YWluZXIgc3BlY2lmaWMgY29udGFpbmVyIGJlZm9yZSBnZW5lcmljCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBORVdTOiBzbm1wbGliOiBlbmhhbmNlIGZpbGUgdXRpbHMgYW5kIGRpciB1dGlscwogICAtIGFkZCBvcHRpb25hbCBzdGF0cyBzdHJ1Y3QgdG8gbmV0c25tcF9maWxlCiAgIC0gZ2VuZXJhbGl6ZSBkaXIgY29udGFpbmVyIGZpbHRlciwgYWRkIGNvbnRleHQgdG8gY2FsbGJhY2sKICAgLSBhZGQgb3B0aW9uIHRvIHN0b3JlIG5ldHNubXBfZmlsZXMgKHcvc3RhdHMpIGluIGNvbnRhaW5lcgogICBpbnN0ZWFkIG9mIGp1c3QgbmFtZQoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHByb3RvdHlwZSB0byBoZWFkZXI7IGNoZWNrIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZwoKMjAxMC0wMy0zMSAxNTozNCAganNhZnJhbmVrCgogICAqICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvc25tcC1icmlkZ2UtbWliLCBtYW4vTWFrZWZpbGUuaW4sICAgCiAgICAgIG1hbi9zbm1wLWJyaWRnZS1taWIuMSwgbWlicy9CUklER0UtTUlCLnR4dCwgbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgbWlicy9NYWtlZmlsZS5taWI6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMjk1MjcwODogZnJvbSBKZW5zIE9zdGVya2FtcDogQWRkZWQgUGVybAogICBpbXBsZW1lbnRhdGlvbiBvZiBCUklER0UtTUlCCgoyMDEwLTAzLTMxIDAyOjEyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3BlciBwYWNrZXQgbGFiZWxpbmcgZm9yIERUTFNVRFAKCjIwMTAtMDMtMzEgMDI6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdXNlIGNvbW1vbiBjb250ZXh0IGNyZWF0aW9uIGNvZGUKCjIwMTAtMDMtMzAgMjM6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hhbmdlIFRMUyBtZXRob2QgdG8gVExTdjEgZnJvbSBTU0x2MjMKCjIwMTAtMDMtMzAgMjM6MjMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW92ZSBtb3JlIGNvbW1vbiBkYXRhIGFuZCBmdW5jdGlvbmFsaXR5IGludG8gdGhlIFRMUyBiYXNlCgoyMDEwLTAzLTMwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1pbm9yIFRMUyBjb2RlIGNsZWFudXAKCjIwMTAtMDMtMzAgMjA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJld29yayBpZigpIHdyYXBwaW5nIGZvciBsZXNzIGNvbmZ1c2lvbiBpbiBlcnJvciBoYW5kbGluZwoKMjAxMC0wMy0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29kZSBjb25zb2xpZGF0aW9uIGluIHN0YXJ0X25ld19jYWNoZWRfY29ubmVjdGlvCgoyMDEwLTAzLTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW5hbWUgZ2VuZXJpYyAnYmlvJyBwb2ludGVyIHRvICdyZWFkX2JpbycgZm9yIGJldHRlciByZWFkYWJpbGl0eQoKMjAxMC0wMy0zMCAyMDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbW92ZSBidWZmZXJlZCBkYXRhIGNyZWF0aW9uIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHJldXNlCgoyMDEwLTAzLTMwIDE3OjUyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBpbml0aWFsIGNlcnQgZ2VuIHdyYXBwZXIgc2NyaXB0IC0gbm90IHdvcmtpbmcKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNsZWFuIHVwIGVycm9yIG91dHB1dCBzbyBpdCBkb2Vzbid0IHJlcG9ydCB3YW50X3JlYWQgYW5kCiAgIHdhbnRfd3JpdGUgZXJyb3JzCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW5hbWluZyBvZiBzZW5kaW5nIGZ1bmN0aW9uIGZvciBjbGFyaXR5IGFuZCBjaGVjayBvbmUgbW9yZQogICBsb2NhdGlvbiBmb3IgbmVlZGVkIG91dGdvaW5nIHBhY2tldHMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFkZGVkIGR0bHN1ZHAgdHJhY2luZyB0b2tlbnMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBDSEFOR0VTOiBhZGRlZCBhIG5ldyBERUJVR1RSQUNFVE9LKCkgbWFjcm8KCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJldHRlciBjb21tZW50cyBhbmQgbW9yZSB3b3JrIG9uIHNlbmRpbmcgYnVmZmVyZWQgZGF0YSBpbiB0aGUKICAgcmlnaHQgc3BvdHMKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGFyZ3VtZW50cyB0byBnZXRfY29tbW9uTmFtZQoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmVnaW5uaW5nIG9mIGNhY2hpbmcgb2YgcGFja2V0cyBiZWZvcmUgdGhleSBjYW4gYmUgc2VudCB2aWEgRFRMUwoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgaGFuZGxlIFNTTF9XQU5UX1JFQUQvV1JJVEUgYmV0dGVyOyBzdGlsbCBuZWVkIHRvIGJ1ZmZlciBvdXRnb2luZwogICB3cml0ZSBkYXRhCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtaW5vciBjaGFuZ2UgdG8gb3V0cHV0IGVycm9yIHByaW50aW5nCgoyMDEwLTAzLTI5IDE1OjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IHNubXBkOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUgbWF0Y2hpbmcgVkFDTSBlbnRyaWVzLgogICAoVXNlIHRoZSAiYmVzdCIgbWF0Y2gsIHJhdGhlciB0aGFuIHRoZSBmaXJzdCBvbmUpLgogICBSZXBvcnRlZCBieSBBZGFtIExld2lzLgogICBOb3RlIHRoYXQgdGhpcyBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgdGhlIGJlaGF2aW91ciBvZgogICBleGlzdGluZyBhY2Nlc3MgY29udHJvbCBjb25maWd1cmF0aW9ucy4KCjIwMTAtMDMtMjkgMTU6MTYgIGJ2YXNzY2hlCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOgogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9yZXF1ZXN0X2luZm9QdHI6OmdldFZhbHVlKCk6IGRvbid0IHJldHVybgogICBhIHBvaW50ZXIgdG8gYSBidWZmZXIgb24gdGhlIHN0YWNrLiBIb3cgY2FuIHRoaXMgaGF2ZSB3b3JrZWQKICAgcmVsaWFibHkgPz8KICAgQ0hBTkdFUzogcGVybDoKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfcmVxdWVzdF9pbmZvUHRyOjpzZXRWYWx1ZSgpLAogICBBU05fQ09VTlRFUjY0OiBmaXhlZCBidWcgdGhhdCBjb3VsZCBjYXVzZSB0aGlzIG1ldGhvZCB0byBmYWlsCiAgIGV2ZW4gd2hlbiBhIHZhbGlkIG51bWJlciB3YXMgcHJvdmlkZWQuCgoyMDEwLTAzLTI5IDE1OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCBhZ2VudCBjcmFzaCB3aGVuIHNlbmRpbmcgZW5jcnlwdGVkIFNOTVB2MwogICB0cmFwcy4KICAgUmVwb3J0ZWQgYnkgU3Jpa2FwaWxhbiBHYW5kaGkKCjIwMTAtMDMtMjkgMTI6NDYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBDYXRjaCBzdGRlcnIgb24gV2luZG93cyB0b28uCgoyMDEwLTAzLTI5IDExOjQ4ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQnVpbGRzIGFnYWluIHdpdGggcHJlLUM5MCBjb21waWxlcnMuCgoyMDEwLTAzLTI5IDExOjE5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvT0lEL09JRC54cywgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBkZXN0cm95aW5nIGEKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gb2JqZWN0LgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBmYWlsdXJlIG9mCiAgIGNyZWF0aW5nIGEgTmV0U05NUDo6T0lEIG9iamVjdC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgdGhlCiAgIE5ldFNOTVA6Ok9JRDo6Z2V0dGFibGUoKSBzdWJyb3V0aW5lLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyB0cmlnZ2VyZWQgYnkKICAgdGhlIGltcGxlbWVudGF0aW9uIG9mIE5ldFNOTVA6OlNOTVAuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGEgUERVIHByb2Nlc3NpbmcKICAgZXJyb3IgaW4gTmV0U05NUDo6U05NUC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgbWVtb3J5IGxlYWtzIHRyaWdnZXJlZCBieSBjcmVhdGluZyBhbiBTTk1QdjMKICAgc2Vzc2lvbiB2aWEgTmV0U05NUDo6U05NUC4KICAgCiAgIEFsc28gZml4ZWQgdGhlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgYWNjZXNzZXMgdHJpZ2dlcmVkIGJ5CiAgIGFkZGluZyBhIHZhcmJpbmQgdG8gYSBQRFUgdmlhIE5ldFNOTVA6OlNOTVAgaW50cm9kdWNlZCBhIGZldyBkYXlzCiAgIGFnby4KICAgCiAgIFRoZSBidWdzIG1lbnRpb25lZCBhYm92ZSBoYXZlIGJlZW4gZm91bmQgYnkgaW5zcGVjdGluZyB0aGUgb3V0cHV0CiAgIG9mIHRoZSBmb2xsb3dpbmcgc2hlbGwgY29tbWFuZDoKICAgY2QgcGVybCAmJiB2YWxncmluZCAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLWxlYWstY2hlY2s9ZnVsbCBtYWtlCiAgIHRlc3QKCjIwMTAtMDMtMjkgMTA6NTkgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBTd2l0Y2hlZCBiYWNrIHRvIHRoZSBwcmV2aW91cyB3YXkgb2Ygc3RhcnRpbmcgcHJvY2Vzc2VzCiAgIGFzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgaXMgbW9yZSByZWxpYWJsZS4KCjIwMTAtMDMtMjkgMDk6MjcgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBEbyBub3Qgb25seSBzYXZlIHNubXBkIC8gc25tcHRyYXBkIGxvZ3MgYnV0IGFsc28gdGhlIHN0ZG91dCAvCiAgIHN0ZGVyciBvdXRwdXQgZ2VuZXJhdGVkIGJ5IHRoZXNlIHByb2Nlc3Nlcy4KCjIwMTAtMDMtMjggMTY6MDkgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBDaGFuZ2VzIGluIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CiAgIC0gQWRkZWQgY29tbWFuZC1saW5lIG9wdGlvbiAtZCBmb3Igc25tcGQgYW5kIHNubXB0cmFwZC4KICAgLSBzbm1wZCBhbmQgc25tcHRyYXBkIG91dHB1dCBpcyBub3cgc2F2ZWQgdG8gYSBsb2cgZmlsZSAob25lIHBlcgogICB0ZXN0KS4KICAgLSBSZXdyb3RlIFBlcmwgY29kZSBmb3Igc3RhcnRpbmcgdGhlIHNubXBkL3NubXB0cmFwZCBwcm9jZXNzZXMKICAgc3VjaCB0aGF0IHRoZSBzYW1lIGNvZGUgd29ya3Mgb24gVW5peCBhbmQgb24gV2luZG93cy4KCjIwMTAtMDMtMjggMTM6MzcgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi90b29scy5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGRlZCB0aGUgZnVuY3Rpb25zIG5ldHNubXBfbWFsbG9jKCksCiAgIG5ldHNubXBfY2FsbG9jKCksIG5ldHNubXBfcmVhbGxvYygpLCBuZXRzbm1wX3N0cmR1cCgpIGFuZAogICBuZXRzbm1wX2ZyZWUoKS4KICAgQ0hBTkdFUzogV2luMzI6IHNubXBsaWI6IHJlbW92ZWQgdGhlIHRyb3VibGVzb21lICNkZWZpbmUgbWFsbG9jCiAgIG5ldHNubXBfbWFsbG9jIGV0Yy4gVGhpcyBtZWFucyB0aGF0IHdoZW4gY2FsbGluZyBmdW5jdGlvbnMgZnJvbQogICB0aGUgTmV0LVNOTVAgRExMIGZyb20gQyBvciBDKysgY29kZSB0aGF0IGlzIGJlaW5nIGxpbmtlZCBhZ2FpbnN0CiAgIGFub3RoZXIgdmVyc2lvbiBvZiB0aGUgTVNWQyBydW50aW1lIERMTCB0aGFuIHRoZSBOZXQtU05NUCBETEwsCiAgIGFuZCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5IHRoYXQgd2lsbCBiZSBmcmVlZCBieSB0aGUgTmV0LVNOTVAKICAgRExMLCB5b3Ugd2lsbCBlaXRoZXIgaGF2ZSB0byBjYWxsIHRoZSBOZXQtU05NUCBtZW1vcnkgYWxsb2NhdGlvbgogICBmdW5jdGlvbnMgZXhwbGljaXRseSBvciByZWRlZmluZSBtYWxsb2MoKSBldGMuIHlvdXJzZWxmLgoKMjAxMC0wMy0yOCAxMjo0NiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXhlZCBhIHJlY2VudGx5IHJlaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wMy0yNyAxODo0MiAgYnZhc3NjaGUKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGNoZWNrIGZvciBpbnZvY2F0aW9uIG9mIGNhbGxvYygpIGZyb20gWFNVQnMuCgoyMDEwLTAzLTI2IDE5OjE2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvT0lEL09JRC54cywgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MzY4IGFuZCByMTgzNjk6IG1hZGUgc3VyZSB0aGF0IHRoZSBOZXQtU05NUCBQZXJsCiAgIGV4dGVuc2lvbnMgY29tcGlsZSB3aXRob3V0IHRyaWdnZXJpbmcgcHJlcHJvY2Vzc29yIHdhcm5pbmdzIGFib3V0CiAgIHJlZGVmaW5pbmcgbWFsbG9jIGV0Yy4gbm9yIHRyaWdnZXIgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3JzIG9uCiAgIFdpbmRvd3MuCgoyMDEwLTAzLTI2IDE0OjQ0ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBSZWZhY3RvcmluZzogaW50cm9kdWNlZCBhIG5ldyBmdW5jdGlvbjoKICAgbmV0c25tcF9zZXRfbm9uX2Jsb2NraW5nX21vZGUoKS4KCjIwMTAtMDMtMjYgMTE6NTggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgCiAgICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAogICAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgdXNpbmcgdmFyaWFibGVzIG9mIHR5cGUgY2hhciBhcyBhbgogICBhcnJheSBzdWJzY3JpcHQuIE5vdGU6IGFzIGZhciBhcyBJIGtub3cgdGhlc2Ugd2FybmluZ3MgYXJlIG9ubHkKICAgcmVwb3J0ZWQgd2hlbiB1c2luZyB0aGUgQ3lnd2luIGdsaWJjIGhlYWRlcnMuCgoyMDEwLTAzLTI2IDEwOjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBBZGRlZCBtaXNzaW5nICNpbmNsdWRlIGRpcmVjdGl2ZSAob24gV2luZG93cyBNU1ZDIHdhcyBjb21wbGFpbmluZwogICBhYm91dCBzaXplX3Qgd2hpbGUgcHJvY2Vzc2luZyA8bmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaD4pLgoKMjAxMC0wMy0yNSAyMDowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIENIQU5HRVM6IGFnZW50eDogY2hhbmdlZCBkZWZhdWx0IFRDUCB0YXJnZXQgZnJvbSAwLjAuMC4wOjcwNSB0bwogICBsb2NhbGhvc3Q6NzA1LiBUaGlzIGlzIG5vdCBvbmx5IGEgbW9yZSBzZWN1cmUgY2hvaWNlIGJ1dCBpdCBhbHNvCiAgIG1ha2VzIGl0IHBvc3NpYmxlIG9uIFdpbmRvd3Mgc3lzdGVtcyB0byBsZXQgYW4gQWdlbnRYIHN1YmFnZW50CiAgIGNvbm5lY3QgdG8gYW4gQWdlbnRYIG1hc3RlciBhZ2VudCBydW5uaW5nIG9uIHRoZSBzYW1lIHN5c3RlbQogICB3aXRob3V0IGhhdmluZyB0byBzZXQgdGhlIHZhcmlhYmxlIE5FVFNOTVBfRFNfQUdFTlRfWF9TT0NLRVQuCgoyMDEwLTAzLTI1IDE2OjExICBidmFzc2NoZQoKICAgKiAgcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogV2luMzI6IHBlcmw6IGZpeGVkIHNldmVyYWwgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3JzLgogICBOb3RlOiBzaW5jZSBjYWxsb2MoKSBpcyBub3QgcmVkZWZpbmVkIGluIDxDT1JFL1hTVUIuaD4gdXNpbmcKICAgY2FsbG9jKCkgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBsZWFkcyB0byAiRnJlZSB0byB3cm9uZyBwb29sIgogICBlcnJvcnMsIGF0IGxlYXN0IG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI1IDE2OjA0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIG1vcmUgc2lsZW50IGJ5IG5vdAogICByZWRlZmluaW5nIG1hbGxvYygpIG9yIGZyZWUoKSBkdXJpbmcgY29tcGlsYXRpb24gb2YgUGVybAogICBleHRlbnNpb25zIChyZXN1bHRlZCBpbiB3YXJuaW5ncyBhYm91dCBtYWxsb2MoKSAvIGZyZWUoKQogICByZWRlZmluaXRpb24gaW4gdGhlIFBlcmwgaGVhZGVyIENPUkUvWFNVQi5oKS4KCjIwMTAtMDMtMjUgMTU6MDYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogQlVHOiAyOTY5ODcyOiBtYWRlIHN1cmUgdGhhdCBTT0NLX1NUQVJUVVAgaXMgaW52b2tlZAogICBiZWZvcmUgaW5pdF9hZ2VudCgpIG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI1IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgVXNlIG1hY3JvcyBpbnN0ZWFkIG9mIG1hZ2ljIG51bWJlcnMgYXMgbmV0c25tcF9wYXJzZV9hcmdzIHJldHVybgogICBjb2Rlcy4KCjIwMTAtMDMtMjUgMTM6MzAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCB0aGUgYnVpbGQgcHJvY2VzcyBieQogICByZW1vdmluZyB0aGUgZmlsZSB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbi4gV2hpY2ggSVB2NgogICBmdW5jdGlvbnMgYXJlIGV4cG9ydGVkIGZyb20gbmV0c25tcC5kbGwgaXMgbm93IGRldGVybWluZWQgYnkKICAgd2hpY2ggb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIERMTCBoYXZlIGJlZW4gZGVjbGFyZWQgYXMKICAgTkVUU05NUF9JTVBPUlQuCgoyMDEwLTAzLTI0IDIwOjExICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGRvbid0IHVzZSBwYXNzZWQgcHRyIGFzIHRlbXAgdmFyOyB1c2Ugc25tcF9lbnVtX2xpc3RzIGluIGluaXQKICAgdGVzdAoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBhZGQgTkVUU05NUF9EU19MSUJfQ0VSVF9FWFRSQV9TVUJESVIKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY2VydCBpbml0IGVhcmxpZXIgKGhhdmUgdGxzX2Jvb3RzdHJhcCBjYWxsIGl0KQoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nczsgYWRkIGNlcnQgZGVidWcgbXNncyBpbiBzZXJ2ZXIgc2V0dXA7IGZyZWUKICAgc3NsIGxvZyBkYXRhCgoyMDEwLTAzLTI0IDEwOjQ3ICBqc2FmcmFuZWsKCiAgICogIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ0hBTkdFUzogYXBwczogcmV0dXJuIG5vemVybyBleGl0IGNvZGUgd2hlbiBwYXJzaW5nIG9mIGNlcnRhaW4KICAgcGFyYW1ldGVyIGZhaWxzLgogICBFLmcuICctQScgcGFyYW1ldGVyIHdpdGggdG9vIHNob3J0IHBhc3NwaHJhc2Ugb3IgS3Uga2V5CiAgIGdlbmVyYXRpb24gaW4gZ2VuZXJhbC4KCjIwMTAtMDMtMjQgMDc6MTEgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgQ29ycmVjdCB0aGUgdHlwZSBvZiB0aGUgaWQvZGVzY3JpcHRpb24gb2YgdGhlIE9wZW4tUERVLgoKMjAxMC0wMy0yMiAxODoyOSAgYnZhc3NjaGUKCiAgICogTWFrZWZpbGUuaW46CgogICBVcGRhdGVzIGZvciAibWFrZSBjaGVja3MiOgogICAtIE1hZGUgc3VyZSB0aGF0IGV4aXQgY29kZSAwIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBjaGVjayBpcwogICBzdWNjZXNzZnVsIGFuZCB0aGF0CiAgIGV4aXQgY29kZSAxIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBjaGVjayBmYWlsZWQuCiAgIC0gTWFkZSAibWFrZWZpbGVjaGVjayIgc2tpcCBTdWJ2ZXJzaW9uIGJvb2trZWVwaW5nIGZpbGVzIGFuZCBhbHNvCiAgIHRoZSBtYWtlZmlsZQogICB0aGF0IGNvbnRhaW5zICJtYWtlZmlsZWNoZWNrIi4KCjIwMTAtMDMtMjIgMTY6MTAgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtUEFTUy1NSUIudHh0OgoKICAgRml4IHR5cG8gaW4gZGVmYXVsdCBJcEFkZHJlc3MgdmFsdWUKICAgKFNlZSBCdWcgIzI5NzIxNDEpCgoyMDEwLTAzLTIyIDE1OjQ0ICByc3RvcnkKCiAgICogIE1ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2NhbGxiYWNrLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBjaGFuZ2UgYWxsIGFzc2VydCgpIHRvIG5ldHNubXBfYXNzZXJ0KCk7IGFkZCBhc3NlcnRjaGVjayB0byB0b3AKICAgbGV2ZWwgbWFrZWZpbGUKCjIwMTAtMDMtMjIgMTU6MjQgIGJ2YXNzY2hlCgogICAqIG1pYnMvVUNELURJU0tJTy1NSUIudHh0OgoKICAgRm9sbG93LXVwIGZvciByMTgzNDk6IGFkZGVkIG1pc3NpbmcgY29tbWEgc3VjaCB0aGF0IGl0IGlzIGFnYWluCiAgIHBvc3NpYmxlIHRvIGNvbXBpbGUgVUNELURJU0tJTy1NSUIuCgoyMDEwLTAzLTIyIDE0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRml4IGJ1aWxkIHdoZW4gTUlCIGxvYWRpbmcgaXMgZGlzYWJsZWQgKGJyb2tlbiBieSBTVk4gcmV2aXNpb24KICAgMTgzNDEpCiAgIFJlcG9ydCBkZWZhdWx0IE1JQiBwYXRoIGZvciBjbGllbnQgYXBwcyB0b28uCgoyMDEwLTAzLTIyIDEzOjU5ICBkdHMxMgoKICAgKiAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9lcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIG1hbi9zbm1wX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsIG1hbi9zbm1wX3NlbmQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgbWFuL3NubXBfdGltZW91dC4zOgoKICAgQ0hBTkdFUzogbWFuOiBCVUc6IDI5NzI4NjA6IFVwZGF0ZSBicm9rZW4gcmVmZXJlbmNlcwoKMjAxMC0wMy0yMiAxMzo0OSAgZHRzMTIKCiAgICogIG1pYnMvVUNELURJU0tJTy1NSUIudHh0LCBtaWJzL1VDRC1ETE1PRC1NSUIudHh0LCAgIAogICAgICBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0LCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBDSEFOR0VTOiBtaWJzOiBCVUc6IDI5NzM4OTA6IEZpeCBpbXBvcnRzLCBEaXNrSU9FbnRyeSBsaXN0IGFuZAogICByZXZpc2lvbiBoaXN0b3JpZXMKCjIwMTAtMDMtMjIgMTE6NTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFdpbjMyLCB3aW5FeHRETEw6IHNvbHZlZCB0aGUgbXlzdGVyeSBvZiAiQVNOIHR5cGUgemVybyIuIFRoZQogICB3aW5FeHRETEwgY29kZSBkb2VzIG5vdyBubyBsb25nZXIgdHJpZ2dlciBjb252ZXJzaW9ucyBvZiBXaW5kb3dzCiAgIEFTTiB2YXJiaW5kcyB3aXRoIEFTTiB0eXBlIHplcm8uIE5vdGU6IHRoaXMgY29kZSBjaGFuZ2UgZG9lcyBub3QKICAgY2hhbmdlIHRoZSBhZ2VudCBiZWhhdmlvci4KCjIwMTAtMDMtMjAgMjA6MjEgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oOgoKICAgQnVpbGRzIGFnYWluIHdpdGggTVNWQy4KCjIwMTAtMDMtMjAgMjA6MjAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEFkZGVkIGEgdHJhaWxpbmcgYmFja3NsYXNoIChzaG91bGQgaGF2ZSBiZWVuIGFkZGVkIGluIHRoZQogICBwcmV2aW91cyBjb21taXQpLgoKMjAxMC0wMy0yMCAxOTozNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIAogICAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmMsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mCiAgIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2gKICAgdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuCiAgIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgogICBDSEFOR0VTOiBXaW4zMjogY2hhbmdlZCBpbl9hZGRyX3QgZnJvbSB1X2ludCB0byB1X2xvbmcgc3VjaCB0aGF0CiAgIGl0IG1hdGNoZXMgdGhlIGRhdGF0eXBlIG9mIHNvY2thZGRyX2luOjpzaW5fYWRkci4KICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKgogICBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgoKMjAxMC0wMy0yMCAxOToxNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCB0aGUgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgZ2NjIChNaW5HVykuCgoyMDEwLTAzLTIwIDE5OjA1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHNpZ3Byb2NtYXNrLgoKMjAxMC0wMy0yMCAwOToxNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBSZWZhY3RvcmluZzogbW92ZWQgZHVwbGljYXRlZCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24uCgoyMDEwLTAzLTE5IDIyOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwb3J0IE1JQiBhbmQgY29uZmlnIGRpcmVjdG9yaWVzIHNlYXJjaCBwYXRocyBvbiBlcnJvcnMKICAgKGFuZCBpbiB0aGUgaGVscCBtZXNzYWdlKQoKMjAxMC0wMy0xOSAxMzoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBtYWRlIHRoZSBlcnJvciBtZXNzYWdlIHRoYXQgaXMgbG9nZ2VkIHdoZW4KICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBpcyBhdHRlbXB0ZWQgbW9yZSBkZXRhaWxlZC4KICAgCiAgIEFuIGV4YW1wbGU6CiAgIChiZWZvcmUpCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKG1pYklJL3NubXAsCiAgIEM6XFdJTkRPV1NcU3lzdGVtMzJcc25tcG1pYi5kbGwpCiAgIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxlZC4KICAgKGFmdGVyKQogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uOiBNSUIgbW9kdWxlcyBtaWJJSS9zbm1wIGFuZAogICBDOlxXSU5ET1dTXFN5c3RlbTMyXHNubXBtaWIuZGxsIChvaWQgLjEuMy42LjEuMi4xLjExKS4KICAgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbGVkLgoKMjAxMC0wMy0xOSAxMjo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtdWx0aXBsZSB2YXJiaW5kIHNldCByZXF1ZXN0cyBhcmUgbm93CiAgIHByb2Nlc3NlZCBjb3JyZWN0bHkuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IG1hZGUgZXJyb3IgY29kZXMgaW4gU05NUCByZXNwb25zZSBQRFVzCiAgIGFzIFJGQy1jb21wbGlhbnQgYXMgcG9zc2libGUuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGlmIGxvYWRpbmcgYW4gZXh0ZW5zaW9uIERMTCBmYWlscywgdGhlCiAgIHJlYXNvbiB3aHkgbG9hZGluZyBmYWlsZWQgaXMgbm93IGxvZ2dlZC4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZml4ZWQgYSBtZW1vcnkgbGVhayB0aGF0IG9jY3VycmVkIHdoZW4KICAgU25tcEV4dGVuc2lvblF1ZXJ5KEV4KSBmYWlsZWQuIFRoaXMgbWVtb3J5IGxlYWsgaGFzIGJlZW4gZm91bmQKICAgdmlhIHNvdXJjZSByZWFkaW5nLiBOb3RlOiBpdCBpcyBub3QgY2xlYXIgd2hldGhlciBpdCB3YXMgcG9zc2libGUKICAgdG8gdHJpZ2dlciB0aGlzIG1lbW9yeSBsZWFrLiBUaGlzIGxlYWsgaXMgY2VydGFpbmx5IG5vdCB0cmlnZ2VyZWQKICAgYnkgZXZlcnkgcmVxdWVzdCBmb3Igd2hpY2ggYSByZXNwb25zZSB3aXRoIG5vbi16ZXJvIGVycm9yIHN0YXR1cwogICBpcyBzZW50IGJhY2suCgoyMDEwLTAzLTE4IDE2OjI5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBrZWVwIGNvdW50IG9mIGVuYWJsZWQgbG9nczsgdXNlIHRoaXMgY291bnQgdG8gZGV0ZXJtaW5lIHdoZW4gdG8KICAgbG9nIHRvIHN0ZGVycgoKMjAxMC0wMy0xOCAxNjoyOCAgcnN0b3J5CgogICAqICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBzbm1wIHRva2VuIGxvZ09wdGlvbiBhbGxvd3Mgc3BlY2lmeWluZyBsb2cKICAgZGVzdGluYXRpb25zIHZpIGNvbmYgZmlsZXMKICAgLSBpZiBzdGRlcnIgbG9nIGVuYWJsZWQgYmVjYXVzZSBvZiBubyBsb2cgZGVzdGluYXRpb24sIHR1cm4gaXQKICAgb2ZmIHdoZW4gYQogICBsb2cgZGVzdGluYXRpb24gaXMgZW5hYmxlZAogICAtIGRvbid0IGNhbGwgbmV0c25tcF9lbmFibGVfc3RkZXJybG9nKCkgZnJvbSBhcHBzIGFueW1vcmUKCjIwMTAtMDMtMTggMTU6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIHVkcCB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgdHdlYWtzCiAgIC0gbW92ZSBiYXNpYyB1ZHAgcmVjdmZyb20vc2VuZHRvIGNvZGUgZnJvbSBVRFBEb21haW4gdG8KICAgVURQQmFzZURvbWFpbgogICAtIHR3ZWFrIHVwZCByZWN2ZnJvbS9zZW5kdG8gdG8gY2FsbCB1ZHBiYXNlIHZlcnN0aW9uCiAgIC0gdHdlYWsgdWRwaXB2NCByZWN2ZnJvbS9zZW5kdG8gdG8gY2FsbCB1ZHBiYXNlIHZlcnNpb24KICAgLSBhbHNvIGZpeGVkIG5ldHNubXBfaXB2NF8qIC0+IG5ldHNubXBfdWRwaXB2NF8qCiAgIC0gdHdlYWsgRFRMU1VEUERvbWFpbiBvdCB1c2UgdWRwYmFzZV8qIGluc3RlYWQgb2YgdWRwXyoKCjIwMTAtMDMtMTggMTU6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3RlY3QgY2VydCBoZWFkZXIgYW5kIGluaXQgY2FsbCB3aXRoIGlmZGVmcwoKMjAxMC0wMy0xNyAxOTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICB1c2UgbmV3IHV0aWxpdHkgcm91dGluZSBmb3IgY2VydCBuYW1lcwoKMjAxMC0wMy0xNyAxOTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIHNubXBfb3BlbnNzbCBoZWFkZXIgYWZ0ZXIgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYWRkIHJvdXRpbmVzIHRvIHB1bGwvZHVtcCBuYW1lcyBmcm9tIFg1MDkgY2VydHMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdXNlIGVudW0gbGlzdHMgdG8gbWFuYWdlIGRpcmVjdG9yeSBpbmRleGVzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGluaXRpYWxpemUgc3RhdGljIHN0b3JhZ2UgYmVmb3JlIHVzZTsgcHJvdGVjdCBlbnVtIGluaXQgZnJvbQogICBtdWx0aXBsZSBjYWxscwoKMjAxMC0wMy0xNyAxODo1NCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIGluZm8gYWJvdXQgbmV3IHRzbS90bHMgbWlicwoKMjAxMC0wMy0xNyAxODo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjZXJ0IGluaXQgdG8gc25tcCBpbml0CgoyMDEwLTAzLTE3IDEzOjM3ICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBVcGRhdGVkIE1JQiByZXZpc2lvbiBoaXN0b3J5LgoKMjAxMC0wMy0xNyAxMzoyOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIG9uZSBsZWFrLWF0LWV4aXQuCgoyMDEwLTAzLTE3IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IEJVRzogMjk3MTI1NzogRml4ZWQgd2luRXh0RExMIGhhbmRsaW5nIG9mIG11bHRpLXZhcmJpbmQKICAgZ2V0TmV4dCByZXF1ZXN0cyB3aXRoIE9JRHMgaW4gcmV2ZXJzZSBsZXhpY29ncmFwaGljYWwgb3JkZXIuCgoyMDEwLTAzLTE3IDEwOjI1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE1vcmUgd2luRXh0RExMIGRlYnVnIG91dHB1dCB0dW5pbmcuCgoyMDEwLTAzLTE2IDE5OjMxICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBDb21waWxlcyBub3cgd2l0aCBNSUIgY29tcGlsZXJzIHRoYXQgZG8gbm90IHJlY29nbml6ZSBhIGRvdWJsZQogICBkYXNoIGFzIHRoZSBlbmQgb2YgYSBNSUIgY29tbWVudC4KCjIwMTAtMDMtMTYgMTk6MjcgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXhlZCB0d28gc3ludGF4IGVycm9ycy4KCjIwMTAtMDMtMTYgMTk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZml4ZWQgYSBidWcgaW4gZ2V0TmV4dCBoYW5kbGluZyB0aGF0CiAgIGNvdWxkIGNhdXNlIHRoZSBNSUIgb3V0cHV0IHRvIGJlIHRydW5jYXRlZC4KCjIwMTAtMDMtMTYgMTg6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgTWFkZSB3aW5FeHRETEwgZGVidWcgb3V0cHV0IG1vcmUgZGV0YWlsZWQuCgoyMDEwLTAzLTE2IDE1OjI0ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oOgoKICAgTWFkZSBzdXJlIHRoYXQgQysrIHByb2dyYW1zIHRoYXQgaW5jbHVkZSBOZXQtU05NUCBoZWFkZXIgZmlsZXMKICAgY29tcGlsZSBhZ2Fpbi4KCjIwMTAtMDMtMTUgMDc6MjAgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIC0tZGlzYWJsZS1kZXByZWNhdGVkIGFnYWluLgoKMjAxMC0wMy0xNSAwNzoxOSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBEaXNhYmxlIGFsbCB0aGUgcHJpbnRpbmcgaWYgZGVidWcgb3V0cHV0IGlzIG9mZi4KCjIwMTAtMDMtMTUgMDA6MTcgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIHJlZ2FyZGluZyBwcmludGYgZm9ybWF0CgoyMDEwLTAzLTE1IDAwOjA3ICB0YW5kZXJzCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIHJlZ2FyZGluZyBwcmludGYgZm9ybWF0CgoyMDEwLTAzLTE0IDIxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBtYWtlIHN1cmUgaGVhZGVyIGlmZGVmIG5hbWUgaXMgdW5pcXVlCgoyMDEwLTAzLTE0IDIxOjA0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIGFkZCBtaXNzaW5nIGluaXQvc2h1dGRvd24gcHJvdG90eXBlcyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDMtMTQgMjE6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgbW92ZSBkZWJ1ZyBtZXNzYWdlIGVhcmxpZXIKCjIwMTAtMDMtMTQgMjE6MDIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldHNubXBfaW5pdF9jb250YWluZXI7IGZpeCBjb21wbGVyIHdhcm5pbmcKCjIwMTAtMDMtMTQgMjA6NTEgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ29ycmVjdCBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4gYW5kIG5ldHNubXBfYXNzZXJ0X29yX21zZ3JldHVybgogICBmb3IgdGhlIE5FVFNOTVBfTk9fREVCVUdHSU5HIGNhc2UKCjIwMTAtMDMtMTQgMTk6MTAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW5hbWUgY2VydCBpbml0L3NodXRkb3duIGZ1bmNzOyBvbmx5IGNvbXBpbGUgY2VydF91dGlscyBpZgogICB1c2luZy9oYXZlIFNTTDsgaW5pdCBjZXJ0cyBmcm9tIHRscyBiYXNlCgoyMDEwLTAzLTE0IDE5OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNhbGwgbmV0c25tcF9pbml0X29wZW5zc2wgaW5zdGVhZCBvZiBuZXRzbm1wX2luaXRfdGxzYmFzZQoKMjAxMC0wMy0xNCAxOTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIG9iamVjdHMgaW4gdmVyc2lvbiAwOCBvZiB0aGUgZHRscyBkcmFmdAoKMjAxMC0wMy0xNCAxOTowOCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIsIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYiwgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgaW1wb3J0IGluaXRpYWwgY29kZSBmb3IgZHRscyBtaWJzCgoyMDEwLTAzLTE0IDE5OjA4ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgVExTVE0tTUlCIGZyb20gZHJhZnQtaWV0Zi1pc21zLWR0bHMtdG0tMDkudHh0CgoyMDEwLTAzLTE0IDE3OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXhlZCBhIGZldyBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xNCAxNDoxMCAgYnZhc3NjaGUKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICBGb2xsb3ctdXAgZm9yIHIxNzM4NDogY2hhbmdlZCBORVRTTk1QX0RTX01BWF9TVUJJRFMgZnJvbSA0MCB0bwogICA0OC4KCjIwMTAtMDMtMTQgMTM6NTMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ2hhbmdlczoKICAgLSBSZW1vdmVkIC1Xbm8tY2hhci1zdWJzY3JpcHRzIGZyb20gREVWRkxBR1MuIFVzaW5nIGEgdmFyaWFibGUgb3IKICAgZXhwcmVzc2lvbiBvZgogICB0eXBlIGNoYXIgYXMgYW4gYXJyYXkgaW5kZXggaXMgYWxtb3N0IGFsd2F5cyBhbiBlcnJvci4KICAgRnVydGhlcm1vcmUsCiAgIC1XY2hhci1zdWJzY3JpcHQgZG9lcyBub3QgdHJpZ2dlciBhbnkgd2FybmluZ3Mgb24gdGhlIE5ldC1TTk1QCiAgIGNvZGUgYmFzZS4KICAgLSBSZW1vdmVkIC1XaW5saW5lIGZyb20gREVWRkxBR1MuIE5vdCBvbmx5IHdhcyBub2JvZHkgcGF5aW5nCiAgIGF0dGVudGlvbiB0byB0aGUKICAgbWVzc2FnZXMgdHJpZ2dlcmVkIGJ5IC1XaW5saW5lLCBidXQgcmVjZW50IHZlcnNpb25zIG9mIHRoZSBnY2MKICAgY29tcGlsZXIgYXJlCiAgIGJldHRlciB0aGFuIGh1bWFucyBhdCBkZWNpZGluZyB3aGljaCBmdW5jdGlvbnMgc2hvdWxkIGJlIGlubGluZWQKICAgYW5kIHdoaWNoCiAgIG9uZXMgbm90LgoKMjAxMC0wMy0xNCAxMzozOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlcmFuIGF1dG9yZWNvbmYuCgoyMDEwLTAzLTE0IDEzOjM5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTE0IDEzOjM2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFJlbW92ZWQgdGhlICcweCcgcHJlZml4IGFnYWluIGZyb20gYSBkZWJ1ZyBzdGF0ZW1lbnQgdGhhdCB3YXMKICAgaW50cm9kdWNlZCBpbiByMTgyODIuCgoyMDEwLTAzLTEzIDE5OjA3ICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vQVNOLnhzLCBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvVHJhcFJlY2VpdmVyL3BwcG9ydC5oLCAgIAogICAgICBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZQogICBwZXJsIHN1YmRpcmVjdG9yeS4KICAgTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLgoKMjAxMC0wMy0xMyAwOTo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xMyAwMToxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5lIHRoZSBUTFNUQ1AgRE9NQUlOCgoyMDEwLTAzLTEzIDAxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggaWZkZWYgdHlwbwoKMjAxMC0wMy0xMiAyMDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hhbmdlIGRlYnVnZ2luZyBzeW1ib2wgbmFtZXMgdG8gYSBnZW5lcmljIHRscyBzdHJpbmcKCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgaW5pdGlhbCB3b3JraW5nIFNOTVAgb3ZlciBUTFMgb3ZlciBUQ1AgY29ubmVjdGlvbgoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcHJpbnQgYSBtb3JlIGNvbXBsZXRlIE9wZW5TU0wgc3RhY2sKCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IGFzc2VydCBzdGF0ZW1lbnRzCgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIGFkZGVkIGFuIGFjY2VwdGVkX2JpbyBwb2ludGVyIGZvciB0aGUgYmlvIGFmdGVyIFNTTF9hY2NlcHQKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFkZCB0aGUgYWJpbGl0eSBmb3IgZl9jb3B5IGFuZCBmX2NvbmZpZwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBtaXNzaW5nIDsKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkIGEgZl9jb3B5IHBvaW50ZXIKCjIwMTAtMDMtMTIgMjA6MjAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgcmV0dXJuIGludCBub3QgaW50ICogb24gZXJyb3IKCjIwMTAtMDMtMTIgMjA6MjAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkZWQgYSBmX2NvbmZpZyBmdW5jdGlvbiBmb3IgdHJhbnNwb3J0cwoKMjAxMC0wMy0xMiAxMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXB0YWJsZTogUEFUQ0g6IDI4NTAwNjc6IFN1cHByZXNzIGV4dHJhbmVvdXMgImluZGV4IgogICBoZWFkZXIgdG9rZW4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgRGFuIE5lbHNvbgoKMjAxMC0wMy0xMiAxMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZgogICBnZXR1bG9uZ2Zyb21zeXNjbGFzc25ldHN0YXRpc3RpY3MoKQoKMjAxMC0wMy0xMSAxNjo1MiAgZHRzMTIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBEb2N1bWVudCB0aGUgZm9ybWF0IG9mIHRoZSAtZS8tRSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCjIwMTAtMDMtMTEgMTY6NDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChhYmFuZG9uZWQpICdkYXRhc2V0MicgaGVscGVyLgoKMjAxMC0wMy0xMSAxNTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIERvbid0IGluaXRpYWxpc2UgdGhlIFRMUyB0cmFuc3BvcnQgdW5sZXNzIGl0J3MgYWN0dWFsbHkgYmVlbgogICBjb25maWd1cmVkIGluLgoKMjAxMC0wMy0xMSAxNTo0NyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIHVzZSBTTk1QX1RNUERJUiBpbnN0ZWFkIG9mIFRNUERJUgoKMjAxMC0wMy0xMSAxNTozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcXVlcnkgcmlnaHQgYm9vbCAodHNtIHByZWZpeCBpcyBsaWIgYm9vbCwgbm90IGFwcCkKCjIwMTAtMDMtMTEgMTU6MDggIGR0czEyCgogICAqICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTUyMDM0OiBSZXR1cm4gb2YgdGhlIEdyZWF0IFN1U0UgJ3NwcmludGYnCiAgIEh1bnQuLi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDE0OjU1ICBkdHMxMgoKICAgKiBsb2NhbC90cmFwdG9lbWFpbDoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTM3OTk2OiBBZGQgRGF0ZTogaGVhZGVyIHRvIGVtYWlsIHNlbmQgYnkKICAgdHJhcHRvZW1haWwKCjIwMTAtMDMtMTEgMTQ6NTAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5Njc0MDA6IFJldHJpZXZlIGVycm9yIGNvdW50ZXJzIGZvciB0aGUKICAgRXRoZXJMaWtlLU1JQgogICBQYXRjaCBzdXBwbGllZCBieSBKb3NlZiBNb2VsbGVycy4KCjIwMTAtMDMtMTEgMTQ6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk2ODY0MjogQ2F0Y2ggb3ZlcmZsb3cgb2YgcGFzcy10aHJvdWdoCiAgIGNvbW1hbmQgYnVmZmVyLgogICBQYXRjaCBmcm9tIEFuZHJlYXMgSmFlZ2VyL0xlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMjozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTY2NTc6IEhhbmRsZSBvdmVyLWxlbmd0aCBBZ2VudFggT0lEcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUm9iIFdlc3QKCjIwMTAtMDMtMTEgMTI6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2NvbW1vbi5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIGRlYnVnIHBhcmFtZXRlci4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDEyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYzoKCiAgIFByb3ZpZGUgbWlzc2luZyAoZHVtbXkpIHJldHVybiB2YWx1ZSwgdG8gc3VwcHJlc3MgY29tcGlsZXIKICAgd2FybmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDEyOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBTdXBwcmVzcyB3YXJuaW5ncyBvZiBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cuCiAgIFRoaXMgZG9lc24ndCBfYWN0dWFsbHlfIHByb3RlY3QgYWdhaW5zdCBzdWNoIGFuIG92ZXJmbG93LAogICBzaW5jZSB0aGUgdGFyZ2V0IGJ1ZmZlciBpcyBub24tZW1wdHksIHNvIHN0cm5jYXQgY2FuJ3QKICAgdXNlIGl0IGFsbCBhbnl3YXkuIEJ1dCB0aGlzIHNob3VsZCBhdCBsZWFzdCBtaXNsZWFkIHRoZQogICBjb21waWxlciBzdWZmaWNpZW50bHkgdG8gc2h1dCBpdCB1cCEKICAgCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMTo1NyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBSZXBsYWNlIGJhY2txdW90ZSB3aXRoIHNpbmdsZSBxdW90ZSBpbiBjb25maWd1cmUgb3V0cHV0IG1lc3NhZ2UuCiAgIFdoaWxlIHRoaXMgY2hhbmdlIGlzIHByb2JhYmx5IG5vdCBzdHJpY3RseSBuZWNlc3NhcnksIGl0IGZlZWxzCiAgIHNlbnNpYmxlIHRvIGF2b2lkIHRoaXMgcGFydGljdWxhciB1c2Ugb2YgYmFja3F1b3RlcywgSnVzdCBJbgogICBDYXNlLgogICBTZWUgZGlzY3Vzc2lvbiBpbiBQYXRjaCAjMjk1MjE2OQoKMjAxMC0wMy0xMSAxMTo0MyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIOiAyOTUyMTQwOiBPdmVyZmxvdyBjb3VudGVyMzIgYW5kIGdhdWdlMzIKICAgb24gNjRiaXQgc3lzdGVtcyBjb3JyZWN0bHkKICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDExOjM2ICBkdHMxMgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDI5NTIwMjA6IEV4cGxpY2l0bHkgc2V0IHBlcm1pc3Npb24gb24KICAgdGVtcG9yYXJ5IHRlc3Rpbmcgb3V0cHV0IGRpcmVjdG9yaWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8uCgoyMDEwLTAzLTExIDExOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1MDg0NTogRml4IGlmSGlnaFNwZWVkIGNhbGN1bGF0aW9uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAwODoyNiAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL0FTTi54cywgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvT0lEL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL09JRC9PSUQueHMsIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIE1hZGUgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgbW9kdWxlIE5ldFNOTVAucG0gb24gV2luZG93cyBtb3JlCiAgIHNpbGVudDogYWRkZWQgY29tcGlsZXIgZmxhZ3MgLURfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwogICAtRF9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyBhbmQgbWFkZSBzdXJlIHRoYXQgI2luY2x1ZGUKICAgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBvY2N1cnMgYmVmb3JlIGFueSBvdGhlciBpbmNsdWRlIGZpbGUKICAgdGhhdCBkZWZpbmVzIF9XSU4zMl9XSU5OVC4KCjIwMTAtMDMtMTAgMjM6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgTkVXUzogc25tcGxpYjogY3JlYXRlIGluZGV4ZXMgZm9yIGNlcnRpZmljYXRlcyBpbiBjb25maWcgcGF0aAoKMjAxMC0wMy0xMCAxODo0OCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jOgoKICAgQWRkZWQgIiNpbmNsdWRlIDx1bmlzdGQuaD4iIHN1Y2ggdGhhdCBvbiBVbml4IHN5c3RlbXMgdGhlCiAgIGNvbXBpbGVyIGRvZXMgbm90IHByaW50IGEgd2FybmluZyBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yCiAgIHRoZSBmdW5jdGlvbiBjbG9zZSgpLgoKMjAxMC0wMy0xMCAxODozMCAgcnN0b3J5CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAgICBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjYuZGV2CgoyMDEwLTAzLTEwIDE4OjI5ICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiB1cGRhdGUgVmVyc2lvbi1NdW5nZSBmb3IgcmVuYW1lZCBjb25maWd1cmUuYWMKCjIwMTAtMDMtMTAgMTg6MjkgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuYWM6CgogICBDSEFOR0VTOiBidWlsZGluZzogc2F2ZSBjb25maWd1cmUgY2FjaGUgZXZlcnkgb25jZSBpbiB3aGlsZQoKMjAxMC0wMy0xMCAxNjoxMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbjoKCiAgIFJlb3JkZXJlZCBzb21lIG9mIHRoZSBNYWtlZmlsZSBydWxlcyBpbiBvcmRlciB0byBtaW5pbWl6ZSB0aGUKICAgZGlmZnMgd2l0aCBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbi4KCjIwMTAtMDMtMTAgMTY6MTAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgV2luMzIsIGJhdGNoIGJ1aWxkaW5nOiBETEwgYnVpbGRzIGFnYWluLgoKMjAxMC0wMy0xMCAxNjowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZyBieSBhZGRpbmcgYSBmb3J3YXJkCiAgIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24gX2NhY2hlX2ZyZWUoKS4KCjIwMTAtMDMtMTAgMTY6MDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBCdWlsZHMgYWdhaW4gb24gV2luMzIuCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgYWRkIG1pc3NpbmcgY29udHJpYnV0b3JzCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IHBvdGVudGlhbCBkb3VibGUgZnJlZSBpbiBDT05UQUlORVJfRlJFRQogICAtIGFsc28gYWRkZWQgc2V2ZXJhbCBjb21wYXJlIHJvdXRpbmVzCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZnJlZWluZyBhIGNhY2hlLCBzdG9wIHRpbWVyIGFuZCBjYWxsIGNhY2hlCiAgIGZyZWUgZnVuYwogICAtIGFsc28gYWRkIG5ldHNubXBfY2FjaGVfcmVtb3ZlCgoyMDEwLTAzLTEwIDAzOjUyICByc3RvcnkKCiAgICogIFJFQURNRSwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVuZG8gY29tbWl0IDE4MjM0CgoyMDEwLTAzLTEwIDAzOjQxICByc3RvcnkKCiAgICogIFJFQURNRSwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIE1lcmdlIGJyYW5jaCAncHVsbG1lJyBvZiAuLi90cnVuay1zdGFnaW5nCgoyMDEwLTAzLTA5IDE3OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBleHBvcnRlZCBuZXRzbm1wX3JlYWRfbW9kdWxlKCkgZnJvbSBuZXRzbm1wLmRsbAogICBzdWNoIHRoYXQgTmV0U05NUC5wbSBidWlsZHMgYWdhaW4uCgoyMDEwLTAzLTA5IDE3OjQ3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBTaW1wbGlmaWVkIHR3byBtYWtlZmlsZXMgdXNlZCBieSBidWlsZC5iYXQgKFdpbjMyKS4KCjIwMTAtMDMtMDkgMTc6MjQgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBidWlsZGluZyBOZXRTTk1QLnBtIGRvZXMgbm8gbG9uZ2VyCiAgIHRyaWdnZXIgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgcmVkZWZpbmluZyBfV0lOMzJfV0lOTlQgbm9yCiAgIE5URERJX1ZFUlNJT04uCgoyMDEwLTAzLTA5IDE3OjIyICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgTmV0U05NUC5wbSBtb3JlIHNpbGVudCBieQogICBhZGRpbmcgdGhlIE1TVkMgY29tcGlsZXIgZmxhZ3MgLURfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwogICAtRF9DUlRfTk9OU1REQ19OT19XQVJOSU5HUy4KCjIwMTAtMDMtMDkgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICByZW1vdmUgZGVidWcgbXNnIHVzZWQgZHVyaW5nIGRlYnVnZ2luZwoKMjAxMC0wMy0wOSAxNzowMiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaW5pdGlhbCBjZXJ0IHdyYXBwZXIgLSB0ZXN0aW5nIHJlcG8gd3JpdGUgcHJpdnMKCjIwMTAtMDMtMDkgMTA6MjAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlZCBkdXBsaWNhdGUgYnVpbGQgcnVsZXMuIFRoZXNlIGR1cGxpY2F0ZSBydWxlcyB3ZXJlCiAgIGhhcm1sZXNzIGJ1dCB0cmlnZ2VyZWQgYSB3YXJuaW5nLgoKMjAxMC0wMy0wOSAwMjozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGRpcmVjdG9yeSBjb250YWluZXIgZW5oYW5jZW1lbnRzCiAgIC0gZml4IHBvdGVudGlhbCBtZW1vcnkgbGVhawogICAtIGFkZCBmaWx0ZXIgY2FsbGJhY2sgdG8gZmlsdGVyIGZpbGVzIHJldHVybmVkCiAgIC0gYWRkIG9wdGlvbiB0byByZXR1cm4gcmVsYXRpdmUgYW5kIG5vdCBmdWxsIHBhdGhzCiAgIC0gYWRkIG9wdGlvbiB0byBzb3J0IHJldHVybmVkIGxpc3QKICAgLSBhZGQgb3B0aW9uIHRvIHJldHVybiBlbXB0eSBjb250YWluZXIgaW5zdGVhZCBvZiBOVUxMIGlmIG5vCiAgIGZpbGVzIGZvdW5kCiAgIC0gY2hhbmdlIGRlZmF1bHQgY29udGFpbmVyIG5hbWUgdG8gZGlyZWN0b3J5IHRoYXQgd2FzIHNjYW5uZWQKICAgLSB0d2VhayBkZWJ1Zy9sb2cgbWVzc2FnZXMKCjIwMTAtMDMtMDggMjM6MDcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBDSEFOR0VTOiBzbm1wZDogZGVmaW5lIGFuZCB1c2UgbmV3IE5FVFNOTVBfTE9HT05DRSBtYWNybwoKMjAxMC0wMy0wOCAyMjo0NCAgcnN0b3J5CgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTkVXUzogc25tcGxpYjogY29uZiBmaWxlcyBjYW4gbm93IGluY2x1ZGUgb3RoZXIgY29uZiBmaWxlcwogICAtIGFsc28gdHdlYWtlZCBkZWJ1ZyB0b2tlbnMgaGVyZSBhbmQgdGhlcmUKCjIwMTAtMDMtMDggMjI6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggdHlwbyAoY2F1c2VkIGV4dGVybmFsIHJlZmVyZW5jZSB3aGVuIERUTFNVRFAgY29uZmlndXJlZAogICB3aXRob3V0IGR0bHN0Y3ApCgoyMDEwLTAzLTA2IDAyOjI3ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV0c25tcF9jb250YWluZXIgZW5oYW5jZW1lbnRzOgogICAtIGFkZCBmcmVlX2l0ZW0gZnVuY3Rpb247IGRlZmF1bHRzIHRvCiAgIG5ldHNubXBfY29udGFpbmVyX3NpbXBsZV9mcmVlCiAgIC0gYWRkIENPTlRBSU5FUl9GUkVFX0FMTCBtYWNyby9mdW5jdGlvbiAobGlrZSBDT05UQUlORVJfQ0xFQVIgYnV0CiAgIGNhbGxzIGNvbnRhaW5lciBmcmVlX2l0ZW0gZm9yIGVhY2ggaXRlbSBpbiBwcmltYXJ5IGNvbnRhaW5lcikKICAgLSBhZGQgYWJpbGl0eSB0byBzZXQgb3B0aW9ucyBvbiBiaW5hcnlfYXJyYXkgY29udGFpbmVycwoKMjAxMC0wMy0wMiAxNzo1NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbjoKCiAgIE1hZGUgc3VyZSB0aGF0IHdpbjMyL2J1aWxkLmJhdCB3b3JrcyBhZ2FpbiBieSBhZGRpbmcgbWlzc2luZwogICBzb3VyY2UgZmlsZSBuYW1lcy4gU29ydGVkIHNvdXJjZSBmaWxlIG5hbWVzIGFscGhhYmV0aWNhbGx5IHRvby4KCjIwMTAtMDMtMDIgMTY6NTQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTY3IChtZXJnZSBvZiBzbm1wZCBhbmQgc25tcGRzZGsgYW5kIGFsc28gb2YKICAgbmV0c25tcG1pYnMgYW5kIG5ldHNubXBtaWJzc2RrKTogdGhlIGJhdGNoIGZpbGUgd2luMzIvYnVpbGQuYmF0CiAgIHdvcmtzIGFnYWluIHdpdGggdGhlIFBsYXRmb3JtIFNESyBlbmFibGVkLgoKMjAxMC0wMy0wMiAxNjo1MiAgYnZhc3NjaGUKCiAgICogd2luMzIvTWFrZWZpbGUtYXBwcy5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MjE1IChyZXBsYWNlZCB0aGUgb2Jzb2xldGUgY2wuZXhlIG9wdGlvbiAvR1ggYnkKICAgdGhlIGVxdWl2YWxlbnQgL0VIc2M7IGFkZGVkIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIsIGFkZGVkCiAgIC9EICJfQ1JUX05PTlNURENfTk9fV0FSTklOR1MiIGFuZCByZW1vdmVkIC9GcC4uLiBhbmQgL1lYKS4KCjIwMTAtMDItMjggMTU6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgV2luMzI6IGZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCByZWRlZmluaXRpb24gb2YKICAgX1dJTjMyX1dJTk5UIGJ5IG1ha2luZyBzdXJlIHRoYXQgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBpcwogICBpbmNsdWRlZCBiZWZvcmUgPHdpbmRvd3MuaD4uCgoyMDEwLTAyLTI4IDE1OjI0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVwbGFjZWQgdGhlIG9ic29sZXRlIC9HWCBieSB0aGUKICAgZXF1aXZhbGVudCAvRUhzYy4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiBhZGRlZCAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiCiAgIC9EICJfQ1JUX05PTlNURENfTk9fV0FSTklOR1MiIHRvIG1ha2UgYnVpbGRpbmcgd2l0aCBNU1ZDIDIwMDgKICAgbW9yZSBzaWxlbnQuCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVtb3ZlZCAvRnAuLi4gYW5kIC9ZWC4gVGhlc2UKICAgb3B0aW9ucyBpbmZsdWVuY2UgaG93IHByZWNvbXBpbGVkIGhlYWRlciBmaWxlcyBhcmUgZ2VuZXJhdGVkLAogICB3aGljaCBhcmUgbm90IHVzZWQgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0LiAvWVggaXMgbm90CiAgIHN1cHBvcnRlZCBieSBNU1ZDIDIwMDguCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVtb3ZlZCBhIGR1cGxpY2F0ZSBvY2N1cnJlbmNlIG9mCiAgIHN0cnRvdWxsLm9iai4KCjIwMTAtMDItMjggMTQ6MTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvTWFrZWZpbGUuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE2NyAobWVyZ2Ugb2Ygc25tcGQgYW5kIHNubXBkc2RrIGFuZCBhbHNvIG9mCiAgIG5ldHNubXBtaWJzIGFuZCBuZXRzbm1wbWlic3Nkayk6IGFwcGxpZWQgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIHRvCiAgIHRoZSB3aW4zMi9Db25maWd1cmUgc2NyaXB0IGFuZCB3aW4zMi9NYWtlZmlsZS5pbi4KCjIwMTAtMDItMjcgMTM6MTEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2lucGlwZS5oLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgICAKICAgICAgc25tcGxpYi9nZXRvcHQuYywgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvdWxsLmMsICAgCiAgICAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi91Y2RfY29tcGF0LmMsIHNubXBsaWIvd2lucGlwZS5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogZGVjbGFyZWQgYWxsIGZ1bmN0aW9ucyB0aGF0IGFyZSBleHBvcnRlZCBmcm9tIHRoZQogICBOZXQtU05NUCBETEwgYXMgTkVUU05NUF9JTVBPUlQuIFRoZSByZXN1bHQgaXMgYSBtaW5vcgogICBvcHRpbWl6YXRpb246IGNvZGUgdGhhdCB1c2VzIHRoZSBOZXQtU05NUCBETEwgd2lsbCBub3cgY2FsbCB0aGUKICAgRExMLWV4cG9ydGVkIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnN0ZWFkIG9mIGluZGlyZWN0bHkgdmlhIHRoZQogICBzdHViIGluIHRoZSBpbXBvcnQgbGlicmFyeS4KCjIwMTAtMDItMjcgMTE6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFJlbW92ZWQgYSByZWR1bmRhbnQgc3RybmNhc2VjbXAoKSBkZWNsYXJhdGlvbi4KCjIwMTAtMDItMjcgMDk6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG9rX3IuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTAyLTI3IDA5OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxODE4OSAocnN0b3J5KTogYnVpbGRzIGFnYWluIG9uIFdpbmRvd3MuCgoyMDEwLTAyLTI1IDE3OjUzICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgIAogICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgIAogICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLnNsbiwgd2luMzIvd2luMzJkbGwuZHN3LCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICBSZXZlcnRlZCByMTgyMDcgKGRzcC9kc3cgdG8gdmNwcm9qL3NsbiBjb252ZXJzaW9uKSBleGNlcHQgdGhlCiAgIHN1cHByZXNzaW9uCiAgIGxpc3QgY2hhbmdlcy4gVGhlIGdvYWwgb2YgdGhpcyBjb252ZXJzaW9uIHdhcyB0d29mb2xkOiBub3Qgb25seQogICB0byBiZSBhYmxlCiAgIHRvIGxvYWQgdGhlIHByb2plY3QgZmlsZXMgaW4gTVNWQyAyMDAyIC0gMjAwOCBidXQgYWxzbyB0byBiZSBhYmxlCiAgIHRvIGNvbW1pdAogICBjaGFuZ2VzIG1hZGUgZnJvbSBpbnNpZGUgdGhlIE1TVkMgMjAwOCBJREUuIFVuZm9ydHVuYXRlbHkKICAgY29udmVydGluZyBkc3AvZHN3CiAgIGZpbGVzIHRvIHZjcHJvai9zbG4gZmlsZXMgd2l0aCBNU1ZDIDIwMDggbWFrZXMgaXQgaW1wb3NzaWJsZSB0bwogICBsb2FkIHRoZQogICB2Y3Byb2ovc2xuIGZpbGVzIHdpdGggZWFybGllciBNU1ZDIHZlcnNpb25zLiBXaHkgb24gZWFydGggZGlkCiAgIE1pY3Jvc29mdAogICBkZWNpZGUgdG8gcHV0IGEgdmVyc2lvbiBudW1iZXIgaW4gWE1MIGZpbGVzID8KCjIwMTAtMDItMjQgMTk6NDEgIGJ2YXNzY2hlCgogICAqICB3aW4zMiwgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgd2luMzIvbGliYWdlbnQsICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMudmNwcm9qLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgd2luMzIvbGlic25tcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCB3aW4zMi9uZXRzbm1wbWlicywgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIHdpbjMyL3NubXBidWxrZ2V0LCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgd2luMzIvc25tcGJ1bGt3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkLCAgIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgd2luMzIvc25tcGRlbHRhLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osCiAgICAgICAgIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCB3aW4zMi9zbm1wZ2V0LCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dCwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIHdpbjMyL3NubXBuZXRzdGF0LCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgd2luMzIvc25tcHNldCwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cywgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgd2luMzIvc25tcHRhYmxlLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB0ZXN0LCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgd2luMzIvc25tcHRyYXAsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgd2luMzIvc25tcHVzbSwgICAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHZhY20sIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCB3aW4zMi9zbm1wd2FsaywgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIuc2xuLCB3aW4zMi93aW4zMmRsbC5kc3csICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIChyZXZlcnRlZCkgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBjb252ZXJ0ZWQgLmRzcC8uZHN3IGZpbGVzIHRvCiAgIC52Y3Byb2ovLnNsbiBmaWxlcy4gVGhpcyBpbXBsaWVzIHRoYXQgc3VwcG9ydCBmb3IgTVNWQyA2LjAgaGFzCiAgIGJlZW4gZHJvcHBlZCBhbmQgdGhlIG1pbmltdW0gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gdmVyc2lvbgogICByZXF1aXJlZCB0byBidWlsZCB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgaXMgTWljcm9zb2Z0IFZpc3VhbAogICBTdHVkaW8gLk5FVCAoMjAwMikuCgoyMDEwLTAyLTIzIDE5OjAzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiB3aGVuIGdlbmVyYXRpbmcgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgc3lzdGVtCiAgIGxvY2F0aW9uIGFuZCBubyBkb21haW4gbmFtZSBpcyBmb3VuZCBpbiAvZXRjL3Jlc29sdi5jb25mLCB1c2UKICAgIkBuby53aGVyZSIgaW5zdGVhZCBvZiAiIi4KCjIwMTAtMDItMjMgMTg6NTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgbTQvYWNfcHJvbXB0X3VzZXIubTQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lcyBubwogICBsb25nZXIgaW52b2tlICJ0YWlsIC0xIiwgd2hpY2ggaXMgbm90IFBPU0lYLWNvbXBsaWFudC4KCjIwMTAtMDItMjMgMTg6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCB0ZXN0aW5nL3Rlc3RzL1QzNjBkdGxzdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzOTlhbGlhczoKCiAgIFJlbW92ZWQgYWxsIHRyYW5zcG9ydCB0ZXN0cyBzaW5jZSBpdCdzIGltcG9zc2libGUgdG8gZGV0ZXJtaW5lCiAgIHdoZXJlIHRoZXkgY2FuIHNhZmVseSBvcGVyYXRlICh3YXMgc3RvcHBpbmcgdGFuZGVycycgbmlnaHRseQogICB0ZXN0cyBmcm9tIHN1Y2NlZWRpbmcpCgoyMDEwLTAyLTIzIDE4OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZXJyb3IgYW5kIGRlYnVnZ2luZyBvdXRwdXQKCjIwMTAtMDItMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0aGUgc2VydmVyIGNvbnRleHQgZ2VuZXJhdG9yIHRvIGFjdHVhbGx5LCB1bSwgcmV0dXJuIHRoZQogICBjb250ZXh0LgoKMjAxMC0wMi0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgaW5pdGlhbGl6ZSB0aGUgJ3JlcycgdmFyaWFibGUgc2luY2UgaXQncyBjaGVja2VkCgoyMDEwLTAyLTIzIDE4OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgcHJvZ3Jlc3MgdG93YXJkIGEgcmVhbCBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMi0yMyAxODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgdGxzdGNwIGN0b3IgaW52b2NhdGlvbgoKMjAxMC0wMi0yMyAxODozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaDoKCiAgIHJlcXVpcmUgVExTQmFzZQoKMjAxMC0wMi0yMyAxODozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGRlZCBob3N0IGlkZW50aWZpZXIgYXMgb3V0cHV0CgoyMDEwLTAyLTIzIDE4OjM1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2lnbmlmaWNhbnQgbW9yZSB3b3JrIG9uIHRoZSBUTFMgVENQIGRvbWFpbgoKMjAxMC0wMi0yMyAxNzo0MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxOTMgKGpzYWZyYW5layk6IHJlcmFuIGF1dG9yZWNvbmYgZm9yIHRoZSB0cnVuawogICBhbmQgdGhlIDUuNSBicmFuY2guCgoyMDEwLTAyLTIzIDE0OjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIE5FVFNOTVBfUFJJeiBpbnN0ZWFkIG9mICV6CgoyMDEwLTAyLTIzIDEyOjI3ICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4ZWQgY29tcGlsYXRpb24gd2l0aCBycG0tNC42LgogICBUdXJuIG9uIHRoZSBsZWdhY3kgQVBJIHdoZW4gcnBtLTQuNiBpcyBkZXRlY3RlZC4KCjIwMTAtMDItMjMgMDc6MzggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRlZCByMTgwMDAgKGRpc2FibGluZyBTSUdBTFJNIHN1cHBvcnQpIGJlY2F1c2UgdGhpcyBpbnZvbHZlcwogICBhIGJhY2t3YXJkcy1pbmNvbXBhdGlibGUgY2hhbmdlLgoKMjAxMC0wMi0yMyAwMDozNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMC0wMi0yMyAwMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlYnVnIG1zZyB0d2Vha3M7IHVzZSBuZXcgdHJhbnBvcnQgZnVuY3Rpb25zCiAgIC0gYWRkIGRlYnVnIGhlYWRlciBmb3Igc25tcCB2ZXJzaW9uCiAgIC0gYWRkIGxlbmd0aCB0byBkZWJ1ZyBzZW5kL3JlY2VpdmUgbWVzc2FnZXMKICAgLSB1c2UgbmV3IHRyYW5wb3J0IGZ1bmN0aW9ucyBmb3Igc2VuZC9yZWN2L2ZpbmRpbmcgcGVlciBhZGRyZXNzCgoyMDEwLTAyLTIzIDAwOjI1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhZGQgbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcsIG5ldHNubXBfdHJhbnNwb3J0X3NlbmQgJgogICBuZXRzbm1wX3RyYW5zcG9ydF9yZWN2CiAgIC0gbW92ZXMgdHJhbnNwb3J0IG1hbmlwdWxhdGlvbiBpbnRvIHRyYW5zcG9ydCBjb2RlCiAgIC0gY2VudHJhbCBwbGFjZSBmb3IgbG9nZ2luZy9kZWJ1Z2dpbmcgc2VudC9yZWNlaXZlZCBkYXRhCgoyMDEwLTAyLTIyIDE5OjMzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXMgbm8KICAgbG9uZ2VyIGludm9rZSAidGFpbCAtMSIsIHdoaWNoIGlzIG5vdCBQT1NJWC1jb21wbGlhbnQuCgoyMDEwLTAyLTIyIDE5OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRm9sbG93LXVwIGZvciByMTgxODYuIFJlZ3Jlc3Npb24gdGVzdCAzNCAod2hldGhlciBhdXRoZW50aWNhdGlvbgogICBmYWlsdXJlIHRyYXBzIGFyZSBzZW50IGJ5IHNubXBkKSBwYXNzZXMgbm93IGFnYWluLgoKMjAxMC0wMi0yMiAwOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBtYWRlIHN1cmUgdGhhdCBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGRvZXMKICAgbm90IGNyZWF0ZSBkYW5nbGluZyBwb2ludGVycyBpbiB0aGUgTUlCIHN1YnRyZWUgcmVnaXN0cnkuCgoyMDEwLTAyLTIyIDA5OjExICBidmFzc2NoZQoKICAgKiBhZ2VudCwgYXBwcywgYXBwcy9zbm1wbmV0c3RhdDoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDItMjIgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZToKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBsaWJlYXkzMiAoT3BlblNTTCkgY29uZmlndXJlIHRlc3QgZm9yCiAgIE1pbkdXLgoKMjAxMC0wMi0yMiAwODozMSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgbGliZWF5MzIgKE9wZW5TU0wpIGNvbmZpZ3VyZSB0ZXN0IGZvcgogICBNaW5HVy4KCjIwMTAtMDItMjIgMDg6MTMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQnVpbGRzIGFnYWluIHdpdGggTWluR1cgd2hlbiBJUHY2IHN1cHBvcnQgaXMgZW5hYmxlZC4KCjIwMTAtMDItMjEgMTg6NTggIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL2xpYnNkbGwuZHN3LCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHdpbjMyL3dpbjMyZGxsLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogcmVuYW1lZCBsaWJzZGxsLmRzdyBpbnRvIHdpbjMyZGxsLmRzdy4KICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIGxpbmtpbmcgdGhlIE5ldC1TTk1QCiAgIGFwcGxpY2F0aW9ucyB3aXRoIG5ldHNubXAuZGxsIGJ5IGFkZGluZyBhbGwgYXBwbGljYXRpb24gcHJvamVjdHMKICAgdG8gdGhlIHNhbWUgd29ya3NwYWNlIHRoYXQgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdGhlIERMTC4KICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIG5ldHNubXAuZGxsIGxlc3MgZXJyb3IKICAgcHJvbmUgYnkgbGV0dGluZyB0aGUgY29tcGlsZXIgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUKICAgcHJlcHJvY2Vzc29yIHN5bWJvbCBORVRTTk1QX1VTRV9ETEwgaGFzIG5vdCBiZWVuIGRlZmluZWQuCgoyMDEwLTAyLTIxIDE4OjUxICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEFkZGVkIGxpYnNubXAuZGVmIHRvIHRoZSBsaXN0IG9mCiAgIGxpYnNubXBfZGxsLmRzcCBzb3VyY2UgZmlsZXMgc3VjaCB0aGF0IHRoZSBETEwgaXMgcmVidWlsdCB3aGVuCiAgIHRoZSAuZGVmIGZpbGUgaGFzIGJlZW4gbW9kaWZpZWQuCgoyMDEwLTAyLTIxIDE4OjQ1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogZXhwb3J0ZWQgbmV0c25tcF9zZXRfbGluZV9idWZmZXJpbmcoKSBmcm9tCiAgIG5ldHNubXAuZGxsLgoKMjAxMC0wMi0yMSAxNzozOSAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW9yZSBXaW4zMiBJUHY2IHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGltcHJvdmVtZW50czoKICAgLSBNb3ZlZCAjdW5kZWYgSEFWRV9JRl9OQU1FVE9JTkRFWCBmcm9tIHNubXBsaWIvKi5jIHRvCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLgogICAtIENoYW5nZWQgdGhlIGdsb2JhbCBpbjZhZGRyX2FueSB2YXJpYWJsZSBpbnRvIGEgc3RhdGljIHZhcmlhYmxlCiAgIHN1Y2ggdGhhdAogICBtdWx0aXBsZSBkZWZpbml0aW9ucyBkbyBub3QgdHJpZ2dlciBhIGxpbmtlciBlcnJvci4KICAgLSBBZGRlZCB0eXBlZGVmcyBmb3IgdWludDhfdCwgaW50OF90LCB1aW50MTZfdCBhbmQgaW50MTZfdC4KICAgLSBSZXBsYWNlZCAnI2lmIE5FVFNOTVBfRU5BQkxFX0lQVjYnIGJ5ICcjaWZkZWYKICAgTkVUU05NUF9FTkFCTEVfSVBWNicuCgoyMDEwLTAyLTIxIDA4OjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jOgoKICAgbWFrZSBzdXJlIHRoYXQgSU5BRERSX05PTkUgaXMgZGVmaW5lZCAoZml4ZXMgYnVpbGQgZXJyb3Igb24KICAgU29sYXJpcykKCjIwMTAtMDItMTkgMTk6MzkgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgU3luY2hyb25pemVkIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGFuZAogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMDItMTkgMTQ6MTggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBsaWJzbm1wIGJ1aWxkcyBhZ2FpbiBhcyBhIERMTCB3aGVuIElQdjYgaXMKICAgZW5hYmxlZC4KCjIwMTAtMDItMTkgMTM6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRm9sbG93IHVwIGZvciByMTgxNjQ6IHN5bmNocm9uaXplZCBsaWJzbm1wLmRlZi5pbiB3aXRoCiAgIGxpYnNubXAuZGVmCgoyMDEwLTAyLTE5IDA5OjA1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBhZGRlZCAjaW5jbHVkZSA8bWFsbG9jLmg+IGluCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHN1Y2ggdGhhdCB0aGUgTVNWQyBjb21waWxlcgogICBkb2Vzbid0IGdldCBjb25mdXNlZCBieSB0aGUgbWFsbG9jIHJlZGVmaW5pdGlvbiB3aGVuIGJ1aWxkaW5nCiAgIGxpYnNubXAgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjU5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEV4cG9ydGVkIG5ldHNubXBfcGFyc2VfYXJncygpIHN1Y2ggdGhhdCB0aGUgTmV0LVNOTVAgYXBwbGljYXRpb25zCiAgIGJ1aWxkIGFnYWluIHdoZW4gbGlic25tcCBpcyBidWlsdCBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1vdmVkIE1TVkMgT3BlblNTTCBsaW5rZXIgc2V0dGluZ3MgZnJvbQogICBzbm1wbGliL2tleXRvb2xzLmMgdG8gd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc3VjaCB0aGF0CiAgIHRoZXNlIHNldHRpbmdzIGFyZSBub3Qgb25seSBlZmZlY3RpdmUgd2hlbiBidWlsZGluZyBzbm1wbGliIGFzIGEKICAgc3RhdGljIGxpYnJhcnkgYnV0IGFsc28gd2hlbiBhbnkgTmV0LVNOTVAgYXBwbGljYXRpb24gaXMgYnVpbHQKICAgdGhhdCBsaW5rcyB3aXRoIHNubXBsaWIgYXMgYSBzdGF0aWMgbGlicmFyeSBvciBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6MzIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIFdpbjMyIGNsZWFudXA6IE1TVkMgLyBETEwgdGVzdHMgbm93IHVzZSB0aGUgb2ZmaWNpYWxseSBlbmRvcnNlZAogICBtYWNybyBuYW1lcy4KCjIwMTAtMDItMTkgMDc6NTAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDItMTkgMDY6NDcgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiAyOTQyOTQwOiBmcm9tICJCaWxsIEZlbm5lciI6IEFkZCBhIG5ldwogICBmdW5jdGlvbiwgbmV0c25tcF9wYXJzZV9hcmdzLCB0aGF0IGlzIGxpa2Ugc25tcF9wYXJzZV9hcmdzIGJ1dAogICB0YWtlcyBhbiBhZGRpdGlvbmFsIGJpdG1hc2ssIGZsYWdzLCB0byBhZmZlY3QgdGhlIGJlaGF2aW91ci4gQWxzbwogICByZW1vdmUgdGhlIG1hZ2ljIGhhbmRsaW5nIG9mIHNvbWUgYXBwbGljYXRpb24gbmFtZXMuCgoyMDEwLTAyLTE4IDE0OjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9iaW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAyLTE4IDE0OjIwICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFNvcnRlZCBuYW1lcyBvZiBzb3VyY2UgZmlsZXMgYWxwaGFiZXRpY2FsbHkuCgoyMDEwLTAyLTE4IDEzOjAzICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCBzbm1wbGliL3dpbnNlcnZpY2UuYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgd2luMzIvbmV0c25tcG1pYnNzZGssICAgCiAgICAgIHdpbjMyL3NubXBkc2RrLCB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJzZGsuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IGRyb3BwZWQgc3VwcG9ydCBmb3IgYnVpbGRpbmcgTmV0LVNOTVAgd2l0aAogICBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2LjAgd2l0aG91dCBwbGF0Zm9ybSBTREsuIEJ1aWxkaW5nCiAgIE5ldC1TTk1QIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4wICsgUFNESyBvciBhbnkgbGF0ZXIKICAgdmVyc2lvbiBvZiBNU1ZDIGlzIHN0aWxsIHBvc3NpYmxlIGhvd2V2ZXIuCiAgIAogICBOb3RlOiBpZiBpbiB0aGUgZnV0dXJlIGZvciB3aGF0ZXZlciByZWFzb24gaXQgc2hvdWxkIGJlY29tZQogICBuZWNlc3NhcnkgYWdhaW4gdG8gYmUgYWJsZSB0byBidWlsZCBOZXQtU05NUCB3aXRoIE1TVkMgd2l0aG91dAogICByZWx5aW5nIG9uIHRoZSBwbGF0Zm9ybSBTREsgaGVhZGVycywgcGxlYXNlICNpZmRlZiBvdXQgdGhlIE1JQgogICBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBQU0RLIGhlYWRlcnMgaW5zdGVhZCBvZiBzcGxpdHRpbmcgdGhlCiAgIHdvcmtzcGFjZSBmaWxlcyBhZ2Fpbi4KCjIwMTAtMDItMTggMTI6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICBkb3MydW5peC4KCjIwMTAtMDItMTggMDk6NDUgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgU291cmNlIGNvZGUgY2xlYW51cDoKICAgLSBNb3ZlZCBkb2N1bWVudGF0aW9uIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0IG1lbWJlcnMgdG8gdGhlCiAgIGNvbW1lbnQKICAgYmxvY2sganVzdCBhYm92ZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIHR5cGUuCiAgIC0gUmVtb3ZlZCBzdXBlcmZsdW91cyAnZXh0ZXJuICJDIicgc3BlY2lmaWVyOiB0aGlzIGxpbmthZ2UKICAgc3BlY2lmaWVyCiAgIG9ubHkgaGFzIGFuIGVmZmVjdCBvbiBkZWNsYXJhdGlvbnMgb2YgdmFyaWFibGVzIG9mIGZ1bmN0aW9ucyBhbmQKICAgbm90CiAgIG9uIHR5cGVkZWZzIG9yIHN0cnVjdCBkZWZpbml0aW9ucy4KICAgLSBSYW4gdGhpcyBoZWFkZXIgZmlsZSB0aHJvdWdoIGluZGVudC4KCjIwMTAtMDItMTggMDk6MjYgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQ2hhbmdlczoKICAgLSBCdWlsZHMgYWdhaW4gd2l0aCBNU1ZDLgogICAtIEZpeGVkIGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IE1TVkMgKHBhc3NpbmcgaW50CiAgIGluc3RlYWQgb2YgdV9zaG9ydCB0byBodG9ucygpIC8gZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRoYXQgd2VyZQogICBtaXNzaW5nIGJlY2F1c2Ugb2YgbWlzc2luZyAjaW5jbHVkZSBkaXJlY3RpdmVzKS4KCjIwMTAtMDItMTYgMTc6MTYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBUaGUgaGVhZGVyIGZpbGUgPHN5cy90aW1lYi5oPiBpcyBubyBsb25nZXIKICAgaW5jbHVkZWQgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4uIE9yOiB0aGUgaGVhZGVyIGZpbGUKICAgPHN5cy90aW1lYi5oPiB3aWxsIGhhdmUgdG8gYmUgaW5jbHVkZWQgZXhwbGljaXRseSBpbiBzb3VyY2UgZmlsZXMKICAgdGhhdCBuZWVkIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gZnRpbWUoKS4KICAgCiAgIE5vdGU6IGNvbXBhcmVkIHRvIHIxODAyNCBhbmQgYmVmb3JlLCB0aGlzIGNoYW5nZSBkb2VzIG5vdCBhZmZlY3QKICAgQlNEIHN5c3RlbXMgLS0gPHN5cy90aW1lYi5oPiB3YXMgb25seSBpbmNsdWRlZCBmcm9tCiAgIDxuZXQtc25tcC90eXBlcy5oPiBvbiBCU0Qgc3lzdGVtcyBpbiByZXZpc2lvbnMgcjE4MDI1Li5yMTgxNTIuCgoyMDEwLTAyLTE0IDE5OjI5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOgoKICAgQnVpbGRzIG5vdyBvbiBGcmVlQlNEIHZlcnNpb24gOC4wLgoKMjAxMC0wMi0xMyAyMDo1OSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBBZGp1c3QgdGhlIHBsYWNlbWVudCBvZiA7J3MgaW4gb3JkZXIgdG8KICAgYSkgQXZvaWQgd2FybmluZ3MgYWJvdXQgc3B1cmlvdXMgc2VtaWNvbG9ucwogICBiKSBOb3QgaGF2ZSB1bnRlcm1pbmF0ZWQgZGVjbGFyYXRpb25zIGluIGhlYWRlcnMKCjIwMTAtMDItMTIgMDI6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiB1cGRhdGUgaW5saW5lIGRvY3VtZW50YXRpb247IGFkZCBzdG9yYWdldHlwZSB0ZXN0CiAgIGZvciBjb2x1bW5zCgoyMDEwLTAyLTEyIDAxOjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmaXggdHlwbyBpbiBkZWZpbmUKCjIwMTAtMDItMTIgMDE6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZml4IHNlZCBwcm9jZXNzaW5nIG9uIHdoaXRlLXNwYWNlIGFkZGluZyBzb2xhcmlzIG1hY2hpbmVzCgoyMDEwLTAyLTEwIDIzOjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGFkZCB0b3Agc3JjZGlyIHRvIGNwcCBzZWFyY2ggcGF0aAoKMjAxMC0wMi0xMCAyMzo1MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgZnJlZWJzZCBuZWVkcyB0aW1lLmggYWJvdmUgdGltZWIuaAoKMjAxMC0wMi0xMCAyMzozNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICB1c2Ugc2VkIHdpdGggbXVsdGlyZXBsYWNlIG9uIGEgbGluZSB0byBmaXggcG9zc2libGUgd2hpdGVzcGFjZQogICBpc3N1ZSBvbiBzb2xhcmlzCgoyMDEwLTAyLTEwIDIzOjIyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGJlZ2lubmluZyB3b3JrIGZvciBUTFMgc2VwYXJhdGlvbiBpbnRvIHNlcGFyYXRlIGZpbGVzIHdpdGggYSBiYXNlCiAgIGZpbGUKCjIwMTAtMDItMTAgMjM6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDoKCiAgIG1vdmUgYmFzZSB0cmFuc3BvcnQgY3JlYXRpb24gZnVuY3Rpb24gb3V0IG9mIGxpbnV4IGlmZGVmcwoKMjAxMC0wMi0xMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmVkIGFub3RoZXIgZXJyb3IgbG9nZ2luZyBmdW5jdGlvbgoKMjAxMC0wMi0xMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGRlZCBUTFMgb3ZlciBUQ1AKCjIwMTAtMDItMTAgMTY6MzkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBMaW51eDogSW1wcm92ZWQgRXRoZXJMaWtlLU1JQiBzdXBwb3J0CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvc2VmIE1vZWxsZXJzCgoyMDEwLTAyLTEwIDEwOjA0ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBTdXBwb3J0IG51bGwtYnl0ZXMgaW4gb2N0ZXQgc3RyaW5ncwogICBQYXRjaCBzdXBwbGllZCBieSBUb21teSBCZWFkbGUKCjIwMTAtMDItMTAgMDA6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZWQgVExTIGluZnJhc3RydWN0dXJlIGludG8gYSBiYXNlIGRvbWFpbiBmaWxlCgoyMDEwLTAyLTEwIDAwOjA0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgbW92ZWQgc29ja2V0NiBmdW5jdGlvbnMgdG8gdGhlIGlwdjYgYmFzZQoKMjAxMC0wMi0xMCAwMDowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgd2hpdGUgc3BhY2UgZm9ybWF0dGluZwoKMjAxMC0wMi0xMCAwMDowMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgdWRwX3NlbmQvcmVjdiB0byB1ZHBiYXNlCgoyMDEwLTAyLTEwIDAwOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlIG5ldHNubXBfc29ja19idWZmZXJfc2V0IGludG8gc29ja2V0YmFzZQoKMjAxMC0wMi0xMCAwMDowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIG1vdmUgaXB2NCBzcGVjaWZpYyBVRFAgdHJhbnNwb3J0IGNyZWF0aW9uIHRvIHVkcGlwdjQgYmFzZQoKMjAxMC0wMi0xMCAwMDowMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBtYWRlIGNvbW1vbiBmdW5jdGlvbnMgYmUgcmVmZXJlbmNlZCBkaXJlY3RseSBieSB0aGUgdHJhbnNwb3J0cwogICBhbmQgcmVtb3ZlZCBvcmlnaW5hbCBmdW5jdGlvbmFsaXR5OyB0aGV5IHdlcmUgc3RhdGljIHNvIHRoZXJlIGlzCiAgIG5vIGJhY2t3YXJkcyBjb21wYXQgaXNzdWVzCgoyMDEwLTAyLTEwIDAwOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgc29ja2V0IGJhc2VkIGNsb3NlIHRvIGEgc29ja2V0IGJhc2VkIGRvbWFpbiBjb21tb24gdG8gbWFueQogICB0aGluZ3MKCjIwMTAtMDItMDkgMjM6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIG1vdmUgVENQIGNvbW1vbiBmdW5jdGlvbnMgdG8gYSBUQ1BCYXNlIGRvbWFpbiBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMi0wOSAyMzo1NyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgd2FybmluZyBjbGVhbnVwCgoyMDEwLTAyLTA5IDIzOjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHRtU3RhdGVSZWZlcmVuY2Ugc2hvdWxkIGJlIHVzaW5nIHRoZSBpbmRleGVkIGFkZHJfcGFpcgoKMjAxMC0wMi0wOSAyMzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbWFrZSBuZXRzbm1wX2R0bHN1ZHBfY2xvc2UgbWFrZSB1c2Ugb2YgbmV0c25tcF9iYXNldWRwX2Nsb3NlCgoyMDEwLTAyLTA5IDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIGJhc2UgVURQIHNvY2tldCBjcmVhdGlvbiBpbnRvIGEgY29tbW9uIGJhc2UgZnVuY3Rpb24gYW5kCiAgIG1hZGUgdXNlIG9mIGl0CgoyMDEwLTAyLTA5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oOgoKICAgcHJvcGVyIF9IIGlmZGVmIGNoZWNrcwoKMjAxMC0wMi0wOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgYWRkZWQgYSByYXcgVURQIGJhc2UgZG9tYWluCgoyMDEwLTAyLTA5IDIzOjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBjcmVhdGVkIGEgVURQIElQdjQgYmFzZTsgbW92ZWQgYW5kIHJldXNlZCBtb3JlIGluZnJhc3RydWN0dXJlCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBpcHY0IGFkZHJlc3MgZm9ybWF0dGluZyBpbnRvIHNubXBJUHY0QmFzZURvbWFpbgoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIHY2IGRvbWFpbiBpbmZyYXN0cnVjdHVyZSBmaWxlcwoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBWNEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUFY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jOgoKICAgdjYgZG9tYWluIGluZnJhc3RydWN0dXJlIGZpbGVzCgoyMDEwLTAyLTA5IDIzOjUwICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQVjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIE5ldyBJUHY0IGFuZCBJUCBiYXNlIHRyYW5zcG9ydCBmaWxlcwoKMjAxMC0wMi0wOSAyMzo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZG9uJ3QgZG91YmxlIGluY2x1ZGUgdHJhbnNwb3J0IG1vZHVsZXMKCjIwMTAtMDItMDkgMjM6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmg6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQ1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgY2hlY2sgZm9yIGFuZCByZXBvcnQgY29uZmlnX2Vycm9ycyBpbiB0cmFuc3BvcnQgaGVhZGVycwoKMjAxMC0wMi0wOSAyMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBhbGxvdyBhIE5FVFNOTVBfUVVJQ0tfQ0hFQ0sgZW52IHZhcmlhYmxlIHRvIGJ5cGFzcyBoZWFkZXIgY2hlY2tzCgoyMDEwLTAyLTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBiZXR0ZXIgY29tbWVudHMKCjIwMTAtMDItMDkgMjM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGNoZWNrIGZvciBjb25maWdfcmVxdWlyZSBtYWNyb3MgaW4gdHJhbnNwb3J0IGhlYWRlcnMgZm9yCiAgIGZvcmNlLWluY2x1ZGluZyBvZiBvdGhlciB0aGluZ3MKCjIwMTAtMDItMDkgMjM6NDEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkZWZpbmUgYSBzdGFuZGFyZGl6ZWQgaW5kZXhlZCBhZGRyX3BhaXIgaW5zdGVhZCBvZiB1c2luZyBvbmUKICAgbGFiZWxlZCBvbmx5IGZvciBVRFAgZXZlcnl3aGVyZQoKMjAxMC0wMi0wOSAyMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggdHJhbnNwb3J0IHByZWZpeCBsaXN0IGZvciBpbmNvbWluZyBtZXNzYWdlcwoKMjAxMC0wMi0wOSAyMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgc25tcGxpYi9zbm1wdHNtLmM6CgogICByZW1vdmUgdGhlIHNlY3VyaXR5IGxldmVsIGZyb20gdGhlIFRTTSBjYWNoZTsgcHJldmlvdXMgZXhpc3RlbmNlCiAgIGZyb20gZnJvbSBhIGRyYWZ0IGNvcHkgb2YgdGhlIFRTTSBSRkMgYW5kIGlzIG5vdyBzdG9yZWQgZW50aXJlbHkKICAgaW4gdGhlIHRtIHJlZmVyZW5jZQoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBpbXBsZW1lbnQgaW5jb21pbmcgVFNNIHByb2NlZHVyZXMgYWNjb3JkaW5nIHRvIFJGQyB0ZXh0CgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGltcGxlbWVudCBvdXRnb2luZyBUU00gcHJvY2VkdXJlcyBhY2NvcmRpbmcgdG8gUkZDIHRleHQKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oOgoKICAgY3JlYXRlIGRlZmluZWQgc2l6ZWQgYXJyYXkgYW5kIGxlbmd0aCB2YXJpYWJsZQoKMjAxMC0wMi0wNSAwOTo1MiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBmaWxlZGVzY3JpcHRpb3IgbGVhayBpbiBFdGhlcmxpa2UtTUlCIGFuZAogICBSTU9OLU1JQgoKMjAxMC0wMi0wNCAxNTo1NyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgcmVhbCBpZlNwZWVkIG9mIG5ldHdvcmsgaW50ZXJmYWNlIGV2ZW4gaXQKICAgaXMgZG93bi4KICAgU29tZSBpbnRlcmZhY2VzIGNhbiByZXBvcnQgdGhlaXIgcmVhbCBzcGVlZCwgZXZlbiB0aGV5IGFyZSBkb3duLgogICBBbmQgaWYgdGhleSBjYW4ndCwgdGhlIGZhbGxiYWNrIHRvIDEwTWJwcyBpcyBzdGlsbCB0aGVyZS4KCjIwMTAtMDItMDEgMTQ6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBmaWxlCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYy4KCjIwMTAtMDItMDEgMTQ6NDUgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMiwgc25tcGxpYi9rZXl0b29scy5jOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIHRoZSBwcm9jZWR1cmUgZm9yIGJ1aWxkaW5nCiAgIHdpdGggU05NUHYzIHN1cHBvcnQgZW5hYmxlZCAoT3BlblNTTCkuCgoyMDEwLTAyLTAxIDE0OjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWxsIGNhbGxzIHRvIGZyZWUoKSBhcmUgaW50ZXJjZXB0ZWQgd2hlbiBidWlsZGluZwogICB3aXRoIGRtYWxsb2MKICAgc3VwcG9ydCBlbmFibGVkLiBJbmNsdWRlZCA8ZG1hbGxvYy5oPiBpbiB0aG9zZSBzb3VyY2UgZmlsZXMgd2hlcmUKICAgaXQgd2FzIG5vdAogICB5ZXQgaW5jbHVkZWQsIGFuZCBwcm92aWRlZCBhIHdyYXBwZXIgZnVuY3Rpb24gZm9yIGZyZWUoKSB3aGVyZQogICB0aGUgYWRkcmVzcyBvZgogICB0aGlzIGZ1bmN0aW9uIHdhcyB0YWtlbiAoRG1hbGxvYyBjYW4gb25seSBpbnRlcmNlcHQgZnJlZSgpIHdoZW4KICAgaXQgaXMgY2FsbGVkCiAgIGRpcmVjdGx5IGJ1dCBub3Qgd2hlbiBpdCBpcyBjYWxsZWQgdGhyb3VnaCBhIGZ1bmN0aW9uIHBvaW50ZXIpLgoKMjAxMC0wMi0wMSAxMDo0OSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgTkVXUzogYnVpbGRpbmc6IEJ1aWxkaW5nIE5ldC1TTk1QIHdpdGggZG1hbGxvYyBzdXBwb3J0IGVuYWJsZWQgaXMKICAgYWdhaW4gcG9zc2libGUuCgoyMDEwLTAyLTAxIDAxOjA1ICB0YW5kZXJzCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6ICdtYWtlIHRlc3QgVEVTVE9QVFM9Ii1QIHRjcCInIHdvcmtzIGZpbmUgbm93CgoyMDEwLTAxLTMxIDA4OjAyICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBhbiBzaCBzeW50YXggZXJyb3IgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHQKICAgdGhhdCB3YXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2l0aG91dCBsaWJjcnlwdG8gYW5kIHdpdGhvdXQKICAgbGliZWF5MzIuCiAgIFRoZSBmb2xsb3dpbmcgZXJyb3Igd2FzIHJlcG9ydGVkOgogICBjb25maWd1cmVbMzMxMzZdOiB4OiB1bmtub3duIHRlc3Qgb3BlcmF0b3IKCjIwMTAtMDEtMjkgMjA6MDcgIGpzYWZyYW5lawoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBFbGFib3JhdGUgb24gcmV2LiAxODA4OSBhbmQgYWRqdXN0IHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHRoZQogICAqICAgICpyZWFsbHkgd29ya2luZyBvbmUqLiAgMjAxMC0wMS0yOSAxOToxMSAganNhZnJhbmVrCgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBGaXggdGVzdCAzNSB3aGVuIGNvbmZpZ3VyZSBvcHRpb24gJy0td2l0aC10ZW1wLWZpbGUtcGF0dGVybicgd2FzCiAgIHVzZWQgYW5kIHRoZSBkaXJlY3RvcnkgZm9yIHRlbXAuIGZpbGVzIGRvZXMgbm90IGV4aXN0IHlldC4KCjIwMTAtMDEtMjkgMTU6MDcgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9jbG9zZWRpci5jLCAgIAogICAgICBzbm1wbGliL2dldHRpbWVvZmRheS5jLCBzbm1wbGliL29wZW5kaXIuYywgc25tcGxpYi9yZWFkZGlyLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBNb3ZlZCB0aGUgc291cmNlIGNvZGUgb2YgdGhlIG9wZW5kaXIoKSwgcmVhZGRpcigpLCBjbG9zZWRpcigpIGFuZAogICBnZXR0aW1lb2ZkYXkoKSByZXBsYWNlbWVudHMgZm9yIE1TVkMgZnJvbSBzbm1wbGliL3N5c3RlbS5jIHRvCiAgIHNlcGFyYXRlIHNvdXJjZSBmaWxlcyBpbiBzbm1wbGliLgoKMjAxMC0wMS0yOSAwODo1NyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENvbmZpZ3VyZSBzY3JpcHQgY29uc2lzdGVuY3kgaW1wcm92ZW1lbnQ6IHJlbmFtZWQgdGhlIHZhcmlhYmxlCiAgICJzYXZlZF9MSUJTIiBpbnRvICJuZXRzbm1wX3NhdmVfTElCUyIuCgoyMDEwLTAxLTI5IDA2OjM5ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQ0hBTkdFUzogdGVzdGluZzogQ2hlY2sgdGhlIHNpemUgb2Ygc3VuX3BhdGggYW5kIHVzZSB0aGF0IHRvCiAgIGdlbmVyYXRlIHRoZSBtYXhpbWFsIHNpemUgc3RyaW5ncyBmb3Igc3RyZXNzaW5nIGNvbTJzZWN1bml4LgoKMjAxMC0wMS0yNyAxNToxNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTkVXUzogTWluR1c6IHJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdCBzdWl0ZSBpcyBhZ2FpbiBwb3NzaWJsZQogICAoJ21ha2UgdGVzdCcpLgoKMjAxMC0wMS0yNyAxNDo0MyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IEN5Z3dpbjogYnVpbGRpbmcgd2l0aCBhbm90aGVyIE9wZW5TU0wgcGFja2FnZSB0aGFuIHRoZQogICBDeWd3aW4tcHJvdmlkZWQgcGFja2FnZXMgb3BlbnNzbCBhbmQgb3BlbnNzbC1kZXZlbCBpcyBhZ2FpbgogICBwb3NzaWJsZS4KICAgTkVXUzogTWluR1c6IGJ1aWxkaW5nIHdpdGggT3BlblNTTCB3b3JrcyBhZ2Fpbi4KCjIwMTAtMDEtMjYgMjE6MjcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBjb250ZXh0IGFyZ3VtZW50IG9mIHNlbmRfdjN0cmFwLAogICBzZW5kX3RyYXBfdmFyc193aXRoX2NvbnRleHQgYW5kIG5ldHNubXBfc2VuZF90cmFwcyByZWZlciB0byBhCiAgIGNvbnN0IGNoYXIqLgoKMjAxMC0wMS0yNiAyMToyNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOgoKICAgQ29ycmVjdCBtaXNzcGVsbGluZyAtICNlbHNpZiB0byAjZWxpZgoKMjAxMC0wMS0yNiAyMToyMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBBcHBhcmVudGx5IG5vdCBhbGwgc3lzdGVtcyBkZWZpbmUgSU5FVF9BRERSU1RSTEVOIHNvIGFkZCBpdCBpZiBpdAogICBpcyBtaXNzaW5nLgoKMjAxMC0wMS0yNiAxNTo0NiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFkZGVkIG5ldHN0YXQgcGF0aCBmb3IgTWluR1cuCgoyMDEwLTAxLTI2IDE1OjAwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZpeCBzdGF0IG5hbWVzCgoyMDEwLTAxLTI2IDE1OjAwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBuZXRzbm1wX2Fzc2VydF9vcl9tc2dyZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXNlIG5ldHNubXBfYXNzZXJ0X29yX3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVwZGF0ZSBjb21tZW50cyB0byByZWZsZWN0IFJGQzU1OTEgYXMgdGhlIGRvY3VtZW50IGRlc2NyaWJpbmcgdGhlCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTAxLTI2IDExOjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaDoKCiAgIE5FV1M6IEN5Z3dpbjogQlVHOiAyOTM5MTY4OiBieXRlIG9yZGVyIG9mIHVkcExvY2FsUG9ydCBpcyBub3cKICAgY29ycmVjdC4KCjIwMTAtMDEtMjYgMTA6NDYgIGJ2YXNzY2hlCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIE5FV1M6IEN5Z3dpbjogQlVHOiAyOTM5MTY4OiBmaXhlZCB0ZXN0IGluZnJhc3RydWN0dXJlICgibWFrZQogICB0ZXN0IikuIFRoaXMgaGFzIGJlZW4gZml4ZWQgYnkgdXNpbmcgdGhlIHByb3BlciBlbnZpcm9ubWVudAogICBzZXBhcmF0b3IgY2hhcmFjdGVyIGFuZCBieSBhZGRpbmcgdGhlIHBhdGggb2YgdGhlIG5ldHN0YXQKICAgZXhlY3V0YWJsZSBmb3IgQ3lnd2luIGluIHRlc3RpbmcvVEVTVENPTkYuc2guCgoyMDEwLTAxLTI2IDA5OjI3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggcmFyZSByYWNlIGNvbmRpdGlvbiB3aGVuIHJlYWRpbmcgUlBNCiAgIGRhdGFiYXNlLgogICBPbGQgcnBtIHZlcnNpb25zIHJldHVybiBOVUxMIGluc3RlYWQgb2YgSGVhZGVyIHdoZW4gYW5vdGhlciBSUE0KICAgaW5zdGFuY2UgaG9sZHMKICAgZGF0YWJhc2UgbG9ja3MuIEkuZS4gc25tcGQgc29tZXRpbWVzIGNyYXNoZXMgd2hlbiByZWFkaW5nCiAgIGhyX3N3SW5zdCBhbmQgcnBtIGlzCiAgIGluc3RhbGxpbmcvdXBkYXRpbmcvcmVtb3ZpbmcgYW5vdGhlciBwYWNrYWdlLiBBcyBhIHNvbHV0aW9uLAogICB3aG9sZSBSUE0gY2FjaGUKICAgaXMgdGhyb3duIGF3YXkgYW5kIHJlLXJlYWQgd2hlbiB3ZSBnb3QgYW4gZXJyb3IgZnJvbSBsaWJycG0uIFRoZQogICB3aG9sZSBwcm9jZXNzCiAgIGlzIHJlc3RhcnRlZCBvbmx5IHRocmVlIHRpbWVzLCB0byBwcmV2ZW50IGVuZGxlc3MgbG9vcC4KCjIwMTAtMDEtMjUgMjI6MTYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBEbyBub3QgY2hlY2sgaWYgdmFsdWVzIG9mIHR5cGUgc2l6ZV90CiAgIGFyZSBsZXNzIHRoYW4gMC4KCjIwMTAtMDEtMjUgMjI6MTEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IENoZWNrIHRoZSByYW5nZSBvZiBvaWQgdmFsdWVzIHRvd2FyZHMgdGhlIG1heGltdW0KICAgb2lkIHZhbHVlLCBub3RVTE9OR19NQVgKCjIwMTAtMDEtMjUgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgb25seSBiYWlsIG9uIG1pc3NpbmcgbGliaXBobHBhcGkgZm9yIHh3aW5zb2NrMgoKMjAxMC0wMS0yNSAxOTo1NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW5hbWUgTUFYX1NUQVRTIHRvIE5FVFNOTVBfU1RBVF9NQVhfU1RBVFMKCjIwMTAtMDEtMjUgMTk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jOgoKICAgdXBkYXRlIGZvciBuZXcgcGF0aCB0byBzbm1wX2dldF9zdGF0aXN0aWNzOyBjaGVjayBmb3IgaW5kZXgKICAgb3ZlcmZsb3cKCjIwMTAtMDEtMjUgMTk6NDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oOgoKICAgdXBkYXRlIGZvciBuZXcgcGF0aCB0byBzbm1wX2dldF9zdGF0aXN0aWNzCgoyMDEwLTAxLTI1IDE2OjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHVzZSAqY3VycmVudCogY29weSBvZiB0aGUgTUlCIHdoZW4gZ2VuZXJhdGluZyBzdGF0cwoKMjAxMC0wMS0yNSAxNjowMSAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oOgoKICAgbW92ZSBzbm1wX2dldF9zdGF0aXN0aWMgaGVscGVyIHRvIGhlbHBlcnMgZGlyOyB1cGRhdGUgYWxsX2hlbHBlcnMKICAgaGVhZGVyCgoyMDEwLTAxLTI1IDE0OjM0ICBidmFzc2NoZQoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFJlcGxhY2VkIGV4cGxpY2l0IGRlY2xhcmF0aW9ucyBvZiBvcHRpbmQsIG9wdG9wdCBhbmQgb3B0YXJnIGJ5CiAgICNpbmNsdWRlIDx1bmlzdGQuaD4gYmVjYXVzZSBleHBsaWNpdGx5IGRlY2xhcmluZyB0aGVzZSB2YXJpYWJsZXMKICAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBDeWd3aW4uCgoyMDEwLTAxLTI1IDE0OjI1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE5FV1M6IEN5Z3dpbjogSVB2NiBpcyBvbmx5IHN1cHBvcnRlZCB1bmRlciBDeWd3aW4gMS43IG9yIGxhdGVyLgogICBUaGUgb2xkIGltcGxlbWVudGF0aW9uIG9mIElQdjYgc3VwcG9ydCBpbiBOZXQtU05NUCB1bmRlciBDeWd3aW4KICAgaW52b2x2ZWQgYSBzdHJhbmdlIG1peHR1cmUgb2YgQ3lnd2luIGFuZCBXaW5zb2NrMiBzb2NrZXQgY2FsbHMsCiAgIHdoaWNoIHdhcyB0b28gaGFyZCB0byBtYWludGFpbi4KICAgTkVXUzogQ3lnd2luOiBidWlsZHMgYWdhaW4gd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZAogICAoLS1lbmFibGUtaXB2NikuIEF0IGxlYXN0IE5ldC1TTk1QIDUuNSBkb2Vzbid0IGJ1aWxkIHVuZGVyIEN5Z3dpbgogICB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkLiBUaGUgY29uZmlndXJlIHNjcmlwdCByZXBvcnRlZAogICAiY2hlY2tpbmcgaXB2NiBzdGFjayB0eXBlIC4uLiByZXN1bHQ6ICJ1bmtub3duLCBubyIgLi4uIGVycm9yOgogICBJUHY2IHRyYW5zcG9ydHMgbm90IGF2YWlsYWJsZSBpZiBJUHY2IHN1cHBvcnQgaXMgbm90IGVuYWJsZWQiLgoKMjAxMC0wMS0yNSAxNDoxMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2luY2x1ZGUgPHN0cmluZy5oPi4KCjIwMTAtMDEtMjUgMTQ6MTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlczoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciB0aGUgSVB2NiBzdGFjayBpbmNsdWRlZCBpbiBDeWd3aW4KICAgdmVyc2lvbiAxLjcuCiAgIElQdjYgc3VwcG9ydCBpcyBvbmUgb2YgdGhlIG5ldyBmZWF0dXJlcyBvZiBDeWd3aW4gMS43LiBGb3IgbW9yZQogICBpbmZvcm1hdGlvbiwKICAgc2VlIGFsc28gaHR0cDovL2N5Z3dpbi5jb20vY3lnd2luLXVnLW5ldC9vdi1uZXcxLjcuaHRtbC4KCjIwMTAtMDEtMjUgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IEN5Z3dpbjogdGhlIG1lc3NhZ2UgImNvbmZpZ3VyZTogV0FSTklORzogd2luc29jay5oOgogICBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIGRvZXMgbm8gbG9uZ2VyIGFwcGVhciB3aGVuCiAgIHJ1bm5pbmcgdGhlIGNvbmZpZ3VyZSBzY3JpcHQuCiAgIEZvbGxvdy11cCBmb3IgcjE4MDUwOiByZS1lbmFibGVkIGxpYmlwaGxwYXBpIGFuZCBpcGhscGFwaS5oIHRlc3RzCiAgIGZvciBub24tTWluR1cgcGxhdGZvcm1zIHNpbmNlIHRoZSBDeWd3aW4gYnVpbGQgbmVlZHMgdGhlc2UuCgoyMDEwLTAxLTI1IDA3OjI4ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBzbm1wbGliL2luZXRfbnRvcC5jLCAgCiAgICAgICBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBhdXRvY29uZiB0byBkZWNpZGUgaWYgaW5ldF9udG9wLmMgYW5kCiAgIGluZXRfcHRvbi5jIGFyZSB0byBiZSBjb21waWxlZC4KCjIwMTAtMDEtMjUgMDc6MDkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgQ0hBTkdFUzogTWluR1c6IHN0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZCBjb25maWd1cmUgdGVzdAogICBkb2VzIG5vdyB3b3JrLgoKMjAxMC0wMS0yNSAwNToxNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBUTFNUTSBjb3VudGVyIHN0YXRzCgoyMDEwLTAxLTI1IDA1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGFkZCBpbiBUU00gbmVlZGVkIGNvdW50ZXIgZGVmaW5pdGlvbnMKCjIwMTAtMDEtMjUgMDU6MTIgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UU00tTUlCLnR4dCwgbWlicy9yZmNsaXN0OgoKICAgYWRkZWQgdGhlIFNOTVAtVFNNLU1JQgoKMjAxMC0wMS0yNCAxNDo0MyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgTkVXUzogc25tcGQ6IE1hZGUgc3VidHJlZV9jb250ZXh0X2NhY2hlOjpjb250ZXh0X25hbWUgYSBjb25zdAogICBjaGFyKi4KCjIwMTAtMDEtMjQgMTQ6MjcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUHJldmVudCBnY2MgcGVkLXdhcm5pbmcgZm9yCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUCgoyMDEwLTAxLTI0IDEzOjI3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IFByZWZlciB0byB1c2UgYSB2YXJpYWJsZSBvZiB0aGUgcmlnaHQgdHlwZSBvdmVyCiAgIGFuIHVnbHkgY2FzdC4gTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgYXMgd2VsbC4KCjIwMTAtMDEtMjQgMTI6NTkgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEludHJvZHVjZWQgdGhlIHZhcmlhYmxlICd3aXRoX3NvY2tsaWInIGluIHRoZQogICBjb25maWd1cmUgc2NyaXB0LiBUaGlzIHZhcmlhYmxlIGlzIHNldCB0byAid2luc29jazIiIGZvciBNaW5HVwogICBhbmQgdG8gImRlZmF1bHQiIGZvciBhbGwgb3RoZXIgc3lzdGVtcy4gV2luc29jazIgdGVzdHMgYXJlIG9ubHkKICAgcnVuIGlmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJ3aW5zb2NrMiIgKE1pbkdXKS4KCjIwMTAtMDEtMjQgMTI6NTMgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBkZWJ1ZyBsb2dzLgoKMjAxMC0wMS0yNCAxMjo0NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeGVzOiBmaXhlZCB3YXJuaW5ncyBhYm91dCBjaGFyICogLwogICB1bnNpZ25lZCBjaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMjQgMTI6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXg6IG1ha2UgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpCiAgIGRlY2xhcmF0aW9ucwogICBhdmFpbGFibGUgdG8gdGhlIGNvbXBpbGVyLgoKMjAxMC0wMS0yNCAxMjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4OiBtYWRlIHN1cmUgdGhhdCA8d3MydGNwaXAuaD4gd2lsbAogICBiZSBpbmNsdWRlZAogICBmcm9tIDxuZXQtc25tcC90eXBlcy5oPiBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgY29tcGxhaW4KICAgYWJvdXQgc3RydWN0CiAgIHNvY2thZGRyX2luNiBiZWluZyB1c2VkIGJlZm9yZSBiZWluZyBkZWZpbmVkLgoKMjAxMC0wMS0yNCAxMTo0MiAgYnZhc3NjaGUKCiAgICogbWFuOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMS0yNCAxMTo0MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBidWxrZ2V0LmMsICAgCiAgICAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsICAgCiAgICAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCAgIAogICAgICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsICAgCiAgICAgIGFwcHMvc25tcHdhbGsuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENsZWFudXAgKFdpbmRvd3MpOiByZW1vdmVkIHN1cGVyZmx1b3VzICNpbmNsdWRlIDxzeXMvdGltZWIuaD4KICAgZGlyZWN0aXZlcy4gVGhpcyBoZWFkZXIgZmlsZQogICBoYXMgb25seSB0byBiZSBpbmNsdWRlZCBmcm9tIHNubXBsaWIvc3lzdGVtLmMgYmVjYXVzZSBvZiB0aGUKICAgX2Z0aW1lKCkgY2FsbCBpbiB0aGF0IGZpbGUuCgoyMDEwLTAxLTI0IDEwOjQzICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFRoZSBtYWNybyAnQygpJyBub3cgY2FzdHMgaXRzIHJlc3VsdCBmcm9tIHVuc2lnbmVkIGxvbmcgdG8KICAgdW5zaWduZWQgaW50LgogICBUaGlzIGNoYW5nZSBmaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgIG1pc21hdGNoZXMKICAgYW5kIGZpeGVzIGEgYnVnIChpbmNvcnJlY3Qgc25tcG5ldHN0YXQgb3V0cHV0KSBvbiBiaWcgZW5kaWFuCiAgIHN5c3RlbXMuCgoyMDEwLTAxLTI0IDEwOjMzICBidmFzc2NoZQoKICAgKiBtYW4vY29uZmlnX2FwaS4zOgoKICAgRm9sbG93LXVwIGZvciByMTc5NDY6IHJlbW92ZWQgZ2VuZXJhdGVkIG1hbiBwYWdlcyBmcm9tCiAgIHJlcG9zaXRvcnkuCgoyMDEwLTAxLTI0IDEwOjMxICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1vdmVkIHR3byBkZWNsYXJhdGlvbnMgb2Ygc3RhdGljIGZ1bmN0aW9ucyBmcm9tIC5oIHRvIC5jLgoKMjAxMC0wMS0yNCAxMDoyMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzLgoKMjAxMC0wMS0yNCAxMDoxOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYnVpbGRzIGFnYWluIHdoZW4gSEFWRV9HRVRBRERSSU5GTyBpcyBub3QKICAgZGVmaW5lZC4KCjIwMTAtMDEtMjQgMTA6MDMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvaW5ldF9udG9wLmMsICAgCiAgICAgIHNubXBsaWIvaW5ldF9udG9wLmgsIHNubXBsaWIvaW5ldF9wdG9uLmMsIHNubXBsaWIvaW5ldF9wdG9uLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgY29uZmlndXJlIHRlc3RzIGZvciBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkuCiAgIC0gQWRkZWQgaGVhZGVyIGZpbGVzIHNubXBsaWIvaW5ldF9udG9wLmggYW5kIHNubXBsaWIvaW5ldF9wdG9uLmguCiAgIC0gUmVwbGFjZWQgImV4dGVybiBpbmV0X250b3AoLi4uKTsiIGFuZCAiZXh0ZXJuIGluZXRfcHRvbiguLi4pOyIKICAgYnkgI2luY2x1ZGUgImluZXRfbnRvcC9wdG9uLmgiLgogICAtIENvbnZlcnRlZCBzbm1wbGliL2luZXRfbnRvcC5jIGFuZCBzbm1wbGliL2luZXRfcHRvbi5jIGZyb20gSyZSCiAgIEMgdG8gQU5TSSBDLgogICAtIFJlcGxhY2VkIHRoZSBpbmV0X2F0b24oKSBjYWxscyB0aGF0IHdlcmUgaW50cm9kdWNlZCBpbiByMTgwMzMKICAgaW4gc25tcGxpYi9zbm1wVURQRG9tYWluLmMgYnkgaW5ldF9wdG9uKCkgY2FsbHMgc3VjaCB0aGF0IGl0IGlzCiAgIGFnYWluIHBvc3NpYmxlIHRvIGJ1aWxkIE5ldC1TTk1QIG9uIFdpbmRvd3MuCgoyMDEwLTAxLTI0IDA2OjA4ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSBkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zIHRoYXQgZG9uJ3QKICAgZXhpc3Qgb3IgYXJlIGRlY2xhcmVkIGVsc2V3aGVyZS4KCjIwMTAtMDEtMjQgMDU6NDggIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZWQgdGhlIHVudXNlZCB2YXJpYWJsZXMgd2FybV9zdGFydF9vaWQsCiAgIGxpbmtfZG93bl9vaWQsIGxpbmtfdXBfb2lkLCBhdXRoX2ZhaWxfb2lkIGFuZCBlZ3BfeHh4X29pZC4KCjIwMTAtMDEtMjMgMjI6MDYgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBCZXR0ZXIgc2V0IG9mIFNLSVBJRi9TS0lQSUZOT1RTCgoyMDEwLTAxLTIzIDIwOjMxICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBCZSBjb3JyZWN0IGluIHdoYXQgaXQgaXMgdGhhdCBpcyB0ZXN0ZWQgaW4gdGhlIGhlYWRlci4KCjIwMTAtMDEtMjMgMjA6MjcgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2VkIHRoZSBjb20yc2VjIGRpcmVjdGl2ZXMgdG8gZmFpbCBpZiB0aGVyZQogICBhcmUgdG9vIGZldyBhcmd1bWVudHMuIEFkZGl0aW9uYWxseSBjaGFuZ2VkIHRoZSBzdG9yYWdlIHN0cnVjdHVyZQogICB0byBub3QgYWxsb2NhdGUgbW9yZSBzcGFjZSB0aGFuIG5lY2Vzc2FyeS4KCjIwMTAtMDEtMjMgMjA6MjIgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBuZXcgdGVzdHMgY2hlY2tpbmcgdGhlIGVycm9yIGhhbmRsaW5nIG9mIHRoZSBjb20yc2VjKiBkaXJlY3RpdmVzCgoyMDEwLTAxLTIzIDE5OjE3ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgwMjU6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLgoKMjAxMC0wMS0yMyAxNzo1MSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBDSEFOR0VTOiBidWlsZGluZzogT1MgaGVhZGVyIGRldGVjdGlvbiBjaGVjayBpcyBub3cgcnVuIGJlZm9yZQogICBJUHY2IHN0YWNrIGRldGVjdGlvbi4KICAgQ0hBTkdFUzogU29sYXJpczogc29ja2FkZHJfaW42LnNpbjZfYWRkciBjb25maWd1cmUgdGVzdCBkb2VzIG5vdwogICB3b3JrLgoKMjAxMC0wMS0yMyAxNzo0MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEZpeGVkIGEgU29sYXJpcy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wMS0yMyAxNzowMCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgTWluR1c6IGFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciA8c3lzL3RpbWViLmg+IGFuZCBhbHNvIGZvciBzdHJ1Y3QKICAgdGltZXpvbmUuCgoyMDEwLTAxLTIzIDE2OjMyICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBNaW5HVzogbWFkZSBzdXJlIHRoYXQgdGhlIElQdjYtcmVsYXRlZCBkYXRhdHlwZXMgYXJlIGF2YWlsYWJsZQogICBiZWZvcmUgYmVpbmcgdXNlZC4KCjIwMTAtMDEtMjMgMTY6MzAgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCAjdW5kZWYgSEFWRV9XSU5ET1dTX0guCgoyMDEwLTAxLTIzIDE2OjI4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBNaW5HVzogbWFkZSBnZXR0aW1lb2ZkYXkoKSBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZQogICBjb21waWxlci4KCjIwMTAtMDEtMjMgMTY6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pbkdXOiBtYWRlIGdldHRpbWVvZmRheSgpIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlCiAgIGNvbXBpbGVyLgoKMjAxMC0wMS0yMyAxNjoyNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdCBjb21wbGFpbiBhYm91dCBhIG1pc3NpbmcKICAgcHJvdG90eXBlIGZvciBpc2RpZ2l0KCkuCgoyMDEwLTAxLTIzIDE2OjI0ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgTWluR1c6IGlwaGxwYXBpLmggY29uZmlndXJlIHRlc3QgZG9lcyBub3cgd29yay4KCjIwMTAtMDEtMjMgMTU6MTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlczoKCiAgIFJlbmFtZWQgdGhlIFdpbnNvY2syIElQdjYgc3RhY2sgZnJvbSAnbWluZ3cnIGludG8gJ3dpbnNvY2syJy4KCjIwMTAtMDEtMjMgMTU6MDcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAKICAgICAgIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmMsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEltcHJvdmVkIHBvcnRhYmlsaXR5IGJldHdlZW4gdGhlIHN1cHBvcnRlZCBXaW4zMiBjb21waWxhdGlvbgogICBlbnZpcm9ubWVudHMgYXMgZm9sbG93czoKICAgLSBNYWRlIHN1cmUgdGhhdCB0aGUgPHdpbnNvY2syLmg+IGFuZCA8d3MydGNwaXAuaD4gaGVhZGVyIGZpbGVzCiAgIGFyZSBvbmx5IGluY2x1ZGVkIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+LgogICAtIEFkZGVkIGNvbmZpZ3VyZSBjaGVjayBmb3IgPGlwaGxwYXBpLmg+LgogICAtIFJlcGxhY2VkIHNldmVyYWwgV0lOMzIgLyBjeWd3aW4gdGVzdHMgYnkgYSBIQVZFX0lQSExQQVBJX0gKICAgdGVzdC4KICAgLSBEb2N1bWVudGVkIHRoYXQgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaXMgb25seSB1c2VkCiAgIGZvciB0aGUgTVNWQyBidWlsZC4KCjIwMTAtMDEtMjIgMTY6NDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTEwOiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbwogICA2LgoKMjAxMC0wMS0yMiAxNjo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL01nbXRBcGktd2luRXh0RExMLmg6CgogICBGb2xsb3cgdXAgZm9yIHIxODAxNjogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8uCgoyMDEwLTAxLTIyIDE0OjEzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRm9sbG93LXVwIGZvciByMTgwMTY6IG1hZGUgTWluR1cgbGliaXBobHBhcGkgY2hlY2sgbW9yZSByb2J1c3QuCgoyMDEwLTAxLTIyIDEzOjMyICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCBhY2xvY2FsLm00LCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsICAgCiAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9zcWwuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgICAKICAgICAgYXBwcy9zbm1wd2Fsay5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgICAKICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmMsIHdpbjMyL1NubXAtd2luRXh0RExMLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IE1pbkdXOiB3aW5FeHRETEwgY29tcGlsZXMgbm93IHVuZGVyIE1pbkdXLgogICBDSEFOR0VTOiBNaW5HVzogYnVpbGRpbmcgTmV0LVNOTVAgd29ya3MgYWdhaW4uCiAgIAogICBEZXRhaWxlZCBvdmVydmlldzoKICAgKiBDaGFuZ2VzIGluIHRoZSBjb25maWd1cmUgc2NyaXB0OgoKICAgLSBzb2NrZXQoKSBsaWJyYXJ5IGNoZWNrIHBhc3NlcyBhZ2FpbiBvbiBNaW5HVy4KICAgLSBBZGRlZCBsaWJyYXJ5IGNoZWNrcyBmb3IgbGlid3MyXzMyLCBsaWJyZWdleCBhbmQgbGlic25tcGFwaS4KICAgLSBBZGRlZCBjaGVjayBmb3IgdGhlIHdpbnNvY2syLmggYW5kIHdzMnRjcGlwLmggaGVhZGVyIGZpbGVzLgogICAtIEFkZGVkIGNoZWNrIGZvciB0aGUgY2hvd24oKSBhbmQgbG9jYWx0aW1lX3IoKSBmdW5jdGlvbnMuCiAgIC0gc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQgY2hlY2sgZG9lcyBub3cgd29yayBvbiBNaW5HVy4KICAgLSBBZGRlZCBJUHY2IHN0YWNrIHR5cGUgY2FsbGVkICJtaW5ndyIuCiAgICogU291cmNlIGNvZGUgY2hhbmdlczoKCiAgIC0gSW5jbHVkZSA8d2luc29jazIuaD4gZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4gaW5zdGVhZCBvZgogICA8d2luc29jay5oPgogICB1bmRlciBNaW5HVyBzdWNoIHRoYXQgSVB2NiBzdXBwb3J0IGlzIGF2YWlsYWJsZS4KICAgLSBNb3ZlZCAjaW5jbHVkZSA8d2luc29jay5oPiBmcm9tIC5jIGZpbGVzIHRvIDxuZXQtc25tcC90eXBlcy5oPi4KICAgLSBBZGRlZCBhIGNvcHkgb2YgdGhlIE1pbkdXIGhlYWRlciBmaWxlIDxzbm1wLmg+ICh3aGljaCBpcyBub3QKICAgY29weXJpZ2h0ZWQpCiAgIGFzIHdpbjMyL1NubXAtd2luRXh0RExMLmguCiAgIC0gYWdlbnQ6IG9ubHkgY2FsbCBjaG93bigpIHdoZW4gYXZhaWxhYmxlIChIQVZFX0NIT1dOKS4KICAgKiBEb2N1bWVudGF0aW9uIGNoYW5nZXM6IHVwZGF0ZWQgUkVBRE1FLndpbjMyLgoKCjIwMTAtMDEtMjIgMDg6MzQgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBjYXN0IGZyb20gY2hhciogdG8gY2hhcioKCjIwMTAtMDEtMjIgMDA6MzkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBDb3B5cmlnaHQgZmlsZSB1cGRhdGUgZm9yIFNQQVJUQSwgSW5jLgoKMjAxMC0wMS0yMiAwMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBhZGQgcHJvcGVyIHByZWZpeGVzIGluIFRTTSBmb3IgU1NILCBEVExTLCBldGMsIGJhc2VkIG9uIHRoZQogICBkb21haW4KCjIwMTAtMDEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhZGRlZCA1LjUgYnJhbmNoCgoyMDEwLTAxLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIG1pbm9yIGVjaG8gb3V0cHV0IGNoYW5nZQoKMjAxMC0wMS0yMSAyMDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY29tbWVudCBuZXh0IHRvIGNvZGUgaXQgaXMgdGFsa2luZyBhYm91dDsgTm8gY29kZSBjaGFuZ2UKCjIwMTAtMDEtMjEgMTQ6NTUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjkyNjM3NDogZnJvbSBFZCBTd2llcms6IGZpeGVkIHJlYWRpbmcgb2YKICAgaXBBZGRyZXNzVGFibGUgZnJvbSAvcHJvYy9uZXQvaWZfaW5ldDYgb24gTGludXgKICAgCiAgIFRoZSBrZXJuZWwgbWlnaHQgcHJvdmlkZSBsb25nZXIgZmllbGRzLCBlc3BlY2lhbGx5IG9uIDY0LWJpdAogICBzeXN0ZW1zLgoKMjAxMC0wMS0yMCAxMjo0MiAgYnZhc3NjaGUKCiAgICogUE9SVElORywgbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEZpeGVkIHR5cG86IHJlcGxhY2VkICduZWNpc3NhcnknIGJ5ICduZWNlc3NhcnknLgoKMjAxMC0wMS0yMCAwODo1MyAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIEZpeCBtaW5vciB0eXBvIGluIG1hbiBwYWdlLCBpdCdzIHNubXBuZXRzdGF0IC1DcCwgbm90IC1DUC4KCjIwMTAtMDEtMTQgMTI6MzQgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBmaXhlZCBtZW1vcnkgbGVhayBpbiBSTU9OLU1JQiBhbmQgRVRIRVJMSUtFLU1JQiB3aGVuCiAgIHRoZXJlIGFyZSBtdWx0aXBsZSBhbGlhc2VzIG9mIGFuIG5ldHdvcmsgaW50ZXJmYWNlCiAgIFJhdGlvbmFsZTogdGhlIGFsaWFzZWQgaW50ZXJmYWNlcyBoYXZlIHRoZSBzYW1lIGlmSW5kZXggLT4KICAgQ09OVEFJTkVSX0lOU0VSVCBmYWlscywgYnV0IHRoZSByZWplY3RlZCBlbnRyeSB3YXMgbm90IGZyZWVkLgoKMjAxMC0wMS0xMyAxMToyMSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggbWVtb3J5IGxlYWsgaW4gaXBBZGRyZXNzUHJlZml4VGFibGUKICAgLSBuZXRfc25tcF9zZWFyY2hfdXBkYXRlX3ByZWZpeF9pbmZvIHJldHVybnMgZGlmZmVyZW50IGNvZGUsIHdoZW4KICAgdGhlIGVudHJ5IHdhcyBub3QgaW5zZXJ0ZWQgdG8gbGlzdCBhbmQgY2FuIGJlIGZyZWVkLgoKMjAxMC0wMS0xMiAwMDo1MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHJ1biBycG0gY29uZmlndXJlIGNoZWNrcyBmb3IgaHJfc3dpbnN0IHJld3JpdGUKICAgKHJwbQogICB2ZXJzaW9uIG9ubHkpCgoyMDEwLTAxLTExIDIzOjU4ICB0YW5kZXJzCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBhZGQgUEVSTExET1BUU19GT1JfQVBQUyB0byBhZ2VudHh0cmFwIGxpbmsgbGluZSAoZml4ZXMKICAgImxpYnBlcmwuc28gbm90CiAgIGZvdW5kIiBlcnJvcnMpCgoyMDEwLTAxLTExIDAwOjExICB0YW5kZXJzCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgZ2V0IHJpZCBvZiB1c2luZyBkZXByZWNhdGVkIHN5bnRheCBmb3IgdHJhcC9pbmZvcm0gc2lua3MKCjIwMTAtMDEtMDggMDg6NDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBvYnNvbGV0ZWQgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHLgogICBGcm9tIG5vdyBvbiB1c2luZyBTSUdBTFJNIHRvIHRyaWdnZXIgTmV0LVNOTVAgYWxhcm0gaGFuZGxlcnMgaXMKICAgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KICAgCiAgIE1vdGl2YXRpb246IGFzIGtub3duIGxpYm5ldHNubXAgc3VwcG9ydHMgdGltZS1iYXNlZCBhbGFybXMgdmlhCiAgIHRoZSBmdW5jdGlvbnMKICAgc25tcF9hbGFybV9yZWdpc3RlcigpLCBydW5fYWxhcm1zKCkgYW5kIG90aGVyIGZ1bmN0aW9ucy4gVHdvCiAgIGRpZmZlcmVudCB3YXlzIHRvCiAgIHRyaWdnZXIgdGhlIGZ1bmN0aW9uIHJ1bl9hbGFybXMoKSBhcmUgc3VwcG9ydGVkIGluc2lkZQogICBsaWJuZXRzbm1wOgogICAxLiBCeSBtYWtpbmcgc3VyZSB0aGF0IHRoZSB0aW1lb3V0IGFyZ3VtZW50IG9mIHNlbGVjdCgpIGlzIHNtYWxsCiAgIGVub3VnaCBzdWNoCiAgIHRoYXQgc2VsZWN0KCkgcmV0dXJucyBiZWZvcmUgdGhlIG5leHQgYWxhcm0gbXVzdCBiZSBoYW5kbGVkICh3aGVuCiAgIHRoZQogICB2YXJpYWJsZSBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaXMgc2V0IHRvIG9uZSwgd2hpY2gKICAgaXMgdGhlCiAgIGRlZmF1bHQpLgogICAyLiBCeSBtYWtpbmcgc3VyZSB0aGF0IHRoZSBrZXJuZWwgZmlyZXMgU0lHQUxSTSBhdCB0aGUgdGltZSB3aGVuCiAgIHJ1bl9hbGFybXMoKQogICBzaG91bGQgYmUgY2FsbGVkICh3aGVuIHRoZSB2YXJpYWJsZQogICBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaXMgc2V0CiAgIHRvIHplcm8sIHdoaWNoIGhhcyB0byBiZSBjb25maWd1cmVkIGV4cGxpY2l0bHkpLgogICAKICAgVGhlIGZvbGxvd2luZyBpc3N1ZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vjb25kIGFwcHJvYWNoOgogICAxLiBBbGFybSBmdW5jdGlvbnMgYXJlIHVzZWQgaW5zaWRlIE5ldC1TTk1QIHRvIGUuZy4gcmVmcmVzaAogICBjYWNoZWQgdGFibGUKICAgY29udGVudHMuIEFzIGZhciBhcyBJIGNhbiBzZWUgdGhlcmUgaXMgbm90aGluZyBpbiB0aGUgTmV0LVNOTVAKICAgc291cmNlIGNvZGUKICAgdGhhdCBwcmV2ZW50cyB0aGUgZm9sbG93aW5nIGZyb20gaGFwcGVuaW5nOiBhIHRhYmxlIHJlZnJlc2gKICAgdHJpZ2dlcmVkIHZpYQogICBTSUdBTFJNIHdoaWxlIGEgcm93IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSBhIGNhY2hlZCB0YWJsZS4gVGhpcwogICBjYW4gcmVzdWx0CiAgIGluIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBldmVuIGEgY3Jhc2guCiAgIDIuIFBPU0lYIHJlc3RyaWN0cyBzaWduYWwgaGFuZGxlcnMgdG8gY2FsbGluZyBmdW5jdGlvbnMgdGhhdCBhcmUKICAgZWl0aGVyIHJlZW50cmFudAogICBvciBub24taW50ZXJydXB0aWJsZQogICAoaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy94c2hfY2hhcDAyXzA0Lmh0bWwjdGFnXzAyXzA0KS4KICAgU3RhbmRhcmQgSS9PIGZ1bmN0aW9ucyBsaWtlIHByaW50ZigpIGFuZCBmcHJpbnRmKCkgYXJlIG5laXRoZXIKICAgcmVlbnRyYW50IG5vcgogICBub24taW50ZXJydXB0aWJsZS4gcnVuX2FsYXJtcygpIGlzIGNhbGxlZCBmcm9tIGluc2lkZSBhIHNpZ25hbAogICBoYW5kbGVyLCB3aGljaAogICBtZWFucyB0aGF0IHRoaXMgcmVzdHJpY3Rpb24gYXBwbGllcyB0byB0aGUgZnVuY3Rpb24gcnVuX2FsYXJtcygpCiAgIGl0c2VsZiBhbmQKICAgYWxsIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQgKHdoaWNoIGluY2x1ZGVzIHRoZSBhbGFybSBjYWxsYmFjawogICBmdW5jdGlvbnMpLgogICBPcjogZS5nLiBzbm1wX2xvZygpIGFuZCBpdHMgY2FsbGVycyBtdXN0IG5vdCBiZSBjYWxsZWQgZnJvbQogICBpbnNpZGUgcnVuX2FsYXJtcygpCiAgIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkIGZyb20gaW5zaWRlIGEgc2lnbmFsIGhhbmRsZXIuIFRoaXMKICAgaXMgYSBzZXZlcmUKICAgcmVzdHJpY3Rpb24sIGFuZCBvbmUgdGhhdCBpcyBoYXJkIHRvIHdvcmsgd2l0aC4KICAgMy4gTm90IGFsbCBzb2Z0d2FyZSBkZXZlbG9wZXJzIGtub3cgaG93IHRvIG1ha2Ugc3VyZSB0aGF0IHNpZ25hbAogICBkZWxpdmVyeSB3b3JrcwogICBjb3JyZWN0bHkgaW4gYSBtdWx0aXRocmVhZGVkIGNvbnRleHQuIFBPU0lYIGRvZXMgbm90IGd1YXJhbnRlZSB0bwogICB3aGljaCB0aHJlYWQKICAgYSBzaWduYWwgbGlrZSBTSUdBTFJNIHdpbGwgYmUgZGVsaXZlcmVkLCB1bmxlc3MgdGhhdCBzaWduYWwgaGFzCiAgIGJlZW4gYmxvY2tlZAogICBiZWZvcmUgdGhyZWFkIGNyZWF0aW9uIGFuZCBpcyB1bmJsb2NrZWQgYWZ0ZXIgdGhyZWFkIGNyZWF0aW9uCiAgIChzZWUgYWxzbwogICBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3B0aHJlYWRfc2lnbWFzay5odG1sKS4KICAgVGhpcyBpcyByZWxldmFudCBmb3IgdGhlIE5ldC1TTk1QIHByb2plY3Qgbm90IG9ubHkgYmVjYXVzZSBhCiAgIHdvcmtlciB0aHJlYWQgaXMKICAgY3JlYXRlZCBpbnNpZGUKICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jIGJ1dCBhbHNvCiAgIGJlY2F1c2UgbGlibmV0c25tcCBpcyBvZnRlbiB1c2VkIGluc2lkZSBtdWx0aXRocmVhZGVkIHNvZnR3YXJlLgogICBDdXJyZW50bHkgbm8KICAgYXR0ZW1wdCBpcyBtYWRlIHRvIG1ha2Ugc3VyZSB0aGF0IFNJR0FMUk0gaXMgcHJvY2Vzc2VkIGJ5IHRoZQogICBOZXQtU05NUCBldmVudAogICBwcm9jZXNzaW5nIGxvb3AgdGhyZWFkLiBJZiBTSUdBTFJNIGlzIHByb2Nlc3NlZCBieSBhbm90aGVyCiAgIHRocmVhZCwgdGhpcyB3aWxsCiAgIHJlc3VsdCBpbiBvbmUgb3IgbW9yZSBkYXRhIHJhY2VzLgogICAKICAgQmVjYXVzZSBhbGwgdGhlIGRpZmZpY3VsdGllcyBhc3NvY2lhdGVkIHdpdGggcHJvY2Vzc2luZyBhbGFybXMKICAgZnJvbSBpbnNpZGUgYQogICBzaWduYWwgaGFuZGxlciBmdW5jdGlvbiwgYW5kIGJlY2F1c2UgZml4aW5nIHRoZXNlIHdvdWxkIHJlcXVpcmUKICAgbW9yZSBlZmZvcnQgdGhhbgogICBpdCBpcyB3b3J0aCwgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGhhcyBiZWVuCiAgIGRlcHJlY2F0ZWQgYW5kIGZyb20gbm93CiAgIG9uIGFwcHJvYWNoICgxKSBpcyB0aGUgb25seSBzdXBwb3J0ZWQgYXBwcm9hY2ggdG8gdHJpZ2dlciBhbGFybQogICBoYW5kbGVycy4KCjIwMTAtMDEtMDcgMTk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBQYXRjaCBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIHRvIGZpeCBhIG1pbm9yIG1lbWxlYWsgaW4gY3B1CiAgIHN5c2N0cmwgZmV0Y2hpbmcKCjIwMTAtMDEtMDcgMTY6MjEgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBSZW1vdmVkIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCksIGFuZCBtYWRlIHN1cmUgdGhhdAogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpICdcMCctdGVybWluYXRlcyB0aGUgb3V0cHV0IGJ1ZmZlcgogICBpbiBhbGwgY2FzZXMuCiAgIFVwZGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgdW5pdCB0ZXN0cy4KCjIwMTAtMDEtMDcgMTQ6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUmVtb3ZlZCB0aHJlZSBzdXBlcmZsdW91cyBjYXN0cyBiZWNhdXNlIHRoZXNlIHRyaWdnZXJlZCBhCiAgIGNvbXBpbGVyIHdhcm5pbmcKICAgd2hlbiBjb21waWxlZCB3aXRoIE1TVkMuCgoyMDEwLTAxLTA3IDEzOjI4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCB0aGUgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBjaGFuZ2VzIGZyb20gcjE3OTkyCiAgIGJlY2F1c2UgdGhlc2UKICAgY2F1c2VkIHRoZSBmb2xsb3dpbmcgVmFsZ3JpbmQgY29tcGxhaW50IGR1cmluZyBzbm1wZCBzdGFydHVwOgogICAKICAgPT0yNTIwMT09IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQKICAgdmFsdWUocykKICAgPT0yNTIwMT09IGF0IDB4NDA0N0IxNDogbmV0c25tcF9zZW5kX3RyYXBzIChhZ2VudF90cmFwLmM6Nzk4KQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MTI4OiBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzCiAgIChhZ2VudF90cmFwLmM6ODUzKQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MTlEOiBzZW5kX3RyYXBfdmFycyAoYWdlbnRfdHJhcC5jOjk2MykKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODI1Qjogc2VuZF9lYXN5X3RyYXAgKGFnZW50X3RyYXAuYzoxMDExKQogICA9PTI1MjAxPT0gYnkgMHg4MDRCNUQyOiBtYWluIChzbm1wZC5jOjM5NCkKCjIwMTAtMDEtMDcgMTI6MzAgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4ZWQgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaC4KCjIwMTAtMDEtMDcgMTI6MTkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oOgoKICAgRGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBhc3NpZ25pbmcgYSBjaGFyICogcG9pbnRlciB0bwogICBzeXNPUlRhYmxlOjpPUl9kZXNjciBkb2VzIG9yIGRvZXMgbm90IHRyYW5zZmVyCiAgIG93bmVyc2hpcC4gU28gd2hldGhlciBPUl9kZXNjciBpcyBkZWNsYXJlZCBhcyBjaGFyICogb3IgYXMgY29uc3QKICAgY2hhciAqLCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhdAogICBsZWFzdCBvbmUgc3RhdGVtZW50IG9uIHdoaWNoIHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBjaGFyCiAgICogIC8gY29uc3QgY2hhciAqIG1pc21hdGNoLiBUaGUgb25seSAgICBzb2x1dGlvbiBpcyB0byBjYXN0IGF3YXkKICAgICAgY29uc3Qgd2hlcmUgYXBwcm9wcmlhdGUgdG8gbWFrZSBzdXJlICAgIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90CiAgICAgIGNvbXBsYWluLCAgICBhcyBpbXBsZW1lbnRlZCBpbiB0aGlzIHBhdGNoLiAgMjAxMC0wMS0wNyAxMTo0NiAKICAgICAgYnZhc3NjaGUKCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgdXNtX3NhdmVfdXNlcigpOiB3aGVuIHdyaXRpbmcgdXNlci0+bmFtZSBhbmQgdXNlci0+c2VjTmFtZSwgb25seQogICB3cml0ZSB0aGUgQVNDSUkgZGF0YSBhbmQgbm90IHRoZQogICB0ZXJtaW5hdGluZyAnXDAnLiBTaW5jZSBib3RoIGl0ZW1zIGFyZSByZWFkIGJ5IGNhbGxpbmcKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSwgd3JpdGluZwogICB0aGUgdGVybWluYXRpbmcgJ1wwJyBpcyBub3QgbmVjZXNzYXJ5IHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBkYXRhCiAgIHJlYWQgYmFjayBpcyB0ZXJtaW5hdGVkIHByb3Blcmx5LgoKMjAxMC0wMS0wNyAwOToxMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ2hhbmdlZCB0aGUgYmVoYXZpb3Igb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKTogdW50aWwKICAgbm93IHRoaXMKICAgZnVuY3Rpb24gdGVybWluYXRlZCB0aGUgb3V0cHV0IGJ1ZmZlciBpbiBzb21lIGNhc2VzIHdpdGggJ1wwJwogICAod2hlbiB0aGUKICAgaW5wdXQgd2FzIGluIHRoZSBmb3JtYXQgMHguLi4gYW5kIGEgYnVmZmVyIG92ZXJmbG93IG9jY3VycmVkIGFuZAogICBhbHNvCiAgIHdoZW4gdGhlIGlucHV0IHdhcyBpbiBBU0NJSSBmb3JtYXQsIGJ1dCBub3Qgd2hlbiB0aGUgaW5wdXQgd2FzIGluCiAgIGZvcm1hdAogICAweC4uLiBhbmQgbm8gYnVmZmVyIG92ZXJmbG93IG9jY3VycmVkKS4gQ2hhbmdlZCB0aGlzIHN1Y2ggdGhhdAogICB0aGlzCiAgIGZ1bmN0aW9uIGRvZXMgbm8gbG9uZ2VyIHRlcm1pbmF0ZSB0aGUgaW5wdXQgYnVmZmVyIHdpdGggJ1wwJy4KICAgVGhpcwogICBjaGFuZ2Ugd2FzIHBvc3NpYmxlIGJlY2F1c2UgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0IGFsbAogICBjYWxsZXJzIHRoYXQKICAgbmVlZGVkIGEgJ1wwJyB0ZXJtaW5hdGVkIHN0cmluZyBoYXZlIGJlZW4gY29udmVydGVkIHRvIHVzZQogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGluc3RlYWQuCgoyMDEwLTAxLTA2IDE3OjUyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBSZXZlcnRlZCByMTc5NjggYW5kIHIxNzk3Mi4KCjIwMTAtMDEtMDYgMTU6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeGVkIG1vcmUgY29tcGlsZXIgd2FybmluZ3MgcmVsYXRlZCB0byB0aGUgdXNlIG9mIHRoZSBjb25zdAogICBrZXl3b3JkLgoKMjAxMC0wMS0wNiAxNTozOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeGVkIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2guCgoyMDEwLTAxLTA2IDE1OjM2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oOgoKICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gY2hhciAqIGludG8gY29uc3QgY2hhciAqLiBTaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkIGluIHIxNzk3NS4KCjIwMTAtMDEtMDYgMTU6MzMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAxNTozMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHRoZSBmdW5jdGlvbnMgcmVnaXN0ZXJfY29uc3RfY29uZmlnX2hhbmRsZXIoKSBhbmQKICAgc25tcGRfcmVnaXN0ZXJfY29uc3RfY29uZmlnX2hhbmRsZXIoKSwgd2hpY2gKICAgYWNjZXB0IGEgcGFyc2VyIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBzdHJpbmcgdGhhdCBpdAogICBwYXJzZXMuIFVzaW5nIHRoZXNlIGZ1bmN0aW9ucyByZXN1bHRzCiAgIGluIGVhc2llciB0byByZWFkIGNvZGUgdGhhbiB1c2luZyB0aGUgbm9uLWNvbnN0IGhhbmRsZXIKICAgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBhbmQgY2FzdGluZyB0aGUgcGFyc2VyCiAgIGZ1bmN0aW9uIGV4cGxpY2l0bHkgZnJvbSAodm9pZCgqKShjb25zdCBjaGFyKiwgY29uc3QgY2hhciopKSB0bwogICAodm9pZCgqKShjb25zdCBjaGFyKiwgY2hhciopKS4KCjIwMTAtMDEtMDYgMTU6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCByZWFkX2NvbmZpZ19yZWFkX29iamlkX2NvbnN0KCkuCgoyMDEwLTAxLTA2IDE0OjQyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBEdXBsaWNhdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUoKSAvCiAgIFJFR0lTVEVSX1NZU09SX0VOVFJZKCkKICAgc2luY2UgdGhhdCBhcmd1bWVudCBpcyBmcmVlZCB3aGlsZSB1bnJlZ2lzdGVyaW5nIHN1Y2ggYW4gZW50cnkuCiAgIE5vdCBzdXJlIHdoZXRoZXIKICAgdGhpcyBjb3VsZCBhY3R1YWxseSB0cmlnZ2VyIGEgY2FsbCBvZiBmcmVlKCkgd2l0aCBhIGNvbnN0YW50CiAgIHN0cmluZyBhcyBhcmd1bWVudAogICBhbmQgSSdtIG5laXRoZXIgc3VyZSBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvdWxkIGhhdmUKICAgdHJpZ2dlcmVkIGEgY3Jhc2guCgoyMDEwLTAxLTA2IDE0OjM0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZvciB0aG9zZSBWQUNNIGZ1bmN0aW9ucyB0aGF0IGRvIG5vdCBtb2RpZnkgdGhlIHN0cmluZ3MgcGFzc2VkIGFzCiAgIGFyZ3VtZW50cywKICAgY2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZSBmcm9tIGNoYXIgKiB0byBjb25zdCBjaGFyICouCgoyMDEwLTAxLTA2IDE0OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jOgoKICAgUmVtb3ZlZCBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDEwLTAxLTA2IDE0OjE0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jOgoKICAgRHVwbGljYXRlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFKCkgLwogICBSRUdJU1RFUl9TWVNPUl9FTlRSWSgpCiAgIHNpbmNlIHRoYXQgYXJndW1lbnQgaXMgZnJlZWQgd2hpbGUgdW5yZWdpc3RlcmluZyBzdWNoIGFuIGVudHJ5LgogICBOb3Qgc3VyZSB3aGV0aGVyCiAgIHRoaXMgY291bGQgYWN0dWFsbHkgdHJpZ2dlciBhIGNhbGwgb2YgZnJlZSgpIHdpdGggYSBjb25zdGFudAogICBzdHJpbmcgYXMgYXJndW1lbnQKICAgYW5kIEknbSBuZWl0aGVyIHN1cmUgYWJvdXQgd2hldGhlciBvciBub3QgdGhpcyBjb3VsZCBoYXZlCiAgIHRyaWdnZXJlZCBhIGNyYXNoLgoKMjAxMC0wMS0wNiAxNDowOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuaDoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QKICAgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMTQ6MDQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIG5ldyBmdW5jdGlvbnMgc2tpcF93aGl0ZV9jb25zdCgpLCBza2lwX25vdF93aGl0ZV9jb25zdCgpLAogICBza2lwX3Rva2VuX2NvbnN0KCksIGNvcHlfbndvcmRfY29uc3QoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKS4KICAgLSBDaGFuZ2VkIHJldHVybiB0eXBlIG9mIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgZnJvbQogICBjaGFyICogdG8KICAgY29uc3QgY2hhciAqLiBOb3RlOiB0aGlzIGRvZXMgbm90IGFmZmVjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQogICBzaW5jZSB0aGlzCiAgIGZ1bmN0aW9uIGhhcyBub3QgeWV0IGJlZW4gaW5jbHVkZWQgaW4gYW55IHJlbGVhc2UuCiAgIC0gRml4ZWQgZG9jdW1lbnRhdGlvbiBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLgogICAtIFJlZHVjZWQgbnVtYmVyIG9mIGNhc3QtYXdheS1jb25zdCBjb25zdHJ1Y3RzIGluIHJlYWRfY29uZmlnLmMuCgoyMDEwLTAxLTA2IDEzOjM1ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIFJlZmluZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtYWNybyBORVRTTk1QX1JFTU9WRV9DT05TVCgpOgogICB3aGVuIHVzaW5nCiAgIHRoZSBnY2MgY29tcGlsZXIsIGl0IGlzIG5vdyB2ZXJpZmllZCB3aGV0aGVyIHRoZSB0eXBlcyAoY29uc3QgdCkKICAgYW5kIHR5cGVvZihlKQogICBhcmUgY29tcGF0aWJsZSwgd2hlcmUgdCBpcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIGUgdGhlIHNlY29uZAogICBhcmd1bWVudCBvZgogICB0aGlzIG1hY3JvLgoKMjAxMC0wMS0wNiAxMzozMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0Lmg6CgogICBBZGQgc3VwcG9ydCBvZiBuZXR3b3JrIGludGVyZmFjZXMgd2l0aCBIVyBhZGRyZXNzIGJpZ2dlciB0aGFuIDYKICAgYnl0ZXMgdG8gYXRUYWJsZS4gU29tZSBIVywgbGlrZSBJbmZpbmlCYW5kLCB1c2VzIEhXIGFkZHJlc3NlcwogICB3aXRoIDkgYW5kIG1vcmUgYnl0ZXMuCgoyMDEwLTAxLTA2IDEyOjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMjkyNDE0MDogRml4IHRlcm1pbmF0aW9uIG9mIENQVS9GUFUgdHlwZXMKCjIwMTAtMDEtMDYgMTI6MzMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MjIzOTA6IEZpeCB0ZXN0IGZvciBtaXNzaW5nIGNvbnRleHROYW1lCiAgIHBhcmFtZXRlcgoKMjAxMC0wMS0wNiAxMTo1NyAgYnZhc3NjaGUKCiAgICogIGFnZW50L3NubXBfcGVybC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBDaGFuZ2VzOgogICAtIEludHJvZHVjZWQgYSBuZXcgbWFjcm8gTkVUU05NUF9SRU1PVkVfQ09OU1QoKSB0aGF0IGFsbG93cyB0bwogICBjYXN0CiAgIGF3YXkgY29uc3RuZXNzIHdpdGhvdXQgdGhhdCBnY2MgLVdjYXN0LXF1YWwgcmVwb3J0cyBhIHdhcm5pbmcuCiAgIC0gTWFkZSBjYXN0aW5nIGF3YXkgY29uc3RuZXNzIGV4cGxpY2l0IGJ5IGludHJvZHVjaW5nIHRoZQogICBORVRTTk1QX1JFTU9WRV9DT05TVCgpIG1hY3JvLiBUaGlzIHN1cHByZXNzZXMgdGhlIHdhcm5pbmcKICAgZ2NjIC1XY2FzdC1xdWFsIHByaW50ZWQgZm9yIHRoZXNlIHN0YXRlbWVudHMuCgoyMDEwLTAxLTA2IDExOjQ2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMDk6MTQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9hZ2VudHh0cmFwLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERvIG5vdCB1c2UgMCB3aGVuIHJlZmVycmluZyB0byBOVUxMLgoKMjAxMC0wMS0wNiAwODoyNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlcyBvZiBjYWxjdWxhdGVfdGltZV9kaWZmKCkgYW5kCiAgIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKQogICBmcm9tIHN0cnVjdCB0aW1ldmFsICogdG8gY29uc3Qgc3RydWN0IHRpbWV2YWwgKi4gTm90ZTogdGhpcyBkb2VzCiAgIG5vdCBhZmZlY3QKICAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDEwLTAxLTA2IDA4OjIzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENoYW5nZXMgKG5vIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gbW9kaWZpZWQpOgogICAtIFJlbW92ZWQgZGlza2lvX3BhcnNlX2NvbmZpZygpIGRlY2xhcmF0aW9uIGJlY2F1c2UgdGhhdCBmdW5jdGlvbgogICBpcyBuZWl0aGVyIGNhbGxlZCBub3IgZGVmaW5lZCBpbiB0aGUgc291cmNlIGZpbGUgZGlza2lvLmMuCiAgIC0gQWRkZWQgZGVjbGFyYXRpb24gZm9yIGdldHN0YXRzKCkgc3VjaCB0aGF0IGdjYyBkb2VzIG5vdAogICBjb21wbGFpbiBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24uCiAgIC0gTGludXg6IGNoYW5nZWQgdmlzaWJpbGl0eSBvZiBnZXRzdGF0cygpIGZyb20gZ2xvYmFsIHRvIHN0YXRpYwogICBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgQlNEIGFuZCBEYXJ3aW4gaW1wbGVtZW50YXRpb25zIG9mCiAgIGdldHN0YXRzKCkuCgoyMDEwLTAxLTA2IDA4OjAwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICogbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMDI6MTggIG1hZ2ZyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBtYW4vTWFrZWZpbGUuaW4sIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBDSEFOR0VTOiBhcHBzOiBPbmx5IGJ1aWxkIGFnZW50eHRyYXAgaWYgdGhlIGFnZW50eCBsaWJyYXJpZXMgYXJlCiAgIGJ1aWx0LiBBZGQgYSB0ZXN0IGNhc2UgZm9yIGFnZW50eHRyYXAuCiAgIAogICBUaGUgZW5hYmxlbWVudC9kaXNhYmxlbWVudCBpcyBpbnNwaWVyZWQgYnkgYXV0b21ha2UgY29uZGl0aW9uYWxzCgoyMDEwLTAxLTA2IDAxOjU5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHN0YXJ0dGltZS4KCjIwMTAtMDEtMDUgMjI6NTQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oOgoKICAgQ0hBTkdFUzogSGlkZSBtb3N0IGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGluIHRoZSBsb2dtYXRjaAogICBtb2R1bGUuIENsZWFuZWQgdXAgdGhlIGhlYWRlciBhY2NvcmRpbmdseS4gUmVtb3ZlIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucyBieSByZW9yZGVyaW5nIHRoZSBmdW5jdGlvbnMuCgoyMDEwLTAxLTA1IDIyOjMzICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUdTOiAyOTE5Mzc5OiBJbml0aWFsaXNlIFNOTVAgc2Vzc2lvbnMgcHJvcGVybHkKICAgUHJvdmlkZWQgYnkgRGllZ28gQmlsbGkKCjIwMTAtMDEtMDUgMjI6MjAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTE5MzIwOiBBdm9pZCBhY2Nlc3NpbmcgZnJlZWQgbWVtb3J5CiAgIFJlcG9ydGVkIGJ5IFRvbWFzeiBMaXMKCjIwMTAtMDEtMDUgMTg6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAyOTE0NDEwOiBGaXggY3Jhc2ggb24gZW1wdHkgY29tbWFuZCBsaW5lcwoKMjAxMC0wMS0wNSAxNTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTI1ODQ6IEZpeCBudWxsIE9JRCBoYW5kbGluZyBpbiBBZ2VudHgKICAgb24gNjRiaXQKICAgUGF0Y2ggc3VwcGxpZWQgYnkgTHV0eiBKYWVuaWNrZQoKMjAxMC0wMS0wNSAxMDoxMSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBDSEFOR0VTOiBocHV4OiBmaXggYnVpbGQgZXJyb3Igb24gSFAtVVggMTAuMjAKCjIwMTAtMDEtMDUgMDg6NDIgIGpzYWZyYW5lawoKICAgKiBtYW4sIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFJlbW92ZSBnZW5lcmF0ZWQgbWFuIHBhZ2VzIGZyb20gcmVwb3NpdG9yeS4KCjIwMTAtMDEtMDQgMTY6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeGVkIGEgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWQgdGhhdCBvY2N1cnJlZCB3aGVuIGFuIEFTQ0lJCiAgIHN0cmluZyB3YXMKICAgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIC8KICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBhbmQgdGhlIHRoaXJkIGFyZ3VtZW50ICgqbGVuKQogICBlcXVhbHMgMC4KCjIwMTAtMDEtMDQgMTY6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNhc3RpbmcgYXdheSAnY29uc3QnLgoKMjAxMC0wMS0wNCAxNjoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgdW5pdCB0ZXN0IGZvciByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLgoKMjAxMC0wMS0wNCAxMDo0NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgY29ycmVjdCBvaWQgbGVuZ3RoIGluIHRhYmxlIGluZGV4ZXMuCgoyMDEwLTAxLTA0IDA4OjEwICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHNubXBfYWxhcm0uYyBjYW4gYmUgY29tcGlsZWQgYWdhaW4gd2l0aCBDODkKICAgY29tcGlsZXJzOiBmb3IgQzg5CiAgIGl0IGlzIHJlcXVpcmVkIHRoYXQgaW5pdGlhbGl6ZXJzIGFyZSBjb25zdGFudCBleHByZXNzaW9ucy4KCjIwMTAtMDEtMDMgMTY6MjggIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYzoKCiAgIFJlbmFtZSBuZXRzbm1wX2FyY2hfdGNwY29ubl9kZWxldGUgdG8KICAgbmV0c25tcF9hcmNoX3RjcGNvbm5fZW50cnlfZGVsZXRlIGluIG9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aAogICB0aGUgaGVhZGVyIGZpbGUgYW5kIGFsbCB0aGUgb3RoZXIgZnVuY3Rpb25zIGluIHRoZSBtb2R1bGUuCgoyMDEwLTAxLTAzIDE2OjI2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQWRkIG1pc3NpbmcgZGVjbGFyYXRpb25zLgoKMjAwOS0xMi0zMCAxMjo0OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTMzOiBmaXhlZCB0aGUgaXNzdWUgdGhhdCBpbmNsdWRpbmcgdGhlIGhlYWRlcgogICBmaWxlCiAgIDxuZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg+IGZyb20gPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4KICAgdHJpZ2dlcnMKICAgY29tcGlsZXIgZXJyb3JzIGR1cmluZyB0aGUgY29uZmlndXJlIHByb2Nlc3MgKGNvbXBsYWludHMgYWJvdXQKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+IG5vdCBiZWluZyBpbmNsdWRlZCBiZWZvcmUKICAgPG5ldC1zbm1wL3R5cGVzLmg+KS4KICAgTm90ZTogdGhpcyBkb2VzIG5vdCBzb2x2ZSB0aGUgdW5kZXJseWluZyBwcm9ibGVtIHRoYXQgTUlCIGNvZGUKICAgbXVzdCBub3QKICAgaW5jbHVkZSB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL3R5cGVzLmg+IGJlY2F1c2UgZG9pbmcgc28gd291bGQKICAgdHJpZ2dlciBhCiAgIGNpcmN1bGFyIGRlcGVuZGVuY3kgZHVyaW5nIHRoZSBjb25maWd1cmUgc3RlcCAoTUlCIGNvZGUgaXMKICAgY29tcGlsZWQgZHVyaW5nCiAgIHRoZSBjb25maWd1cmUgc3RlcCwgd2hpbGUgdGhlIGNvbmZpZ3VyZSBzdGVwIGdlbmVyYXRlcwogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4gYW5kIDxuZXQtc25tcC90eXBlcy5oPiBuZWVkcwogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4pLgoKMjAwOS0xMi0zMCAxMTo0OCAgYnZhc3NjaGUKCiAgICogYXBwcywgbWFuOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTk6IHVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdHMuCgoyMDA5LTEyLTI4IDE4OjAzICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgRml4ZWQgYSBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZC4gRm91bmQgdGhpcyBieSBhbmFseXppbmcgY29tcGlsZXIKICAgd2FybmluZ3MuCiAgIE5vdGU6IHRoZSBhZmZlY3RlZCBmdW5jdGlvbiwgcmVnaXN0ZXJfc3RyaW5nX2luZGV4KCksIGlzbid0CiAgIGNhbGxlZCBmcm9tCiAgIGFueXdoZXJlIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdCBpdHNlbGYuCgoyMDA5LTEyLTIzIDA5OjQ5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBGaXggaW52YWxpZCByZWFkIHJlcG9ydGVkIGJ5IHZhbGdyaW5kOgogICBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSAxCiAgIG1lbWNweSAobWNfcmVwbGFjZV9zdHJtZW0uYzo0MDIpCiAgIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19jb250YWluZXJfbG9hZF92NAogICAoaXBhZGRyZXNzX2lvY3RsLmM6MjQwKQogICBuZXRzbm1wX2FyY2hfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkIChpcGFkZHJlc3NfbGludXguYzoxNTgpCiAgIG5ldHNubXBfYWNjZXNzX2lwYWRkcmVzc19jb250YWluZXJfbG9hZCAoaXBhZGRyZXNzX2NvbW1vbi5jOjExMikKICAgCiAgIFJldHVybmluZyBzdHJ1Y3R1cmUgd2l0aCBwb2ludGVycyBpbnNpZGUgaXMgbm90IHRoZSBiZXN0IHRoaW5nIHRvCiAgIGRvLgoKMjAwOS0xMi0yMiAxNjowNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZpeGVkIHNldmVyYWwgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWRzLgoKMjAwOS0xMi0yMiAxMjowMiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgCiAgICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBSZXZlcnRlZCB0aGUgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2VzIG9mIHIxNzkxMzoKICAgLSBSZXN0b3JlZCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgRElGRlRJTUVWQUwoKSBtYWNyby4KICAgLSBSZXN0b3JlZCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlIGZ1bmN0aW9ucwogICBjYWxjdWxhdGVfdGltZV9kaWZmKCksCiAgIHVhdGltZV9yZWFkeSgpLCBtYXJrZXJfdHRpY2tzKCkgYW5kIHRpbWV2YWxfdHRpY2tzKCkuCiAgIC0gc3RhcnR0aW1lIGlzIGFnYWluIGEgZ2xvYmFsIHZhcmlhYmxlIGluc3RlYWQgb2YgYSBzdGF0aWMgb25lLgogICBBbHNvIGltcGxlbWVudGVkIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKICAgLSBNb3ZlZCB0aGUgbWFya2VyX3QgdHlwZWRlZiBmcm9tIG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCB0bwogICBuZXQtc25tcC9saWJyYXJ5L3R5cGVzLmguCiAgIC0gQWRkZWQgYSBuZXcgdHlwZWRlZiwgY29uc3RfbWFya2VyX3QuCiAgIC0gRm9yIHRob3NlIGF0aW1lXyooKSAvIHVhdGltZV8qKCkgLyAqX3R0aWNrcygpIGZ1bmN0aW9ucyB0aGF0IGRvCiAgIG5vdCBjaGFuZ2UKICAgdGhlaXIgYXJndW1lbnRzLCBkZWNsYXJlZCB0aGVzZSBhcmd1bWVudHMgY29uc3RfbWFya2VyX3QgaW5zdGVhZAogICBvZiBtYXJrZXJfdC4KICAgLSBSZW5hbWVkIG5ldHNubXBfZ2V0X3N0YXJ0dGltZSgpIGFuZCBuZXRzbm1wX3NldF9zdGFydHRpbWUoKSB0bwogICBuZXRzbm1wX2dldF9hZ2VudF9zdGFydHRpbWUoKSBhbmQgbmV0c25tcF9zZXRfYWdlbnRfc3RhcnR0aW1lKCkKICAgcmVzcGVjdGl2ZWx5LiBNb3ZlZCB0aGVzZSBmdW5jdGlvbnMgZnJvbSB0b29scy5jIHRvIHN5c3RlbS5jLgogICAtIFJlbW92ZWQgdGhlIGZ1bmN0aW9uIGF0aW1lX2hzdWJ0cmFjdCgpICh3YXMgaW50cm9kdWNlZCBpbgogICByMTc5MTMpIGFuZAogICBpbnRyb2R1Y2VkIGEgbmV3IGZ1bmN0aW9uLCBuZXRzbm1wX3NldF9hZ2VudF91cHRpbWUoKS4KCjIwMDktMTItMjIgMDc6NTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldmVydGVkIHIxNzkyNiwgd2hpY2ggbWFkZSB0aGUgc3RyaW5nIHJldHVybmVkIGJ5CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVkLiBBIG5ldyBwYXRjaCB3aWxsCiAgIGZvbGxvdwogICB0aGF0IGZpeGVzIHRoZSBjYWxsZXJzIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgdGhhdAogICB3ZXJlCiAgIGFzc3VtaW5nIHRoYXQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB6ZXJvLXRlcm1pbmF0ZXMgdGhlCiAgIHN0cmluZwogICByZWFkIGJ5IHRoaXMgZnVuY3Rpb24uCgoyMDA5LTEyLTIxIDE0OjI5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBjcmFzaCBpbiBJRi1NSUIgYW5kIElQLU1JQiB3aGVuIHRoZXJlIGFyZQogICBzb21lIGludGVyZmFjZXMgd2l0aCBicm9hZGNhc3QgSVAgYWRkcmVzcyBhbmQgc29tZSB3aXRob3V0LgogICAKICAgUmVzZXQgdGhlIGJjYXN0ZW50cnkgaW4gdGhlIGxvb3AsIHNvIGl0IGNhbm5vdCBiZSBpbnNlcnRlZCB0byB0aGUKICAgY29udGFpbmVyCiAgIHR3aWNlLgogICAKICAgV2l0aG91dCB0aGlzIHBhdGNoLCB3aGVuIGFuIGludGVyZmFjZSB3aXRob3V0IGJyb2FkY2FzdCBhZGRyZXNzCiAgIGlzIHByb2Nlc3NlZCwKICAgdGhlIGJjYXN0YWRkcmVzcyBmcm9tIHByZXZpb3VzIGxvb3AgaXMgaW5zZXJ0ZWQgaW50byB0aGUKICAgY29udGFpbmVyLiBUaGlzCiAgIG9idmlvdXNseSBmYWlscyBhbmQgdGhlIGJjYXN0ZW50cnkgaXMgZnJlZWQsIGJ1dCB0aGUgY29udGFpbmVyCiAgIHN0aWxsIGNvbnRhaW5zCiAgIHJlZmVyZW5jZSB0byBpdCAtPiBTSUdTRUdWLgoKMjAwOS0xMi0yMSAxMzo1MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5Mjg6IHdoaWxlIHIxNzkyOCBmaXhlZCBhIGRhbmdsaW5nIHBvaW50ZXIKICAgZGVyZWZlcmVuY2UKICAgZGV0ZWN0ZWQgYnkgcnVubmluZyB0aGUgTmV0LVNOTVAgc29mdHdhcmUgb24gV2luZG93cywgdGhhdCBwYXRjaAogICBpbnRyb2R1Y2VkCiAgIGEgZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZSBhYm91dCB3aGljaCBvbmx5IFZhbGdyaW5kIG9uIExpbnV4CiAgIGNvbXBsYWluZWQuCiAgIFRoaXMgZm9sbG93LXVwIHBhdGNoIGZpeGVzIGJvdGggZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMKICAgdHJpZ2dlcmVkIGJ5CiAgIHBhcnNpbmcgdGhlIHBlcnNpc3RlbnREaXIga2V5d29yZC4KCjIwMDktMTItMjEgMTM6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQXBwbGllZCBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzI5MDExMjIuIENoYW5nZXM6CiAgIC0gTmV3IGZlYXR1cmU6IHNwZWNpZnlpbmcgQVNOIHR5cGUgU05NUF9OT1NVQ0hJTlNUQU5DRSBhcyB0aGUKICAgdGhpcmQgYXJndW1lbnQKICAgb2YgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIHdpbGwgY2F1c2UgYW4gU05NUCBHZXRSZXF1ZXN0IC8KICAgR2V0TmV4dFJlcXVlc3QgdG8KICAgcmV0dXJuIHRoZSBlcnJvciBjb2RlIG5vU3VjaEluc3RhbmNlIChTTk1QdjIpIG9yIG5vU3VjaE5hbWUKICAgKFNOTVB2MSkuIFRoaXMKICAgbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBhIGNhY2hlZCB0YWJsZSB3aXRoIG9uZSBvciBtb3JlCiAgICJob2xlcyIuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBkbyBub3QgZnJlZSgpIC8gbWFsbG9jKCkgdGhlIG1lbW9yeQogICBmb3Igc3RvcmluZwogICB0aGUgY2FjaGVkIHZhbHVlIGlmIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4gbW9kaWZpZWQuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBkbyBub3QgZnJlZSgpIC8gbWFsbG9jKCkgdGhlIG1lbW9yeQogICBmb3Igc3RvcmluZwogICB0aGUgY2FjaGVkIHZhbHVlIGlmIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGhhcyBub3QgYmVlbgogICBtb2RpZmllZC4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGlmIHRoZSBzaXplIG9mIHRoZSBjYWNoZWQgdmFsdWUKICAgc2hydW5rLCB1c2UKICAgcmVhbGxvYygpIGluc3RlYWQgb2YgZnJlZSgpIGFuZCBtYWxsb2MoKS4KCjIwMDktMTItMjEgMTI6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTEyMDU1OiBtYWtlIHN1cmUKICAgdGhhdAogICBwYXJzaW5nIHRoZSAicGVyc2lzdGVudERpciIga2V5d29yZCBpbiBzbm1wLmNvbmYgZG9lcyBub3QgdHJpZ2dlcgogICBhCiAgIGRhbmdsaW5nIHBvaW50ZXIuIFRvIG15IHN1cnByaXNlIEJvdW5kc0NoZWNrZXIgY29tcGxhaW5lZCBhYm91dAogICB0aGlzCiAgIChvbiBXaW5kb3dzKSwgYnV0IFZhbGdyaW5kIGRpZCBub3QgcmVwb3J0IHRoaXMgaXNzdWUgKG9uIExpbnV4KS4KCjIwMDktMTItMjEgMTI6MDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI1IChmaXggbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXApOiB3aGlsZQogICByMTc5MjUgZml4ZWQKICAgb25seSB0aGUgbGVhayB0cmlnZ2VyZWQgZnJvbSBpbnNpZGUgdGhlIGZvci1sb29wLCB0aGlzIHBhdGNoIGRvZXMKICAgbm93IGFsc28KICAgZml4IHRoZSBsZWFrIHRyaWdnZXJlZCBieSB0aGUgbmV0c25tcF90YWJsZV9kYXRhc2V0X2FkZF9yb3coKQogICBjYWxsIG5lYXIKICAgdGhlIGVuZCBvZiBsb2dfbm90aWZpY2F0aW9uKCkuCgoyMDA5LTEyLTIxIDEyOjAxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDYyOiBtYWtlIHN1cmUgdGhhdCB0aGUgc3RyaW5nIHJldHVybmVkIGJ5CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgaXMgcHJvcGVybHkgdGVybWluYXRlZCwgc3VjaCB0aGF0CiAgIHRoZQogICBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gZG8gbm90IHRyaWdnZXIgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWRzLgogICBGb3VuZAogICB0aGlzIGlzc3VlIHZpYSBCb3VuZHNDaGVja2VyLgoKMjAwOS0xMi0yMSAxMTowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2OCwgd2hpY2ggZml4ZXMgYSBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cC4KICAgVGhlCiAgIGZ1bmN0aW9uIGxvZ19ub3RpZmljYXRpb24oKSBhZGRzIGEgcm93IHRvIHRoZSB0YWJsZQogICBubG1Mb2dWYXJUYWJsZSwgYnV0CiAgIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhhdCB0YWJsZSBoYXMgYmVlbgogICBpbml0aWFsaXplZC4gSWYKICAgdGhhdCBoYXBwZW5zLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGZvciBhIHJvdyBidXQgdGhhdCBtZW1vcnkgaXMKICAgbmV2ZXIKICAgYWRkZWQgdG8gdGhlIGNhY2hlZCB0YWJsZSBkYXRhLiBUaGUgQm91bmRzQ2hlY2tlciB0b29sIHJlcG9ydGVkCiAgIHRoaXMgYXMKICAgYSAibWVtb3J5IGxlYWsgbGVhdmluZyBzY29wZSIuCgoyMDA5LTEyLTIxIDEwOjU0ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCB0aGUgZm9sbG93aW5nIHRleHQgdG8gdGhlICJMaW1pdGF0aW9ucyIgc2VjdGlvbiBvZgogICBSRUFETUUud2luMzI6CiAgICJXaGVuIHVzaW5nIHdpbkV4dERMTCwgdGhlcmUgaXMgYW4gb2Zmc2V0IG9mIHVwIHRvIG9uZSBzZWNvbmQKICAgYmV0d2VlbiB0aGUKICAgdmFsdWUgb2YgdGhlIHN5c1VwVGltZSB2YXJiaW5kIGluY2x1ZGVkIGluIHRoZSB0cmFwcyBnZW5lcmF0ZWQgYnkKICAgU05NUAogICBleHRlbnNpb24gRExMcyAoZS5nLiBsaW5rVXAgYW5kIGxpbmtEb3duKSBhbmQgdGhlIHZhbHVlIG9mIHRoZQogICBzeXNVcFRpbWUKICAgdmFyYmluZCBpbmNsdWRlZCBpbiB0cmFwcyBnZW5lcmF0ZWQgYnkgTmV0LVNOTVAgaXRzZWxmIChlLmcuCiAgIGNvbGRTdGFydCkuIgoKMjAwOS0xMi0yMSAxMDowOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCAgIAogICAgICBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFNwZWxsaW5nIGZpeDogcmVwbGFjZWQgYWxsIG9jY3VycmVuY2VzIG9mICdzcGVjaWZjJyBieQogICAnc3BlY2lmaWMnLgoKMjAwOS0xMi0yMSAxMDowNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBSZWZhY3RvcmluZzogZWxpbWluYXRlZCBkdXBsaWNhdGVkIGNvZGUgYnkgcmVpbXBsZW1lbnRpbmcKICAgc25tcF9hbGFybV9yZWdpc3RlcigpIHVzaW5nIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIoKS4gTmVpdGhlciB0aGUKICAgTmV0LVNOTVAgQVBJIG5vciB0aGUgYmVoYXZpb3Igb2Ygc25tcF9hbGFybV9yZWdpc3RlcigpIGhhcyBiZWVuCiAgIGNoYW5nZWQuCgoyMDA5LTEyLTIwIDExOjEwICBtYWdmcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9hZ2VudHh0cmFwLmMsIG1hbi9NYWtlZmlsZS5pbiwgICAKICAgICAgbWFuL2FnZW50eHRyYXAuMS5kZWY6CgogICBORVdTOiBhcHBzOiBBZGQgY29tbWFuZCB0byBzZW5kIEFnZW50WCBub3RpZnkgcmVxdWVzdHMgdG8gYQogICBtYXN0ZXIgYWdlbnQuCgoyMDA5LTEyLTE3IDE2OjQ0ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxNyAtLSBidWlsZHMgYWdhaW4gb24gV2luZG93cyBzeXN0ZW1zLgoKMjAwOS0xMi0xNyAxNjowMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTAzIC8gcGF0Y2ggMjkxMTMyMyAiRml4IGFnZW50IGxvY2t1cCB3aGVuCiAgIG1vbml0b3JpbmcKICAgQWdlbnRYLWRlbGVnYXRlZCBpbmZvcm1hdGlvbiIgKHN1Ym1pdHRlZCBieSBteXNlbGYpLiBUaGF0IHBhdGNoCiAgIGRpZCBub3Qgb25seQogICBmaXggdGhlIGxvY2t1cCBidXQgYWxzbyBtYWRlIHNubXBkIHByaW50IGEgd2FybmluZyBkdXJpbmcgc3RhcnR1cAogICB3aGVuCiAgIGlxdWVyeVNlY05hbWUgd2FzIG5vdCBjb25maWd1cmVkLiBUaGlzIHdhcm5pbmcgd2FzIHByaW50ZWQgZXZlbgogICB3aGVuIG5vCiAgIGludGVybmFsIHF1ZXJpZXMgd2VyZSBwZXJmb3JtZWQuIFRoaXMgd2FybmluZyBpcyBub3cgb25seSBwcmludGVkCiAgIGp1c3QgYmVmb3JlCiAgIHRoZSBmaXJzdCBpbnRlcm5hbCBxdWVyeSBpcyBtYWRlIChkdXJpbmcgdGhlIGZpcnN0IGNhbGwgb2YKICAgbmV0c25tcF9xdWVyeV9nZXRfZGVmYXVsdF9zZXNzaW9uKCkgaW5zdGVhZCBvZiBkdXJpbmcgY3JlYXRpb24gb2YKICAgdGhlIGludGVybmFsCiAgIHNlc3Npb24pLgoKMjAwOS0xMi0xNyAxMzo1NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYzoKCiAgIFJNT04gTUlCIHNvdXJjZSBjb2RlIGNvbXBpbGVzIGFnYWluIC0tIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3OTEzLgoKMjAwOS0xMi0xNyAxMzoxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkgYW5kCiAgIEFHVVRJTF9zeXNfdXBfdGltZSgpIHN1Y2ggdGhhdCB0aGVzZSBmdW5jdGlvbnMgbm9ybWFsaXplIHRoZQogICB0dl91c2VjIGZpZWxkIG9mCiAgIHN0cnVjdCB0aW1ldmFsIHByb3Blcmx5LiBOb3RlOiB0aGlzIHNvdXJjZSBjb2RlIG1vZGlmaWNhdGlvbiBkb2VzCiAgIG5vdCBhZmZlY3QKICAgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgYWZvcmVtZW50aW9uZWQgdHdvIGZ1bmN0aW9ucy4KCjIwMDktMTItMTcgMTM6MTEgIGJ2YXNzY2hlCgogICAqIG1hbi9uZXRzbm1wX3V0aWwuMzoKCiAgIFJlbW92ZWQgZG9jdW1lbnRhdGlvbiBvZiB0aGUgRElGRlRJTUVWQUwoKSBtYWNybyAtLSBzaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzkxMy4KCjIwMDktMTItMTcgMTM6MDUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDb252ZXJ0ZWQgc3RhcnR0aW1lIGZyb20gYSBnbG9iYWwgdmFyaWFibGUgaW50byBhIHN0YXRpYyB2YXJpYWJsZQogICBhbmQgYXBwbGllZCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAgIC0gQWRkZWQgdHdvIG5ldyBtYWNyb3M6IE5FVFNOTVBfVElNRVJBREQoKSBhbmQKICAgTkVUU05NUF9USU1FUlNVQigpLgogICAtIEFkZGVkIHRocmVlIG5ldyBmdW5jdGlvbnM6IG5ldHNubXBfZ2V0X3N0YXJ0dGltZSgpLAogICBuZXRzbm1wX3NldF9zdGFydHRpbWUoKSBhbmQgYXRpbWVfaHN1YnRyYWN0KCkuCiAgIC0gUmVwbGFjZWQgZ2V0dGltZW9mZGF5KCkgKyBjYWxjdWxhdGVfdGltZV9kaWZmKCkgY2FsbHMgYnkgYSBjYWxsCiAgIHRvIG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpLgogICAtIFJlbW92ZWQgdGhlIG1hY3JvIERJRkZUSU1FVkFMKCkgYmVjYXVzZSBpdCB3YXMgbm90IHVzZWQgaW5zaWRlCiAgIHRoZSBOZXQtU05NUCBwcm9qZWN0IGFuZCBiZWNhdXNlIGl0IGNvbnRhaW5lZCBhIGJ1Zy4KICAgLSBSZW1vdmVkIHRoZSBmdW5jdGlvbnMgY2FsY3VsYXRlX3RpbWVfZGlmZigpLCB1YXRpbWVfcmVhZHkoKSwKICAgbWFya2VyX3R0aWNrcygpIGFuZCB0aW1ldmFsX3R0aWNrcygpLgoKMjAwOS0xMi0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQnVnIGZpeDogYWNjb3JkaW5nIHRvIFJGQyAyNTcxIHRoZSB1bml0IG9mIHNubXBFbmdpbmVUaW1lIGlzIG9uZQogICBzZWNvbmQsCiAgIG5vdCBvbmUgaHVuZHJlZHRoIG9mIGEgc2Vjb25kLgoKMjAwOS0xMi0xNyAxMDowMyAgZHRzMTIKCiAgICogbWFuL3NubXB0ZXN0LjEuZGVmOgoKICAgRml4IHR5cG8uCgoyMDA5LTEyLTE2IDEyOjMwICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi90b29scy5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzLW9ubHkgYnVnIGZpeGVzOgogICAtIEZpeGVkIHRoZSBzdHJhbmdlIGJ1aWxkIGVycm9ycyB0aGF0IG9jY3VycmVkIHdoZW4gY29tcGlsaW5nCiAgIGxpYm5ldHNubXAgYXMgYSBETEwgYW5kIHdoZW4gZWl0aGVyIDxzdGRsaWIuaD4gb3IgPHN0cmluZy5oPiB3YXMKICAgaW5jbHVkZWQgYWZ0ZXIgPG5ldC1zbm1wLWNvbmZpZy5oPiBpbnN0ZWFkIG9mIGJlZm9yZS4KICAgLSBGb3IgZGVidWcgYnVpbGRzIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8sIGZpeGVkIHRoZQogICBtaXNtYXRjaGVzIGJldHdlZW4gdGhlIF9tYWxsb2NfZGJnKCkgY2FsbCBpbnZva2VkIGJ5IHN0cmR1cCgpIGFuZAogICBmcmVlKCktaW5nIHN0cmR1cCgpLWVkIG1lbW9yeSBieSBpbmNsdWRpbmcgdGhlIDxjcnRkYmcuaD4gaGVhZGVyCiAgIGluIHRvb2xzLmMgYW5kIGJ5IGRlZmluaW5nIHRoZSBwcmVwcm9jZXNzb3Igc3ltYm9sCiAgIF9DUlREQkdfTUFQX0FMTE9DLiBEZXRlY3RlZCB2aWEgdGhlIG1lbW9yeSBjaGVja2VyIGluY2x1ZGVkIGluCiAgIEludGVsIFBhcmFsbGVsIFN0dWRpby4KCjIwMDktMTItMTQgMTc6MjMgIHRhbmRlcnMKCiAgICogIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIHN5bmMgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX3VkcF9hZGRyX3BhaXIgaW4gUGVybCB3aXRoIHRoZSBjaGFuZ2VzCiAgIGluCiAgIHIxNzg1NSBhbmQgcjE3OTA4CgoyMDA5LTEyLTE0IDEzOjU1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBGaXggVENQIHRyYW5zcG9ydCBicm9rZW4gYnkgcmV2LiAxNzg1NSAtIGNvcGllcyBvZgogICBuZXRzbm1wX3VkcF9hZGRyX3BhaXIgaW4gc25tcFRDUERvbWFpbi5jIGFuZCBzbm1wVURQRG9tYWluLmMgbXVzdAogICBiZSB0aGUgc2FtZS4KCjIwMDktMTItMTEgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIENIQU5HRVM6IHNubXB1c206IHBhdGNoIGZyb20gTWFydGluIEJqb3JrbHVuZCB0byBhZGQgYSAtQ3cgb3B0aW9uCiAgIHRvIHVzZSBjcmVhdGVBbmRXYWl0IGZvciBhZ2VudHMgdGhhdCBhcmUgc3RyaWN0IGFib3V0IG5vdAogICBhbGxvd2luZyBhIHJvdyB0byBiZSBzZXQgdG8gYWN0aXZlIHVudGlsIHRoZSBhdXRoZW50aWNhdGlvbgogICBwYXNzd29yZCBoYXMgYmVlbiBjaGFuZ2VkOyBwbHVzIHdoaXRlLXNwYWNlIGNsZWFuIHVwLCBtYW51YWwKICAgYWRkaXRpb25zIGFuZCBoZWxwIG91dHB1dCBtb2RpZmljYXRpb25zIGJ5IGhhcmRha2VyCgoyMDA5LTEyLTExIDE0OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgYSBmb3JtYXQgc3BlY2lmaWVyIG1pc21hdGNoLgoKMjAwOS0xMi0xMSAxNDowNiAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIHdpbkV4dERMTCBidWdzIGZpeGVkOgogICAtIHN5c1VwVGltZS4wIGRvZXMgbm93IHJlcG9ydCB0aGUgY29ycmVjdCB2YWx1ZS4KICAgLSBhIGxpbmtVcCBvciBsaW5rRG93biB0cmFwIGlzIG5vdyBzZW50IGFmdGVyIHRoZSBzdGF0dXMgb2YgYQogICBuZXR3b3JrIGludGVyZmFjZQogICBoYXMgY2hhbmdlZC4KICAgLSB0aGUgdmFsdWUgb2YgdGhlIHN5c1VwVGltZS4wIHZhcmJpbmQgaW4gbGlua1VwIGFuZCBsaW5rRG93bgogICB0cmFwcyBpcyBub3cKICAgY29ycmVjdC4KCjIwMDktMTItMTAgMTU6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIRVM6IDI5MTE5NzA6IFByb3Blcmx5IHRlcm1pbmF0ZSBsaW5rZWQgbGlzdAogICBvZiByZWdpc3RyYXRpb25zLgogICBQYXRjaCBwcm92aWRlZCBieSBNaXJrbyBEZWNrZXJ0LgoKMjAwOS0xMi0xMCAxNTo0MyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5MTEzMjM6IEZpeCBhZ2VudCBsb2NrdXAgd2hlbgogICBtb25pdG9yaW5nIEFnZW50WC1kZWxlZ2F0ZWQgaW5mb3JtYXRpb24KCjIwMDktMTItMTAgMTM6NTkgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgaW5mb3JtYXRpb24gYWJvdXQgTWljcm9zb2Z0J3MgaW1wbGVtZW50YXRpb24gb2YKICAgaHJTeXN0ZW1VcHRpbWUuMC4KICAgLSBGaXhlZCBhIGZldyB0eXBvcy4KCjIwMDktMTItMTAgMTM6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBBZGRlZCBtaXNzaW5nIG5ld2xpbmUgaW4gYSBsb2dnaW5nIHN0YXRlbWVudC4KCjIwMDktMTItMTAgMTI6NTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgdGhlIGZvbGxvd2luZyB3aW5FeHRETEwgYnVnczoKICAgLSBGaXhlZCBidWcgaW4gdHJhcCBmb3J3YXJkaW5nOiBsaW5rRG93biB0cmFwcyB3ZXJlIHNlbnQgYXMKICAgd2FybVN0YXJ0IHRyYXBzCiAgIGFuZCBsaW5rVXAgdHJhcHMgd2VyZSBzZW50IGFzIGxpbmtEb3duIHRyYXBzLgogICAtIEZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGV4dGVuc2lvbiBETEwgbG9hZGluZy4KICAgLSBBIGRlYnVnIHRyYWNlIHN0YXRlbWVudCBpcyBub3cgaW52b2tlZCB3aGVuZXZlciBhIHNlcmlvdXMgZXJyb3IKICAgaGFzIGJlZW4KICAgZGV0ZWN0ZWQuCgoyMDA5LTEyLTEwIDEyOjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE9JRHMgaW4gZGVidWcgbWVzc2FnZXMgZ2VuZXJhdGVkIGJ5IHRoZSB3aW5FeHRETEwgbW9kdWxlIGFyZSBub3cKICAgcHJpbnRlZCBpbgogICBzeW1ib2xpYyBmb3JtIGluc3RlYWQgb2YgbnVtZXJpYyBmb3JtLgoKMjAwOS0xMi0xMCAwODo1NyAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgUHJvamVjdCBkZXBlbmRlbmNpZXMgc2hvdWxkIG5vdyByZWFsbHkgYmUgY29ycmVjdC4gU2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZAogICBpbiByMTc4NzMuCgoyMDA5LTEyLTEwIDA4OjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENoYW5nZXMgKG9ubHkgc291cmNlIGNvZGUgY29tbWVudHMgaGF2ZSBiZWVuIGNoYW5nZWQpOgogICAtIFJlbW92ZWQgYSBub3RlIHRoYXQgY29udHJhZGljdGVkIHRoZSBpbnN0cnVjdGlvbnMgaW4KICAgUkVBRE1FLndpbjMyLgogICAtIFVwZGF0ZWQgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFmdGVyIHRoZSBhZGRpdGlvbiBvZiB0aGUgZmlsZQogICB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oIGluIHIxNzgzMC4KCjIwMDktMTItMTAgMDg6MTcgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgTWFkZSBmaWxlIGhlYWRlciBjb21tZW50cyBjb25zaXN0ZW50IHdpdGggdGhlIGRlc2NyaXB0aW9ucyBpbiB0aGUKICAgcmVzcGVjdGl2ZSBtYW4gcGFnZXMuCgoyMDA5LTEyLTEwIDAzOjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFnZW50X3N5c09SX2NhbGxiYWNrIHdvbid0IHRyaWdnZXIgYSB3YXJuaW5nIHdoZW4KICAgcmVnaXN0ZXJlZCBhcyBhIGNhbGxiYWNrLiBDaGFuZ2UgYWdlbnR4X3Jlb3Blbl9zeXNPUlRhYmxlIGluCiAgIG9yZGVyIHRvIGF2b2lkIHdhcm5pbmdzIG9mIGNvbnN0IHJlbW92YWwuCgoyMDA5LTEyLTA5IDE1OjA1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBNb3ZlZCB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIHZhcmlhYmxlICduZXdsaW5lJyBpbnNpZGUgdGhlCiAgIGZ1bmN0aW9uCiAgIGxvZ19oYW5kbGVyX3N0ZG91dGVycigpIGJlY2F1c2UgdGhpcyB2YXJpYWJsZSBpcyBvbmx5IHVzZWQgYnkKICAgdGhhdCBmdW5jdGlvbi4KICAgLSBEb2N1bWVudGVkIHRoZSBwdXJwb3NlIG9mIHRoZSB2YXJpYWJsZSAnbmV3bGluZScuCiAgIC0gQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgdGhlIGNhbGwgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCkgZG9lcwogICBub3QgdHJpZ2dlciBhbgogICBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgKHN0clstMV0pIHdoZW4gYW4gZW1wdHkgc3RyaW5nIGlzIHBhc3NlZCB0bwogICB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0wOSAxNDozNyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcwogICBiaWdnZXIgdGhhbiA2IGJ5dGVzIHRvIGlwTmV0VG9NZWRpYVRhYmxlIGFuZAogICBpcE5ldFRvUGh5c2ljYWxUYWJsZS4KICAgU29tZSBIVywgbGlrZSBJbmZpbmlCYW5kLCB1c2VzIEhXIGFkZHJlc3NlcyB3aXRoIDkgYW5kIG1vcmUKICAgYnl0ZXMuIFNubXBkIG9uIExpbnV4IHdhcyBub3QgYWJsZSB0byBwYXJzZSAvcHJvYy9uZXQvYXJwIHRoZW4KICAgYW5kIHByb2R1Y2VkIHVnbHkgJ2lvY3RsIDM1MTIzIHJldHVybmVkIC0xJyB0byBsb2cuCgoyMDA5LTEyLTA5IDEyOjI3ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCBtaXNzaW5nIC1MbyBpbiBhIGNvbW1hbmQgbGluZSBleGFtcGxlLgoKMjAwOS0xMi0wOSAxMjoxNiAgYnZhc3NjaGUKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgQWRkZWQgc25tcGFwaS5saWIgdG8gdGhlIGxpbmtlciBpbnB1dCBsaXN0IG9mIHNubXBkLmV4ZS4KICAgQXBwYXJlbnRseSBWaXN1YWwKICAgU3R1ZGlvIDIwMDUgYW5kIDIwMDggbmVlZCB0aGlzIGxpYnJhcnkgaW4gdGhlIGxpbmtlciBpbnB1dCBsaXN0CiAgIHdoZW4gbGlua2luZwogICB0aGUgZXhlLCB3aGlsZSBmb3IgVmlzdWFsIFN0dWRpbyA2IGl0IGlzIHN1ZmZpY2llbnQgd2hlbiB0aGlzCiAgIGxpYnJhcnkgaXMKICAgcHJlc2VudCBpbiB0aGUgbGlua2VyIGlucHV0IGxpc3Qgb2YgbmV0c25tcG1pYnMubGliLgoKMjAwOS0xMi0wOSAwODo0NSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBSRUFETUUud2luMzI6IGJlY2F1c2Ugb2YgcjE3ODg0IGFuZCByMTc4NzMsIHRoZSBidWlsZAogICBwcm9jZXNzIGJlY2FtZSBzaW1wbGVyLgoKMjAwOS0xMi0wOSAwODoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBFeHBvcnQgc3RydG91bGwgLS0gc2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiByMTc4ODYuCgoyMDA5LTEyLTA5IDA4OjIxICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBSZXZlcnRlZCByMTc3MDAgZm9yIFJFQURNRS53aW4zMjogYmVjYXVzZSBvZiByMTc4ODYsIG1vZGlmeWluZwogICB0aGUKICAgc3RydG91bGwgbGluZSBpbiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiBpcyBubyBsb25nZXIKICAgbmVjZXNzYXJ5LgoKMjAwOS0xMi0wOSAwODoxMiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgIAogICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzOiBzd2l0Y2hlZCBmcm9tIF9zdHJ0b3VpNjQoKSB0byBzdHJ0b3VsbCgpIGZvciBNaWNyb3NvZnQKICAgVmlzdWFsIFN0dWRpbwogICAyMDAyIGFuZCBsYXRlciBiZWNhdXNlIHRoZSBmb3JtZXIgaXMgbm90IGZ1bGx5IFBPU0lYIGNvbXBsaWFudC4KICAgVGhlIHN0cnRvdWxsKCkKICAgdW5pdCB0ZXN0IHByb2R1Y2VzIHRoZSBmb2xsb3dpbmcgb3V0cHV0IGZvciBfc3RydG91aTY0KCkgd2l0aAogICBNU1ZDIDIwMDg6CiAgIHRlc3QgMTQgZmFpbGVkIChpbnB1dCAiMHgiKTogZXhwZWN0ZWQgZW5kIDEsIGdvdCBlbmQgMAogICB0ZXN0IDE2IGZhaWxlZCAoaW5wdXQgIjB4Iik6IGV4cGVjdGVkIGVuZCAxLCBnb3QgZW5kIDAKCjIwMDktMTItMDggMjE6NTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBNYWtlIHN1cmUgdGhhdCBhIG1hc2sgaXMgZ2l2ZW4gdG8gb3BlbgogICB3aGVuIE9fQ1JFQVQgaXMgc3BlY2lmaWVkCgoyMDA5LTEyLTA4IDE2OjIwICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBNYWRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGV4ZSdzIGFuZCBsaWIncyBleHBsaWNpdCBzdWNoIHRoYXQKICAgVmlzdWFsCiAgIFN0dWRpbyBjYW4gZmlndXJlIG91dCB0aGUgcHJvcGVyIGJ1aWxkIG9yZGVyIGluc3RlYWQgb2YgdGhlIHVzZXIKICAgaGF2aW5nCiAgIHRvIGZpZ3VyZSB0aGlzIG91dC4KCjIwMDktMTItMDggMTU6NDcgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBCdWlsZHMgYWdhaW4gb24gVW5peCBzeXN0ZW1zIChmaXhlZCBhIHR5cG8gaW50cm9kdWNlZCBpbiByMTc4ODEpLgoKMjAwOS0xMi0wOCAxNTozNyAgYnZhc3NjaGUKCiAgICogd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgQWRkZWQgbWlzc2luZyAjZGVmaW5lIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLiBXaXRob3V0IHRoaXMKICAgZGVmaW5lIHRoZSBNaWNyb3NvZnQKICAgVmlzdWFsIFN0dWRpbyBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBiZW5pZ24gcmVkZWZpbml0aW9uIG9mCiAgIHR5cGUgc29ja2xlbl90LgoKMjAwOS0xMi0wOCAxNToyOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDbGVhbmVkIHVwIHRoZSBjb2RlIGZvciBzZXR0aW5nIGxpbmUgYnVmZmVyaW5nOgogICAtIEluc3RlYWQgb2YgaGF2aW5nIGNhbGxzIHRvIHNldHZidWYoKSBpbiBtdWx0aXBsZSBmaWxlcywgdGhlcmUKICAgaXMgbm93IG9uZSBjYWxsCiAgIHRvIHNldHZidWYoKSBmcm9tIHRoZSBuZXcgZnVuY3Rpb24gbmV0c25tcF9zZXRfZmlsZWxvZy4gVGhlc2UKICAgc291cmNlIGZpbGVzCiAgIGFyZTogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdGFibGUuYwogICBhbmQgYWdlbnRcbWliZ3JvdXBcZGlzbWFuXHRyYWNlcm91dGVcdHJhY2VSb3V0ZUN0bFRhYmxlLmMuCiAgIC0gVXNpbmcgLUxvIC8gLUxlIGRvZXMgbm93IGVuYWJsZSBsaW5lIGJ1ZmZlcmluZyBmb3Igc3Rkb3V0IC8KICAgc3RkZXJyIHJlc3BlY3RpdmVseS4KICAgLSBSZW1vdmVkIGNvZGUgaW4gc25tcGQuYyBhbmQgc25tcHRyYXBkLmMgZm9yIHNldHRpbmcgbGluZQogICBidWZmZXJpbmcgb24gc3Rkb3V0CiAgIHNpbmNlIHNldHRpbmcgbGluZSBidWZmZXJpbmcgb24gc3Rkb3V0IGlzIG5vdyB0cmlnZ2VyZWQgYnkgdGhlCiAgIGNvbW1hbmQtbGluZQogICBvcHRpb24gLUxvLgogICBCdWdzIGZpeGVkOgogICAtIExpbmUgYnVmZmVyaW5nIG1vZGUgaXMgbm93IGFsc28gc2V0IGZvciBzdGRlcnIgd2hlbiB0aGUKICAgY29tbWFuZC1saW5lIG9wdGlvbgogICAtTGUgaGFzIGJlZW4gc3BlY2lmaWVkLgogICAtIExpbmUgYnVmZmVyaW5nIG1vZGUgaXMgbm93IHNldCBjb3JyZWN0bHkgZm9yIHN0ZG91dCBvbiBXaW5kb3dzCiAgIHN5c3RlbXMKICAgKGNvbW1hbmQtbGluZSBvcHRpb24gLUxvKS4KCjIwMDktMTItMDggMTI6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBsb2NhbCB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRlZmluZWQKICAgYnV0CiAgIG5vdCB1c2VkIGJ5IG9ubHkgZW5hYmxpbmcgdGhlIGxvY2FsIHZhcmlhYmxlIGRlZmluaXRpb25zIG9uIHRoZQogICBwbGF0Zm9ybSB0aGF0IHVzZXMgdGhlc2UgdmFyaWFibGVzIChMaW51eCkuCgoyMDA5LTEyLTA4IDEyOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBBZGRlZCAjaW5jbHVkZSAibWliZ3JvdXAvdXRpbF9mdW5jcy5oIi4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOS0xMi0wOCAxMjoyNSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBJbmNsdWRlIHRoZSBnZXRob3N0ZW50KCkgLyBzZXRob3N0ZW50KCkgZGVjbGFyYXRpb25zIGJlZm9yZSB1c2luZwogICB0aGVzZQogICBmdW5jdGlvbnMuIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZyBvbiBXaW5kb3dzIHN5c3RlbXMuCgoyMDA5LTEyLTA4IDEyOjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRml4ZWQgYW4gaW5jb25zaXN0ZW5jeSAod2hpY2ggaXMgYWxsb3dlZCBieSB0aGUgQU5TSSBDIHN0YW5kYXJkKQogICBiZXR3ZWVuCiAgIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFuZCBmdW5jdGlvbiBkZWZpbml0aW9uIG9mCiAgIG5ldHNubXBfYWRkX2dsb2JhbF90cmFwaGFuZGxlciBhbmQKICAgbmV0c25tcF9hZGRfZGVmYXVsdF90cmFwaGFuZGxlciBzdWNoCiAgIHRoYXQgdGhlIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIGRvZXMgbm8gbG9uZ2VyIGNvbXBsYWluCiAgIGFib3V0CiAgIHRoaXMuCgoyMDA5LTEyLTA4IDEyOjA4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QKICAgY29tcGxhaW4gYWJvdXQgaW1wbGljaXRseSBjYXN0aW5nIGF3YXkgY29uc3RuZXNzLgoKMjAwOS0xMi0wOCAxMjowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBPbmx5IGNvbXBpbGUgdGhlIHdpbkV4dERMTCBzb3VyY2UgY29kZSBpZiB0aGUgcHJlcHJvY2Vzc29yIG1hY3JvCiAgIFVTSU5HX1dJTkVYVERMTF9NT0RVTEUgaGFzIGJlZW4gZGVmaW5lZC4KCjIwMDktMTItMDggMTI6MDMgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBBZGRlZCBtaXNzaW5nICNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsuCgoyMDA5LTEyLTA4IDEyOjAxICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBNYWRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGV4ZSdzIGFuZCBsaWIncyBleHBsaWNpdCBzdWNoIHRoYXQKICAgVmlzdWFsCiAgIFN0dWRpbyBjYW4gZmlndXJlIG91dCB0aGUgcHJvcGVyIGJ1aWxkIG9yZGVyIGluc3RlYWQgb2YgdGhlIHVzZXIKICAgaGF2aW5nCiAgIHRvIGZpZ3VyZSBvdXQgdGhlIGJ1aWxkIG9yZGVyLgoKMjAwOS0xMi0wOCAwOTo0NiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3MgLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbzogZGlzYWJsZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmcKICAgYWJvdXQKICAgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMgKDQwMTgpIGJlY2F1c2UgdGhpcyB3YXJuaW5nIGRvZXMgbm90CiAgIHlpZWxkCiAgIGFueSB1c2VmdWwgaW5mb3JtYXRpb24uCgoyMDA5LTEyLTA4IDA5OjE3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3NjM5IChwYXRjaCAyNzgwNDExIC0tIGZpeCBjb21waWxlciB3YXJuaW5ncyk6CiAgIGFwcGxpZWQKICAgdGhpcyBwYXRjaCB0byBuZXQtc25tcC1jb25maWcuaC5pbiB0b28gc3VjaCB0aGF0CiAgIG5ldC1zbm1wLWNvbmZpZy5oIGFuZAogICBuZXQtc25tcC1jb25maWcuaC5pbiBtYXRjaCBhZ2Fpbi4KCjIwMDktMTItMDggMDg6MTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWdlbnR4X3N5c09SX2NhbGxiYWNrKCkgZG9lcyBub3QgdHJpZ2dlciBhCiAgIGNvbXBpbGVyCiAgIHdhcm5pbmcgd2hlbiB0aGUgdGhpcmQgYXJndW1lbnQgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24gaGFzIGJlZW4KICAgZGVjbGFyZWQgY29uc3QuCgoyMDA5LTEyLTA4IDA4OjE0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDaGFuZ2VkIHRoZSByZXR1cm4gdHlwZSBvZiBzdHJ0b3VsbCgpIGZyb20gJ3Vuc2lnbmVkIGxvbmcgbG9uZycKICAgKHdoaWNoCiAgIGlzIG5vdCB2YWxpZCBDODkpIHRvICd1aW50NjRfdCcgKGRlY2xhcmVkIGluCiAgIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4pLgogICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgY29tcGlsZSBhZ2FpbiB3aXRoCiAgIE1TVkMgNi4wLgoKMjAwOS0xMi0wNyAxMDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFR3ZWFrIG1pc3Npbmcgc3ViaWRlbnRpZmllciBwcm9jZXNzaW5nIHRvIGJlIG1vcmUgdHlwZS1hd2FyZS4KICAgKEFuIGlzc3VlIHdpdGggQUlYLCBhdCBsZWFzdCkKCjIwMDktMTItMDYgMTg6MzggIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBNYWtlIHRoZSBsaXN0cyBvZiBjb20yU2VjKkVudHJpZXMgc3RhdGljCgoyMDA5LTEyLTA2IDE4OjM0ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgTWFrZSB0aGUgaXRlcmF0b3IgdmFyaWFibGUgaW4gbmV0c25tcF8qX2dldFNlY05hbWUgY29uc3QKCjIwMDktMTItMDYgMTg6MjkgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBDaGFuZ2UgdGhlIHR5cGVzIG9mIHRoZSByZXR1cm4gdmFsdWVzIG9mCiAgIG5ldHNubXBfKl9nZXRTZWNOYW1lIGZyb20gY2hhciogdG8gY29uc3QgY2hhciogc2luY2UgdGhleSBwb2ludAogICBpbnRvIGludGVybmFsIHN0cnVjdHVyZXMuCgoyMDA5LTEyLTA1IDIwOjE5ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbiBvZiBzdHJ0b3VsbAoKMjAwOS0xMi0wNSAxNzo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNhbGwgbmV0c25tcF9yZWFkX21vZHVsZSBpbnN0ZWFkIG9mIHJlYWRfbW9kdWxlIHRvIG1ha2UgaXQKICAgY29tcGlsZSB3aXRoCiAgIE5FVFNOTVBfQ0xFQU5fTkFNRVNQQUNFCgoyMDA5LTEyLTAyIDE1OjM5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBpbnZhbGlkIGFjY2VzcyB0byBtZW1vcnkgaW4gVENQLU1JQgogICBUaGlzIHBhcnRseSByZXZlcnRzIHBhdGNoIDE3NzE5IC0gdGhlIGVudHJpZXMgKmFyZSogdXNlZCBhZnRlcgogICByYXdfZGF0YSBjb250YWluZXIgaXMgZnJlZWQuIFRoZXNlIGVudHJpZXMgc2hvdWxkIGJlIGZyZWVkIHdoZW4KICAgYXNzb2NpYXRlZCByb3dyZXFfY3R4IGlzIGZyZWVkLgoKMjAwOS0xMi0wMiAwODozMCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgdWRwVGFibGUgaW5kZXhlcyBvbiBiaWctZW5kaWFuIDY0Yml0IExpbnV4LgogICBUaGUgaW5kZXggd2FzIGFsd2F5cyAnMC4wLjAuMCcgaW5zdGVhZCBvZiByZWFsIGxvY2FsIElQIGFkZHJlc3MuCgoyMDA5LTEyLTAxIDEyOjM2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBVcGRhdGUgYSByZWR1bmRhbnQgKGFuZCBwcm9iYWJseSBpbmFjY3VyYXRlKSBjb21tZW50LgoKMjAwOS0xMi0wMSAxMjozMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4MjIzNjA6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGJ1aWxkaW5nCiAgIHRhYmxlIE9JRHMKCjIwMDktMTItMDEgMTI6MDggIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IEJVR1M6IDI4Mzc5OTg6IEhhbmRsZSBtaXNzaW5nIGluc3RhbmNlCiAgIHN1YmlkZW50aWZpZXJzIGluIHJlc3VsdHMKCjIwMDktMTItMDEgMTE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODQxMDA4OiBQcm90ZWN0IGFnYWluc3QgY3Jhc2ggZm9sbG93aW5nCiAgIGZhaWxlZCBBZ2VudFggcmVzcG9uc2UKCjIwMDktMTItMDEgMDc6MzQgIGpzYWZyYW5lawoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCByZXNwb25kaW5nIHRvIGJyb2FkY2FzdCByZXF1ZXN0cy4KICAgVURQIHJlc3BvbnNlcyBhcmUgc2VudCB3aXRoIHNvdXJjZSBJUCBhZGRyZXNzIHdoaWNoIHdhcwogICBkZXN0aW5hdGlvbiBvZgogICBhcHByb3ByaWF0ZSByZXF1ZXN0cyAoaW1wbGVtZW50ZWQgaW4gU1ZOIHJldi4gMTUyMTUpLiBCdXQgaWYgdGhlCiAgIGRlc3RpbmF0aW9uCiAgIG9mIGEgcmVxdWVzdCBpcyBicm9hZGNhc3QgSVAgYWRkcmVzcywgdGhlIHJlcXVlc3Qgd2FzIHNlbnQgd2l0aAogICB0aGUgYnJvYWRjYXN0CiAgIGFkZHJlc3MgYXMgc291cmNlLiBzZW5kbXNnKCkgb24gTGludXggZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGFuZAogICByZXR1cm5zIGVycm9yCiAgIC0+IHJlc3BvbnNlIGlzIG5vdCBzZW50LiBJbiBvcmRlciB0byBzZW5kIHJlc3BvbnNlcyBmcm9tIHRoZSBzYW1lCiAgIGludGVyZmFjZSwKICAgaW50ZXJmYWNlIGluZGV4IG9mIHRoZSBhcHByb3ByaWF0ZSBpbnRlcmZhY2UgbXVzdCBiZSB1c2VkLgoKMjAwOS0xMi0wMSAwMDoyOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBhY3R1YWxseSBjb21waWxlIGFmdGVyIDE3ODUyLgoKMjAwOS0xMi0wMSAwMDoyNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBhY3R1YWxseSBjb21waWxlIGFmdGVyIDE3ODQyLgoKMjAwOS0xMS0zMCAxNjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4NzM4NTg6IEZpeCBoYW5kbGluZyBvZiBzY2hlZE93bmVyIGluZGV4LgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggU2NodWJlcnQuCgoyMDA5LTExLTMwIDE2OjQ2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHUzogMjg4ODU2OTogRml4IGdlbmVyYXRpb24gb2YgdGFibGUgY29sdW1ucwogICBhcnJheQoKMjAwOS0xMS0zMCAxNjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4OTQwNTk6IEhhbmRsZSBlcnJvcnMgd2hlbiBjb3VudGluZwogICBpbnRlcmZhY2VzCgoyMDA5LTExLTMwIDE2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDI4OTcwMDA6IFN1cHByZXNzIDMyLWJpdCBjb3VudGVyIHRydW5jYXRpb24KICAgd2FybmluZ3MuCgoyMDA5LTExLTMwIDE1OjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDMwOTI6IEZpeCBicm9rZW4gaGFuZGxpbmcgb2YgYnJvYWRjYXN0CiAgIGVudHJpZXMuCgoyMDA5LTExLTMwIDE1OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjkwMTAyOTogRml4IGNvbXBpbGVyIHdhcm5pbmcgb24KICAgQ2xvc2VIYW5kbGUoKQogICBFbmRpYW4gcHJvYmxlbXMgYWxyZWFkeSBhZGRyZXNzZWQgYnkgcGF0Y2ggIzI4MzU1NzYKCjIwMDktMTEtMzAgMTU6MTMgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjg5MDkzMTogQmV0dGVyIGhhbmRsaW5nIG9mIENvdW50ZXI2NAogICB2YWx1ZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1heCBSb21hbm92LgoKMjAwOS0xMS0zMCAxNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODc4MTY6IFByb3RlY3QgYWdhaW5zdCBkaXZpc2lvbi1ieS16ZXJvCiAgIGNyYXNoCgoyMDA5LTExLTMwIDE1OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMyMjA6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtcyB3aGVuCiAgIGlmWFRhYmxlIGlzIG5vdCBpbmNsdWRlZC4KCjIwMDktMTEtMzAgMTQ6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMxNTU6IEZpeCBtZW1vcnkgbGVhayBpbiBwcm94eQogICBoYW5kbGluZy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgR293dGhhbSBUaG9tbWFuZHJhLgoKMjAwOS0xMS0zMCAxNDozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzA5MjogU3VwcG9ydCBtb25pdG9yaW5nIHByb2Nlc3NlcyB0aGF0CiAgIHNob3VsZCBub3QgYmUgcnVubmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQ2hyaXN0aWFuIChjZzc1KS4KICAgCiAgIFFuOiBTaG91bGQgdGhpcyBmdW5jdGlvbmFsaXR5IGJlIGJhY2stcG9ydGVkIHRvIGVhcmxpZXIgbGluZXM/CgoyMDA5LTExLTMwIDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg3NzUxODogRml4IGhhbmRsaW5nIG9mIHNjb3BlZCBBZ2VudFgKICAgdmFyaWFibGVzCgoyMDA5LTExLTMwIDE0OjAxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjgzNTU3NjogRml4IGVuZGlhbm5lc3MgaXNzdWVzIGluCiAgIHBhc3MvcGFzc19wZXJzaXN0CgoyMDA5LTExLTI3IDA4OjU0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYzoKCiAgIFJlbW92ZSBleGVjdXRhYmxlIGF0dHJpYnV0ZSBmcm9tIHNvdXJjZSBmaWxlcy4KCjIwMDktMTEtMjUgMjA6MzUgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSBhbGwgdGhlIG9pZHMgYW5kIG9pZCBsZW5ndGhzIGluIGFnZW50X3RyYXAuYwogICBjb25zdCBhbmQgdXNlIHRoZW0gZnJvbSBldmVyeXdoZXJlLgoKMjAwOS0xMS0yNSAyMDoyNyAgbWFnZnIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEluc3RhbGwgbGlicmFyeS9vaWQuaC4gVGhhbmtzIHRvICJUb21hc3ogTGlzIgogICB3aG8gc3BvdHRlZCB0aGUgYnVnLgoKMjAwOS0xMS0yNSAwOTo0NyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgQ29tbWVudC1vbmx5IGNoYW5nZTogY2hhbmdlZCB0aGUgbmFtZSBpbiB0aGUgZmlsZSBoZWFkZXIgZnJvbQogICB0ZXN0aGFuZGxlci5oCiAgIHRvIGluc3RhbmNlLmggc3VjaCB0aGF0IGl0IG5vdyBtYXRjaGVzIHRoZSBmaWxlbmFtZS4KCjIwMDktMTEtMjQgMDc6NDkgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0CgoyMDA5LTExLTIzIDA3OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGVudGVycHJpc2UgYXJndW1lbnQgb2YKICAgbmV0c25tcF9zZW5kX3RyYXBzIGFuZCBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGNvbnN0CgoyMDA5LTExLTIzIDA3OjAyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgbmFtZSBhcmd1bWVudCB0byBmaW5kX3ZhcmJpbmRfaW5fbGlzdAogICBjb25zdAoKMjAwOS0xMS0yMiAyMzoyNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIFJlbW92ZSBzb21lIGxvY2FsIHJlZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucwoKMjAwOS0xMS0yMiAwMTowMyAgbWFnZnIKCiAgICogIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nLCBXaW4zMjogUmVtb3ZlIGEgZmV3IHVudXNlZCBjb25maWd1cmUgc3ltYm9scwoKMjAwOS0xMS0yMSAwODowMSAgYnZhc3NjaGUKCiAgICogd2luMzIvU25tcC13aW5FeHRETEwuaCwgd2luMzIvc25tcC13aW5leHRkbGwuaDoKCiAgIFJlcGxhY2VkIGFuIGFjY2lkZW50YWxseSBjb21taXR0ZWQgZmlsZSBieSB0aGUgcHJvcGVyIGNvbnRlbnRzLgoKMjAwOS0xMS0yMCAxNjoyOSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBSZXZlcnRlZCBhY2NpZGVudGFsbHkgbWVyZ2VkIGNoYW5nZXMuCgoyMDA5LTExLTIwIDE2OjI2ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvc25tcC13aW5leHRkbGwuaDoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMDktMTEtMjAgMTY6MTggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMsICAgCiAgICAgIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU3BlbGxpbmcgZml4IGluIEMgc291cmNlIGNvZGUgY29tbWVudHM6IHJlcGxhY2VkICdyZXRyaXZhbCcgYnkKICAgJ3JldHJpZXZhbCcuCgoyMDA5LTExLTIwIDE2OjE1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIGEgbmFtaW5nIGluY29uc2lzdGVuY3k6IHJlcGxhY2VkIHR3byBvY2N1cnJlbmNlcyB3aW5FeHREbGwKICAgYnkgd2luRXh0RExMIGluIHNvdXJjZSBjb2RlIGNvbW1lbnRzLgoKMjAwOS0xMS0xOSAyMjo1MiAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjkwMDA3ODogQWRkIHN1cHBvcnQgZm9yIE9JRCB2YXJpYWJsZXMgd2l0aAogICBzaXplIGluIGVsZW1lbnRzIGluc3RlYWQgb2YgYnl0ZXMsIGNvcnJlY3Qgc3lzT2JqZWN0SUQgdG8gdXNlCiAgIHRoaXMuCgoyMDA5LTExLTEzIDEyOjU5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbG9nZ2luZyBvZiAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIKICAgYml0cycgaW4gSVAtTUlCIGFuZCBUQ1AtTUlCCiAgIFRoZSBjb3VudGVycywgd2hpY2ggZ3JvdyBmYXN0IGFyZSBub3cgY3V0IHRvIDMyYml0cy4KCjIwMDktMTEtMTIgMDg6MjYgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBVc2UgYmlnIHByaW50ZidzIGluc3RlYWQgb2YgbWFueSBzbWFsbCBvbmVzIHRvIHNhdmUgYSBmZXcgaHVuZHJlZAogICBieXRlcyBvbiB0aGUgZmluYWwgZXhlY3V0YWJsZSBzaXplLgoKMjAwOS0xMS0xMiAwMjoyNCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b2wuYywgICAKICAgICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfUkVQTEFDRV9GVU5DUyB0byBoYW5kbGUgY29kZSB0aGF0IGlzCiAgIG1pc3Npbmcgb24gc29tZSBwbGF0Zm9ybXMuCgoyMDA5LTExLTExIDA5OjAwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBjYWNoZSBmcmVlIHJvdXRpbmUgdG8gbWF0Y2ggaGVhZGVyIGRlY2xhcmF0aW9uLgogICBSZXR1cm4gc3VjY2Vzcy9mYWlsdXJlIHZhbHVlcyBmcm9tIGNhY2hlIGxvYWQgcm91dGluZS4KICAgUHJvYmxlbSBpZGVudGlmaWVkIGJ5IFh1YW4uCgoyMDA5LTEwLTMwIDA5OjUxICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBORVdTOiBzbm1wbGliOiBSZXZlcnQgMTc4MDgsIGluc3RlYWQgZmFjdG9yIG91dCB0aGUgZGVjbGFyYXRpb24KICAgb2Ygb2lkIHRvIGl0J3Mgb3duIGZpbGUgYW5kIGluY2x1ZGUgdGhhdCBmaWxlIGZyb20gYm90aCB0eXBlcy5oCiAgIGFuZCBhc24xLmgKCjIwMDktMTAtMzAgMDg6MjggIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAKICAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZCwgc25tcG5ldHN0YXQ6IEFkZCBjb3JyZWN0IHNpemUgcHJlZml4ZXMKICAgd2hlbiBwcmludGluZyB2YXJpYWJsZXMgb2YgdHlwZSBvaWQuCgoyMDA5LTEwLTMwIDA4OjA3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2Ugb2lkIHRvIGJlIGEgMzItYml0IHR5cGUgb24gSUxQNjQgYW5kCiAgIExQNjQgcGxhdGZvcm1zLgoKMjAwOS0xMC0zMCAwODowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZSB0aGUgb2lkIHR5cGVkZWYgZnJvbQogICA8bmV0LXNubXAvbGlicmFyeS9hc24xLmg+LiBJdCBpcyBzdGlsbCBwcmVzZW50IGluCiAgIDxuZXQtc25tcC90eXBlcy5oPiwgdXNlIHRoYXQgZmlsZS4KCjIwMDktMTAtMjggMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZG9uJ3QgcmVxdWlyZSBzdWJhZ2VudF9pbml0KCkgaWYgbm90IG9ubHkgYnVpbGRpbmcgbWFzdGVyIGFnZW50CiAgIGNvZGUKCjIwMDktMTAtMjcgMDY6NDQgIG1hZ2ZyCgogICAqICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksICAgCiAgICAgIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMucm93LmNvbmYsIGxvY2FsL21pYjJjLnNjYWxhci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzIHRvIHVfY2hhcioKCjIwMDktMTAtMTQgMjM6MTIgIG1hZ2ZyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3NjYXBpLmM6CgogICBDSEFOR0VTOiBhcHBzLCBzbm1wbGliOiBQQVRDSDogMjgzNTU3NzogaWRlbnRpZmllZCBieSAiQmFydCBWYW4KICAgQXNzY2hlIjogUmVwbGFjZSBTTk1QX1pFUk8gb2YgYXJyYXlzIHdpdGggYSBtZW1zZXQuCgoyMDA5LTEwLTEyIDIwOjI4ICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSBycCB2YXJpYWJsZSB0byB0aGUgc21hbGxlc3QgcG9zc2libGUgb25lLgoKMjAwOS0xMC0wOSAxMjozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOjI4NzE3NDc6IHBsdWcgbWVtb3J5IGxlYWsgaW4gT0lECiAgIHByb2Nlc3NpbmcuCiAgIFRoZSBtZW1vcnkgbGVha2VkIHdoZW4gc21hbGwgT0lELCB3aGljaCBjb3VsZCBmaXQgcHJlLWFsbG9jYXRlZAogICB2cC0+bmFtZV9sb2MsIHdhcyBwbGFjZWQgaW4gZGlmZmVyZW50IChhbGxvY2F0ZWQpIG9uZS4KCjIwMDktMTAtMDkgMDU6MzEgIG1hZ2ZyCgogICAqIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IEJVRzogMjgzODI0MzogQ29ycmVjdCB0aGUgb3V0cHV0IG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgVGhhbmtzIHRvIEphY2sgSHVhbmcgb2YgUXVhbGNvbW0gd2hvIHBvaW50ZWQgb3V0IHRoaXMgYnVnLgoKMjAwOS0xMC0wOSAwNTowMCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBwYXJzaW5nIG9mIHJhbmdlcyB0byBhY2NlcHQgYWxsCiAgIHZhbGlkIHZhbHVlcy4KCjIwMDktMTAtMDcgMjI6MjQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBtaXNjOiBQQVRDSDogMjgzNjExMjogVXNlIHRoZSByaWdodCBtb2RpZmllciB3aGVuCiAgIHByaW50aW5nIHNpemVfdCBhbmQgc3NpemVfdCB2YXJpYWJsZXMuCgoyMDA5LTEwLTA3IDEyOjUwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgY3JlYXRpb24gb2Ygdmlld3MgdXNpbmcgc25tcHVzbSwgT0lEcyB3aXRoCiAgIGluZGV4ZXMgPiAyNTUgYXJlIGFsbG93ZWQgbm93LgogICBUaGlzIHJldmVydHMgU1ZOIGNvbW1pdCAjNzQ5Mi4KCjIwMDktMTAtMDUgMTk6MTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IHRoZSBzcGVsbGluZyBvZiBfX2NwbHVzcGx1cyB3aGVuCiAgIGNoZWNraW5nIGlmIHRoZSBmaWxlIHNob3VsZCBiZSB3cmFwcGVkIGluIGV4dGVybiAiQyIuCgoyMDA5LTEwLTA1IDA2OjEzICBtYWdmcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBDSEFOR0VTOiBzbm1wd2FsazogSGFuZGxlIHRoZSBjYXNlIHdoZW4gdGhlIGVuZCBvaWQgaXMgbG9uZ2VyCiAgIHRoYW4gdGhlIGN1cnJlbnQgb2lkIGNvcnJlY3RseQoKMjAwOS0wOS0zMCAxMDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIHBhY2thZ2UgdmVyc2lvbgogICBpbmZvcm1hdGlvbiBjcmFzaGluZyB0aGUgYWdlbnQuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgSW55YXZlbiBTYWthcmFpLgoKMjAwOS0wOS0yNyAxNDo1OSAgYWxleF9iCgogICAqICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAgIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMjogQmluYXJ5IGJ1aWxkIGluc3RydWN0aW9ucyBhbmQgc2NyaXB0IHVwZGF0ZXMuCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnJjMyAtPiBWNS41CgoyMDA5LTA5LTIzIDIzOjQyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjQwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICByZW1vdmUgU1ZOIGJyYW5jaCB3b3JkaW5nCgoyMDA5LTA5LTIzIDIzOjM2ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBwcm9wZXIgcHJvamVjdCBjYXBpdGFsaXphdGlvbgoKMjAwOS0wOS0yMyAyMzozNSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMiAyMTo1MSAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGZpeCB0eXBvcwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnJjMiAtPiBWNS41LnJjMwoJCjIwMDktMDktMTQgMjI6MzkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6MzYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWl4LCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgUGF0Y2ggZnJvbSBtYWdmciBmb3IgNS41IHNwZWNpZmljIGFpeCBidWlsZCBmaXhlcwoKMjAwOS0wOS0wMiAwNzoxMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlbmFtZSBNSUIgbWFjcm8gdG8gTkVUU05NUF9NSUIyX09JRCwgTUlCIGlzCiAgIHRvbyBnZW5lcmljIGFuZCBtYXkgY29uZmxpY3Qgd2l0aCBhcHBsaWNhdGlvbnMuCiAgIAogICBUaGUgb2xkIE1JQiBtYWNybyBpcyBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1bmxlc3MKICAgTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgaXMgZGVmaW5lZC4KCjIwMDktMDgtMzEgMTk6MzggIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGRpdGlvbmFsIFJGQyBtaWJzCgoyMDA5LTA4LTMxIDE5OjM3ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBJQU5BIGZpeGVkIGEgYnVnCgoyMDA5LTA4LTI5IDA3OjI5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgoyMDA5LTA4LTI5IDA3OjI4ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiByZXQgaXMgb25seSB1c2VkIGluIHNldHRhYmxlIHRhYmxlcyBzbyBvbmx5IGRlY2xhcmUgaXQKICAgdGhlbi4KCjIwMDktMDgtMjkgMDc6MjQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlcGxhY2UgdGhlIF9vaWRfbGVuIHZhcmlhYmxlIHdpdGggYW4gZXhwbGljaXQgY2FsbCBvZgogICBPSURfTEVOR1RILgoKMjAwOS0wOC0yOSAwNzoyMSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogTWFrZSBldmVyeSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBzdGF0aWMgc3RhdGljLiBSZW1vdmUgdGhlCiAgIGRlY2xhcmF0aW9ucyBvZiB0aGUgc3RhdGljIGZ1bmN0aW9ucyBhbmQgdGhlIHByaXZhdGUgZGVmaW5lcyBmcm9tCiAgIHRoZSBoZWFkZXIuCgoyMDA5LTA4LTI5IDA3OjE5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW9yZGVyIHRoZSBmdW5jdGlvbnMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zLgoKMjAwOS0wOC0yOSAwNzoxNiAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogbmV0c25tcF90YWJsZV9yZWdpc3RlciBzaG91bGQgYmUgbmV0c25tcF9yZWdpc3Rlcl90YWJsZQogICBhbmQgdGFrZSBvbmx5IHR3byBhcmdtZW50cy4KCjIwMDktMDgtMjkgMDc6MTQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IGJ1aWxkX29pZCBleHBlY3RzIGEgcG9pbnRlciB0byBhbGxvY2F0ZWQgb2lkLiBDaGFuZ2UgdG8KICAgdXNlIGJ1aWxkX29pZF9ub2FsbG9jIGFuZCByZW1vdmUgb25lIGNvcHkgb2YgdGhlIGluZGljZXMuCgoyMDA5LTA4LTI5IDA3OjEwICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBUaGVyZSBpcyBubyBpbmRleF9vaWRfbGVuIG1lbWJlciBpbiBzdHJ1Y3QgZW50cnkuIFVzZSB0aGUKICAgaW50ZW5kZWQgbG9jYWwgdmFyaWFibGUgaW5kZXhfb2lkX2xlbi4KCjIwMDktMDgtMjkgMDc6MDYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IENvcnJlY3QgdGhlIHJldHVybiB0eXBlIG9mICR7aX1fZ2V0KmVudHJ5IHRvIG1hdGNoIHRoZQogICByZXR1cm5lZCB0eXBlLgoKMjAwOS0wOC0yNiAyMjozNyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgd2h3b29wczsgYmxldyB0aGUgY2hhbmdlbG9nIGZvciByYzIKCjIwMDktMDgtMjYgMTc6MzggIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5yYzEgLT4gVjUuNS5yYzIKCQoyMDA5LTA4LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlZCBiYXNlZCBvbiBuZXcgU0YgdXBsb2FkIG1ldGhvZHM7IG5vIGxvbmdlciBhcyBhdXRvbWF0YWJsZQoKMjAwOS0wOC0yNiAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCBmcm9tIEphbiB0byBlbmRsZXNzIGxvb3AgaW4gZGVmYXVsdCByb3V0ZXMKICAgb24gbGludXgKCjIwMDktMDgtMjYgMTc6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBKYW4gdG8gZml4IEMrKyB3cmFwcGVyCgoyMDA5LTA4LTI2IDE0OjUzICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBJbml0aWFsIHN0YWIgYXQgYSBtaW5pbWFsLWhlbHBlciAocmF3KSB0YWJsZSB0ZW1wbGF0ZSwKICAgbGVhdmluZyBtb3N0IG9mIHRoZSB3b3JrIHRvIHRoZSB1c2VyLXByb3ZpZGVkIE1JQiBoYW5kbGVyLgoKMjAwOS0wOC0yNiAxNDo1MCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGJvZ3VzIGZhaWx1cmVzIChyZXR1cm5pbmcgMCkgYW5kIHN1YnNlcXVlbnQKICAgZG91YmxlLWZyZWVzLAogICBkdWUgdG8gMTUtLzMxLWJpdCBtYXNraW5nIHdoZW4gc2VsZWN0aW5nIHJlcXVlc3QgSURzLiBJZGVudGlmaWVkCiAgIGJ5IGtyb21lc2t5LgoKMjAwOS0wOC0yMCAxMzozMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBsdWcgbGVha3MgaW4gaXBJZlN0YXRzVGFibGUsCiAgIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlLCBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlLgogICAKICAgSXQgc2VlbXMgdG8gbWUgdGhlIHRhYmxlcyB3ZXJlIHdyb25nbHkgZ2VuZXJhdGVkIHdpdGgKICAgbTJjX2RhdGFfYWxsb2NhdGUgb3IKICAgc29tZW9uZSBmb3Jnb3QgdG8gcmVsZWFzZSB0aGUgdXNlciBwcm92aWRlZCBkYXRhLgoKMjAwOS0wOC0xMiAxNTowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IGxpYnRvb2wgdmVyc2lvbiBpbiBORVdTCgoyMDA5LTA4LTExIDAwOjQyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2c6CgogICB3aG9vcHM7IGFkZCByZWFsIGNoYW5nZWxvZyBlbnRlcmllcyBmb3IgLnJjMQoKMjAwOS0wOC0xMCAyMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggdHlwbyBpbiBzdm4yY2wgbGluZQoKMjAwOS0wOC0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wOC0xMCAyMTozMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5wcmUzIC0+IFY1LjUucmMxCgoyMDA5LTA4LTEwIDIzOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCB0eXBvIGluIHN2bjJjbCBsaW5lCgoyMDA5LTA4LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA4LTEwIDIxOjMyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTEwIDIxOjIxICBoYXJkYWtlcgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0wNyAxMDozMiAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIENvcnJlY3QsIGNvbnNvbGlkYXRlLCBjbGFyaWZ5IGFuZCBjbGVhbnVwIHRoZSBjYXRhbG9nIG9mIGN1cnJlbnQKICAgY2hhbmdlcy4KCjIwMDktMDgtMDYgMDc6NTcgIGR0czEyCgogICAqIEZBUToKCiAgIEV4cGFuZCBvbiBleGVjIHZzIGV4dGVuZC4KCjIwMDktMDgtMDUgMjA6MDcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI4MjIzNTU6IEZpeCBtZW1vcnkgbGVha3Mgb24KICAgdWRwRW5kcG9pbnRUYWJsZSAobGludXgpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW5rIExpY2h0ZW5oZWxkCgoyMDA5LTA4LTA1IDE5OjA1ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjgyMjMzNzogRml4IG1lbW9yeSBsZWFrIGluCiAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA5LTA4LTA1IDE1OjE2ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgV2hlbiBkZWxldGluZyByb3cgY29udGV4dCwgZGVsZXRlIGFsc28gYXNzb2NpYXRlZCBkYXRhLgoKMjAwOS0wOC0wNSAxNToxNSAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gTmV0VG9NZWRpYVRhYmxlLgogICBUaGUgY29udGFpbmVyIHVzZWQgdG8gdHJhY2sgZW50cmllcyB0byBkZWxldGUgZnJvbSBjYWNoZSBzaG91bGQKICAgYmUgcmVsZWFzZWQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgoyMDA5LTA4LTA1IDE1OjEyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFVEUC0gYW5kIFRDUC1NSUIuCiAgIFRoZSBkYXRhIGZyb20gcmF3X2RhdGEgYXJlIGNvcGllZCB0byBjYWNoZSwgc28gaXQgc2hvdWxkIGJlCiAgIGZyZWVkLgoKMjAwOS0wOC0wNSAxMDoxNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IGFwcHM6IEJVRzogMjgxMTU3NzogRml4IGJ1ZyBpbiBHZXRCdWxrIGhhbmRsaW5nLgogICBEb24ndCBnZXQgY29uZnVzZWQgYnkgaW5kZXggdmFsdWVzIHRoYXQgY29udGFpbiBhICc6JyBjaGFyYWN0ZXIuCgoyMDA5LTA4LTA0IDIxOjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDI4MjcyNjk6IFN1cHByZXNzIG5vbi1vcmRlcmVkIFRPRE8gY29tbWVudHMuCgoyMDA5LTA4LTA0IDIxOjM1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBjb2RlIGZvciBhIHNpbmdsZSB0YWJsZSwKICAgYXMgd2VsbCBhcyBhIGxhcmdlciBncm91cC4KICAgQWxzbyBhZGRyZXNzZXMgYnVnIDIxNTAyODUKCjIwMDktMDgtMDQgMjE6MTYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIHNubXBsaWI6IGZyb20gIkJhcnQgdmFuIEFzc2NoZSAmIE1hZ251cyBGcm9tcmVpZGUiOiBNb3JlIHVwZGF0ZXMKICAgdG8gc3RydG91bGwuYwoKMjAwOS0wOC0wNCAxMDo1NyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmcm9tICJNYXJjdXMgUsO8Y2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgogICA2NC1iaXQgY291bnRlcnMgaW4gaXBTeXN0ZW1TdGF0c1RhYmxlIGdldCBiaWdnZXIgdGhhbiAyXjMyCgoyMDA5LTA4LTAzIDE5OjI3ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI4Mjc3MjI6IGZyb20gIkJhcnQgVmFuIEFzc2NoZSI6IEltcHJvdmUKICAgc3RydG91bGwgdG8gYmUgbGVzcyBNU1ZDLXNwZWNpZmljCgoyMDA5LTA4LTAzIDE4OjM4ICBtYWdmcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UgZnJvbSB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgc2hvdWxkCiAgIGJlIGluc3RhbGxlZAoKMjAwOS0wNy0yNyAxMjo0MSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA3LTI3IDEyOjExICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMzoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZQoKMjAwOS0wNy0yNyAxMjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIENIQU5HRVM6IGZyZWVic2Q6IHBhdGNoIGZyb20gQ2V6YXJ5IE1vcmdhIHRvIGZpeCBhIG1ha2UgdGVzdCBvbgogICBmcmVlYnNkCgoyMDA5LTA3LTI3IDEyOjAyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA3LTI3IDExOjUyICBoYXJkYWtlcgoKICAgKiAgRkFRLCBORVdTLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDctMjcgMDg6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICByZXZlcnQgYWNjaWRlbnRpYWxseSBhcHBsaWVkIHBhdGNoCgoyMDA5LTA3LTI3IDA4OjM3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBhZGRlZCBhIHRlc3QgY2FzZSBmb3IgdWRwL2R0bHMKCjIwMDktMDctMjcgMDg6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGNhcnJ5IGEgc2VjTmFtZQoKMjAwOS0wNy0yNiAyMTozNCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIGZvciBXb3Jrc3BhY2UgYnVpbGQuCgoyMDA5LTA3LTI2IDE4OjIwICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLUFkZGVkIHN0cnRvdWxsIGZ1bmN0aW9uIGFuZCBjb25maWd1cmUgY2hlY2sgZm9yIHN5c3RlbXMgd2l0aG91dAogICBpdCBzdWNoIGFzIFdpbjMyIE1TVkMgNgogICAtV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIC0gcmVxdWlyZXMgbmV3IHN0cnRvdWxsLmMgZmlsZQogICAtV2luMzI6IE5ldyBidWlsZC1iaW5hcnkgc2NyaXB0IHRvIHNpbXBsaWZ5IGJ1aWxkaW5nIHRoZSBXaW5kb3dzCiAgIGJpbmFyeSBwYWNrYWdlLgoKMjAwOS0wNy0yNSAwNTozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBNYWtlIHN1cmUgYSBtZXNzYWdlIGlzIHdyaXR0ZW4gaWYgdGhlIHJlbGV2YW50IHRhYmxlIGlzIG1pc3NpbmcuCgoyMDA5LTA3LTIzIDIxOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGVtYWlsIGFkZHJlc3MgaW4gUkVBRE1FLgoKMjAwOS0wNy0yMyAwMTowNyAgYWxleF9iCgogICAqICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwOCsgZml4ZXMuCgoyMDA5LTA3LTIzIDAwOjU1ICBhbGV4X2IKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwNSsgYnVpbGQgZml4ZXMuIFRoYW5rcyB0byBCYXJ0IFZhbiBBc3NjaGUuCgoyMDA5LTA3LTIxIDEyOjIyICBkdHMxMgoKICAgKiAgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMucm93LmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEFkZCBzaW1wbGUgZGVidWcgb3V0cHV0IHRvIG1pYjJjIHRlbXBsYXRlcy4KCjIwMDktMDctMjEgMTI6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBtaXNzaW5nIHNlbWljb2xvbiB0eXBvcy4KCjIwMDktMDctMjEgMDk6MTUgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBzdWdnZXN0ZWQgZW50cmllcy4KCjIwMDktMDctMjAgMTk6MjQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09ESU5HIHNlY3Rpb24uCgoyMDA5LTA3LTIwIDExOjA5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi5oOgoKICAgQWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgZnJvbSBwYXRjaCAjMjA1MzI3My4KCjIwMDktMDctMTkgMTU6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA5LTA3LTE2IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBBZGQgSVB2NiBvY3RldCBjb3VudGVycy4KICAgTmV3IExpbnV4IGtlcm5lbHMgKGUuZy4gMi42LjMxLXJjMiwgbWF5YmUgc29tZSBlYXJsaWVyKSBwcm92aWRlCiAgIGNvdW50ZXJzIGZvcgogICBpbmNvbWluZy9vdXRnb2luZyBJUHY2IHRyYWZmaWMgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBJZlN0YXRzVGFibGUuCgoyMDA5LTA3LTE1IDIyOjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBwdXQgdGVtcG9yYXJ5IGRhdGEgdG8gd2hlcmUgdGhleSBiZWxvbmcKCjIwMDktMDctMTEgMjE6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZSBjb25maWd1cmUKCjIwMDktMDctMTEgMjE6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBidWlsZCBmaXggKGUuZy4gZm9yIEZyZWVCU0QpOiBhZGp1c3Qga3ZtIGNvbmZpZ3VyZSB0ZXN0cwoKMjAwOS0wNy0xMCAxMjozNSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoZWNrIElQdjYgcG9ydCByYW5nZXMgaW4gdGhlIHNhbWUgd2F5IGFzIElQdjQgcG9ydHMgYXJlIGNoZWNrZWQuCgoyMDA5LTA3LTEwIDA3OjQ2ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmM6CgogICBGaXggYW5vdGhlciBJUHY0IGFkZHJlc3Mgc2l6ZSAtIGxvbmcgaGFzIDggYnl0ZXMgb24gNjRiaXQgTGludXguCiAgIEFsc28gZml4IHRoZSBkZWZhdWx0IHR5cGUgZm9eQ0FTTl9JUEFERFJFU1MgaW4gbWliMmMsIHNvIHRoZQogICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jIGNhbiBiZSBzYWZlbHkgcmVnZW5lcmF0ZWQuCgoyMDA5LTA3LTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIGNsZWFudXAgb2YgdGVzdGluZyBjYXNlcyB0byByZW1vdmUgZG91YmxlIGluY2x1ZGUgYW5kIGRvdWJsZQogICBleHBvcnRzCgoyMDA5LTA3LTA5IDIzOjA3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDMwMHVkcDoKCiAgIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgVENQL0lQdjQgdGVzdAoKMjAwOS0wNy0wOSAyMjoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBuZXcgdGVzdHMgZm9yIHRlc3RpbmcgZGVmaW5lZCB0cmFuc3BvcnRzCgoyMDA5LTA3LTA5IDIyOjE3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhIENPTkZJR0FQUCBtYWNybyBmb3IgYWRkaW5nIHN0dWZmIHRvIHNubXAuY29uZgoKMjAwOS0wNy0wOCAxNToxMiAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGdldGhvc3RieWFkZHIgcGFyYW1ldGVyLCBuZXRzbm1wX3VkcF9mbXRhZGRyIG5ldmVyIHJldHVybmVkIGEKICAgaG9zdG5hbWUuCgoyMDA5LTA3LTA3IDE1OjQ2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBGaXggSVAgYWRkcmVzcyBsZW5ndGggb24gNjQgYml0IHN5c3RlbXMgaW4gbWliSUksIHBhc3MgYW5kCiAgIHBhc3NfcGVyc2lzdCBtb2R1bGVzLgoKMjAwOS0wNy0wNyAxNToyNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBVc2UgY29ycmVjdGx5IHNpemVkIElQIGFkZHJlc3NlcyBpbiBhZGRyZXNzIHRyYW5zbGF0aW9uIHRhYmxlCiAgIHByb2Nlc3NpbmcgLSB1X2xvbmcgY2FuIG1ha2UgcHJvYmxlbXMgb24gYmluIGVuZGlhbiA2NCBiaXQKICAgc3lzdGVtcwoKMjAwOS0wNi0yOSAxMzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSBlbnRyeSBmb3IgYSBwYXRjaCB0aGF0IGdvdCByZXZlcnRlZAoKMjAwOS0wNi0yNSAxNToyNCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIE1vdmUgbm9uLWNvcmUgZGF0YSB0eXBlcyBpbnRvIGEgc2VwYXJhdGUgKGxpYnJhcnkgaW50ZXJuYWxzKQogICBoZWFkZXIgZmlsZS4KICAgTW92ZSB0aGUgbGFyZ2VfZmRfc2V0IGRhdGEgc3RydWN0dXJlIGludG8gdGhpcyBoZWFkZXIgZmlsZS4KCjIwMDktMDYtMTggMjI6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWxsb3cgYnVpbGRpbmcgd2l0aCBQZXJsIHZlcnNpb25zIHRoYXQgbGFjawogICBQRVJMX0VYSVRfREVTVFJVQ1RfRU5ECgoyMDA5LTA2LTE4IDIyOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBidWlsZCBmaXggZm9yIFRydTY0IFVuaXggYW5kIElSSVg6IG1vdmUgX1hPUEVOKgogICBkZWZpbml0aW9ucyB0byB3aGVyZSB0aGV5IGFyZSBpbiA1LjQueCBhbmQgZWFybGllcgoKMjAwOS0wNi0xOCAwNjowMiAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2xlYW4gdXAgLS13aXRoLW5sIGNvbmZpZ3VyYXRpb24KICAgKiAgTW92ZSB0aGUgX0FSR19XSVRIIHRvIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlICAyMDA5LTA2LTE2IDE1OjE3CiAgICAgICByc3RvcnkKCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGJlZm9yZSBkZXJlZgoKMjAwOS0wNi0xNSAyMzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBjb21tZW50IGV4cGxhaW5pbmcgbm90IHF1aXRlIG9idmlvdXMgbGFjayBvZiBtZW1tb3ZlCgoyMDA5LTA2LTE1IDE5OjMyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBSZW1vdmUgI2lmIDAgY29tbWVudGVkIGNvZGUKCjIwMDktMDYtMTUgMTU6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQUdFTlQgc2VjdGlvbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucHJlMiAtPiBWNS41LnByZTMKCjIwMDktMDYtMTMgMDE6MTIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNTY0NTUyOiBmcm9tIGFobWFrZTogcHJvdmlkZSBsaWJuZXRsaW5rCiAgIHN1cHBvcnQgZm9yIGxvYWRpbmcgdGhlIHRjcCB0YWJsZQoKMjAwOS0wNi0xMiAxOTowMiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE0MDAxMDE6IHJlbW92ZSBkZWxldGVkIGludGVyZmFjZXMgZnJvbQogICBpZlRhYmxlCgoyMDA5LTA2LTExIDIzOjA5ICBoYXJkYWtlcgoKICAgKiAgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi93aW5waXBlLmMsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBDSEFOR0VTOiB3aW4zMjogUEFUQ0g6IDI2OTM3NDY6IGZyb20gYnZhc3NjaGU6IGltcHJvdmVkIHNvY2tldAogICBzdGFydHVwIHN1cHBvcnQKCjIwMDktMDYtMTEgMjI6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjAxMjQwMjogZG9uJ3QgZmFpbCBvbiBmYWlsdXJlIHRvIGxvb2sgdXAKICAgaW50ZXJmYWNlIGVycm9yIGNvdW50ZXJzLgoKMjAwOS0wNi0xMSAyMjowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgcmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCB0byBtYWtlIGNpcmN1bGFyIGRlcGVuZGVuY2llcyBiYWNrIHRvCiAgIHRoZWlyIHJlZ3VsYXIgaW5zYW5lIG9yZGVyaW5nOyBJIGRvbid0IGxpa2UgdGhpcyBzaXR1YXRpb24gYXQgYWxsCgoyMDA5LTA2LTExIDIxOjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBpbmNsdWRlIGxhcmdlX2ZkX3NldC5oIGJlZm9yZSB0eXBlZGVmaW5nIHNvbWV0aGluZyBiYXNlZCBvbiB0aGUKICAgc3RydWN0dXJlCgoyMDA5LTA2LTAzIDEyOjM1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIRVM6IDI3OTM4NTc6IFJlcG9ydCBmYWlsZWQgYXN5bmNocm9ub3VzCiAgIHJlcXVlc3RzLgoKMjAwOS0wNi0wMyAxMTo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgUmVtb3ZlIHBhdGNoICMyMTgyNTkyIC0gcmV2ZXJ0IHRvIFNWTiByZXZpc2lvbiAxNzY0NgogICBUaGUgY2xlYW51cCByb3V0aW5lcyBkb24ndCBhcHBlYXIgdG8gZXhpc3QuCgoyMDA5LTA2LTAzIDEwOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIxODI1OTI6IENsZWFuIHVwIHZhY21Db250ZXh0VGFibGUgYWZ0ZXIKICAgdW5yZWdpc3RyYXRpb25zCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvaG4gRm9yc3l0aAoKMjAwOS0wNi0wMyAxMDoxMiAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI3OTcyNTE6IFN1cHBvcnQgbXVsdGlwbGUgaW5pdGlhbGlzYXRpb24gYW5kCiAgIHNodXRkb3duLCBmaXggbWVtb3J5IGxlYWtzCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEl2b3NoCgoyMDA5LTA2LTAxIDE1OjUzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5FR1M6IGRvY3M6IFBBVENIRVM6IDI3ODgwNzI6IERvY3VtZW50ICdsb2dtYXRjaCcKICAgZnVuY3Rpb25hbGl0eS4KCjIwMDktMDYtMDEgMTU6NTAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAyNzgwNDExOiBGaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMDktMDYtMDEgMTU6MzcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJwc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jLCBjb25maWd1cmUsICAgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsIG00L2xpYnRvb2wubTQsICAgCiAgICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBDSEFOR0VTOiBkb2NzOiBQQVRDSDogMjc5NTczOTogRml4IGluY29ycmVjdCBkaXNrL2ZpbGUgc2l6ZQogICBkZXNjcmlwdGlvbnMgJiB1bml0IHNwZWNpZmllcnMKCjIwMDktMDYtMDEgMTM6MTEgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBSZXdvcmsgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gbWF0Y2ggY3VycmVudCBzbm1wZC5jb25mKDUpCiAgIHN0cnVjdHVyZSwKICAgYW5kIG1vcmUgY2xlYXJseSBpbGx1c3RyYXRlIGN1cnJlbnQgYmVzdCBwcmFjdGlzZS4KCjIwMDktMDUtMzAgMDY6NTggIG1hZ2ZyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBSZW1vdmUgdW51c2VkIGluY2x1ZGUuCgoyMDA5LTA1LTI5IDA5OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmg6CgogICBBdXRvbWF0aWNhbGx5IGxvYWQgdGhlIGV4YW1wbGUgcGFzc3Rlc3QgTUlCCgoyMDA5LTA1LTI5IDA5OjA4ICBkdHMxMgoKICAgKiAgbG9jYWwvcGFzc3Rlc3QsIGxvY2FsL3Bhc3N0ZXN0LnBsLCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIFJld29yayAicGFzc3Rlc3QiIGV4YW1wbGVzIHRvIGZ1bGx5IHZhbGlkYXRlIEdFVE5FWFQgcmVxdWVzdHMsCiAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIE1JQiBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4KICAgQWRkIGFuIGV4YW1wbGUgTUlCIHRvIGRlZmluZSB0aGF0IHN0cnVjdHVyZS4KCjIwMDktMDUtMjggMTI6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gTUlCcyBzZWN0aW9uCgoyMDA5LTA1LTI4IDExOjU2ICBkdHMxMgoKICAgKiBGQVE6CgogICBUd2VhayBwaHJhc2luZyBvZiBhbiAob3ZlcmxvbmcpIHF1ZXN0aW9uIGluIHRoZSBQZXJsIHNlY3Rpb24KCjIwMDktMDUtMjggMTE6MzEgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBlbnRyeSBpbiB0aGUgQXBwbGljYXRpb25zIHNlY3Rpb24KCjIwMDktMDUtMjggMTA6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQXBwbGljYXRpb25zIHNlY3Rpb24KCjIwMDktMDUtMjcgMTU6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gR0VORVJBTCBzZWN0aW9uLgoKMjAwOS0wNS0xOSAxNzo1MCAgYWxleF9iCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIFVwZGF0ZSBQZXJsIFRyYXBSZWNlaXZlciBleGFtcGxlIHRvIHByb3Blcmx5IG91dHB1dCB0aGUKICAgc2VjdXJpdHlFbmdpbmVJRCBhbmQgY29udGV4dEVuZ2luZUlELgoKMjAwOS0wNS0xOCAxMDowMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXZvaWQgZGl2aXNpb24gYnkgemVyby4KCjIwMDktMDUtMTUgMTk6MjIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMjc4MjcwMDogYnVpbGQgZmFpbHVyZSB3aGVuIHVzaW5nCiAgIC0td2l0aC1wa2NzIG9uCiAgIFNvbGFyaXMKCjIwMDktMDUtMTUgMTQ6NTkgIGpzYWZyYW5lawoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBGaXggY29tcGlsYXRpb24gb2YgcnBtIHBhY2thZ2VzIG9uIEZlZG9yYSA+PSAxMCAtIGl0IGhhcyBuZXdlcgogICBSUE0gYW5kIHRoZSBvbGQgQVBJIG5lZWRzIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBieSBhIG1hY3JvLgoKMjAwOS0wNS0xNCAxMzozOSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBUaGUgc25tcGNtZCBtYW4gcGFnZSBpcyBub3Qgc3BlY2lmaWMgaG93IHJhbmdlIG9mIGxvZyBwcmlvcml0aWVzCiAgIHNob3VsZCBiZSBzcGVjaWZpZWQgb24gY29tbWFuZCBsaW5lLAogICBpLmUuIGJvdGggLUxPIDQtMCBhbmQgLUxPIDAtNCBhcmUgdmFsaWQuIEFsbCBzbm1wIGNvbW1hbmRzIChpbmNsLgogICBzbm1wZCkgc2hvdWxkIHJlY29nbml6ZSB0aGF0LgoKMjAwOS0wNS0xNCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQWxsb3cgIm1vbml0b3IiIHRvIGhhbmRsZSBuZWdhdGl2ZSB0aHJlc2hvbGQKICAgdmFsdWVzLgogICBSZXBvcnRlZCBieSBSaWNoYXJkIEdpcHBzLgoKMjAwOS0wNS0xMyAyMjozMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjc5MTQxNzogZml4IHNubXBkIHNlZ2ZhdWx0IHdoZW4gcnVuIHdpdGgKICAgLURBTEwKICAgUGF0Y2ggc3VwcGxpZWQgYnkgUm9uIFJvc2tlbnMuCgoyMDA5LTA1LTEzIDA4OjAyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEJyaW5nIGRvY3VtZW50YXRpb24gb2Ygbm90aWZpY2F0aW9uRXZlbnQgc3ludGF4IGludG8gbGluZSB3aXRoCiAgIHJlYWxpdHkuCiAgIChVc2VzICItbSIgcmF0aGVyIHRoYW4gIi1uIiB0byByZWdpc3RlciBzdGFuZGFyZCBNSUIgcGF5bG9hZAogICBvYmplY3RzKQogICBJbmNvbnNpc3RlbmN5IHJlcG9ydGVkIGJ5IFJpY2hhcmQgR2lwcHMuCgoyMDA5LTA1LTEwIDIxOjEyICBhbGV4X2IKCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IEFkZGVkIGF1dG9tYXRpYyBtYW5pZmVzdCBtZXJnaW5nIHdpdGggbXQuZXhlIGZvciBNU1ZDIDIwMDgKICAgZXRjLgoKMjAwOS0wNS0wOCAxMzoxMiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ2hhbmdlczogV2luMzI6IEFkZCBzdXBwb3J0IGZvciBXaW5kb3dzIDcsIFZpc3RhIGFuZCAyMDA4IGZvcgogICB3aW5FeHRETEwuCgoyMDA5LTA1LTA4IDAyOjA3ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBETEwuCgoyMDA5LTA1LTA3IDIzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jOgoKICAgYnVpbGQgZml4IGZvciBIUC1VWDogaW5jbHVkZSA8c3lzL3BhcmFtLmg+IGZvciBERVZfQlNJWkUKCjIwMDktMDUtMDcgMDU6MTEgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuaDoKCiAgIFVwcywgbWlzc2VkIGEgbmV3IHByb3RvdHlwZSBoZWFkZXIKCjIwMDktMDUtMDYgMjI6MjYgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEEgbWFuIGxpbmUgY2Fubm90IHN0YXJ0IHdpdGggYSAnCgoyMDA5LTA1LTA2IDIyOjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgSVB2NiBhZHJlc3NlcyBhcmUgYSBiaXQgbW9yZSBjb21wbGljYXRlZCB0aGVuIDMyYml0cwoKMjAwOS0wNS0wNiAyMjowNiAgbmJhCgogICAqICBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50CgoyMDA5LTA1LTA2IDIyOjAyICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFRyaXZpYWwgd2FybmluZyBmaXhlcwoKMjAwOS0wNS0wNiAyMjowMCAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgSG1tbSwgSUFOQSBmaXhlZCB0aGVpciBidWcgdG9vCgoyMDA5LTA1LTA2IDIxOjU5ICBuYmEKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGVtYWlsIHRvIGN1cnJlbnQKCjIwMDktMDUtMDYgMjE6NTkgIG5iYQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3BlcmwuYywgYWdlbnQvc25tcF92YXJzLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCAKICAgICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgVHJpdmlhbCB3YXJuaW5nIGZpeGVzCgoyMDA5LTA1LTA2IDIxOjQ5ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBjb250ZXh0RW5naW5lSUQgaXMgYSBoZXhzdHJpbmcsIG5vdCBhbiBvYmplY3QgaWRlbnRpZmllcgoKMjAwOS0wNS0wNiAyMTo0NSAgbmJhCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL2ludDY0LmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCBmb3JtYXQgd2FybmluZ3MgZnJvbSBkZWJ1ZyBvdXRwdXQKCjIwMDktMDUtMDYgMjA6NDUgIG5iYQoKICAgKiBtaWJzL3NtaXN0cmlwOgoKICAgUHJvcGVybHkgcmVjb2duaXplIG1lc3NhZ2Ugc3ludGF4IG1vZHVsZXMgKHRvIGJlIGFibGUgdG8gaWdub3JlCiAgIHRoZW0pCgoyMDA5LTA1LTA2IDIwOjM2ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUkZDIHVwZGF0ZXMKCjIwMDktMDUtMDYgMjA6MzUgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIFN5bnRheCBmaXggZm9yIGN1cnJlbnQgSUFOQS1QUklOVEVSLU1JQgoKMjAwOS0wNS0wNiAyMDozNCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQSB2ZXJzaW9uCgoyMDA5LTA1LTA0IDEzOjQ3ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBETEwuCgoyMDA5LTA1LTAxIDE1OjQzICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFN0b3AgdXNpbmcgYSBmaXhlZCBzdHJpbmcgZm9yIGluZGVudGF0aW9uLiBSZW1vdmUKICAgdGhlIERFQlVHSU5ERU5UKCkgbWFjcm8gKHRoYXQgZGlkIG5vdGhpbmcpLiBDaGFuZ2UgdGhlIG1lYW5pbmcgb2YKICAgdGhlIGludGVybmFsIF9fREJHSU5ERU5UKCkgbWFjcm8gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3BhY2VzCiAgIHRvIGluZGVudCBpbnN0ZWFkIG9mIGEgc3RyaW5nIHRoYXQgcmVwcmVzZW50IHRoZSBpbmRlbnRhdGlvbgogICBsZXZlbC4gRGVwcmVjYXRlIHRoZSBkZWJ1Z19pbmRlbnQgZnVuY3Rpb24uCgoyMDA5LTA0LTMwIDA2OjU3ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVzZSBzdGF0aWMgd2F0Y2hlcl9pbmZvIGZvciBhbGwgd2F0Y2hlZCB2YXJpYWJsZXMKICAgYW5kIGluIGludF93YXRjaC4KCjIwMDktMDQtMzAgMDY6NDEgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIGluaXRpYWxpemF0aW9uIGZyb20gYWxsb2NhdGlvbiBmb3IKICAgbmV0c25tcF93YXRjaGVyX2luZm8gc3RydWN0dXJlcyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZQogICBzdGF0aWNhbGx5IGFsbG9jYXRlZCBkYXRhLgoKMjAwOS0wNC0zMCAwNjozNCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgQWRkIG1pc3NpbmcgcmV0dXJuIHZhbHVlLgoKMjAwOS0wNC0zMCAwMDoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgRFRMUyBzdXBwb3J0OyBzZW1pIGRvY3VtZW50IHRoZSBTU0ggc3VwcG9ydCBhbmQKICAgZG9jdW1lbnQgdGhlIC1zIHN3aXRjaCB0byBtYW55IFZBQ00gc2V0dGluZ3MKCjIwMDktMDQtMjkgMjM6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBjb25uZWN0aW9uIG9wZW5pbmcgZXJyb3JzIGFuZCBmcmVlIG1lbW9yeSBvbgogICBmYWlsdXJlcwoKMjAwOS0wNC0yOSAxMjoxOSAgYWxleF9iCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogVXBkYXRlIGRlZmluZXMgZm9yIF9XSU4zMl9XSU5OVCBhbmQgTlRERElfVkVSU0lPTiB0bwogICBzdXBwb3J0IFdpbmRvd3MgMjAwMCBhbmQgaGlnaGVyIGFuZCBhZGQgSVBWNiBkZWZpbmUgdG8gYWxsb3cgSVBWNgogICBjb2RlIHRvIGNvbXBpbGUuCgoyMDA5LTA0LTI4IDA2OjM0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIHNubXBkLCBMaW51eDogUmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDktMDQtMjggMDY6MDcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBzbm1wZDogQWRkIG1pc3NpbmcgYXJndW1lbnQgdG8gcHJpbnRmLWxpa2UgY2FsbC4KCjIwMDktMDQtMjggMDU6NTMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIHNubXBkOiBNYXJrIG1vcmUgb2lkcyBhcyBjb25zdC4KCjIwMDktMDQtMjggMDU6NTEgIG1hZ2ZyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZXR1cm4gYSB2YWx1ZSBmcm9tIHNwcmludF9yZWFsbG9jX3ZhbHVlIGV2ZW4gaWYgbm8gc3VidHJlZSBpcwogICBsb2NhdGVkLgoKMjAwOS0wNC0yOCAwMToxMiAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IE1TVkM6IE9ubHkgdXNlIFdpbmRvd3MgQVBJIGZ1bmN0aW9ucyBhdmFpbGFibGUgb24gV2luWFAgb3IKICAgYmVmb3JlIChJUFY2KSBvciAyMDAwIG9yIGJlZm9yZSAobm8gSVBWNikuCgoyMDA5LTA0LTI2IDIzOjMwICBhbGV4X2IKCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogUmVtb3ZlIG1hY2hpbmUgdHlwZSBvZiBJMzg2IGZyb20gTElOSzMyX0ZMQUdTIHRvIGFsbG93CiAgIGNvbXBpbGluZyB3aXRoIE1TVkMgMjAwOCBhcyBlaXRoZXIgMzIgb3IgNjQtYml0LgoKMjAwOS0wNC0yNiAxNzozOCAgYWxleF9iCgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgTVNWQyAyMDA4LiBDb3B5IGFuZCBjbGVhbnVwCiAgIG1hbmlmZXN0IGZpbGVzLgoKMjAwOS0wNC0yNiAxNToyMSAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogUmUtZW5hYmxlIHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBDb3VudGVyNjQgZm9yIE1TVkMuCgoyMDA5LTA0LTI2IDE0OjM0ICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgd2luMzIvYnVpbGQucGwsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgTVNWQyAyMDA4LiBJRlRZUEUgaXMgZGVmaW5lZCBieQogICBNU1ZDIDIwMDgsIHNvIGludGVyZmFjZXMuYyB2YXJpYWJsZXMgd2VyZSBjaGFuZ2VkIHRvIE5FVFNOTVBfLgoKMjAwOS0wNC0yNiAxMzowNiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IFVwZGF0ZSBidWlsZCBpbnN0cnVjdGlvbnMgaW4gY29tbWVudHMuCgoyMDA5LTA0LTI0IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZml4IHRoZSBBU05fT1BBUVVFIHBhdGNoIHRoYXQgd2FzIGNvbW1pdGVkIHdpdGhvdXQgcHJvcGVyIGRpZmYKICAgY29udGV4dAoKMjAwOS0wNC0yNCAwNzozMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIENIQU5HRVM6IEhQLVVYOiBCVUc6IDI3Nzk0NzI6IEZpbGVzeXN0ZW1zIG1pc3NpbmcgaW4gaHJTdG9yYWdlCiAgIHRhYmxlIG9uIEhQLVVYIDExLjMxCiAgIChhbGxvdyBmb3IgbW50dGFiIHRoYXQgaXMgYSBjaGFyYWN0ZXIgc3BlY2lhbCBkZXZpY2UpCgoyMDA5LTA0LTI0IDAxOjM2ICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogQlVHOiAyNzc5NTQxIEZpeGVkIGhhbmRsZSBsZWFrIGluIHBhc3NfcGVyc2lzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucHJlMSAtPiBWNS41LnByZTIKCjIwMDktMDQtMjMgMjI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBmaXggQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA5LTA0LTIzIDIyOjI1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA0LTIzIDIyOjIzICBoYXJkYWtlcgoKICAgKiAgbWFuL2NvbmZpZ19hcGkuMywgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgaW5pdGlhbCBkb3h5Z2VuIGV4dHJhY3RzIGZvciB0aGUgbmV3IGhlYWRlcnMKCjIwMDktMDQtMjMgMjI6MTkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wNC0yMyAyMjoxNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGZhaWxpbmcgdG8gb3BlbiBtbnR0YWIKCjIwMDktMDQtMjMgMjI6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBDSEFOR0VTOiBIUC1VWDogQlVHOiAyNzc5NDcyOiBGaWxlc3lzdGVtcyBtaXNzaW5nIGluIGhyU3RvcmFnZQogICB0YWJsZSBvbgogICBIUC1VWCAxMS4zMQoKMjAwOS0wNC0yMyAyMTo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMjc1MTU4ODogSW5jb25zaXN0ZW50IGRhdGEgKGUuZy4gVURQL1RDUAogICBNSUIKICAgc2NhbGFyIHZhbHVlcyBvZiB6ZXJvKSBjYW4gYmUgcmVwb3J0ZWQgb24gU29sYXJpcyAxMFU0KwogICBQYXRjaCBwcm92aWRlZCBieSBBbmRlcnMgUGVyc3NvbgoKMjAwOS0wNC0yMyAxNzozMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE5MDE3NjQ6IGZyb20ga3Jpc3p0b2Zvcm8gZm9yIHN1cHBvcnRpbmcKICAgbG9nd2F0Y2ggZmlsZXMgdGhhdCBhcmUgZGF0ZSBiYXNlZAoKMjAwOS0wNC0yMyAxNzoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTkVXUzogcGVybDogUEFUQ0ggMTk1NjE5MzogZnJvbSBjYWNveWxlOiBiZXRhIHRocmVhZGFibGUgcGVybAogICBtb2R1bGUgY29kZSBmb3IgU05NUHYxL1NOTVB2MmMgdXNhZ2UuCgoyMDA5LTA0LTIzIDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBzb2xhcmlzOiBQQVRDSDogMjAxMjQwNDogZGVhbCB3aXRoIG1vcmUgdGhhbiAxMAogICBpbnRlcmZhY2VzLiBOZXcgaGFyZGNvZGVkIGxpbWl0IGlzIDUwLiBBIGJldHRlciBzY2FsaW5nIHBhdGNoCiAgIHdvdWxkIGJlIGFwcHJlY2lhdGVkIDotKQoKMjAwOS0wNC0yMyAxNjo0NyAgaGFyZGFrZXIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgZG9jdW1lbnQgdGhhdCB0aGUgZXRoZXJsaWtlLW1pYiBoYXMgYW4gaW1wbGVtZW50YXRpb24KCjIwMDktMDQtMjMgMTY6NDAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX3NldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2VudW1zLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfb2lkcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjA1MzI3MzogZnJvbSBuYXJlbmRyYV9rX2RlbGwgdG8gaW1scGVtZW50CiAgIHRoZSBldGhlcmxpa2UgbWliIChhdCBsZWFzdCBvbiBsaW51eCkKCjIwMDktMDQtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIOiAyMTM2NDM3OiBtYWtlIEZMQUcgZGVmaW5lcyBtb3JlIDY0Yml0CiAgIGZyaWVuZGx5IHdoZW4gaHVnZSB0YWJsZXMgYXJlIGVuY291bnRlcmVkCgoyMDA5LTA0LTIzIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2hwdXguYzoKCiAgIENIQU5HRVM6IGhwdXg6IFBBVENIOiAyMDg4NzI2OiBmcm9tIHJhdmluZHJhMTEwMyB0byBmaXggYW4gaXNzdWUKICAgd2l0aCBocHV4IHJlcG9ydGluZyBtZW1vcnkgaW4gbmVnYXRpdmUgdmFsdWVzLgoKMjAwOS0wNC0yMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjA3NDgxNzogZnJvbSBmZW5uZXIgdG8gZml4IHJlZ2V4cCBlbmdpbmUKICAgQ1BVIHBlcmZvcm1hbmNlIGlzc3VlcwoKMjAwOS0wNC0yMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIxNjI2NTI6IHBhdGNoIHRvIGZpeCBzaW1wbGUgaHJmcyBjaGVja3MKICAgd2hlbiBORlMgaXMgaW4gdXNlLgoKMjAwOS0wNC0yMyAxNjoxMSAgaGFyZGFrZXIKCiAgICogIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBwZXJsL21hbmFnZXIvbWFuYWdlci5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMTgyMDc5OiBhcHBseSBwYXRjaCBmcm9tIGludDMyIHRvIGZpeCBhCiAgIG51bWJlciBvZiBwZXJsIHdhcm5pbmdzIGFuZCBmaXggdGhlIG1vZHVsZXMgc28gdGhhdCB1c2Ugc3RyaWN0IGlzCiAgIHBvc3NpYmxlCgoyMDA5LTA0LTIzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKICAgICAgICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDIxODQwMzk6IG1pc2MgZml4ZXMgZm9yIGZyZWVpbmcgbWVtb3J5CiAgIGR1cmluZyBlcnJvciBjb25kaXRpb25zLgoKMjAwOS0wNC0yMyAxNTo0NyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjM2MTcxMjogZnJvbSBrYnJpbnQgdG8gZml4IGdldGJ1bGsKICAgb3B0aW1pemF0aW9uIGR1cmluZyB3YWxrcyB3aGVyZSBlbmQgY29uZGl0aW9ubnMgYXJlIG1ldCBvbiBtaWRkbGUKICAgT0lEcyBmaXJzdC4KCjIwMDktMDQtMjMgMTU6MzUgIGFsZXhfYgoKICAgKiBSRUFETUU6CgogICBSRUFETUUgVGhhbmtzIHVwZGF0ZQoKMjAwOS0wNC0yMyAxNTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggZnJvbSBUdXNoYXIgR29oYWQgdG8gY2xlYW4gdXAgbm90aWZpY2F0aW9uCiAgIHJlZ2lzdGVyYXRpb25zIGR1cmluZyBkaXNtYW4gZXZlbnQgbWliIGNsZWFudXAgcHJvY2Vzc2luZy4KCjIwMDktMDQtMjMgMTQ6NTUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFNDVFAgY29udGFpbmVycy4KCjIwMDktMDQtMjMgMDg6MjkgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIG5ldHNubXBfbGFyZ2VfZmRfc2V0IGlzIHByb2JhYmx5IGJlc3QgcmVnYXJkZWQgYXMgYW4gIm9wYXF1ZSIKICAgZGF0YQogICBzdHJ1Y3R1cmUsIGFuZCBpc24ndCByZWFsbHkgaW50ZW5kZWQgZm9yIGRpcmVjdCBtYW5pcHVsYXRpb24uCiAgIE1vdmUgaXQgYmFjayBpbnRvIHRoZSA8bGlicmFyeS9sYXJnZV9mZF9zZXQuaD4gaGVhZGVyIGZpbGUuCiAgIChMaWtlIGl0IHdhcyBiZWZvcmUgRGF2ZSBzdHVjayBoaXMgb2FyIGluLi4uLikKCjIwMDktMDQtMjMgMDg6MTkgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRnVlcnRoZXIgaW1wcm92ZW1lbnRzIHRvIHRoZSBsYXJnZSBGRCBzZXQgc3VwcG9ydAogICAoU2VlIHBhdGNoICMyNzcyNzg3KQoKMjAwOS0wNC0yMyAwNjo0NSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oOgoKICAgYnVpbGRpbmc6IFVzZSBjb25maWdfZXJyb3IoLi4uKSBpbnN0ZWFkIG9mCiAgIGNvbmZpZ19yZXF1aXJlKG5vbi1leGlzdGluZykgdG8gZ2V0IGJldHRlciBlcnJvciBtZXNzYWdlcy4KCjIwMDktMDQtMjMgMDY6NDEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuaDoKCiAgIHNubXBsaWIsIExpbnV4OiBNb3ZlIGdldF9waWRfZnJvbV9pbm9kZSB0byBpdCdzIG93biBmaWxlIGFuZCBvbmx5CiAgIGNvbXBpbGUgaXQgaWYgbmVlZGVkLCBhbHNvIHJlbmFtZSBpdCB0bwogICBuZXRzbm1wX2dldF9waWRfZnJvbV9pbm9kZS4KCjIwMDktMDQtMjMgMDQ6MzMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgYWdlbnQvc25tcGQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQzMTM1MyBmcm9tIGhucm9zZSB0byBtYWtlIHNvbWUgQysrCiAgIGNvbXBpbGVycyBoYXBwaWVyCgoyMDA5LTA0LTIzIDAzOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNTA1NDg4OiBmcm9tIGRhYm9rZXkgdG8gZml4IGFsYXJtcyBub3QKICAgYmVpbmcgdHJpZ2dlcmVkIGF0IHRoZSByaWdodCB0aW1lcyBkdWUgdG8gbGFyZ2UgY2xvY2sgc2tld3MuCgoyMDA5LTA0LTIzIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgTkVXUzogc25tcG5ldHN0YXQ6IFBBVENIOiAyNTY0NTM4OiBmcm9tIGFobWFrZSB0byBzdXBwb3J0IEdFVEJVTEsKICAgaW4gdjJjKyBzbm1wIHZlcnNpb25zCgoyMDA5LTA0LTIyIDIzOjQ5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBwb3J0czogUEFUQ0g6IDI2ODgzNDI6IGZyb20gYWhtYWtlIHRvIGZpeCB2YXJpb3VzCiAgIGNvbXBpbGVyIHdhcm5pbmcKCjIwMDktMDQtMjIgMjM6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjc2MzcxOiBmcm9tIGZoZXcgdG8gYWxsb3cgcGVybCB0byB1c2UKICAgT1BBUVVFcwoKMjAwOS0wNC0yMiAyMzoxNyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDI3NzU4MDA6IGZyb20gQWRhbSBSb21hbmVrIHRvIGFsbG93CiAgIHB5dGhvbiB0aHJlYWRpbmcgdG8gY29udGludWUgd2hlbiBhIHJlcXVlc3QgaXMgc2VudAoKMjAwOS0wNC0yMiAyMjoxMSAgYWxleF9iCgogICAqIFJFQURNRSwgUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIFRIQU5LUyBzZWN0aW9uLgoKMjAwOS0wNC0yMiAyMToyMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRm9sZCB0aGUgZnVuY3Rpb24gZXh0cmFjdF9pbm9kZS4gd2l0aCBvbmx5IG9uZSB1c2VyLCBpbnRvIGl0J3MKICAgdXNlci4KICAgUmVtb3ZlIHRoZSAjZGVmaW5lIEZJTEVfRElTUCwgd2l0aCBvbmx5IG9uZSB1c2VyLCB3aXRoIHRoZSBhY3R1YWwKICAgdmFsdWUuCgoyMDA5LTA0LTIyIDIxOjAzICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRoIFNNVVggZW5hYmxlZC4KCjIwMDktMDQtMjIgMTM6NDMgIGpzYWZyYW5lawoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIEFkZCBhIG5vdGUgaG93IHRoZSBuZXcgUk1PTi1NSUIgaW1wbGVtZW50YWlvbiB3b3JrcwoKMjAwOS0wNC0yMiAxMzo0MSAgZHRzMTIKCiAgICogbWFuL3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgRmlsbCBvdXQgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFZhcmJpbmQtcmVsYXRlZCBBUEkgY2FsbHMuCgoyMDA5LTA0LTIyIDEzOjM3ICBqc2FmcmFuZWsKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9ybW9uLW1pYiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIuaCwgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2dldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfc2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9lbnVtcy5oLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX29pZHMuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjEwMzQ5MjogaW1wbGVtZW50CiAgIFJNT04tTUlCOjpldGhlclN0YXRzSmFiYmVycwogICBQYXRjaCBmcm9tIE5hcmVuZHJhIEsuLCBTYW5kZWVwIEsuIFNoYW5kaWx5YSBhbmQgU2h5YW0gSXllcgoKMjAwOS0wNC0yMiAxMDowOCAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBDb3JyZWN0IGEgc2VyaW91c2x5IG1pc2xlYWRpbmcgKGkuZS4gd3JvbmcpIGRlc2NyaXB0aW9uIG9mIHRoZQogICBwdXJwb3NlCiAgIGFuZCBiZWhhdmlvdXIgb2YgdGhlIHByaW50X2Rlc2NyaXB0aW9uIGZhbWlseSBvZiBjYWxscy4KCjIwMDktMDQtMjIgMDk6MzIgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgRnVydGhlciBwb2xpc2hpbmcgb2YgdGhlIGRlc2NyaXB0aW9ucyBvZiBNSUItcmVsYXRlZCBBUEkgY2FsbHMuCgoyMDA5LTA0LTIyIDA3OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgcmFuZ2UgY2hlY2tzLgogICAoVGhlc2UgYXJlIGhhbmRsZWQgd2l0aGluIHRoZSBsYXJnZV9mZF9zZXQgcm91dGluZXMgdGhlbXNlbHZlcykuCgoyMDA5LTA0LTIxIDIzOjI3ICBhbGV4X2IKCiAgICogIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIHdpbjMyOiBGaXggV2luZG93cyBidWlsZCBlbnZpcm9ubWVudCB0byBzdXBwb3J0IHBhdGNoIDI3NzI3ODcuCgoyMDA5LTA0LTIxIDE1OjMzICBkdHMxMgoKICAgKiAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmlzZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjc3Mjc4NwoKMjAwOS0wNC0yMSAxNToxNSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYywgIAogICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIFVuZG8gcmV2aXNpb24gMTc1MTUKICAgKGJyb2tlbi9pbmNvbXBsZXRlIHBhdGNoKQoKMjAwOS0wNC0yMSAxNDozNyAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYywgIAogICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNzcyNzg3OiBDbGVhbmVyIGFwcHJvYWNoIHRvIGhhbmRsaW5nCiAgIGxhcmdlIGZkX3NldHMuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IEJhcnQgVmFuIEFzc2NoZS4KCjIwMDktMDQtMjEgMTQ6MzQgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFByb3Blcmx5IGdlbmVyYXRlIG5ldyBjb3JlIEFQSSBtYW4gcGFnZXMuCgoyMDA5LTA0LTIxIDA5OjM4ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaDoKCiAgIEZpcnN0LWN1dCBhdCBpZGVudGlmeWluZyB0aGUgY29yZSBOZXQtU05NUCBBUEkgY2FsbHMuCiAgIE1vdmUgdGhlc2UgaW50byB0aGUgYXBwcm9wcmlhdGUgdG9wLWxldmVsIGhlYWRlciBmaWxlcy4KCjIwMDktMDQtMjEgMDk6MzYgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9jb25maWdfYXBpLjMuZGVmLCBtYW4vcmVhZF9jb25maWcuMy5kZWYsICAgCiAgICAgIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3NubXBfYXBpLjMuZGVmOgoKICAgUmVuYW1lIGNvbmZpZy9zZXNzaW9uIEFQSSBtYW4gcGFnZXMsIGluIGxpbmUgd2l0aCBvdGhlciBjb3JlIEFQSQogICBzdHJ1Y3R1cmUuCgoyMDA5LTA0LTIxIDA5OjMyICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgbWFuL3NubXBfYXBpLjMuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWY6CgogICBEb2N1bWVudCAob3IgcmVzdHJ1Y3R1cmUpIHRoZSBjb3JlIEFQSSBlbGVtZW50cy4KICAgQWxpZ24gdGhpcyBvcmdhbmlzYXRpb24gd2l0aCB0aGUgZmlyc3QtY3V0IHJlc3RydWN0dXJpbmcKICAgb2YgdGhlIG1haW4gaGVhZGVyIGZpbGVzLgoKMjAwOS0wNC0yMCAxMDoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2tpcCBmaWxlIGhhbmRsZXMgdGhhdCBhcmUgdG9vIGxhcmdlIGZvciBmZF9zZXQgdG8gY29wZSB3aXRoLgogICBBIHNpbXBsZSBmaXggZm9yIHRoZSBpbW1lZGlhdGUgcHJvYmxlbSBhZGRyZXNzZWQgYnkgcGF0Y2gKICAgIzE2MjcwNDkuCgoyMDA5LTA0LTIwIDEwOjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0IHBhdGNoICMxNjI3MDQ5IChleHRlbnNpb24gdG8gZGVhbCB3aXRoIGxhcmdlIGZpbGUKICAgaGFuZGxlcnMpLgogICBTZWUgdGhlIGRpc2N1c3Npb24gb24gdGhhdCB0cmFja2VyIGVudHJ5IGZvciBiYWNrZ3JvdW5kIGFzIHRvCiAgIHdoeS4KCjIwMDktMDQtMjAgMDA6NTkgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgCiAgICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIHdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgV2luZG93cy4gcGFzcyBhbmQgcGFzc19wZXJzaXN0IHN0aWxsIG5lZWQKICAgdG8gYmUgZml4ZWQgdG8gc3VwcG9ydCBDb3VudGVyNjQgb24gV2luZG93cy4KCjIwMDktMDQtMjAgMDA6NDggIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgd2luMzI6IFN5bmMgbmV0LXNubXAtY29uZmlnLmguaW4gYW5kIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA5LTA0LTE3IDIxOjIxICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNCwgCiAgICAgICAgbTQvbHRvcHRpb25zLm00LCBtNC9sdHN1Z2FyLm00LCBtNC9sdHZlcnNpb24ubTQ6CgogICBDSEFOR0VTOiBidWlsZDogVXBncmFkZSBsaWJ0b29sIHZlcnNpb24gdG8gMi4yLjYgaW4gb3JkZXIgdG8gd29yawogICBhcm91bmQgYSBidWdsZXQgdGhhdCBtYWRlIGF1dG9yZWNvbmYgLXZpZiBlcmFzZSBjb25maWcuc3ViIGFuZAogICBjb25maWcuZ3Vlc3MuCgoyMDA5LTA0LTE0IDIxOjU5ICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE5NzY3NzI6IENoYW5nZWQgdGhlIG1pYiBwYXJzZXIgdG8gaGFuZGxlCiAgIGxvbmcgYmluYXJ5IGFuZCBoZXggc3RyaW5ncy4KCjIwMDktMDQtMTEgMTI6NTIgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHN1Z2dlc3QgdHJ1bmNhdGlvbiBvZiBDaGFuZ2VMb2cucmVhbGx5YWRkCgoyMDA5LTA0LTEwIDIzOjE4ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBXaW4zMjogUEFUQ0ggMjY5MTg3NjogQXBwbGllZCBwYXRjaCBieSByZGlleiB0byBhbGxvdwogICBjb21waWxpbmcgdGhlIHNlcnZpY2VzIHVzaW5nIHVuaWNvZGUuCgoyMDA5LTA0LTEwIDIyOjU1ICBhbGV4X2IKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFdpbjMyOiBQQVRDSCAyNjg4MzA5OiBBcHBsaWVkIHBhdGNoIGJ5IEJhcnQgVmFuIEFzc2NoZSB0byByZW1vdmUKICAgTVNWQyAyMDA1LzIwMDggY29tcGlsZXIgd2FybmluZ3MuCgoyMDA5LTA0LTEwIDIxOjQ1ICBhbGV4X2IKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAgIAogICAgICB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBXaW4zMjogTWlub3IgYnVpbGQgYW5kIHJlYWRtZSB1cGRhdGVzLgoKMjAwOS0wNC0xMCAyMTozOCAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgTkVXUzogV2luMzI6IFBBVENIIDI2ODYyNDg6IEFwcGxpZWQgcGF0Y2ggYnkgQmFydCBWYW4gQXNzY2hlCiAgIHdoaWNoIGZpeGVzIHNldmVyYWwgd2luRXh0RExMIGJ1Z3MuCgoyMDA5LTA0LTEwIDIwOjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZXN0b3JlIGFubm95aW5nIGxvZyBtZXNzYWdlLCBidXQgZml4IGNhdXNlIG9mIGl0IG9uICFmcmVlYnNkCiAgIHN5c3RlbXMKCjIwMDktMDQtMDkgMTI6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU1MDczMDogUmVwb3J0IGVycm9ycyBmcm9tIGl0ZXJhdG9yLWJhc2VkCiAgIGhhbmRsZXJzLgogICBCYXNlZCBvbiBhIHBhdGNoIHByb3ZpZGVkIGJ5IFdheW5lIEdsYW50egoKMjAwOS0wNC0wOSAxMTo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjEyNDI4ODogRml4IHNldHRpbmcgb2YKICAgdXNtVXNlclByaXZQcm90b2NvbCBhdCBjcmVhdGlvbi4KICAgTG9naWMgYnVnLCByZXBvcnRlZCBieSBSYW1lc2ggS290YWJhZ2kKCjIwMDktMDQtMDkgMDk6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDIyNTgyMjk6IFJlbW92ZSBtaXNsZWFkaW5nIGNvbW1lbnQKICAgUGF0Y2ggcHJvdmlkZWQgYnkgRGFuIEFuZGVyc29uCgoyMDA5LTA0LTA5IDA5OjA4ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjI2MDgyODogRml4IHB5dGhvbiBzbm1wd2FsayBtZW1vcnkgbGVhawogICBQYXRjaCBwcm92aWRlZCBieSBHYWJyaWVsZSBNZXNzaW5lbwoKMjAwOS0wNC0wOSAwODo1OCAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIyNzIzNDc6IEltcGxlbWVudCAiaW1wbGllZCIgaW4gTUlCIGhhc2gKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCjIwMDktMDQtMDkgMDg6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0g6IDIzMTYxMjc6IEZpeCBidWcgaW4gaXRlcmF0ZV9hY2Nlc3MKICAgZ2VuZXJhdGVkIGNvZGUuCgoyMDA5LTA0LTA5IDA4OjQ4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQzNTY4MTogRW5hYmxlIGlmLW1pYiByZXdyaXRlICh3aXRoCiAgIHN5c2N0bCBiYWNrZW5kKSBvbiBOZXRCU0QKCjIwMDktMDQtMDkgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MzU3OTM6IFN1cHBvcnQgNjQtYml0IElGLU1JQiBjb3VudGVycyBvbgogICBzeXNjdGwgKCpCU0QpIHN5c3RlbXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEphbiBBbmRyZXMKCjIwMDktMDQtMDkgMDg6MDAgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwoKMjAwOS0wNC0wOCAyMzoxNyAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgbW92ZSBjb21tZW50cyB0byBhIHBsYWNlIHdoZXJlIHRoZXkgYXJlIGxlZ2FsCgoyMDA5LTA0LTA4IDIzOjAzICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAtIHJlbmFtZSBuZXcgZ2V0UmVxdWVzdG9ySXAgdG8gZ2V0U291cmNlSVAgYW5kIGdldFRhcmdldElwIHRvCiAgIGdldERlc3RJcAogICAtIHJlbWluZCB0aGF0IHRoaXMgaXMgZnVsbHkgdHJhbnNwb3J0LXNwZWNpZmljLCBpLmUuIFVEUC9JUHY0CiAgIG9ubHkhCgoyMDA5LTA0LTA4IDE2OjAwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIzODQ3Nzk6IEZpeCBoYW5kbGluZyBvZiBHZXRCdWxrIHdpdGgKICAgTj4wLE09PTAKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5ndXMgU2Fsa2VsZAoKMjAwOS0wNC0wOCAxNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDA2Mzc4OiBGaXggaHJTV1J1blBlcmZNZW0gb24gNjQtYml0CiAgIFNvbGFyaXMgc3lzdGVtcwogICBQYXRjaCBwcm92aWRlZCBieSBOVHdvTwoKMjAwOS0wNC0wOCAxNTo0OCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNDc5NzAwOiBGaXggem9uZWQgSVAgYWRkcmVzcyB1c2VkIGFzCiAgIHRhYmxlIGluZGljZXMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQnJpYW4gUmV0Zm9yZC4KCjIwMDktMDQtMDggMTU6MzMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjQ5MjM3NzogRml4IHR5cG8vYnVnIGluCiAgIHNubXBfZW5hYmxlX2NhbGxiYWNrKCkKICAgUmVwb3J0ZWQgYnkgam95Y2Vhbm1hY2hpbmUKCjIwMDktMDQtMDggMTU6MjkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI1MDcyNDk6IHNjdHAtbWliIHN1cHBvcnQgZm9yIEZyZWVCU0QuCgoyMDA5LTA0LTA4IDE1OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjUzODE2OTogUHJldmVudCBpbmZpbml0ZSByZXRyaWVzIGZvciBhbgogICBpbnZhbGlkIGVycm9yLWluZGV4LgogICBQYXRjaCBwcm92aWRlZCBieSBEb3VnIE1hbmxleQoKMjAwOS0wNC0wOCAxNDo1OCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDI1ODA5Nzk6IEZpeCBweXRob24gc2Vzc2lvbiBwb2ludGVycyBvbgogICA2NC1iaXQgc3lzdGVtcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgSm9obiBLaHZhdG92LgoKMjAwOS0wNC0wOCAxNDo0OSAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjY2NzQxNTogU3VwcG9ydCAiVXNlTnVtZXJpYyIgb3B0aW9uLgogICBSZW1vdmUgZGVidWdnaW5nIG91dHB1dCBpbiAic25tcHdhbGsiIGNvbW1hbmQuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IERpZWdvIEJpbGxpCgoyMDA5LTA0LTA4IDE0OjM0ICBkdHMxMgoKICAgKiAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAyNzI2MzAyOiBQYXNzIHJlc3VsdHMgb2YgUGVybCB0cmFwCiAgIGhhbmRsZXJzIHRvIHRyYXAgZGFlbW9uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1pY2hhZWwgU2NobWl0egoKMjAwOS0wNC0wOCAxNDozMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjcxMzg0MTogRml4IHJ1bnRpbWUgZXJyb3JzIHRyaWdnZXJlZCBieQogICBoaWdoLUFTQ0lJIGNoYXJzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJhcnQgVmFuIEFzc2NoZQoKMjAwOS0wNC0wOCAxNDoyNCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyNzA5NzA1OiBSZXRyaWV2ZSBzcmMvdGFyZ2V0IElQIGFkZHJlc3MgaW4KICAgUGVybC1iYXNlZCBhZ2VudHMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgZmhldwoKMjAwOS0wNC0wOCAxNDoxNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI2ODkzNjI6IEZpeCBoYW5kbGluZyBvZiBJUHY2IGhvc3RuYW1lcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTmVzdG9yIE1lbG8uCgoyMDA5LTA0LTA4IDE0OjA1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIOiAyNjg4MzQ1OiBGaXggbmV0c25tcF9hc3NlcnQoKSBmb3IgVmlzdWFsCiAgIFN0dWRpbwogICBQYXRjaCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKCjIwMDktMDQtMDggMTM6MzUgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI2ODYyODA6IFJlcG9ydCBkdXBsaWNhdGUgcmVnaXN0cmF0aW9ucyBhcwogICBhbiBlcnJvciAocmF0aGVyIHRoYW4gYSBmYWlsZWQgYXNzZXJ0aW9uKS4KICAgRml4IHByb3ZpZGVkIGJ5IEJhcnQgVmFuIEFzc2NoZQogICAKICAgUW46IERvZXMgdGhpcyBldmVuIHF1YWxpZnkgYXMgYW4gZXJyb3I/IFdvdWxkbid0IGEgd2FybmluZyBiZQogICBzdWZmaWNpZW50PwoKMjAwOS0wNC0wNiAxOTozMyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIHNubXBsaWI6IE1ha2UgdGhlIG5vZGUgc3RydWN0IHByaXZhdGUuIEhpZGUgdGhlIG9yaGFuX25vZGVzCiAgIHZhcmlhYmxlLgoKMjAwOS0wNC0wNiAxODo0NSAgbWFnZnIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBzbm1wZCxwZXJsOiBJZiBteV9wZXJsIGlzIE5VTEwgd2hlbiBwYXNzZWQgdG8gcGVybF9kZXN0cnVjdCB0aGVuCiAgIHRoYXQgZnVuY3Rpb24gY3Jhc2hlcyBmb3Igc29tZSBwZXJsIHZlcnNpb25zIHNvIGNoZWNrIHRoYXQgaXQgaXMKICAgbm9uLW51bGwgYmVmb3JlIGRlc3Ryb3lpbmcgaXQuCgoyMDA5LTA0LTA2IDE4OjQyICBtYWdmcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgcGVybDogQXZvaWQgc3VycHJpc2VzIGlmIHRoZSBwZXJsIHN0cmluZyBjb250YWlucyBwcmludGYgZXNjYXBlCiAgIGNoYXJhY3RlcnMuCgoyMDA5LTA0LTA2IDE4OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBQcm9wZXIgY2hlY2sgZm9yIGVtcHR5IHByb2Nlc3Mgc3RhdHVzIGZpbGUuCiAgIChBdm9pZHMgdHJ1bmNhdGVkIHdhbGsgb2YgaHJTV1J1blBhdGggb24gU3VTRSBzeXN0ZW1zKQogICBSZXBvcnRlZCBieSBLYW1pbCBLaXNpZWwuCgoyMDA5LTA0LTA2IDExOjU4ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHMsIHBlcmwvYWdlbnQvdHlwZW1hcDoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRyAxNTU0ODE3OiBmcm9tIHhhbmNvOiByZXZpc2VkIGZpeCBmb3IgdGhlIGNsYXNzCiAgIGFzc2lnbWVudCBzbwogICBnZXRSb290T0lEIHdvcmtzIHByb3Blcmx5LiBOb3cgcGFzc2VzICJtYWtlIHRlc3QiIGFuZCAibWFrZQogICBwZXJsdGVzdCIuCgoyMDA5LTA0LTA1IDEwOjA1ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgoyMDA5LTA0LTA1IDA5OjUzICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBNYWtlIGV2ZW4gbW9yZSB2YXJpYWJsZXMgYW5kIHRlbXBsYXRlcyBjb25zdC4KCjIwMDktMDQtMDQgMjI6MTMgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaDoKCiAgIHNubXBkOiBNYWtlIG1vcmUgbG9jYWwgdmFyaWFibGVzIGNvbnN0IGFuZCBsb2NhbC4KCjIwMDktMDQtMDQgMTA6MDcgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE1hcmsgdGhlIHJlY29uZmlnIHZhcmlhYmxlIGFzIHN0YXRpYyBzaW5jZSBpdCBpcyBwcml2YXRlIHRvIHRoZQogICBtb2R1bGUuCgoyMDA5LTA0LTA0IDEwOjAzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIE1hcmsgdGhlIGZpbGUgc2NvcGUgcHJpdmF0ZSB2YXJpYWJsZSBtaW5pbXVtX3N3YXAgYXMgc3RhdGljLgoKMjAwOS0wNC0wNCAwOTo1OCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIHNubXBsaWI6IE1ha2UgbW9yZSBzeW1ib2xzIGNvbnN0IGluIG9yZGVyIHRvIG1vdmUgdGhlbSB0bwogICByZWFkb25seSBtZW1vcnkuCgoyMDA5LTA0LTAyIDIxOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBCVUcgMTEyNjk0OiBQYXRjaCBmcm9tIEJpbGwgRmVubmVyOiBkb24ndCBvcGVuIChhbmQKICAgY2xvYmJlcikgYW4gYWdlbnR4IHNvY2tldCBpZiB0aGUgb3RoZXIgdHJhbnNwb3J0cyBmYWlsIHRvIG9wZW4KCjIwMDktMDQtMDEgMjM6NDEgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wNC0wMSAyMzoxOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDQtMDEgMjM6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wNC0wMSAyMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgY29udmVydCBjb21tZW50cyB0byBBTlNJIGNvbW1lbnRzCgoyMDA5LTA0LTAxIDIyOjIxICBoYXJkYWtlcgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgICAKICAgICAgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDQtMDEgMjI6MDMgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQgLT4gVjUuNS5wcmUxCgoyMDA5LTA0LTAxIDIxOjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGQuOC5kZWY6CgogICB1cGRhdGVzIGZvciBTU0gKCjIwMDktMDQtMDEgMTk6MzkgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNYWtlIHRoZSBzcmMgcG9pbnRlciBvZiBzbm1wX2Nsb25lX21lbSBhIHBvaW50ZXIgdG8gY29uc3RhbnQuCgoyMDA5LTA0LTAxIDE4OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzOgoKICAgaWdub3JlICdzc2h0b3NubXAnCgoyMDA5LTA0LTAxIDE3OjMxICBoYXJkYWtlcgoKICAgKiAgYXBwcy9zc2h0b3NubXAuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgbWFuL3NubXBkLjguZGVmLCBzbm1wbGliL3NubXBTU0hEb21haW4uYzoKCiAgIE1ha2Ugc3NoIHRyYW5zcG9ydCBzdXBwb3J0IHVzZSBhIHVuaXggc29ja2V0IHdpdGggcHJvcGVyCiAgIGNyZWRlbnRpYWwgcGFzc2luZwoKMjAwOS0wNC0wMSAxNzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgbWFrZSB0aGUgZXhlYyBjYWNoZSByZWFkYWJsZSBvbmx5IGJ5IHRoZSB1c2VyCgoyMDA5LTA0LTAxIDE3OjI4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgbW92ZSBzdHJpbmcgdG8gdWlkL2dpZCBmdW5jdGlvbmFsaXR5IHRvIHNubXBsaWIgZm9yIHJldXNlCgoyMDA5LTAzLTMxIDE1OjEyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCYWxhbmNlIHBhcmVudGhlc2VzIGluIGNhY2hlLWJhc2VkIHJlZ2lzdHJhdGlvbiBjb2RlLgoKMjAwOS0wMy0zMSAxNTowNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQnV0IHRoZXkncmUgbm90IEMgY29tbWVudHMgYXQgYWxsLCBEYXZlLgogICBUaGV5IGFyZSBtaWIyYyB0ZW1wbGF0ZSBjb21tZW50cywKICAgYW5kIHNob3VsZCBiZSBvbWl0dGVkIGZyb20gdGhlIGdlbmVyYXRlZCBjb2RlLgogICA8c2lnaD4KCjIwMDktMDMtMzEgMTU6MDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEMgY29tbWVudHMgdXNlIC8qIC4uLiAqLywgbm90ICMKCjIwMDktMDMtMzEgMDg6MDUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXggY29tcGlsYXRpb24gd2l0aCBnbGliYyA8IDIuNCwgSUNNUHY2IG1lc3NhZ2UgdHlwZXMgc3RhcnRpbmcKICAgd2l0aCBNTERfKiBoYXZlIGRpZmZlcmVudCBuYW1lIHRoZXJlLgoKMjAwOS0wMy0yNCAwNjowNCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIERvIG5vdCBjb21waWxlIHRoZSBwYXJ0cyB0aGF0IGRlcGVuZCBvbiBsaWJzc2wgaWYgbGlic3NsIGlzCiAgIG1pc3NpbmcuCgoyMDA5LTAzLTIzIDA5OjIxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBORVdTOiBzbm1wZDogaXBOZXRUb1BoeXNpY2FsTGFzdFVwZGF0ZWQgT0lEIGltcGxlbWVudGVkCiAgIAogICBUaGUgdmFsdWUgaXMgZXN0aW1hdGVkIHdpdGggZXZlcnkgY2FjaGUgcmVsb2FkLCB3aGljaCBpcyBvbmNlIGluCiAgIDYwIHNlY29uZHMgYnkgZGVmYXVsdC4KICAgVGhhdCBtZWFucyB0aGUgdmFsdWUgcmVwb3J0ZWQgYnkgc25tcGQgbWF5IGRpZmZlciBmcm9tIHJlYWxpdHkgYnkKICAgb25lIG1pbnV0ZS4KICAgSWYgYW55Ym9keSBuZWVkcyBiZXR0ZXIgcHJlY2lzaW9uLCB0aGUgY2FjaGUgdGltZW91dCBjYW4gYmUKICAgY29uZmlndXJlZCBieSBzZXR0aW5nCiAgIE5FVC1TTk1QLUFHRU5ULU1JQjo6bnNDYWNoZVRpbWVvdXQuMS4zLjYuMS4yLjEuNC4zNSB0bwogICBhcHByb3ByaWF0ZSB2YWx1ZSBieSBzbm1wc2V0LgoKMjAwOS0wMy0yMCAxOTozOCAgaGFyZGFrZXIKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIGZpeCBsYWNrIG9mIHdyYXBwaW5nIGxpbmVzIHByb2JsZW0KCjIwMDktMDMtMjAgMTg6MzEgIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBjb25maWcgb3B0aW9ucywgZXRjLCBmb3IgU1NIIGFuZCBEVExTCgoyMDA5LTAzLTIwIDE4OjI0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBkLjguZGVmOgoKICAgY3VycmVudGx5IG1pbmltYWwgZG9jdW1lbnRhdGlvbiBvbiBkdGxzIGFuZCBzc2gKCjIwMDktMDMtMjAgMTY6NTAgIGhhcmRha2VyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NzaHRvc25tcC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQWRkZWQgYWxwaGEgc25tcCBvdmVyIHNzaCBzdXBwb3J0CgoyMDA5LTAzLTIwIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjaGVjayB0aGUgc2VjIG5hbWUgbGVuZ3RoLCBub3QganVzdCB0aGUgY29udGVudHMKCjIwMDktMDMtMjAgMTY6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgc2VxdWVuY2UgcGFyc2luZyBmaXgKCjIwMDktMDMtMjAgMTU6NTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIG5ldyBmbGFnIHRvIGFsbG93IGZvciBzaWduYWxsaW5nIG9mIGxlZ2FsIGVtcHR5IHBhY2tldHMKICAgZnJvbSBhIHRyYW5zcG9ydAoKMjAwOS0wMy0xOCAxOTo0MiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb21waWxlIGFnYWluLgoKMjAwOS0wMy0xOCAxMDo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgY3B1X2xpbnV4OiBhdm9pZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlcgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xOCAxMDo0MyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgbGludXg6IGluY3JlYXNlIHNpemUgb2YgaW5pdGlhbCBwcm9jIGkvbyBidWZmZXIKICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5ncwoKMjAwOS0wMy0xOCAxMDozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgbWVtb3J5X2xpbnV4OiBhdm9pZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIKCjIwMDktMDMtMTggMTA6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCB2YWxncmluZCB3YXJuaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xNyAyMjo1NyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIFBBVENIOiAyNjg4MzQyOiBmcm9tICJCYXJ0IFZhbiBBc3NjaGUiOiBVc2UgcHJvcGVyIGZ1bmN0aW9uCiAgIHBvaW50ZXJzCgoyMDA5LTAzLTEzIDIxOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFByb2Nlc3MgaHJNZW1vcnlTaXplIChzY2FsYXIpIHNlcGFyYXRlbHkgZnJvbSBoclN0b3JhZ2VUYWJsZS4KICAgVGhpcyBzaW1wbGlmaWVzIHRoZSBoYW5kbGVyIGNvZGUgc3RydWN0dXJlLgoKMjAwOS0wMy0xMyAyMToyMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlZ2lzdGVyIENQVS9tZW1vcnkgaGFyZHdhcmUgbW9kdWxlcyB3aXRoCiAgIG5zQ2FjaGVUYWJsZS4KICAgQWxsb3dzIG1vbml0b3JpbmcgZnJlcXVlbmN5IHRvIGJlIGNvbmZpZ3VyZWQgZHluYW1pY2FsbHkuCgoyMDA5LTAzLTEzIDIxOjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEF2b2lkIGRpdjAgY3Jhc2guCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgTmljayBIaW5kbGV5CgoyMDA5LTAzLTEzIDIxOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmM6CgogICBTa2lwIG5ldyBDUFVzLCB0aGF0IGhhdmUgYXBwZWFyZWQgc2luY2UgdGhlIGFnZW50IGZpcnN0IHN0YXJ0ZWQuCiAgIChBbiBhbHRlcm5hdGl2ZSBtaWdodCBiZSB0byBjcmVhdGUgYSBuZXcgZW50cnkgaW5zdGVhZCkuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgTmljayBIaW5kbGV5CgoyMDA5LTAzLTEwIDE1OjI1ICBqc2FmcmFuZWsKCiAgICogUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmM6CgogICBORVdTOiBzbm1wZDogaXBBZGRyZXNzU3BpbkxvY2sgaW1wbGVtZW50ZWQKCjIwMDktMDMtMDIgMTE6MjMgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBGaXggYXR0cmlidXRpb24gb2YgbGF0ZXN0IGNvcHlyaWdodCBub3RpY2UuCgoyMDA5LTAyLTI4IDE4OjIxICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vdmUgdGhlICNkZWZpbmUgY29uZmlnXyooLi4uKSBmcm9tIGFjY29uZmlnLmggdG8gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHQgc28gdGhhdCB0aGV5IGFyZSBuZXh0IHRvIHRoZSBjb2RlIHRoYXQgaGFuZGxlIHRoZQogICBjb3JyZXNwb25kaW5nIGNvbmZpZ18qIHRva2VuLgoKMjAwOS0wMi0yNyAxMzoyMCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgR2V0IHJpZCBvZiBhbm5veWluZyAnZGlza2lvLmM6IGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSA5CiAgIHJlcXVlc3QnIGluIGxvZy4KICAgSXQncyBiZWluZyB3cml0dGVuIHRvIGxvZyBldmVyeXRpbWUgc29tZW9uZSBxdWVyaWVzCiAgIFVDRC1TTk1QLURJU0tJTyBNSUIuCgoyMDA5LTAyLTI1IDA2OjQxICBtYWdmcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBVc2UgdGhlIGZlYXR1cmUgdGVzdCBtYWNyb3MgdG8gc2V0IHdoYXQgaXMgbmVlZGVkLgogICBEbyBub3QgdXNlIHRoZSBpbnRlcm5hbCBHTlUgbGliYyBtYWNyb3MgdGhhdCBhcmUgc2V0IGJ5IHNldHRpbmcKICAgdGhlIGZlYXR1cmUgdGVzdCBtYWNyb3MuCgoyMDA5LTAyLTI1IDA2OjM4ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlLgoKMjAwOS0wMi0yNCAwNzoyNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IE1ha2UgLUxOIHN0b3AgZHVtcGluZyBjb3JlLiBNYWtlIGJhZCBkZWJ1ZyBsZXZlbHMgcmVwb3J0CiAgIHRoZSBvZmZlbmRpbmcgc3ltYm9sLgoKMjAwOS0wMi0yNCAwNjo1MCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1vdmUgdGhlIGRpcmVjdG9yeSBjcmVhdGlvbiBjb2RlIHRvIGhhcHBlbiBhZnRlciB0aGUgZG9tYWluCiAgIHNlbGVjdGlvbiBjb2RlIHNvIHRoYXQgdGhlIGRpcmVjdG9yeSBjcmVhdGlvbiBjb2RlIGtub3dzIHdoYXQKICAgZGlyZWN0b3J5IHRvIGNyZWF0ZS4KCjIwMDktMDItMjQgMDY6NDcgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDaGFuZ2UgdGhlIGVycm9yIGNoZWNraW5nIG9wdGlvbiAtLWVuYWJsZS1teXNxbCB0byBzdWdnZXN0IHRoYXQKICAgdGhhdCAtLXdpdGgtbXlzcWwgaXMgdXNlZCByYXRoZXIgdGhhdCAtLXdpdGgtb3BlbnNzbC4KCjIwMDktMDItMjQgMDY6NDQgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlZ2VuZXJhdGUgYXV0b2NvbmYgYXJ0aWZhY3RzLgoKMjAwOS0wMi0yMyAxODo0MyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX3NxbC5jOgoKICAgYWRkIGZvcmdvdHRlbiBmaWxlCgoyMDA5LTAyLTIwIDA0OjQxICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBhZGRlZCBlbWFjcyBhdXRvY29uZiBtb2RlIHNwZWNpZmllcgoKMjAwOS0wMi0xOSAxODozMiAgcnN0b3J5CgogICAqIFJFQURNRS5zcWwsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5ldyBzcWwgdHJhcCBsb2dnaW5nCgoyMDA5LTAyLTE5IDE4OjIwICByc3RvcnkKCiAgICogIENPUFlJTkcsIE5FV1MsIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsIGNvbmZpZ3VyZSwgIAogICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBkaXN0L3NjaGVtYS1zbm1wdHJhcGQuc3FsLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcHRyYXBkOiBhZGQgdHJhcCBoYW5kbGVyIGZvciBsb2dnaW5nIHRyYXBzIHRvIGEgbXlzcWwKICAgZGF0YWJhc2UKCjIwMDktMDItMTkgMTc6NTggIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZGVkIGl0ZXJhdG9yIGZvciBzaW5nbHkgbGlua2VkIGxpc3RzOyBhZGQKICAgY29udGFpbmVyIG5hbWUgaW4gbW9yZSBlcnJvciBtc2dzCgoyMDA5LTAyLTE4IDE4OjUyICByc3RvcnkKCiAgICogYXBwcy9zbm1wdXNtLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGNoYW5nZSBNQVhfRU5HSU5FSURfTEVOR1RIIHRvIDMyLCBwZXIKICAgU05NUC1GUkFNRVdPUkstTUlCIFNubXBFbmdpbmVJRCBUQwoKMjAwOS0wMi0xOCAxNDo0MSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmM6CgogICBDb25maWd1cmUgc2NyaXB0IGRvZXMgbm90IGxpa2UgbmV0LXNubXAtY29uZmlnLmggYmVpbmcgaW5jbHVkZWQKICAgZnJvbSBoZWFkZXIKICAgZmlsZXMsIHdoaWNoIGFyZSBhZGRlZCBieSAtLXdpdGgtbWliLW1vZHVsZXM9LCBsZXQncyByZW1vdmUgaXQKICAgZnJvbSB0aGVyZS4KCjIwMDktMDItMTYgMjE6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUcgMTU1NDgxNzogUGF0Y2ggZnJvbSB4YW5jbzogZml4IHRoZSBjbGFzcwogICBhc3NpZ21lbnQgc28gZ2V0Um9vdE9JRCB3b3JrcyBwcm9wZXJseS4KCjIwMDktMDItMTUgMDc6MjAgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmg6CgogICBDb3JyZWN0IGNvcHkvcGFzdGUgbWlzdGFrZQoKMjAwOS0wMi0xMiAwMDoyNSAgaGFyZGFrZXIKCiAgICogIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgbWlicy9ORVQtU05NUC1UQy50eHQsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYzoKCiAgIEFuIGVhcmx5IGV4cGVyaW1lbnRhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRFRMUyBvdmVyIFVEUAogICB0cmFuc3BvcnQgZnJvbSB0aGUgSUVURiBJU01TIHdvcmtpbmcgZ3JvdXAKCjIwMDktMDItMTEgMjM6MzAgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGVkIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zCgoyMDA5LTAyLTA2IDIxOjM2ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIGFzIEMrKyBhZ2Fpbi4KCjIwMDktMDItMDUgMjI6NTYgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1Lmg6CgogICBDSEFOR0VTOiBidWlsZDogQXNzdW1lIHRoYXQgdGhlIHRhcmdldCBwbGF0Zm9ybSBzdXBwb3J0cyBtZW1jcHksCiAgIG1lbW1vdmUsIG1lbXNldCwgc3RyY2hyIGFuZCBzdHJyY2hyLgoKMjAwOS0wMi0wNCAwNjo1NyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBfZGVidWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbnByaW50Zi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBSZW1vdmUgc3VwcG9ydCBmb3IgdXNlIG9mIHZhcmFyZ3MuaC4gTm93IGFzc3VtZXMgdGhhdAogICBzdGRhcmcuaCBpcyBhdmFpbGFibGUuCgoyMDA5LTAyLTA0IDA2OjQ5ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jOgoKICAgTkVXUzogc25tcGxpYjogSW50cm9kdWNlIHByaW50Zi1saWtlIHZlcnNpb25zIG9mIGNvbmZpZ19wZXJyb3IKICAgYW5kIGNvbmZpZ19wd2FybiAobmV0c25tcF9jb25maWdfZXJyb3IgYW5kIG5ldHNubXBfY29uZmlnX3dhcm4pLgogICBSZXBsYWNlIG1hbnkgaW5zdGFuY2VzIG9mIHsgdG1wYnVmWy4uLl07IHNwcmludGYodG1wYnVmLCAuLi4pOwogICBjb25maWdfcCoodG1wYnVmKTsgfSB3aXRoIG5ldHNubXBfY29uZmlnXyooLi4uKTsKCjIwMDktMDItMDMgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGFkZCB0aGUgcmVnaW5mbyBhbmQgYW5kIHNlc3Npb24gcG9pbnRlciB0byB0aGUgUkVHSVNURVJfT0lECiAgIGNhbGxiYWNrCgoyMDA5LTAyLTAzIDAwOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgZml4ZWQgLWxzc2wgY2hlY2sKCjIwMDktMDEtMjkgMDg6MzggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldHVybiBhIGxlc3MgbWlzbGVhZGluZyBlcnJvciB3aGVuIGFkZGluZyBhbiB1bnJlY29nbmlzZWQgdmFsdWUuCgoyMDA5LTAxLTI4IDEwOjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBzcmMvZHN0IGNvbmZ1c2lvbgogICBQYXRjaCBwcm92aWRlZCBieSBLcnp5c3p0b2YgT2zEmWR6a2kKCjIwMDktMDEtMjggMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogRml4IHR3byBidWdzIHdpdGggc211eCBwYXNzd29yZCBzdXBwb3J0LgogICBQYXRjaCBzdXBwbGllZCBieSBLcnp5c3p0b2YgT2zEmWR6a2kKCjIwMDktMDEtMjMgMTQ6NTMgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRml4IHBhcnNpbmcgb2YgbGV2ZWwgcmFuZ2VzIGluICctTDxjYXBpdGFsPicuCgoyMDA5LTAxLTIwIDE0OjUxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIDxycG0vcnBtZmlsZXV0aWwuaD4gYmVmb3JlIGluY2x1ZGluZwogICBpdC4KCjIwMDktMDEtMTkgMjA6NTAgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aG91dCBJUHY2IGFnYWluLgoKMjAwOS0wMS0xOSAxNTowMSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkyNzc1MTogZnJvbSBNaXRzdXJ1IENoaW5lbjogaW1wbGVtZW50CiAgIGljbXBNc2dTdGF0c1RhYmxlIG9uIExpbnV4CgoyMDA5LTAxLTE5IDA5OjQxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCAgIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDI0NDkyMTA6IGFkZCA2NC1iaXQgZGlzayB1c2FnZSBzdGF0aXN0aWNzIHRvCiAgIFVDRC1TTk1QLU1JQjo6ZHNrVGFibGUKCjIwMDktMDEtMTggMDc6NDAgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBCVUc6IDIxNjgxODA6IENoYW5nZWQgLS1kaXNhYmxlLXJlZW50cmFudCB0byBub3QKICAgYWN0aXZhdGUgdGhlIHJlZW50cmFudCBjb2RlIGFuZCBtYWRlIC0tZW5hYmxlLXJlZW50cmFudCBhY2NlcHQgbm8KICAgdmFsdWVzIG90aGVyIHRoYW4geWVzIGFuZCBuby4gRGlkIHRoZSBzYW1lIGZvcgogICAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNrcywgLS1lbmFibGUtbWliLWNvbmZpZy1kZWJ1ZywKICAgLS13aXRoLWRlZmF1bHRzLCAtLWVuYWJsZS1kZXZlbG9wZXIgYW5kIC0tZW5hYmxlLXRlc3RpbmctY29kZSBhcwogICB3ZWxsLgoKMjAwOS0wMS0xMyAwOToxNyAganNhZnJhbmVrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ2hlY2sgZW5jb2Rpbmcgb2YgT0lEcy4KICAgCiAgIEJFUiBlbmNvZGVkIE9JRHMgc2hvdWxkIGhhdmUgaGlnaCBiaXQgY2xlYXIgaW4gdGhlIGxhc3QgYnl0ZSBvZgogICBlYWNoIHN1YmlkZW50aWZpZXIuIFRoaXMgaXMgbm93IGNoZWNrZWQgYW5kIHBhcnNpbmcgb2YgT0lEIGZhaWxzLAogICBpZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0LgoKMjAwOS0wMS0xMSAyMTo1NCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBDaGVjayB0aGF0IHRoZSB0ZW1wLWZpbGUtcGF0dGVybiBlbmRzIGluIDYgWCdzCiAgIGFzIG1rc3RlbXAgYW5kIG1rdGVtcCByZXF1aXJlIHRoYXQuCgoyMDA5LTAxLTExIDIxOjM4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBCZSBhIGxvdCBtb3JlIHN0cmljdCBvbiB0aGUgdmFsdWVzIHRoYXQgYXJlCiAgIGFjY2VwdGFibGUgZm9yIC0td2l0aC1wZXJzaXN0ZW50LW1hc2sgKG9ubHkgYWxsb3cgdGhyZWUgb2N0YWwKICAgZGlnaXRzKQoKMjAwOS0wMS0xMSAyMDo0MiAgbWFnZnIKCiAgICogIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIG00L25ldHNubXBfYXJnLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFdlIGFyZSBjdXJyZW50bHkgdXNpbmcgdGhlIHByYWN0aWNlIG9mIGFkZGluZwogICBhIG1pcnJvcmluZyBBQ19BUkdfV0lUSC9FTkFCTEUgdG8gZWFjaCBBQ19BUkdfRU5BQkxFL1dJVEguIFRoaXMKICAgcGF0Y2ggYWRkcyBORVRTTk1QX0FSR19XSVRIL0VOQUJMRSBtYWNyb3MgdGhhdCBhdXRvbWF0aWNhbGx5IGFkZHMKICAgdGhlIG1pcnJvciB2YXJpYWJsZSBhbmQgdGhlbiBjb252ZXJ0cyB0aGUgY29uZmlndXJlIG1hY2hpbmVyeSB0bwogICB1c2UgdGhlbS4KCjIwMDktMDEtMTEgMjA6MzYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNb3ZlIEFDX0RFRklORVMgaW4gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUgdG8gYmUgbG9jYXRlZCBuZXh0CiAgIHRvIHRoZSBBQ19BUkdfLi4uIHRoZXkgZGVwZW5kIG9uLgoKMjAwOS0wMS0xMSAyMDozNCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENoYW5nZSB0aGUgZGVmYXVsdCB2ZXJzaW9uIG51bWJlciBjaGVja2luZyB0byBiZSBlYXNpZXIgdG8gcmVhZAoKMjAwOS0wMS0xMSAxOToxOSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNb3ZlIHRoZSBsYXN0IEFDX0FSR18uLi4ncyB0byBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZS4KCjIwMDktMDEtMTEgMTk6MDggIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hhbmdlIHRoZSBtYWNybyBmb3IgLS13aXRoLWZlYXR1cmVzLW9mIGZyb20KICAgQUNfQVJHX0VOQUJMRSB0byBBQ19BUkdfV0lUSCBpbiBvcmRlciB0byBtYWtlIHRoZSBvcHRpb24gYmUKICAgLS13aXRoLWZlYXR1cmVzLW9mLgoKMjAwOS0wMS0wOCAxMDo0NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgYXBwczogUGFyc2VyIG9mIC1MUyBjb21tYW5kIGxpbmUgYXJndW1lbnQgbm93CiAgIGFjY2VwdHMgYm90aCAnLUxTIDxsZXZlbD4gPGZhY2lsaXR5PicgYW5kICctTFMKICAgPGxldmVsPjxmYWNpbGl0eT4nLgogICAKICAgQmVmb3JlIHBhdGNoICMxODA2MzM2IHRoZSBmaXJzdCBzeW50YXggd2FzIHRoZSBvbmx5IG9uZQogICBzdXBwb3J0ZWQuIFRoZSBwYXRjaAogICBjaGFuZ2VkIHRoZSBzeW50YXggdG8gdGhlIHNlY29uZCBvbmUsIGNhdXNpbmcgaW5jb21wYXRpYmlsaXRpZXMKICAgaW4gc3RhYmxlCiAgIGJyYW5jaGVzLiBXZSBub3cgc3VwcG9ydCBib3RoIG9mIHRoZW0uCgoyMDA5LTAxLTA4IDAzOjUxICBtYWdmcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBEbyBub3QgZGVwZW5kIG9uIHRoZSBleGlzdGFuY2Ugb2YgL2Jpbi9zaC4gQWxzbyBmb2xsb3cgdGhlIGFkdmljZQogICBvZiB0aGUgYXV0b2NvbmYgbWFudWFsIGFuZCBmaW5hbGx5IGFsbG93IGZvciBsaWJ0b29sIHRoYXQgYWRvcHRzCiAgIHRoZSBnZW5lcmF0ZWQgc2NyaXB0IGFmdGVyIHRoZSBjYXBhYmlsaXRpZXMgb2YgU0hFTEwuCgoyMDA5LTAxLTA3IDE2OjAyICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIFJlb3JkZXIgdGhlIG5ldGluZXQvaWNtcF92YXIuaCBhbmQgbmV0aW5ldC9pcF9pY21wLmgsIHRoZSBsYXRlcgogICBvbmUgbXVzdCBiZSBjaGVja2VkIGZpcnN0IG9uIEZyZWVCU0QgNwoKMjAwOS0wMS0wNiAyMjoyMyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHVwZGF0ZSBTUEFSVEEgZm9yIDIwMDkKCjIwMDktMDEtMDMgMjA6MjMgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgbTQvYWNfcHJvbXB0X3VzZXIubTQ6CgogICBVcGdyYWRlIHRoZSBBQ19QUk9NUFRfVVNFUiBtYWNyb3MgdG8gYXV0b2NvbmYgMi42MyB3aGVyZQogICBBQ19GRF9NU0cgaXMgZGVwcmVjYXRlZCBhbmQgQVNfTUVTU0FHRV9GRCBpcyByZWNvbW1lbmRlZC4KCjIwMDktMDEtMDMgMTQ6MjAgIG1hZ2ZyCgogICAqICBhY2luY2x1ZGUubTQsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgbTQvYWNfYWRkX3NlYXJjaF9wYXRoLm00LCAgIAogICAgICBtNC9hY19tc2dfY2FjaGUubTQsIG00L2FjX21zZ19tb2R1bGVfZGJnLm00LCAgIAogICAgICBtNC9hY19wcm9tcHRfdXNlci5tNCwgbTQvbmV0c25tcF9zZWFyY2hfbGlicy5tNDoKCiAgIFNwbGl0IGFjaW5jbHVkZS5tNCBpbnRvIHNtYWxsZXIgcGFydHMgYnkgZnVuY3Rpb24uCgoyMDA5LTAxLTAzIDE0OjE1ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5hbToKCiAgIE1ha2UgYXV0b3JlY29uZiB3b3JrIGFnYWluLgoKMjAwOS0wMS0wMyAxNDoxMSAgbWFnZnIKCiAgICogIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5zdGFsbC1zaCwgbHRtYWluLnNoLCBtNCwgCiAgICAgICAgbTQvbGlidG9vbC5tNCwgbTQvbHRvcHRpb25zLm00LCBtNC9sdHN1Z2FyLm00LCBtNC9sdHZlcnNpb24ubTQsIAogICAgICAgIG00L2x0fm9ic29sZXRlLm00OgoKICAgVXBkYXRlIHRvIGxpYnRvb2wtMi4yLjQKCjIwMDktMDEtMDMgMTM6MjggIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczogQ2hlY2sgZm9yIGEgZnVuY3Rpb24sIG5vdCBhIG1hY3JvLgogICBjb25maWd1cmU6IFJlZ2VuZXJhdGUKCjIwMDktMDEtMDMgMDE6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgcmVxdWlyZSAtbHNzbDsgd2lsbCBiZSBjaGFuZ2VkIGxhdGVyIHRvIGRvICdpZiBuZWVkZWQnCgoyMDA5LTAxLTAzIDAwOjE5ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVuaWZ5IGFsbCBzbm1wZCBzdGF0aXN0aWMgdmFyaWFibGVzIGFuZCBtYWtlIHRoZQogICBoYW5kbGVycyBpbnN0YW5jZXMgb2YgYSBjb21tb24gaGFuZGxlci4KCjIwMDktMDEtMDEgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgY2xlYW4gdXAgYSBmZXcgY29tbWVudHMgYW5kIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCjIwMDktMDEtMDEgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IHZhcmlvdXMgbWlub3IgbWVtb3J5IGxlYWsgaXNzdWVzCgoyMDA5LTAxLTAxIDE0OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmMsIAogICAgICAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBvaWQgYXJndW1lbnRzIGZyb20gb2lkKiB0bwogICBjb25zdCBvaWQqLiBVcGRhdGUgbWliMmMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGNoYW5nZS4KCjIwMDktMDEtMDEgMTM6NTYgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENoZWNrIHJldHVybiB2YWx1ZXMgYW5kIGZyZWUgYWxsb2NhdGVkIHJlc291cmNlcyBvbiBlcnJvci4KCjIwMDktMDEtMDEgMTI6NTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIERvIG5vdCBsZWFrIGFsaWFzX2xpc3Qgb24gcmV0dXJuIGZyb20gX25leHRfYWxpYXMuCgoyMDA5LTAxLTAxIDExOjI2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBNYWtlIHZhcmlhYmxlIGNvbnN0IGFzIGl0IG5ldmVyIGlzIGNoYW5nZWQuCgoyMDA5LTAxLTAxIDExOjI1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDA4LTEyLTMxIDIxOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZG9uJ3QgdXNlIHRoZSBmdW5jdGlvbnMgaWYgd2UncmUgbm90IGxpbmtlZCB3aXRoIG9wZW5zc2wKCjIwMDgtMTItMzEgMjA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmM6CgogICBuZXdlciBwZXJsIGdlbmVyYXRlZCB1cGRhdGVzCgoyMDA4LTEyLTMxIDE4OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIGZldyBtb3JlIHJlY3Yvc2VuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwOC0xMi0zMSAxODowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBbGxvdyBxdW90ZWQgc2VjdXJpdHkgbmFtZXMgZm9yIG9uZXMgY29udGFpbmluZyBzcGFjZXMKCjIwMDgtMTItMzEgMTg6MDEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhbiBvcGVuc3NsIGluaXRpYWxpemF0aW9uIHdyYXBwZXIKCjIwMDgtMTItMzAgMDA6MDMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRlc3QuYywgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIFVzZSBzbm1wX2R1cGxpY2F0ZV9vYmppZCBpbnN0ZWFkIG9mIHZhcmlvdXMgbWFsbG9jK21lbWNweQogICB2YXJpYW50cyBpbiBvcmRlciB0byBtYWtlIGNsZWFyZXIgY29kZS4KCjIwMDgtMTItMjkgMjM6MzQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvYXNuMS5jOgoKICAgVXNlIGZvcm1hdCBzdHJpbmdzIGZvciBwcmludGYtbGlrZSBmdW5jdGlvbnMuCiAgIFByZWZlciBzdHJjcHkgb3ZlciBzcHJpbnRmKGRlc3QsICIlcyIsIHNyYykKICAgUHJlZmVyIERFQlVHTVNHVEwoKGZvcm1hdCwgYXJncykpIG92ZXIgc3ByaW50Zihsb2NhbCwgZm9ybWF0LAogICBhcmdzKTsgREVCVUdNU0dUTCgoIiVzIiwgbG9jYWwpKQoKMjAwOC0xMi0xOCAxNzowNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZXhwb3J0IG91dCBvZiB0aGUgZmlsZSBzb21lIGhlbHBmdWwgZ2VuZXJpYyB1ZHAgZnVuY3Rpb25zCgoyMDA4LTEyLTE2IDAwOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIGNoYW5nZSBsb2NhbHNtIHNlY3VyaXR5IG1vZGVsIHRvIHRzbSAoYW5kIGFkZCAxKQoKMjAwOC0xMi0xNSAyMzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jOgoKICAgUGF0Y2ggdG8gY2hhbmdlIGEgdHlwZWRlZiBuYW1lIGZyb20gbGluayB0byBub2RlbGluayB0byBhdm9pZAogICBuYW1pbmcgY29uZmxpY3QgaXNzdWVzLgoKMjAwOC0xMi0wOSAwMTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIHVzZSBpbnQzMl90IGluc3RlYWQgb2YgaW50XzMyIHdoaWNoIGRvZXNuJ3Qgd29yayBhdCBhbGwgb24gRjEwCgoyMDA4LTEyLTA5IDAxOjA3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIHRoZSBub3RlIHRoYXQgd2UgbW92ZWQgdG8gc3ZuLi4uIG9ic29sZXRlIGF0IHRoaXMgcG9pbnQsCiAgIHRvIHNheSB0aGUgbGVhc3QKCjIwMDgtMTItMDkgMDE6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHRoZSBUU00gaW1wbGVtZW50YXRpb24KCjIwMDgtMTItMDkgMDA6NTggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZmxhZyBzb21lIHN0ZXBzIGFuZCBtYW5kYXRvcnkKCjIwMDgtMTItMDkgMDA6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICByZW1vdmUgYWNjaWRlbnRpYWwgbmV3IGRlZmluZXMgdGhhdCBhcmVuJ3QgbmVlZGVkIHlldAoKMjAwOC0xMi0wOSAwMDo1NiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGxvY2Fsc20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgc25tcGxpYi9zbm1wbG9jYWxzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYzoKCiAgIHJlbW92ZSBvbGRlciBsb2NhbHNtIHNlY3VyaXR5IG1vZGVsIGFuZCByZXBsYWNlIHdpdGggYSBuZXdlciBUU00KICAgYmFzZWQgb24gdGhlIHVwY29taW5nIElFVEYgc3BlYwoKMjAwOC0xMi0wOSAwMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGlzc3VlIHdpdGggY29udGV4dCBwcm9iaW5nCgoyMDA4LTEyLTA0IDEyOjMzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERhZW1vbml6ZSBhZnRlciB0cmFuc3BvcnRzIGFyZSBjcmVhdGVkIGFuZCBsaXN0ZW5pbmcgc29ja2V0cyBhcmUKICAgYm91bmQgdG8gYXBwcm9wcmlhdGUgcG9ydHMuIFRoaXMgYWxsb3dzIHRvIGV4aXQgd2l0aCBub3plcm8gZXhpdAogICBjb2RlIHdoZW4gdGhlIGJpbmRpbmcgZmFpbHMuCgoyMDA4LTEyLTA0IDExOjQ0ICBqc2FmcmFuZWsKCiAgICogIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUHJpbnQgcG9ydHMgYXMgdW5zaWduZWQgbnVtYmVycy4KCjIwMDgtMTEtMjQgMTk6MDkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgX19FWFRFTlNJT05TX18gaXMgbm93IGhhbmRsZWQgYnkgY29uZmlndXJlCgoyMDA4LTExLTIyIDE4OjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgRG8gbm90IHRyeSB0byB1c2UgdGhlIG1vZHVsZSBsaXN0IGFzIGEgZmlsZSB0aGF0IHNob3VsZCBiZQogICBpbmNsdWRlZCBpbiB0aGUgYnVpbGQsIHRodXMgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uCiAgIFNvbGFyaXMuCgoyMDA4LTExLTIwIDIyOjMwICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCAKICAgICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVwbGFjZSBtZW1kdXAoKHVfY2hhcioqKSZ4LCAodV9jaGFyKil5LCB6ICogc2l6ZW9mKG9pZCkpIHdpdGggeAogICA9IHNubXBfZHVwbGljYXQKICAgZV9vYmppZCh5LCB6KSBzaW5jZSB0aGUgbGF0ZXIgaXMgZWFzaWVyIHRvIHJlYWQgYW5kIGV4cHJlc3NlcyB0aGUKICAgaW50ZW50aW9uIG9mIHQKICAgaGUgY29kZSBjbGVhcmVyLgoKMjAwOC0xMS0yMCAyMjowMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIG1lbW1vdmUgdG8gY29weSBvaWRzIGFzIGl0IGlzIGtub3duIHRoYXQKICAgdGhlIGFyZWFzIGFyZSBub25vdmVybGFwcGluZy4KCjIwMDgtMTEtMjAgMjA6NTEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFNURERvbWFpbi5jOgoKICAgTWFrZSBsb2cgcmVmZXIgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoKMjAwOC0xMS0yMCAyMDo0NiAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IERvIG5vdCB1c2UgJW0gaW4gcHJpbnRmLWZvcm1hdHRlZCBzdHJpbmdzIHNpbmNlICVtIGluCiAgIHByaW50ZiBpcyBhIGdsaWJjIGV4dGVuc2lvbi4KCjIwMDgtMTEtMTYgMjI6MDEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIEJ1bXAgdGhlIHJlcXVpcmVkIGF1dG9jb25mIHZlcnNpb24gdG8gMi42MyBhcyBwZXIgMTczMDEuCgoyMDA4LTExLTE2IDIxOjU1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBSZW1vdmUgYW4gdW51c2VkIGZ1bmN0aW9uIGZyb20gdGhlIGNvbmZpZ3VyZSB0ZXN0IGZvciBfX2Z1bmNfXy4KCjIwMDgtMTEtMTYgMjE6NTEgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNNCB1c2VzIGRubCwgbm90IFwgZm9yIGxpbmUgY29uY2F0ZW5hdGlvbi4KICAgXCBpbnRyb2R1Y2VkIGEgc3B1cmlvdXMgZGVmaW5lIGluIG5ldC1zbm1wLWNvbmZpZy5oLmluLCB0aHVzIHRoaXMKICAgY2hhbmdlLgogICBSZXJhbiBhdXRvY29uZiBhbmQgYXV0b2hlYWRlci4KCjIwMDgtMTEtMTMgMjI6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgTkVXUzogYnVpbGQ6IHVwZGF0ZSB0byBhdXRvY29uZiAyLjYzCgoyMDA4LTExLTEzIDAwOjMwICB0YW5kZXJzCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMjI1ODkzNTogUHl0aG9uIEV4dGVuc2lvbiBNb2R1bGUgZmFpbHMgb24KICAgU29sYXJpcwoKMjAwOC0xMS0xMyAwMDoyNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIGZpeCB0eXBvCgoyMDA4LTExLTEzIDAwOjI2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgZml4IHR5cG8KCjIwMDgtMTEtMTMgMDA6MTkgIHRhbmRlcnMKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIG1ha2Ugc2NyaXB0cyBleGVjdXRhYmxlCgoyMDA4LTExLTEyIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGZpeCB0eXBvL3NwZWxsaW5nIGluIGFuIGVtYmVkZGVkIHBlcmwgZXJyb3IgbWVzc2FnZQoKMjAwOC0xMS0xMSAxMzoxMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBjb21waWxhdGlvbiBvbiBvbGRlciBMaW51eGVzIHdpdGhvdXQgU1BFRURfMTAwMDAgYW5kCiAgIFNQRUVEXzI1MDAuCgoyMDA4LTExLTAxIDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBORVdTOiBzbm1wZDogQXBwbHlpbmcgcGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIGZpeCB0aGUKICAgZ2V0YnVsayBpc3N1ZSByZXBvcnRlZCBieSBPc2NhciBNaXJhLVNhbmNoZXoKCjIwMDgtMTAtMzAgMjI6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICByZW1vdmUgdGhlIG9sZGVyIChvYnNvbGV0ZSkgbWFrZXJlbGVhc2Ugc2NyaXB0CgoyMDA4LTEwLTIyIDE3OjI0ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgdGhlIGxpYiB1c2luZyBhIEMrKyBjb21waWxlciBvbmNlIG1vcmUuCgoyMDA4LTEwLTIyIDA3OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEb24ndCBjbGVhciBzZXNzaW9uIGZsYWdzIHdoZW4gdGVzdGluZyBvbmUgYml0LgoKMjAwOC0xMC0yMSAyMToxMCAgbWFnZnIKCiAgICogIEFHRU5ULnR4dCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLCBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmYsICAgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvRkFRLmh0bWw6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMTczNzcyNzogZnJvbSBqb3ljZWFubWFjaGluZTogQWRkIGEKICAgTkVUU05NUF9PTERBUElfIHByZWZpeCB0byB0aGUgYWNjZXNzIG1hY3JvcyB0aGF0IGFyZSB1c2VkIGluIHRoZQogICBvbGQtYXBpIGhlbHBlci4KICAgSSBkaWQgYWRkIHRoZSBwcmVmaXggdG8gYWxsIHVzZXJzIGluIG91ciBjb2RlLgoKMjAwOC0xMC0yMSAyMTowMCAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIAogICAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAxNzM3NzI3OiBmcm9tIGpveWNlYW5tYWNoaW5lOiBSZXBsYWNlIGFsbCB1c2VzCiAgIG9mIE5FVFNOTVBfQ0xFQU5fTkFNRVNQQUNFIHdpdGggTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMKCjIwMDgtMTAtMTYgMDk6NTYgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwODI3MjY6IGNvcnJlY3RseSByZXBvcnQgTklDIHNwZWVkcwogICBoaWdoZXIgdGhhbiA0R2JpdC9zCgoyMDA4LTEwLTE2IDA4OjAwICBqc2FmcmFuZWsKCiAgICogbWFuOgoKICAgU2NyYXRjaCBwcmV2aW91cyBjb21taXQsIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEgdG8gYmUgaWdub3JlZC4KCjIwMDgtMTAtMTYgMDc6MzcgIGpzYWZyYW5lawoKICAgKiBtYW46CgogICBBZGQgY29tcGlsZWQgbmV0LXNubXAtY29uZmlnLjEgdG8gc3ZuOmlnbm9yZSBsaXN0CgoyMDA4LTEwLTE1IDEyOjU3ICBqc2FmcmFuZWsKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9pcC1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9lbnVtcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX29pZHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAxNzk3MTExOiBpbXBsZW1lbnQgSVAtTUlCOjppcElmU3RhdHNUYWJsZQoKMjAwOC0xMC0xNSAwOToyNyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwb3J0YWJpbGl0eSBmaXg6IGF2b2lkIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbiB0aGUgbWlkZGxlIG9mCiAgIGNvZGUKCjIwMDgtMTAtMTQgMTg6NTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDIwNDMwMTg6IGZpeCByZWN2ZnJvbSBoYW5ncwogICBBbHNvIGFkZHJlc3NlcyAoY2xvc2VkKSBidWdzIDExNzE5MDQgYW5kIDEzNDUyOTYKCjIwMDgtMTAtMTQgMDk6NDQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IG1lbW9yeSBsZWFrIHdoZW4gbXVsdGlwbGUgaW50ZXJmYWNlcyBoYXZlIHRoZQogICBzYW1lIElQdjYgYWRkcmVzcwoKMjAwOC0xMC0xNCAwOTozNyAganNhZnJhbmVrCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2OTMwMzk6IGJlIHNpbGVudCB3aGVuIGluc2VydCBmYWlscy4KCjIwMDgtMTAtMTMgMTk6MDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxOTc3NDM5OiBGaXggcGFzcy9fcGVyc2lzdCBidWcgd2l0aCBTRVQKICAgb2lkIHZhbHVlCgoyMDA4LTEwLTEyIDE3OjI0ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlaW1wbGVtZW50YXRpb24gb2Ygc25tcE1QRFN0YXRzLgoKMjAwOC0xMC0xMCAyMToxMyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgQ29uc29saWRhdGUgY2hlY2tzIG9uIGdlbmVyYWwgTy9TIGNoYXJhY3RlcmlzdGljcwoKMjAwOC0xMC0wNyAwODo1MCAganNhZnJhbmVrCgogICAqIGRpc3QvZmluZC1yZXF1aXJlczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBCVUc6IDIwOTU5ODM6IGZpeCBzeW50YXggZXJyb3IgaW4KICAgZmluZC1yZXF1aXJlcyBoZWxwZXIgc2NyaXB0IGFuZCBtYWtlIGl0IGV4ZWN1dGFibGUKCjIwMDgtMTAtMDYgMTk6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgaWZkZWYgc3lzL3BvbGwKCjIwMDgtMTAtMDMgMTQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgcGF0Y2ggZnJvbSBTaGFjaGFyIFNjaGVtZXNoIHRvIGZpeCBhIHF1b3RlIGVzY2FwaW5nCgoyMDA4LTA5LTMwIDIyOjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkZWQgYSBuZWVkZWQgdHJhaWxpbmcgbmV3bGluZQoKMjAwOC0wOS0zMCAyMjoxMSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMDIyOTQ4OiBGaXggZm9yIENvdW50ZXI2NCBpbiBwZXJsIHN1YmFnZW50CgoyMDA4LTA5LTMwIDIxOjQwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gTkVXUzogc25tcGxpYjogSW1wbGVtZW50ZWQgUkZDNTM0MyBjb250ZXh0RW5naW5lSUQgcHJvYmluZy4KICAgVGhpcyBhbGxvd3MgZm9yIHByb2Jpbmcgb2YgdGhlIGNvbnRleHRFbmdpbmVJRCB3aXRob3V0IHJlcXVpcmluZwogICB0aGUgVVNNIHNlY3VyaXR5IG1vZGVsLgogICAtIGltcGxlbWVudGVkIGVudGlyZWx5IHdpdGhpbiB0aGUgbGlicmFyeSBmb3IgYm90aCBjbGllbnRzIGFuZAogICBzZXJ2ZXJzLgoKMjAwOC0wOS0zMCAyMTozMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBBZGQgYSBsb2NhbCBkZWZpbml0aW9uIGZvciBoYXZpbmcgc2VjdXJpdHkgbW9kZWxzIGRlZmluZSB0aGVpcgogICBvd24KICAgY29udGV4dEVuZ2luZUlEIHByb2JlCgoyMDA4LTA5LTMwIDIxOjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkIGEgZGVmaW5pdGlvbiBmb3IgdGhlIFNTSCBkb21haW4KCjIwMDgtMDktMzAgMjE6MDggIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMTI1NzM0NzogTm9uLWZpeGVkIHNpemUgY29ubmVjdGlvbiBidWZmZXIKCjIwMDgtMDktMzAgMDc6MzIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluCiAgIE1ha2VmaWxlLgogICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KCjIwMDgtMDktMjQgMjA6NTggIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgSWRlbnRpZnkgd2hlcmUgcGFydGljdWxhciBjaGVja3MgYXJlIGFjdHVhbGx5IHVzZWQKICAgKGxpYnJhcnksIGFnZW50LCBhcHBsaWNhdGlvbnMgb3Igbm90IGF0IGFsbCkKCjIwMDgtMDktMjQgMTI6NTMgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jOgoKICAgVXNlIHRoZSBsb25nZXN0IGludGVnZXIgZm9yIGlub2RlIG51bWJlcnMgYW5kIChwb3NzaWJseSA2NCBiaXQpCiAgIGNvdW50ZXJzLgoKMjAwOC0wOS0yMCAwOTowMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzM6CgogICBORVdTOiBidWlsZDogRG8gbm90IHJlcXVpcmUgdXNlIG9mIC0td2l0aC1lbmRpYW5uZXNzIHdoZW4KICAgY3Jvc3MtY29tcGlsaW5nLgoKMjAwOC0wOS0xOSAxNToxOSAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIENvcnJlY3QgbG9jYXRpb24gb2YgZG9jdW1lbnRhdGlvbiBmaWxlcy4KCjIwMDgtMDktMTkgMDU6MjggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFuZCBhZGQgdGhlIGNodW5rIHRoYXQgSSBsb3N0LgoKMjAwOC0wOS0xOSAwNToyMyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vdmUgbW9yZSB0aGluZ3MgZnJvbSBhY2NvbmZpZy5oIHRvIHRoZSB0ZW1wbGF0ZXMgaW4gdGhlCiAgIGNvbmZpZ3VyZSBpbnB1dCBmaWxlcy4KCjIwMDgtMDktMTcgMTM6MzEgIGpzYWZyYW5lawoKICAgKiBkaXN0L2ZpbmQtcmVxdWlyZXM6CgogICBtYWtlIGZpbmQtcmVxdWlyZXMgZXhlY3V0YWJsZSBzbyBpdCdzIGFjdHVhbGx5IHVzYWJsZSBieSB0aGUKICAgbmV0LXNubXAuc3BlYwoKMjAwOC0wOS0xNyAxMjowOCAganNhZnJhbmVrCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEuZGVmOgoKICAgYWRkIG1hbiBwYWdlIGZvciBuZXQtc25tcC1jcmVhdGUtdjMtdXNlcgoKMjAwOC0wOS0xNiAxODowMiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRnVydGhlciBtaW5pbWl6YXRpb24gb2YgYWNjb25maWcuaAoKMjAwOC0wOS0xMSAyMjoyOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3ZlIGEgZmV3IG1vcmUgdmFyaWFibGVzIG91dCBvZiBhY2NvbmZpZy5oCgoyMDA4LTA5LTExIDIwOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3Mzc0Mzk6IGZyb20gZW1peTogYXV0b21hdGljIGxpbmsgdXAvZG93bgogICB0cmFwcyBvbiBhIHdhbGs7IHN0aWxsIG5lZWQgYSBiZXR0ZXIgaW50ZXJmYWNlIGZvciBtYW51YWxseSBkb2luZwogICB0aGluZ3Mgb24gYW4gb2NjYXNpb25hbCBiYXNpcwoKMjAwOC0wOS0xMSAyMDoyNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDcwMDY4MTogbGltaXRlZCBzdXBwb3J0IGZvciBVRFB2NCBicm9hZGNhc3QKICAgYWRkcmVzc2VzCgoyMDA4LTA5LTEwIDA2OjM5ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfQ0hFQ0tfVFlQRVMgaW5zdGVhZCBvZiBhIGhvbWVncm93bgogICBhbHRlcm5hdGl2ZSB0byBjaGVjayBmb3IgdHlwZXMKCjIwMDgtMDktMDkgMjA6MjcgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIGFsbCB0aGUgcGFydHMgb2YgY29uZmlndXJlLmFjIHRvIHRoZSBkZXBlbmRlbmN5IGxpc3QKCjIwMDgtMDktMDkgMTg6MTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgdXBkYXRlIHRvIHJlZmxlY3QgY29uZmlndXJlLmluIC0+IGNvbmZpZ3VyZS5hYyBjaGFuZ2UKCjIwMDgtMDktMDkgMTY6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBkZWZhdWx0IHRvIC1wMAoKMjAwOC0wOS0wOCAyMzo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wbG9jYWxzbS5jOgoKICAgY2hlY2sgZm9yIGEgc2Vzc2lvbiB0dW5uZWxlZCBmbGFnIGJlZm9yZSByZXR1cm5pbmcgYW4KICAgYXV0aGVudGljYXRpb24gZmFpbHVyZQoKMjAwOC0wOS0wOCAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2V0IHRoZSB0dW5uZWxlZCBmbGFnIHdoZW4gZGVhbGluZyB3aXRoIGEgdHVubmVsLWJhc2VkIHRyYW5zcG9ydDsKICAgZG9uJ3QgcmVxdWlyZSBhIHNlY3VyaXR5RW5naW5lSUQgaWYgdGhlIHNlY3VyaXR5IG1vZGVsIGRvZXNuJ3QKICAgaGF2ZSBvbmUgKGp1c3QgVVNNIG5lZWRzIGl0KQoKMjAwOC0wOS0wOCAyMDoyNCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDIwOTk5ODU6IEFkZGVkIGNvbnN0IHF1YWxpZmllcnMgdG8gdGltZQogICBjb252ZXJzaW9uIHJvdXRpbnMKCjIwMDgtMDktMDUgMDc6NTEgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBVcGRhdGUgcmVsZWFzZSBpbnN0cnVjdGlvbnMsIGluIGxpbmUgd2l0aCBtYWtlcmVsZWFzZS54bWwKICAgKFFuOiBXaHkgaXNuJ3QgbWFrZXJlbGVhc2UueG1sIGJlaW5nIHBpY2tlZCB1cCBoZXJlPykKCjIwMDgtMDktMDQgMjI6NTIgIHRhbmRlcnMKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAxODY4Mjc4OiBQeXRob24gc2VnZmF1bHQgKGludHJvZHVjZWQgYnkKICAgcjE2OTYyKQoKMjAwOC0wOS0wMyAxMzo0MyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjAwMDg3NDogQ2xlYW51cCB0cmFuc3BvcnQgc2VsZWN0aW9uLgoKMjAwOC0wOS0wMyAxMzoyOSAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIFRpZHkgdXAgcGVybC9weXRob24gYW5kIE8vUyBkYXRhIHN0cnVjdHVyZSB0ZXN0cy4KCjIwMDgtMDgtMzEgMTg6MTQgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBUaWR5IHVwIChtb3N0IG9mKSB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRoZSBjb25maWd1cmUKICAgZnJhbWV3b3JrLgogICBUaGlzIGlzIG1vc3RseSByZS1pbmRlbnRhdGlvbiwgcmUtY29tbWVudGluZywgYW5kIGEgY2VydGFpbgogICBhbW91bnQKICAgb2YganVkaWNpb3VzIHJlLW9yZGVyaW5nIG9mIHRoZSB0ZXN0cyB3aXRoaW4gaW5kaXZpZHVhbAogICBzdWItc2NyaXB0LgoKMjAwOC0wOC0zMSAxNzozMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBBbm5vdGF0ZSBjb25maWd1cmUgdGVtcGxhdGUgd2l0aCBzdWdnZXN0ZWQgYmVzdCBwcmFjdGljZQogICBzdHJ1Y3R1cmUuCiAgIE5vdGUgdGhhdCBub25lIG9mIHRoZXNlIGNoYW5nZXMgaGFzIGFsdGVyZWQgdGhlIGNvZGUgd2l0aGluCiAgICdjb25maWd1cmUnIGl0c2VsZiAob3RoZXIgdGhhbiBhZmZlY3RpbmcgbGluZSBudW1iZXJzKQoKMjAwOC0wOC0zMSAxNzoyNiAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBjb25maWd1cmUuZCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTkVXUzogYnVpbGQ6IHNwbGl0IGNvbmZpZ3VyZSB0ZW1wbGF0ZSBpbnRvIHNlcGFyYXRlIHBpZWNlcy4KICAgKE1vc3RseSkgc2VsZi1jb250YWluZWQsIGFuZCBzaWduaWZpY2FudGx5IGxlc3MgY29uZnVzaW5nIQoKMjAwOC0wOC0zMSAxNzoyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLmFjLCBjb25maWd1cmUuaW46CgogICBSZW5hbWUgY29uZmlndXJlIHRlbXBsYXRlIGluIGxpbmUgd2l0aCBjdXJyZW50IGJlc3QgcHJhY3RpY2UuCgoyMDA4LTA4LTI5IDE5OjU0ICBkdHMxMgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIFJldGFpbiBmaWxlbmFtZXMgd2hpY2ggZG9uJ3QgaW5jbHVkZSB0aGUgZXhwZWN0ZWQgcHJlZml4LgoKMjAwOC0wOC0yNyAyMTo1NSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzOgoKICAgaWdub3JlIC5saWJzIGRpcmVjdG9yaWVzCgoyMDA4LTA4LTI3IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgUy8zOTAgdXNlcyBzbGlnaHRseSBkaWZmZXJlbnQgZm9ybWF0IG9mIHRoZSAvcHJvYy9jcHVpbmZvIGZpbGU6CiAgIHByb2Nlc3NvciAwOiB2ZXJzaW9uID0gRkYsIGlkZW50aWZpY2F0aW9uID0gMDYwQUZFLCBtYWNoaW5lID0KICAgMjA5NAoKMjAwOC0wOC0yMiAyMzo0NyAgdGFuZGVycwoKICAgKiBGQVE6CgogICB1cGRhdGUgbGlzdCBvZiBzdXBwb3J0ZWQgb3BlcmF0aW5nIHN5c3RlbXMKCjIwMDgtMDgtMjIgMjM6MjcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBidWlsZDogQlVHOiAyMDIzODAzOiBDb21waWxhdGlvbiBwcm9ibGVtcyBvbiBIUC1VWCAxMS4zMQogICBDSEFOR0VTOiBidWlsZDogTGltaXQgdGhlIHVzZSBvZiBfS0VSTkVMIGRlZmluaXRpb25zIGluIGNvbmZpZ3VyZQogICB0ZXN0cyB0byBtYXRjaCB0aGUgdXNlCiAgIG9mIF9LRVJORUwgaW4gb3VyIGNvZGViYXNlCgoyMDA4LTA4LTIyIDAwOjE4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEZpeCBidWlsZCBmYWlsdXJlIG9uIEhQLVVYIDExLjMxOiB1c2UgZ2V0cGFnZXNpemUoKSBpbnN0ZWFkIG9mCiAgIFBHU0hJRlQuCiAgIFN1Y2Nlc3NmdWxseSB0ZXN0ZWQgb24gSFAtVVggMTAuMjAsIDExLjAwLCAxMS4xMSwgMTEuMjMgYW5kCiAgIDExLjMxLgoKMjAwOC0wOC0yMSAxMDowMyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBTQ1RQLU1JQgoKMjAwOC0wOC0yMCAxNzozNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBIYXZlIG9ubHkgb25lIHZhcmlhYmxlIG5hbWVkIHBhc3N3ZCBpbiBzbXV4X2F1dGhfcGVlci4KCjIwMDgtMDgtMTkgMjM6MjIgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0OgoKICAgdXBkYXRlIFJFQURNRSBmb3IgVHJ1NjQgYWZ0ZXIgdGhlIHNlbmR0by9yZWN2ZnJvbSBmaXhlcwoKMjAwOC0wOC0xOSAyMDoyNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBmaXggc2lnbmlmaWNhbnQgdHlwbwoKMjAwOC0wOC0xOSAxMzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgRm9yY2UgdXNlIG9mIC9wcm9jLyVkL3BzaW5mbyBpbnRlcmZhY2Ugb24gU29sYXJpcy4KICAgVGVtcG9yYXJ5IGhhY2sgd2hpbGUgd2UgaW52ZXN0aWdhdGUgdGhlIGlzc3VlcyB3aXRoCiAgIHRoZSBrdm1fcHJvYygpIGNvZGUuCiAgIAogICBUaGUgJ2NvbmZpZ19yZXF1aXJlJyBwcm9jZXNzaW5nIGRvZXNuJ3QgY3VycmVudGx5CiAgIHBpY2sgdXAgdGhlIGZ1bGwgI2lmZGVmIGVudmlyb25tZW50LCBzbyBkZWZhdWx0cwogICB0byB1c2luZyBrdm1fcHJvYygpLiBJJ20gbm90IGNvbnZpbmNlZCB0aGlzIHdhcwogICB3b3JraW5nIGJlZm9yZSBhbnl3YXksCgoyMDA4LTA4LTE5IDEzOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYzoKCiAgIEZpeCBwcm9ibGVtcyBpbiAvcHJvYy8lZC9wc2luZm8gaW50ZXJmYWNlIHByb2Nlc3NpbmcuCgoyMDA4LTA4LTE5IDA4OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzOgoKICAgSWdub3JlIGxpYnJhcnkgYW5kIG9iamVjdCBmaWxlcwoKMjAwOC0wOC0xOSAwODozNiAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBBY3RpdmF0ZSBzdGF0aXN0aWNzIHRoYXQgYXJlIHN1cHBvcnRlZCBvbiBTb2xhcmlzIGFuZC9vciBMaW51eAogICBJUHY2CgoyMDA4LTA4LTE5IDA4OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEltcHJvdmVkIHRyYWNpbmcgb2YgU01VWCBhdXRoZW50aWNhdGlvbiBwcm9ibGVtcy4KCjIwMDgtMDgtMTkgMDg6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmM6CgogICBCZXR0ZXIgdHJhY2luZyBvZiBEaXNNYW4gb2JqZWN0IHByb2Nlc3NpbmcuCgoyMDA4LTA4LTE4IDIyOjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmg6CgogICByZW1vdmUgYm9ndXMgd2hpdGUgc3BhY2UKCjIwMDgtMDgtMTggMjI6MDEgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIwMjE0NDQ6IFN1cHBvcnQgU05NUHYyYyBpbiBnZXR0YWJsZQogICBwcm9jZXNzaW5nCgoyMDA4LTA4LTE4IDIxOjQ0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyMDAzNDUwOiBGaXggYSBjb3VwbGUgb2YgNjQtYml0CiAgIHByb2JsZW1zLgoKMjAwOC0wOC0xOCAxNDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICByZXZlcnQgMTcxNTcgc2luY2UgaXQgYnJva2Ugc29tZXRoaW5nCgoyMDA4LTA4LTE4IDA3OjA2ICBqc2FmcmFuZWsKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgU0NUUC1NSUIgaW1wbGVtZW50YXRpb24gKExpbnV4IG9ubHkpCgoyMDA4LTA4LTE3IDIxOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjAyMjkzNjogRml4IEFnZW50WCBDb3VudGVyNjQgZGVjb2Rpbmcgb24KICAgNjQtYml0IGFyY2hpdGVjdHVyZXMKCjIwMDgtMDgtMTcgMjA6NTAgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMTQyMDQ6IFN1cHBvcnQgLWcge2dyb3VwbmFtZX0KCjIwMDgtMDgtMTUgMTM6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgTkVXUzogc25tcHVzbTogUEFUQ0g6IDE1OTEzNTU6IGZyb20gcHBhc3NlcmE6IEFsbG93IGNsb25pbmcgdG8KICAgZW5naW5lSURzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBhZ2VudCdzIGVuZ2luZUlECgoyMDA4LTA4LTE0IDE1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmM6CgogICBTV1J1biBwcm9jZXNzaW5nIG5lZWRzIGFjY2VzcyB0byB0aGUgaW50ZXJuYWxzIG9mICdzdHJ1Y3QgdXNlcicKICAgKFNvbGFyaXMpCgoyMDA4LTA4LTEzIDEzOjAyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIENvcnJlY3RseSBwYXJzZSBpbnRlcmZhY2UgaW5kZXhlcyBoaWdoZXIgdGhhbiAweGZmLgoKMjAwOC0wOC0xMiAwODoyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENsb3NlIGZpbGUgd2hlbiBwYXJzaW5nIG9mIC9wcm9jL1hYWC9zdGF0dXMgZmFpbHMuCgoyMDA4LTA4LTEyIDA3OjI3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliLCBhZ2VudC9taWJncm91cC9zY3RwLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL1NDVFAtTUlCLnR4dDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjAyMzYzMzogYWRkIFNDVFAtTUlCIGltcGxlbWVudGF0aW9uIChMaW51eAogICBvbmx5KQoKMjAwOC0wOC0wNyAxMDowMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIEZpeCBpbmV0TmV0VG9NZWRpYVRhYmxlIHRhYmxlIHByb2Nlc3NpbmcgLSBjb250aW51ZSB3aXRoIG5leHQKICAgZW50cnkgd2hlbiBmaWxsdXBfZW50cnlfaW5mbygpIGZhaWxzLgoKMjAwOC0wOC0wNyAwOTowMCAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IGRvY3VtZW50YXRpb24gb2YgZXhlYyBzdGF0YW1lbnQgLSBpdCBkb2VzIG5vdCBjYWNoZSByZXN1bHRzCiAgIGFueW1vcmUuIFJlbGF0ZWQgdG8gYnVnIDg4MzEzNAoKMjAwOC0wNy0zMSAyMzozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jOgoKICAgRml4IGEgdHlwbywgYW5kIGEgYm9ndXMgZmllbGQgbmFtZSBpbiB0aGUgQUlYIHByb2NpbmZvIHN0cnVjdHVyZS4KCjIwMDgtMDctMzEgMjM6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYzoKCiAgIEluY2x1ZGUgbWlzc2luZyBoZWFkZXJzLCBhbmQgZml4IG9uZSBib2d1cyBmaWVsZCBuYW1lIGluIFNvbGFyaXMKICAgcHJvYyBzdHJ1Y3R1cmUuCgoyMDA4LTA3LTMwIDE3OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDIwMDMxNDQ6IEluY3JlYXNlIHNpemUgb2YgQWdlbnRYIHBhY2tldAogICBidWlsZCBidWZmZXIKCjIwMDgtMDctMzAgMDc6NTcgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDIwMjc4MzQ6IEV4dGVuZCBzdHJpbmcgcHJpbnQgYnVmZmVyIGJ5IHRoZQogICBtaW5pbXVtIG5lY2Vzc2FyeS4KCjIwMDgtMDctMjkgMjM6MzQgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2N5Z3dpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbmxpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmM6CgogICBGaXggYXNzb3J0ZWQgc2lsbHkgdHlwb3MgLSB1bmJhbGFuY2VkIHBhcmVudGhlc2VzCiAgIGFuZCB0aGUgd3JvbmcgdHlwZSBlbnVtZXJhdGlvbiB2YWx1ZSBuYW1lcy4KCjIwMDgtMDctMjkgMjM6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYzoKCiAgIEVuc3VyZSBzd3J1biBkYXRhIGlzIGF2YWlsYWJsZSBmb3IgdGhlIHByVGFibGUgY2FsbHMsCiAgIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaHJTV1J1blRhYmxlIHRvIHRyaWdnZXIgdGhpcy4KCjIwMDgtMDctMjkgMTY6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYSkgRml4IHRoZSBzaXplIG9mIHRoZSBidWZmZXIgaW4ganVzdCBvbmUgcGxhY2UKICAgKG1ha2VzIGl0IGVhc2llciB0byBjaGFuZ2UgaWYgbmVjZXNzYXJ5KQogICBiKSBGaXggdmFyaW91cyB1bmZvcnR1bmF0ZSBsaW5lLWJyZWFrcyAod2l0aGluICJwZHUtPmZsYWdzIikKCjIwMDgtMDctMjkgMTY6MDUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaDoKCiAgIElmIHRoZSByZS13cml0dGVuIFNXUnVuIG1vZHVsZSBpZiBhdmFpbGFibGUsIHRoZW4gdXNlIGl0IGZvcgogICB0aGUgVUNELXNwZWNpZmljIHByVGFibGUgYXMgd2VsbCBhcyB0aGUgaHJTV1J1blRhYmxlLgogICBDb25zaXN0ZW5jeSBpcyBnb29kLi4uLgoKMjAwOC0wNy0yOSAxNToyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBTdXBwcmVzcyBqdW5rIGluIGhyU1dSdW5OYW1lICYgaHJTV1J1blBhcmFtZXRlcnMgdmFsdWVzCgoyMDA4LTA3LTI5IDEwOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jOgoKICAgVGhlIGNhY2hlL2NvbnRhaW5lciByZWxhdGUgdG8gdGhlIGRhdGEgaXRzZWxmLCBzbyBzaG91bGQKICAgbW9yZSBuYXR1cmFsbHkgYmUgaGFuZGxlZCBieSB0aGUgZGF0YV9hY2Nlc3MgbW9kdWxlLAogICByYXRoZXIgdGhhbiBhIHBhcnRpY3VsYXIgTUlCIHRhYmxlIG1vZHVsZS4KCjIwMDgtMDctMjggMjE6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgICd1c2VkJyBhbmQgJ2ZyZWUnIGFyZSBub3QgdGhlIHNhbWUgdGhpbmcsIERhdmUuIFBheSBhdHRlbnRpb24gYXQKICAgdGhlIGJhY2suLi4uCgoyMDA4LTA3LTI4IDE0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDIwMjM4MDM6IEVuc3VyZSBjb21waWxhdGlvbiBpcyBub3QgZGVwZW5kZW50CiAgIG9uIGFuIGlycmVsZXZhbnQgY29uZmlndXJlIGNoYXJhY3RlcmlzdGljIGZvciBIUC1VWCAxMQoKMjAwOC0wNy0yOCAxMDo1NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDE5NjQxMzY6IERyb3AgTlVMTCB0eXBlIGZyb20gc25tcHNldCB1c2FnZQogICBtZXNzYWdlLgoKMjAwOC0wNy0yNSAxNDoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oOgoKICAgVXNlICctLWVuYWJsZS1uZXctZmVhdHVyZXMnIG1lY2hhbmlzbSB0byBpbmNsdWRlIGhyU1cqIHJlLXdyaXRlcwoKMjAwOC0wNy0yNSAxNDoxMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fY3lnd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX25saXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbnVsbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmM6CgogICBQcmVsaW1pbmFyeSBPUy1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgUnVubmluZyBhbmQgSW5zdGFsbGVkCiAgIFNvZnR3YXJlIGRhdGEgYWNjZXNzLgoKMjAwOC0wNy0yNCAyMzoyMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMjAyNzEyOTogZml4IHR5cG8gaW4gc25tcGNtZC4xCgoyMDA4LTA3LTI0IDEwOjAwICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgcmVmbGVjdCBkZWZhdWx0IHRlbXAgZmlsZSBwYXR0ZXJuIGluIG1hbiBwYWdlIGlmIGl0J3MgbW9kaWZpZWQgYnkKICAgLi9jb25maWd1cmUgc2NyaXB0CgoyMDA4LTA3LTI0IDA4OjM2ICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBidWlsZGluZzogYWRkIC0td2l0aC10ZW1wLWZpbGUtcGF0dGVybiBjb25maWd1cmUgb3B0aW9uCgoyMDA4LTA3LTI0IDA2OjUzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyMzgwMDogcmVsZWFzZSBhbmQgcmVsb2FkIGFsbCB0cmFwCiAgIGRlc3RpbmF0aW9ucyBvbiBTSUdIVVAKCjIwMDgtMDctMjIgMTQ6MzMgIGpzYWZyYW5lawoKICAgKiBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbjoKCiAgIGZpeCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlciB0byBydW4gd2l0aG91dCBhcmd1bWVudHMKCjIwMDgtMDctMjIgMTQ6MjEgIGpzYWZyYW5lawoKICAgKiAgLiwgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluOgoKICAgTkVXUzogbWlzYzogc2VwYXJhdGUgdXNlciBtYW5hZ2VtZW50IGZyb20gbmV0LXNubXAtY29uZmlnIGludG8KICAgbmV3IG5ldC1zbm1wLWNyZWF0ZS12My11c2VyIHNjcmlwdAoKMjAwOC0wNy0yMSAxMzo0NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMTk0NDU4MTogUHJvdGVjdCBhZ2FpbnN0IGNvcmUgZHVtcHMgd2l0aAogICBsb25nIHN0cmluZyBpbmRleCB2YWx1ZXMuCgoyMDA4LTA3LTE4IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIG5ldyBzaWduaW5nIGtleQoKMjAwOC0wNy0xNyAxMDowNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDIwMTgwMzE6IERvbid0IHByb2JlIGVuZ2luZUlEIGluIGludGVybmFsCiAgIG1vbml0b3Igc2Vzc2lvbnMuCgoyMDA4LTA3LTEwIDE5OjMzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCBhIHJlZ2V4cCBxdW90ZQoKMjAwOC0wNy0xMCAxNDoxMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgYnVpbGQgZml4IGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSBnZXRhZGRyaW5mbyAoZS5nLiBIUC1VWAogICAxMS4wIGFuZCBlYXJsaWVyLCBTb2xhcmlzIDcgYW5kIGVhcmxpZXIpCgoyMDA4LTA3LTEwIDEzOjUwICBhbGV4X2IKCiAgICogd2luMzIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQlVHOiAyMDE0NTI2OiBXaW4zMjoKICAgc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmggbm90IGluc3RhbGxlZAoKMjAwOC0wNy0wNiAxNTowNSAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvYnVpbGQucGwsICAgCiAgICAgIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWxkaW5nOiBBZGQgc3VwcG9ydCBmb3Igd2luRXh0RExMIHRvIGJ1aWxkLmJhdCAod2luMzIpCgoyMDA4LTA3LTA2IDEyOjM4ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzIgYnVpbGQgZml4ZXMgLSBhZGQgbWlzc2luZyBmdW5jdGlvbiBmb3IgRExMIGJ1aWxkLgoKMjAwOC0wNy0wMiAxMjozOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyMDA2Nzg2OiBJbnRlcmZhY2UgbmFtZSBjYW4gaGF2ZSBtb3JlIHRoYW4gOAogICBjaGFyYWN0ZXJzLgoKMjAwOC0wNi0yNSAxNzozOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTE2ODQwOiBuZXcgY29uZmlnIG9wdGlvbiB0byBzZXQgU05NUHYxIHRyYXAKICAgYWdlbnQgYWRkcmVzcwogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTkxNjg0MDogaW50cm9kdWNlCiAgIG5ldHNubXBfZ2V0aG9zdGJ5bmFtZV92NAoKMjAwOC0wNi0yNSAxNToxNiAganNhZnJhbmVrCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGFzc2VydGlvbiB3aGVuIHVzZWQgd2l0aCBwZXJsIDUuMTAKCjIwMDgtMDYtMjQgMDU6MDEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBCVUc6IDIwMDExMjQ6IEFsbG93IGVtYmVkZGVkIE5VTAogICBjaGFyYWN0ZXJzIGluIHVzbVVzZXJQdWJsaWMKCjIwMDgtMDYtMjMgMTk6NTcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE9ubHkgcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGV4dHJhIFwwIGFmdGVyIHRoZSBkYXRhIGZvciBPQ1RFVAogICBTVFJJTkcgdmFsdWVkIGVudGl0aWVzCgoyMDA4LTA2LTIzIDE5OjEzICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogRGlzYWJsZSB0ZXN0cyBpZiB0aGUgYWdlbnQgaXMgYnVpbHQgd2l0aG91dAogICB0aGUgbWliIG1vZHVsZSB0aGV5IGRlcGVuZCBvbi4KCjIwMDgtMDYtMjEgMTI6MTQgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHNwdXJpb3VzIEFDX01TR19SRVNVTFQgaW5zaWRlIGFuIEFDX0NBQ0hFX0NIRUNLCgoyMDA4LTA2LTE4IDA1OjA3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEhhbmRsZSBzb2xhcmlzIGF3ayBhcyB3ZWxsLgoKMjAwOC0wNi0xNyAxNjowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5OTU3NTM6IGZyb20gdm9sa292X3BldGVyOiBtaW5vciBjbGVhbnVwCiAgIGFnZW50L2F1dG9fbmxpc3QuYwoKMjAwOC0wNi0xNyAwODo1NyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgRml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gc3ByaW50ZiBmb3IgVENQL0lQdjYKICAgQ3Jvc3MtcG9ydCBvZiByZXZpc2lvbiAxNjY2OAoKMjAwOC0wNi0xNiAyMzo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxOTk1MTcyOiBmaXggLS13aXRob3V0LWVsZiBjb25maWd1cmUgdXNhZ2UKICAgbWVzc2FnZQoKMjAwOC0wNi0xMyAyMjoxNiAgZHRzMTIKCiAgICogZGlzdC9maW5kLXJlcXVpcmVzLCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBidWlsZDogSW1wcm92ZWQgUlBNIHNwZWMgZmlsZXMsIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kKICAgd2l0aCB2ZW5kb3ItcHJvdmlkZWQgcGFja2FnZXMuCiAgIFByb3ZpZGVkIGJ5IEphbiBTYWZyYW5lawoKMjAwOC0wNi0xMyAyMTowMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE4OTk3NjI6IFR3ZWFrIGVtYmVkZGVkX3BlcmwgY29uZmlndXJlCiAgIGNoZWNrcy4KCjIwMDgtMDYtMTMgMDU6NDMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogYnVpbGRpbmc6IFJldGlyZSB0aGUgY29uZmlnX29sZC9uZXdfcmVxdWlyZSBmZWF0dXJlIGFuZAogICByZXBsYWNlIGl0IHdpdGggY29uZmlnX3ZlcnNpb25fcmVxdWlyZSB0aGF0IGNvbXBhcmVzIHZlcnNpb24KICAgbnVtYmVycyB0byBhY2hpZXZlIGEgc2ltaWxhciB0aGluZwoKMjAwOC0wNi0xMiAxMjo1MCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIE9ubHkgYWRkIG5vbi1kZWZhdWx0IE1JQiBtb2R1bGVzIHRvIHRoZSB0ZXN0IGJ1aWxkcy4KICAgU3BlY2lmeWluZyB0aGUgaG9zdCBtb2R1bGUgaXMgbm90IG5lZWRlZCBvbiBMaW51eCBzeXN0ZW1zLAogICBhbmQgbWF5IGJyZWFrIG9uIG90aGVyIE8vU3MuIFNwZWNpZnlpbmcgdGhlIGRpc21hbi9ldmVudAogICBNSUIgaXMgdW5uZWNlc3Nhcnkgb24gYW55IHN5c3RlbS4KCjIwMDgtMDYtMTEgMTA6MTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBPbmx5IGVuYWJsZSBJUFggdHJhbnNwb3J0IG9uIExpbnV4IHN5c3RlbXMKCjIwMDgtMDYtMTAgMTQ6MzcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBzbm1wZDogUEFUQ0g6IDE5MTgzODM6IEZpeCBEaXNNYW4gbW9uaXRvcmluZyBvZiBBZ2VudFggc3ViYWdlbnRzCiAgIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgYWN0dWFsbHkgdXNlIHRoZSBjb2RlIHN1Ym1pdHRlZCBpbiB0aGF0CiAgIHBhdGNoLgogICBJbnN0ZWFkIGl0IGluc2VydHMgYSBjYWxsYmFjayBob29rIGludG8gdGhlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IKICAgcm91dGluZSAodXNpbmcgdGhlIG15dm9pZCBwb2ludGVyIGFuZCBhIG5ldyBzZXNzaW9uIGZsYWcpLCB3aGljaAogICBoYXMKICAgdGhlIHNhbWUgZWZmZWN0IHdpdGhvdXQgbmVlZGluZyB0byBkdXBsaWNhdGUgYW55IGNvZGUuCgoyMDA4LTA2LTEwIDEyOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRml4IGxvZ2ljIGVycm9ycyBpbiBoYW5kbGluZyBvZiBvbGQvY3VycmVudCB2YXJiaW5kIGxpc3RzLgogICBSZXBvcnRlZCBieSBGcmVkIEdhbyBpbiBwYXRjaCAjMTkxODM4MwoKMjAwOC0wNi0wOSAxOTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgdXBkYXRlIHRvIG1hdGNoIHB1Ymxpc2hlZCByZWxlYXNlCgoyMDA4LTA2LTA5IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZGVkIHNubXBfdmVyc2lvbi5jCgoyMDA4LTA2LTA5IDA5OjA1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jOgoKICAgQSBjb3VwbGUgbW9yZSBtaXNzaW5nIGVycm9yIGNoZWNrcy4KICAgQmFzZWQgb24gdGhvc2UgcmVwb3J0ZWQgYnkgQm95YSBTdW4KCjIwMDgtMDYtMDYgMTI6MDIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIGVtYmVkZGVkIHBlcmwgb24gTWFjIE9TL1gKICAgKG5lYXJseSB3b3JraW5nIG9uIExlb3BhcmQgbm93KQoKMjAwOC0wNi0wMyAyMzoxNCAgdGFuZGVycwoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTkVXUzogYWl4OiBBZGQgc3VwcG9ydCBmb3IgQUlYIDYueAoKMjAwOC0wNi0wMyAyMjo0NiAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgTkVXUzogYnVpbGQ6IFVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNiAoZnJvbSAxLjUuMjQpLCBlLmcuIHRvCiAgIGJldHRlciBzdXBwb3J0IEFJWCA2LjEgYW5kIE1hYyBPUyBYIExlb3BhcmQKCjIwMDgtMDYtMDMgMjI6MzkgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHdoeSBhZGQgbGVnYWN5IGRlZmluaXRpb25zIGZvciBuZXcgc3R1ZmY/CgoyMDA4LTA2LTAzIDA5OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBFbnN1cmUgdGhlIGRlZmF1bHQgaW50ZXJuYWwgcXVlcnkgc2Vzc2lvbiBoYXMgYSB2YWxpZCBlbmdpbmVJRCwKICAgdG8gYXZvaWQgaGF2aW5nIHRvIHByb2JlIGZvciBpdCBvbiB0aGUgZmlyc3QgdXNlLgoKMjAwOC0wNi0wMiAyMjoxNyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBORVdTOiBzbm1wbGliOiBDb252ZXJ0IGdlbmVyaWMgc291cmNlIGFyZ3VtZW50cyBmcm9tIGNvbnN0CiAgIHVfY2hhciogdG8gY29uc3Qgdm9pZCogZm9yIHNubXBfcGR1X2FkZF92YXJpYWJsZSwKICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSwgc25tcF9zZXRfdmFyX3ZhbHVlLAogICBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUgYW5kIG1lbWR1cC4KCjIwMDgtMDYtMDIgMTM6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBFbnN1cmUgdGhhdCB0aGUgInRyaWdnZXIgYXJtZWQiIGZsYWcgaXMgY2xlYXJlZCB3aGVuZXZlciB0aGUKICAgbWF0Y2hpbmcKICAgZXhwcmVzc2lvbiBpcyBmb3VuZCB0byBob2xkIC0gZXZlbiBpZiB0aGUgdHJpZ2dlciBkb2Vzbid0CiAgIGFjdHVhbGx5IGZpcmUuCiAgIFRoaXMgYWZmZWN0cyB0aGUgYmVoYXZpb3VyIG9mIGluaXRpYWxseS10cnVlIGV4cHJlc3Npb25zLCB3aGVuCiAgIHRoaXMKICAgaW5pdGlhbCBmaXJpbmcgaXMgc3VwcHJlc3NlZCB1c2luZyB0aGUgbXRlVHJpZ2dlcipTdGFydHVwIG9iamVjdC4KICAgV2l0aG91dCB0aGlzIHR3ZWFrLCB0aGUgdHJpZ2dlciB3aWxsIGZpcmUgb24gdGhlIHNlY29uZCBzYW1wbGluZwogICAoYXMgaWYgdGhlIGV4cHJlc3Npb24gaGFkIGV2YWx1YXRlZCBmYWxzZSBmaXJzdCB0aW1lIHJvdW5kKS4KCjIwMDgtMDYtMDEgMjA6MDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaDoKCiAgIEhhbmRsZSB2YXJiaW5kIHBheWxvYWQgZm9yIGludGVybmFsIGxpbmtVcC9Eb3duIG5vdGlmaWNhdGlvbnMuCgoyMDA4LTA2LTAxIDA2OjQ1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIE5FV1M6IHNubXB0cmFwZDogQlVHOiAxOTU1MjI3OiBNZW1vcnkgbGVhayBmb3IgZW1iZWRkZWQgUGVybCBvbgogICB4ODZfNjQKCjIwMDgtMDUtMzEgMTI6MDggIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogVGhlIHNjYWxhciBoZWxwZXIgdGhhdCB3YXMgY2FsbGVkIGZyb20gdGhlCiAgIHNjYWxhcl9ncm91cCBoZWxwZXIgZGlkIG5vdGhpbmcgc2F2ZSBhZGRpbmcgYSB0cmFpbGluZyAwIHRvIHRoZQogICBhcmd1bWVudC4gUmVtb3ZlIHRoZSB1c2Ugb2YgdGhlIHNjYWxhciBoZWxwZXIgZnJvbSB0aGUKICAgc2NhbGFyX2dyb3VwIGFuZCBhZGQgdGhlIHRyYWlsaW5nIDAgaW4gdGhlIHNjYWxhcl9ncm91cCBoZWxwZXIuCgoyMDA4LTA1LTMwIDEzOjU2ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgVHdlYWsgbGlzdCBvZiBvbi1saW5lIHNvZnR3YXJlIGRpcmVjdG9yaWVzIHRvIGJlIHVwZGF0ZWQuCgoyMDA4LTA1LTI5IDA5OjU5ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCBhcHBzL3NubXB0ZXN0LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgVmFyaW91cyBtaXNzaW5nIGVycm9yIGNoZWNrcywgZXRjLgogICBSZXBvcnRlZCBieSBCb3lhIFN1bi4KCjIwMDgtMDUtMjggMTE6NDggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBSZXBvcnQgY2FjaGVkIG1lbW9yeSBzaXplL3VzYWdlIHByb3Blcmx5IChwYXJ0aWN1bGFybHkgb24KICAgRnJlZUJTRCkuCgoyMDA4LTA1LTI4IDExOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEJyaW5nIG1lbUJ1ZmZlciBjb2RlIGludG8gbGluZSB3aXRoIHJldmlzaW9uIDE2OTc1LgoKMjAwOC0wNS0yOCAxMToxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgTGludXggMi42IGtlcm5lbCBkb2VzIG5vdCByZXBvcnQgc2hhcmVkIG1lbW9yeSBpbmZvcm1hdGlvbi4KCjIwMDgtMDUtMjggMDk6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE5MzEzOTE6IEZpeCByZXBvcnRpbmcgb2YgTWVtb3J5IGJ1ZmZlcnMgYW5kCiAgIGNhY2hlZCBtZW1vcnkuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgZG9jb25laWxsLgoKMjAwOC0wNS0yOCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBUd2VhayB0aGUgZml4IGZvciBidWcgIzE5MTI2NDcKCjIwMDgtMDUtMjggMDY6NTYgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRW5mb3JjZSB0aGUgbG93ZXIgbGltaXQgb24gc2NhbGFyX2dyb3VwcwogICBUaGlzIGZpeGVzIHRoZSBjYXNlIG9mIGdldG5leHQgaWNtcC4wIHJldHVybmluZyBpY21wLjAuMCBpbnN0ZWFkCiAgIG9mIHRoZQogICBleHBlY3RlZCBpY21wSW5Nc2dzLjAKCjIwMDgtMDUtMjcgMjI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxOTEyNjQ3OiBGaXggbWVtb3J5IGxlYWsgZm9sbG93aW5nIGZhaWxlZAogICByZXF1ZXN0cy4KICAgRml4IHByb3ZpZGVkIGJ5IEFudG9uIFBhawoKMjAwOC0wNS0yNyAyMToyMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxOTU4MDQxOiBFbnN1cmUgSURzIGFyZSBub3QgdHJ1bmNhdGVkLgoKMjAwOC0wNS0yNyAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmM6CgogICBNb25pdG9yIG1lbW9yeSBidWZmZXJzIG9uIEZyZWVCU0Qgc3lzdGVtcy4KICAgQVBJIHN1Z2dlc3RlZCBieSBDaHJpcwoKMjAwOC0wNS0yNyAxMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIEZpeCBjYXJlbGVzcyB0eXBvIHdoZW4gYXBwbHlpbmcgTWF4aW0ncyBwYXRjaC4KCjIwMDgtMDUtMjUgMjE6MzcgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUmVpbXBsZW1lbnRhdGlvbiBvZiB1c21TdGF0cy4KCjIwMDgtMDUtMjUgMDc6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYzoKCiAgIFJlbW92ZSBhIGxvY2FsIHZhcmlhYmxlIG9ubHkgdXNlZCB0byB0cmFjayBhIGxvY2FsIHN0cmluZwogICBjb25zdGFudCBhbmQgcmVwbGFjZSB0IHdpdGggYSBkaXJlY3QgcmVmZXJlbmNlIHRvIHRoZSBzdHJpbmcKICAgY29uc3RhbnQuCiAgIE1hcmsgdHdvIGxvY2FsIGZ1bmN0aW9ucyBzdGF0aWMgYXMgd2VsbC4KCjIwMDgtMDUtMjUgMDc6MTcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIFJlb3JkZXIgdG8gYXZvaWQgb25lIHN0cmxlbiBjYWxsLgogICBBZGQgbWlzc2luZyBjYXN0LgoKMjAwOC0wNS0yNSAwNzoxNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIE1ha2UgaXBmd19uYW1lIGEgc3RhdGljIGFycmF5IGluc3RlYWQgb2YgYSBwb2ludGVyIGFzIGl0IGlzCiAgIHByaXZhdGUgdG8gdGhpcyBtb2R1bGUuCgoyMDA4LTA1LTI1IDA3OjA1ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBXaGVuIGNhc3RpbmcsIGNhc3QgdG8gdGhlIHJpZ2h0IHR5cGUuCgoyMDA4LTA1LTI1IDA2OjA4ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzIGFib3V0IHVucmVhY2hhYmxlIGNvZGUgb24gc29sYXJpcy4KCjIwMDgtMDUtMjQgMjA6MzAgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMTgyNjE3NDogQ2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyB3aGVuCiAgIHByaW50aW5nIHZhbHVlcy4KICAgQWRkcmVzc2VzIENWRS0yMDA4LTIyOTIKCjIwMDgtMDUtMjQgMTM6MTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT24gQUlYIG5ldGluZXQvaW5fcGNiLmggZGVwZW5kcyBvbiBuZXQvcm91dGUuaC4gQWRkIHRoZSBpbmNsdWRlCiAgIGZvciBjb25maWd1cmUuCgoyMDA4LTA1LTI0IDA5OjA2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNYWtlIHRoZSBjaGVja3MgZm9yIG5ldGluZXQvaW5fcGNiLmggYW5kIHN5cy9kaXNrbGFiZWwuaCB1c2UgdGhlCiAgIG5vcm1hbAogICBtYWNoaW5lcnkuCiAgIEFkZCBhIG5ldHNubXAgcHJlZml4IHRvIHRoZSBjYWNoZSB2YXJpYWJsZQogICBjdl9zeXNfaW9jdGxfaF9oYXNfU0lPQ0dJRkFERFIgdG8KICAgcGFjaWZ5IGFjbG9jYWwuCgoyMDA4LTA1LTIzIDIwOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IEZpeCBmb3IgQ1BVIHN0YXRzIG9uIEZyZWVCU0QKICAgUHJvdmlkZWQgYnkgTWF4aW0gU29ib2xldgoKMjAwOC0wNS0yMyAyMDoxMiAgZHRzMTIKCiAgICogZGlzdC9zbm1wZC1pbml0LmQsIGRpc3Qvc25tcHRyYXBkLWluaXQuZDoKCiAgIENIQU5HRVM6IGluc3RhbGw6IFBBVENIOiAxOTY5NjI3OiBIYW5kbGUgZW1wdHkKICAgL2V0Yy9zeXNjb25maWcvbmV0d29yayBmaWxlCiAgIEZpeCBwcm92aWRlZCBieSBKb3NoIFdpbG1lcwoKMjAwOC0wNS0yMyAyMDowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5NjcxOTQ6IFJlY29nbmlzZSBORlM0IG1vdW50cwogICBTdWJtaXR0ZWQgYnkgRmFicmljZSBCYWNjaGVsbGEKCjIwMDgtMDUtMjIgMjA6NTUgIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG9uJ3QgY2hhbmdlIGxlbmd0aCBvZiBPSUQgYnVmZmVyIGlmIHBhcnNpbmcgdGhlIE9JRCBmYWlscy4KICAgUmVwb3J0ZWQgYnkgc2FpZnVsbGEgTW9oZCBBYmR1bC4KCjIwMDgtMDUtMjIgMTM6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlIHRoZSBhZHZlcnRpc2luZyBzZWN0aW9uIGFuZCBjaGFuZ2Ugbm90ZSBhYm91dCBob3cgdG8KICAgdXBsb2FkIGZpbGVzIChhZGRpbmcgYW4gYXV0b21hdHRlZCByc3luYyBjb21tYW5kKQoKMjAwOC0wNS0yMiAwNDowOCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlLgoKMjAwOC0wNS0yMSAyMDoyNyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgdGhlIGFsaWFzIG1vZHVsZSB3aXRoIGEgQysrIGNvbXBpbGVyLgoKMjAwOC0wNS0yMSAxMzo0MCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGRlZCBGU0YgZGlyZWN0b3J5IGluZm8KCjIwMDgtMDUtMjEgMDk6MjEgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBBZGQgRnJlZSBTb2Z0d2FyZSBEaXJlY3RvcnkgdG8gdGhlIGxpc3Qgb2YgcGxhY2VzIHRvIGJlIHVwZGF0ZWQuCgoyMDA4LTA1LTIwIDIzOjAwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFRoZSBtYWpvcml0eSBvZiB0aGUgZGVwZW5kZW5jaWVzIG9uIHV0aWxfZnVuY3MgaXMKICAgZm9yIHRoZSBoZWFkZXJfKiBmdW5jdGlvbnMuIEZhY3RvciBvdXQgdGhlIGhlYWRlcl8qIGZ1bmN0aW9ucyBhbmQKICAgYWRqdXN0IHRoZSByZXF1aXJlbWVudHMuCgoyMDA4LTA1LTIwIDIyOjQwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oLCBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmgsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IERvIG5vdCBjb25maWdfcmVxdWlyZSh1dGlsX2Z1bmNzKSBpZiBub3RoaW5nIGZyb20KICAgdXRpbF9mdW5jcyBpcyB1c2VkCgoyMDA4LTA1LTE0IDEzOjM1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGZpeCBidWlsZCBmYWlsdXJlcyB3aXRoIGVhcmxpZXIgTGludXgga2VybmVscyAoZS5nLiB3aXRoIFJINy4xKQogICBpbnRyb2R1Y2VkIGJ5IHIxNjkwOQoKMjAwOC0wNS0xMyAxODo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBjb21tZW50IHR5cG8KCjIwMDgtMDUtMTMgMTU6NDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCB0aGUgLXQgc3dpdGNoIGNoYW5nZQoKMjAwOC0wNS0xMyAxNTo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgYWxpYXMga2V5d29yZAoKMjAwOC0wNS0xMyAxNTo0MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBhbGxvdyBmbG9hdGluZyBwb2ludCBudW1iZXJzIHRvIGJlIHVzZWQgZm9yIHRpbWVvdXQgdmFsdWVzCgoyMDA4LTA1LTEyIDIxOjExICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dCwgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYzoKCiAgIEFkZGVkIGEgcmVhbCBzbm1wQWxpYXNEb21haW4gT0lEIGRlZmluaXRpb24KCjIwMDgtMDUtMTIgMjE6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGVkIE5FV1Mgd2l0aCBuZXcgYWxpYXMgYmx1cmIKCjIwMDgtMDUtMTIgMjE6MDcgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBbGlhc0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBtYW4vc25tcC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBzbm1wbGliOiBBZGRlZCBhIGFsaWFzIHRyYW5zcG9ydCBmb3IgbWFwcGluZyBjb21wbGV4CiAgIHRyYW5zcG9ydCBzdHJpbmdzIHRvIHNpbXBsZSBuYW1lIGRlZmluaXRpb25zCgoyMDA4LTA1LTEyIDE5OjM4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHN0cmlwIG9mZiB0cmFpbGluZyBtb2R1bGUgbmFtZQoKMjAwOC0wNS0xMiAwNjowMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIE1ha2UgbWliSUkvc25tcCB3b3JrIGFnYWluLgoKMjAwOC0wNS0xMCAyMTo0NyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwOC0wNS0xMCAwOTo1NSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IFJlcGxhY2UgdGhlIGludmFsaWQgJTA4cCBmb3JtYXQKICAgc3BlY2lmaWVyIHdpdGggdGhlIGNvcnJlY3QgJThwLgoKMjAwOC0wNS0xMCAwOTo1MSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcG5ldHN0YXQsIHNubXB0cmFwZCwgc25tcGRlbHRhOiBVc2UgTlVMTAogICBpbnN0ZWFkIG9mIDAgZm9yIE5VTEwgcG9pbnRlcnMuIFVzZSBjYXN0ZWQgMCdzIGluc3RlYWQgb2YgMCBmb3IKICAgTlVMTCBmdW5jdGlvbiBwb2ludGVycy4KCjIwMDgtMDUtMTAgMDk6NDAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgoyMDA4LTA1LTEwIDA5OjM5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBpbmNsdWRlIGZpbGVzLgoKMjAwOC0wNS0xMCAwOTozMyAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliLCBtaWIyYzogTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiBpbmxpbmUKICAgZnVuY3Rpb25zIHNvIHRoYXQgdGhlIGNvbXBpbGVyIHNlZXMgdGhlbSBiZWZvcmUgaXQgc2VlcyB1c2VzIG9mCiAgIHRoZW0uCgoyMDA4LTA1LTEwIDA5OjMwICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaDoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBSZW1vdmUgdGhlIGlubGluZSBkZWNsYXJhdGlvbnMgZm9yCiAgIGZ1bmN0aW9ucyB0aGF0IGxhY2sgYW4gaW5saW5lIGRlZmluaXRpb24uCgoyMDA4LTA1LTA5IDIxOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgCiAgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgIAogICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAKICAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYjogVXNlIE5VTEwgaW5zdGVhZCBvZiAwIGZvciBOVUxMIHBvaW50ZXJzLgogICBVc2UgY2FzdGVkIDAncyBpbnN0ZWFkIG9mIDAgZm9yIE5VTEwgZnVuY3Rpb24gcG9pbnRlcnMuCgoyMDA4LTA1LTA5IDIxOjI3ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgCiAgICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IGZpeHVwcyBmb3IgcHJvdG90eXBlIFsodm9pZCkgcmVwbGFjaW5nCiAgICgpXS4KCjIwMDgtMDUtMDkgMjE6MjMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jOgoKICAgUmVtb3ZlIGRlYWQgY29kZS4KCjIwMDgtMDUtMDkgMTk6MTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBNaXNzaW5nIE1ENSBzaWduYXR1cmUgZmlsZSBmb3IgemlwIHJlbGVhc2UKCjIwMDgtMDUtMDkgMTk6MTUgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBCYXNpYyBkb2N1bWVudGF0aW9uIGFuZCBoZWxwL3VzYWdlIG1lc3NhZ2VzLgoKMjAwOC0wNS0wOCAxNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRHJvcCBzdXBwb3J0IGZvciB0aGUgaW50ZXJpbSBTSU9DREVWUFJJVkFURS1iYXNlZCBpb2N0bCBjYWxscy4KICAgU0lPQ0dNSUlQSFkvU0lPQ0dNSUlSRUcgaGF2ZSBiZWVuIGRlZmluZWQgc2luY2UgYXQgbGVhc3QgU2VwdAogICAyMDAxIChrZXJuZWwgMi40LjEwKSwKICAgc28gdGhlIHJpc2sgb2YgY2FsbGluZyBhbiBpbmFwcHJvcHJpYXRlIHByaXZhdGUgaW9jdGwgaXMgcHJvYmFibHkKICAgZ3JlYXRlciB0aGFuCiAgIHRoYXQgb2YgbWlzc2luZyBpbmZvcm1hdGlvbiBmcm9tIGFuIGFuY2llbnQgc3lzdGVtLgoKMjAwOC0wNS0wOCAwOTowMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG9uJ3QgdHJ5IHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFub255bW91cyB1c2Vycy4KICAgKEFuIGludmFsaWQgdHJhcHNlc3MgZGlyZWN0aXZlIG1heSBjcmFzaCB0aGUgYWdlbnQpCgoyMDA4LTA1LTA2IDA4OjM4ICBqc2FmcmFuZWsKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSByZW1vdmUgJXtsaWJjdXJyZW50fQogICAtIGFkZCBvcGVuc3NsLWRldmVsIHRvIGJ1aWxkIHJlcXVpcmVtZW50cwogICAtIGRvbid0IHVzZSBQcm92aWRlczogdW5sZXNzIG5lY2Vzc2FyeSwgbGV0IHJwbWJ1aWxkIGNvbXB1dGUgdGhlCiAgIHByb3ZpZGVkIGxpYnJhcmllcwogICAtIGRvbid0IHNwZWNpZnkgUFJFRklYIGZvciBwZXJsCgoyMDA4LTA1LTA2IDA4OjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgcmV2ZXJ0aW5nIGFjY2lkZW50YWx5IGNvbW1pdGVkIGZpbGVzCgoyMDA4LTA1LTA2IDA4OjM0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSByZW1vdmUgJXtsaWJjdXJyZW50fQogICAtIGFkZCBvcGVuc3NsLWRldmVsIHRvIGJ1aWxkIHJlcXVpcmVtZW50cwogICAtIGRvbid0IHVzZSBQcm92aWRlczogdW5sZXNzIG5lY2Vzc2FyeSwgbGV0IHJwbWJ1aWxkIGNvbXB1dGUgdGhlCiAgIHByb3ZpZGVkIGxpYnJhcmllcwogICAtIGRvbid0IHNwZWNpZnkgUFJFRklYIGZvciBwZXJsCgoyMDA4LTA1LTA1IDIxOjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE1lY2hhbmlzbSB0byBzZWxlY3QgdXBjb21pbmcgbW9kdWxlIHJlLXdyaXRlcyBhbmQvb3IKICAgcmVjZW50bHktZGVwcmVjYXRlZCBtb2R1bGVzLgoKMjAwOC0wNS0wMiAxMDoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgSGFuZGxlIHVkcFRhYmxlIGluZGV4aW5nIG9uIGJvdGggUFBDIGFuZCBJbnRlbCBoYXJkd2FyZS4KCjIwMDgtMDQtMzAgMTk6NDUgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIHRoZSBzdXBwb3J0IGZvciBnZW5lcmF0aW9uIG9mIHN0YXRpc3RpY3MKICAgb2YgaG93IG9mdGVuIGEgY2VydGFpbiBkZWJ1ZyBsb2cgbGV2ZWwgaXMgdHJpZ2dlcmVkLgoKMjAwOC0wNC0zMCAxOTo0MSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIHZhcmlhYmxlIGRlYnVnX251bV9leGNsdWRlZC4KICAgVGhlcmUgaXMgbm90aGluZyB0aGF0IHNldHMgZGVidWdfbnVtX2V4Y2x1ZGVkIGFuZCB0aGVyZSBpcyBubyB3YXkKICAgdG8gZm9yIGl0CiAgIHRvIGFmZmVjdCB0aGUgcmVzdWx0IG9mIGFueSBmdW5jdGlvbi4KCjIwMDgtMDQtMzAgMDU6MjggIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgUmVtb3ZlIHVubmNlc3NhcnkgcHJvdG90eXBlcwoKMjAwOC0wNC0yMyAxNjozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhY3R1YWxseSB1c2UgdGhlIGJyYW5jaCBwYXRoLCBkb24ndCBqdXN0IHNheSB5b3UncmUgZ29pbmcgdG8KCjIwMDgtMDQtMTkgMjI6MjAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBkb24ndCBkZXBlbmQgb24gT0lEIHJlc29sdXRpb24gZm9yIGRpc21hbiBsaW5rVXBEb3duTm90aWZpY2F0aW9ucwoKMjAwOC0wNC0wOCAyMDo0MyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBBY2NlcHQgdGhhdCBwZW9wbGUgd2lsbCB0cnkgdG8gY29tcGlsZSB0aGlzIGNvZGUgd2l0aCBwcmUtQU5TSQogICBjb21waWxlcnMgYW5kIGNoYW5nZSBpdCB0byBoYW5kbGUgdGhhdCBjYXNlLgoKMjAwOC0wNC0wOCAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGFuIGV4dHJhIGJyYWNlIGluIHRoZSBkb2NzIHBvaW50ZWQgb3V0IGJ5CiAgIEphc29uIE1hcnRpbgoKMjAwOC0wNC0wOCAyMDozNCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICB1cGRhdGUgYW5kIHJlc3RydWN0dXJlIGEgYml0IHRvIGZpeCBhIGZldyBwcm9ibGVtcwoKMjAwOC0wNC0wNyAyMDowNiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQXMgdGhlIG51bGwgaGFuZGxlciBpcyBwZXJmZWN0bHkgY2FwYWJsZSBvZgogICBoYW5kbGluZyBHRVRfQlVMSyByZXF1ZXN0cyBpdCBpcyBub3cgbWFya2VkIGFzIHN1Y2ggaW4gdGhlCiAgIHJlZ2lzdHJhdGlvbi4KCjIwMDgtMDQtMDcgMTQ6MDAgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFub3RoZXIgb3Zlci1zaG9ydCBERVNDUklQVElPTiBidWZmZXIuCgoyMDA4LTA0LTA3IDEzOjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBIYW5kbGUgbG9uZ2VyIERFU0NSSVBUSU9OL1JFRkVSRU5DRSBzdHJpbmdzIGluIENhcGFiaWxpdGllcwogICBzdGF0ZW1lbnRzLgogICAoQ29uc2lzdGVudCBwcm9jZXNzaW5nIHdpdGggb3RoZXIgTUlCIGRlZmluaXRpb24gbWFjcm9zKS4KICAgRml4IHByb3ZpZGVkIGJ5IEFsZWtzYW5kciBMb21hbm92LgoKMjAwOC0wNC0wMiAxOTozNSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWVudGlvbiBsaWJlbGYgcGFja2FnZSByZW5hbWUKCjIwMDgtMDMtMjkgMDk6MjkgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIAogICAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3N5c09SVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBORVdTOiBzbm1wZDogRW5hYmxlIGF1dG9tYXRpYyByZXJlZ2lzdGVyaW5nIG9mIHN5c09SVGFibGUgZW50cmllcwogICBmcm9tIEFnZW50WCBzdWJhZ2VudHMuIEFkZCB0aGUgc3lzT1JUYWJsZSBpbnRlcmZhY2UgdG8gdGhlCiAgIGluY2x1ZGUgZGlyZWN0b3J5LiBSZXdyaXRlIHRoZSBzeXNPUlRhYmxlIG1vZHVsZSB0byB1c2UgdGhlCiAgIHRhYmxlX2NvbnRhaW5lciBoYW5kbGVyLgoKMjAwOC0wMy0yNyAwMzoyMSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZSwgZGlzdC9uZXQtc25tcC5zcGVjLCBkaXN0L3BhdG1lOgoKICAgdW5jb21taXQgMyBhY2NpZGVudGFsIG11bHRpcGxlIGZpbGUgY29tbWl0cwoKMjAwOC0wMy0yNyAwMzoxOCAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UsIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIGRpc3QvcGF0bWU6CgogICB2YXJpb3VzIHJld29yZGluZywgcmVzdHJ1Y3R1cmluZyBhbmQgcHJvcGVyIGZpbGUgcmVwbGFjZW1lbnQKICAgc2NoZW1lCgoyMDA4LTAzLTI2IDA3OjUyICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBORVdTOiBzbm1wbGliOiBmcm9tICJBbGVrc2FuZHIgTG9tYW5vdiI6IENvcnJlY3RlZCByZWdpc3RlcmluZyBvZgogICBtdWx0aXBsZSBwcmVtaWIgY29uZmlnIGhhbmRsZXJzIHNvIHRoYXQgYWxsIG9mIHRoZW0gZ2V0CiAgIHJlZ2lzdGVyZWQgYXMgcHJlbWliIGhhbmRsZXJzIGFzIG9wcG9zZWQgdG8gdGhlIGVhcmxpZXIgYmVoYXZpb3VyCiAgIHdoZXJlIHRoZXkgYWx3YXlzIGdvdCByZWdpc3RlcmVkIGFzIG5vcm1hbCBjb25maWcgaXRlbXMuCgoyMDA4LTAzLTI2IDA3OjE2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEdldCB0aGUgdGFibGVfY29udGFpbmVyIGRhdGEgZnJvbSB0aGUgcmlnaHQKICAgaGFuZGxlciB3aGVuIHVucmVnaXN0ZXJpbmcgYSB0YWJsZV9jb250YWluZXIuCgoyMDA4LTAzLTI1IDA2OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVtb3ZlIHNwdXJpb3VzIHByaW50ZiBmcm9tIHVucmVnaXN0ZXJfbWliX2NvbnRleHQKCjIwMDgtMDMtMjQgMTc6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogMTg3NDA1OSwxNzM3MDY4OiBIYW5kbGUgTUlCIG9iamVjdHMgd2l0aAogICBlbWJlZGRlZCBoeXBoZW5zCgoyMDA4LTAzLTI0IDE3OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTg2NjY1NTogSGFuZGxlIHBhcnNpbmcgaW52YWxpZCBPSUQKICAgc3ViaWRlbnRpZmllcnMKCjIwMDgtMDMtMjQgMTY6NTMgIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDE5MjE4NjE6IEF2b2lkIGVuZGxlc3MgbG9vcCBhZnRlcgogICB0cnVuY2F0aW5nIDY0Yml0IGludAoKMjAwOC0wMy0yNCAxNTowMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODIzMzgxOiBWYWxpZCBNSUIgZGlyZWN0b3J5IHNlYXJjaCBwYXRoIG9uCiAgIFdpbmRvd3MKCjIwMDgtMDMtMjIgMDg6NDIgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHNubXB0cmFwZCB3aXRob3V0IGVtYmVkZGVkIHBlcmwgYWdhaW4uCgoyMDA4LTAzLTIxIDE3OjU1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIE5FV1M6IGxpYnNubXA6IFBBVENIOiAxODk1OTI3OiBmcm9tIGpodW04MTExOiBjaGFuZ2Ugb2Jzb2xldGUKICAgcmVjdi9zZW5kIHRvIHJlY3Zmcm9tL3NlbmR0bwoKMjAwOC0wMy0yMSAxNzo0OSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDE4NjIxNzc6IGZyb20gd2FmZmxlc291ZmZsZTogbWFkZSBjb2RlCiAgIG1vcmUgd2luZG93cy9jeWd3aW4gY29tcGlsZXIgZnJpZW5kbAoKMjAwOC0wMy0yMSAxNzo0NSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMTg3Nzg0MDogZml4IE1JQiBsYWJlbCBhbmQgaW5kZXhpbmcgZHVlCiAgIHRvIHNsaWdodGx5IGJyb2tlbiByZWdleHAKCjIwMDgtMDMtMjEgMTc6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MjAzOTA6IGZyb20gd2lsbWVzajogZml4IHJlZ2lzdHJhdGlvbiBvZgogICB0YWJsZXMgd2l0aCAuMCBhcyBJSURzCgoyMDA4LTAzLTIxIDE3OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0NjQ1OiBmcm9tIHdpbG1lc2o6IGJldHRlciBlbmQgb2YgbWliCiAgIHN1cHBvcnQKCjIwMDgtMDMtMjEgMTc6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDY0MzogZnJvbSB3aWxtZXNqOiBmaXggaXNzdWVzIHdpdGgKICAgZW1iZWRkZWQgcGVybCByZXR1cm5pbmcgMCBiZWluZyByZWNsYXNzaWZpZWQgYXMgYSB3cm9uZyBkYXRhIHR5cGUKICAgd2hlbiBhbiBpbnQgd29ya3MuCgoyMDA4LTAzLTIxIDE3OjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSCAxOTE0Mzk4OiBmcm9tIHdpbG1lc2o6IGluc3RhbGwKICAgbWliMmMucGVybC5jb25mCgoyMDA4LTAzLTIxIDE3OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0MzkzOiBmcm9tIHdpbG1lc2o6IHJlZ2lzdGVyQWdlbnQgY2FuCiAgIG5vdyBiZSBydW4gbXVsdGlwbGUgdGltZXMKCjIwMDgtMDMtMjEgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkwOTgxMzogZml4IHRhYmxlX2l0ZXJhdG9yIGhpbnQgdG8gZ2V0X2ZpcnN0CiAgIHdoZW4gU09SVEVEIGZsYWcgaXMgc2V0CgoyMDA4LTAzLTIxIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5FV1M6IHNubXB0cmFwZDogUEFUQ0g6IDE5MDgyODg6IGZyb20gYW5lZGVsOiBJZiBzbm1wdHJhcGQgLWYKICAgaW50ZXJydXB0ZWQgd2l0aCBjdHJsLUMgcnVuIHBlcmwgRU5EIGJsb2NrCgoyMDA4LTAzLTIxIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTkwMjExMzogZnJvbSBqc2FmcmFuZWs6IGZpeCBlcnJvciBsb2cgaW4KICAgaW5ldE5ldFRvTWVkaWF0YWJsZQoKMjAwOC0wMy0yMSAxNjoxMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTkwMjEwNTogZnJvbSBqc2FmcmFuZWs6IGhpZGUgYW5kIGltcHJvdmUgZGVidWcKICAgbG9nIG1lc3NhZ2VzIGNyZWF0ZWQgYnkgcGF0Y2ggMTcwNTU5NAoKMjAwOC0wMy0wNyAxNTo0MiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaDoKCiAgIEhBTC1iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaHJGU1RhYmxlLgoKMjAwOC0wMy0wNyAxNTo0MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tb3VudHMuaDoKCiAgIEluaXRpYWwgSEFMIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24KCjIwMDgtMDMtMDcgMTU6MzUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIGdldHZmc3N0YXQoKQoKMjAwOC0wMy0wNyAxNTozNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODIzMzgxOiBVc2UgYSBzZW5zaWJsZSBkZWZhdWx0IE1JQkRJUiBwYXRoCiAgIG9uIEN5Z3dpbi9NaW5HVwogICAoU2hvdWxkIHRoaXMgYmUgYXBwbGllZCB0byBvdGhlciBicmFuY2hlcz8gSWYgc28sIHdoaWNoPykKCjIwMDgtMDItMjcgMjI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBGaXggQysrIHN0eWxlIGNvbW1lbnQKCjIwMDgtMDItMjcgMDc6NDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgVGhlIExWTSBkaXNrIHBhdGNoIGludHJvZHVjZWQgYSBtZW1vcnkgbGVhay4gVGhpcyByZW1vdmVzIHRoZQogICBsZWFrLgoKMjAwOC0wMi0yNiAyMzoyNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBtYWtlIHRoZSBzY3JpcHQgbW9yZSBoaWVyYXJjaGlhbC9zdHJ1Y3R1cmVkCgoyMDA4LTAyLTI2IDIxOjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBDSEFOR0VTOiBJbml0YWxpemUgbG9nIHN1YnN5c3RlbQoKMjAwOC0wMi0yNiAyMTozNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IEZpeCBmb3IgcmVmcyB0byBPQkpFQ1QtR1JPVVAgaW4gYW5vdGhlciBNSUIKCjIwMDgtMDItMjYgMjE6MjMgIG5iYQoKICAgKiAgbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dCwgbWlicy9ESVNNQU4tRVhQUkVTU0lPTi1NSUIudHh0LCAgIAogICAgICBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwgbWlicy9JUC1NSUIudHh0LCAgIAogICAgICBtaWJzL0lQVjYtRkxPVy1MQUJFTC1NSUIudHh0LCBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dCwgICAKICAgICAgbWlicy9TTk1QLVVTTS1BRVMtTUlCLnR4dCwgbWlicy9TTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQi50eHQsICAgCiAgICAgIG1pYnMvVFJBTlNQT1JULUFERFJFU1MtTUlCLnR4dCwgbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIFVwZGF0ZSB0byBhdXRvZXh0cmFjdGVkIG1pYiBmaWxlcyAoYmxhbmsgbGluZSBjaGFubWdlcykKCjIwMDgtMDItMjYgMjA6NDYgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9pYW5hbGlzdCwgbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIGZvciBjdXJyZW50bHkgcmVsZWFzZWQgUkZDIE1JQlMKCjIwMDgtMDItMjYgMjA6NDUgIG5iYQoKICAgKiAgbWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwgICAKICAgICAgbWlicy9JQU5BLUxBTkdVQUdFLU1JQi50eHQsIG1pYnMvSUFOQS1SVFBST1RPLU1JQi50eHQsICAgCiAgICAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIElBTkEgTUlCUyB0byBjdXJyZW50IHZlcnNpb24KCjIwMDgtMDItMjUgMjI6MjEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgYWRkIG1pc3NpbmcgI2luY2x1ZGU8cHRocmVhZC5oPiBmb3IgcHRocmVhZF9tdXRleF90CgoyMDA4LTAyLTI1IDIyOjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jOgoKICAgYSBiZXR0ZXIgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTIzIDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTcwNTU5NDogZnJvbSBjX3ZhcnVuOiBGaXggdmFyaW91cyBhc3BlY3RzIG9mCiAgIGxpbnV4IGlwQWRkcmVzc1ByZWZpeFRhYmxlIHJlcG9ydGluZy4KCjIwMDgtMDItMjIgMjM6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg5NjExODogcGF0Y2ggZnJvbSBqc2FmcmFuZWs6IGZpeCBpZlRhYmxlCiAgIDMyYml0IGNvdW50ZXJzIG9uIGxpbnV4CgoyMDA4LTAyLTIyIDIzOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jOgoKICAgcGF0Y2ggZnJvbSBqc2FmcmFuZWs6IENyZWF0ZSBpcHY2U2NvcGVab25lRW50cnkgb25seSBmb3IKICAgbGluay1sb2NhbCBhZGRyZXNzZXMgYW5kIG9ubHkgb25jZSBwZXIgaW50ZXJmYWNlLgoKMjAwOC0wMi0yMiAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogUEFUQ0g6IDE4OTgyMDQ6IGZyb20gTWlrZSBXZXNjb3R0OiBmaXggYnVnCiAgIDE4OTgxOTggaW4gcGFyc2UuYyB0byBhdm9pZCBhIHNlZ2ZhdWx0IHdoZW4gcGFyc2luZyBicm9rZW4gbWlicy4KCjIwMDgtMDItMTggMTI6MTEgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ2xhcmlmeSB0aGUgbmVlZCB0byByZXNldCBidWZmZXIgbGVuZ3RoIHdoZW4gY2FsbGluZyAncmVhZF9vYmppZCcKICAgcmVwZWF0ZWRseS4KCjIwMDgtMDItMTggMTA6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTggMDc6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmM6CgogICBtYWtlIHN1cmUgdGhhdCBuZXRzbm1wX2lxdWVyeV91c2VyX3Nlc3Npb24gZXQgYWwuIGFyZSBwcm9wZXJseQogICBkZWNsYXJlZAoKMjAwOC0wMi0xNyAxODowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDgtMDItMTcgMDg6MzggIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHBvcnRhYmlsaXR5IGZpeAoKMjAwOC0wMi0xNSAxNzo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgbG93ZXJlZCBmYWlsdXJlIG1lc3NhZ2UgdG8gaW5zZXJ0IHRvIGRlYnVnOyByZW1vdmVkIENWUyBJRCBmcm9tCiAgIHRvcCBvZiBsaW5lCgoyMDA4LTAyLTE1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBkb24ndCBpbnNlcnQgZW1wdHkgZW50cmllcwoKMjAwOC0wMi0xNSAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgcGF0Y2ggZnJvbSBqc2FmcmFuZSBvbiBpcmM6IG1ha2UgaXB2NiBlbnRyaWVzIHdvcmsgb24gNjQgYml0CiAgIG1hY2hpbmVzCgoyMDA4LTAyLTE1IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHBhc3MgMSBhdCBhIG5ldyBtYWtlcmVsZWFzZSBzY3JpcHQ7IGN1cnJlbnRseSBqdXN0IGNvbnZlcnRlZCBjb2RlCiAgIG1vc3RseQoKMjAwOC0wMi0xNSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICByZW1vdmUgbGludXggY2hlY2tzCgoyMDA4LTAyLTE1IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICByZW1vdmUgcmVmZXJlbmNlcyB0byBSREFfUlRBCgoyMDA4LTAyLTE1IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBkb24ndCBjb21waWxlIGluIHRoZSBpcHY2IGNvZGUgaWYgTkRBX1JUQSBpc24ndCBkZWZpbmVkCgoyMDA4LTAyLTE1IDEzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTUgMDY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIG1pbm9yIGJ1ZyB1cGRhdGUgZnJvbSBjX3ZhcnVuCgoyMDA4LTAyLTE1IDA1OjEzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzA0MTA1OiBmcm9tIGNfdmFydW46IEFkZCBJUHY2IHN1cHBvcnQgdG8KICAgdGhlIGluZXROZXRUb01lZGlhVGFibGUgZm9yIGxpbnV4CgoyMDA4LTAyLTE1IDA1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIHJlcXVpcmUgbmV3IGlwdjZTY29wZVpvbmVJbmRleFRhYmxlIHRhYmxlCgoyMDA4LTAyLTE1IDA1OjAwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZW51bXMuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9vaWRzLmgsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc2NvcGV6b25lLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MTU0MDU6IGZyb20gY192YXJ1bjogSW1wbGVtZW50IHRoZQogICBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSBvbiBsaW51eAoKMjAwOC0wMi0xNSAwNDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcxNjU0ODogZnJvbSBteWFtYXRvOiBGaXggaGVscCBvdXRwdXQgc28KICAgbm8gc3BhY2UgaXMgcHJpbnRlZCBiZXR3ZWVuIC1EIGFuZCBhcmd1bWVudHMuCgoyMDA4LTAyLTE1IDA0OjI3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MjM2MTE6IGZyb20gRW1pIFlhbmFnaTogTmV3IGltcGxlbWVudGF0aW9uCiAgIG9mIHRoZSBybW9uIGFsYXJtVGFibGUKCjIwMDgtMDItMTUgMDM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4OTM0Njg6IGZyb20gZ2tvZW5pZzogZml4ZWQgcmVnaXN0cmF0aW9uIG9mCiAgIE9JRHMgd2l0aCByYW5nZXMKCjIwMDgtMDItMTQgMjE6NDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbiAodW5icmVha3MgdGhlIGJ1aWxkIG9uIGEgZmV3CiAgIHN5c3RlbXMpCgoyMDA4LTAyLTE0IDAwOjI5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUgZm9yIHNwYXJ0YQoKMjAwOC0wMi0xMyAyMzozNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIENPTlRBSU5FUl9JTlNFUlQgdG8gbm90IGRvIHBhcnRpYWwgaW5zZXJ0cwogICBpbiBjb250YWluZXJzIHdpdGggbXVsdGlwbGUgaW5kaWNlcyB3aGVuIG9uZSBpbnNlcnQgZmFpbHMuCgoyMDA4LTAyLTEzIDIzOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeGVkIHRoZSBjcmVhdGVVc2VyIGxpbmUgdG8gc3BlY2lmeSB0aGUgLWUgZmxhZyAocmVzcG9uZGluZyB0byBhCiAgIGNvbXBsYWludCBhYm91dCBpdCBiZSBtaXNzaW5nKQoKMjAwOC0wMi0xMyAxNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3Nzk1NTg6IGZyb20gYnJ1bWJzOiBJbXBsZW1lbnQgdGhlCiAgIGRpc2tJT0xBMSw1LDEwIG9iamVjdGlvbnMgaW4gdGhlIGRpc2tpby1taWIgdW5kZXIgbGludXgKCjIwMDgtMDItMTMgMTc6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODM3MzM6IFB1dCB0aGUgcGFja2FnZSB2ZXJzaW9uIG51bWJlcgogICBpbnRvIHRoZSBoclNXSW5zdCB0YWJsZSBmb3Igc29sYXJpcy4KCjIwMDgtMDItMTMgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc4MzQyMzogZnJvbSBqc2FmcmFuZWs6IHJldHVybiBhIGNvcnJlY3QKICAgaXB2NkludGVyZmFjZUlkZW50aWZpZXIgb2YgbG9vcGJhY2sgb24gbGludXgKCjIwMDgtMDItMTMgMTY6MTIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODQ3NDc6IGZyb20ganNhZnJhbmVrOiBGaXggbG9uZyB1c2FnZQogICBmb3IgaXAgYWRyZXNzZXMgb24gNjQgYml0IHN5c3RlbXMgaW4gdmFyaW91cyBNSUItSUkgdGFibGVzLgoKMjAwOC0wMi0xMyAxNjowNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4MDY1MDE6IGZyb20gam1hZ2RlcjogQWRkIGEgc25tcF92M3RyYXAKICAgZnVuY3Rpb24gZm9yIHNlbmRpbmcgdHJhcHMgd2l0aCBhIHNubXB2MyBjb250ZXh0CgoyMDA4LTAyLTEzIDE2OjAyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyNjEwMjogZnJvbSBqc2FmcmFuZWs6IHN1cHBvcnQgbG9uZ2VyCiAgIGludGVyZmFjZSBuYW1lcyBvbiBsaW51eAoKMjAwOC0wMi0xMiAyMzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODA3NDg5OiBmaXggaWdub3Jpbmcgb2YgZGlzcGxheSBoaW50cy4KCjIwMDgtMDItMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIAoKMjAwOC0wMi0xMiAyMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDE4MjM0NjUgZnJvbSBqc2FmcmFuZWs6IGZpeCBpY21wIGNhY2hlCiAgIHJlZ2lzdHJhdGlvbgoKMjAwOC0wMi0xMiAyMjoxNiAgaGFyZGFrZXIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODI4NjAyOiBmcm9tIHRnb2hhZDogU3VwcG9ydCBpcERlZmF1bHRUVEwKICAgYW5kIGlwRm9yd2FyZGluZyBTRVRzIG9uIGxpbnV4CgoyMDA4LTAyLTEyIDIyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg2NjgyMzogZnJvbSBqc2FmcmFuZWs6IHRydW5jYXRlIDMyIGJpdAogICBjb3VudGVyIHZhbHVlcyBvbiA2NCBiaXQgbWFjaGluZXMgdG8gYXZvaWQgYm9ndXMgd2FybmluZ3MuCgoyMDA4LTAyLTEyIDE5OjA1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NDk5MDM6IGZyb20ganNhZnJhbmVrOiBkbyBub3Qgc3BhbSBsb2cKICAgd2l0aCBhc3NlcnRzIHdoZW4gWEVOIGlzIHVzZWQKCjIwMDgtMDItMTIgMTg6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODc1MDIyOiBmcm9tIHNlbV9wcmc6IGltcHJvdmUgY2FsbGJhY2sKICAgbG9ja2luZyBtZWNoYW5pc21zCgoyMDA4LTAyLTEyIDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg3OTI2MTogZnJvbSBhbWVzYnVyeTogQWRkIGluIGluYWN0aXZlCiAgIG1lbW9yeSB0byB0aGUgY2FjaGVkIHJlcG9ydCBmb3IgZnJlZWJzZAoKMjAwOC0wMi0xMiAxNTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCBzbm1wbGliL3NubXB2My5jOgoKICAgTkVXUzogbGlic25tcDogUGF0Y2g6IDE4ODIwNjk6IGZyb20gbnNjaHJlbms6IEFkZCBhIGV4YWN0RW5naW5lSUQKICAgdG9rZW4gZm9yIHNwZWNpZnlpbmcgYW4gZXhhY3QgU05NUHYzIGVuZ2luZUlEIHRvIHVzZQoKMjAwOC0wMi0xMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBtaW5vciBjbGVhbnVwcyBmcm9tIHJldmlld2luZyBwYXJ0cyBvZiB0aGUgY29kZQoKMjAwOC0wMi0xMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4ODI2MjE6IGZyb20ganNhZnJhbmVrOiBBZGQgTFZNIHN1cHBvcnQgdG8KICAgdGhlIHBhcnRpdGlvbiB0YWJsZQoKMjAwOC0wMi0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcXVvdGVkIHN0cmluZ3MgaW4gaGVscCBvdXRwdXQKCjIwMDgtMDEtMzAgMTc6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkZWQgdmFjbV9jb25mIHRvIGV4aXN0aW5nIGNvbmZpZ3VyZSBmaWxlcyAoZm9yIHRyYXBkIHRvbykKCjIwMDgtMDEtMjAgMDc6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODcyMjY2OiBQRVJMQ0MgY2hlY2sgZmFpbHMgZm9yIENDIHdpdGgKICAgb3B0aW9ucwoKMjAwOC0wMS0xNyAwMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBmaXggZGVmYXVsdCBtaWJzIHRvIGluY2x1ZGUgdmFjbV9jb25mIHRvbwoKMjAwOC0wMS0xNyAwMDowOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODI2MDg4OiBmcm9tIEphbiBTYWZyYW5lazogVXNlIHRoZSByaWdodAogICBpbnRlcmZhY2UgdCByZWFkIHRoZSBuZXRtYXNrCgoyMDA4LTAxLTE2IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBIYW5kbGUgZGV2aWNlIG5hbWVzIHdpdGggZW1iZWRkZWQgc3BhY2VzIGluCiAgIFVDRC1TTk1QLU1JQjo6ZHNrRGV2aWNlCgoyMDA4LTAxLTE2IDAwOjQ3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4Mjg4Mzk6IGZyb20ganNhZnJhbmVrIHRvIHByb3ZpZGUgYmV0dGVyCiAgIGhhbmRsaW5nIG9mIGRpc2tzIG1vdW50ZWQgb24gcGF0aHMgd2l0aCBlbWJlZGRlZCBzcGFjZXMKCjIwMDgtMDEtMTUgMTY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgY292ZXJpdHkgYnVnIDIwNTogZG91YmxlIGNoZWNrIHBvaW50ZXIgdGhhdCBzaG91bGQgbmV2ZXIgYmUgbnVsbAoKMjAwOC0wMS0xNCAyMzo1NSAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmg6CgogICBVcGRhdGUgdGhlIHNubXAgYW5kIHN5c3RlbSBtaWJzIHRvIGJlIGhhbmRsZXIgYmFzZWQKCjIwMDgtMDEtMTMgMDA6MDAgIG1hZ2ZyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsICAKICAgICAgIGRveHlnZW4uY29uZiwgbG9jYWwvVmVyc2lvbi1NdW5nZS5wbCwgc2Vkc2NyaXB0LmluLCAgIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTGVzc2VuIHRoZSBudW1iZXIgb2YgcGxhY2VzIHRoYXQgbmVlZCB0byBiZSBjaGFuZ2VkIGluIG9yZGVyIHRvCiAgIGRvIGEgcmVsZWFzZS4KICAgQ2hhbmdlIHRvIHVzZSB0aGUgY29uZmlndXJlIHZlcnNpb24gbnVtYmVyIGFzIHRoZSBwYWNrYWdlIHZlcnNpb24KICAgbnVtYmVyLgoKMjAwOC0wMS0wOSAyMTo1OCAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBEZWxldGUgdW51c2VkIHN0YXRpYyBmdW5jdGlvbnMKCjIwMDgtMDEtMDYgMTM6MDEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgZXJyb3Jfc3RyaW5nIHByaXZhdGUgYW5kIHJlYWRvbmx5CgoyMDA3LTEyLTIyIDE5OjIyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTgyNjE3NDogQ2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyB3aGVuCiAgIHByaW50aW5nIHZhbHVlcy4KCjIwMDctMTItMjEgMjM6MTkgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNzQ3NzMzOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiB1bmRlZmluZWQKICAgdmFsdWVzLgogICBQYXRjaCBzdXBwbGllZCBieSBNYXR0aSBMaW5uYW52dW9yaQoKMjAwNy0xMi0yMSAyMTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NDgyMDY6IFByb3RlY3QgYWdhaW5zdCBmYWlsdXJlcyB0byBvcGVuCiAgIC9ldGMvbXRhYiAob3IgZXF1aXYpCgoyMDA3LTEyLTIxIDE4OjQyICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBCcmluZyBvcmRlciBvZiBhZ2VudCBsaWJyYXJ5IGxpbmtpbmcgaW50byBsaW5lIHdpdGggYWdlbnQKICAgTWFrZWZpbGUuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgU3RldmUgTWNDYXJ0aHkuCiAgIFFuOiBTaG91bGQgNS4yLnggYW5kIDUuMy54IGFsc28gdXNlIHRoZSBzYW1lIG9yZGVyPwogICAoZm9yIGJvdGggYWdlbnQgTWFrZWZpbGUgYW5kIG5ldC1zbm1wLWNvbmZpZykKCjIwMDctMTItMjEgMTM6MTEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgwMjgzMzogRW5zdXJlIHNubXB0cmFwZCBidWlsZHMgd2l0aAogICAtLWRpc2FibGUtc25tcHYxLzJjCgoyMDA3LTEyLTIwIDE2OjI2ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTgzNDUzOTogQ29uc2lzdGVudCBoYW5kbGluZyBvZiBPSUQgcGFyc2luZy4KICAgQXBwbGllcyBwYXRjaCAjMTgzNDk4MywgcHJvdmlkZWQgYnkgRG1pdHJ5IEthcmFzaWsKCjIwMDctMTItMjAgMTY6MDUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vcmUgaW50ZXJuYWwgcXVlcnkgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMTItMjAgMTQ6MjAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTgyMjM2MDogRml4IHNwaW5sb2NrIGhlbHBlciBlcnJvciBoYW5kbGluZy4KCjIwMDctMTItMjAgMTQ6MTggIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNzk1ODQwOiBTaWduZWQgMzItYml0IHRydW5jYXRpb24gbG9nZ2VkCiAgIGFzIGRlYnVnIG1lc3NhZ2UgcmF0aGVyIHRoZW4gZXJyb3IuCgoyMDA3LTEyLTIwIDE0OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3OTI4OTA6IGluY2x1ZGUgQ0lGUyBtb3VudHMgd2hlbiBza2lwcGluZwogICByZW1vdGUgZmlsZXN5c3RlbXMKCjIwMDctMTItMjAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NzEyMjE6IFJldGFpbiBpZkxhc3RDaGFuZ2UgaW5mb3JtYXRpb24gb24KICAgZGF0YSByZWxvYWQuCgoyMDA3LTEyLTIwIDE0OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzU4MjEyOiBIYW5kbGluZyBtaXNzaW5nIHZhcmlhYmxlIHR5cGVzCiAgIChJcEFkZHJlc3MsQ291bnRlcixPcGFxdWUpCgoyMDA3LTEyLTE5IDIyOjM5ICBtYWdmcgoKICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDb3JyZWN0IGRveHlnZW4gd2FybmluZ3MKCjIwMDctMTItMTkgMjI6MzEgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgVXNlIE5FVFNOTVBfLXByZWZpeGVkIHN5bWJvbHMgd2hlbiBkZWNpZGluZyB3aGF0IHRlc3RzIHRvIHJ1biBhcwogICB0aGUgY29tcGF0IHN5bWJvbHMgYXJlbid0IGRlZmluZWQuCgoyMDA3LTEyLTE5IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCVUcgMTgzMTU2ODogc3RyZHVwIG1pZ2h0IGZhaWwgYW5kIHJldHVybiBOVUxMIC0gdGFrZSBjYXJlIG9mIGl0CiAgIGluIHRoaXMgY2FzZSBhdCBsZWFzdC4KCjIwMDctMTItMTkgMjE6NDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCVUcgMTgyNDg4MzogUmVtb3ZlIG1lbW9yeSBsZWFrCgoyMDA3LTEyLTE5IDIwOjQ2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IEJVRzogMTg1MTA0NzogRG8gbm90IHRyeSB0byBkbyBtb3JlIGhhbmRsaW5nIG9mIGEgdmFsdWUKICAgb25jZSBpdCBpcyBmb3VuZCB0byBiZSBjb3JydXB0IGJ5IHRoZSB3YXRjaGVyIGhlbHBlciwgdGh1cwogICBhdm9pZGluZyBjb2RlIHRoYXQgY291bnRzIG9uIGdldHRpbmcgdGhlIHJpZ2h0IHR5cGUuIFRoaXMgYnVnIHdhcwogICBmb3VuZCBieSBDaGFybGllIE1pbGxlciwgSW5kZXBlbmRlbnQgU2VjdXJpdHkgRXZhbHVhdG9ycy4KCjIwMDctMTEtMjcgMDk6NTYgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBDbGFyaWZ5IHVzZSBvZiB0aGUgLUEgKGxvZyBhcHBlbmQpIG9wdGlvbi4KCjIwMDctMTEtMjIgMTU6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIGNoZWNrIHJlcXVlc3QsIG5vdCByZXF1ZXN0cy4gcmVwb3J0ZWQgYnkgdWxpbSBvbiBpcmMKCjIwMDctMTEtMjIgMTU6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYzoKCiAgIGNoZWNrIHJlcXVlc3QsIG5vdCByZXF1ZXN0cy4gcmVwb3J0ZWQgYnkgdWxpbSBvbiBpcmMKCjIwMDctMTEtMTkgMjE6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE4MzQ2OTk6IGZyb20gYXBlcnNzb246IEZpeCAxODMzMjk0OgogICBETFBJIHByb2JsZW1zIG9uIFNvbGFyaXMgMi42CgoyMDA3LTExLTE3IDE2OjI2ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVzZSB0aGUgd29ya2VyIGhlbHBlcnMgZnJvbSB0aGUKICAgcmVnaXN0ZXJfKl9pbnN0YW5jZSBoZWxwZXJzIGFuZCBzY2hlZHVsZSB0aGUgaW5zdGFuY2UgaGVscGVycyBmb3IKICAgcmVtb3ZhbCBpbiA1LjYKCjIwMDctMTEtMTQgMTI6MjEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5oOgoKICAgU3VwcG9ydCB2MyBsbXNlbnNvcnMgQVBJLgoKMjAwNy0xMS0xNCAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmM6CgogICBGaXggbWlzbGVhZGluZyBkZWJ1ZyBvdXRwdXQgbWVzc2FnZS4KCjIwMDctMTEtMTMgMTM6NTkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvZHVtbXlfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9zZW5zb3JzLmg6CgogICBQcmVsaW1pbmFyeSByZS13b3JraW5nIG9mIHRoZSBMTS1TRU5TT1JTLU1JQiwgdG8gc2VwYXJhdGUgb3V0CiAgIHRoZSBzZW5zb3IgaGFyZHdhcmUgcHJvY2Vzc2luZyBmcm9tIHRoZSBNSUIgdGFibGVzIHRoZW1zZWx2ZXMuCgoyMDA3LTExLTA4IDIzOjE3ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMTgyNDE5Njoge2lmT3BlclN0YXR1cyxpcEFkRW50SWZJbmRleH0KICAgcmVwb3J0ZWQgaW5jb3JyZWN0bHkKICAgUGF0Y2ggc3VwcGxpZWQgYnkgQW5kZXJzIFBlcnNzb24uIEZpeGVzIEJ1Z3MgMTgyMjI3NSBhbmQgMTgxOTE4OS4KCjIwMDctMTAtMjYgMjE6MjIgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIE5FV1M6IHNubXBkOiBBZGRlZCBzdXBwb3J0IGZvciBhIHVzZXIgcHJvdmlkZWQgbGVuZ3RoIHZhcmlhYmxlCiAgIGFuZCBDIHN0cmluZyB2YWx1ZXMgdG8gdGhlIHdhdGNoZXIgaGVscGVyLgoKMjAwNy0xMC0xNiAyMjozOSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgVXNlICVwIHRvIHByaW50IHBvaW50ZXJzLiBEbyBub3QgdXNlICVwIHRvIHByaW50IG51bWJlcnMuCgoyMDA3LTEwLTE2IDA3OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNYWtlIHRoZSBsaWJyYXJ5IGJ1aWxkYWJsZSBhcyBDIGFnYWluLgoKMjAwNy0xMC0xNiAwNzoxNyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBtaXNjOiBhdm9pZCBjYWxsaW5nIGRlYnVnIG1hY3JvcyB3aXRoIHRvbyBtYW55CiAgIGFyZ3VtZW50cy4KCjIwMDctMTAtMTYgMDY6MTggIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE1ha2UgdGhlIGxpYnJhcnkgYnVpbGRhYmxlIGFzIEMrKyBhZ2Fpbi4KCjIwMDctMTAtMTUgMjA6NTIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIGRlY2xhcmUgbmV0c25tcF9iaW5hcnlfYXJyYXlfb3B0aW9uc19zZXQ7IGluY2x1ZGUgaGVhZGVyIGZvciBpdAogICBhcyBuZWVkZWQKCjIwMDctMTAtMTUgMjA6MzkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYzoKCiAgIENvbnZlcnQgYW4gaW5maW5pdGUgbG9vcCB0byBhIGZpbml0ZSBvbmUuCiAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDA3LTEwLTE0IDIyOjEwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYzoKCiAgIENIQU5HRVM6IG1pc2M6IEF2b2lkIGNhbGxpbmcgZGVidWcgbWFjcm9zIHdpdGggdG9vIGZldyBhcmd1bWVudHMuCgoyMDA3LTEwLTE0IDIwOjUxICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxODExNDY5OiByZWFkX2NvbmZpZ19maWxlc19pbl9wYXRoKCkKICAgcmVhZHMgcGFzdCBtYWxsb2MnZCBidWZmZXIKCjIwMDctMTAtMTQgMjA6NDEgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTgxMTQ2MzogcGVybCBhc3luYyBjYWxsYmFjayBjb3JlZHVtcAogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE2MDYwNjI6IHBlcmwgYnVsa3dhbGsgKGFzeW5jKSBjb3JlZHVtcAoKMjAwNy0xMC0xNCAxOTowNyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE4MDYzMzY6IGZpeCAtTFMgb3B0aW9uIHBhcnNpbmcKCjIwMDctMTAtMTQgMTI6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIGZpeCBjb21tZW50CgoyMDA3LTEwLTEzIDIzOjI4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgQ0hBTkdFUzogdGVzdDogZW5oYW5jZSBzbm1wbmV0c3RhdCB0ZXN0IHRvIGNoZWNrIHRjcFRhYmxlIGluIFRDUAogICBtb2RlCgoyMDA3LTEwLTEzIDIyOjI4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBCVUc6IDE4MTA4MTQ6IHRjcFRhYmxlIG1pc3NpbmcgZW50cmllcyBhbmQKICAgd3JvbmcgcG9ydHMKCjIwMDctMTAtMTIgMjE6NDYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgQ0hBTkdFUzogU29sYXJpczogI2RlZmluZSBORVdfTUlCX0NPTVBMSUFOVCB0byBzdXBwb3J0IFNvbGFyaXMKICAgMTBVNCsKCjIwMDctMTAtMTEgMjA6NDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGxlYWsgbWVtb3J5IHdoZW5ldmVyIGFuIHVkcCBhZGRyZXNzIGlzCiAgIGZvcm1hdHRlZC4KCjIwMDctMTAtMDMgMDE6MDIgIGFsZXhfYgoKICAgKiAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L1JFQURNRS50eHQsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL0FkZDJQYXRoLm5zaSwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgLUZpeCBmb3IgYnVnIDE3Njg3OTcuIE5TSVMgSW5zdGFsbGVyIHNjcmlwdCBub3cgd2FybnMgdGhlIHVzZXIgaWYKICAgdGhlIFBBVEgKICAgaXMgPiAxMDI0IGFzIE5TSVMgY2FuIG5vdCBoYW5kbGUgdmFyaWFibGVzIGxhcmdlciB0aGFuIDEwMjQuCiAgIC1VcGRhdGVzIHRvIGJ1aWxkIGluc3RydWN0aW9ucy4KCjIwMDctMDktMzAgMjA6NTkgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQ0hBTkdFUzogQlVHOiAxODAxODM1OiBBZGRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIG11bHRpcGxlIGRlZmF1bHQKICAgdHJhbnNwb3J0cyBmb3IgYW4gYXBwbGljYXRpb24uIE9uIG9wZW4gdGhlIGRpZmZlcmVudCB0cmFuc3BvcnRzCiAgIHdpbGwgYmUgdHJpZWQgaW4gb3JkZXIuIEFzIGEgY29uc2VxdWVuY2Ugc25tcCBhbmQgc25tcHRyYXAgbm93CiAgIHdpbGwgdHJ5IGZpcnN0IHVkcCBhbmQgdGhlbiB1ZHA2IGFuZCBhZ2VudHggd2lsIHRyeSBmaXJzdCB1bml4CiAgIGFuZCB0aGVuIHRjcC4KCjIwMDctMDktMjkgMTM6MTAgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCB0cnkgdG8gbG9vayB1cCBlbXB0eSBzdHJpbmdzIGFzCiAgIGhvc3RuYW1lcyBmb3IgSVB2NgogICBBZGRpdGluYWxseSwgcHJpbnQgd2hhdCBzdHJpbmcgZmlsZWQgdG8gcmVzb2x2ZSB1c2luZyBnZXRhZGRyaW5mbwogICBmb3IgSVB2NgoKMjAwNy0wOS0yOSAwNjoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgwNDQ0NTogZnJvbSBhcGVyc3NvbjogSGlnaCBvcmRlciBiaXRzIG9mCiAgIEhDSW5PY3RldHMgbm90IHNldCBvbiBTb2xhcmlzCgoyMDA3LTA5LTI0IDIwOjQzICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKCjIwMDctMDktMjMgMDY6MDMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIGZpeCAjZWxpZgoKMjAwNy0wOS0yMSAyMjowNCAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhdHRlbXB0IHRvIGZpeCBidWlsZCBmb3IgU29sYXJpcy9BSVgvSFAtVVgKICAgYnJva2VuIGJ5IHIxNjY4NAoKMjAwNy0wOS0yMCAyMTo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NDY4MzE6IGZyb20gY3VubmlqZDogZml4IHByb2Nlc3MKICAgY2hlY2tpbmcgcmFjZQogICBjb25kaXRpb24gdW5kZXIgTGludXggYW5kIHBsYXRmb3JtICNpZmRlZnMKCjIwMDctMDktMTkgMjE6MDkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IENvdmVyaXR5ICMxODM6IGZpeCBtZW1vcnkgbGVhayBpZgogICBJUF9QS1RJTkZPIGZhaWxzCgoyMDA3LTA5LTE5IDE5OjU3ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgRml4IG1pc251bWJlcmluZ3Mgb2Ygc3RlcHMuCiAgIEl0IGlzICpzbyogZGlmZmljdWx0IHRvIGZpbmQgcHJvcGVybHkgbnVtZXJhdGUgc3RhZmYgdGhlc2UKICAgZGF5cy4uLi4KCjIwMDctMDktMTYgMDk6NTEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIFJlbW92ZSBiYXNoaXNtcy4gVGhpcyBpcyBuZXRic2QgcGF0Y2gtZXQgZnJvbSBidWcgMTc0NTQwNC4KCjIwMDctMDktMTYgMDk6NDUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBVc2UgY29uc3QgY2hhciogZm9yIHRlbXBvcmFyeSBjb25zdGFudCBzdHJpbmcgdmFyaWFibGUuIFRoaXMgaXMKICAgbmV0YnNkIHBhdGNoLWVhIGZyb20gYnVnIDE3NDU0MDQuCgoyMDA3LTA5LTE2IDA5OjQwICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgdGhlIG5hdHVyYWwgdHlwZSBvZiBpbl9hZGRyX3QncyBmb3IgY29tcGFyaXNpb25zLiBUaGlzIGlzCiAgIG5ldGJzZCBwYXRjaC1lYSBmcm9tIGJ1ZyAxNzQ1NDA0LgoKMjAwNy0wOS0xNiAwNzowNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ0hBTkdFUzogQlVHOiAxNzkzNTQ1OiBUYWtlIHRoZSBuYW1lIGZyb20gdGhlIHNvY2thZGRyX3VuIGluCiAgIG9yZGVyIHRvIGF2b2lkIHRyYW5zcG9ydCBzcGVjaWZpZXJzIGFuZCBvdGhlciBkZWNvcmF0aW9ucy4KCjIwMDctMDktMTQgMTM6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gaGVhZGVyIGZvciBzd3J1biByZXdyaXRlCgoyMDA3LTA5LTE0IDEzOjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZCB1dGlsaXR5IG1hY3JvCiAgIC0gYWN0aXZhdGUgbmV3IGhvc3QgcmVzb3VyY2UgcmV3cml0ZXMKCjIwMDctMDktMTQgMTM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0Lmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gY29uZmlnX3JlcXVpcmUgZm9yIG5ldyByZXdyaXRlcywgaWYgZW5hYmxlZAoKMjAwNy0wOS0xNCAxMzoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gYWRkL2ZpeCBkaXNrL3BhcnRpdGlvbiB0YWJsZXMgb24gZGFyd2luCgoyMDA3LTA5LTE0IDEzOjA5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZCBoclNXSW5zdGFsbGVkVGFibGUgZm9yIGRhcndpbgoKMjAwNy0wOS0xNCAwODo0NCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmV4cGVjdGVkIGNvbW1hbmQgYXJndW1lbnRzLgoKMjAwNy0wOS0xNCAwODowMCAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIERvY3VtZW50IHVzZSBvZiAic3ZuIGV4cG9ydCIgcmF0aGVyIHRoYW4gInN2biBjaGVja291dCIuCiAgIENvdmVyIGdlbmVyYXRpb24gb2YgdGhlIHppcCBhcmNoaXZlIGFzIHdlbGwgYXMgdGhlIHRhcmJhbGwuCgoyMDA3LTA5LTEzIDIxOjI1ICB0YW5kZXJzCgogICAqIFJFQURNRToKCiAgIGRyb3Agb2Jzb2xldGUgbWlycm9ycwoKMjAwNy0wOS0xMyAxNzoyOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGhvc3QgcmVzb3VyY2VzIFNXUnVuIGFuZCBTV1J1blBlcmYgVGFibGUgZm9yIGRhcndpbjkKCjIwMDctMDktMTMgMTc6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nIGFuZCBjbGVhbnVwIGluIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMKCjIwMDctMDktMTMgMTc6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGZvciBkYXJ3aW45LCByZXhlYyBhZnRlciBmb3JrIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggc29tZSBtYWNoCiAgIGNhbGxzCgoyMDA3LTA5LTEyIDE4OjUxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0byByZWFkIGEgZGlyZWN0b3J5IGhpZXJhcmN5IGludG8gYQogICBjb250YWluZXIKCjIwMDctMDktMTIgMTc6NTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gbmV3IHN0cmluZyBjb21wYXJlIGNhbGxiYWNrCgoyMDA3LTA5LTEyIDE3OjUzICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBuZXcgbmV0c25tcF9jYWNoZV9mcmVlIGZ1bmN0aW9uCgoyMDA3LTA5LTEyIDE3OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIGluIGRlYnVnIG1zZwoKMjAwNy0wOS0xMiAxNzo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgUGF0Y2hlcyBmcm9tIEFwcGxlCiAgIC0gYWRkIG9wdGlvbmFsIGNhY2hlCiAgIC0gY2hlY2svaGFuZGxlIGVycm9ycyBmb3IgYWxsIGZ1bmN0aW9ucyBpbiBpbml0IGZ1bmMKICAgLSB0eXBlZGVmIGdlbmVyYXRlZCBzdHJ1Y3QKICAgLSBza2lwIHByb2Nlc3NlZCByZXF1ZXN0cwogICAtIGNoZWNrIGZvciBudWxsIHdoZW4gZXh0cmFjdGluZyByb3cKCjIwMDctMDktMTIgMTc6MzUgIHJzdG9yeQoKICAgKiBDT1BZSU5HOgoKICAgYWRkIG5ldyBjb3B5cmlnaHQvY29udHJpYnV0b3IKCjIwMDctMDktMDUgMjA6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENvbWJpbmUgc3lzdGVtX3BhcnNlX2NvbmZpZ19zeXN7bG9jLGNvbixuYW1lfSBpbnRvIG9uZSBmdW5jdGlvbgogICBzaW5jZSB0aGV5IGFsbCBkbyB0aGUgc2FtZSB0aGluZwoKMjAwNy0wOC0yNSAxNDoyNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgTWFrZSBtb3N0IG9mIG5vdGlmaWNhdGlvbl9sb2cgc3RhdGljLiBNaW5pbWl6ZSB0aGUgaGVhZGVyIGZpbGUuCgoyMDA3LTA4LTIyIDIxOjU2ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBORVdTOiBhZ2VudDogc3VwcHJlc3MgYW5ub3lpbmcgInJlZ2lzdHJhdGlvbiAhPSBkdXBsaWNhdGUiCiAgIHdhcm5pbmcgZm9yIHJvb3Qgb2lkcwogICAob3RoZXJ3aXNlLCB5b3UnbGwgZ2V0IHRoaXMgbWVzc2FnZSBvbiBhbG1vc3QgZXZlcnkgc3RhcnR1cCkKCjIwMDctMDgtMjAgMDg6MDYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogc25tcGxpYjogZml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gc3ByaW50ZiBmb3IKICAgVURQL0lQdjYKCjIwMDctMDgtMTcgMDk6MTAgIGR0czEyCgogICAqIEZBUToKCiAgIFN1YnZlcnNpb24sIG5vdCBDVlMuCgoyMDA3LTA4LTE3IDA4OjU5ICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IGhhbmRsaW5nIG9mIHVua25vd24gY29tbXVuaXRpZXMKCjIwMDctMDgtMTYgMTU6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRG9uJ3QganVzdCByZXBvcnQgdGhlIHByb2JsZW0gLSBpdCBtaWdodCBiZSBzZW5zaWJsZSB0byBhdm9pZAogICBjcmFzaGluZyB0aGUgYWdlbnQgYXMgd2VsbCEKCjIwMDctMDgtMTYgMTU6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzQ0MTU3OiBSZXBvcnQgZHVwbGljYXRlICJleHRlbmQvZXhlYyIKICAgaWRlbnRpZmllcnMuCgoyMDA3LTA4LTE2IDE1OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYXBwcy9zbm1wdHJhcGRfZHMuaDoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE3NDY5OTI6IEltcHJvdmUgc25tcHRyYXBkCiAgIGFjY2Vzcy1jb250cm9sIGVycm9yIG1lc3NhZ2VzLgoKMjAwNy0wOC0xNiAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUyOTM0OiBGaXggb2ZmLWJ5LW9uZSBxc29ydCBlcnJvciBpbgogICB0YWJsZSB1dGlsaXRpZXMuCgoyMDA3LTA4LTE2IDEzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0Mzc6IEZpeCBlcnJvciBpbmRleCBvbiBmYWlsaW5nIFNFVAogICByZXF1ZXN0cwoKMjAwNy0wOC0xNiAxMzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUzNDQ5OiBGaXggQWdlbnRYIGVycm9yIHByb3BhZ2F0aW9uCgoyMDA3LTA4LTE2IDEyOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MzQ2MzogRml4IEFnZW50WCBzdWJhZ2VudCBwaW5nIGFsYXJtCiAgIGhhbmRsaW5nCgoyMDA3LTA4LTE2IDEyOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTgyMDg6IEZpeCBtZW1vcnkgbGVhawoKMjAwNy0wOC0xNiAxMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzc0NjEyOiBNb3JlIHJlc2lsaWVudCBwcm9jZXNzIHN0YXR1cwogICBoYW5kbGluZwoKMjAwNy0wOC0xNiAxMTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTc3NTEyNDogRml4IGNsaWVudGFkZHIgZnVuY3Rpb25hbGl0eQoKMjAwNy0wOC0xNiAwOTozOCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE3NjgyODU6IENvdW50IE1JQiBmaWxlcyBjb3JyZWN0bHkgaW4KICAgYWRkX21pYmRpcigpCgoyMDA3LTA4LTE2IDA5OjM1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTc2NzcyNTogQ2xvc2UgYWxsIG5vbiBzdGFuZGFyZCBmaWxlCiAgIGhhbmRsZXMKCjIwMDctMDgtMTYgMDk6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmM6CgogICBEZWNsYXJlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUgY29ycmVjdGx5LCBhbmQgb21pdCB1bnVzZWQKICAgdmFyaWFibGVzLgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTA4LTE2IDA4OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBSZWFkIGluIGFnZW50IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgKmJlZm9yZSogdGhlIGhlYWRlcgogICBmaWxlcyB0aGF0IG1pZ2h0IHJlbHkgb24gdGhlbS4KCjIwMDctMDgtMDUgMTY6MTYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIENoYW5nZSB3aW4zMiBidWlsZCByZWFkbWUgZmlsZXMgdG8gQ1JMRi4KCjIwMDctMDgtMDUgMTQ6MTYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBXaW4zMjogQ2hhbmdlIGJ1aWxkIGRvY3MgdG8gdXNlIGR5bmFtaWMgKERMTCkgaW5zdGVhZCBvZiBzdGF0aWMuCgoyMDA3LTA4LTAyIDEzOjQ2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBJdCBtaWdodCBiZSBzbGlnaHRseSBsZXNzIGNvbmZ1c2luZyBpZiB0aGUgbmV0U25tcEV4YW1wbGVTdHJpbmcKICAgTUlCIG9iamVjdCBkaWQgYWN0dWFsbHkgdGFrZSBzdHJpbmcgdmFsdWVzLiBQaWNreSwgSSBrbm93Li4uLgoKMjAwNy0wNy0yOCAxMzowMiAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICBmaXggdGFnIGV4dHJhY3Rpb247IGNoZWNrIGZvciBlbXB0eSB0YWcgZWFybGllcgoKMjAwNy0wNy0yNSAyMjo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NjA2MzM6IGZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKCjIwMDctMDctMjEgMjE6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGZvcndhcmRpbmcgZW5jb2RpbmcKCjIwMDctMDctMjAgMDg6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFR3ZWFrIHdhcm5pbmcgbWVzc2FnZSBmb3IgKG9sZC1zdHlsZSwgaW52YWxpZCBmb3JtYXQpICJleGVjIE9JRCIKICAgZGlyZWN0aXZlcy4KCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBBcHBseSAoY29ycmVjdCkgcGF0Y2ggZnJvbSBNYXJjdXMgUnVlY2tlcnQgdG8gcmVtb3ZlIGFzc2VydHMKICAgdXNpbmcgc29ydC1vLWlsbGVnYWwgQyBzdHJpbmcgY29tcGFyZXMKCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBSZW1vdmUgcHJldmlvdXMgcGF0Y2ggd2hpY2ggd2FzIHRoZSB3cm9uZyB2ZXJzaW9uCgoyMDA3LTA3LTE2IDIzOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBNYXJjdXMgUnVlY2tlcnQgdG8gcmVtb3ZlIGFzc2VydHMgdXNpbmcKICAgc29ydC1vLWlsbGVnYWwgQyBzdHJpbmcgY29tcGFyZXMKCjIwMDctMDctMTMgMTk6MjcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBnZW5lcmF0ZSB6aXAgZmlsZXMKCjIwMDctMDctMTIgMjE6NTEgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIGZpeCBzdWJhZ2VudCBleGFtcGxlIChkb2N1bWVudGF0aW9uKQoKMjAwNy0wNy0xMiAyMToyNyAgdGFuZGVycwoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIHNubXBfc2Vzc19yZWFkIHJldHVybnMgaW50LCBub3Qgdm9pZAoKMjAwNy0wNy0wNiAyMzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcDoKCiAgIENIQU5HRVM6IGJ1aWxkOiB1c2UgbGlidG9vbCBjbGVhbiBmb3IgcmVtb3ZpbmcgZmlsZXMgdG8gZW5zdXJlIHdlCiAgIGRlbGV0ZSBhbGwgbGlidG9vbCB0ZW1wb3JhcnkgZmlsZXMuCgoyMDA3LTA3LTA2IDIzOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgdXNlIGEgcmVjdXJzaXZlIHJldmVydCBpbnN0ZWFkIG9mIHJtL3VwZGF0ZTsgcmVtb3ZlIGRvdWJsZSAvIGZyb20KICAgZWRpdGluZyBjYWxscwoKMjAwNy0wNy0wNiAyMToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN0b3Agc2VhcmNoaW5nIHBhdGhzIHdoZW4gZG9uZQoKMjAwNy0wNy0wNiAyMToxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGRvIG5vdCBmcmVlIGludGVyZmFjZSBlbnRyeSBqdXN0IGJlY2F1c2Ugd2UgY2FuIG5vdCBnZXQgc3RhdHMgZm9yCiAgIGl0CgoyMDA3LTA3LTA2IDE1OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUcgMTc0NTExMzogSGFuZGxlIHNpbmdsZS1saW5lIChhbmQgemVyby1saW5lKQogICBvdXRwdXQgaW4gVUNEIGNvbXBhdGFiaWxpdHkgbW9kZS4KCjIwMDctMDctMDYgMDk6MDggIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSCAxNzI4MjQ3OiBmcm9tIE1pdHN1cnUgQ2hpbmVuOiBjbGVhbnMgdXAKICAgdGhlIGludDY0IHR5cGUgY2hlY2tpbmcgYW5kIHVzYWdlIGZvciBidWlsZGluZyBwYWNrZXRzIGVzcGVjaWFsbHkKICAgdW5kZXIgTVNWQy4KCjIwMDctMDctMDUgMTQ6NDUgIHJzdG9yeQoKICAgKiAuLCBSRUFETUUub3NYOgoKICAgcjIwMDQ0QGRoY3AyMTE6IHJzdG9yeSB8IDIwMDctMDctMDUgMTA6NDQ6MDEgLTA0MDAKICAgcmVtb3ZlIGRpc2FibGUtc3RhdGljIGZyb20gcmVjb21tZW5kZWQgb3B0aW9ucwoKMjAwNy0wNy0wNSAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIHNraXAgc3RhdHMgcGFyc2luZyBvbiBpbnRlcmZhY2VzIHdpdGggbm8gc3RhdGlzdGljcwoKMjAwNy0wNy0wNSAxMTowMSAgcnN0b3J5CgogICAqIGRpc3QvY2hlY2stYXBpLWNoYW5nZToKCiAgIGNoZWNrIGZvciBkaXIgZXhpc3RlbmNlCgoyMDA3LTA3LTA0IDIzOjI2ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogcGVybDogaW5zdGFsbCBlbWJlZGRlZCBwZXJsIGluaXQgZmlsZXMgZm9yCiAgIHNubXBkL3NubXB0cmFwZCB3aXRoIG1vZGUgNjQ0IGluc3RlYWQgb2YgNzU1CgoyMDA3LTA3LTA0IDIxOjQyICB0YW5kZXJzCgogICAqIFJFQURNRS5vc1g6CgogICBQZXJsIHByb2JsZW1zIChiZWxpZXZlZCB0byBiZSkgZml4ZWQKCjIwMDctMDctMDMgMTI6NTYgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICByZW1vdmUgZXhlY3V0YWJsZSBmbGFnIGZyb20gU1ZOIHByb3BlcnRpZXMKCjIwMDctMDctMDIgMDY6NTMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHZhY20uYzoKCiAgIFJlbW92ZSB1bnVzZWQgb2lkIGRlY2xhcmF0aW9ucwoKMjAwNy0wNy0wMiAwNjowMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBBZGQgbWlzc2luZyByZXR1cm4gdmFsdWUgdG8gX210ZUV2ZW50X2ZpcmVfbm90aWZ5LgoKMjAwNy0wNy0wMiAwNTozMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgoKICAgUmVtb3ZlIHRoZSBkZWNsYXJhdGlvbiBvZiBhbiB1bmRlZmluZWQgc3RhdGljIGZ1bmN0aW9uLgoKMjAwNy0wNy0wMSAyMDozMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1uaWdodGx5LCBkaXN0L25zYi1wYWNrYWdlOgoKICAgbWFrZSBnZXRvcHRzIHdvcmsgb24gVHJ1NjQgYnkgcmVzcGF3bmluZyBpbiBQb3NpeCBtb2RlCgoyMDA3LTA3LTAxIDE5OjU2ICB0YW5kZXJzCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiAtLWRpc2FibGUtYXMtbmVlZGVkIG5vdyBhbGxvd3MgdG8gcmV2ZXJ0IHRvIHRoZQogICBmb3JtZXIgZGVmYXVsdCBiZWhhdmlvdXIgb2YgbGlua2luZyBsaWJwZXJsIHRvIGFwcGxpY2F0aW9ucwogICByYXRoZXIgdGhhbiBOZXQtU05NUCBMaWJyYXJpZXMgKGluIGNhc2Ugb2YgYW55IHByb2JsZW1zKQoKMjAwNy0wNi0zMCAwNjoxNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFjdHVhbGx5IGNhbGwgcmVtb3ZlZmlsZXMKCjIwMDctMDYtMjggMjM6NTAgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBORVdTOiBzbm1wbGliOiBBZGRlZCBHQ0MgZm9ybWF0IGNoZWNraW5nIGF0dHJpYnV0ZXMgdG8gdGhlIGRlYnVnCiAgIGZ1bmN0aW9ucy4KCjIwMDctMDYtMjggMjM6MzcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgUmVtb3ZlIGNhc3RzIG9mIHVudXNlZCB2YWx1ZXMKCjIwMDctMDYtMjggMjM6MzYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKMjAwNy0wNi0yOCAyMjowOSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICByZW5hbWUgbGFzdCBvY2N1cmVuY2Ugb2YgREVGQVVMVF9NSUJbRElSXVMgdG8KICAgTkVUU05NUF9ERUZBVUxUX01JQltESVJdUwoKMjAwNy0wNi0yOCAwODoxNSAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERvIG5vdCB0cmFuc2Zvcm0gdGhlIGlnbm9yZWQgcmVzdWx0IG9mIHJlYWxsb2NfZm9ybWF0X3RyYXAKCjIwMDctMDYtMjYgMjI6MTIgIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiB3b3JrIGFyb3VuZCBsaWJuZXRzbm1wYWdlbnQvbGlibmV0c25tcGhlbHBlcnMKICAgZGVwZW5kZW5jeSBpc3N1ZXMgd2hlbiBsaW5raW5nIHNubXB0cmFwZAoKMjAwNy0wNi0yNiAyMTo0NSAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiB1c2UgTERGTEFHUyB3aGVuIGJ1aWxkaW5nIGFnZW50LCBoZWxwZXJzIGFuZCBtaWIKICAgbGliIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBsaWJuZXRubXAKCjIwMDctMDYtMjYgMjE6MjggIHRhbmRlcnMKCiAgICogSU5TVEFMTDoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDctMDYtMjYgMTU6MTAgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZG9uJ3QgaW5pdGlhbGl6ZSB2YXIgaW4gZXh0ZXJuIGRlY2w7IGluc3RlYWQsIGluaXRpYWxpemUgYWN0dWFsCiAgIHZhcgoKMjAwNy0wNi0yNSAyMToyOSAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgTkVXUzogYnVpbGQ6IHVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNCAoZnJvbSAxLjUuMjIpCgoyMDA3LTA2LTI0IDEyOjU3ICB0YW5kZXJzCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEhBVkVfU1NJWkVfVCBjbGVhbnVwCgoyMDA3LTA2LTIzIDIyOjU2ICB0YW5kZXJzCgogICAqIFJFQURNRS5ocHV4MTE6CgogICBkb24ndCBzdWdnZXN0IC0td2l0aC1saWJzPS1sbm0KCjIwMDctMDYtMjIgMTU6MDUgIGR0czEyCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCB3aW4zMi9saWJzZGxsLmRzdywgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIEVuZm9yY2UgRE9TLXN0eWxlIGxpbmUgZW5kaW5ncywgdG8ga2VlcCBWaXN1YWwgU3R1ZGlvIGhhcHB5LgoKMjAwNy0wNi0yMSAxNDowMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgZGVmYXVsdCB0byB1c2luZyBpZlRhYmxlIHJld3JpdGVzCgoyMDA3LTA2LTIwIDIxOjM0ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIGZpeCB0eXBvCgoyMDA3LTA2LTE5IDIyOjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IFBlcmwtcmVsYXRlZCBhdXRvY29uZiBtZXNzYWdlcwoKMjAwNy0wNi0xOSAxNTowOCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBidWlsZDogYWRkICJCdWlsZFJlcXVpcmVzOiBwZXJsLUV4dFV0aWxzLUVtYmVkIiB0byB0aGUKICAgc3BlYyBmaWxlLCBlLmcuIGZvciBGZWRvcmEgNwoKMjAwNy0wNi0xOCAyMjoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggYnJva2VuIGNvbW1lbnQuCgoyMDA3LTA2LTE4IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgcmV2ZXJ0IGRvdWJsZSBsaW5raW5nIG9mIGxpYm5ldHNtbnAgcGFydCBvZiBwYXRjaCB0aGF0IHdhcwogICBzdXBwb3NlZCB0byBiZSBwdWxsZWQgYm9mZXIgYXBwbHlpbmcgaW4gcjE2NTM4ICh0aGFua3MgdGFuZGVycwogICBmb3IgY2F0Y2hpbmcgaXQpCgoyMDA3LTA2LTE4IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHBhdGNoIGZyb20gYXBwbGUgdG8gc2ltcGxpZnkgbWFrZWZpbGUgdGFyZ2V0CiAgIHJlZmVyZW5jZXMgaW4gc29tZSBydWxlcy4KCjIwMDctMDYtMTggMjE6MTcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBnZXQuMS5kZWY6CgogICBDSEFOR0VTOiBwYXRjaCBmcm9tIGFwcGxlIHRvIGZpeCBtaW5vciBkb2N1bWVudGF0aW9uIGJ1Z3MuCgoyMDA3LTA2LTE4IDIxOjEzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICAKCjIwMDctMDYtMTggMjE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmM6CgogICBDSEFOR0VTOiBwYXRjaCBmcm9tIGFwcGxlIHRvIGltcHJvdmUgbWVtb3J5IHJlcG9ydGluZwoKMjAwNy0wNi0xOCAyMTowOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBmaXggY3Jvc3MtY29tcGlsZSBidWlsZHMgaW4gYXBwbGVzCiAgIGJ1aWxkIGVudmlyb25tZW50LgoKMjAwNy0wNi0xOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENIQU5HRVM6IHBhdGNoOiAxNzM3MDg1OiBmcm9tIGpzYWZyYW5lazogZml4IHRoZSAtTSBzd2l0Y2ggZm9yCiAgIG1pYiBwYXJzaW5nIGJ5IGxvYWRpbmcgZGVmYXVsdHMgZmlyc3QgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHNldAogICBzbyBpdCBkb2VzIG5vdCBnZXQgb3ZlcndyaXR0ZW4gYnkgdGhlIGRlZmF1bHRzIGxhdGVyLgoKMjAwNy0wNi0xOCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBwYXRjaDogMTcyNTA0OTogZml4IGJ1bGt3YWxrIGluIGNhc2VzIG9mIG5vbi1yZXBlYXRlcgogICB1c2FnZS4KCjIwMDctMDYtMTggMTQ6MTAgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBwZXJsOiBmaXggcHJlcmVxdWlzaXRlcyBmb3IgTmV0U05NUDo6VHJhcFJlY2VpdmVyCgoyMDA3LTA2LTE4IDEzOjM5ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogZml4IHN5bnRheCBlcnJvciBpbiBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydAoKMjAwNy0wNi0xNiAyMzowMSAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBORVdTOiBwZXJsOiBCVUc6IDE2MTk4Mjc6IGxpbmsgbGlibmV0c25tcGFnZW50L2xpYm5ldHNubXB0cmFwZAogICAocmF0aGVyIHRoYW4gc25tcGQvc25tcHRyYXBkKSBhZ2FpbnN0IGxpYnBlcmwuCgoyMDA3LTA2LTE0IDE1OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCB0eXBvIGluIHVzZXIgb3V0cHV0LCBhcyBub3RlZCBvbiBjb2RlcnMKCjIwMDctMDYtMTQgMTU6MzYgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3Nob3c6CgogICB1c2UgJ3N2biBpbmZvJyB0byBxdWVyeSBmb3IgdXJsCgoyMDA3LTA2LTE0IDA0OjM3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIEFkZCBtaXNzaW5nIGFyZ3VtZW50IHR5cGUgaW4gb3JkZXIgdG8gc2lsZW5jZSBhIGdjYyB3YXJuaW5nCgoyMDA3LTA2LTEzIDA2OjM3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvIG5vdCB0cnkgdG8gYmUgY2xldmVyIGluIHRoZSBoYW5kaW5nIG9mIC1sa3ZtIGluIExBR0VOVExJQlMuCiAgIEluY2x1ZGUgaXQgaWYgYW55IHNvdWdodCBmdW5jdGlvbiBpcyBpbiBpdC4KCjIwMDctMDYtMTEgMTA6MTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKCiAgIGRvY3VtZW50IHhsYzwtPmNjX3IgY29tcGlsZXIgaXNzdWVzIHdpdGggUGVybCBvbiBBSVggKHNlZSBidWcKICAgIzE2MDAwOTkpCgoyMDA3LTA2LTEwIDIyOjI5ICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjQ3OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBBZGQgdHlwZQogICBjaGVjayBmb3IgaW50Pz9fdCBhbmQgdWludD8/X3QKCjIwMDctMDYtMTAgMjI6MjIgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyNDQ6IGZyb20gbWl0c3VydV9jaGluZW46IEFkZAogICBjb25maWd1cmUgY2hlY2sgZm9yIHNpbjZfc2NvcGVfaWQKCjIwMDctMDYtMTAgMjI6MTUgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNzI4MjQxOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQgY29uZmlndXJlIGNoZWNrCiAgIGZvciA8c3lzL3Vpby5oPiAobWFrZSBzdXJlIGlvdiBzdHJ1Y3R1cmUgaXMgZGVjbGFyZWQpCgoyMDA3LTA2LTEwIDA2OjMzICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIHN5c3RlbSBzcGVjaWZpYwogICBsaWJyYXJpZXMKCjIwMDctMDYtMTAgMDY6MjYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbHNlbnNvcnMKCjIwMDctMDYtMTAgMDY6MTggIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxkZXZzdGF0CgoyMDA3LTA2LTEwIDA2OjEzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxkbAoKMjAwNy0wNi0wOSAwODo1OCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sa3ZtCgoyMDA3LTA2LTA4IDIwOjMyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluLCBkaXN0L21ha2VyZWxlYXNlOgoKICAgRml4IHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSByMTY0Nzk6ICdtYWtlIHRlc3QgVEVTVE9QVFM9Ii1UCiAgIHRjcCInIG5vdwogICB3b3JrcyBhZ2Fpbi4gbWFrZXJlbGVhc2Ugbm93IHVzZXMgdGhlIHJpZ2h0IG9wdGlvbi4KCjIwMDctMDYtMDggMTA6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZFQVRVUkU6IDc0MTM3NTogRXh0ZW5kIC1GIGZsYWcgdG8gY292ZXIKICAgc3lzbG9nL2V4ZWN1dGUgZm9ybWF0IHN0cmluZ3MuCgoyMDA3LTA2LTA4IDEwOjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgSW1wcm92ZSBtZW1vcnkgaGFuZGxpbmcgb2Ygc3R5bGUtc3BlY2lmaWMgZm9ybWF0IHN0cmluZ3MuCgoyMDA3LTA2LTA4IDEwOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIERlZmF1bHQgdG8gcmVwb3J0aW5nIE5GUyBtb3VudHMgYXMgTmV0d29ya0Rpc2suCgoyMDA3LTA2LTA4IDA2OjAyICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxycG0gYW5kCiAgIHRoaW5ncyBpdCBkZXBlbmRzCiAgIG9uCgoyMDA3LTA2LTA4IDA1OjU5ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIG1pc3NpbmcgXAoKMjAwNy0wNi0wOCAwNTozMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sa3N0YXQKCjIwMDctMDYtMDggMDU6MjggIG1hZ2ZyCgogICAqIGFjaW5jbHVkZS5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgYSB2YXJpYXRpb24gb2YgQUNfU0VBUkNIX0xJQlMgd2hlcmUgdGhlCiAgIHJlc3VsdCB2YXJpYWJsZSBpcyBzZXR0YWJsZS4KCjIwMDctMDYtMDggMDU6MTYgIG1hZ2ZyCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZW1vdmUgdGhlIHVudXNlZCB1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVi4KICAgVGhlIFBlcmxfZXZhbF9wdiBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgYnkgdGhlCiAgIEhBVkVfUEVSTF9FVkFMX1BWX1tVTF1DIGRlZmluZXMsCiAgIHRoaXMgb25lIGlzIG5ldmVyIHNldCBieSBvdXIgY29uZmlndXJlIHNjcmlwdC4KCjIwMDctMDYtMDcgMTY6MDIgIGR0czEyCgogICAqICAuY3ZzaWdub3JlLCBhZ2VudC8uY3ZzaWdub3JlLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pc2MvLmN2c2lnbm9yZSwgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvLmN2c2lnbm9yZSwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZSwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGRpc3QvLmN2c2lnbm9yZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC8uY3ZzaWdub3JlLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLCBpbmNsdWRlL3VjZC1zbm1wLy5jdnNpZ25vcmUsIAogICAgICAgIGxvY2FsLy5jdnNpZ25vcmUsIG1hbi8uY3ZzaWdub3JlLCBtaWJzLy5jdnNpZ25vcmUsCiAgICAgIG92Ly5jdnNpZ25vcmUsICAgIHBlcmwvLmN2c2lnbm9yZSwgcGVybC9BU04vLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvLmN2c2lnbm9yZSwgcGVybC9PSUQvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyLy5jdnNpZ25vcmUsIHBlcmwvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZSwgcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmUsICAgCiAgICAgIHNubXBsaWIvLmN2c2lnbm9yZSwgdGVzdGluZy8uY3ZzaWdub3JlLCB3aW4zMi8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9iaW4vLmN2c2lnbm9yZSwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWIvLmN2c2lnbm9yZSwgd2luMzIvbGliYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGliaGVscGVycy8uY3ZzaWdub3JlLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGlic25tcC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wX2RsbC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLy5jdnNpZ25vcmUsIHdpbjMyL25ldC1zbm1wLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgd2luMzIvbmV0c25tcG1pYnMvLmN2c2lnbm9yZSwgIAogICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcGJ1bGtnZXQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBkLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZGYvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGRzZGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcGdldC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wc2V0Ly5jdnNpZ25vcmUsIHdpbjMyL3NubXBzdGF0dXMvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHRhYmxlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0ZXN0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRyYXAvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHRyYXBkLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB1c20vLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHZhY20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHdhbGsvLmN2c2lnbm9yZToKCiAgIFJlbW92ZSByZWR1bmRhbnQgQ1ZTLWFkbWluIGZpbGVzLgoKMjAwNy0wNi0wNyAxMjo1NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSGFuZGxlIHVucmVnaXN0ZXJpbmcgdGhlIGZpcnN0IFNlY3VyaXR5IE1vZGVsIGluIHRoZSBsaXN0LgogICBSZXBvcnRlZCBieSBBbGVrc2FuZHIgTG9tYW5vdi4KCjIwMDctMDYtMDcgMDk6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGhlYWRlciBmaWxlcyBmb3Igc3Rhc2hfY2FjaGUgYW5kIHN0YXNoX3RvX25leHQgaGVscGVycy4KCjIwMDctMDYtMDcgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBTZXBhcmF0ZSBvdXQgaGVhZGVyIGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgQwogICBzb3VyY2UgZmlsZS4KCjIwMDctMDYtMDcgMDg6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBTb3J0IGxpc3RzIG9mIGhlbHBlcnMgKHNvdXJjZSBjb2RlLCBvYmplY3QgZmlsZXMgYW5kIGhlYWRlcnMpLgogICBUaGlzIHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBzcG90IGZpbGVzIHRoYXQgaGF2ZSBiZWVuIG9taXR0ZWQuCgoyMDA3LTA2LTA3IDA4OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBQcm90ZWN0IGFnYWluc3Qgc3lzdGVtcyB3aXRob3V0IFNfSVNESVIuCgoyMDA3LTA2LTA2IDIyOjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFdlIGFyZW4ndCB1c2luZyBsaWJ0b29scyBkbG9wZW4gc3VwcG9ydCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0bwogICBjb25maWd1cmUgZm9yIGl0CgoyMDA3LTA2LTA2IDEyOjM3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogQUlYOiB1c2UgIi1XbCwtYnJ0bCIgd2hlbiBjb21waWxpbmcgd2l0aCBnY2MKCjIwMDctMDYtMDYgMTA6MjYgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZW1vdmUgdGhlIHVudXNlZCB1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVi4KICAgVGhlIFBlcmxfZXZhbF9wdiBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgYnkgdGhlCiAgIEhBVkVfUEVSTF9FVkFMX1BWX1tVTF1DIGRlZmluZXMsCiAgIHRoaXMgb25lIGlzIG5ldmVyIHNldCBieSBvdXIgY29uZmlndXJlIHNjcmlwdC4KCjIwMDctMDYtMDYgMTA6MjAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBFbnN1cmUgb3V0cHV0IGlzIHByb3Blcmx5IGRpcmVjdGVkIHRvIHN5c2xvZy4KICAgT3RoZXJ3aXNlLCBwcm9ibGVtcyBpbiB0aGUgY29uZmlnIGVudmlyb25tZW50IGNhbiB0cmlnZ2VyCiAgIGVycm9ycyBiZWluZyBkaXJlY3RlZCB0byBzdGRlcnIsIGFuZCBzdWJzZXF1ZW50IGxvZ2dpbmcKICAgb3V0cHV0IGdldHMgbG9zdC4KCjIwMDctMDYtMDYgMTA6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vcmUgaGVscGZ1bCBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNy0wNi0wNiAwNTo1MyAgbWFnZnIKCiAgICogIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBDSEFOR0VTOiBtaXNjOiBEb24ndCB1c2UgdGhlIGxlZ2FjeSBzeW1ib2wKICAgU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCgoyMDA3LTA2LTA1IDE3OjQ5ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBleHBsaWNpdCBkZWZpbml0aW9ucyBvZiBpdGVtcyB0aGF0CiAgIGF1dG9oZWFkZXIgYWxzbyBkZWZpbmVzCgoyMDA3LTA2LTA1IDE1OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNzI5NjI5OiBGaXggbWVtb3J5IGxlYWsgaW4gZGlzbWFuCiAgIGFnZW50LgoKMjAwNy0wNi0wNSAxNDo1MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogU3VwcG9ydCBwZXItdHJhcCBmb3JtYXQgc3BlY2lmaWNhdGlvbnMKCjIwMDctMDYtMDUgMDY6NTcgIG1hZ2ZyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE5FV1M6IG1pc2M6IEFkZCBjb25maWcgcmVyZWFkaW5nIHN1cHBvcnQgdG8gdGhlIHN1YmFnZW50CiAgIGdlbmVyYXRlZCBieSBuZXQtc25tcC1jb25maWcgLS1jb21waWxlLXN1YmFnZW50CgoyMDA3LTA2LTA0IDIyOjI5ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogU2ltcGxpZnkgdGhlIGRldGVjdGlvbiBvZiBsaWJyYXJpZXMgbmVlZGVkIGZvcgogICBnZXRob3N0YnluYW1lCgoyMDA3LTA2LTA0IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wbGliOiBDaGFuZ2Ugc25tcF9zZXNzX2FkZF9leCB0byBjb25zaXN0ZW50bHkgY2xvc2UgYW5kCiAgIGRlbGV0ZSB0aGUgdHJhbnNwb3J0IGFyZ3VtZW50IG9uIGZhaWx1cmUsIGVhcmxpZXIgdGhlIGxpdmVuZXNzIG9mCiAgIHRoZSB0cmFuc3BvcnQgYXJndW1lbnQgd2FzIHVuZGVjaWRlZC4KCjIwMDctMDYtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBkaXN0L21ha2VyZWxlYXNlLCB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdDogc3VwcG9ydCBhIC1uIGZsYWcgdG8gUlVOVEVTVFMgdG8gcHJpbnQgdGhlIHRlc3QKICAgbnVtYmVyIGZvdW5kIGluIHRoZSB0ZXN0IGZpbGUgYXMgb3Bwb3NlZCB0byB0aGUgbnVtZXJpY2FsIGNvdW50CgoyMDA3LTA2LTA0IDEzOjA5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjM3OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBNb3ZlCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGF0IHRoZSB0b3Agb2YgbmV0c25tcF91ZHBfc2VuZHRvCgoyMDA3LTA2LTA0IDEyOjUyICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjMzOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtYWtlIHN1cmUKICAgdHlwZSBuZmRzX3QgaXMgZGVmaW5lZAoKMjAwNy0wNi0wNCAxMjoxMyAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjMwOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBnYWlfc3RyZXJyb3IoKQoKMjAwNy0wNi0wNCAxMDozNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMjY6IGZyb20gbWl0c3VydV9jaGluZW46IG1ha2Ugc3VyZQogICBJRl9OQU1FU0laRSBpcyBkZWZpbmVkCgoyMDA3LTA2LTA0IDEwOjI4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjIzOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBuZXRsaW5rIHNvY2tldAoKMjAwNy0wNi0wNCAwOTo0NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFsc28gc2tpcCB0aGlzIHRlc3Qgb24gSVJJWDY0CgoyMDA3LTA2LTAyIDE2OjEzICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXggY29tcGlsYXRpb24gb24gSVJJWAoKMjAwNy0wNi0wMiAwODoyNCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGFwaTogRG8gbm90IHVzZSBnZXRzZXJ2YnluYW1lIHRvIGZpbmQgZGVmYXVsdCBwb3J0CiAgIG51bWJlcnMsIGp1c3QgaGFyZGNvZGUgdGhlbSBhbmQgbGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZW0gaWYKICAgbmVlZGVkLgoKMjAwNy0wNi0wMSAyMjo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBMaW5rIGxpYmRsIGFnYWluc3QgbGlibmV0c25tcG1pYnMgaW5zdGVhZCBvZgogICBzbm1wZC4KICAgRml4ZXMgdGhlIGJ1aWxkIG9uIChzb21lKSBTb2xhcmlzIHN5c3RlbXMuCgoyMDA3LTA2LTAxIDIyOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMIGNvbmZpZ3VyZSBjaGVjayBvbiBJUklYCiAgIChyZWdyZXNzaW9uIGZyb20gcjE2NDUxKQoKMjAwNy0wNi0wMSAxNDozMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5FV1M6IHNubXB0cmFwZDogV2l0aGRyYXcgZGVwcmVjYXRlZCBvcHRpb25zLgogICAoVGhyZWUgYW5kIGEgaGFsZiB5ZWFycycgd2FybmluZyBzaG91bGQgYmUgZW5vdWdoIGZvciBhbnlvbmUhKQoKMjAwNy0wNS0zMSAyMzo1MSAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogTGluayBsaWJrdm0gYW5kIGxpYndyYXAgdG8gbGlibmV0c25tcGFnZW50CiAgIGluc3RlYWQgb2Ygc25tcGQuCiAgIEZpeGVzIHRlc3QgIzQ0IChQZXJsIHN1YmFnZW50KSBvbiBzeXN0ZW1zIHVzaW5nIG9uZSBvZiB0aG9zZQogICBsaWJyYXJpZXMuCgoyMDA3LTA1LTMxIDIzOjQyICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmg6CgogICBDSEFOR0VTOiBzbm1wZDogTW92ZSBzeXNPUkxhc3RDaGFuZ2UgZnJvbSBtaWJJSS9zeXN0ZW1fbWliIHRvCiAgIG1pYklJL3N5c09SVGFibGUgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBhbmQgdGhlIHVzZSB0b2dldGhlci4KCjIwMDctMDUtMzEgMTQ6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGxvZ2dpbmcgb2YgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24uCgoyMDA3LTA1LTMxIDEwOjEwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFJlbW92ZSBib2d1cyBkZWJ1ZyBvdXRwdXQuCgoyMDA3LTA1LTMxIDA5OjQ4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlLgoKMjAwNy0wNS0zMSAwOTo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogRkVBVFVSRTogMTE1OTk0NzogQWxsb3cgY29udHJvbCBvZiB0cmFwaGFuZGxlCiAgIGRhdGEgZm9ybWF0CgoyMDA3LTA1LTMwIDIyOjUzICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvT0lEL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBBSVg6IGJ1aWxkIGZpeGVzIGZvciBlbWJlZGRlZCBQZXJsCgoyMDA3LTA1LTMwIDIyOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSFAtVVggMTEueCBhbmQgSVJJWCA2LjUgYnVpbGQgZml4IChyZWdyZXNzaW9uIGludHJvZHVjZWQgYnkKICAgcjE2NDUxKQoKMjAwNy0wNS0yOSAyMzowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBtYWtlIHVzZSBvZiBBQ19QUk9HX1NFRC9BQ19QUk9HX0dSRVAgYW5kIC8gdG8KICAgZnVydGhlciBtaW5pbWl6ZSBzZWQvZ3JlcCBwcm9ibGVtcwoKMjAwNy0wNS0yOSAyMjo0MiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIHRoZSBkZWZhdWx0X3RhcmdldCBhcmd1bWVudCBpZiBpdCBpcwogICBub24tTlVMTCwgbm90IGlmIGl0IGlzIE5VTEwuCgoyMDA3LTA1LTI5IDEwOjMwICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgogICBBbHNvIGNoYW5nZSByZWNlbnRseSBhZGRlZCBTVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9IQVNfU1NfRkFNSUxZLgoKMjAwNy0wNS0yOSAxMDoyNyAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCByZWNlbnQgbWZkIHJld3JpdGVzCgoyMDA3LTA1LTI5IDEwOjIyICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgogICBBbHNvIGNoYW5nZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBmb3IgY29uc2lzdGVuY3kuCgoyMDA3LTA1LTI4IDIzOjMwICBtYWdmcgoKICAgKiAgUE9SVElORywgYWNjb25maWcuaCwgYWNpbmNsdWRlLm00LCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAKICAgICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIG1vcmUgbmV0LXNubXAgc3BlY2lhbHMgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHRzIHRvIGVhc2UgbWFpbnRlbmFuY2UuCgoyMDA3LTA1LTI4IDE2OjMxICBkdHMxMgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiAxNDA3NDc2OiBSZW5hbWUgJ3N0cmljdENvbW1lbnRUZXJtJwogICB0byByZWZsZWN0IHRoZSBhY3R1YWwgYmVoYXZpb3VyLgoKMjAwNy0wNS0yOCAxNToyNSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDEwNDE4ODg6IENoZWNrIGRpcmVjdG9yeSBwYXRocyBmb3IKICAgY29uZmlnIGZpbGVzLgoKMjAwNy0wNS0yOCAxMzoxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDg1MTg4NzogUmVwb3J0IHJhbmdlIGluZm9ybWF0aW9uIGZvcgogICBpbnZhbGlkIFNFVCByZXF1ZXN0cy4KCjIwMDctMDUtMjggMTI6MDggIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmM6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTcxOTczMDogZnJvbSBhcGVyc3Nvbjogc3VwcG9ydCBmb3IKICAgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZCBpcEFkZHJlc3NUYWJsZQogICBQYXJ0IDIgKFNvbGFyaXMtc3BlY2lmaWMgbmV3IGZpbGVzKQoKMjAwNy0wNS0yOCAxMjowMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDEyOjAwICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2VudW1zLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfb2lkcy5oOgoKICAgTkVXUzogTGludXg6IFBBVENIOiAxNzI0NjAyOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtZmQtYmFzZWQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUgaW1wbGVtZW50YXRpb24KCjIwMDctMDUtMjggMTE6NTkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDEwOjA5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIERvY3VtZW50IHRoZSAtQ0Ugb3B0aW9uLgoKMjAwNy0wNS0yNyAyMTo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIFNvbWUgbGFtZSBsaW5rZXJzIChlLmcuIG9uIEhQLVVYIDExLjIzL0lBNjQpIG5lZWQgcXVpdGUgYSBiaXQgb2YKICAgaGVscCB0byBzdWNjZXNzZnVsbHkgbGluayB0aGUgUGVybCBtb2R1bGVzLgoKMjAwNy0wNS0yNyAyMTozMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgQ0hBTkdFUzogc25tcHdhbGs6IFBBVENIOiAxNzIzNjIwOiBTcGVjaWZ5IGFuIGV4cGxpY2l0IGVuZC1wb2ludAogICBmb3IgdGhlIHdhbGsuCiAgIEFuIGFsdGVybmF0aXZlIChtb3JlIGZsZXhpYmxlKSBhcHByb2FjaCB0byB0aGUgcHJvcG9zZWQgcGF0Y2gsCiAgIGJ1dCBvbmUgdGhhdAogICBwcm92aWRlcyBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkuIEFsc28gYWRkcmVzc2VzIEZlYXR1cmUgUmVxdWVzdAogICAjNzIyNzg0LgoKMjAwNy0wNS0yNyAyMDo1MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZCBkZXNjcmlwdGlvbnMgdG8gQUNfREVGSU5FOyBkcm9wIG9ic29sZXRlIEFDX0NIRUNLX0xJQihtLAogICBhc2luKS4KCjIwMDctMDUtMjcgMTk6MjggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogNDU0MDI4OiBEZXRlY3QgZW1wdHkgTUlCIGluZGV4IGZpbGVzLgoKMjAwNy0wNS0yNyAxOTowNiAgZHRzMTIKCiAgICogIGFnZW50L3NubXBkLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZFQVRVUkVTOiAxMDE5NDI5OiBTZXQgc3VwcGxlbWVudGFyeSBncm91cHMgdmlhCiAgIGluaXRncm91cHMoMykKCjIwMDctMDUtMjcgMDY6MjcgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTcxOTczMDogZnJvbSBhcGVyc3Nvbjogc3VwcG9ydCBmb3IKICAgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZCBpcEFkZHJlc3NUYWJsZQoKMjAwNy0wNS0yNyAwNjoyMCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgZ3JhbW1hciBmaXgKCjIwMDctMDUtMjYgMTY6NDEgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2J1aWxkLnBsLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMiBJUHY2IGJ1aWxkIGZpeGVzLiBJUHY2IG5vdyByZXF1aXJlcyBQU0RLLgoKMjAwNy0wNS0yNiAxNToxNiAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIElQdjYgYnVpbGQgZml4ZXMgZm9yIGJ1aWxkLmJhdCwgQ29uZmlndXJlIGFuZCBSRUFETUUud2luMzIuCgoyMDA3LTA1LTI1IDIzOjAzICB0YW5kZXJzCgogICAqIFJFQURNRS5haXgsIFJFQURNRS5zb2xhcmlzLCBSRUFETUUudHJ1NjQ6CgogICBEb2N1bWVudGF0aW9uIHVwZGF0ZSB3LnIudC4gcmVjZW50IGNoYW5nZXMgKG1pYklJL2lwdjYgYW5kIEFJWAogICBzaGFyZWQgbGlicmFyeSBidWlsZGluZykuCgoyMDA3LTA1LTI1IDE4OjU0ICByc3RvcnkKCiAgICogZGlzdC9jdnNzaG93OgoKICAgdXBkYXRlIGZvciBuZXcgdXJsIGZvcm1hdCBpbiBzdm4gZW50cmllcwoKMjAwNy0wNS0yNSAxNToyOCAgdGFuZGVycwoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBTb21lIHN5c3RlbXMgKGUuZy4gSFAtVVggMTEuMjMvSUE2NCkgY3VycmVudGx5IHN0aWxsIG5lZWQKICAgIm5ldC1zbm1wLWNvbmZpZyAtLWxpYnMiIChpbnN0ZWFkIG9mIGp1c3QgLS1uZXRzbm1wLWxpYnMpIGZvcgogICBsaW5raW5nCiAgIGxpYm5ldHNubXAgdG8gYSBQZXJsIG1vZHVsZS4KCjIwMDctMDUtMjQgMjM6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogb25seSBlbmFibGUgbWliSUkvaXB2NiB0aHJvdWdoIC0tZW5hYmxlLWlwdjYgb24KICAgc3lzdGVtcyBpdCBidWlsZHMgcHJvcGVybHkgb24gKExpbnV4IGFuZCAqQlNEKQoKMjAwNy0wNS0yNCAyMzoxNSAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBTb21lIHN5c3RlbXMgKGUuZy4gSFAtVVggMTEuMjMvSUE2NCkgY3VycmVudGx5IHN0aWxsIG5lZWQKICAgIm5ldC1zbm1wLWNvbmZpZyAtLWxpYnMiIChpbnN0ZWFkIG9mIGp1c3QgLS1uZXRzbm1wLWxpYnMpIGZvcgogICBsaW5raW5nIGxpYnNubXBhZ2VudCB0byBhIFBlcmwgbW9kdWxlLgoKMjAwNy0wNS0yNCAyMjowMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgQ29ycmVjdCBvYnZpb3VzbHkgYnJva2VuIHVzZSBvZiB0aGUgS0xPT0tVUCBtYWNybyB0byBiZQogICBjb25zaXN0ZW50IGF0IGxlYXN0CgoyMDA3LTA1LTI0IDIwOjUxICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q3Lmg6CgogICBDSEFOR0VTOiBGcmVlQlNEOiBhZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB1cGNvbWluZyBGcmVlQlNEIDcKCjIwMDctMDUtMjQgMTQ6MDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIGxpYmN1cnJlbnQgdG8gMjAgdG8gbGVhdmUgc3BhY2UgZm9yIDUuNC54IHJlbGVhc2VzCgoyMDA3LTA1LTI0IDEyOjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGxpYnJhcnkgbGlua2luZyBvbiBIUC1VWCAxMS4yMy9JQTY0CgoyMDA3LTA1LTIzIDE5OjA1ICB0YW5kZXJzCgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5pbiwgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgTkVXUzogc25tcGxpYjogQlVHOiAxNjE5ODI3OiBsaW5rIG5ldC1zbm1wIGxpYnJhcmllcyBhbmQgYmluYXJpZXMKICAgYWdhaW5zdCB0aGUgbmV0LXNubXAgbGlicmFyaWVzIHRoZXkgcmVhbGx5IGRlcGVuZCBvbgogICAtIHJlZmxlY3QgbGlicmFyeSBpbnRlcmRlcGVuZGVuY2llcyBhdCBsaW5rIHRpbWUKICAgLSBmaXggZGVwZW5kZW5jaWVzIG9uIGxpYmNyeXB0bywgbGlicGtjczExIGFuZCBsaWJrc3RhdAogICAtIGluc3RhbGwgbGlicmFyaWVzIGluIGNvcnJlY3Qgb3JkZXIgKGltcG9ydGFudCBmb3IgbGlidG9vbAogICByZWxpbmtpbmcpCiAgIE5FV1M6IFBlcmw6IGxpbmsgUGVybCBtb2R1bGVzIGFnYWluc3QgdGhlIGV4YWN0IHNldCBvZiBsaWJyYXJpZXMKICAgdGhleSBkZXBlbmQgb24KCjIwMDctMDUtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB1c2Ugc3ZuIGV4cG9ydCBpbnN0ZWFkIG9mIGNoZWNrb3V0CgoyMDA3LTA1LTIyIDAwOjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSB3aW5FeHRETEwgaW4gY29tbWVudCBjaGVjawoKMjAwNy0wNS0yMSAyMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmM6CgogICAvLyAtPiBDIGNvbW1lbnQKCjIwMDctMDUtMjEgMjM6MzMgIHRhbmRlcnMKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjEwLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi45Lmg6CgogICBzeW5jIHdpdGggNS40LCB0aGVzZSBhcmUgb2Jzb2xldGUgbm93CgoyMDA3LTA1LTIxIDIzOjExICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEaXNhYmxlIGlubGluaW5nIG9uIHNvbGFyaXMgYXMgdGhlcmUgYXJlIHNvbWUKICAgbGlua2luZyBlcnJvcnMgdGhhdCBzaG93IHVwIGlmIHRoZSBpbmxpbmUgc3VwcG9ydCBpcyBsZWZ0CiAgIGVuYWJsZWQuCgoyMDA3LTA1LTIxIDA2OjA1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBdCBsZWFzdCBTdW4gQyA1LjcgZmFpbHMgaWYgb25lIHRyaWVzIHRvCiAgIGFjY2VzcyBfX2Z1bmNfXyBpbiBhIGV4dGVybiBpbmxpbmUgZnVuY3Rpb24sIHNvIHRlc3QgZm9yIHRoYXQKICAgY2FzZS4KCjIwMDctMDUtMjAgMjE6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogc25tcGxpYjogQlVHOiAxNjE5ODI3OiBsaW5rIGFnYWluc3QgbmVlZGVkIGV4dGVybmFsCiAgIGxpYnJhcmllcyBhdCBsaWJyYXJ5IGxpbmsgdGltZSAod2hlcmUgdGhleSBhcmUgcmVmZXJlbmNlZCksCiAgIHJhdGhlciB0aGFuIGFwcGxpY2F0aW9uIGxpbmsgdGltZS4KICAgQWxyZWFkeSBjb3ZlcnMgbW9zdCBvZiBsaWJuZXRzbm1wbWlicycgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLgogICBGaXhlcyBidWlsZCBpc3N1ZXMgb24gc29tZSBwbGF0Zm9ybXMgKGUuZy4gYnVpbGRpbmcgd2l0aCBzaGFyZWQKICAgbGlicmFyaWVzIG9uIEFJWCkuIFRlc3RlZCBvbiBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgTGludXgsCiAgIFNvbGFyaXMsIEhQLVVYLCBBSVggYW5kIElSSVguCgoyMDA3LTA1LTE5IDE1OjI3ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hlY2sgZm9yIHN1cHBvcnQgb2Ygc3RhdGljIGlubGluZSBmdW5jdGlvbnMKICAgaW5zdGVhZCBvZiBuZXN0ZWQgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgd2hlbiBkZXRlcm1pbmluZyBpZgogICBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyB3b3JrCgoyMDA3LTA1LTE5IDA4OjQwICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHVzZSBvZiB0aGUgQzk5IHByZWRlZmluZWQgdmFyaWFibGUKICAgX19mdW5jX18gaW4gYWRkaXRpb24gdG8gdGhlIEdDQyBzeW1ib2wgX19GVU5DVElPTl9fIHRvIGdldCB0aGUKICAgbmFtZSBvZiB0aGUgY3VycmVudCBmdW5jdGlvbgoKMjAwNy0wNS0xOCAxODoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MjEwOTY6IGZyb20gbWl0c3VydV9jaGluZW46IHJlbW92ZQogICB1bnVzZWQgdmFyaWFibGUgc3RhdHMgZnJvbSBrZXJuZWwgZXh0cmFjdGlvbiBmb3IgYmV0dGVyCiAgIHBvcnRhYmlsaXR5LgoKMjAwNy0wNS0xOCAxODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MTkyNTQ6IGZyb20gIkNocmlzdGFuIEp1bmciOiB1cGRhdGUKICAgSFJGU19pZ25vcmUgbGlzdCB0byBjdXJyZW50IGxpbnV4IGxpa2VseWhvb2RzCgoyMDA3LTA1LTE4IDE4OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaDogMTcxOTI1MzogZnJvbSAiQ2hyaXN0aWFuIEp1bmciOiBmaXgKICAgc2tpcE5GU0luSG9zdFJlc291cmNlcyBzbyBpdCBkb2VzIG5vdCBicmVhayBvbiB0aGUgc2Vjb25kIHdhbGsgb2YKICAgdGhlIHRhYmxlLgoKMjAwNy0wNS0xOCAxNzo1NSAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlcmFuIGF1dG9oZWFkZXIgYW5kIGFkanVzdGVkIGFjY29uZmlnLmggYWZ0ZXIgY2hhbmdlcyBpbiByMTYzODcKCjIwMDctMDUtMTggMTc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxNTQwNjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogcmVnaXN0cmF0aW9uCiAgIG9yZGVyaW5nIGZpeGVzIGZvciBpY21wU3RhdHNUYWJsZQoKMjAwNy0wNS0xOCAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzE1Mzk1OiBmaXggaWNtcCB0YWJsZSBlcnJvcnMgaW4gbmV3IGljbXAKICAgY29kZQoKMjAwNy0wNS0xOCAxNzo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgCgoyMDA3LTA1LTE4IDE1OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogQUlYOiBmaXggZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBidWlsZGluZyBpbnN0ZWFkIG9mIGZvcmNpbmcKICAgc3RhdGljCgoyMDA3LTA1LTE4IDE0OjE4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfQ0hFQ0tfTUVNQkVSUyBpbnN0ZWFkIG9mCiAgIEFDX0NIRUNLX1NUUlVDVF9GT1Igd2hlbiBjaGVja2luZyBmb3Igc3RydWN0IGlwc3RhdCBtZW1iZXJzIGluCiAgIG9yZGVyIHRvIG1ha2UgY29uZmlndXJlLmluIHNtYWxsZXIKCjIwMDctMDUtMTggMTA6MjIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gZm9yCiAgIGhvc3QvaHJfc3RvcmFnZQoKMjAwNy0wNS0xOCAwOTo1NyAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IERvIG5vdCB0ZXJtaW5hdGUgb24gU0lHQ0hMRCBzaW5jZSBkYXNoIGFuZAogICBzb3VtZSBib3VybmUgc2hlbGxzIHdpbGwgZXhpdCB0aGUgbWFpbiBzaGVsbCB3aGVuIGEgc3Vic2hlbGwKICAgdGVybWluYXRlcyBpbiB0aGF0IGNhc2UuCgoyMDA3LTA1LTE4IDA5OjIyICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgVW5kb2luZyBhY2NpZGVudGFsIGNoYW5nZSBjb21taXR0ZWQgaW4gcjE2MzczLgoKMjAwNy0wNS0xNyAyMzoyMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMzc6IEltcGxlbWVudCBfc2Vzc19vcGVuIGluIHRlcm1zCiAgIG9mIHNubXBfc2Vzc19hZGQKCjIwMDctMDUtMTcgMjI6MTYgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHNlbmRpbmcgc28gdGhhdAogICBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHJlY2VwdGlvbiBzbwogICB0aGF0IGV4cGxpY2l0IHNwZWNpZmljYXRpb24gb2YgcG9ydCAxNjIgc2hvdWxkIGJlIHVubmVjZXNzYXJ5CiAgIENIQU5HRVM6IGFwcHM6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHNlbmRpbmcgc28gdGhhdAogICBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTYyMDQyNDogSG9ub3IKICAgTkVUU05NUF9EU19MSUJfREVGQVVMVF9QT1JUIG92ZXIgdGhlIGRlZmF1bHQgc3lzdGVtCgoyMDA3LTA1LTE3IDIxOjUzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzEwNjMyOiBmcm9tIG1hdmFybGV5OiBmaXggbWVtb3J5IGxlYWsgb24KICAgYnJva2VuIGNvbnRhaW5lciBpbnNlcnRpb25zIGZvciB0aGUgaXBBZGRyZXNzVGFibGUKCjIwMDctMDUtMTcgMTg6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNzE5MjQ0OiBmaXggbWZkIGdlbmVyYXRpbmcgbWFwIGZ1bmN0aW9uCgoyMDA3LTA1LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgTkVXUzogc25tcGQ6IHBhdGNoOiAxNzA4MjQzOiBmcm9tIG5ob3JtYW46IGltcGxlbWVudCB0aGUKICAgaXBEZWZhdWx0Um91dGVUYWJsZSBvbiBsaW51eAoKMjAwNy0wNS0xNyAxNjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgTkVXUzogcG9ydHM6IHBhdGNoOiAxNzA2MzQ0OiBmcm9tIG5heWxvcjogZml4IGNvbXBpbGF0aW9uIHdpdGgKICAgY3lnd2luCgoyMDA3LTA1LTE3IDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBORVdTOiBzbm1wZDogcGF0Y2g6IDE3MDAxNTc6IGZyb20gYWZyaWthOiBmaXhlcyBvcmRlcmluZyBvZiBleGVjCiAgIHRva2VucyBpbiB0aGUgcmVzdWx0aW5nIG1pYiB0cmVlCgoyMDA3LTA1LTE3IDE1OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTYxNzI1NTogZml4IGxlbmd0aCBvZiB0aGUgaGlzdG9yeSBhcnJheQogICB0byBtYXRjaCBjb2RlLgoKMjAwNy0wNS0xNyAxMzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTIyNTQ0MDogQXBwbHkgaW50ZW50IG9mIHBhdGNoOiB0byBkZWxheQogICBzaWdodXAgdGlsbCBpdCBpcyBzYWZlLgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IHBhdGNoOiAxMjI1NDQwOiBBcHBseSBpbnRlbnQgb2YgcGF0Y2g6IHRvCiAgIGRlbGF5IHNpZ2h1cCB0aWxsIGl0IGlzIHNhZmUuCgoyMDA3LTA1LTE3IDEzOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBjb25maWdfZXJyb3IgaW5zdGVhZCBvZiBjb25maWdfcmVxdWlyZSBvZgogICBhIGJvZ3VzIGZpbGUvI2Vycm9yIHRvIGdlbmVyYXRlIGVycm9yIG1lc3NhZ2VzIGF0IGNvbmZpZ3VyZSB0aW1lLgoKMjAwNy0wNS0xNyAwNDozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2g6IDE2NDU2OTg6IGZpeCA2NC1iaXQgc2lnbmVkIGludGVnZXIKICAgZW5jb2RpbmcKCjIwMDctMDUtMTYgMjM6NTMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgQ0hBTkdFUzogSFAtVVg6IEhQLVVYIG5lZWRzIF9SRUVOVFJBTlQgZGVmaW5lZCB0byBwaWNrIHVwCiAgIHN0cnRva19yLgogICBPdGhlcndpc2UsIGF0IGxlYXN0IGZvciA2NC1iaXQgY29kZSwgc3RydG9rX3Igd2lsbCBub3Qgd29yawogICBhbmQgd2lsbCBtYWtlIG5ldC1zbm1wIHNlZ2ZhdWx0LgoKMjAwNy0wNS0xNiAyMzozOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBwYXRjaCAxNjI1MDY5IChyMTYzNjUpIHRvIG5vdCBicmVhayB0aGUgYnVpbGQgb24gU29sYXJpcwogICAyLjYvNwoKMjAwNy0wNS0xNSAxNzozMyAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICAtIGFkZCB3YXJuaW5nIGlmIHN0YXIgbm90IGF2YWlsYWJsZQogICAtIGZpeCBwYXR0ZXJuIHRvIGV4Y2x1ZGUgLnN2biBkaXJzIGZyb20gdGFyYmFsbHMKCjIwMDctMDUtMTUgMTU6NTUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgd2FybiBpZiBzdGFyIG5vdCBhdmFpbGFibGUKCjIwMDctMDUtMTUgMTQ6MzYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBmaXggdHlwbwoKMjAwNy0wNS0xNCAyMTo0OSAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAyMTo0OCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAxNTo1NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE2MjUwNjk6IHNwZWVkIGltcHJvdmVtZW50cyBmb3Igc29sYXJpcwogICByb3V0aW5nIHRhYmxlIGFjY2VzcwoKMjAwNy0wNS0xNCAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNTk1NTY4OiBmcm9tIGN5cmlsX21hcmdhcmlhOiBmaXgKICAgZGVsZWdhdGVkIFNFVCByZXF1ZXN0cyBmcm9tIGFnZW50eCBzdWJhZ2VudHMKCjIwMDctMDUtMTQgMTQ6MDQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgdG8gcG9pbnQgdG8gd2lraSBhbmQgYSBmZXcgbW9yZSBjdnMgLT4gc3ZuIGNoYW5nZXMKCjIwMDctMDUtMTMgMTQ6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZWFkIHRoZSBjb25maWcgcGFyYW1ldGVycyBkZWZUYXJnZXQgYW5kCiAgIGRlZkRvbWFpbiBmcm9tIHNubXAuY29uZiBhcyB3ZWxsIGFzIGZyb20gPGFwcGxpY2F0aW9uPi5jb25mCgoyMDA3LTA1LTEyIDExOjE3ICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRGVhbGxvY2F0ZSB0aGUgX21pYmluZGV4ZXMgY2FjaGUgaW4KICAgc2h1dGRvd25fbWliIHRvIG1ha2UgZm9yIGEgY2xlYW5lciBleGl0IG9mIHRoZSBsaWJyYXJ5CgoyMDA3LTA1LTEyIDExOjE0ICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRGVhbGxvY2F0ZSB0aGUgY29uZm1pYnMgYW5kIGNvbmZtaWJkaXJzCiAgIHZhcmlhYmxlcyBpbiBzaHV0ZG93bl9taWIgdG8gbWFrZSBmb3IgYSBjbGVhbmVyIGV4aXQgb2YgdGhlCiAgIGxpYnJhcnkKCjIwMDctMDUtMTEgMjE6MDYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODczMzY6IFN0YXJ0IHVzaW5nIHRoZSBlbmhhbmNlZAogICByZWFkX2NvbmZpZyBpbnRlcmZhY2UKCjIwMDctMDUtMTEgMjA6MzMgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAyIG9mIHRoZSBwYXRjaCAtIFdoZW4gcmVnaXN0ZXJpbmcKICAgbXVsdGlwbGUgcHJlbWliIGhhbmRsZXJzIG9ubHkgdGhlIGxhc3Qgb25lIHdhcyByZWdpc3RlcmVkIHByZW1pYiwKICAgdGhlIG90aGVycyB3ZXJlIHJlZ2lzdGVyZCBhdCB0aGUgbm9ybWFsIHRpbWUuIFRoaXMgcGF0Y2ggcHV0cyBhbGwKICAgcmVnaXN0cmF0aW9uIGluIG9uZSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBwcm9ibGVtYXRpYyB2YWx1ZSBhcwogICBhbiBhcmd1bWVudCBhbmQgbWFrZXMgdGhlIG9sZCBmdW5jdGlvbnMgdGhpbiB3cmFwcGVycyBvZiB0aGUgbmV3CiAgIG9uZQoKMjAwNy0wNS0xMSAyMDoyNCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFOiBzbm1wbGliOiBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMyBvZiB0aGUgcGF0Y2ggLSB1c2UKICAgdGhlIHNhbWUgYWxnb3JpdGhtIHRvIGRldGVybWluZSB3aGF0IHRvIHVucmVnaXN0ZXIgYXMgaXMgdXNlZCB0bwogICBkZXRlcm1pbmUgd2hhdCB0byByZWdzdGVyCgoyMDA3LTA1LTExIDE2OjMyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIERvbid0IGxvZyBob3N0L2hyX3Byb2MgZXZlbnRzIGluIHRoZSBzbm1wZCBkb21haW4KCjIwMDctMDUtMTEgMTY6MjcgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRGVjb3JhdGUgbW9yZSBkZWJ1ZyBsaW5lcyB3aXRoIHRoZSB0YWcgdGhhdCBjb250cm9scyB0aGUgbG9nCgoyMDA3LTA1LTExIDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2Mjg2MTM6IFJlc3RvcmUgbWVtVG90YWxGcmVlLjAgb24gU29sYXJpcwoKMjAwNy0wNS0xMCAyMTo1MiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbiwgcHl0aG9uL3NldHVwLnB5OgoKICAgTkVXUzogcHl0aG9uOiBQQVRDSDogMTcxNjExNDogTGV0IHB5dGhvbiBidWlsZCBpbiBzb3VyY2UgdHJlZQogICBQYXRjaCBwcm92aWRlZCBieSBKb2NoZW4gRnJpZWRyaWNoIChEZWJpYW4gcGF0Y2ggIzM4KS4KCjIwMDctMDUtMTAgMDU6MTggIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAxIG9mIHRoZSBwYXRjaCAtIGxlc3NlbnMgdGhlIHNjb3BlIG9mCiAgIHRoZSBsdG1wMiB2YXJpYWJsZQoKMjAwNy0wNS0wOSAyMzo1NyAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIGRvY3VtZW50IG9wdGltaXplZCBJUklYIGNwdSBzdGF0cwoKMjAwNy0wNS0wOSAyMzo0OSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uaDoKCiAgIE5FV1M6IGlyaXg6IFBBVENIOiAxNzA5NzQ4OiBPcHRpbWl6ZWQgSVJJWCBjcHUgc3RhdHMKCjIwMDctMDUtMDkgMjE6MjMgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3Nob3c6CgogICB1cGRhdGUgdG8gc2hvdyBzdm4gcmVwbyB0b28KCjIwMDctMDUtMDkgMTU6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgaWNtcFN0YXRzVGFibGUgaXMgb25seSBpbXBsZW1lbnRlZCBmb3IgTGludXgKCjIwMDctMDUtMDggMTk6NDggIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJldmVydCBtaXN0YWtlbmx5IGNvbW1pdHRlZCBleHRyYSB0cmFjZSBsb2dzCgoyMDA3LTA1LTA3IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHVwZGF0ZSBhZ2VudDo6ZGVmYXVsdF9zdG9yZSBwZXJsIG1vZHVsZSBmb3IgbmV3IGRlZnMKCjIwMDctMDUtMDcgMjA6MjQgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBtb3JlIHN2biBjb252ZXJzaW9uIGZpeGVzCgoyMDA3LTA1LTA3IDIwOjIzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTcxMjk4ODogZGVmYXVsdCBhbmQgY29uZmlndXJhYmxlIG1heGltdW0KICAgbnVtYmVyIG9mIHZhcmJpbmRzIHJldHVybmFibGUgdG8gYSBHRVRCVUxLIHJlcXVlc3QKCjIwMDctMDUtMDcgMjA6MDUgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICByZW5hbWUgb2YgYnJhbmNoIGRpcnMKCjIwMDctMDUtMDcgMTY6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhdHRlbXB0ZWQgKHVudGVzdGVkKSB1cGRhdGUKCjIwMDctMDUtMDcgMTM6NTUgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgZG9uJ3QgZGVsZXRlIHRhcmJhbGwgaWYgc2NwIGZhaWxzCgoyMDA3LTA1LTA0IDIwOjI3ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4IFNOTVAgU0VUIGZvciBJUCBhZGRyZXNzZXMgb24gNjQtYml0CgoyMDA3LTA1LTA0IDEwOjIyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBkcmFnb25mbHkuaAoKMjAwNy0wNS0wMyAyMzowMSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kcmFnb25mbHkuaDoKCiAgIENIQU5HRVM6IEJVRzogMTcxMDkxMDogaW5pdGlhbCBzdXBwb3J0IGZvciBEcmFnb25GbHkgQlNECgoyMDA3LTA1LTAzIDIyOjEwICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4IFNOTVAgU0VUIGZvciBJUCBhZGRyZXNzZXMgb24gNjQtYml0CiAgIFBhdGNoIHByb3Bvc2VkIGJ5IEplZmYgTGFuZ2UuCgoyMDA3LTA1LTAzIDE2OjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGJ1aWxkIGZpeCAoZS5nLiBmb3IgZWFybHkgQUlYKTogdXNlIHVpbnQzMl90IGkucy5vLiBfX3VpbnQzMl90CgoyMDA3LTA1LTAyIDEzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgoKMjAwNy0wNS0wMSAxOTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gdGVzdCBmb3IgSUZBX0ZfVEVNUE9SQVJZIGJlZm9yZSB1c2luZwogICAtIHJlbW92ZSByZWR1bmRhbnQgaWZkZWYKCjIwMDctMDUtMDEgMTE6MzQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFN1cHBvcnQgZm9yIGZvcndhcmRpbmcgdHJhcHMgYnkgT0lEIHN1YnRyZWUuCiAgIChDb25zaXN0ZW50IHdpdGggc3VidHJlZS1iYXNlZCBzY3JpcHQgcHJvY2Vzc2luZykuCgoyMDA3LTA0LTMwIDE0OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMzAwNDogQ29uc29saWRhdGUgc25tcDYgaGFuZGxpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE5laWwgSG9ybWFuLCBwbHVzIHNvbWUgZXh0cmEgdGlkeWluZyB1cC4KCjIwMDctMDQtMzAgMTQ6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAyMzY2OiBTdXBwb3J0IGZvciBpY21wU3RhdHNUYWJsZQogICBQYXRjaCBwcm92aWRlZCBieSBOZWlsIEhvcm1hbgoKMjAwNy0wNC0zMCAxNDozMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAyMzYxOiBSZWFkIHN0YXRzIGZyb20gL3Byb2MvbmV0L3NubXA2CgoyMDA3LTA0LTMwIDE0OjE0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbiBJUHY2IHN1cHBvcnQgaXMgbm90IGVuYWJsZWQuCgoyMDA3LTA0LTMwIDEzOjI2ICBkdHMxMgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3Mzc6IFRpZHkgdXAgc2V0U2VyaWFsTm8KICAgaW1wbGVtZW50YXRpb25zLgoKMjAwNy0wNC0zMCAxMzowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3MzI6IEZpeCBkZWJ1ZyBvdXRwdXQgc3RhdGVtZW50cy4KCjIwMDctMDQtMzAgMTM6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMDczMDogUmVtb3ZlIHVudXNlZCBleHRlcm4gZGVjbGFyYXRpb24uCgoyMDA3LTA0LTMwIDExOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTgxODQ6IFJlZ2lzdGVyIG5vbi1kZWZhdWx0IGNvbnRleHQKICAgaW50ZWdlcnMgYXMgd3JpdGFibGUuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hcmsgTmF5bG9yLgoKMjAwNy0wNC0zMCAxMToyNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjk4MTc6IEltcHJvdmVkIFJGQyA0MjkzIHN1cHBvcnQuCiAgIEluY2x1ZGVzIG5vbi11bmljYXN0IGFuZCByYW5kb21seSBjaG9zZW4gSVAgYWRkcmVzc2VzLgogICBQYXRjaCBwcm92aWRlZCBieSBWYXJ1biBDaGFuZHJhbW9oYW4KCjIwMDctMDQtMzAgMTE6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTI3Njg6IEZpeCBjb3B5aW5nIG9mIG5vbi1vY3RldC1hbGlnbmVkCiAgIElQIGFkZHJlc3MgcHJlZml4ZXMuCgoyMDA3LTA0LTMwIDEwOjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjcwNTExOiBJbXBsZW1lbnQgbmV0d29yayBjb25uZWN0aW9uCiAgIHByb2Nlc3MgSUQgb2JqZWN0cy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgVmFydW4gQ2hhbmRyYW1vaGFuCgoyMDA3LTA0LTMwIDEwOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeCBkZWNsYXJhdGlvbiBvZiBzbm1wX3Nlc3NfcmVhZF9leHRkKCkKCjIwMDctMDQtMzAgMTA6MjUgIGR0czEyCgogICAqIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMjU6IEZpeCBwcm9ibGVtIHdpdGggb3BlcmF0b3IKICAgcHJlY2VkZW5jZS4KCjIwMDctMDQtMzAgMTA6MjEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTk6IERlY2xhcmUgc25tcF9zZXNzX3JlYWRfZXh0ZCgpCgoyMDA3LTA0LTMwIDEwOjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxODogTWFrZSBfc2Vzc19zZWxwb2xfaW5mbyBzdGF0aWMuCgoyMDA3LTA0LTMwIDEwOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxNzogUmVtb3ZlIGFuIHVudXNlZCBsb2NhbCB2YXJpYWJsZQoKMjAwNy0wNC0zMCAxMDowNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxNjogRG9uJ3QgZHJvcCBjb25zdCBmcm9tIGNhc3RzLgoKMjAwNy0wNC0yNyAxMDoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIEJyaW5nIGR5bmFtaWMgbW9kdWxlIHVubG9hZCBwcm9jZXNzaW5nIG1vcmUgaW50byBsaW5lIHdpdGgKICAgIm5vcm1hbCIgTUlCIG1vZHVsZXMuIFN1Z2dlc3RlZCBieSBNYWdudXMgRnJvbXJlaWRlLgogICBTZWUgY29kZXJzIHRocmVhZCAic2h1dGRvd25fZm9vIG9yIGRlaW5pdF9mb28iLgoKMjAwNy0wNC0yNyAxMDoxNyAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFVwZGF0ZSBwb3N0LXJlbGVhc2UgYW5ub3VuY2VtZW50IGluc3RydWN0aW9ucy4KCjIwMDctMDQtMjQgMTI6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRml4IGluY29tcGxldGUgT0lEIGhhbmRsaW5nIG9mIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgogICBSZXBvcnRlZCBieSBNYXggb24gY29kZXJzIGxpc3QsIDd0aCBBcHJpbC4gU2VlIHRocmVhZAogICAiLi4uIHNlZ2ZhdWx0IC4uIHdoZW4gYXR0ZW1wdGluZyBTTk1QIEdFVCBvbiBleHRlbmQgb3IgZXhlYyBpdGVtIgoKMjAwNy0wNC0yMCAwODozMCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgYmVoYXZpb3VyIG9mIGEgbG9hZCB0aHJlc2hvbGQgb2YgMC4KICAgUmVwb3J0ZWQgYnkgRm9uZyBUc3VpLgoKMjAwNy0wNC0yMCAwODoyMSAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTG9uZy10ZXJtIGxvYWQgYXZlcmFnZSBpcyBjYWxjdWxhdGVkIG92ZXIgMTUgbWludXRlcywgbm90IDEwLgogICBSZXBvcnRlZCBieSBGb25nIFRzdWkKCjIwMDctMDQtMTkgMTI6NTMgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBUd2VhayBDaGFuZ2VMb2cgaW5zdHJ1Y3Rpb25zIGZvciBTVk4KCjIwMDctMDQtMTAgMTQ6MTYgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRGV0ZWN0IE9JRCByZXRyYWNraW5nIChhcyB3ZWxsIGFzIHNpbXBsZSByZXBldGl0aW9ucykgd2hlbgogICBidWxrd2Fsa2luZyBhbiBPSUQgdHJlZS4KICAgU2VlIHVzZXJzIHRocmVhZCAibWlzc2luZyBpbmRpY2VzIGluIGJ1bGt3YWxrIHJlc3VsdCIuCgoyMDA3LTA0LTEwIDExOjQ5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBDbGFyaWZ5IGNvcHlyaWdodCBzdGF0dXMgb2YgV2luMzIgQVBJIGRlZmluaXRpb25zLgoKMjAwNy0wNC0xMCAxMToyNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaDoKCiAgIENsYXJpZnkgY29weXJpZ2h0IHN0YXR1cyBvZiBCU0QtZGVyaXZlZCBUQ1BUViogZGVmaW5pdGlvbnMuCgoyMDA3LTA0LTA5IDE0OjAyICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIC0gcmVtb3ZlIGRlYnVnZ2luZwogICAtIGNoZWNrIHJjIGZvciB0YXIsIGd6aXAgYW5kIHNjcCBzdGVwcwoKMjAwNy0wNC0wNiAxODozOCAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICBzdm4gZXF1aXZhbGVudCBvZiBjdnN1cAoKMjAwNy0wNC0wMyAwODo1NCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBFbXBoYXNpc2UgdGhlIHVzZSBvZiBTTk1QdjMgaW4gRGlzTWFuIG1vbml0b3JpbmcuCiAgIEZpeCB0aGUgc3ludGF4IG9mIG5vbi1leGlzdGFuY2UvdmFsdWUtY2hhbmdlIHRlc3RzLgoKMjAwNy0wNC0wMiAxNDo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTA0NjMyNzogUmVzZXQgImluY2x1ZGVBbGxEaXNrcyIgZmxhZyB3aGVuCiAgIHJlbG9hZGluZy4KCjIwMDctMDQtMDIgMTQ6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MDIyODY6IERvbid0IGxldCB0YWJsZSBob2xlcyBibG9jayBsYXRlcgogICByb3dzLgoKMjAwNy0wNC0wMiAxMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTA3Mzc4MjogUmVzdG9yZSBQZXJmU3RhdCB2YWx1ZXMgZm9yIEZyZWVCU0QKICAgNS54IHN5c3RlbXMuCiAgIEl0J3MgdW5jbGVhciB3aHkgdGhlICJuZXciIGNhbGN1bGF0aW9uIHdhcyBhKSBwcm9wb3NlZCwgYikKICAgd2l0aGRyYXduLAogICBhbmQgYykgd2hhdCB3YXMgd3Jvbmcgd2l0aCB0aGUgcHJldmlvdXMgY2FsY3VsYXRpb24gKHdoaWNoIHNlZW1zCiAgIHRvCiAgIG1hdGNoIHRoZSBvdXRwdXQgb2YgJ3BzJykKCjIwMDctMDQtMDIgMTM6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogOTAyNjEwOiBEb24ndCBkaXNjYXJkIHBlbmRpbmcgZGF0YSBmb2xsb3dpbmcKICAgYSBUUkFQLgoKMjAwNy0wNC0wMiAxMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiA5MDI4MDE6IEZpeCBvcmRlcmluZyBvZiBTTVVYLXJlZ2lzdGVyZWQKICAgc3VidHJlZXMuCgoyMDA3LTA0LTAyIDEyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2ODUwNjc6IE1vcmUgcHJlY2lzZSBoYW5kbGluZyBvZgogICBTTk1QdjMtYWRtaW4gTUlCIHRhYmxlcy4KICAgVGhpcyBhY3R1YWxseSBmaXhlcyB0aHJlZSBzZXBhcmF0ZSBwcm9ibGVtczoKICAgKiAgQSBHRVQgcmVxdWVzdCBmb3IgJ3ZhY21BY2Nlc3NTdGF0dXMuImdyb3VwIi4iIi4zLjQnIHdpbGwgICAKICAgICAgc3VjY2VlZCAgICAoc2luY2UgVkFDTSBjaGVja3MgYWNjZXB0IHRoZSBnaXZlbiBzZWN1cml0eSBsZXZlbAogICAgICAqb3IqaGlnaGVyKikgIDIwMDctMDQtMDIgMTI6MjYgIGR0czEyCgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENoZWNrIHRoYXQgR0VUIHJlcXVlc3RzIG1hdGNoIGEgdmFsaWQgT0lELgogICAoT3RoZXJ3aXNlIGEgcmVxdWVzdCBmb3IgaHJTdG9yYWdle0NvbHVtbn0ue2luZGV4fS57YW55dGhpbmd9CiAgIHdpbGwgaWdub3JlIHRoZSBleHRyYSBzdWJpZHMsIGFuZCByZXR1cm4gc3VjY2VzcykKCjIwMDctMDQtMDIgMTI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYzoKCiAgIFByZXZlbnQgY3Jhc2ggd2hlbiB3YWxraW5nIChpbnZhbGlkPykgRXZlbnQtTUlCIE9iamVjdHMgVGFibGUuCgoyMDA3LTA0LTAyIDExOjMwICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgRml4IGEgY291cGxlIG9mIHR5cG9zIGluIHRoZSByZS13b3JrZWQgbWFrZXJlbGVhc2Ugc2NyaXB0LgoKMjAwNy0wMy0yOSAxMjoxNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBzeW50YXggZXJyb3IgKCI9PSIgaXMgYmFkKQoKMjAwNy0wMy0yNyAwODo1NSAgZHRzMTIKCiAgICogYWNpbmNsdWRlLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlYWQgdXNlci1wcm9tcHRlZCB2YWx1ZXMgZnJvbSBvcmlnaW5hbCBzdGRpbiAobm90IC9kZXYvbnVsbCkKCjIwMDctMDMtMjcgMDg6MzggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWNjZXB0ICcyYycgYXMgYSB2YWxpZCByZXNwb25zZSB3aGVuIGNob29zaW5nIHRoZSBkZWZhdWx0IHZlcnNpb24KCjIwMDctMDMtMjcgMDg6MjkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogY29uZmlndXJlOiBCVUc6IDE1NjczMjQ6IENsYXJpZnkgcHJvbXB0aW5nIGZvcgogICB1c2VyLXN1cHBsaWVkIHZhbHVlcy4KICAgTm93IG9ubHkgcmVtZW1iZXJzIChhbmQgdXNlcykgcHJldmlvdXMgdmFsdWVzIHdoZW4gZXhwbGljaXRseQogICB0b2xkIHRvIGRvIHNvLAogICBlLmcuIGNvbmZpZ3VyZSAtQwoKMjAwNy0wMy0yNyAwODoyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggaW5jb25zaXN0ZW5jeSBpbiBwYXRjaCAjMTYyNzA0OSAtIDxwb2xsLmg+IHZzIDxzeXMvcG9sbC5oPgoKMjAwNy0wMy0yNSAyMjozMSAgZHRzMTIKCiAgICogIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFZhcmlhYmxlLWxlbmd0aCBzdHJpbmcgdmFsdWVzIGFyZSBtb3JlIGxpa2VseSB0aGFuIGZpeGVkIGxlbmd0aC4KCjIwMDctMDMtMjUgMjI6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDgzMzY3MzogTW9yZSBmb2N1c2VkIHNpemUgY2hlY2tzLgoKMjAwNy0wMy0yNSAyMToyNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY3NzA2MzogQ2hlY2sgZm9yIGZhaWxlZCBtYWxsb2MgY2FsbHMuCgoyMDA3LTAzLTI1IDE5OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQ2hlY2sgU0VUIHJlcXVlc3RzIGFnYWluc3QgdGhlIGNvcnJlY3QgdHlwZSAoSVAgQWRkcmVzcyAhPSBPY3RldAogICBTdHIpCgoyMDA3LTAzLTI1IDE4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY4NTA4MTogQ2hlY2sgZm9yIHZhbGlkIE9JRCBvbiBGcmVlL1VuZG8KICAgcGFzc2VzLgoKMjAwNy0wMy0yMyAwOTo0NCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBDSEFORUdTOiBzbm1wbGliOiBCVUc6IDE2ODYzODQ6IERvY3VtZW50IG5vbi11c2Ugb2YgJ3JlbW90ZV9wb3J0JwogICBmaWVsZC4KCjIwMDctMDMtMjMgMDk6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgQWxsb3cgc3BhY2UgZm9yIGV4dGVybmFsIGluZGV4ZXMgd2hlbiBzYXZpbmcgdGFibGUgZW50cmllcy4KICAgKFNlZSBwYXRjaCAjMTY0MjI1NSkKCjIwMDctMDMtMjMgMDk6MTQgIGR0czEyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MjI1NTogSGFuZGxlIHNhdmluZyBsb25nCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZSBlbnRyaWVzLgoKMjAwNy0wMy0yMyAwOTowOSAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODE5Nzc6IEFkZCBjYWxsYmFja3MgcHJpb3IgdG8gcmVhZGluZwogICBjb25maWcuCgoyMDA3LTAzLTIzIDA5OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjc2NDc4OiBmaXggdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2NzY0NzY6IGZpeCB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MKCjIwMDctMDMtMjMgMDk6MDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjUzNjcwOiBDb25zaXN0ZW50IFNOTVB2MyBiZWhhdmlvdXIKICAgd2hlbiBvcGVuaW5nIHNlc3Npb25zLgoKMjAwNy0wMy0yMyAwODo1NyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MjcwNDk6IE5ldyBBUEkgdG8gaGFuZGxlIGxhcmdlIG51bWJlcnMKICAgb2YgZmlsZSBkZXNjcmlwdG9ycy4KCjIwMDctMDMtMjIgMTk6MTQgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjgxMDMwOiBCZXR0ZXIgaGFuZGxpbmcgb2YgZW1wdHkKICAgYXBwdHlwZSBjb25maWdzLgoKMjAwNy0wMy0yMiAxOToxMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwgICAKICAgICAgYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY3ODc4ODogQmV0dGVyIGhhbmRsaW5nIG9mIFNNVVggc29ja2V0CiAgIGRlc2NyaXB0b3JzLgoKMjAwNy0wMy0yMiAxOTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY4MzA1NDogc2V0IHVkcEVuZHBvaW50SW5zdGFuY2UgdG8KICAgaWRlbnRpZnkgZGlmZmVyZW50IHByb2Nlc3Nlcy4KCjIwMDctMDMtMjEgMTI6MzUgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIERlY2xhcmUgT0lEIGNvbnN0YW50cyBhcyBzdWNoIChyYXRoZXIgdGhhbiBBUEkgY2FsbHMpLgogICBQcm9wb3NlZCBieSBBbGV4IEJ1cmdlcgoKMjAwNy0wMy0yMCAyMDowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNjY2NzM3OiBpbmNsdWRlIGlwdjYgY291bnRzIGluCiAgIHVkcEluRGF0YWdyYW1zLCB1ZHBOb1BvcnRzLCB1ZHBJbkVycm9ycywgdWRwT3V0RGF0YWdyYW1zCgoyMDA3LTAzLTE5IDIyOjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmM6CgogICB1c2UgcG1GcmVlUmVzdWx0KCkgaW5zdGVhZCBvZiBmcmVlKCkKCjIwMDctMDMtMTkgMDk6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMy0xNiAxNDowNCAgZHRzMTIKCiAgICogIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsIGRpc3QvY2hhbmdlbG9nZml4LCBkaXN0L21ha2VyZWxlYXNlLCAgIAogICAgICBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgQ29udmVydCBidWlsZCBzeXN0ZW0gdG8gU1ZOIHZlcnNpb24uCgoyMDA3LTAzLTE1IDEwOjU5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjgxMDczOiAjaWZkZWYgYmFzZWQgY29uZmlnX2Vycm9yIGluc3RlYWQKICAgb2Ygc3BlY2lhbCBjYXNlcyBpbiBjb25maWd1cmUKCjIwMDctMDMtMTUgMTA6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDMtMTQgMjM6MzEgIHRhbmRlcnMKCiAgICogIFJFQURNRS5pcml4LCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuaDoKCiAgIE5FV1M6IElSSVg6IFBBVENIOiAxNjc1ODY5OiBmcm9tIGJiaWNlOiBDUFUgc3RhdGlzdGljcyBmb3IgSVJJWAogICBiYXNlZCBvbiBQQ1AKCjIwMDctMDMtMTQgMjI6MDkgIHRhbmRlcnMKCiAgICogIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjgxMDQzOiBmcm9tIG1hZ2ZyOiBjbGVhbiB1cCBoZWxwZXIKICAgaW5jbHVkZXMKCjIwMDctMDMtMTQgMjE6NTQgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2ODEwMzU6IGZyb20gbWFnZnI6IGltcHJvdmUgbmV0LXNubXAtY29uZmlnCiAgIC9iaW4vc2ggY29tcGF0aWJpbGl0eQoKMjAwNy0wMy0xNCAxODozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2NzgzMDA6IGZyb20gbWFnZnI6IGNvbXBpbGUtc3ViYWdlbnQKICAgZG9lc24ndCBjYWxsIHNodXRkb3duXyBtZXRob2RzCgoyMDA3LTAzLTE0IDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0NDI4MDogRG9uJ3QgYXV0b21hdGljYWxseSBwcm9iZSBmb3IKICAgdjMgRW5naW5lSURzLgoKMjAwNy0wMy0xMyAxMDoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ2hlY2sgZm9yIHplcm8tc2l6ZSBwc2V1ZG8tZmlsZXN5c3RlbXMuIFJlcG9ydCB0aGVtIGFzIGVtcHR5CiAgIHJhdGhlciB0aGFuIGZ1bGwsIHNvIHRoZXkgd29uJ3QgYmUgdHJlYXRlZCBhcyBhbiBlcnJvci4KCjIwMDctMDMtMTMgMDU6NTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDU6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGNhY2hlIGluCiAgIGhhcmR3YXJlL2NwdS9jcHUgb24gc2h1dGRvd24gKGhlYWRlciBwYXJ0KQoKMjAwNy0wMy0xMiAyMzowOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwNjogZnJvbSBtYWdmcjogRGVhbGxvY2F0ZSB0aGUgbG9nIGluCiAgIG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cKCjIwMDctMDMtMTIgMjM6MDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDU6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGNhY2hlIGluCiAgIGhhcmR3YXJlL2NwdS9jcHUgb24gc2h1dGRvd24KCjIwMDctMDMtMTIgMjI6NTcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzAyOiBmcm9tIG1hZ2ZyOiBuZXRzbm1wX21pYmluZGV4X2xvYWQgbGVha3MKICAgbWVtb3J5CgoyMDA3LTAzLTEyIDIyOjUwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzAxOiBmcm9tIG1hZ2ZyOiBkZWFsbG9jYXRlIGRvbWFpbiByZWdpc3RyeQogICBhdCBzaHV0ZG93bgoKMjAwNy0wMy0xMiAyMjozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODI5ODogZnJvbSBtYWdmcjogY29tcGlsZS1zdWJhZ2VudCBjaGVja3MgZm9yCiAgIGJhZCBIQVZFX1NJR05BTF9ICgoyMDA3LTAzLTEyIDIxOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2OTA0ODogQWRkIHN1cHBvcnQgZm9yCiAgIGlwdjZJbnRlcmZhY2VJZGVudGlmaWVyCgoyMDA3LTAzLTEyIDIxOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNDEzNzI4OiBSZWZlcmVuY2UgaW5kZXggdmFsdWVzIGluIGRlYnVnCiAgIG91dHB1dCBjb3JyZWN0bHkuCgoyMDA3LTAzLTEyIDIxOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMTAyMDU4OiBTa2lwIG5vbi1tb3VudGVkIGRpc2tzIChlLmcuIHN3YXAKICAgcGFydGl0aW9ucykKCjIwMDctMDMtMTIgMjE6MzAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBVcGRhdGUgcmVnaXN0cmF0aW9uIG9mCiAgIFJlYXNtTWF4U2l6ZSBzdXBwb3J0LgoKMjAwNy0wMy0xMiAyMToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBGaXggY2hlY2sgZm9yIHY2IFJlYXNtTWF4U2l6ZQogICBzdXBwb3J0LgoKMjAwNy0wMy0xMiAxOTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Njg5NTI6IElnbm9yZSB6b21iaWUgcHJvY2Vzc2VzLgoKMjAwNy0wMy0xMiAxOTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY1OTg1OiBJbXBsZW1lbnQgaXBSZWFzbVRpbWVvdXQKICAgVGhvdWdoIHRoaXMgcmVnaXN0ZXJzIGFuIGluc3RhbmNlLCByYXRoZXIgdGhhbiB0aGUgZnVsbCBzY2FsYXIKICAgb2JqZWN0CgoyMDA3LTAzLTEyIDE5OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSEVTOiAxNjY1NTQzOiBIYW5kbGUgVkFDTSBjaGVja3MgY29ycmVjdGx5LgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2NTU0OTogSGFuZGxlIGNyZWF0aW5nIFZBQ00gZW50cmllcwogICBjb3JyZWN0bHkuCiAgIFtCb3RoIHBhdGNoZXMgYXJlIHJlcXVpcmVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbl0KCjIwMDctMDMtMTIgMTk6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NTk2MjM6IEhhbmRsZSBTTVVYIHBlZXJzIHdpdGggYW4gZW1wdHkKICAgcGFzc3dvcmQuCgoyMDA3LTAzLTEyIDE5OjQ0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjU3NzQxOiBIYW5kbGUgNjQtYml0IHR5cGVzIHZpYSBwYXNzCiAgIG1lY2hhbmlzbS4KCjIwMDctMDMtMTIgMTk6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjQ0MjgwOiBVc2UgdGhlIGNvcnJlY3QgZW5naW5lSUQgd2hlbgogICBzZW5kaW5nIHYzIHRyYXBzLgoKMjAwNy0wMy0xMiAxOTozMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0hFUzogMTY0MjA3MTogRG9uJ3QgZmlkZGxlIHdpdGggdGhlIHN0b3JhZ2UKICAgb2YgcHJlLWV4aXN0aW5nIHVzZXJzLgoKMjAwNy0wMy0xMiAxOTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NDE4NjU6IERvbid0IGRvdWJsZSBjaGVjayBzbm1wVHJhcE9JRAogICBpbiB0aGUgZmlsdGVyIHRhYmxlLgoKMjAwNy0wMy0xMiAxOToyNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Mzk3MjY6IFJlcG9ydCBwaHlzaWNhbCBtZW1vcnkKICAgY29ycmVjdGx5IG9uICpCU0QKCjIwMDctMDMtMDkgMjE6MzEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc0Mjk5OiBmcm9tIG1hZ2ZyOiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSB6b25lCiAgIHZhcmlhYmxlIGluIGR1bXBfcmVhbGxvY19vaWRfdG9faW5ldGFkZHJlc3MKCjIwMDctMDMtMDkgMjE6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzQzMDI6IGZyb20gbWFnZnI6IExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIGxlbgogICB2YXJpYWJsZSBpbiBjb252ZXJ0X3YycGR1X3RvX3YxCgoyMDA3LTAzLTA4IDE1OjUyICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaDoKCiAgIEluY2x1ZGUgSG9zdCBSZXNvdXJjZXMgTUlCIG9uIE5ldEJTRCBhbmQgT3BlbkJTRAoKMjAwNy0wMy0wNyAwOTo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3NDI5ODogZnJvbSBtYWdmcjogUmVtb3ZlIHVudXNlZCBzaW5rcG9ydAogICB2YXJpYWJsZQoKMjAwNy0wMy0wNiAxMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTE1OTkwODogRml4IG1lbW9yeSBsZWFrCgoyMDA3LTAzLTAyIDIyOjQwICB0YW5kZXJzCgogICAqIHNubXBsaWIvTVNHMDAwMDEuYmluOgoKICAgbm8gZW9sLXN0eWxlIGZvciBiaW5hcnkgZmlsZXMKCjIwMDctMDMtMDIgMjI6MjYgIHRhbmRlcnMKCiAgICogZG9jL3JmYy9zbWlWMi9yZmMyNTc5LmVycmF0YX46CgogICBkb24ndCBzaGlwIGVkaXRvciBiYWNrdXAgY29waWVzCgoyMDA3LTAzLTAyIDE2OjIwICB0YW5kZXJzCgogICAqIHNubXBsaWIvTVNHMDAwMDEuYmluOgoKICAgZmxhZyBhcyBiaW5hcnkKCjIwMDctMDMtMDIgMTI6NDQgIHRhbmRlcnMKCiAgICogQ29kaW5nU3R5bGU6CgogICBmaXggdHlwbwoKMjAwNy0wMy0wMiAwOTo1NyAgZHRzMTIKCiAgICogVE9ETzoKCiAgIE1pbm9yIHR3ZWFrIC0gcGxheWluZyB3aXRoIFNWTiBhcyBtdWNoIGFzIGFueXRoaW5nLi4uLgoKMjAwNy0wMy0wMSAyMzo1NyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gdGhhdCB3ZSBtb3ZlZCB0byBTVk4KCjIwMDctMDItMjggMTU6MjcgIGR0czEyCgogICAqIENIQU5HRVMsIENoYW5nZUxvZywgTkVXUzoKCiAgIENoZWNrcG9pbnQgc3VtbWFyeSBvZiBDVlMgY2hhbmdlcywgcHJlcGFyYXRvcnkgZm9yIHRoZSBTVk4KICAgc3dpdGNoLgoKMjAwNy0wMi0yNyAxMzozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogTGludXg6IEJVRzogMTY2NjAwNTogRmFpbCB0byB3YWxrIGlwdjZJbnRlcmZhY2VUYWJsZSBvbiBMaW51eAoKMjAwNy0wMi0yNyAxMzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMTY2ODE3MTogc2tpcCB1bmtub3duIGNvbHMgaW4gbWluL21heCByYW5nZSBmb3IgdGFibGVzLCBpbnN0ZWFkIG9mIGVycm9yCgoyMDA3LTAyLTI3IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmg6CgogICBhZGQgaGVhZGVyIGZvciBlYXNpZXIgY29uZmlndXJlIC0td2l0aC1taWItbW9kdWxlCgoyMDA3LTAyLTI2IDE0OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFJlLWNvcnJlY3QgaW50ZXJwcmV0YXRpb24gb2YgIm51bGwgT0lEIiBpbiB0aGUgQWdlbnRYIHNwZWNzLgogICAoZm9yIHRoZSBsYXN0IHRpbWUsIEkgdHJ1c3QhKQoKMjAwNy0wMi0yNiAxNDozNyAgZHRzMTIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBGaXggcmVmZXJlbmNlIHRvIE5ldC1TTk1QIGluY2x1ZGUgbG9jYXRpb25zCgoyMDA3LTAyLTI2IDEyOjQ3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgU05NUC9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBQcm9tcHRpbmcgZm9yIGEgc2luZ2xlIGRpcmVjdG9yeSwgbm90IGFuIGFycmF5LgoKMjAwNy0wMi0yNiAxMTozMiAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE0Mjk0NzI6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIGluc3RhbmNlcyAoYW5kIGludmFsaWQgb2JqZWN0cykKCjIwMDctMDItMjYgMTE6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgRml4IGludmFsaWQgbWliMmMgZGlyZWN0aXZlLgoKMjAwNy0wMi0yNiAxMToxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQxNjI3NjogSGFuZGxlIGRlcGVuZGVuY3kgb24gTUlCIHBhcnNpbmcgQVBJLgoKMjAwNy0wMi0yMyAyMTo1MyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFkZCBxdW90ZXMgdG8gZml4IHNoZWxsIHN5bnRheCBlcnJvciB3aGVuIGVtcHR5CgoyMDA3LTAyLTIyIDIyOjM1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTGFzdCBjb21taXQgYnJva2UgdGhlIGJ1aWxkLiBOb3cgZXNjYXBlIGJhY2tzbGFzaGVzIHByb3Blcmx5LgoKMjAwNy0wMi0yMiAxNTozOCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDEyNDcxNjQ6IERvY3VtZW50IHVzZSBvZiBPSUQgbWFjcm9zCgoyMDA3LTAyLTIyIDAwOjI4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLAogICAgIHVjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IEFJWDogUEFUQ0g6IDE2NjUwNzk6IGZyb20gIk1pY2hhZWwgS3VrYXQiOiBBSVggcGF0Y2hlcyBmb3IgY3B1IHN0YXRzIGFuZCBwcm9jZXNzIG1vbml0b3JpbmcKCjIwMDctMDItMjEgMTY6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGxhbWUtbWFrZSBzeXN0ZW1zIHRoYXQgY2FuJ3QgaGFuZGxlIHdoaXRlc3BhY2UgdGVybWluYXRpbmcgd3JhcHBlZCBsaW5lcwoKMjAwNy0wMi0yMSAxNTozMyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBXaW4zMjogQlVHOiAxNjYyOTg3OiBjb21waWxlIGVycm9yIG9uIEN5Z3dpbgoKMjAwNy0wMi0yMSAxMzo1NiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCB0b29scy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNjYwMDYxOiBWYWxpZGF0ZSBlbmdpbmVJRHMgbW9yZSBzdHJpY3RseS4KCjIwMDctMDItMjEgMTM6NDkgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMS5kZWYsIHNubXAuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTQwNzQ3NjogQ2xhcmlmeSBNSUIgcGFyc2luZyB0b2dnbGUgb3B0aW9ucyBhbmQgTUlCIGNvbW1lbnQgaGFuZGxpbmcuCgoyMDA3LTAyLTIxIDEzOjM3ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDEwOTYxNjY6IEhhbmRsZSAtLXdpdGhvdXQtbG9nZmlsZSBjb3JyZWN0bHkuCgoyMDA3LTAyLTE5IDE2OjM0ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiByZW1vdmFsIGZyb20gQ1ZTIG9mIGRlbGV0ZWQgZmlsZXMKCjIwMDctMDItMTkgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBSZXdvcmsgcmVsZWFzZSBpbnN0cnVjdGlvbnMgdG8gdGFrZSBhY2NvdW50IG9mICJtYWtlcmVsZWFzZSIgc2NyaXB0CgoyMDA3LTAyLTE5IDEwOjQ5ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgRG9uJ3QgYXNzdW1lIGxvY2FsIHVzZXJuYW1lcyBtYXRjaCBDVlMgYWNjb3VudCBuYW1lcy4KCjIwMDctMDItMTkgMTA6NDEgIGR0czEyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBJbXByb3ZlIGxheW91dCBvZiBDSEFOR0VTIGluZm9ybWF0aW9uLgoKMjAwNy0wMi0xOSAxMDowNiAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBEb24ndCBpbnZva2UgJ3ZlcnNpb250YWcnIGZvciB0YWdnaW5nIHRoZSBDVlMgdHJlZS4KICAgSXQgZG9lc24ndCBoYW5kbGUgdGhpcyBhbnkgbW9yZS4gIChVc2UgJ21ha2VyZWxlYXNlJyBpbnN0ZWFkKQoKMjAwNy0wMi0xOSAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIERvbid0IGZhaWwgc2lsZW50bHkgd2hlbiBjYWxsZWQgdG8gdGFnIHRoZSBDVlMgdHJlZS4KICAgUmV0dXJuIGluZGljYXRpb24gb2YgZmFpbHVyZSB0byB0aGUgY2FsbGluZyBhcHBsaWNhdGlvbiAoZS5nLiBtYWtlKQoKMjAwNy0wMi0xNiAxMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBSZXZlcnQgdG8gcHJldmlvdXMgIm51bGwgT0lEIiBpbnRlcnByZXRhdGlvbiAoYnV0IHdpdGggdGhlIGNvcnJlY3QgZW5jb2RpbmcpLgoKMjAwNy0wMi0xNSAxMTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTYwMDI2MTogSGFuZGxlIG5vbi14ODYgL3Byb2MvY3B1aW5mbyBmb3JtYXQKICAgKEEgd29ya2Fyb3VuZCwgcmF0aGVyIHRoYW4gYSBmaXggLSB3ZSByZWFsbHkgbmVlZCB0byBwYXJzZSB0aGVzZQogICAgb3RoZXIgZm9ybWF0cyBwcm9wZXJseSBpbiB0aGUgaW5pdCByb3V0aW5lKQoKMjAwNy0wMi0xNSAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDb3JyZWN0IG1pc2ludGVycHJldGF0aW9uIG9mICJudWxsIE9JRCIgaW4gQWdlbnRYIHNwZWNzLgoKMjAwNy0wMi0xNSAwOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVqZWN0IG92ZXJseS1zaG9ydCBUcmFwIE9JRHMuCiAgIERvbid0IGNyYXNoIG91dCBjb21wbGV0ZWx5IG9uIGZhaWxlZCB2MTwtPnYyIHRyYXAgY29udmVyc2lvbnMuCgoyMDA3LTAyLTEyIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MzM1OTU6IEZpeCBBZ2VudFggaGFuZGxpbmcgb2YgQ291bnRlcjY0IHZhbHVlcwoKMjAwNy0wMi0wOSAyMToxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEzOTc4OTU6IGluY2x1ZGUgbWlzc2luZyBpbnRlcmZhY2UgZGVjbGFyYXRpb25zCgoyMDA3LTAyLTA4IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaCBmcm9tIFdvanRlayBKYXdvciB0byBoYW5kbGUgcm93IGRlbGV0aW9uIGlzc3VlcyBpbiBkYXRhc2V0IHRhYmxlcwoKMjAwNy0wMi0wNyAxNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLmgsIG1pYnMvSVBWNi1GTE9XLUxBQkVMLU1JQi50eHQKOgoKICAgYWRkZWQgdGhlIGZsb3cgbGFibGUgbWliLCB3aGljaCB0aGUgdHVubmVsLW1pYiByZWZlcnMgdG8KCjIwMDctMDItMDUgMjM6MDIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBwb3J0YWJpbGl0eSBmaXhlcwoKMjAwNy0wMi0wNSAyMjo1MCAgdGFuZGVycwoKICAgKiBkaXN0L2NoZWNrLWFwaS1jaGFuZ2U6CgogICB1c2UgL2Jpbi9zaCB1bmxlc3MgYmFzaCBmZWF0dXJlcyBhcmUgcmVhbGx5IG5lZWRlZAoKMjAwNy0wMi0wNSAyMTo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG5vdGUgdGhhdCBjdXJyZW50IHNob3VsZCBiZSBidW1wZWQgYnkgNSB3aGVuIGJ1bXBlZAoKMjAwNy0wMi0wNSAyMTo0OSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIG5vdGUgdGhhdCBjdXJyZW50IHNob3VsZCBiZSBidW1wZWQgYnkgNSB3aGVuIHVwZGF0ZWQKICAgLSBhZGQgcG9pbnRlciB0byBuZXcgY2hlY2stYXBpLWNoYW5nZXMgc2NyaXB0CgoyMDA3LTAyLTA1IDIxOjQ2ICByc3RvcnkKCiAgICogZGlzdC9jaGVjay1hcGktY2hhbmdlOgoKICAgc2ltcGxpc3RpYyBuZXcgc2NyaXB0IHRvIGhlbHAgY2hlY2sgZm9yIGFwaSBjaGFuZ2VzIGJldHdlZW4gcmVsZWFzZXMKCjIwMDctMDItMDUgMjE6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaDoKCiAgIG1ha2UgbmV3IHN0cnVjdCBtZW1iZXIgY29uZGl0aW9uYWwsIHNpbmNlIHVzZSBpcyBjb25kaXRpb25hbAoKMjAwNy0wMi0wNSAyMToyMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBtb3ZlIGZ1bmN0aW9uIGNhbGwgb3V0IG9mIGFzc2VydAoKMjAwNy0wMi0wNSAxNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MTg5NTogRXh0ZW5kIHNob3J0IHZpZXcgbWFza3MgKGFzIHBlciBSRkMgc3BlY3MpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDItMDUgMTQ6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MzkzNjA6IEZpeCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlIHJvdyBjcmVhdGlvbi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMi0wNSAxMTowMSAgZHRzMTIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgRml4IGNvbXBpbGF0aW9uIGlmIExPQ0tfUEVSX0NBTExCQUNLX1NVQklEIG5vdCBkZWZpbmVkLgogICBSZXBvcnRlZCBieSBFbWkgWWFuYWdpCgoyMDA3LTAyLTA1IDA5OjQ4ICBkdHMxMgoKICAgKiBGQVE6CgogICBTcGVsbGluZyBjb3JyZWN0aW9uOiAnc3VwZXJjZWRlZCcgLT4gJ3N1cGVyc2VkZWQnCiAgIChPaCwgdGhlIHNoYW1lIG9mIGl0ISkKCjIwMDctMDEtMzEgMTM6NTEgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTY0Nzk3NjogQ3lnd2luL01pbkdXIFdpbmRvd3MgYnVpbGQgZmFpbHMgZHVlIHRvIGxpYnRvb2wgZXJyb3IKCjIwMDctMDEtMzAgMTM6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHlldCBhbm90aGVyIGZpeCB0byBhZGRyZXNzIGJ1aWxkIGlzc3VlcyB3aXRoIGV0aHRvb2wgKG9uIFJIOSkuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTMwIDA5OjEwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHdoZW4gc3ltbGluayBmaXggaXMvaXNuJ3QgYXBwcm9wcmlhdGUuICBTeW5jaCB3aXRoIFdpa2kuCgoyMDA3LTAxLTI5IDExOjEyICBkdHMxMgoKICAgKiBGQVE6CgogICBBdXRoZW50aWNhdGVkIFNOTVB2MyByZXF1ZXN0cyBzdGlsbCBuZWVkIGEgdXNlcm5hbWUuICAoU3luY2ggd2l0aCBXaWtpKQoKMjAwNy0wMS0yOSAxMTowMyAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMjggMTM6MzYgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IGJhZCB0ZXN0CgoyMDA3LTAxLTI4IDEzOjA2ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbmFtZSB2YXJpYWJsZSB0byByZXNvbHZlIG5hbWUgY2xhc2ggYW5kIHRvIHVuYnJlYWsgbmlnaHRseSBidWlsZHMgb24gU29sYXJpcwoKMjAwNy0wMS0yOCAxMjo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0yNyAxNDo0MCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IHR5cG8KCjIwMDctMDEtMjcgMTQ6MjMgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0yNiAxMToxNSAgdGFuZGVycwoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHkKLCBuc2ItcGFja2FnZToKCiAgIG1vcmUgQm91cm5lIHNoZWxsIGNvbXBhdGliaWxpdHkgZml4ZXMKCjIwMDctMDEtMjUgMjI6NDEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBGcmVlQlNEOiBmaXggY29uZmlndXJlIHdhcm5pbmcgZm9yIHN5cy9jb25mLmgKCjIwMDctMDEtMjUgMjI6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlOgoKICAgcmVwbGFjZSBieSBtb3JlIHJlYXNvbmFibGUgY29udGVudAoKMjAwNy0wMS0yNSAyMjowNSAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgZml4IHR5cG8KCjIwMDctMDEtMjUgMjE6MzEgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBQQVRDSDogMTY0NDczNTogZnJvbSAiQnJlbnQgQmljZSI6IGFkZCBnY2MgYnVpbGQgaW5zdHJ1Y3Rpb25zIGZvciBJUklYCgoyMDA3LTAxLTI1IDIxOjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0NDcxNDogZnJvbSAiTGVsYW5kIFdhbGxhY2UiOiByZXBsYWNlIGxhc3QgcmVtYWluaW5nIGluc3RhbmNlIG9mIGRlcHJlY2F0ZWQgY29weV93b3JkIGJ5IGNvcHlfbndvcmQKCjIwMDctMDEtMjUgMTU6MzAgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5CiwgbnNiLXBhY2thZ2UsIG5zYi1wbGF0Zm9ybToKCiAgIG1hbnkgQm91cm5lIHNoZWxsIHBvcnRhYmlsaXR5IGZpeGVzCgoyMDA3LTAxLTI0IDE2OjM5ICBkdHMxMgoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHkKLCBuc2ItcGFja2FnZSwgbnNiLXBsYXRmb3JtOgoKICAgUHJlLVBvc2l4IEJvdXJuZSBzaGVsbCBjb21wYXRhYmlsaXR5LgoKMjAwNy0wMS0yNCAxNDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgVHdlYWsgZGVidWcgb3V0cHV0CgoyMDA3LTAxLTI0IDEzOjU4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBTaGVsbHNjcmlwdCBwb3J0YWJpbGl0eS4gIChFdmVyeXRoaW5nIGhhcyAvYmluL3NoKQoKMjAwNy0wMS0yNCAxMzo0OSAgZHRzMTIKCiAgICogZGlzdC86IGN2c3Nob3csIGN2c3VwLCBuc2ItY29uZmlnLAogICAgIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZSwKICAgICBuc2ItcGxhdGZvcm06CgogICBJbXByb3ZlIHNoZWxsLXNjcmlwdCBwb3J0YWJpbGl0eS4gKEV2ZXJ5dGhpbmcgaGFzIC9iaW4vc2ghKQoKMjAwNy0wMS0yNCAxMzo0MCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcF9jbGllbnQuYzoKCiAgIEV4dHJhIGRlYnVnZ2luZyBvdXRwdXQKCjIwMDctMDEtMjQgMTM6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBQcmVsaW1pbmFyeSB0YWJsZSB1bnJlZ2lzdHJhdGlvbiBBUEkuCgoyMDA3LTAxLTI0IDEzOjExICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIE1vdmUgaG9zdG5hbWUgdHJhbnNsYXRpb24gaW50byB0aGUgdHJhbnNwb3J0LXNwZWNpZmljIGxpYnJhcnkgcm91dGluZXMuCiAgIChXaGVyZSBpdCBiZWxvbmdzISkKCjIwMDctMDEtMjQgMTM6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQmFzaWMgZnJhbWV3b3JrIGZvciB0cmFuc3BvcnQtc3BlY2lmaWMgdHJhbnNsYXRpb24gb2YgaG9zdG5hbWVzLgoKMjAwNy0wMS0yNCAxMjoyNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBTdXBwcmVzcyBhc3NvcnRlZCB3YXJuaW5ncy4KCjIwMDctMDEtMjQgMTI6MTggIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbWFrZSBzdXJlIHVpbnRwdHJfdCBpcyBhbHdheXMgZGVmaW5lZCBhcyB1bnNpZ25lZC4gU3BvdHRlZCBieSBEYXZpZCBGb3JkLgoKMjAwNy0wMS0yMyAyMjo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgZG9uJ3QgdHJ5IHRvIHJlbW92ZSBhIHJvdyB0aGF0IHdhcyBuZXZlciBpbnNlcnRlZAoKMjAwNy0wMS0yMyAyMjozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IHRyeSB0byByZW1vdmUgYSByb3cgdGhhdCB3YXMgbmV2ZXIgaW5zZXJ0ZWQKCjIwMDctMDEtMjMgMTY6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYzOTI4MjogU2F2ZSBwZXJzaXN0ZW50IHNubXBUYXJnZXRQYXJhbXNUYWJsZSBzZXR0aW5ncyBjb3JyZWN0bHkuCiAgIEZpeCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNTo0NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MzQ2MjA6IEZpeCBsZWFrcyBmcm9tIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiBmYWlsdXJlLgogICBQYXRjaCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE0OjUxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogQlVHOiAxNjM4MjI1OiBGaXggaW50ZXJwcmV0YXRpb24gb2YgdHJhbnNwb3J0IGFkZHJlc3MgZGF0YS4KICAgKEtlZXAgdGhpcyBjb25zaXN0ZW50IHdpdGggc25tcFVEUERvbWFpbi5jKQogICBUaGlzIGRvZXMgbm90IGZlZWwgdGhlIHJpZ2h0IHdheSB0byBoYW5kbGUgdGhpcyEKCjIwMDctMDEtMjMgMTQ6MTAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEJyaW5nIHRyYXAgaGFuZGxpbmcgaW4gbGluZSB3aXRoIFJGQyAyNTc2LzM1ODQgLSBkcm9wIFNOTVB2MSB0cmFwcwogICBjb250YWluaW5nIENvdW50ZXI2NCB2YXJiaW5kcy4gIFJlcXVlc3RlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0yMiAyMjozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MTk3MjogZnJvbSBtYWdmcjogYWRkIG1pc3NpbmcgY29uc3QKCjIwMDctMDEtMjIgMTY6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MTMzMjogSW5jbHVkZSBtaXNzaW5nIGFnZW50IGNvbmZpZyBkZWZpbml0aW9ucy4KCjIwMDctMDEtMjIgMTY6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBmaXggdHlwbyBvdmVyd3JpdGluZyBjb250YWluZXIgbmFtZQoKMjAwNy0wMS0yMiAxNjoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQxNjg1OiBIYW5kbGUgdW5yZXNwb25zaXZlIEFnZW50WCBzdWJhZ2VudHMgbW9yZSByZWxpYWJseS4KICAgRml4IHByb3ZpZGVkIGJ5IEpvc2VmIE1vZWxsZXJzCgoyMDA3LTAxLTIyIDE1OjUxICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjQwMTE0OiBEb24ndCBzdG9yZSB0cmFpbGluZyBudWxsIGNoYXJhY3Rlci4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xOSAxNjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBORVdTOiBCVUdTIDE2MzM0ODM6IFN1cHBvcnQgQ1BVIEhBTCBvbiBGcmVlQlNENC54CiAgIChiZWZvcmUgQ1BVIGRlZmluaXRpb25zIHdlcmUgbW92ZWQgdG8gPHN5cy9yZXNvdXJjZS5oPikKCjIwMDctMDEtMTkgMTY6NTMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogQlVHOiAxNjMzNDgzOiBTdXBwb3J0IENQVSBIQUwgb24gRnJlZUJTRDQueAogICAoYmVmb3JlIENQVSBkZWZpbml0aW9ucyB3ZXJlIG1vdmVkIHRvIDxzeXMvcmVzb3VyY2UuaD4pCgoyMDA3LTAxLTE5IDE2OjE1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgbGlicmFyeSBsYXllcmluZyBpbXByb3ZlbWVudHM6ICptb3ZlKiAocmF0aGVyIHRoYW4gY29weSkgZ2xvYmFsIHZhcmlhYmxlcwogICBmcm9tIHNubXB0cmFwZCB0byBsaWJuZXRzbm1wdHJhcGQKCjIwMDctMDEtMTkgMTQ6MTggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogTGludXg6IGZpeCBldGh0b29sIGNvbmZpZ3VyZSBjaGVjayBmb3IgcmVjZW50IHN5c3RlbXMgKGUuZy4gRkM2LCBSSEVMNSkuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTE5IDExOjI1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWRkIGNvbmZpZ3VyZSBjaGVjayBmb3IgaGFzbW50b3B0IHRvIGZpeCB0aGUgYnVpbGQgb24gc3lzdGVtcyB0aGF0IGxhY2sgaXQKCjIwMDctMDEtMTggMTI6NTAgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiBtb3ZlIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBzbm1wdHJhcGQgdG8gbGlibmV0c25tcHRyYXBkCgoyMDA3LTAxLTE4IDExOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZHJvcCAiLWUiL3ByaW50RXZlbnROdW1iZXJzIHN1cHBvcnQgZm9yIHNubXB0cmFwZCAob2Jzb2xldGUsIGRlcHJlY2F0ZWQgYW5kIGJyZWFrcyBsaWJyYXJ5IGxheWVyaW5nKQoKMjAwNy0wMS0xNiAxMDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgUmVzZXQgJ3NlbmQnIGZsYWcgdG8gY29uc2lkZXIgZWFjaCBzaW5rIGluZGl2aWR1YWxseS4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xNiAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHNlbmRpbmcgbWlzbWF0Y2hlZCB0cmFwcyAodjEgdHJhcCBvbiB2MiBzaW5rKS4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xNiAwOTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBEb24ndCBoYXJkY29kZSB0aGUgc2l6ZSBvZiBjb3VudGVyNjQgc3RydWN0dXJlIChtYXkgYmUgd3Jvbmcgb24gNjQtYml0IGJveGVzKQoKMjAwNy0wMS0xNiAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRXh0cmEgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMDEtMTEgMjI6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiBpbnRyb2R1Y2UgbmV0c25tcF9ta3RlbXAgdG8gcHJldmVudCBsaWJuZXRzbm1wYWdlbnQgZnJvbSBkZXBlbmRpbmcgb24gbGlibmV0c25tcG1pYnMKCjIwMDctMDEtMTEgMjE6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZWQgYXV0b2NvbmYgcmVxIHRvIDIuNjEKCjIwMDctMDEtMTEgMjE6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgICAgc25tcFNURERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfc2VydmljZS5jLAogICAgIHNubXBfdHJhbnNwb3J0LmM6CgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gbWFrZSB0aGUgdHJhbnNwb3J0IHN5c3RlbXMgQysrIGNvbXBhdGlibGUKCjIwMDctMDEtMTEgMDk6MTcgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBGaXggc29tZSBtYW5nbGVkIHRleHQuCgoyMDA3LTAxLTEwIDIwOjU4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTYxNDEwNDogYnJva2VuIHNubXBkKDgpIG1hbnVhbCBwYWdlIGluIDUuNAoKMjAwNy0wMS0wOSAyMTo1MCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBJRi1NSUIgZml4OiBhZGQgbWlzc2luZyByZXR1cm4gYXQgZW5kIG9mIGdldF9pZl9zdGF0cwoKMjAwNy0wMS0wOCAwODozMCAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogYnVpbGQgbGlicmFyaWVzIGluIHRoZSBjb3JyZWN0IG9yZGVyIChsaWJuZXRzbm1wYWdlbnQgYmVmb3JlIGxpYm5ldHNubXBoZWxwZXJzIGJlZm9yZSBsaWJuZXRzbm1wbWlicykKCjIwMDctMDEtMDcgMTk6NDcgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oOgoKICAgYWRkIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIG5ldHNubXBfcmVnaXN0ZXJfc2VydmljZV9oYW5kbGVycyAoZnJvbSBtYWdmcikKCjIwMDctMDEtMDYgMDA6NTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogQlVHOiAxNjI2MTUzOiBubyBoclNXUnVuIGluZm9ybWF0aW9ucyBvbiBTb2xhcmlzIHpvbmVzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEtsYXVzIE11ZWhsZmVsZAoKMjAwNy0wMS0wNiAwMDozMCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNDUwNjY5OiBQQVRDSDogMTYyNzk0OTogZnJvbSBtYXJ0aW45ODc6IGEgcGVybCBhZ2VudHggY29uc3VtZXMgbWVtb3J5CgoyMDA3LTAxLTAzIDIyOjQyICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMDIgMjM6MzMgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE3MzogcmVtb3ZlIHN1cGVyZmx1b3VzIE5VTEwgY2hlY2sgKGFscmVhZHkgZGVyZWZlcmVuY2VkIGVhcmxpZXIgYW55d2F5KQoKMjAwNy0wMS0wMiAyMzowOCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgb25seSBsb2cgYSBtZXNzYWdlIHdoZW4gdGhlIG1pYl9pbmRleGVzIGRpcmVjdG9yeSBpcyAqcmVhbGx5KiBjcmVhdGVkCgoyMDA3LTAxLTAyIDIyOjUzICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQlVHOiBDb3Zlcml0eSAjMTc4OiBuZXZlciBwYXNzIGEgTlVMTCBvaWRfYXJyX2xlbiBwb2ludGVyIHRvIF9fY29uY2F0X29pZF9zdHIgKHdoaWNoIGRlcmVmZXJlbmNlcyBpdCkKCjIwMDctMDEtMDIgMjI6MDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTkzOiBwcm9wZXJseSBpbml0aWFsaXplIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNlCgoyMDA3LTAxLTAyIDIwOjEzICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBiYWNrIG91dCBwcmV2aW91cyBiYWQgY2hhbmdlIHRvIGFnZW50IHJlZ2lzdHJ5CgoyMDA3LTAxLTAyIDE5OjUyICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYwMTQ1MzogZnJvbSAiUm9iZXJ0IFdpbGNveCI6IER5bmFtaWMgTWVtb3J5IGZhaWx1cmUgaGFuZGxpbmcgaW1wcm92ZW1lbnRzCgoyMDA3LTAxLTAyIDE5OjUyICB0YW5kZXJzCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwosIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2MDE0NTM6IGZyb20gIlJvYmVydCBXaWxjb3giOiBEeW5hbWljIE1lbW9yeSBmYWlsdXJlIGhhbmRsaW5nIGltcHJvdmVtZW50cwoKMjAwNy0wMS0wMiAxNzo1NiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBMRF9SVU5fUEFUSCBjb21tZW50IGZvciBweXRob24KCjIwMDctMDEtMDIgMTc6MzggIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICBDSEFOR0VTOiBidWlsZDogdXBkYXRlIHRvIGF1dG9jb25mIDIuNjEKCjIwMDctMDEtMDIgMTc6MjMgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW4sIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2tmcmVlYnNkLmg6CgogICBORVdTOiBQb3J0czogUEFUQ0g6IDE2MjM4NzQ6IGZyb20gIlBldHIgU2FsaW5nZXIiOiBhZGQgR05VL2tGcmVlQlNEIHN1cHBvcnQKCjIwMDctMDEtMDIgMTc6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCB3b3JrYXJvdW5kIGZvciBBQ19GVU5DX0dFVE1OVEVOVCgpIGJ1ZyBpbiBhdXRvY29uZiAyLjYwYiBhbmQgMi42MSAoc2VlIERlYmlhbiBidWdzICM0MDMyNDMsICM0MDMwNzkpCgoyMDA3LTAxLTAyIDE2OjQ4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE1ODI5NzI6IEhhbmRsZSBAd2hpbGVAL0BlbmRAIHByb3Blcmx5LgogICBQYXRjaCBwcm92aWRlZCBieSBEb3VnbGFzIERlYW4KCjIwMDctMDEtMDIgMTY6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTYwMDE3MTogU3VwcG9ydCBsb25nZXIgY29tbXVuaXR5IHN0cmluZ3MgaW4gVkFDTSBjb25maWcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFJvYmVydCBXaWxjb3gKCjIwMDctMDEtMDIgMTE6MjQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE1NDY4MTc6IEZpeCBzbm1wRW50ZXJwcmlzZSB2YXJiaW5kIHdoZW4gZm9yd2FyZGluZyB2MSB0cmFwcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUGFibG8gUGFzc2VyYS4KCjIwMDctMDEtMDIgMTA6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjI1MTM1OiBjb25maWd1cmUgbG9jYXRpb24gb2YgcHl0aG9uIGludGVycHJldGVyCiAgIFByb3ZpZGVkIGJ5IEFuZHJldyBMYW5nbWVhZAoKMjAwNy0wMS0wMiAxMDozNCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIE5FV1M6IGNvbmZpZ3VyZTogUEFUQ0ggMTYyNTEzNTogY29uZmlndXJlIGxvY2F0aW9uIG9mIHB5dGhvbiBpbnRlcnByZXRlcgogICBQcm92aWRlZCBieSBBbmRyZXcgTGFuZ21lYWQKCjIwMDctMDEtMDIgMTA6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjI0NDA2OiBvcHRpb24gdG8gaGFyZGNvZGUgbG9jYXRpb24gb2YgbW91bnQgdGFibGUKICAgU3VibWl0dGVkIGJ5IEpvY2hlbgoKMjAwNy0wMS0wMSAxNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjAxMTg4LCBCVUc6IDE2MDA0MzI6IEhhbmRsZSBzaWduYWxzIHByb3Blcmx5IHdoZW4gcmVzdGFydGluZyB0aGUgYWdlbnQuCiAgIEZpeCBwcm92aWRlZCBieSBMb2ljIERvbWFpZ25lLgoKMjAwNy0wMS0wMSAxNzozNSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEhhbmRsZSBub24td3JpdGFibGUgTUlCIGluZGV4ZXMgKGUuZy4gcnVuIGFzIG5vbi1wcml2aWxlZ2VkIHVzZXIpCgoyMDA3LTAxLTAxIDE2OjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIRVMgMTU5MjcwNjogRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xvbmluZyB2YXJiaW5kcy4KICAgQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IFN0ZXZlbiBEb3JpZ290dGkuCgoyMDA3LTAxLTAxIDE2OjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU5MjcwNjogRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xvbmluZyB2YXJiaW5kcy4KICAgQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IFN0ZXZlbiBEb3JpZ290dGkuCgoyMDA3LTAxLTAxIDE1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBORVdTOiBhZ2VudDogUEFUQ0ggMTU4NTE0NjogRXh0ZW5kIHJhbmdlIG9mIGF2YWlsYWJsZSBlcnJvciBjb2RlcwogICBTdWJtaXR0ZWQgYnkgQW50aG9ueSBOb3ZhdHNpcy4KCjIwMDctMDEtMDEgMTU6MjkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU0ODY3MDogRml4IHJhbmdlIGNoZWNrcyBmb3IgdW5zaWduZWQgaW50ZWdlcnMKICAgRnJvbSBLZXZpbiBIdW1waHJpZXMuIFNlZSBodHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9MzgzMzgwCgoyMDA3LTAxLTAxIDE1OjE2ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmM6CgogICBNb3ZlIGdsb2JhbCAnZmFpbHVyZXMnIHZhcmlhYmxlIGNsb3NlciB0byB3aGVyZSBpdCBpcyB1c2VkLgogICBDSEFOR0VTOiBhcHBzOiBQQVRDSDogMTUyOTUyMzogQ2xvc2UgU05NUCBzZXNzaW9uIG9uIGZhaWx1cmUuCgoyMDA3LTAxLTAxIDE0OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHBvdGVudGlhbCBkb3VibGUgZGVsZXRlLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0wMSAxNDoyMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1haW50YWluIE1JQiBkaXJlY3RvcnkgaW5kZXggZmlsZXMgdW5kZXIgL3Zhci9uZXQtc25tcAogICAoaW4gbGluZSB3aXRoIEZpbGUgSGllcmFyY2h5IFN0YW5kYXJkIHNwZWNpZmljYXRpb25zKQogICBTZWUgaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTM4OTQzNAogICBhbmQgZGlzY3Vzc2lvbiAiTUlCcyBpbiBuZXQtc25tcCIgb24gY29kZXJzIGxpc3QgKE9jdCAyMDA2KQoKMjAwNy0wMS0wMSAxMToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgRW5zdXJlIHN5c09SRGVzY3JpcHRpb25zIGFyZSBudWxsLXRlcm1pbmF0ZWQsIHNvIHRoZXkgY2FuIGJlCiAgIHNhZmVseSBwYXNzZWQgdG8gJ3N0cmR1cCgpJy4gIFJlcG9ydGVkIGJ5IFdvbGZnYW5nIFBlZG90LgoKMjAwNi0xMi0yOSAxNzoyNSAgZHRzMTIKCiAgICogRkFROgoKICAgU3luY2hyb25pc2Ugd2l0aCBXaWtpIHZlcnNpb24uCgoyMDA2LTEyLTI4IDIzOjI5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MTY5MTI6IGZyb20gIk1hZ251cyBGcm9tcmVpZGUiOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcF91ZHBfdHJhbnNwb3J0CgoyMDA2LTEyLTI4IDIzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAxNjIzNDQ3OiBmcm9tICJIcnZvamUgSGFiamFuaWMiOiBoclNXUnVuIGZpeDogPGV4aXRlZD4gaW5zdGVhZCBvZiBlbmRPZlRhYmxlIGZvciB0ZXJtaW5hdGVkIHByb2Nlc3NlcwoKMjAwNi0xMi0yNyAxOToxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggZXh0ZXJuYWwgcmVmZXJlbmNlIHRvIE5FVFNOTVBfS0xPT0tVUCBvbiBIUC1VWCAxMC4yMCAobWF5YmUgb3RoZXJzKQoKMjAwNi0xMi0yNiAxNjo1MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAxNjIyMDgwOiBmcm9tIEdydWVuaW5nZXIgQTogcGFzcyBXaW4zMiBoYW5kbGVzIHJlbWFpbiBvcGVuLgoKMjAwNi0xMi0xNyAxODowMSAgYWxleF9iCgogICAqIHdpbjMyLzogTWFrZWZpbGUtYXBwcy5pbiwgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sCiAgICAgc25tcGQvTWFrZWZpbGUuaW4sIHNubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBBZGQgZ2RpMzIubGliIHRvIGZpeCBsaW5raW5nIHByb2JsZW0gd2hlbiB1c2luZyB0aGUgc3RhdGljIHZlcnNpb24gb2YgdGhlCiAgIFNTTCBsaWJyYXJpZXMuICBUaGFua3MgdG8gU2ltb24gRWR3YXJkcyBmb3IgdGhlIGZpeC4KCjIwMDYtMTItMTcgMTY6NTEgIGFsZXhfYgoKICAgKiBGQVE6CgogICBVcGRhdGUgV2luZG93cyBpbmZvIGluIHRoZSBGQVEKCjIwMDYtMTItMTIgMjM6NTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogTGludXg6IFBBVENIOiAxNTgxMjk0OiBmcm9tICJNaWNoYWVsIFRhdGFyaW5vdiI6IGhvc3QtcmVzb3VyY2VzIGltcHJvdmVtZW50cwoKMjAwNi0xMi0xMiAyMToyNyAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICByZS1hZGQgVURQX0FERFJFU1NFU19JTl9IT1NUX09SREVSCgoyMDA2LTEyLTEyIDIxOjAxICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgc3luYyB3aXRoIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCgoyMDA2LTEyLTEyIDIwOjMxICB0YW5kZXJzCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIENIQU5HRVM6IFdpbjMyOiBmaXggd2luMzIvQ29uZmlndXJlIC0td2l0aC1pcHY2CgoyMDA2LTEyLTEyIDE4OjEwICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgTkVXUzogV2luMzI6IGZpeCBBRVMgc3VwcG9ydAoKMjAwNi0xMi0xMiAwMzowMSAgYWxleF9iCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgQWRkIHZlcnNpb24gdG8gRkFRLmh0bWwuCgoyMDA2LTEyLTA5IDE3OjExICBhbGV4X2IKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG1ha2VfaW5kZXgucGwsIG1hbl9zZWN0aW9ucy50eHQKOgoKICAgLUNyZWF0ZSBodG1sIHBhZ2VzIGZvciBBTEwgbWFuIHBhZ2VzLgogICAtSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gY3JlYXRpbmcgdGhlIGluZGV4Lmh0bWwgZmlsZS4KCjIwMDYtMTItMDkgMTc6MDYgIGFsZXhfYgoKICAgKiBsb2NhbC86IGh0bWwtYWRkLWhlYWRlci1mb290ZXIucGwsIGh0bWwtdGV4dGZpbGUtZml4LnBsCjoKCiAgIEFkZCB0aWR5IGNvbW1hbmQgbGluZSBvcHRpb24gYW5kIGFkZCBtaXNzaW5nIFJFQURNRSBmaWxlcy4KCjIwMDYtMTItMDkgMDA6MTYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IE1hY09TWDogUEFUQ0g6IDE2MDA0NTM6IGZyb20gIkNocmlzIEphbGJlcnQiOiBPUyBYIGNvbXBpbGUtdGltZSBlbmRpYW4gZGV0ZXJtaW5hdGlvbgoKMjAwNi0xMi0wOCAyMjo0NyAgdGFuZGVycwoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgc29tZSBtb3JlIHBvc3QtcmVsZWFzZSB0YXNrcwoKMjAwNi0xMi0wOCAyMjoyNiAgdGFuZGVycwoKICAgKiBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMwosIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfY2FsbGJhY2suMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMKLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgbWFuL25ldHNubXBfZGVidWcuMwosIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAogICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMKLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMwosIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zCiwgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0KLCBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbQosIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmYsIHNlZHNjcmlwdC5pbiwKICAgICBkaXN0L01ha2VmaWxlLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLCBSRUFETUU6CgogICAtIHZlcnNpb24gdGFnICggNS41LmRldiApCgoyMDA2LTEyLTA4IDIyOjIwICB0YW5kZXJzCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBmaXggZGlzdC9NYWtlZmlsZSBtdW5naW5nCgoyMDA2LTEyLTA4IDE0OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBORVdTOiBCVUc6IDE2MTE1MjQ6IGZpeCB0Y3AgY29ubmVjdGlvbiB0YWJsZSBmZCBsZWFrCgoyMDA2LTEyLTA4IDEzOjE3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgcmV2ZXJ0IHVuaW5mb3JtZWQgdmVyc2lvbiBjaGFuZ2UKCjIwMDYtMTItMDcgMjE6NTAgIHVpZDM5MDM5CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtLCBTTk1QLnhzLAogICAgIHQvY29uZi50OgoKICAgY2xlYW4gdXAgY29tcGlsZSBhbmQgZml4IHRlc3RzCgoyMDA2LTEyLTA3IDE2OjQ4ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY29tbWVudCBmaXgKCjIwMDYtMTItMDcgMTU6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9tYWNoLmMsCiAgICAgY3B1L2NwdV9tYWNoLmg6CgogICBORVdTOiBNYWNPU1g6IFBBVENIOiAxNjAwNTIyOiBmcm9tICJCaWxsIEZlbm5lciI6IENQVSBIQUwgaW1wbGVtZW50YXRpb24gZm9yIG1hY2gvZGFyd2luCgoyMDA2LTEyLTA3IDEzOjEwICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2MDQ1ODA6IFNOTVAoMykgbWFudWFsIHBhZ2UgY29ycmVjdGlvbnMgKHNwb3R0ZWQgYnkgdGVrLW9wcykKCjIwMDYtMTItMDYgMjA6MzAgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2N1bWVudCB2YXJpb3VzIGFzcGVjdHMgb2YgcG9zdC1yZWxlYXNlIHRoaW5ncyB0byBkbwoKMjAwNi0xMi0wNiAxNTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFkZCBuZWVkZWQgaGVhZGVyCgoyMDA2LTEyLTA2IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAxNTU4ODIzOiBmaXggaXBBZGRyZXNzVGFibGUgbWVtb3J5IGxlYWsKCjIwMDYtMTItMDYgMTU6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jOgoKICAgTkVXUzogQlVHOiAxNTk2NjM4OiBtZW1vcnkgbGVhayBpbiBpcENpZHJSb3V0ZVRhYmxlLCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDYtMTItMDYgMTQ6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICB0d2Vhay9hZGQgZGVidWcgbXNncyBpbiBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfaWZpbmRleF9nZXQKCjIwMDYtMTItMDUgMjM6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgZml4IGRlYnVnIG1lc3NhZ2UKCjIwMDYtMTItMDUgMjM6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBCVUc6IDE2MDAwOTM6IGF1dG9jb25mIDIuNjAgYnJlYWtzIHRoZSBidWlsZAoKMjAwNi0xMi0wNCAxNzo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNoYW5nZSB0b3AgdGV4dCB0byByZW1vdmUgaGlzdG9yeSBzZWN0aW9uIHdoaWNoIHdhcyBvdXQgb2YgZGF0ZQoKMjAwNi0xMi0wMyAyMzoyMCAgYWxleF9iCgogICAqIHdpbjMyLzogZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyOiAgV29ya3NwYWNlIGNvbXBpbGUgZml4LCBidWlsZCBpbnN0cnVjdGlvbnMgdXBkYXRlLgoKMjAwNi0xMS0yNCAxNzo1MyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQgKQoKMjAwNi0xMS0yNCAxNzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA2LTExLTI0IDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzMgLT4gVjUuNAoKMjAwNi0xMS0yNCAwOTo0NCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTEtMjQgMDk6NDMgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQgKQoKMjAwNi0xMS0yNCAwOToxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlciB0byBmaXggTVNWQyBpc3N1ZXMKCjIwMDYtMTEtMjQgMDg6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gdGhlIENPRElORyBzZWN0aW9uLgogICBJJ20gc3VyZSB0aGVyZSBhcmUgbW9yZSBjaGFuZ2VzIHRoYXQgY291bGQgdXNlZnVsbHkgYmUgbWFkZSwKICAgYnV0IExpZmUncyBUb28gU2hvcnQuICAgT0ssIFdlcyAtIGl0J3MgYWxsIHlvdXJzLi4uLgoKMjAwNi0xMS0yNCAwNzozOCAgZHRzMTIKCiAgICogUkVBRE1FOgoKICAgVHdlYWsgd2ViIGxpbmtzIHNsaWdodGx5LCBhbmQgbWVudGlvbiB0aGUgV2lraS4KCjIwMDYtMTEtMjQgMDc6MDkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2MgdXBkYXRlIGJhc2VkIG9uIHBlcmwgY2hhbmdlcwoKMjAwNi0xMS0yNCAwNjoyNiAgZHRzMTIKCiAgICogRkFROgoKICAgRHJvcCBvYnNvbGV0ZSBlbnRyaWVzLgoKMjAwNi0xMS0yNCAwNjoyMyAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byB0aGUgQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA2LTExLTI0IDA2OjAyICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIHRoZSByZXN0IG9mIHRoZSBBR0VOVFMgc2VjdGlvbi4KCjIwMDYtMTEtMjQgMDU6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIENvbW1pdCByZXZpc2lvbnMgdG8gdGhlIE1JQlMgYW5kIChtb3N0IG9mKSB0aGUgQUdFTlRTIHNlY3Rpb25zLgogICA0MyBwYWdlcyBkb3duLCAxOCB0byBnby4uLi4KCjIwMDYtMTEtMjQgMDU6MTMgIHRhbmRlcnMKCiAgICogRkFROgoKICAgYWRkIHNvbWUgbW9yZSB3b3JraW5nIHBsYXRmb3JtczsgcGVybCAtPiBQZXJsCgoyMDA2LTExLTI0IDAzOjIxICBkdHMxMgoKICAgKiBGQVE6CgogICBSZXZpc2lvbiBvZiB0aGUgZmlyc3QgdGhyZWUgc2VjdGlvbnMgKEdFTkVSQUwsIEFQUExJQ0FUSU9OUywgUEVSTCkuCiAgIFByb2JhYmx5IHJhY2luZyBhIGxvc2luZyBiYXR0bGUgYWdhaW5zdCBwYWNrYWdpbmcgdGhlIHVwY29taW5nIHJlbGVhc2UhCgoyMDA2LTExLTIzIDE5OjMwICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlcyBhbmQgY2xlYW51cCBmb3IgNS40CgoyMDA2LTExLTIzIDE3OjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2MDEyNjE6IGZyb20gIlN0ZXBoZW4gSi4gRnJpZWRsIjogdXBkYXRlIFJFQURNRS5zbXV4CgoyMDA2LTExLTIzIDE2OjM4ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIENIQU5HRVM6IG1pc2M6IFJQTSBzcGVjIGZpbGUgZml4ZXMgZm9yIDY0LWJpdCBwbGF0Zm9ybXMKCjIwMDYtMTEtMjMgMDE6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUmVtb3ZlIGlycmVsZXZhbnQgY29tbWVudHMgKGxlZnQgb3ZlciBmcm9tIHRoZSBkZXZlbG9wbWVudCBwaGFzZSkuCgoyMDA2LTExLTIyIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgdXNlIC0td2l0aG91dCBmb3IgcGVybCBub3cgaWYgb2ZmCgoyMDA2LTExLTIyIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZmluYWwgdmVyaXNvbiBjaGFuZ2UKCjIwMDYtMTEtMjIgMTU6MjUgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgcmV2ZXJ0IHRvIGNvcnJlY3QgdmVyc2lvbgoKMjAwNi0xMS0yMiAxNToyMyAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHJlbW92ZSBiYWQgcGF0Y2ggcmVmZXJlbmNlCiAgIC0gZW5hYmxlIFBlcmwgYnkgZGVmYXVsdCwgYnV0IGFsbG93IGZvciAtLXdpdGhvdXQgcGVybF9tb2R1bGVzfGVtYmVkZGVkX3BlcmwKICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IGZvciBsb2NhbCBkZWZpbmVzCgoyMDA2LTExLTIyIDA4OjQ5ICBkdHMxMgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBDbGFyaWZpY2F0aW9uIG9mIHRoZSBiZWhhdmlvdXIgb2Ygb2JqZWN0cyBpbiB0aGUgbWVtb3J5ICYgc3lzdGVtU3RhdHMgZ3JvdXBzLAogICBhbmQgb2JqZWN0cyB1c2VkIGZvciByZXBvcnRpbmcvZml4aW5nIGVycm9ycy4KCjIwMDYtMTEtMjIgMDc6MDcgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluOgoKICAgbWFuYWxpYXMgYWx3YXlzLW1hZGUgZml4OyBub3cgdG91Y2hlcyBhIHRlbXAgZmlsZSAoYW5kIGNsZWFucyBsYXRlcikKCjIwMDYtMTEtMjIgMDU6MjUgIHRhbmRlcnMKCiAgICogLmN2c2lnbm9yZToKCiAgIGFkZCBuZXcgJ21rJyBzdWJkaXIKCjIwMDYtMTEtMjIgMDU6MjQgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgbmV3IG1hbnVhbCBwYWdlcwoKMjAwNi0xMS0yMiAwNTowMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTk4OTY2OiBmcm9tICJQZXRlciBFY2tlbCI6IEZpeCBidWcgIzE1OTg5Mjc6ICNlbGlmIGJ1aWxkIGZpeAoKMjAwNi0xMS0yMiAwNDo1OCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTU5ODk2ODogZnJvbSAiUGV0ZXIgRWNrZWwiOiBGaXggYnVnICMxNTg3NzU5OiBzbm1wdHJhcGQgZG9lc24ndCByZWNvZ25pemUgLUEgb3B0aW9uCgoyMDA2LTExLTE4IDA5OjU2ICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXhlcyBmb3IgTm9uZSByZXR1cm4gdHB5ZSBhbmQgb2N0ZXQgdmFsIGhhbmRsaW5nCgoyMDA2LTExLTE4IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzMgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzIgLT4gVjUuNC5yYzMKCjIwMDYtMTEtMTggMDc6MTQgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTE4IDA3OjEzICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMyApCgoyMDA2LTExLTE4IDA2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIGZpeCBtaXNzaW5nIG1lbUNhY2hlZC4wIHBhdGNoIGZyb20gVGhvbWFzIEFuZGVycwoKMjAwNi0xMS0xNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCBwZXJsIENDIGV4dHJhY3Rpb24gdG8gYWxsb3cgZm9yIHBhdGhzCgoyMDA2LTExLTE2IDIwOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIFRob21hcyBBbmRlcnMgdG8gZml4IHBlcmwgQ0MgZXh0cmFjdGlvbiB0byBhbGxvdyBmb3IgcGF0aHMKCjIwMDYtMTEtMTYgMTM6MzggIHRhbmRlcnMKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldyBtYW51YWwgcGFnZXMgdG8gdGhlIGJ1aWxkIHByb2Nlc3MKCjIwMDYtMTEtMTYgMDE6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHByb3Blcmx5IHByb3RlY3Qgbmxpc3QgY29kZSB0byBmaXggYnVpbGQgaXNzdWVzIHcvIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTE1IDE2OjIyICB0YW5kZXJzCgogICAqIG1hbi86IGVuY29kZV9rZXljaGFuZ2UuMS5kZWYsIGZpeHByb2MuMS5kZWYsCiAgICAgbWliMmMtdXBkYXRlLjEuZGVmLCBuZXQtc25tcC1jb25maWcuMS5kZWYsCiAgICAgdGttaWIuMS5kZWYsIHRyYXB0b2VtYWlsLjEuZGVmOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAxNTc3OTEzOiBhZGQgbWlzc2luZyBtYW51YWwgcGFnZXMgZm9yIGV4ZWN1dGFibGVzLCBzdXBwbGllZCBieSBEZWJpYW4KCjIwMDYtMTEtMTUgMTU6MzUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgVXBkYXRlIHRvIHRoZSBuZXcgc3ludGF4IG9mIHRoZSBzbm1wbmV0c3RhdCByZXdyaXRlLiBJbnNwaXJlZCBieSBEZWJpYW4uCgoyMDA2LTExLTE1IDE0OjQ1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wc2V0LjEuZGVmOgoKICAgZm9ybWF0IGZpeCAoZnJvbSBEZWJpYW4gcGF0Y2ggMDdfZG9jZmlsZXMucGF0Y2gpCgoyMDA2LTExLTE1IDExOjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgUHV0IGRlc2NyaXB0aW9uIG9uIGEgc2luZ2xlIGxpbmUuIFRha2VuIGZyb20gRGViaWFuIHBhdGNoIDA3X2RvY2ZpbGVzLnBhdGNoCgoyMDA2LTExLTE0IDE2OjAxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBGaXggaW5pdGlhbGlzYXRpb24gcHJvYmxlbSAod2hpY2ggcmVzdWx0cyBpbiB0aGUgYWdlbnQgZmFpbGluZwogICB0byBzdGFydCBvbiBGcmVlQlNEIHN5c3RlbXMsIHdoZW4gcnVuIGFzIGFuIHVucHJpdmlsZWdlZCB1c2VyKS4KCjIwMDYtMTEtMTQgMTU6NDQgIHRhbmRlcnMKCiAgICogZG9jL3JmYy9zbWlWMi9yZmMyNTc5LmVycmF0YX46CgogICBkbyB3ZSBhZ3JlZSB0byBub3Qgc2hpcCBlZGl0b3IgYmFja3VwIGNvcGllcz8KCjIwMDYtMTEtMTQgMDM6MTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICB1ZHBUYWJsZSByZXF1aXJlcyAvZGV2L2ttZW0gYWNjZXNzIG9uIElSSVggYW5kIFRydTY0IFVuaXgKCjIwMDYtMTEtMTQgMDE6NTYgIHRhbmRlcnMKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBDSEFOR0VTOiBQQVRDSDogMTU5NjAyODogZnJvbSAiU3RlcGhlbiBKLiBGcmllZGwiOiBjb25zdCBmaXhlcyBmb3IgdGhlIG1pYl9hcGkoMykgbWFudWFsIHBhZ2UKCjIwMDYtMTEtMTMgMTY6MTcgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgU29sYXJpcyAyLjYgYW5kIGVhcmxpZXIKCjIwMDYtMTEtMTMgMTU6NTQgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBTTk1QLnBtIGZpeGVzIGZvciA2NC1iaXQgcGxhdGZvcm1zCgoyMDA2LTExLTEzIDE1OjQ5ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBwZXJsOiBtYWtlIHBlcmx0ZXN0IGZpeGVzIGZvciBIUC1VWAoKMjAwNi0xMS0xMyAxNToyNiAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBEcm9wIERhdGE6OkR1bXBlciBzaW5jZSBQZXJsIDUuMDA0MDUgYXMgc2hpcHBlZCB3aXRoIElSSVggNi41IGRvZXNuJ3QgaW5jbHVkZSBpdC4KCjIwMDYtMTEtMTMgMTQ6NTEgIHRhbmRlcnMKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERyb3AgdW5uZWVkZWQgZGVwZW5kZW5jeSBvbiBEYXRhOjpEdW1wZXIuCgoyMDA2LTExLTEzIDE0OjQ2ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBwZXJsOiBtYWtlIHBlcmx0ZXN0IGZpeGVzIGZvciBJUklYCgoyMDA2LTExLTEyIDE3OjUzICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLAogICAgIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgd2FybmluZ3MgYWJvdXQgY29tcGlsaW5nIHdpdGggdGhlIFNOTVAgbGlicmFyeSBETEwuCgoyMDA2LTExLTEwIDAzOjI0ICB0YW5kZXJzCgogICAqIFJFQURNRS5vc1g6CgogICByZW1vdmUgLS1lbmFibGUtbWluaS1hZ2VudCByZWNvbW1lbmRhdGlvbiBiZWNhdXNlIC0td2l0aG91dC1rbWVtLXVzYWdlIG5vIGxvbmdlciByZXF1aXJlcyBpdAoKMjAwNi0xMS0xMCAwMToyMSAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgUmVmZXJlbmNlIHRoZSBjb3JyZWN0IG1hbiBwYWdlIGZvciBzbm1wX3RyYXBfYXBpIGFsaWFzZXMuCiAgIFJlcG9ydGVkIGFuZCBmaXhlZCBieSBDaHJpcyBKYWxiZXJ0LgoKMjAwNi0xMS0wOCAwODoyNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnJjMSAtPiBWNS40LnJjMgoKMjAwNi0xMS0wOCAwNzo1NiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTEtMDggMDc6NTUgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMyICkKCjIwMDYtMTEtMDggMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBQYXRjaCBmcm9tIFJvYmVydCB0byBjaGVjayBwcm9jZXNzZWQgZmxhZyBiZWZvcmUgcHJvY2VlZGluZwoKMjAwNi0xMS0wNyAxNTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBGaXggZHVwbGljYXRlIGNhc2Ugc3RhdGVtZW50cyAoYW5kIGluZGljYXRlIHdoaWNoIGFyZSB0aGUgZGVwcmVjYXRlZCBvYmplY3RzKQoKMjAwNi0xMS0wNyAxNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICBDbGFyaWZ5IG1lYW5pbmcgb2YgbWVtKlRleHQgb2JqZWN0cyAoYW5kIGRlZmluZSBuZXcgY29uc2lzdGVudCB2ZXJzaW9ucykuCgoyMDA2LTExLTA3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZCBhIG1pc3NpbmcgcGFyZW4gdG8gYSBkZXNjcmlwdGlvbiBmaWVsZAoKMjAwNi0xMS0wNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIE1ha2VmaWxlLmluLAogICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBwYXRjaCB0byBmaXggc2VkIHVzYWdlIG9uIHN5c3RlbXMgd2l0aCBhIHZlcnkgb2xkIHNlZAoKMjAwNi0xMS0wNiAxNTo1MCAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIG1lbnRpb24gLS13aXRob3V0LWttZW0tdXNhZ2UKCjIwMDYtMTEtMDYgMTU6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwQWRkci5jCiwgaXB2Ni5jLCB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jLAogICAgIHZhcl9yb3V0ZS5jOgoKICAgaW1wcm92ZWQga2xvb2t1cCBlcnJvciBoYW5kbGluZwoKMjAwNi0xMS0wNiAxNTo0MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIFJFQURNRS5haXgsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9rZXJuZWwuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBidWlsZCBmaXggZm9yIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTA2IDA3OjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgc2ggZG9lc24ndCBsaWtlICI9PSIsIG9mIGNvdXJzZS4KCjIwMDYtMTEtMDYgMDM6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBza2lwIHByb3h5IHRlc3RzIGZvciBUQ1AgYmVjYXVzZSB0aGUgcHJveHkgY29kZSBkb2Vzbid0IHN1cHBvcnQgVENQIHlldAoKMjAwNi0xMS0wMyAxNzozOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1OGFnZW50YXV0aHRyYXAsIFQwNjVhZ2VudGV4dGVuZCwKICAgICBUMjAwc25tcHYyY3dhbGthbGw6CgogICBDSEFOR0VTOiBtaXNjOiAibWFrZSB0ZXN0IiBmaXhlcyBmb3Igbm9uLVVEUCB0cmFuc3BvcnRzCgoyMDA2LTExLTAzIDA4OjQwICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCBjbGllbnRfaW50Zi5jOgoKICAgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIHB5dGhvbiBpbnRlcmZhY2UKCjIwMDYtMTEtMDIgMTU6MzAgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgbmV3IG1hbiBwYWdlIGFsaWFzZXMKCjIwMDYtMTEtMDEgMTU6NTMgIHRhbmRlcnMKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nIHNoYWxsIG9ubHkgZG9jdW1lbnQgY2hhbmdlcyBvZiB0aGUgYnJhbmNoIGl0J3MgY29udGFpbmVkIGluCgoyMDA2LTExLTAxIDA4OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgQ0hBTkdFUzogQlVHOiAxNTg1ODE1OiBmaXggbWZkIGJpdHMgbGVuZ3RoIGNhbGN1bGF0aW9uCgoyMDA2LTEwLTMxIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzEgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmU0IC0+IFY1LjQucmMxCgoyMDA2LTEwLTMxIDEyOjUxICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMC0zMSAxMjo1MSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzEgKQoKMjAwNi0xMC0zMSAxMjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICByZW1vdmUgdGhlIGtsb29rdXAgZGVmaW5lIGFzICgwKSBzaW5jZSBEYXZlIGZvdW5kIGRlZmluaXRlIHNwb3RzIHdoZXJlIHRoaXMgd2FzIHVuc2FmZQoKMjAwNi0xMC0zMSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBQYXRjaCBmcm9tIFRob21hcyBBbmRlcnMgdG8gYXR0ZW1wdCB0byBmaXggbGFjayBvZiBrbWVtIHN1cHBvcnQgZm9yIHZhcmlvdXMgcGxhdGZvcm1zIHdoZW4ga21lbSBpc24ndCBhdmFpbGFibGUKCjIwMDYtMTAtMzEgMDc6MjcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBhIHByb2JsZW0gd2l0aCB0aGUgbWFuIGdlbmVyYXRpb24gcGF0Y2ggYXMgcG9pbnRlZCBvdXQgYnkgQ2hyaXMgSmFsYmVydAoKMjAwNi0xMC0zMSAwNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBtaW5vciBwYXRjaCBmcm9tIEJydWNlIFNoYXcgdG8gZml4IGxtc2Vuc29ycyAyNDAgY2xhc3MgbWFjaGluZXMKCjIwMDYtMTAtMzAgMTM6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWVtVG90YWxGcmVlIHNob3VsZCByZXBvcnQgdG90YWwgdmlydHVhbCBpbnN0ZWFkIG9mIHBoeXNpY2FsIG1lbW9yeQoKMjAwNi0xMC0zMCAwOTo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYzoKCiAgIG1lbSBIQUwgZml4ZXMgZm9yIElSSVgKCjIwMDYtMTAtMzAgMDc6NDAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBnZW5lcmF0ZWQgYWxpYXMgbWFuIHBhZ2VzCgoyMDA2LTEwLTI4IDE4OjIzICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgLS1kaXNhYmxlLWVtYmVkZGVkLXBlcmwgLS13aXRob3V0LXBlcmwtbW9kdWxlcyBmb3IgTWluR1cgLyBDeWd3aW4uCgoyMDA2LTEwLTI3IDEzOjE5ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2J1aWxkLnBsLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbgosIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4KOgoKICAgLUFsbG93IGJ1aWxkaW5nIG9mIGFwcGxpY2F0aW9ucyB3aXRoIGxpYnJhcnkgRExMIGluIGJ1aWxkLmJhdCBidWlsZCBzeXN0ZW0uCiAgIC1GaXggRExMIGV4cG9ydC9pbXBvcnQgdmFyaWFibGVzIGZvciBsaWJyYXJ5IERMTAoKMjAwNi0xMC0yNyAwNzo0NyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeCB3YWxraW5nIG9mZiBvZiBhIGNsaWZmCgoyMDA2LTEwLTI3IDA3OjMyICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGNsaWVudC5weQoKMjAwNi0xMC0yNyAwMjowNCAgdGFuZGVycwoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIENIQU5HRVM6IG1pc2M6IEJVR1M6IDE1ODUyNTA6IGRvbid0IHVzZSBkZXByZWNhdGVkIG9wdGlvbnMgaW4gc3RhcnQgc2NyaXB0CgoyMDA2LTEwLTI2IDE3OjUwICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogIEFkZCBhIGNvdXBsZSBERUJVRyBsaW5lcy4KCjIwMDYtMTAtMjYgMTc6MTUgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFdpbjMyOiBSRUFETUUgdXBkYXRlLCBidWlsZCBzdGVwcyB1cGRhdGUuCgoyMDA2LTEwLTI2IDA5OjIxICB0YW5kZXJzCgogICAqIENvZGluZ1N0eWxlOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNi0xMC0yNiAwNDoxNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIGZpeGVzIGZvciAiY29uZmlndXJlIC0taGVscCIgb3V0cHV0LCBlc3BlY2lhbGx5IGZvciBNSUIgbW9kdWxlcwoKMjAwNi0xMC0yNiAwMzoyNCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGRhcndpbjguaCwgZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogTWFjT1NYOiBidWlsZCBmaXggZm9yIG1pYklJL3VkcFRhYmxlCgoyMDA2LTEwLTI1IDExOjUxICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgTkVUU05NUF8gcHJlZml4IG1pc3NpbmcgZm9yIE9QRU5TU0wuCgoyMDA2LTEwLTI1IDA5OjE2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgcGVybC9PSUQvT0lELnhzLAogICAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiByZW5hbWUgaW5pdF9taWIgdG8gbmV0c25tcF9pbml0X21pYiB0byBhdm9pZCBzeW1ib2wgY2xhc2ggd2l0aCBIUC1VWCdzIGxpYm5tCgoyMDA2LTEwLTIzIDE0OjAwICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBBSVggc2hpcHMgaG9zdCBieSBkZWZhdWx0CgoyMDA2LTEwLTIyIDE4OjAxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaHRtbGhlbHAvRGV2ZWxvcGVyX0ZBUS5odG1sLCBodG1saGVscC9GQVEuaHRtbCwKICAgICBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbCwKICAgICBodG1saGVscC9zbm1wZC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbCwgaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICBVcGRhdGUgV2luZG93cyBiaW5hcnkgYnVpbGQgZmlsZXMuCgoyMDA2LTEwLTIxIDA5OjQyICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgd2luRXh0RExMIHVwZGF0ZS4KCjIwMDYtMTAtMjEgMDk6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlYWRtZSB1cGRhdGUgZm9yIHdpbkV4dERMTCwgY2hhbmdlIGNvbW1hbmQgbGluZSBmb3Igd2luRXh0RExMLgoKMjAwNi0xMC0yMSAwNzowNyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ29kZSBjbGVhbnVwLiAgQWRkIHN1cHBvcnQgZm9yIHhTbm1wRXh0ZW5zaW9uUXVlcnlFeCBmb3IgU0VUL0dFVE5FWFQuCgoyMDA2LTEwLTIxIDA1OjQ1ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiBzbm1wc2V0IHN0cmluZywgRExMIGxvYWRpbmcgYW5kIHNubXB3YWxrIGZpeGVzLgoKMjAwNi0xMC0yMSAwNTowOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICByZW1vdmUgbm90LWV4aXN0ZW50IFNCU00gZGVmaW5pdGlvbiBmcm9tIHRlc3QgY2FzZXMKCjIwMDYtMTAtMjAgMTc6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlNCApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTMgLT4gVjUuNC5wcmU0CgoyMDA2LTEwLTIwIDE2OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCBmcm9tIEFuZGVycyBQZXJzc29uIHRvIGNoYW5nZSB0X3VzY2FsYXJfdCB0byBzb21ldGhpbmcgbW9yZSBwb3J0YWJsZSAodWludDMyX3QpCgoyMDA2LTEwLTIwIDEzOjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvZHNfYWdlbnQuaCwKICAgICBsaWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIERvY3VtZW50IHRoZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29ycmVzcG9uZGluZyBwZXJsIGludGVyZmFjZXMKICAgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlLgoKMjAwNi0xMC0yMCAwODo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgdXNlIGNwdV9udWxsIGZvciBhbGwgZGFyd2luLCB1bnRpbCBjb2RlIHdvcmtzCgoyMDA2LTEwLTIwIDA4OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbmxpc3QuYywgY3B1X3N5c2N0bC5jCjoKCiAgIENsYXJpZnkgY29tbWVudHMgdG8gcmVmbGVjdCByZWFsaXR5LgoKMjAwNi0xMC0yMCAwODoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIGZpeCBzeW50YXggZXJyb3I7IG1ha2Ugc3VyZSB3ZSBnZXQgY3B1X251bGwgZm9yIGRhcndpbjYvNywgY3B1X3N5c2N0bCBmb3IgZGFyd2luOCsKCjIwMDYtMTAtMjAgMDc6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIHVzZSBjcHVfbnVsbCBmb3IgZGFyd2luNyBhbmQgZGFyd2luNgoKMjAwNi0xMC0yMCAwMTo0NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIG9wZW5ic2Q0IGFuZCBkYXJ3aW4gc2hvdWxkIHVzZSBjcHVfc3lzY3RsCgoyMDA2LTEwLTE5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmU0ICkKCjIwMDYtMTAtMTkgMTY6NDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgZml4IHVwIGhlYWRlciBpbmNsdXNpb24gYSBiaXQKCjIwMDYtMTAtMTkgMTU6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIHRlc3QgZm9yIGRhcndpbmcgYmVmb3JlIGZyZWVic2QsIHNpbmNlIGRhcndpbiBkZWZpbmVzIGZyZWVic2QKCjIwMDYtMTAtMTkgMTQ6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBmaXggYnJva2VuIGJhZCBldmlsIGlmVGFibGUuaCB1c2FnZQoKMjAwNi0xMC0xOSAxMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9kZWZzLmgsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGRvbid0IGxldCBpZlRhYmxlLmggcmVkZWZpbmUgcmFuZG9tIHN5bWJvbHMgYWZmZWN0aW5nIG90aGVyIGNvZGUKCjIwMDYtMTAtMTkgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGxpYmhlbHBlcnMgZnJvbSB0aGUgbGluayBsaW5lIG9mIGxpYmFnZW50cwoKMjAwNi0xMC0xOSAwODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IHRyYW5zcG9ydCBzb2NrIHBhdGNoCgoyMDA2LTEwLTE5IDA3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGRhcndpbjguaCwgZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTc5MzY0OiBmcm9tIGphbGJlcnQ6IFVwZGF0ZWQgZGFyd2luIHBhdGNoIHRvIGZpeCBjb21waWxhdGlvbiBvbiBUaWdlciBhbmQgTGVhcG9yZAoKMjAwNi0xMC0xOCAxNjo1MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogIEZpbmlzaCBhZGRpbmcgc3VwcG9ydCBmb3IgRExMcyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUKICAgcmFuZ2VzLgoKMjAwNi0xMC0xOCAxNDoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmMsCiAgICAgbXRlRXZlbnRDb25mLmgsIG10ZU9iamVjdHNDb25mLmMsIG10ZU9iamVjdHNDb25mLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgQ2xlYW5seSBoYW5kbGUgcmUtbG9hZGluZyAibW9uaXRvciIgKGFuZCByZWxhdGVkKSBkaXJlY3RpdmVzLgoKMjAwNi0xMC0xOCAxNDowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBIYW5kbGUgaW52YWxpZCBwYXlsb2FkIG9iamVjdCBPSURzLgoKMjAwNi0xMC0xOCAxMjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDbGVhbmx5IGhhbmRsZSByZS1sb2FkaW5nICJleHRlbmQiIGRpcmVjdGl2ZXMuCgoyMDA2LTEwLTE4IDA3OjQ1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIC0gdXNlciAvdXNyL2Jpbi9lbnYgZm9yIHBvcnRhYmlsaXR5CiAgIC0gb25seSB0ZXN0IGZvciB0YXIgaWYgd2UncmUgZ29pbmcgdG8gdXNlIGl0CgoyMDA2LTEwLTE4IDAzOjI5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbmV3IHBhc3NfcGVyc2lzdCBlcnJvciBtZXNzYWdlcyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDE1NjgxNTAKCjIwMDYtMTAtMTcgMjE6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRS5vc1g6CgogICB1cGRhdGUgZnJvbSBDaHJpcyBKYWxiZXJ0CgoyMDA2LTEwLTE3IDIwOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAxNTY1NzAzOiBwYXRjaCB0byBmaXggcmFwaWQgcmVnaXN0cmF0aW9ucy9kZXJlZ2lzdHJhdGlvbiBpc3N1ZXMKCjIwMDYtMTAtMTcgMjA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIIDE1NjI2ODg6IGZpeCBwaW5nL3JlYXR0YWNoIGFnZW50eCBjb2RlCgoyMDA2LTEwLTE3IDIwOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAxNTYyMTY4OiBjaGVjayBmb3IgYSBzb2NrIGZkIGxlc3MgdGhhbiAwLgoKMjAwNi0xMC0xNyAxOTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCjoKCiAgIHVzaW5nIHZmb3JrIGFuZCBuYW1lZCBwaXBlczogTkVXUzogc25tcGQ6IFBBVENIOiAxNTUxOTQ4OiBmcm9tIGFwcm9lbWVsOiBNYWtlIHBhc3NfcGVyc2lzdCB1c2FibGUgb24gdUNsaW51eAoKMjAwNi0xMC0xNyAxOToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NjgxNTA6IGZyb20gZ2F2aW5faGFuOiBFeHRlbmQgcGFzc19wZXJzaXN0IGVycm9yIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHBhc3NlZCBiYWNrIGZyb20gdGhlIHNjcmlwdAoKMjAwNi0xMC0xNyAxOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTcwNjUwOiBmcm9tICJCZW5vaXQgQW1pYXV4IjogY3JlYXRlIGEgbG9nZ2luZyBzaHV0ZG93biBmdW5jdGlvbiB0byBwcm9wZXJseSBjbGVhbiB1cCBsb2cgcmVnaXN0cmF0aW9ucyBpZiBuZWVkZWQuCgoyMDA2LTEwLTE3IDE5OjA1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NzA2NTA6IGZyb20gIkJlbm9pdCBBbWlhdXgiOiBtYWtlIGRlbGV0ZSB0YWJsZSBmdW5jdGlvbiBwdWJsaWMKCjIwMDYtMTAtMTcgMTg6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE1NzU5Mzc6IGZyb20gbWFydGluOTg3OiBmaXggdXNlbnVtZXJpYyBvdXRwdXQgaW4gYXN5bmMgdmFyYmluZHMgc28gdGhleSByZXR1cm4gT0lEcyBpbnN0ZWFkIG9mIGVtcHR5IHN0cmluZ3MuCgoyMDA2LTEwLTE3IDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTc1OTg0OiBmcm9tIHJ0eWxlOiBibG9jayBTSUdIVVAgZHVyaW5nIHJlY29uZmlnCgoyMDA2LTEwLTE3IDE4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgcmVtb3ZlIGNvcnJlY3Qgc3ViIGRpcmVjdG9yeQoKMjAwNi0xMC0xNyAxODozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlLnhzLCBnZW4sIHRlc3QucGw6CgogICB1cGRhdGUgdG8gbGF0ZXN0IGRzX2FnZW50LmggZGVmaW5lcwoKMjAwNi0xMC0xNyAxNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIGdlbiwgdGVzdC5wbDoKCiAgIHN1cHBvcnQgbGF0ZXN0IGgyeHM7IE5FV1M6IHBlcmw6IHVwZGF0ZSBkZWZhdWx0X3N0b3JlIG1vZHVsZSB0byBsYXRlc3QgZGVmYXVsdF9zdG9yZSBjLWJpbmRpbmcgdG9rZW5zCgoyMDA2LTEwLTE3IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBjb25maWcgZ2VuZXJhdGVkIGZpbGVzIG9uIGEgbWFrZSBkaXN0Y2xlYW4KCjIwMDYtMTAtMTcgMTU6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBwcm9wZXJseSBmaXggdGhlIHNlZCBpc3N1ZXMgd2l0aG91dCByZW1vdmluZyBmdW5jdGlvbmFsaXR5IGJ5IHVzaW5nIGZpbGVzIGluc3RlYWQgb2Ygc2VkIGV4cHJlc3Npb25zCgoyMDA2LTEwLTE3IDE0OjA4ICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgbWFrZSBrbG9va3VwIGRlYnVnZ2luZyBsZXNzIHZlcmJvc2UKCjIwMDYtMTAtMTcgMTM6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQva2VybmVsLmM6CgogICBhZGQga2xvb2t1cCBkZWJ1Z2dpbmcKCjIwMDYtMTAtMTcgMTA6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgc3RpbGwgYnVpbGQgaWYga2VybmVsIHN5bWJvbHMgdW5kZWZpbmVkCgoyMDA2LTEwLTE3IDA5OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIEFzc29jaWF0ZSBlcnJvcnMgZnJvbSBkZWxlZ2F0ZWQgcmVxdWVzdHMgd2l0aCB0aGUgY29ycmVjdCB2YXJiaW5kLAogICBhbmQgZml4IHByb2JsZW1zIHdpdGggZmFpbGVkIHByb3hpZWQgcmVxdWVzdHMgdGltaW5nIG91dC4KICAgUmVwb3J0ZWQgYnkgUGFibG8gUGFzc2VyYSAgKFNlZSBjb2RlcnMgbGlzdCAtIDV0aCBPY3QgZmYpCgoyMDA2LTEwLTE3IDA5OjEwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IGJ1aWxkOiAtLWVuYWJsZS1hcy1uZWVkZWQgd2lsbCB0cnkgdG8gbGluayBidWlsdCBsaWJyYXJpZXMgYWdhaW5zdCBuZWVkZWQgbGlicmFyaWVzIGF0IGxpYnJhcnkgbGluayB0aW1lLCByYXRoZXIgdGhhbiBhcHBsaWNhdGlvbiBsaW5rIHRpbWUuCgoyMDA2LTEwLTE3IDA3OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgZHVwbGljYXRlICdjb21waWxlciBvcHRpb25zJyBoZWFkZXIgaW4gaGVscCBvdXRwdXQKCjIwMDYtMTAtMTcgMDc6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgYmFjayBvdXQgaG9zdC9ocl9zd3J1biBwYXJ0IG9mIHRoZSBBSVgganVtYm8gcGF0Y2ggc2luY2UgaXQgb3Zlcndyb3RlIGEgbW9yZSBjb21wbGV0ZSwgd29ya2luZyBpbXBsZW1lbnRhdGlvbiB3aXRoIGEgc2VnZmF1bHRpbmcgb25lCgoyMDA2LTEwLTE2IDE2OjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIENIQU5HRVM6IElSSVg6IHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgVUNELVNOTVAtTUlCOjpsYVRhYmxlIChhdm9pZGluZyBubGlzdCkKCjIwMDYtMTAtMTYgMTE6NDMgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnQucHksIHRlc3RzL3Rlc3QucHk6CgogICBudW1lcmljIGFuZCBPSUQgc2V0cyB3aXRoIHRlc3RpbmcKCjIwMDYtMTAtMTYgMDg6NTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgZGlzYWJsaW5nIG5saXN0IHNob3VsZG4ndCBkaXNhYmxlIHBlcmZzdGF0CgoyMDA2LTEwLTE2IDA4OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBkZWFsIHdpdGggbWlzc2luZyBBUlBUQUJfU0laRV9TWU1CT0wKCjIwMDYtMTAtMTYgMDc6NTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgQ0hBTkdFUzogVHJ1NjQ6IC0gZml4ICJhdXRvX25saXN0IGZhaWxlZCBvbiBhcnB0YWJfc2l6ZSBhdCBsb2NhdGlvbiAwIiBlcnJvcnMKCjIwMDYtMTAtMTUgMTc6MjMgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEwgZml4ZXMgZm9yIHNubXB3YWxrIC8gc25tcGdldG5leHQuCgoyMDA2LTEwLTE1IDE0OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRG9uJ3QgbW9hbiBhYm91dCBub3JtYWwgY29ubmVjdGlvbi1iYXNlZCB0cmFuc3BvcnQgYWN0aXZpdHkKICAgKGFuZCAqZG8qIG1vYW4gc2Vuc2libHkgYWJvdXQgZmFpbGVkIHNlbmRzKS4KCjIwMDYtMTAtMTUgMTQ6NDMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU3RvcmUgVENQL0lQdjQgYWRkcmVzcyBpbmZvcm1hdGlvbiBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgVURQL0lQdjQuCiAgIFRoaXMgYWxsb3dzIHRoZSBjb21tdW5pdHkgLT4gc2VjdXJpdHkgbmFtZSBtYXBwaW5nIHRvIHdvcmsgY29ycmVjdGx5LgogICBGaXhlcyBCdWcgIzE1NzE5NDUuCiAgICAgIEEgYmV0dGVyIChtb3JlIG1vZHVsYXIpIHNvbHV0aW9uIHdvdWxkIGJlIHByZWZlcmFibGUgKHNlZSBkaXNjdXNzaW9ucwogICBvbiB0aGUgbWFpbGluZyBsaXN0cyksIGJ1dCB0aGlzIHNob3VsZCBhdCBsZWFzdCBhbGxvdyA1LjQgdG8gcHJvY2VlZC4KCjIwMDYtMTAtMTUgMTA6MDMgIHRhbmRlcnMKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBrbG9va3VwIHRha2VzIHRocmVlIGFyZ3VtZW50cywgbm90IG9uZQoKMjAwNi0xMC0xNCAxNDoyOCAgdGFuZGVycwoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywga2VybmVsLmgsCiAgICAgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBtaWJncm91cC9taWJJSS9hdC5jLAogICAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBtaWJncm91cC9taWJJSS9pcHY2LmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgcHJlcGFyZSBmb3IgNjQtYml0IG5saXN0IGNoYW5nZXMKCjIwMDYtMTAtMTQgMTA6MzcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6ICBGaXggT0lEIHNldHMsIG1lbW9yeSBsZWFrcy4KCjIwMDYtMTAtMTQgMDY6NDkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6IFVzZSBhbGFybSBpbnN0ZWFkIG9mIHRocmVhZCBmb3IgdHJhcHMuICBWYXJpb3VzIHRyYXAKICAgZml4ZXMuCgoyMDA2LTEwLTEzIDE2OjEzICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiAgQWRkIHRyYXAgc3VwcG9ydCBmb3IgcmVtYWluaW5nIHR5cGVzLCBmaXgKICAgQVNOX0lQQUREUkVTUyBHRVQgc3VwcG9ydC4KCjIwMDYtMTAtMTMgMTU6MTYgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiwgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBzbXV4c29ja2V0IG5lZWRzIHRvIGJlIGFuIElQdjQgYWRkcmVzcwoKMjAwNi0xMC0xMyAxNDo0OSAgZHRzMTIKCiAgICogUkVBRE1FLm9zWDoKCiAgIFVwZGF0ZSB3aXRoIHJlY2VudCBidWlsZCByZXBvcnRzIGZyb20gQ2hyaXMgSmFsYmVydC4KCjIwMDYtMTAtMTMgMTQ6NDUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgU3YzdXNtY29uZmlnYWdlbnQsCiAgICAgU3Zhbnljb25maWc6CgogICBzbXV4c29ja2V0IG5lZWRzIHRvIGJlIGFuIElQdjQgYWRkcmVzcwoKMjAwNi0xMC0xMyAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBIYW5kbGUgZXJyb3JzIGZyb20gcmVjdigpIC0gc2VlIEJ1ZyAjMTUyNzkzMAoKMjAwNi0xMC0xMyAxNDoyNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBFeHBsaWNpdGx5IHJlZmVyZW5jZWQgVk5BTUUgdG9rZW4gd2hlbiBkZXNjcmliaW5nICJ2aWV3IiB0b2tlbiB1c2FnZS4KICAgKFN1Z2dlc3RlZCBieSBKb2huIFJvdWlsbGFyZCkKCjIwMDYtMTAtMTMgMTM6NTAgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgcmVtb3ZlIE5FVFNOTVBfRFNfQUdFTlRfSCB3aGljaCBpc24ndCBhIGRlZmF1bHQgc3RvcmUgdmFyaWFibGUKCjIwMDYtMTAtMTMgMDc6MTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgZml4IHN5bnRheCB0eXBvCgoyMDA2LTEwLTEzIDAyOjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZG9uJ3QgY29tbWl0IGJvb2xlYW4gbG9naWMgbGF0ZSBhdCBuaWdodAoKMjAwNi0xMC0xMyAwMToyOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDbGFyaWZ5IHRoZSBwYXJzaW5nIG9mIGJvb2xlYW4gIm1vbml0b3IiIGV4cHJlc3Npb25zLgoKMjAwNi0xMC0xMiAxNTo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgdXNlIG1lbW9yeV9kYXJ3aW4gZm9yIGRhcndpbjcKCjIwMDYtMTAtMTIgMTU6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEVuc3VyZSBpbnRlcm5hbCBxdWVyeSBjb25maWd1cmF0aW9uIGlzIGF2YWlsYWJsZSAoYW5kIGFjdGl2ZSkKICAgKmJlZm9yZSogbW9uaXRvciBkaXJlY3RpdmVzIGF0dGVtcHQgdG8gdXNlIGl0LgoKMjAwNi0xMC0xMiAxNToxOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyB3aXRoIG5vIFJUSE9TVF9TWU1CT0wgb3Igbm8gUlRORVRfU1lNQk9MIChsaWtlIEFJWCkKCjIwMDYtMTAtMTIgMDk6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgZml4IHR5cG8KCjIwMDYtMTAtMTIgMDk6MDMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBDSEFOR0VTOiBBSVg6IHVzZSBjb3JyZWN0IEFSUFRBQl9TWU1CT0wgYW5kIEFSUFRBQl9TSVpFX1NZTUJPTAoKMjAwNi0xMC0xMiAwODoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgQ0hBTkdFUzogQUlYOiBCVUcgMTIwNTMwMDogbmxpc3QgZXJyOiBuZWl0aGVyIG5wcm9jIG5vciBfbnByb2MgZm91bmQgKHNhbWUgZm9yIHJ0X3RhYmxlLCBydGhhc2hzaXplLCBydGhvc3QsIHJ0bmV0KQoKMjAwNi0xMC0xMiAwNDo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIFN1cHByZXNzIHRoZSBzdWJzdGl0dXRpb24gb2YgdGhlIGxpc3Qgb2YgbW9kdWxlIGhlYWRlciBmaWxlcy4KICAgVGhpcyBpcyBwdXJlbHkgYSB0ZW1wb3Jhcnkgc3RvcC1nYXAgZml4LCB0byBoYW5kbGUgc2VkIGNvbW1hbmRzIHdoaWNoCiAgIGNob2tlIG9uIG92ZXItbG9uZyBzdWJzdGl0dXRpb25zLiAgQSBiZXR0ZXIgYXBwcm9hY2ggaXMgbmVlZGVkLgoKMjAwNi0xMC0xMiAwNDo0MCAgZHRzMTIKCiAgICogTkVXUzoKCiAgIERvY3VtZW50IEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyIChpbmNsdWRpbmcgYmVoYXZpb3VyIGNoYW5nZXMpLgoKMjAwNi0xMC0xMiAwMzowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRml4IGhhbmRsaW5nIG9mIGFzc2lnbm1lbnRzIHRvIG10ZVRyaWdnZXJWYWx1ZUlECiAgICAgICBbQnVnICMxNTc0NzEzLCBQYXRjaCAjMTU3NDc0MywgZnJvbSBSb3NzIFR5bGVyXQoKMjAwNi0xMC0xMiAwMjo1NCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBUd2Vha3MgZm9yIERhcndpbiA5IHN1cHBvcnQgLSBbUGF0Y2ggIzE1NzU0MzMsIGZyb20gQ2hyaXMgSmFsYmVydF0KCjIwMDYtMTAtMTIgMDI6NDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaDoKCiAgIFVwZGF0ZWQgc3lzdGVtIGhlYWRlciBmaWxlIGZvciBEYXJ3aW44IC0gW1BhdGNoIDE1NzU0MzAsIGJ5IENocmlzIEphbGJlcnRdCgoyMDA2LTEwLTEyIDAyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBtZW1vcnkuaDoKCiAgIEluY2x1ZGUgdGhlIGFwcHJvcHJpYXRlIEhBTCBtb2R1bGVzIGZvciBEYXJ3aW4gKERhcndpbjkpIHN5c3RlbXMuCiAgIFN1cHBsaWVkIGJ5IENocmlzIEphbGJlcnQuCgoyMDA2LTEwLTExIDA5OjIxICByc3RvcnkKCiAgICogTkVXUzoKCiAgIC0gYWRkIG5vdGUgdGhhdCAtLWVuYWJsZS1tZmQtcmV3cml0ZXMgaXMgbmVlZGVkIGZvciBleHBlcmltZW50YWwgaWYtbWliIHBvcnRzCiAgIC0gcmVtb3ZlIGxpbmUgb24gcGF0Y2ggdG8gcHJldmlvdXNseSB1bnJlbGVhc2UgY29kZQoKMjAwNi0xMC0xMSAwOToxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZnJlZWJzZC5oLCBvcGVuYnNkLmg6CgogICBpbmNsdWRlIGlmLW1pYiByZXdyaXRlcyBpZiBtZmQgcmV3cml0ZXMgaXMgZGVmaW5lZAoKMjAwNi0xMC0xMSAwODowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIGluY2x1ZGUgaWYtbWliIHJld3JpdGVzIGlmIG1mZCByZXdyaXRlcyBpcyBkZWZpbmVkCgoyMDA2LTEwLTEwIDE3OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFByaXZveHlXaW5kb3dPcGVuPyBNdXN0IGhhdmUgYmVlbiBtaXNzaW5nIGEgbWFqb3IgZmVhdHVyZSBhZGRpdGlvbjotKQoKMjAwNi0xMC0xMCAxNTozMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggdHlwb3MKCjIwMDYtMTAtMTAgMTQ6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmM6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTU2OTUzNywxNTY5NTM5OiBuZXcgVURQLU1JQiBhbmQgVENQLU1JQiBpbXBsZW1lbnRhdGlvbiAoZW5hYmxlIHRocm91Z2ggLS13aXRoLW1pYi1tb2R1bGVzPXVkcC1taWIsdGNwLW1pYikKCjIwMDYtMTAtMTAgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NzA5ODIgU29sYXJpcyBJRi1NSUI6IFN1cHBvcnQgZm9yIElQdjYtb25seSBpbnRlcmZhY2VzCgoyMDA2LTEwLTEwIDA3OjMyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgcHJlYWQ2NCAoQUlYKSBhbmQgbmxpc3Q2NCAoSVJJWCkKCjIwMDYtMTAtMTAgMDY6MTYgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGFkZCBtaXNzaW5nIFNUUlVDVF9OTElTVDY0X0hBU19OX1ZBTFVFIHZhcmlhYmxlIHNvIHRoYXQgdGhlIHRlc3QgcmVzdWx0IGlzIGFjdHVhbGx5IHNhdmVkCgoyMDA2LTEwLTEwIDAzOjUyICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBzaGVsbCBzeW50YXggZXJyb3JzIHJlcG9ydGVkIGJ5IFJpY2hhcmQgQ2hvbmFrCgoyMDA2LTEwLTA5IDA2OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgbW9yZSByb2J1c3QgU29sYXJpcyBDUFUgdGVzdGluZzogdGhlIGluZGV4IGZvciB0aGUgZmlyc3QgQ1BVIG1heSB2YXJ5IGFjcm9zcyBzeXN0ZW1zIChDUFUgMCA9IGluZGV4IDc2OCwgQ1BVIDEgPSBpbmRleCA3NjkgZXRjLikKCjIwMDYtMTAtMDkgMDQ6MjEgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgZmFpbCBvbiBERUJVR01TRyoKCjIwMDYtMTAtMDggMTM6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfcHN0YXQuYzoKCiAgIEFjdGl2YXRlIHBzdGF0LWJhc2VkIENQVSBoYW5kbGluZyBvbiBIUC1VWCBzeXN0ZW1zLgoKMjAwNi0xMC0wOCAxMzoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgRG9uJ3QgcmVkZWZpbmUgYW4gZXhpc3RpbmcgdG9rZW4gd2l0aG91dCB1bmRlZmluaW5nIGl0IGZpcnN0LgoKMjAwNi0xMC0wOCAxMzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBFbnN1cmUgdGhhdCBoaXN0b3JpY2FsIGRhdGEgaXMgYXZhaWxhYmxlIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHVzZSBpdC4KCjIwMDYtMTAtMDcgMTQ6NTQgIGR0czEyCgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgRml4IHNpemUgY2hlY2sgZm9yIHNwZWNpYWxpc2VkIGludGVnZXItYmFzZWQgYXNzaWdubWVudHMuCiAgIChCdWcgIzE1NzIzOTQgLSBwYXRjaCBwcm92aWRlZCBieSBQaGlsIFdpbHNvbikKCjIwMDYtMTAtMDcgMDY6NDkgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIEFkanVzdCB0byBjaGFuZ2VzIGluIGNlcnRhaW4gSG9zdFJlcyBpbmRleGluZy4KCjIwMDYtMTAtMDUgMTU6NDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgV2hhdCdzIGEgc3RyYXkgdW5kZXJzY29yZSBoZXJlIG9yIHRoZXJlIGJldHdlZW4gZnJpZW5kcz8KCjIwMDYtMTAtMDUgMDg6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa3N0YXQuYzoKCiAgIERlYnVnZ2luZyBjb2RlLgoKMjAwNi0xMC0wNSAwODo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQmUgY29uc2lzdGVudCBpbiB0aGUgdXNlIG9mIENQVSBpbmRleGluZy4KCjIwMDYtMTAtMDQgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogbWVtb3J5LmgsIG1lbW9yeS9tZW1vcnlfbnVsbC5jCjoKCiAgIEFsbG93IHN5c3RlbXMgd2l0aG91dCBhbiBleHBsaWNpdCBIQUwgbWVtb3J5IG1vZHVsZSB0byBjb21waWxlCiAgIChldmVuIGlmIHRoZSBhZ2VudCBjYW4ndCByZXBvcnQgdGhlIHJlbGV2YW50IHN0YXRpc3RpY3MpLgoKMjAwNi0xMC0wNCAxNDo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9rc3RhdC5jOgoKICAgSW5jbHVkZSBrc3RhdC1iYXNlZCBDUFUgcHJvY2Vzc2luZyBvbiBTb2xhcmlzIHN5c3RlbXMsIGFuZCBhbWVuZCB0aGlzIGNvZGUKICAgdG8gYWN0dWFsbHkgY29tcGlsZS93b3JrLiAgKE11Y2ggb2YgdGhpcyBzdXBwbGllZCBieSBCcnVjZSBTaGF3KQoKMjAwNi0xMC0wMyAxMTozMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUZXN0IGZvciB0aGUgYWN0dWFsIGJlaGF2aW91ciBvZiAtVXggLUR4PXgsIGFuZCBvbmx5IHVzZSB0aGlzIGlmIGl0IHdvcmtzIGFzIGV4cGVjdGVkLgoKMjAwNi0xMC0wMSAwODo0MyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyOiAgQWRkIE5TSVMgaW5zdGFsbGVyIG9wdGlvbiBmb3IgaW5zdGFsbGluZyB3aW5FeHRETEwgdmVyc2lvbiBvZgogICBzbm1wZC5leGUKCjIwMDYtMTAtMDEgMDY6NDIgIGFsZXhfYgoKICAgKiBORVdTLCBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jCjoKCiAgIFdpbjMyOiAgQWRkIHRyYXAgc3VwcG9ydCB0byB3aW5FeHRETEwgYW5kIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA2LTA5LTI5IDE5OjAwICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiAgUmVtb3ZlIHdpbkV4dERMTCBzbm1wZC5jb25mIG9wdGlvbiwgYWRkIFNOTVAgdjIgc3VwcG9ydC4KCjIwMDYtMDktMjkgMTM6MjggIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnRfaW50Zi5jLCB0ZXN0cy90ZXN0LnB5OgoKICAgdGVzdCBmaXgKCjIwMDYtMDktMjkgMTM6MTggIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgY2xpZW50X2ludGYuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwNi0wOS0yOSAxMzoxOCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHRlc3RpbmcgdXBkYXRlcwoKMjAwNi0wOS0yOSAxMzowMyAgaGFyZGFrZXIKCiAgICogcHl0aG9uLzogUkVBRE1FLCBuZXRzbm1wL2NsaWVudC5weSwKICAgICBuZXRzbm1wL2NsaWVudF9pbnRmLmMsIG5ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHN1cHBvcnQgZm9yIGEgZ2VuZXJpYyB3YWxrIHdyYXBwZXIKCjIwMDYtMDktMjkgMTI6MzEgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnRfaW50Zi5jLCB0ZXN0cy90ZXN0LnB5OgoKICAgY2xlYW51cAoKMjAwNi0wOS0yOCAxODo1MCAgbWFyegoKICAgKiBweXRob24vOiBSRUFETUUsIG5ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGFkZGVkICdzZXQnIG1ldGhvZCwgZml4ZXMvYWRkaXRpb25zIHRvIHJlYWRtZQoKMjAwNi0wOS0yNyAyMzowMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgQ0hBTkdFUzogTWFjT1NYOiBQQVRDSDogMTU2Njc3NzogZnJvbSBqYWxiZXJ0OiBidWlsZCBmaXhlcyBmb3IgbWVtb3J5X2Rhcndpbi5jCgoyMDA2LTA5LTI3IDE1OjIxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWlub3IgcmV3b3JkaW5nCgoyMDA2LTA5LTI3IDE0OjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUzICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlMiAtPiBWNS40LnByZTMKCQoyMDA2LTA5LTI3IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0wOS0yNyAxNDoyOCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUzICkKCjIwMDYtMDktMjcgMTQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4OmNmbGFncyAtPjpjY2ZsYWdzCgoyMDA2LTA5LTI3IDEzOjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU2NjUyMzogZnJvbSBhcGVyc3NvbjogTWVtb3J5IGxlYWsgaW4gaWYtbWliIChTb2xhcmlzKQogICAtIHRha2UgYWR2YW50YWdlIG9mIGlmX25hbWV0b2luZGV4KCkgd2hlbiBwb3NzaWJsZQogICAtIGdyYWIgdGhlIElQdjYgaW50ZXJmYWNlIElkZW50aWZpZXIgaWYgYXZhaWxhYmxlCgoyMDA2LTA5LTI3IDEwOjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIC0gdXBkYXRlIGZvciBuZXcgcmVhc21fbWF4IHY0L3Y2IHNwbGl0CiAgIC0gYWRkICdsJyB0byBwcmludGYgc3BlYyBmb3Igc2l6ZV90IHBhcmFtCgoyMDA2LTA5LTI3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBsYXJnZWZpbGUgc3VwcG9ydCBvbiBzb2xhcmlzIGFuZCBkaXNhYmxlIGVtYmVkZGVkIHBlcmwgd2hlbiBvbgoKMjAwNi0wOS0yNyAwOTo1MSAgdGFuZGVycwoKICAgKiBGQVE6CgogICB1cGRhdGUgcGxhdGZvcm0gbGlzdAoKMjAwNi0wOS0yNyAwNjo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGhvdXQtcHl0aG9uLW1vZHVsZXMKCjIwMDYtMDktMjYgMTY6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgb3BlbmJzZDQgdG8gc3lzY3RsIGludGVyZmFjZSBsaXN0CgoyMDA2LTA5LTI2IDE1OjQ0ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgc3VwcG9ydCBmb3Igb3BlbmJzZDQKCjIwMDYtMDktMjYgMTU6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBhZGQgc3VwcG9ydCBmb3Igb3BlbmJzZDQKCjIwMDYtMDktMjYgMTQ6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb25zaXN0ZW50bHkgc2F5ICJQZXJsIiwgbm90ICJwZXJsIi4KCjIwMDYtMDktMjYgMTQ6MjEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgbmVlZCB0byBkb3VibGUgY2xlYW4gcHl0aG9uCgoyMDA2LTA5LTI2IDE0OjE5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aG91dC1wZXJsLW1vZHVsZXMKCjIwMDYtMDktMjYgMTI6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmM6CgogICBJbmNsdWRlIHNvbWUgKHByb2JhYmx5IG5vdCBhbGwpIG5lY2Vzc2FyeSBoZWFkZXIgZmlsZXMuCgoyMDA2LTA5LTI2IDEyOjIzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXhlZCBweXRob24gbWFrZSBjbGVhbiB3aGVuIG5vIHB5dGhvbiBzdXBwb3J0IHdhcyByZXF1ZXN0ZWQKCjIwMDYtMDktMjYgMDk6MzkgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgc2V0IHVwIHN5bWxpbmtzIGJlZm9yZSBydW5uaW5nIGNvbmZpZ3VyZSB0byBzdXJ2aXZlIHRoZSBuZXcgcGVybCB0ZXN0cwoKMjAwNi0wOS0yNiAwOTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2UgdGhlIHBlcmwgdGVzdHMgdG8gYWxsb3cgZm9yIHN5bWxpbmtzCgoyMDA2LTA5LTI2IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeGVkIHJwbSBjaGVja3MuLi4gIG9wcHBzCgoyMDA2LTA5LTI2IDA5OjA5ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICBkb2N1bWVudGVkIEFJWCBzZWQgaXNzdWVzCgoyMDA2LTA5LTI2IDA3OjQ5ICBtYXJ6CgogICAqIHB5dGhvbi86IFJFQURNRSwgbmV0c25tcC9jbGllbnQucHksCiAgICAgbmV0c25tcC9jbGllbnRfaW50Zi5jLCBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBjbGVhbnVwLCB3ZWlyZCBsZWFmIG9iaiBoYW5kbGluZywgYWRkZWQgc25tcGdldGJ1bGsKCjIwMDYtMDktMjUgMjE6NTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmUxIC0+IFY1LjQucHJlMgoKMjAwNi0wOS0yNSAyMTo0OSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMjUgMjE6NDkgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMiApCgoyMDA2LTA5LTI1IDIxOjM3ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZml4ZWQgc3ludGF4IGVycm9yCgoyMDA2LTA5LTI1IDE3OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmFuIGF1dG9oZWFkZXIKCjIwMDYtMDktMjUgMTc6MjYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVwZGF0ZSBmb3IgYSAtLXdpdGgtcHl0aG9uLW1vZHVsZXMgZmxhZzsgd2lsbCBydW4gaW50byBzb21lIG9mIHRoZSBzYW1lIGJ1aWxkLWluLXBsYWNlIGlzc3VlcyB0aGF0IHBlcmwgaGFzIGJ1dCBpdCdzIGEgc3RhcnQKCjIwMDYtMDktMjUgMTc6MDQgIGhhcmRha2VyCgogICAqIHB5dGhvbi9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCjIwMDYtMDktMjUgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTU1OTM1ODogZnJvbSB0cmFta2VyOiBjaGVjayBzY2FuZiByZXN1bHRzIGZvciBkaXNraW8gc2Nhbm5pbmcKCjIwMDYtMDktMjUgMTY6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDE1NjQyMzM6IEhhdmUgY29uZmlndXJlIHRlc3QgZm9yIHJwbSBoZWFkZXJzIG5vdCBqdXN0IHRoZSBsaWJyYXJpZXMKCjIwMDYtMDktMjUgMTQ6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3Qgd2FybiBhYm91dCBleGNsdWRpbmcgcmVxdWlyZWQgbW9kdWxlcyB3aGVuIHRoZSBjdXJyZW50IGZpbGUgaXMgZGVmYXVsdF9taWJzCgoyMDA2LTA5LTI1IDE0OjMzICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTY1MjkzOiBmcm9tIGFkcDogVURQSVB2NiB0cmFuc3BvcnQgcmVwb3J0cyB3cm9uZyBwb3J0IG51bWJlcgoKMjAwNi0wOS0yNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0ZXN0cyB0byBzZWUgaWYgd2UncmUgaW4gdGhlIG1haW4gc291cmNlIHRyZWUgc28gd2UgY2FuIGluc3RhbGwgdGhlIHBlcmwgbW9kdWxlcyBvciBub3QKCjIwMDYtMDktMjUgMDk6MjUgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBidWxrd2Fsay50LCBjb25mLnQsCiAgICAgZ2V0LnQsIGdldG5leHQudCwgbWliLnQsIG1pYmxvYWQudCwKICAgICBub3RpZnkudCwgc2Vzc2lvbi50LCBzZXQudDoKCiAgIE1ha2UgcGVybCB0ZXN0IHN1aXRlIHdvcmsgZXZlbiBpZiBuZXQtc25tcCBpc24ndCBpbnN0YWxsZWQgeWV0LgoKMjAwNi0wOS0yNSAwODo0OCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBOZXRTTk1QOjphZ2VudCB0ZXN0cyBuZWl0aGVyIG5lZWQgY29uZmlnIG5vciBNSUJzCgoyMDA2LTA5LTI1IDA4OjIxICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGV4Y2x1ZGUgQ1ZTIGZpbGVzIGZyb20gbmlnaGx5IHRhcmJhbGxzCgoyMDA2LTA5LTI1IDA3OjMwICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCBjbGllbnRfaW50Zi5jLAogICAgIHRlc3RzL3Rlc3QucHk6CgogICBhZGRpbmcgZ2V0YnVsaywgcmVtb3Zpbmcgc29tZSBkZWJ1ZwoKMjAwNi0wOS0yNSAwNTozNSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgRG9uJ3QgbWl4IHRhYnMgYW5kIHNwYWNlcyBmb3IgaW5kZW50YXRpb24uIENvbnZlcnQgYWxsIChyYXJlbHkgdXNlZCkgdGFicyB0byBzcGFjZXMuCgoyMDA2LTA5LTI1IDAxOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oCiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgRGlzdGluZ3Vpc2ggYmV0d2VlbiAiT0lELioiIGFuZCAiT0lEKiIgd2lsZGNhcmQgc3ludGF4IChleGNsdXNpdmUgYW5kCiAgIGluY2x1c2l2ZSBzdWJ0cmVlIG1hdGNoZXMgcmVzcGVjdGl2ZWx5KS4KCjIwMDYtMDktMjUgMDE6MzggIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZgo6CgogICBJbXBsZW1lbnQgKGFuZCBkb2N1bWVudCkgIk9JRC4qIiBzeW50YXggZm9yIHN1YnRyZWUgbWF0Y2hpbmcuCgoyMDA2LTA5LTI0IDE1OjI4ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMIC0gRml4IGJ1ZyB3aXRoIHNldCByZXF1ZXN0cywgc3RhcnQgdG8gYWRkIFNOTVB2MiBzdXBwb3J0LgoKMjAwNi0wOS0yMyAwMDoxMyAgdGFuZGVycwoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgT0lELnBtIHRlc3RzIHNob3VsZG4ndCBkZXBlbmQgb24gKmluc3RhbGxlZCogTUlCcwoKMjAwNi0wOS0yMiAxNDoxOCAgdGFuZGVycwoKICAgKiBweXRob24vUkVBRE1FOgoKICAgc29tZSBuaXQtcGlja2luZwoKMjAwNi0wOS0yMiAxMzo1NiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgU05NUC5wbSBwZXJsIHRlc3RzIHNob3VsZG4ndCBkZXBlbmQgb24gKmluc3RhbGxlZCogTUlCcwoKMjAwNi0wOS0yMiAxMjo0NyAgbWFyegoKICAgKiBweXRob24vUkVBRE1FOgoKICAgUkVBRE1FIGVkaXRzCgoyMDA2LTA5LTIyIDEyOjAzICBtYXJ6CgogICAqIHB5dGhvbi9SRUFETUU6CgogICBtb2RzIHRvIFJFQURNRSB3aXRoIHNvbWUgdXNhZ2UgaW5mbwoKMjAwNi0wOS0yMiAxMDoyNSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIHByb3BlciBuYW1pbmcKCjIwMDYtMDktMjIgMTA6MjUgIGhhcmRha2VyCgogICAqIHB5dGhvbi86IExJQ0VOU0UsIFJFQURNRToKCiAgIGFkZGVkIGEgcmVhZG1lIGFuZCBsaWNlbnNlIGZpbGUKCjIwMDYtMDktMjIgMTA6MjAgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBkYXRlIHVwZGF0ZQoKMjAwNi0wOS0yMiAwNzo1OCAgbWFyegoKICAgKiBweXRob24vOiBzZXR1cC5weSwgbmV0c25tcC9fX2luaXRfXy5weSwKICAgICBuZXRzbm1wL2NsaWVudC5weSwgbmV0c25tcC9jbGllbnRfaW50Zi5jLAogICAgIG5ldHNubXAvdGVzdHMvX19pbml0X18ucHksIG5ldHNubXAvdGVzdHMvc25tcGQuY29uZiwKICAgICBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBBZGRpbmcgaW5pdGlhbCBhbHBoYSBzdXBwb3J0IGZvciBuZXQtc25tcCBweXRob24gYmluZGluZwoKMjAwNi0wOS0yMiAwNDo0NyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBEb24ndCBmYWlsIG9uICJMT0dfRVJSIi4KCjIwMDYtMDktMjIgMDM6MjkgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvOiBub3RpZnkudCwgc3RhcnRhZ2VudC5wbDoKCiAgIGZpeCBTTk1QLnBtIG5vdGlmeSB0ZXN0IChzdGFydCBzbm1wdHJhcGQgd2l0aCB2YWxpZCBvcHRpb25zKQoKMjAwNi0wOS0yMSAwOToxNSAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcC9NYWtlZmlsZS5pbiwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBXaW5kb3dzIGJ1aWxkIGZpeGVzLgoKMjAwNi0wOS0yMSAwNzo0MyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9wZXJsX3NubXB0cmFwZC5oOgoKICAgU3luYyBzdHJ1Y3QgbmV0c25tcF90cmFwZF9oYW5kbGVyX3Mgd2l0aCB0aGUgbGlicmFyeSBjb2RlIGFnYWluIChhZGQgImZsYWdzIikuCgoyMDA2LTA5LTIxIDA2OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGZpeCBwb3RlbnRpYWwgc2VnZmF1bHQgaW50cm9kdWNlZCBieSBwYXRjaCAxNTYxMjc3CgoyMDA2LTA5LTIxIDA1OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4gZm9yIFNOTVBfU1RST1JOVUxMCgoyMDA2LTA5LTIxIDAzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgKnJlYWxseSoga2VlcCBwcmVYL3JjWCBpbiB2ZXJzaW9uIHN0cmluZ3MKCjIwMDYtMDktMjAgMTk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBjaGFuZ2UgYWdlbnR4IHNvY2tldCBkZWZpbmUgdG8gTkVUU05NUF8gcHJlZml4ZWQKCjIwMDYtMDktMjAgMTM6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBDaGVjayBpbmNvbWluZyB0cmFwIE9JRHMgYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSB0cmFwaGFuZGxlIE9JRAogICAoYnV0IG5vdCB0aGUgb3RoZXIgd2F5IHJvdW5kISkKCjIwMDYtMDktMjAgMDk6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2hhbmdlIHByZSB0YWdzIHRvIDAuIHRvIGF2b2lkIGJhZGx5IGdlbmVyYXRlZCB2ZXJzaW9uIG51bWJlcnMKCjIwMDYtMDktMjAgMDc6NDUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhdXRvbWF0dGVkIHRlc3Rpbmcgb2YgdGhlIHByb2R1Y2VkIHRhci1iYWxsCgoyMDA2LTA5LTE5IDIyOjIzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZml4IHBhdGggdG8gZXh0cmFjdG5ld3MKCjIwMDYtMDktMTkgMjI6MTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbgosIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIGNvbmZpZ3VyZSwKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTEgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMyAtPiBWNS40LnByZTEKCjIwMDYtMDktMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMSApCgoyMDA2LTA5LTE5IDE3OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjYXZlIHRvIHB1dHRpbmcgaW4gc29tZSBidWZmZXIgc3BhY2UgZm9yIGxpYmN1cnJlbnQ7IDUuMyB3YXMgMTAgYW5kIGluY3JlbWVudHMgb2YgNSBtYWtlIGl0IGVhc3ksIHNvIDUgaXQgaXMuCgoyMDA2LTA5LTE5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogZXh0cmFjdG5ld3MsIG1ha2VyZWxlYXNlOgoKICAgeWV0IG1vcmUgdXBkYXRlcyBmb3IgbWFraW5nIHJlbGVhc2VzCgoyMDA2LTA5LTE5IDE2OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vcmUgZml4ZXMgZm9yIHVkcCBkb21haW5zOiByZW1vdmUgcmVxdWlyZW1lbnQgZm9yIGluZXRfYXRvbiB3aGljaCBvbiBzb21lIHN5c3RlbXMgZXhpc3RzIGluIGxpYnJlc29sdgoKMjAwNi0wOS0xOSAxNjozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICB1ZHAgZG9tYWluIGZpeGVzCgoyMDA2LTA5LTE5IDE2OjA0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYnVpbGQgZml4IGZvciBJUklYIHdpdGggU0dJJ3MgY2MKCjIwMDYtMDktMTkgMTU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgKLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBORVdTOiBzbm1wdHJhcGQ6IHRoZSB0cmFwaGFuZGxlIGRpcmVjdGl2ZSBub3cgc3VwcG9ydHMgYSAtdCBzd2l0Y2ggdG8gaW5kaWNhdGUgbWF0Y2hpbmcgYW55IE9JRCBpbiB0aGUgdHJlZSBiZWxvdyB0aGUgc3BlY2lmaWVkIE9JRAoKMjAwNi0wOS0xOSAxNToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBjbGVhbmVkIHVwIHBlcmwgdmFycyBmb3Igc3VwcG9ydCBvbiBvbGRlciBwZXJsIHZlcnNpb25zCgoyMDA2LTA5LTE5IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBlcnJvciBsb2dpYyBpbiBwZXJsIHRlc3RzCgoyMDA2LTA5LTE5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHNtYXJ0IGRldGVjdGlvbiBvZiBhdmFpbGFibGUgcGVybCBzdXBwb3J0CgoyMDA2LTA5LTE5IDExOjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBwZXJsIGNjIHRlc3QgdG8gYWxsb3cgZm9yIGRhc2ggb3B0aW9ucwoKMjAwNi0wOS0xOSAxMDo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVwb3J0IHRoZSBhcHByb3ByaWF0ZSBwcmVmaXggbWF0Y2ggd2hlbiBvbmUgT0lEIGlzIGEgcHJlZml4IG9mIHRoZSBvdGhlci4KICAgVGhlIHByZXZpb3VzIGNvZGUgdHJlYXRlZCB0aGlzIGFzIGEgbm9uLW1hdGNoIChyZXR1cm5pbmcgMCkuCiAgIEknbSBub3QgYXQgYWxsIGNvbnZpbmNlZCBieSB0aGUgIisxIiBoYW5kbGluZyBlaXRoZXIuCgoyMDA2LTA5LTE5IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFub3RoZXIgYXR0ZW1wdCB0byBmaXggdGhlIGl0ZW1zIGNhbGN1bGF0aW9uIHdpdGhvdXQgcG9wcGluZyBhIG1hcmsKCjIwMDYtMDktMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NTA3MjU6IGZyb20gJ1dheW5lIEdsYW50eic6IEEgbmV3IHVpbnQgaW5zdGFuY2UgaGVscGVyIHRvIG1hdGNoIHRoZSBleGlzdGluZyBpbnQsIGxvbmcgYW5kIHVsb25nIGhlbHBlcnMKCjIwMDYtMDktMTkgMDk6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAxNTI3OTMwOiBmaXggc211eCBhdXRoZW50aWNhdGlvbgoKMjAwNi0wOS0xOSAwOToxNyAgaGFyZGFrZXIKCiAgICogZGlzdC86IFJFTEVBU0UtSU5TVFJVQ1RJT05TLCBleHRyYWN0bmV3czoKCiAgIHJlbW92ZSBmcm9tIHVzZXIgc3RyaW5ncyBpbiBORVdTIGFuZCBDSEFOR0VTIGxpbmVzCgoyMDA2LTA5LTE5IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgcmVtb3ZlIHJvYmVydCdzIHNlbGYtY2FsbGVkIGhhY2sgZm9yIG1ha2luZyBzbm1wdHJhcGQgaGFuZGxlIHBhcnRpYWwgT0lEcy4gIEFzIGFncmVlZCB0byBvbiBjb2RlcnMgdGhpcyBjYW4ndCBiZSBkb25lIGFzIGlzIGJlY2F1c2UgaXQgY29tcGxldGVseSBjaGFuZ2VzIGV4aXN0aW5nIHVzYWdlLiAgQSBuZXcgbWVjaGFuaXNtIGlzIG5lZWRlZCB0byBzdXBwb3J0IHRoaXMgYmVoYXZpb3VyIHNvIGl0IGRvZXNuJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaXR5IHdpdGggcG90ZW50aWFsIHNlY3VyaXR5IHJhbWlmaWNhdGlvbnMKCjIwMDYtMDktMTkgMDc6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDEyODI1NjY6IGZyb20gbWFnZnIgdG8gcmV3b3JrIHRyYW5zcG9ydCBjcmVhdGlvbiB0byBhbGxvdyBmb3IgYWx0ZXJuYXRpdmUgaW50ZXJwcmV0YXRpb25zIG9mIHRoZSBhZGRyZXNzIGFuZCBhIG1vcmUgZmxleGlibGUgdHJhbnNwb3J0IHJlZ2lzdHJhdGlvbiBzeXN0ZW0KCjIwMDYtMDktMTkgMDY6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTYxMjc3OiB1c2UgbmV0LmlwdjYubmVpZ2gubG8uYmFzZV9yZWFjaGFibGVfdGltZV9tcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgYmFzZV9yZWFjaGFibGVfdGltZQoKMjAwNi0wOS0xOSAwNDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnQuYywgbXRlT2JqZWN0cy5jCjoKCiAgIERvbid0IHJlLWluaXRpYWxpc2UgYnVpbHQtaW4gRXZlbnQtTUlCIGV2ZW50cywgZXRjLgoKMjAwNi0wOS0xOSAwMzoyNCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIEZpcnN0IHN0ZXBzIGluIHN1cHBvcnRpbmcgc2luZ2xlLWluc3RhbmNlIHJlZ2lzdHJhdGlvbnMuCgoyMDA2LTA5LTE4IDIxOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAxNDc0NDY4OiBpZkNvbm5lY3RvclByZXNlbnQgYWx3YXlzIHJldHVybnMgMAoKMjAwNi0wOS0xOCAyMDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBtb2RpZmllZCB0aGUgaG9zdCByZXNvdXJjZXMgc2tpcCBORlMgcGF0Y2ggdG8gZml4IGEgYnVnIGFuZCB0byB1c2UgdGhlIGRlZmF1bHQgc3RvcmFnZSBjb25maWcgaW5zdGVhZAoKMjAwNi0wOS0xOCAyMDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTUyNDc1NTogZnJvbSBhcGVyc3NvbiB0byBiZXR0ZXIgc3VwcG9ydCB0aGUgVURQVGFibGUgZm9yIHVua25vd24gYWRkcmVzcyB0eXBlcwoKMjAwNi0wOS0xOCAyMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTUzNDg3NzogZnJvbSBidWNraCB0byBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgTkZTIGVudHJpZXMgaW4gdGhlIGhvc3QgcmVzb3VyY2VzIGhyU3RvcmFnZVRhYmxlLiAgU2VlIHRoZSBza2lwTkZTSW5Ib3N0UmVzb3VyY2VzIHRva2VuIGluIHRoZSBzbm1wZC5jb25mIGZpbGUgZm9yIGRldGFpbHMuCgoyMDA2LTA5LTE4IDIwOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgYWNjZXB0aWxlIE5FV1MgdG9rZW5zCgoyMDA2LTA5LTE4IDE3OjMwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgdGhlIG5ldyBDVlMgTkVXUyB0YWcgc3lzdGVtCgoyMDA2LTA5LTE4IDE2OjA1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBORVdTOiBzbm1wdHJhcGQ6IC0gUEFUQ0g6IDE1MzY3NzM6IHN1cHBvcnQgcGFydGlhbCBvaWQgbWF0Y2hpbmcKCiAgIFdlIGNhbiBzdGlsbCBhZGQvcmVxdWlyZSBhIHNwZWNpYWwgdG9rZW4vc3ludGF4IGZvciB0aGlzIGFmdGVyIHByZTEKICAgaWYgdGhpcyB3YXMgdGhlIGNvbnNlbnN1cy4KCjIwMDYtMDktMTggMTU6MjQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmM6CgogICBmaXggcmVjZW50IGJ1aWxkIGlzc3VlcyBvbiBTb2xhcmlzIDcgKHBhdGNoIHByb3ZpZGVkIGJ5IEFuZGVycyBQZXJzc29uKQoKMjAwNi0wOS0xOCAwNzoxOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYzoKCiAgIGFkZCBkZWJ1Z2dpbmcsIGZpeCBzb21lIGZpZ3VyZXMKCjIwMDYtMDktMTggMDI6MDggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9NQU5JRkVTVDoKCiAgIGFkZCBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydCBmaWxlcwoKMjAwNi0wOS0xOCAwMToxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1Lmg6CgogICBNb3ZlIHVwIGFuZCByZW5hbWUgdGhlICNpZm5kZWYgdG8gcHJldmVudCBkdXBsaWNhdGUgaW5jbHVkZS4gRml4ZXMgY29tcGlsZSBlcnJvcnMgd3J0LiBDb3VudGVyNjQgb24gU29sYXJpcyA3IGFuZCBlYXJsaWVyLgoKMjAwNi0wOS0xNiAxNjozMyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJFQURNRSB1cGRhdGUgZm9yIHdpbkV4dERMTC4KCjIwMDYtMDktMTYgMTU6MjIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbmRvd3Mgd2luRXh0RExMOiBVc2UgcmVnaXN0cnkgZW50cmllcyBmb3IgV2luZG93cyBTTk1QIGV4dGVuc2lvbiB0byBnZXQKICAgdGhlIGxpc3Qgb2YgRExMcyB0byBsb2FkLgoKMjAwNi0wOS0xNiAxMzo0OSAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVUU05NUF8gZGVmaW5lIGZpeGVzLgoKMjAwNi0wOS0xNiAxMjo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgY29uZmlndXJlLmluOgoKICAgZml4IGNoZWNrIGZvciA8c3lzL3N5c3RlbWNmZy5oPiAoQUlYKQoKMjAwNi0wOS0xNiAxMTowMSAgdGFuZGVycwoKICAgKiB3aW4zMi86IGNvbmZpZy5oLmJvcmxhbmQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIGZpeCBzb21lIE5FVFNOTVBfTkVUU05NUF8qICJkb3VibGUgcmVuYW1lIiBlcnJvcnMgZm9yIFdpbmRvd3MKCjIwMDYtMDktMTYgMTA6NTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICByZXZlcnQgdG8gKGxvY2FsKSBPTERfSEVJTURBTCBkZWZpbmUKCjIwMDYtMDktMTYgMTA6MjMgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlbmFtZSBsYXN0IG9jY3VyZW5jZSBvZiBET05UX1VTRV9OTElTVAoKMjAwNi0wOS0xNiAxMDoxMCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIKCjIwMDYtMDktMTYgMDg6NDQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC86IGxpYnNubXAuZGVmLCBsaWJzbm1wLmRlZi5pbjoKCiAgIFdpbmRvd3MgTVNWQyBQZXJsIGNvbXBpbGUgZml4ZXMuCgoyMDA2LTA5LTE2IDA4OjE5ICBhbGV4X2IKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMOgoKICAgRml4IGZvciBidWlsZGluZyB1bmRlciBXaW5kb3dzIChNU1ZDKS4KCjIwMDYtMDktMTUgMDk6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBhY3RpdmF0ZSBtZW1vcnkgSEFMIGNvZGUgZm9yIElSSVgKCjIwMDYtMDktMTUgMDk6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBpbml0aWFsIElSSVggdmVyc2lvbiBvZiBtZW1vcnkgSEFMIGludGVyZmFjZQoKMjAwNi0wOS0xNSAwNzo0OCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciA8c3lzL3N5c2dldC5oPiAoSVJJWCkKCjIwMDYtMDktMTUgMDc6MTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIGludHJvZHVjZSBuZXRzbm1wX29zX2tlcm5lbF93aWR0aCgpIHRvIGJlIGFibGUgdG8gZGV0ZWN0IDY0Yml0IGtlcm5lbHMgYXQgcnVudGltZQoKMjAwNi0wOS0xNSAwNjoxMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBzeXMvc3lzdGVtY2ZnLmggKEFJWCkgYW5kIHN5cy9zeXN0ZW1pbmZvLmggKElSSVgpCgoyMDA2LTA5LTE1IDA1OjQ2ICB0YW5kZXJzCgogICAqIFJFQURNRS53aW4zMiwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgc25tcGxpYi9rZXl0b29scy5jLAogICAgIHNubXBsaWIvc2NhcGkuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UKLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsCiAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIHdpbjMyL0NvbmZpZ3VyZToKCiAgIG1vcmUgcmVuYW1lcyBhbmQgZml4ZXMKCjIwMDYtMDktMTUgMDQ6MTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IHN5bnRheCBlcnJvciB0aGF0IGJyb2tlIHRoZSBTb2xhcmlzIGJ1aWxkCgoyMDA2LTA5LTE1IDAzOjQ0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHdyb25nIHJlbmFtZXMKCjIwMDYtMDktMTUgMDM6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICByZXN0cmljdCBJUF9QS1RJTkZPIGNvZGUgdG8gTGludXgKCjIwMDYtMDktMTUgMDI6MTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGZpeCBzeW50YXggZXJyb3JzIHdoaWNoIGJyb2tlIHRoZSBidWlsZCBvbiBTb2xhcmlzCgoyMDA2LTA5LTE0IDIxOjAzICBhbGV4X2IKCiAgICogd2luMzIvOiBjb25maWcuaC5ib3JsYW5kLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hhbmdlIE5ldC1TTk1QIGRlZmluZXMgdG8gdXNlIE5FVFNOTVBfIHByZWZpeC4KCjIwMDYtMDktMTQgMTc6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgICBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywKICAgICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2FzbjEuYywKICAgICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLAogICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9tdF9zdXBwb3J0LmMsCiAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BrY3MuYywKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jCiwgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwosIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBBbHdheXMgdXNlIHRoZSBuZXcgbmV0LXNubXAtY29uZmlnLmggZGVmaW5pdGlvbnMgZnJvbSB3aXRoaW4gdGhlIE5FVFNOTVBfCiAgIG5hbWVzcGFjZS4KCjIwMDYtMDktMTQgMTY6NTUgIGhhcmRha2VyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBmaXJzdCBwYXNzIGF0IGV4dHJhY3RpbmcgTkVXUy9DSEFOR0VTIGZpbGVzIGZyb20gY3ZzIGxvZ3MKCjIwMDYtMDktMTQgMTY6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBkZXRlY3Qgc29sYXJpcyBpYmQvaXAudHVuL2F0aCBpbnRlcmZhY2UgdHlwZXMgcHJvcGVybHkKCjIwMDYtMDktMTQgMTU6MjggIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gU29sYXJpcyBpZi1taWIgcmV3cml0ZQoKMjAwNi0wOS0xNCAxNToxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNi0wOS0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBORVdTOiBQQVRDSEVTOiAxNTA5OTQzOiByZXNwb25zZXMgd2lsbCBnZXQgc2VudCBmcm9tIHRoZSBvcmlnaW5hbCBkZXN0IElQIGFkZHJlc3Mgd2hlbiBwb3NzaWJsZS4KCjIwMDYtMDktMTQgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBDSEFOR0VTOiBQQVRDSEVTOiAxNTU0ODI3OiBmcm9tIHJ0eWxlOiBmaXggaGFuZGxpbmcgb2YgZmFpbGVkIHByb3h5IFNFVCByZXF1ZXN0cwoKMjAwNi0wOS0xNCAxMzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMKOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE1NTc1MTQgZnJvbSBydHlsZTogRG8gbm90IGF0dGVtcHQgdG8gY29sbGVjdCBkYXRhIGR1cmluZyBTRVQgcHJvY2Vzc2luZy4KCjIwMDYtMDktMTQgMTM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGFzcyAyIGF0IGdldHRpbmcgYXV0by1idWlsZCBzdXBwb3J0IGZvciAuc28gZmlsZXMuICBJJ20gbm93IGNvbnZpZW5jZWQgaXQncyBjbG9zZSB0byBpbXBvc3NpYmxlIHRvIGRvIGNvcnJlY3RseSB3aXRoIGRlcGVuZGVuY3kgaXNzdWVzIGFuZCBubyBzdXBwb3J0IGZvciByZWN1cnNpdmUgZnVuY3Rpb25zIGluIHNoCgoyMDA2LTA5LTE0IDEyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jOgoKICAgc29sYXJpcyBzdXBwb3J0IGZvciBpZi1taWIgNjRiaXQgY291bnRlcnMKCjIwMDYtMDktMTQgMTA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGlwQWRkci5jLCB2YXJfcm91dGUuYwo6CgogICB1c2UgbmV3IGRhdGEgYWNjZXNzIHJvdXRpbmUgZm9yIHNvbGFyaXMsIGlmIHJld3JpdGUgaW4gZWZmZWN0CgoyMDA2LTA5LTE0IDEwOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIHVzZSBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUyB0byBkZWNpZGUgYWJvdXQgaWYtbWliIHN1cHBvcnQKCjIwMDYtMDktMTQgMTA6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHNvbGFyaXMgc3VwcG9ydCBmb3IgaWYtbWliIDY0Yml0IGNvdW50ZXJzCgoyMDA2LTA5LTE0IDEwOjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9jb25mICYmIGF1dG9oZWFkZXIKCjIwMDYtMDktMTQgMTA6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB0eXBlIGNoZWNrIGZvciBzb2xhcmlzIENvdW50ZXI2NAoKMjAwNi0wOS0xNCAxMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBzcGxpdCByZWFzbV9tYXggaW50IHR3byB2YXJzICh2Ni92NikKCjIwMDYtMDktMTQgMDc6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oOgoKICAgZGVmaW5lIE5FVFNOTVBfSU5DTFVERV9JRlRBQkxFX1JFV1JJVEVTCgoyMDA2LTA5LTE0IDA3OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgbWliSUkvaWZUYWJsZS5oOgoKICAgT25seSB0cnkgdG8gdXNlIG1mZCBjb2RlIGlmZiBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUyBpcyBkZWZpbmVkCgoyMDA2LTA5LTE0IDA3OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBkZWZpbmVkIGZvciBuZXcgaWZPcGVyU3RhdHVzIHZhbHVlcwoKMjAwNi0wOS0xNCAwMjo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYwosIGxvY2FsL21pYjJjLnJvdy5jb25mOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgYSBzaW5nbGUtcm93IGhlbHBlci4KCjIwMDYtMDktMTMgMTA6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgcGFzcyBvbmUgYXQgc3BlY2lmeWluZyBkbGxzIHRvIGJ1aWxkIHZpYSBtb2R1bGVzLiAgRG8gbm90IHVzZSB0aGlzIHlldCBhcyB0aGVyZSBhcmUgY29uZmxpY3QgaXNzdWVzIHRoYXQgbmVlZCB0byBiZSB3b3JrZWQgb3V0CgoyMDA2LTA5LTEyIDE4OjMyICBhbGV4X2IKCiAgICogTkVXUywgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYwosIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLAogICAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luZG93czogbmV3IHdpbkV4dERMTCBleHRlbnNpb24gbW9kdWxlIHRvIGFsbG93IHNubXBkIHRvIGxvYWQgV2luZG93cwogICBTTk1QIHNlcnZpY2UgZXh0ZW5zaW9uIERMTHMgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBIT1NULVJFU09VUkNFUy1NSUIKICAgYW5kIG90aGVyIE1JQnMgcHJvdmlkZWQgd2l0aCBXaW5kb3dzLgoKMjAwNi0wOS0xMiAxNjoxNSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0FOX1VTRV9TWVNDVEwgLT4gTkVUU05NUF9DQU5fVVNFX1NZU0NUTAoKMjAwNi0wOS0xMiAxNTo0MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIGZpeGVzCgoyMDA2LTA5LTEyIDE1OjM1ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIHNlZHNjcmlwdC5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaDoKCiAgIE5FV1M6IG1pc2M6IC0gTW9zdCBuZXQtc25tcCBzcGVjaWZpYyBkZWZpbmVzIGFyZSBub3cgKGFsc28pIGF2YWlsYWJsZSB1bmRlciBhIHByb3BlciBORVRTTk1QXyBwcmVmaXguIFRoZSBvbGRlciwgcG90ZW50aWFsbHkgY29uZmxpY3RpbmcgbmFtZXMgYXMgd2VsbCBhcyB0aGUgYXV0b2NvbmYgdmFyaWFibGVzIGNhbiBub3cgYmUgdHVybmVkIG9mZiBieSBhIHNwZWNpYWwgZGVmaW5lLgoKMjAwNi0wOS0xMiAxMDozMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgTkVXUzogYWdlbnQ6IC0gW0JVR1M6IDE0Mjc0MTBdIFNldCBhdXRoIGVuZ2luZUlEIGZvciBTTk1QdjMgdHJhcHMuCiAgIChyYXRoZXIgdGhhbiBzZW5kaW5nIGEgdHJhcCB3aXRoIG5vIGF1dGggZW5naW5lSUQpCgoyMDA2LTA5LTEyIDEwOjMwICBkdHMxMgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogYnVpbGQ6IC0gW0JVR1MgMTQxNjQ4MV0gU3VwcG9ydCBzcGVjaWZ5aW5nIGFuIGV4cGxpY2l0IGxpbmtlci4KICAgRGVmYXVsdHMgdG8gJENDIGlmIG5vdCBleHBsaWNpdGx5IHNldC4KCjIwMDYtMDktMTIgMTA6MjcgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogYWdlbnQ6IC0gW0JVR1MgMTUwMjI2N10gQnVpbGQgYWNjZXNzIGxpc3QgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuCgoyMDA2LTA5LTEyIDA2OjA2ICB0YW5kZXJzCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZW5hYmxlIGVtYmVkZGVkIFBlcmwgYW5kIHRoZSBQZXJsIG1vZHVsZXMgYnkgZGVmYXVsdAoKMjAwNi0wOS0wOCAwODo0MyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIE5FV1M6IG1pYjJjOiAtIFtCVUdTOiAxNDc5OTE2XSBSZXN0b3JlIGNvbnNpc3RlbmN5IGluIHJvdyBjcmVhdGlvbiBjb2RlLgoKMjAwNi0wOS0wOCAwNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBORVdTOiBzbm1wZDogLSBbQlVHUzogMTUzNTkwM10gU3VwcG9ydCBzcGFjZXMgd2l0aGluIHNlY3VyaXR5IG5hbWVzCgoyMDA2LTA5LTA3IDIwOjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCwgSSB0aGluaywgdGhlIGJ1bGt3YWxrIHByb2JsZW1zOyBhbGwgdGVzdHMgcGFzcy4gIEkgYmVsaWV2ZSB0aGUgcGF0Y2ggaXMgdGhlIGNvcnJlY3QgY29tYmluYXRpb24gYmV0d2VlbiB0aGUgdHdvIGRpZmZlcmVudCBwYXRjaGVzICh0aGUgb2xkIG9uZSBhbmQgdGhlIG5ldyBvbmUpIHRoYXQgc2hvdWxkIGZpeCBib3RoIHByb2JsZW1zLiAgTkVXUzogcGVybCAtIEZpeGVkIHRoZSBwZXJsIGJ1bGt3YWxrIGZ1bmN0aW9uCgoyMDA2LTA5LTA3IDA5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IHR5cG8gd2hpY2ggYnJva2UgcGVyc2lzdGVuY2UKCjIwMDYtMDktMDcgMDk6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIFVzZSB0aGUgY29ycmVjdCBBUEkgY2FsbCBmb3IgcmVtZW1iZXJpbmcgYSBuZXdseS1jcmVhdGVkIHJvdy4KICAgKFNwb3R0ZWQgYnkgWmhhbmcgQ2h1YW4pLgoKMjAwNi0wOS0wNyAwNDozNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIE5FV1M6IHNubXBkZjogLSBbQlVHUzogMTUxNTUwN10gSGFuZGxlIGZhaWxlZCByZXF1ZXN0cyBiZXR0ZXIKICAgKERvbid0IGdvIGludG8gYW4gaW5maW5pdGUgbG9vcCEpCgoyMDA2LTA5LTA3IDA0OjMwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICAgIHNubXBsaWIvbWliLmM6CgogICBORVdTOiBzbm1wbGliIC0gW0JVR1M6IDE1Mzc0NTksIEJVR1M6IDE1NDA3NDVdIEZpeCBtaXNzaW5nIE1JQiBwYXJzaW5nIHRva2VucwoKMjAwNi0wOS0wNyAwNDoyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIE5FV1MsCiAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQKOgoKICAgUmV2ZXJ0IGRlZmF1bHQgYmVoYXZpb3VyIG9mIGNvbnZlbmllbmNlIGFjY2VzcyBjb250cm9sIGRpcmVjdGl2ZXMKICAgdG8gbWF0Y2hpbmcgYWxsIGNvbnRleHQuICBBbiBleHBsaWNpdCBjb250ZXh0IGZpZWxkIHdpbGwgYmUgdGFrZW4KICAgYXMgYW4gZXhhY3QgbWF0Y2gsIHVubGVzcyBpdCBlbmRzIGluICcqJy4KCjIwMDYtMDktMDYgMTA6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpZlRhYmxlL2lmVGFibGUuaDoKCiAgIGZpeCBzb21lIG1pc3Npbmcgc3RhdHMgaW4gaWZUYWJsZS9pZlhUYWJsZQoKMjAwNi0wOS0wNiAwNjo0NSAgcnN0b3J5CgogICAqIE5FV1M6CgogICBhZGQgbm90ZSBvbiBleHBlcmltZW50IEZyZWVCU0QvT3BlbkJTRCBpZlhUYWJsZSBzdXBwb3J0CgoyMDA2LTA5LTA2IDA2OjQyICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgRnJlZUJEUyBhbmQgT3BlbkJTRCBmb3IgaWYtbWliCgoyMDA2LTA5LTA1IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIGRlYWwgdy9wcmV2IHB0cnMgdG9vCgoyMDA2LTA5LTA1IDA3OjU4ICBkdHMxMgoKICAgKiBORVdTLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IG5ldyBhY2Nlc3MgY29udHJvbCAoYW5kIGNvbnRleHQpIGJlaGF2aW91ci4KCjIwMDYtMDktMDUgMDU6NDkgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQ6CgogICBFeHBsaWNpdGx5IGF1dGhvcmlzZSBhbGwgY29udGV4dHMuCiAgIChUaGlzIHJlc3VsdHMgZnJvbSBhIG1pbm9yIGFsdGVyYXRpb24gaW4gYmVoYXZpb3VyIGZvbGxvd2luZyBhbm90aGVyIGNvZGUKICAgIGNoYW5nZSwgYnV0IGZlZWxzIG1vcmUgc2VjdXJlIHRoYW4gYXV0b21hdGljYWxseSBvcGVuaW5nIHVwIGFsbCBjb250ZXh0cwogICAgYnkgZGVmYXVsdC4gIFRob3VnaCBJJ20gaGFwcHkgdG8gYmUgcGVyc3VhZGVkIG90aGVyd2lzZS4uLikKCjIwMDYtMDktMDUgMDI6NDQgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyAoYWdhaW4pCgoyMDA2LTA5LTA1IDAxOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50X21pYnMuaCwgYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaAo6CgogICBJbmNsdWRlIE5ldC1TTk1QIGV4dGVuc2lvbiBhY2Nlc3MgdGFibGUgKGFuZCBNSUIpIGluIHRoZSBkZWZhdWx0IGJ1aWxkLgoKMjAwNi0wOS0wNSAwMTozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgbnNWYWNtQWNjZXNzVGFibGUgbm90IGJlaW5nIGluY2x1ZGVkLgogICAoYW5kIHNpbWlsYXIgZm9yIHVzbVVzZXJUYWJsZSAtIGEgY2xlYW5lciBjaGVjayB0aGFuIGJlZm9yZSkKCjIwMDYtMDktMDUgMDE6MjggIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYywgbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgU3VwcG9ydCBtYW5pcHVsYXRpb24gb2YgdGhlIE5ldC1TTk1QIGV4dGVuc2lvbiBhY2Nlc3MgdGFibGUuCgoyMDA2LTA5LTA1IDAxOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgYm90aCBleGFjdCBhbmQgY29udGV4dCBwcmVmaXggbWF0Y2hlcyBmb3IgdGhlIGNvbnZlbmllbmNlIGRpcmVjdGl2ZXMKICAgKGFzIHdlbGwgYXMgJ2F1dGhhY2Nlc3MnKS4KCjIwMDYtMDktMDUgMDE6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygcm93IGNyZWF0aW9uL2RlbGV0aW9uLgogICBTdXBwcmVzcyB2YXJpb3VzIG1pbm9yIHR5cGUgbWlzbWF0Y2hlcy4KCjIwMDYtMDktMDQgMTY6MDcgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgKHByZWxpbWluYXJ5KSBpbmZvcm1hdGlvbiBvbiBuZXcgTkVULVNOTVAtVkFDTS1NSUIKCjIwMDYtMDktMDQgMTY6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvLmN2c2lnbm9yZSwKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmU6CgogICB0d2VhayAuY3ZzaWdub3JlIGZpbGVzIGZvciBuZXcgdWRwLW1pYi90Y3AtbWliCgoyMDA2LTA5LTA0IDE1OjU1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMDYtMDktMDQgMDc6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFRlbGwgYSBmdXNzeSBjb21waWxlciAoUy9XLCBub3QgaHVtYW4pIHRvIHNodXQgdXAuCgoyMDA2LTA5LTA0IDA2OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIGFnZW50L2V4dGVuZC5jLAogICAgIHVjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIERyb3AgdGhlIG9sZCBVQ0QgZXh0ZW5zaWJsZSBtb2R1bGUgZnJvbSB0aGUgZGVmYXVsdCBidWlsZC4KICAgUmVseSBvbiB0aGUgcmV3b3JrZWQgKGNhY2hlZCwgdmFsaWQgc3ludGF4KSAiZXh0ZW5kIiBtb2R1bGUgaW5zdGVhZC4KCjIwMDYtMDktMDQgMDQ6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMKOgoKICAgU3VwcG9ydCByZWdpc3RlcmluZyBWQUNNIGV4dGVuc2lvbnMgaW4gYSBub24tZGVmYXVsdCBjb250ZXh0CiAgIChzdWNoIGFzIHVzZWQgYnkgJ3NubXB0cmFwZCcpCgoyMDA2LTA5LTA0IDA0OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgU3VwcG9ydCBub24tZGVmYXVsdCBjb250ZXh0cyB3aXRoIHRoZSBhdXRoKiBjb252ZW5pZW5jZSBkaXJlY3RpdmVzLgoKMjAwNi0wOS0wNCAwNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBUd2VhayB2YXJpYWJsZSBuYW1lcyB0byBiZSBsZXNzIGNvbmZ1c2luZy4KICAgKCJhdXRodHlwZSIgbm93IGhhcyBhIHNwZWNpZmljIG1lYW5pbmcsIGNvbnRyYXJ5IHRvIHRoZSB1c2UgaGVyZSkuCgoyMDA2LTA5LTAxIDE3OjM0ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBjdnNyb290CgoyMDA2LTA5LTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IC1ZCgoyMDA2LTA5LTAxIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbWFrZSBzbm1wZCBzdXBwb3J0IHRoZSAtWSBjb25maWcgZmxhZyBsaWtlIHRoZSBvdGhlciBjb21tYW5kcyBkbwoKMjAwNi0wOS0wMSAxNTozMSAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIFVwZGF0ZSB0byA1LjQuZGV2CiAgIC0gaW50cm9kdWNlICV7bGliY3VycmVudH0KICAgLSB1c2UgbmV3IGRpc21hbi9ldmVudCBuYW1lCiAgIC0gYWRkOiBSRUFETUUuYWl4IFJFQURNRS5vc1ggUkVBRE1FLnRydTY0IFJFQURNRS5pcml4IFJFQURNRS5hZ2VudC1taWJzCiAgICAgUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dAogICAtIGFkZCBuZXcgTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQKCjIwMDYtMDktMDEgMTA6NTggIHJzdG9yeQoKICAgKiBORVdTOgoKICAgLSBub3RlIG5ldyBtaWIyYy5lbXVsYXRpb24uY29uZgogICAtIG5vdGUgbmV3IGxpbnV4IGlwdjYgYXdhcmUgZGVmYXVsdCBtaWJzCiAgIC0gZXhwYW5kIHNjb3B5IG9mIG5vdGUgb24gZml4ZXMgdG8gbm9uLWxpbnV4IGlwYWRkcmVzcyBzaXplCgoyMDA2LTA5LTAxIDEwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGFkZCB0Y3AgYW5kIHVkcCBtaWIgdGFibGVzIHRvIGxpbnV4IG1pYklJIG1vZHVsZSBsaXN0CgoyMDA2LTA5LTAxIDEwOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBmaXggYnl0ZW9yZGVyIHByb2JsZW1zCgoyMDA2LTA5LTAxIDEwOjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICAtIG9ubHkgbG9nIGVycm9yIG9uY2UgaWYgd2UgY2FuJ3Qgb3BlbiAvcHJvYy9uZXQvdGNwNgogICAtIGFkZCBhYmlsaXR5IHRvIG9ubHkgbG9hZCBpcHY0IGRhdGEKCjIwMDYtMDktMDEgMTA6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgZml4IGJ5dGVvcmRlciBwcm9ibGVtcwoKMjAwNi0wOS0wMSAxMDozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gJ2J5dGVzd2FwJyBoZXgtc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFkZHJlc3MKCjIwMDYtMDktMDEgMDc6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIHVkcFRhYmxlLmMsCiAgICAgdmFyX3JvdXRlLmM6CgogICBtb3JlIGlwIGFkZHJlc3Mgc2l6ZSBmaXhlcwoKMjAwNi0wOS0wMSAwNTo0MSAgdGFuZGVycwoKICAgKiBwZXJsLzogVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgYWdlbnQvYWdlbnQueHMKOgoKICAgYWxpZ24gdGhlIG5ldHNubXBfb2lkIHN0cnVjdCBkZWZpbml0aW9uIChvaWQsIHNpemVfdCEpIHdpdGggdGhlIG9uZSBmcm9tIE5ldFNOTVA6Ok9JRAoKMjAwNi0wOS0wMSAwMjo0NCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4LCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnRydTY0OgoKICAgYWRkIG5vdGVzIG9uIElQdjYKCjIwMDYtMDgtMzEgMTc6NDMgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCB0eXBvCgoyMDA2LTA4LTMxIDE3OjE1ICB0YW5kZXJzCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIE9JRCBsZW4gc2hvdWxkIGJlIGEgc2l6ZV90CgoyMDA2LTA4LTMxIDE1OjQ3ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFVzZSBjb3JyZWN0IHNvY2thZGRyX3N0b3JhZ2UuW19fXXNzX2ZhbWlseSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdCBvZiB0aGUgY29ycmVzcG9uZGluZyBjb25maWd1cmUgdGVzdC4gTWFrZXMgdGhlIFVEUElQdjYgdHJhbnNwb3J0IGNvZGUgd29yayBvbiBhdCBsZWFzdCBBSVggYW5kIFRydTY0IFVuaXguCgoyMDA2LTA4LTMxIDE1OjQ0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhY2NvbmZpZy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc29ja2FkZHJfc3RvcmFnZS5bX19dc3NfZmFtaWx5IHVzZWQgaW4gdGhlIFVEUElQdjYgdHJhbnNwb3J0IGNvZGUKCjIwMDYtMDgtMzEgMTI6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGZpeCBJcEFkZHJlc3MgbGVuZ3RocyBvbiBub24tTGludXggNjRiaXQgcGxhdGZvcm1zCgoyMDA2LTA4LTMxIDAxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBhZGQgbWlzc2luZyBzZW1pY29sb24gKGV2ZW4gb25lLWxpbmUgcGF0Y2hlcyBjYW4gZWFzaWx5IGJyZWFrIHRoZSBidWlsZCA7LSkpCgoyMDA2LTA4LTMwIDE3OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgY292ZXJ0aXkgYnVnIDEyNzogZG91YmxlIGNoZWNrIG5hbWVfcCBwb2ludGVyIGFjdHVhbGx5IGdvdCBmaWxsZWQgYmVmb3JlICB1c2luZyBpdAoKMjAwNi0wOC0zMCAxNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIG1ha2Ugc3VyZSBzbm1wX2xvZ19vcHRpb25zIGNoZWNrcyBmb3IgTlVMTHMgb2YgYXJndiBpbiBpbGxlZ2FsIGNhbGxzIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wOC0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgY292ZXJ0eSBidWcgNTk6IGRvdWJsZSBjaGVjayBzeXN0ZW0gaGFuZGxlcyBpbnQvdWludCBjb252ZXJzaW9ucyBwcm9wZXJseQoKMjAwNi0wOC0zMCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIGNvdmVydHkgYnVnIDE1NTogZnJlZSBmaWxlIHBvaW50ZXIgZHVyaW5nIGlwdjYgZm9yd2FyZGluZwoKMjAwNi0wOC0zMCAxNzoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgY292ZXJ0eSBidWcgMTU2OiBmcmVlIHJlc291cmNlcyBkdXJpbmcgbWliIHBhcnNpbmcgZmFpbHVyZXMKCjIwMDYtMDgtMzAgMTc6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGNvdmVydHkgYnVnIDYwOiBkb3VibGUgY2hlY2sgdGhhdCBzeXN0ZW1zIGhhbmRsZSBuZWdhdGl2ZSByZXR1cm5zIHRvIHVuc2lnbmVkIHZhcmlhYmxlcyBwcm9wZXJseQoKMjAwNi0wOC0zMCAwODozNSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBwcmludGluZyBvZiBvcGFxdWUgZmxvYXQgYW5kIGRvdWJsZSBjb21waWxlIHdhcm5pbmdzCgoyMDA2LTA4LTMwIDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgU2ltcGxlIFNFVCBzdXBwb3J0IGZvciB0aGUgTmV0LVNOTVAgVkFDTSBleHRlbnNpb25zLgoKMjAwNi0wOC0zMCAwODoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBQZXJzaXN0ZW50IHN0b3JhZ2UgZm9yIE5ldC1TTk1QIFZBQ00gZXh0ZW5zaW9uIGF1dGh0eXBlcy4KCjIwMDYtMDgtMjkgMTc6NTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgZ2VuZXJpYyBJUHY2IHN0YWNrIGRldGVjdGlvbiwgZS5nLiBmb3IgU29sYXJpcwoKMjAwNi0wOC0yOSAwOTowNSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBGaXggaW5jb25zaXN0ZW50IG5hbWluZy4KCjIwMDYtMDgtMjkgMDY6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgR3VhcmQgYWdhaW5zdCBtaXNzaW5nIChvciBpbmNvbXBsZXRlKSBDUFUgaGlzdG9yeSBzdGF0cy4KCjIwMDYtMDgtMjkgMDY6MTkgIHRhbmRlcnMKCiAgICogbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBmaXggc29tZSBiYXNpYyBzbWlsaW50IGNvbXBsYWludHMKCjIwMDYtMDgtMjkgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaCwKICAgICBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dDoKCiAgIFByb3Zpc2lvbmFsIChyZWFkLW9ubHkpIGltcGxlbWVudGF0aW9uIG9mIGEgTUlCIGZvciB0aGUgTmV0LVNOTVAKICAgYWNjZXNzIGNvbnRyb2wgZXh0ZW5zaW9ucy4KCjIwMDYtMDgtMjkgMDM6MTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEdldC1OZXh0IHByb2Nlc3NpbmcgZGlkbid0IGhhbmRsZSB1cGRhdGluZyB0aGUgaW5kZXggbGlzdCBmb3IgbXVsdGktaW5kZXhlZAogICB0YWJsZXMgcHJvcGVybHkuICBJdCB3b3JrZWQgT0sgZm9yIHRoZSBmaXJzdCBjYW5kaWRhdGUgZm91bmQsIGJ1dCBzdWJzZXF1ZW50CiAgIChiZXR0ZXIpIGNhbmRpZGF0ZXMgb25seSB1cGRhdGVkIHRoZSBmaXJzdCBpbmRleCB2YWx1ZS4KICAgICBUaGlzIGNvZGUgaXMgc2xpZ2h0bHkgbGVzcyBlZmZpY2llbnQsIGJ1dCB3b3JrcyBhcyBleHBlY3RlZC4KCjIwMDYtMDgtMjkgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X2xpbnV4LmMsIHZtc3RhdF9saW51eC5oCjoKCiAgIFNoaXAgb2xkZXIgdm1zdGF0IGltcGxlbWVudGF0aW9uIGNvZGUgLSBhbGxvdyBhZG1pbnMgdGhlIG9wdGlvbiBvZiByZXZlcnRpbmcuCgoyMDA2LTA4LTI5IDAzOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbmxpc3QuYywgY3B1X3N5c2N0bC5jCjoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBzaW5nbGUtQ1BVIHN5c3RlbXMuCiAgIERvbid0IGNyZWF0ZSBuZXcgQ1BVIGVudHJpZXMgd2hlbiBsb2FkaW5nIHN0YXRzLgogICBbRG9uJ3QgY29tbWl0IGZyb20gbW9yZSB0aGFuIG9uZSB3b3JraW5nIHN5c3RlbSwgRGF2ZSFdCgoyMDA2LTA4LTI5IDAyOjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEtlZXAgYnJhY2VzIGJhbGFuY2VkIC0gaXQgbWFrZXMgdHJhY2luZyBjb2RlICpzbyogbXVjaCBlYXNpZXIhCgoyMDA2LTA4LTI3IDE0OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgdWRwVGFibGUgcmVxdWlyZXMgL2Rldi9rbWVtIGFjY2VzcyAocm9vdDpzeXN0ZW0pIG9uIEFJWAoKMjAwNi0wOC0yNyAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBob3N0L2hyX3Byb2MuYywKICAgICBob3N0L2hyX3Byb2MuaDoKCiAgIFVzZSBIQUwgQ1BVIGludGVyZmFjZSBmb3IgYm90aCBVQ0Qtc3BlY2lmaWMgYW5kIEhvc3RSZXMgcHJvY2Vzc29yIG1vZHVsZXMuCgoyMDA2LTA4LTI3IDEwOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIEVuc3VyZSB0aGF0IHNvbWUgZm9ybSBvZiBIQUwgQ1BVIG1vZHVsZSBpcyBpbmNsdWRlZCBmb3IgYWxsIHN5c3RlbXMuCgoyMDA2LTA4LTI3IDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbnVsbC5jLCBjcHVfbnVsbC5oOgoKICAgRHVtbXkgSEFMIENQVSBtb2R1bGUsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgdXNlIGFueSBvZiB0aGUKICAgc3VwcG9ydGVkIGludGVyZmFjZXMuCgoyMDA2LTA4LTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgSGFuZGxlIGhvbGVzIGluIHRoZSB0YWJsZSBwcm9wZXJseS4KCjIwMDYtMDgtMjcgMDk6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa2VybmRhdGEuYywKICAgICBjcHVfcGVyZnN0YXQuYywgY3B1X3BzdGF0LmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygc2luZ2xlLUNQVSBzeXN0ZW1zLgogICBEb24ndCBjcmVhdGUgbmV3IENQVSBlbnRyaWVzIHdoZW4gbG9hZGluZyBzdGF0cy4KCjIwMDYtMDgtMjcgMDk6NDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFJlcG9ydCBwcm9jZXNzb3Igc3RhdHVzCgoyMDA2LTA4LTI2IDE2OjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBtYWtlIGF1dG9oZWFkZXIgcHJvdGVjdCBQQUNLQUdFXyogdmFyaWFibGVzCgoyMDA2LTA4LTI1IDE2OjIzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFN2M3VzbWNvbmZpZ2FnZW50LAogICAgIFN2YW55Y29uZmlnOgoKICAgRml4IHNtdXhzb2NrZXQgY29uZmlnIHRvIHBvaW50IHRvIC9zbXV4X3NvY2tldCBpbnN0ZWFkIG9mIC9kZXYvbnVsbCB0byBhdm9pZCByZW1vdmluZyAvZGV2L251bGwgd2hlbiBydW5uaW5nIGFzIHJvb3QuCgoyMDA2LTA4LTI1IDA5OjQzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENsYXJpZnkgZGlzY3Vzc2lvbiBvZiB2aWV3IG1hc2tzLiAgVGhhbmtzIHRvIERvbWluaXF1ZSBCYXN0aWVuLgoKMjAwNi0wOC0yNSAwNzoyMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFsbG93IGZvciB3aGl0ZXNwYWNlIGluIFBlcmwgY2MgKGUuZy4gb24gSVJJWCA2LjUpCgoyMDA2LTA4LTI1IDA2OjU1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHByb3Blcmx5IGNhc3Qgd2hlbiBwcmludGluZyBwb2ludGVycwoKMjAwNi0wOC0yNSAwNjozNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgbmV0c25tcF90cmFwZF9jaGVja19hdXRoKCkgb25seSB0YWtlcyBhIHNpbmdsZSBhcmd1bWVudAoKMjAwNi0wOC0yNSAwNToxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXg6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoKMjAwNi0wOC0yNSAwNDo1MSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmg6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXRzbm1wX3RyYXBkX2NoZWNrX2F1dGgoKQoKMjAwNi0wOC0yNSAwNDo0NiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgI2luY2x1ZGUgIm1pYklJL3ZhY21fY29uZi5oIiBmb3IgdmFjbV9zdGFuZGFyZF92aWV3cwoKMjAwNi0wOC0yNSAwNDozOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIHByaW50IG9pZCBhcyB1bnNpZ25lZCBsb25nCgoyMDA2LTA4LTI1IDAyOjU3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBtYWtlIHN1cmUgd2UgY2FuIGZ1bGZpbGwgZXh0ZXJuYWwgbGlicmFyeSBkZXBlbmRlbmNpZXMKCjIwMDYtMDgtMjUgMDI6NDEgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGluaXRpYWxpemUgdmFyaWFibGVzCgoyMDA2LTA4LTI1IDAyOjMzICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHByb3BlciB0eXBlcyBpbiBmb3JtYXQgc3RyaW5nCgoyMDA2LTA4LTI1IDAxOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkICItVXgiIGJlZm9yZSAiLUR4PXgiIGZvciBnY2MgdG8gYXZvaWQgYW5ub3lpbmcgY29tcGlsZXIgd2FybmluZ3MKICAgb24gcGxhdGZvcm1zIHRoYXQgYWxyZWFkeSBkZWZpbmUgeCAodG8gMSkuCgoyMDA2LTA4LTI0IDE3OjQxICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgdXNlIG5ldyBzbm1wX2NzdHJjYXQKCjIwMDYtMDgtMjQgMTc6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBJbnRyb2R1Y2Ugc25tcF9jc3RyY2F0IHRoYXQgdGFrZXMgYSAoY2hhciAqKSBhcyB0aGUgbGFzdCBhcmd1bWVudCwKICAgY2FzdHMgaXQgdG8gYSAoY29uc3QgdV9jaGFyICopIGFuZCBjYWxscyBzbm1wX3N0cmNhdC4gU2ltcGxpZmllcyBjb2RlCiAgIGFuZCBmaXhlcyBhICpsb3QqIG9mIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNi0wOC0yNCAxNjowNCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgcGVybC9TTk1QL1NOTVAueHMsCiAgICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgLSBwb2ludGVyIHNpemUgZml4ZXMgZnJvbSBkYXJpeAogICAtIGluaXRpYWxpemUgdmFyaWFibGVzCiAgIC0gcHJpbnQgc2l6ZV90IGFzIHVuc2lnbmVkIGxvbmcKCjIwMDYtMDgtMjQgMTU6NDUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlCgoyMDA2LTA4LTI0IDEzOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA4LTI0IDEzOjIxICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBIQVZFX1BFUkxfRVZBTF9QViB1bmRlZiBmb3Igd2hvZXZlciBmb3Jnb3QgdG8gYWRkIGl0CgoyMDA2LTA4LTI0IDEzOjE5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBjb25maWdfZXJyb3IgYW5kIGNvbmZpZ193YXJuaW5nIGVtcHR5IG1hY3JvcwoKMjAwNi0wOC0yNCAwOToxNCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFByaW50IHNpemVfdCBhcyB1bnNpZ25lZCBsb25nLgoKMjAwNi0wOC0yNCAwODo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBLZWVwIHByaW50aW5nIHNvbWUga25vdy10by1iZS1zbWFsbCBzaXplX3QgdmFsdWVzIGFzIGludGVnZXJzLCBidXQgcHJvcGVybHkKICAgY2FzdCB0aGVtIHRvIHF1aWV0IHRoZSBjb21waWxlci4KCjIwMDYtMDgtMjQgMDc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICB1c2UgbmV3IGludGVyZmFjZV9zeXNjdGwgZm9yIE9wZW5CU0QgMiwgRnJlZUJTRCA0LTYKCjIwMDYtMDgtMjQgMDc6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2Vfb3BlbmJzZC5jLAogICAgIGludGVyZmFjZV9zeXNjdGwuYywgaW50ZXJmYWNlX3N5c2N0bC5oOgoKICAgcmVtb3ZlIE9TIHNwZWNpZmljIGZpbGUgaW4gZmF2b3Igb2YgbWV0aG9kIHNwZWNpZmljIGZpbGVzCgoyMDA2LTA4LTI0IDA1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa3N0YXQuYywgY3B1X25saXN0LmMKLCBjcHVfcHN0YXQuYywgY3B1X3N5c2N0bC5jOgoKICAgSW5jbHVkZSBkZXNjcmlwdGlvbnMgZm9yIGluZGl2aWR1YWwgQ1BVIGVudHJpZXMuCgoyMDA2LTA4LTI0IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa2VybmRhdGEuaCwKICAgICBjcHVfa2VybmRhdGEuYzoKCiAgIEltcGxlbWVudGF0aW9uIGZvciBEeW5peCAoYW5kIHNpbWlsYXIpIHN5c3RlbXMuCgoyMDA2LTA4LTI0IDA1OjQ4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jOgoKICAgUmVtZW1iZXIgdGhlIG51bWJlciBvZiBDUFVzIGRldGVjdGVkLgogICAoUTogd2hhdCB0byBkbyBpZiB0aGlzIGNoYW5nZXM/KQoKMjAwNi0wOC0yMyAxNzozMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcmludCBzaXplX3QgYXMgdW5zaWduZWQgbG9uZy4gRml4ZXMgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNi0wOC0yMyAxNzoxMiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBBQ19QUk9HX0VHUkVQIGFuZCB1c2UgJEVHUkVQIGluc3RlYWQgb2YgZWdyZXAKCjIwMDYtMDgtMjMgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IHN0cnVjdCB0eXBlIGluIGNhc2UKCjIwMDYtMDgtMjMgMTY6MzUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNi0wOC0yMyAxNjozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBiYWNrIGNoZWNrIGZvciBzZWQKCjIwMDYtMDgtMjMgMTM6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHNraXAgaWZDb25uZWN0b3JQcmVzZW50L2lmTGlua1VwRG93blRyYXBFbmFibGUgaWYgbm8gZGF0YQoKMjAwNi0wOC0yMyAxMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgY29ycmVjdCBzY2FsZSB3aGVuIHVzaW5nIGlmU3BlZWQgYXMgaWZIaWdoU3BlZWQKCjIwMDYtMDgtMjMgMTE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHVzZSBpZlNwZWVkIGlmIGlmSGlnaFNwZWVkPT0wCgoyMDA2LTA4LTIzIDA4OjUzICB0YW5kZXJzCgogICAqIHNubXBsaWIvOiBjb250YWluZXIuYywgY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLAogICAgIGRhdGFfbGlzdC5jLCBrZXl0b29scy5jLCBtaWIuYywgb2lkX3N0YXNoLmMKLCBzY2FwaS5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywKICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmMsIHRleHRfdXRpbHMuYywKICAgICB0b29scy5jOgoKICAgQ2FzdCBhd2F5IGNvbXBpbGVyIHdhcm5pbmdzL2Vycm9ycyBhdCBhIGxvdCBvZiBwbGFjZXMuCgoyMDA2LTA4LTIzIDA2OjAyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgYWN0aXZhdGUgY3B1IEhBTCBjb2RlIGZvciBBSVggNC54CgoyMDA2LTA4LTIzIDAzOjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3QgY2hlY2sgdHdpY2UgZm9yIHNlZC4KCjIwMDYtMDgtMjMgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgTW9yZSBwb3J0YWJsZSBoYW5kbGluZyBvZiBzdHJpbmcgYXNzaWdubWVudHMuCiAgIFJlbW92ZSBDKystc3R5bGUgY29tbWVudHMuCgoyMDA2LTA4LTIzIDAzOjA3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IG1vcmUgd2hpdGVzcGFjZSBpc3N1ZXMgaW4gbWliIG1vZHVsZSBjb25maWcKCjIwMDYtMDgtMjIgMTQ6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBoYXJkd2FyZS9jcHUuaDoKCiAgIGFjdGl2YXRlIG1lbS9jcHUgSEFMIGNvZGUgZm9yIEFJWAoKMjAwNi0wOC0yMiAwOToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jOgoKICAgVXNlIGNvcnJlY3QgQVBJIGNhbGxzLgoKMjAwNi0wOC0yMiAwNzowMCAgdGFuZGVycwoKICAgKiBSRUFETUUudHJ1NjQ6CgogICBVcGRhdGUgZm9yIDUuNCBhbmQgZW1iZWRkZWQgUGVybC4KCjIwMDYtMDgtMjIgMDY6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9rc3RhdC5oLCBjcHVfcGVyZnN0YXQuaAosIGNwdV9wc3RhdC5oOgoKICAgTWlzc2luZyBIQUwgQ1BVIEFQSS1zcGVjaWZpYyBoZWFkZXIgZmlsZXMKCjIwMDYtMDgtMjIgMDY6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBIYW5kbGUgY2hhbmdlIGludHJvZHVjZWQgd2l0aCBOZXRCU0QgMy4wLgogICBzeXNjdGwoIEtFUk5fQ1BfVElNRSApIG5vdyByZXR1cm5zIDY0LWJpdCB2YWx1ZXMuCgoyMDA2LTA4LTIyIDA1OjE1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdXNlIG9mIEV2ZW50LU1JQiBtb2R1bGUgdGVybWlub2xvZ3kuCgoyMDA2LTA4LTIyIDAzOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgSW1wcm92ZSByb2J1c3RuZXNzIG9mIHRoZSBlbWJlZGRlZCBwZXJsIGNoZWNrcy4KCjIwMDYtMDgtMjIgMDI6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDaGFuZ2UgIiNpZiBmcmVlYnNkNCIgdG8gIiNpZmRlZiBmcmVlYnNkNCIgdG8gbWF0Y2ggY3VycmVudCAtRGZyZWVic2Q0PWZyZWVic2Q0LgoKMjAwNi0wOC0yMiAwMjoyMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3cnVuLmMKLCBtaWJJSS9yb3V0ZV9oZWFkZXJzLmg6CgogICBDaGFuZ2UgIiNpZiBzb2xhcmlzMiIgdG8gIiNpZmRlZiBzb2xhcmlzMiIgdG8gbWF0Y2ggY3VycmVudCAtRHNvbGFyaXMyPXNvbGFyaXMyLgoKMjAwNi0wOC0yMSAxNzo0NyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICItVSIgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkIHdpdGggU3VuJ3MgY2MuCgoyMDA2LTA4LTIxIDE3OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgUGVybF9ldmFsX3B2ICh0aGUgdXBwZXItY2FzZSB2YXJpYW50KSBuZWVkcyB0aHJlZSBhcmd1bWVudHMgaW5zdGVhZCBvZiB0d28uCgoyMDA2LTA4LTIxIDE3OjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgWWV0IGFub3RoZXIgYXR0ZW1wdCB0byBmaXggdGhlIFBBUlRJQUxUQVJHRVRPUyAoZS5nLiBzb2xhcmlzMikgZGVmaW5pdGlvbnMuCgoyMDA2LTA4LTIxIDE2OjMzICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVwbGFjZW1lbnQgZm9yIG5ld1NWdXYoKSBiZWNhdXNlIHBlcmwgZGlkbid0IGhhdmUgaXQgdW50aWwgNS42LjAKCjIwMDYtMDgtMjEgMTU6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZXdvcmRpbmcgb2YgcGVybCBjYyBjaGVjayBlcnJvcnMuCgoyMDA2LTA4LTIxIDE0OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGFuZ2UgdGhlIE9TIGRlZmluZSB0byByZWRlZmluZSBhcyB0aGUgc2FtZSBuYW1lCgoyMDA2LTA4LTIxIDA5OjQ0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWRkIHBlcmwgY2MgY2hlY2tzIGZvciBlbWJlZGRlZCBwZXJsCiAgIC0gaW50cm9kdWNlIC0tZGlzYWJsZS1wZXJsLWNjLWNoZWNrcyB0byBkaXNhYmxlIHRoZXNlIHRlc3RzCgoyMDA2LTA4LTIxIDA5OjQyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZS5pbgoKMjAwNi0wOC0yMSAwMzo1MyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUKICAgLSByZW1vdmUgb2Jzb2xldGUgQUNfRVhFRVhUCgoyMDA2LTA4LTIxIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIEFjdGl2ZSBIQUwgQ1BVIG1vZHVsZSBmb3IgKkJTRCBzeXN0ZW1zLgoKMjAwNi0wOC0yMSAwMjoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFJldHJpZXZlIGFuZCByZXBvcnQgbWVtb3J5LXJlbGF0ZWQgc3RhdGlzdGljcy4KICAgKFN0aWxsIG5vdCBjb252aW5jZWQgdGhlc2UgcmVhbGx5IGJlbG9uZyBoZXJlLi4uLikKCjIwMDYtMDgtMjEgMDI6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBSZXRyaWV2ZSBDUFUgc3RhdHMgY29ycmVjdGx5LgoKMjAwNi0wOC0xOCAxNToyOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBwZXJsIC1WOmNjCgoyMDA2LTA4LTE4IDA5OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXQuaDoKCiAgIFVzZSB0aGUgSEFMIENQVSBtb2R1bGVzIHRvIGltcGxlbWVudCBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzLgogICBJbml0aWFsbHkgb25seSB1c2VkIGJ5IExpbnV4IHN5c3RlbXMsIGJ1dCB0aGlzIGNvZGUgaXMgbm93CiAgIGZ1bmRhbWVudGFsbHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50LgoKMjAwNi0wOC0xOCAwODo1OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaDoKCiAgIEFkZGl0aW9uYWwgZmllbGRzIGZvciBDUFUtcmVsYXRlZCAoc29ydC1vZikgaGlzdG9yeSwgZXRjLgoKMjAwNi0wOC0xOCAwODo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1LmMsIGNwdV9rZXJuZGF0YS5jLAogICAgIGNwdV9rc3RhdC5jLCBjcHVfbGludXguYywgY3B1X25saXN0LmMsCiAgICAgY3B1X25saXN0LmgsIGNwdV9wZXJmc3RhdC5jLCBjcHVfcHN0YXQuYywKICAgICBjcHVfc3lzY3RsLmMsIGNwdV9zeXNjdGwuaDoKCiAgIFByb3Zpc2lvbmFsIGhhcmR3YXJlLWFic3RyYWN0aW9uIG1vZHVsZXMgZm9yIGFzc29ydGVkIENQVSBzdGF0aXN0aWNzLgogICAoaW5jbHVkaW5nIG11bHRpLUNQVSBpbmZvcm1hdGlvbikKCjIwMDYtMDgtMTggMDg6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgeWV0IG1vcmUgcG90ZW50aWFsIHBlcmwgZml4ZXMKCjIwMDYtMDgtMTggMDg6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbW9yZSBwb3RlbnRpYWwgcGVybCBmaXhlcwoKMjAwNi0wOC0xOCAwNzo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHVzZSAicGVybCAtVjpjYyIgdG8gZmluZCBQZXJsJ3MgY2MKCjIwMDYtMDgtMTggMDc6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY29tbWVudGluZyBhbmQgYSBiaXQgb2Ygc3BhY2luZyBpbiB0aGUgbW9kdWxlIGxpc3QgY29kZQoKMjAwNi0wOC0xNyAxNzoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFjY29uZmlnLmgsCiAgICAgYWdlbnQvc25tcF9wZXJsLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgbWFrZSBjb25maWd1cmUgYmFpbCB3aGVuIGVtYmVkZGVkIHBlcmwgZnVuY3Rpb24gY2FuIG5vdCBiZSBmb3VuZCA7IGZpeCB0aGUgZmFjdCB0aGF0IDMgZnVuY3Rpb25zIGFyZSBuZWVkZWQgbm90IDIgYW5kIHdvcmsgYXJvdW5kIGF1dG9jb25mIHVwcGVyLWNhc2Ugb25seSBkZWZpbmVzIHRoYXQgY2F1c2VzIHRoZSBleGlzdGluZyBicm9rZW4tcGVybCBwcm9ibGVtOyBORVdTIC0gcGVybDogZml4IHRoZSAnYnJva2VuIHBlcmwnIGlzc3VlIHdpdGggZW1iZWRkZWQgcGVybAoKMjAwNi0wOC0xNyAxNjoxNCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGJzZGkzLmgsIGJzZGk0LmgsIGRhcndpbi5oCiwgZGFyd2luNy5oLCBkeW5peC5oLCBmcmVlYnNkMy5oLAogICAgIGZyZWVic2Q0LmgsIGZyZWVic2Q1LmgsIGZyZWVic2Q2LmgsIGdlbmVyaWMuaAosIGhwdXguaCwgbWluZ3czMm1zdmMuaCwgbmV0YnNkLmgsCiAgICAgb3BlbmJzZC5oLCBvc2Y1Lmg6CgogICAiI2RlZmluZSB4IHgiIGluc3RlYWQgb2YgIiNkZWZpbmUgeCAxIiBmb3IgYWxsIHBsYXRmb3JtIG5hbWVzCgoyMDA2LTA4LTE3IDA4OjQ0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBCVUc6IENvdmVyaXR5ICMxNDk6IHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKCjIwMDYtMDgtMTcgMDg6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaDoKCiAgIERyb3AgRGlzTWFuIEV2ZW50IE1JQiByZS13cml0ZSB3YXJuaW5nLgoKMjAwNi0wOC0xNyAwODoxNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTU5OiBwb3RlbnRpYWwgcmVzb3VyY2UgbGVhayBhZnRlciBtYWxsb2MgZmFpbHVyZQoKMjAwNi0wOC0xNyAwODowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYwosIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIEJVRzogQ292ZXJpdHkgIzU2OiBkb24ndCBjb250aW51ZSBpZiBtYWxsb2MgZmFpbHMKCjIwMDYtMDgtMTcgMDc6NTAgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBCVUc6IENvdmVyaXR5ICM1NjogZG9uJ3QgY29udGludWUgYWZ0ZXIgZmFpbGVkIG1hbGxvYwoKMjAwNi0wOC0xNyAwNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBCVUc6IENvdmVyaXR5ICMxNzQ6IGRvbid0IHJldHVybiBwdHIgdG8gZnJlZWQgbWVtb3J5CgoyMDA2LTA4LTE3IDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIEZpeCB2YXJpYWJsZSB0eXBlcyB0byBtYXRjaCBwYXJhbWV0ZXIgdXNhZ2UuICBTcG90dGVkIGJ5IFNjb3R0IE1veW5lcy4KCjIwMDYtMDgtMTYgMTk6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGlzc3VlIHdpdGggT1MgbmFtZSBiZWluZyBkZWZpbmVkIGFzIDEKCjIwMDYtMDgtMTYgMTY6MDggIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICB1cGRhdGUgZm9yIHJld29ya2VkIFNvbGFyaXMgaGVhZGVycwoKMjAwNi0wOC0xNSAyMjo1NCAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wZC44LmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIGZpeCB0eXBvCgoyMDA2LTA4LTE1IDE0OjIwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBGaXggZW1haWwgYWRkcmVzcwoKMjAwNi0wOC0xNSAwODo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjbGVhbiB1cCB0aGUgdG1wIGNyZWF0ZWQgZmlsZQoKMjAwNi0wOC0xNSAwNzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXhlZCBjb25maWdfYXJjaF9yZXF1aXJlCgoyMDA2LTA4LTE1IDA3OjI2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBmb3JjZSAiI3VuZGVmIElGTkVUX05FRURTX0tFUk5FTCIgb24gRnJlZUJTRCA1Lnggb25seQoKMjAwNi0wOC0xNSAwNzowNyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IHNvbGFyaXMyLjEwLmgsIHNvbGFyaXMyLjcuaAosIHNvbGFyaXMyLjguaCwgc29sYXJpczIuOS5oOgoKICAgcmVtb3ZlIG9ic29sZXRlIGhlYWRlciBmaWxlcwoKMjAwNi0wOC0xNSAwNToxNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIGF2b2lkIGNvbW1lbnQgaW5zaWRlIGNvbW1lbnQKCjIwMDYtMDgtMTUgMDE6NDggIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCjIwMDYtMDgtMTQgMjA6MjUgIGhhcmRha2VyCgogICAqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIENsZWFuZWQgdXAgdGhlIGRlYnVnZ2luZyBjb2RlIGZvciB0aGUgbW9kdWxlIHNlY3Rpb24KICAgICAtIEFkZGVkIGEgQUNfTVNHX01PRFVMRV9EQkcgbWFjcm8gdG8gY2xlYW4gdXAgdGhlIHppbGxpb25zIG9mIGlmcwogICAtIFJld29ya2VkIHRoZSBtNCBxdW90aW5nIG9mIHRoZSBzZWN0aW9uIHRvIG9ubHkgY2hhbmdlcXVvdGUgd2hlbgogICAgIGFjdHVhbGx5IG5lZWRlZCwgcmF0aGVyIHRoYW4gZG9pbmcgdGhlIHJldmVyc2UgYW5kIGhhdmluZyB0byBjaGFuZ2UKICAgICB0byAibm9ybWFsIiBxdW90aW5nIHdoZW4gYSBtYWNybyBjYWxsIGlzIG5lZWRlZC4KCjIwMDYtMDgtMTQgMTY6MjkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBmcmVlYnNkNC5oLCBmcmVlYnNkNS5oLAogICAgIGZyZWVic2Q2Lmg6CgogICBzaW1wbGlmeS9hZ2dyZWdhdGUgRnJlZUJTRCBoZWFkZXJzCgoyMDA2LTA4LTE0IDE1OjU3ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogc29sYXJpcy5oLCBzb2xhcmlzMi4zLmgsCiAgICAgc29sYXJpczIuNC5oLCBzb2xhcmlzMi41LmgsIHNvbGFyaXMyLjYuaDoKCiAgIFJld29yayBvZiBoZWFkZXIgZmlsZXMgZm9yIFNvbGFyaXMuIHNvbGFyaXMuaCBub3cgY292ZXJzIFNvbGFyaXMgNyBhbmQgdXAgKGluY2x1ZGluZyBhbnkgZnV0dXJlIHZlcnNpb25zKSB3aGlsZSBzb2xhcmlzMi5bMy02XS5oIGNvdmVycyBsZWdhY3kgc3VwcG9ydC4KCjIwMDYtMDgtMTQgMTM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZQoKMjAwNi0wOC0xNCAxMzoyNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHVwZGF0ZWQgVUNEIHJlZmVyZW5jZXMgdG8gTmV0LVNOTVAsIHVwZGF0ZWQgY29udGFjdCBpbmZvCgoyMDA2LTA4LTE0IDEzOjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBOZXcgY29uZmlndXJlIGJhc2VkIGRlZmF1bHRfbW9kdWxlcy5oIGZpbGUgdG8gZGVjaWRlIHdoaWNoIG1vZHVsZXMgdG8KICAgYnVpbGQgaW50byB0aGUgYWdlbnQuCiAgIE5FV1M6IHNubXBkIC0tIEFnZW50IGJ1aWxkcyBkZWZhdWx0IG1vZHVsZSBsaXN0IGZyb20gYSBkZWZhdWx0X21pYnMuaCByYXRoZXIgdGhhbiBhIGhhcmQgY29kZWQgY29uZmlndXJlIGxpc3QKCjIwMDYtMDgtMTQgMTM6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICB1cGRhdGVkIHJlZmVyZW5jZXMgdG8gVUNEIHRvIE5ldC1TTk1QLCB1cGRhdGVkIGNvbnRhY3QgaW5mbwoKMjAwNi0wOC0xMSAxODoxNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIG1hbi9zbm1wZC44LmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEludHJvZHVjZSAtLXdpdGgtYWdlbnR4LXNvY2tldD1GSUxFIGNvbmZpZ3VyZSBvcHRpb24uIEhlbHBzIHBhY2thZ2VycyB0byAqcHJvcGVybHkqIGN1c3RvbWl6ZSB0aGF0IHBhdGggKG5vdCBlbmNvdXJhZ2VkLCBidXQgcXVpdGUgY29tbW9uKS4KCjIwMDYtMDgtMTEgMDc6NTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHZzbnByaW50ZigpIG5lZWRzIHRvIGJlIGZvbGxvd2VkIGJ5IHZhX2VuZAoKMjAwNi0wOC0xMSAwNjo0NSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZG9uJ3QgY2FsbCB2YV9lbmQoKSBpZiB3ZSd2ZSBvbmx5IG1lbWNweSgpZWQKCjIwMDYtMDgtMTEgMDI6NTkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHNpbXBsZSBhdHRlbXB0IHRvIGZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIHZhX2NvcHkoKSBidWlsZCBpc3N1ZXMKCjIwMDYtMDgtMTAgMDc6MTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlcG9ydCBhIGZhaWx1cmUgdG8gYnVpbGQgdGhlIFBEVS4gIChSZWYgQnVnICMxMzk5MzcwKQoKMjAwNi0wOC0xMCAwMTo1OCAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIFdpdGggZmVhciBhbmQgdHJlcGlkYXRpb24sIHJlbW92ZSB0aGUgd2FybmluZ3MgYWdhaW5zdCB1c2Ugb2YgQWdlbnRYLgogICBEb29tZWQsIHdlJ3JlIGFhYWFsbCBkb29vb29tZWQuLi4uCgoyMDA2LTA4LTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L01BTklGRVNUOgoKICAgdXBkYXRlZCB0byBjb3JyZWN0IGxpc3QKCjIwMDYtMDgtMDkgMTA6MTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBhbm90aGVyIHBhc3MgYXQgcGVybC9DUEFOIHNwZWNpZmljIHZlcnNpb25pbmcgY2hlY2tzCgoyMDA2LTA4LTA5IDA5OjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgYWxsb3cgZm9yIHZlcnkgbWlub3IgZGV2aWF0aW9ucyBpbiBwZXJsIENQQU4gc291cmNlIHZlcnNpb25zIGZyb20gbmV0LXNubXAgdmVyc2lvbnMKCjIwMDYtMDgtMDkgMDk6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBtYWpvciB1cGRhdGUgZm9yIENQQU4gcmVsZWFzZQoKMjAwNi0wOC0wOSAwOTo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01BTklGRVNUOgoKICAgbWF0Y2ggNS4zIHRyZWUgZm9yIG9yZGVyaW5nCgoyMDA2LTA4LTA5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTUFOSUZFU1Q6CgogICB1cGRhdGUgZm9yIHJlY2VudCBuZWVkZWQgdGVzdGluZyBmaWxlcwoKMjAwNi0wOC0wOCAxNzo1MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGJ1aWxkIGZpeAoKMjAwNi0wOC0wOCAxNToxNiAgdGFuZGVycwoKICAgKiBhY2luY2x1ZGUubTQ6CgogICBNb3ZlIG91ciBvd24gbTQgbWFjcm9zIGZyb20gYWNsb2NhbC5tNCBpbnRvIGFjaW5jbHVkZS5tNCBhbmQgcHJvcGVybHkgcXVvdGUgdGhlbS4gRm9sbG93cyBsaWJ0b29sL2F1dG9tYWtlIHJlY29tbWVuZGF0aW9ucyBhbmQgYWxsb3dzIHRvIHJlZ2VuZXJhdGUgYWNsb2NhbC5tNCAoY29udGFpbmluZyBsaWJ0b29sLm00KSBieSBjYWxsaW5nIGFjbG9jYWwgd2hpY2ggSSd2ZSBqdXN0IGRvbmUuIEluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCAjMjEuCgoyMDA2LTA4LTA4IDE1OjA3ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIG1pbm9yIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA4LTA4IDE1OjAyICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQ6CgogICBNb3ZlIG91ciBvd24gbTQgbWFjcm9zIGZyb20gYWNsb2NhbC5tNCBpbnRvIGFjaW5jbHVkZS5tNCBhbmQgcHJvcGVybHkgcXVvdGUgdGhlbS4gRm9sbG93cyBsaWJ0b29sL2F1dG9tYWtlIHJlY29tbWVuZGF0aW9ucyBhbmQgYWxsb3dzIHRvIHJlZ2VuZXJhdGUgYWNsb2NhbC5tNCAoY29udGFpbmluZyBsaWJ0b29sLm00KSBieSBjYWxsaW5nIGFjbG9jYWwgd2hpY2ggSSd2ZSBqdXN0IGRvbmUuIEluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCAjMjEuYWNpbmNsdWRlLm00CgoyMDA2LTA4LTA4IDA2OjE4ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlcgoKMjAwNi0wOC0wOCAwNjoxOCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIEhBVkVfTElCTk0gaW4gb3JkZXIgdG8gbWFrZSBhdXRvaGVhZGVyIHdvcmsgYWdhaW4KCjIwMDYtMDgtMDcgMTU6NTMgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUKLCBORVdTLCBsdG1haW4uc2g6CgogICBsaWJ0b29sIHVwZGF0ZSB0byAxLjUuMjIgKGZyb20gMS40KS4gU3VwZXJzZWRlcyBwYXRjaCAxNDk2OTQ1IGFuZCBmaXhlcyBidWcgMTUxODExNyAocHJvYmFibHkgcGx1cyBhIGZldyBtb3JlKS4KCjIwMDYtMDgtMDcgMDg6MzMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFscmVhZHkgcmFuZG9taXplIHRoZSBpbml0aWFsIHBvcnQgd2UgdHJ5LiBMb3dlcnMgdGhlIGNoYW5jZSBvZiBjb2xsaXNpb25zIGlmIG11bHRpcGxlIHRlc3Qgc3VpdGVzIHJ1biBpbiBwYXJhbGxlbC4KCjIwMDYtMDgtMDcgMDU6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGV4cGxpY2l0IGNhc3QgdG8ga2VlcCBjb21waWxlciBoYXBweQoKMjAwNi0wOC0wNyAwMzowMyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggdHlwby4gIFNwb3R0ZWQgYnkgTGVvIExlaQoKMjAwNi0wOC0wNSAxNzowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jOgoKICAgQnVpbGQgZml4ZXMgZm9yIEFJWCBIT1NULVJFU09VUkNFUy1NSUIgc3VwcG9ydAoKMjAwNi0wOC0wNSAxMjoxNyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwZXJsLnNvIHRvIExEX1JVTl9QQVRICgoyMDA2LTA4LTA0IDE1OjM2ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEU0NTAgcmVwb3J0aW5nIFBTIHRlbXBzIGFzIHZvbHRhZ2UsIG90aGVyIHByb2JsZW1zCgoyMDA2LTA4LTAzIDE4OjAyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgb3ZlcnJpZGUgTERfUlVOX1BBVEggZm9yIHRoZSBwZXJsIG1vZHVsZXMgdG8gYXZvaWQgZGVwZW5kZW5jaWVzIG9uIHRoZSBidWlsZCBkaXJlY3RvcnkgKHBhdGNoIGZyb20gZGFyaXgpCgoyMDA2LTA4LTAxIDA0OjQzICB0YW5kZXJzCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBvbmUgbW9yZSBjb3JyZWN0aW9uCgoyMDA2LTA3LTMxIDIyOjUyICB0YW5kZXJzCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB1cGRhdGVzCgoyMDA2LTA3LTMxIDE2OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWJsb2FkLnQ6CgogICBmaXggYSB0ZXN0IHRoYXQgbWF5IHN1Y2NlZWQgd2hlbiBpdCBzaG91bGRuJ3QKCjIwMDYtMDctMzEgMTY6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGdldHRhYmxlIHBhdGNoCgoyMDA2LTA3LTMxIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCBnZXRidWxrIGF0IGVuZC1vZi1taWJ2aWV3IGJvdW5kYXJpZXMKCjIwMDYtMDctMzEgMTU6NDQgIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICB1cGRhdGUgYWdhaW4gdG8gbW9zdCByZWNlbnQKCjIwMDYtMDctMzEgMTU6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICB1cGRhdGUgZnJvbSB0aGUgbGF0ZXN0IHZlcnNpb24uCgoyMDA2LTA3LTMxIDE1OjQwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdmVyc2lvbiB0YWcgZG94eWdlbiBmaWxlcwoKMjAwNi0wNy0zMSAxNTozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMDctMzEgMTM6MzEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGluaXRpYWxpemUgc25tcHRyYXBkIGF1dGhvcml6YXRpb24gdW5jb25kaXRpb25hbGx5IG9mIHVzaW5nIEFnZW50WCAoZml4ZXMgYnVnIDE1Mjc2NjEpCgoyMDA2LTA3LTMxIDA3OjI1ICBtYXJ6CgogICAqIGRvYy9yZmMvOiBhZ2VudHgvcmZjMjc0MS50eHQsIG1pc2MvcmZjMzUxMi50eHQsCiAgICAgbWlzYy9yZmMzNTg0LnR4dCwgc21pVjIvcmZjMjU3OC50eHQsCiAgICAgc21pVjIvcmZjMjU3OS5lcnJhdGEsIHNtaVYyL3JmYzI1NzkuZXJyYXRhfiwKICAgICBzbWlWMi9yZmMyNTc5LnR4dCwgc21pVjIvcmZjMjU4MC50eHQsCiAgICAgc25tcFYxL3JmYzExNTUudHh0LCBzbm1wVjEvcmZjMTE1Ny50eHQsCiAgICAgc25tcFYxL3JmYzEyMTIudHh0LCBzbm1wVjEvcmZjMTIxMy50eHQsCiAgICAgc25tcFYyL3JmYzE5MDEudHh0LCBzbm1wVjIvcmZjMTkwMi50eHQsCiAgICAgc25tcFYyL3JmYzE5MDMudHh0LCBzbm1wVjIvcmZjMTkwNC50eHQsCiAgICAgc25tcFYyL3JmYzE5MDUudHh0LCBzbm1wVjIvcmZjMTkwNi50eHQsCiAgICAgc25tcFYyL3JmYzE5MDcudHh0LCBzbm1wVjIvcmZjMTkwOC50eHQsCiAgICAgc25tcFYyL3JmYzIwODkudHh0LCBzbm1wVjMvcmZjMzQxMC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTAudHh0LCBzbm1wVjMvcmZjMzQxMS50eHQsCiAgICAgc25tcFYzL3JmYzM0MTIudHh0LCBzbm1wVjMvcmZjMzQxMy5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTMudHh0LCBzbm1wVjMvcmZjMzQxNC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTQudHh0LCBzbm1wVjMvcmZjMzQxNS5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTUudHh0LCBzbm1wVjMvcmZjMzQxNi50eHQsCiAgICAgc25tcFYzL3JmYzM0MTcudHh0LCBzbm1wVjMvcmZjMzQxOC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTgudHh0OgoKICAgYWRkaW5nIHJmY3MgYW5kIGVycmF0YSB0byBkaXN0cmlidXRpb24KCjIwMDYtMDctMzEgMDU6NDMgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgRG9uJ3QgY2F0Y2ggIi4uLiBzbm1wbmV0c3RhdCBmaW5kcyAuLi4iICh0ZXN0IDU4KSBhcyBhbiBlcnJvci4KCjIwMDYtMDctMzAgMTc6MjggIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgQ2F0Y2ggIlBlcm1pc3Npb24gZGVuaWVkIiBlcnJvcnMsIGUuZy4gZHVyaW5nICJtYWtlIGluc3RhbGwiLgoKMjAwNi0wNy0zMCAxNjowOCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjYXRjaCAiQ2FuJ3QgZmluZCAuLi4iIGVycm9ycywgZS5nLiBmcm9tIGxkCgoyMDA2LTA3LTMwIDE1OjQxICB0YW5kZXJzCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBwYXNzIExERkxBR1MgdG8gYWxsb3cgZm9yIG5vbi1zdGFuZGFyZCBsaWJjcnlwdG8gbG9jYXRpb24KCjIwMDYtMDctMjkgMTY6NTggIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAoY29ycmVjdGx5KSBtYWtlIHVzZSBvZiByZWNlbnRseSBpbnRyb2R1Y2VkIFNOTVBfU1RST1JOVUxMKHgpCgoyMDA2LTA3LTI5IDE2OjE4ICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgbWFrZSB1c2Ugb2YgcmVjZW50bHkgaW50cm9kdWNlZCBTTk1QX1NUUk9STlVMTCh4KQoKMjAwNi0wNy0yOCAwNToyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTdXBwb3J0IHNldHRpbmcgdGhlIHBlcnNpc3RlbnQgbWFzayB2aWEgY29uZmlndXJlLiAgKGJhc2VkIG9uIFBhdGNoICMxNDM3Mzg1KQoKMjAwNi0wNy0yOCAwNDo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICctYXMtbmVlZGVkJyBzdXBwb3J0IGZvciBsaW5raW5nIGxpYnJhcmllcy4gIChQYXRjaGVzICMxMzk4ODczICYgMTQ5MzUyMikKCjIwMDYtMDctMjggMDI6MzkgIGR0czEyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBKdW1ibyBwYXRjaCBmb3IgaW1wcm92ZWQgQUlYIDUueCBzdXBwb3J0LiAgKFBhdGNoICMxNDg2MzA3KQogICBOb3RlIHRoYXQgdGhlIG1lbW9yeS1yZWxhdGVkIHByb2Nlc3NpbmcgKGhvc3QvaHJfZnN0b3JhZ2UuYykKICAgaXMgbm93IG1vc3RseSBoYW5kbGVkIGJ5IGhhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMKCjIwMDYtMDctMjcgMTI6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgcGF0Y2ggZnJvbSBKdWxpZW4gUGlub24gdG8gZml4IGEgZmV3IHRrbWliIHByb2JsZW1zCgoyMDA2LTA3LTI3IDA4OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFN1cHBvcnQgZm9yIEhGUyBzeXN0ZW1zLCBwbHVzIE5GUyBmaXhlcyBmb3IgRGFyd2luLiAgKFBhdGNoICMxNTIwMjg5KQoKMjAwNi0wNy0yNyAwNjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQcmV2ZW50IHBvdGVudGlhbCBjcmFzaCBpbiBEYXJ3aW4uICAoUGF0Y2ggIzE1MjAyODYpCgoyMDA2LTA3LTI3IDA2OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9rZXJuZWwuaDoKCiAgIFN1cHBvcnQgJy0td2l0aG91dC1rbWVtLXVzYWdlJyBvbiBub24tTGludXggc3lzdGVtcy4gIChQYXRjaCAjMTUyMDI3OCkKCjIwMDYtMDctMjcgMDU6MjUgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbmNsdWRlICdwa2NzJyBpbiB0aGUgbGlzdCBvZiBmaWxlcyB0byBjb21waWxlLiAgKFBhdGNoICMxNTE0ODY3KQoKMjAwNi0wNy0yNyAwNToxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEFjY2VwdCAtWiAwIHZhbHVlcyBmb3IgZW5naW5lQm9vdC9lbmdpbmVUaW1lLiAgKFBhdGNoICMxNTEwMDMyKQoKMjAwNi0wNy0yNyAwNDozNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFN1cHBvcnQgcnVubmluZyB0cmFwIHJlY2VpdmVyIGFzIG5vbi1yb290IHVzZXIvZ3JvdXAuICAoUGF0Y2ggIzE0OTc0NjcpCgoyMDA2LTA3LTI3IDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBBdHRlbXB0IHRvIHVzZSB0aGUgbW9zdCB1cC10by1kYXRlIHN5c2N0bCBBUElzLiAgKFBhdGNoICMxNDgyMTY5KQoKMjAwNi0wNy0yNiAwODo1OCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEdlbmVyYXRlIHByb3BlciBjb2RlIGZvciBub24taW50ZWdlciB2YWx1ZSBvYmplY3RzLCBhbmQgZGV0ZXJtaW5lCiAgIHRoZSBmaXJzdCBhbmQgbGFzdCBhY2Nlc3NpYmxlIGNvbHVtbiBvYmplY3RzLiAgKFBhdGNoICMxNDI3NzEyKQoKICAgUTogSXMgaXQgd29ydGggcHVsbGluZyBzb21lIG9mIHRoaXMgY29kZSBvdXQgaW50byBhIHNlcGFyYXRlIG1pYjJjCiAgICAgIHV0aWxpdHkgZmlsZSwgc2luY2UgbXVjaCBvZiB0aGUgcHJvY2Vzc2luZyBpcyBlZmZlY3RpdmVseSBpZGVudGljYWwKICAgICAgaW4gYWxsIHRocmVlIGNhc2VzPwoKMjAwNi0wNy0yNiAwNDo1NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEhhbmRsZSBsb25nIChkeW5hbWljLWJ1ZmZlcmVkKSBtZXNzYWdlcyBjb3JyZWN0bHkuICAoQnVnICMxNTE2MDQ1KQoKMjAwNi0wNy0yNiAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgRW5zdXJlIHRoZSBzZWNNb2RlbCBpcyBpbml0aWFsaXNlZCBmb3IgU05NUHYzIG5vdGlmaWNhdGlvbnMuIChCdWcgIzE1MTc0NTQpCgoyMDA2LTA3LTI2IDA0OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBPbmx5IHNvcnQgcmVsb2NhdGFibGUgZXh0ZW5zaW9uIGVudHJpZXMuICBUaG9zZSBpbiB0aGUgbWFpbiBleHRUYWJsZQogICBkb24ndCBoYXZlIGFuIE9JRCB0byBzb3J0IG9uLCBzbyBhdHRlbXB0aW5nIHRvIGRvIHNvIG1heSBzY3JhbWJsZQogICB0aGVtIGludG8gYSByYW5kb20gb3JkZXIuICAoQnVnICMxNTA2NzA3KQoKMjAwNi0wNy0yNSAwODo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suaCwgaHJfbmV0d29yay5oLAogICAgIGhyX290aGVyLmgsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5oLAogICAgIGhyX3Byb2MuaCwgaHJfc3RvcmFnZS5oOgoKICAgSW5kaWNhdGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gSG9zdFJlcyBtb2R1bGVzLiAgKEJ1ZyAjMTUwNTMyNSkKCjIwMDYtMDctMjUgMDg6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRW5zdXJlIHRoYXQgSVAgQWRkcmVzcyB2YWx1ZXMgYXJlIHJlcG9ydGVkIGFzIDQtb2N0ZXQKICAgdmFsdWVzIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmVzLiAgKEJ1ZyAjMTUwNDUwMSkKCjIwMDYtMDctMjUgMDY6NDggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBIYW5kbGUgbWFsZm9ybWVkIERpc3BsYXkgSGludHMgc2Vuc2libHksIHJhdGhlciB0aGFuCiAgIGdvaW5nIGludG8gYW4gaW5maW5pdGUgbG9vcC4gIChCdWcgIzE0NTk2NjUpCgoyMDA2LTA3LTI1IDA1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBEb24ndCBhc3N1bWUgdGhhdCBhbGwgcmVxdWVzdHMgYXJlIG5lY2Vzc2FyaWx5IHZhbGlkLiAoQnVnICMxNDQ1MTE2KQoKMjAwNi0wNy0yNSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVXNlIHRoZSBkZWZpbmVkIGRlZmF1bHQgcG9ydCAoaWYgc3BlY2lmaWVkKSBmb3IgbnVtZXJpYyBJUHY2CiAgIGFkZHJlc3NlcywgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyBTTk1QX1BPUlQuICAoQnVnICMxNDQ1MDg5KQoKMjAwNi0wNy0yNSAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBEb24ndCBjaG9rZSBvbiBtaXNzaW5nIGxhYmVscyAoQnVnICMxNDI5NDY5KQoKMjAwNi0wNy0yNSAwMjoyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW5jbHVkZSBtaXNzaW5nIGZsYWdzIHBhcmFtZXRlciAoQnVnICMxNDIyNzA4KQoKMjAwNi0wNy0yNSAwMTozMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIGJyb2tlbiBhc3NlcnRpb24gKEJ1ZyAjMTM5OTM3MCkKCjIwMDYtMDctMjUgMDE6MTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdjMuYzoKCiAgIFJlLWZpeCB1bnNpZ25lZCBjb21wYXJpc29ucyBhZ2FpbnN0IDAgKEJ1ZyAjMTM5Nzg5MSkKICAgaW5jbHVkaW5nIGZpeCBmb3IgdGVzdCAjMjQKCjIwMDYtMDctMjUgMDE6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEZpeCBzaWduZWRuZXNzIG9mIHJldHVybiB2YWx1ZXMgKEJ1ZyAjMTM5NzkwNikKCjIwMDYtMDctMTggMDc6MDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgU05NUF9UWVBFREVGX01BTExPQyAtPiBTTk1QX01BTExPQ19UWVBFREVGCgoyMDA2LTA3LTEzIDE0OjMwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbmV3cyB1cGRhdGUgZm9yIHJlY2VudCBmZWF0dXJlcwoKMjAwNi0wNy0xMyAwODoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjYWxsYmFjayBzdXBwb3J0IGZvciBnZXR0YWJsZSgpLgogICAgIC0gbm90IGV4dGVuc2l2ZWx5IHdlbGwgdGVzdGVkLCBidXQgaXQgZG9lcyB3b3JrCgoyMDA2LTA3LTEyIDAyOjQwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBpZkluT2N0ZXRzIHN0YXRpc3RpY3Mgb24gU29sYXJpcyAocGF0Y2ggMTUyMDYwMyBmcm9tIEpvaG4gR3JlZW4pCgoyMDA2LTA3LTA3IDE1OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHR5cG8gZml4CgoyMDA2LTA3LTA3IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERhdmUncyBwYXRjaCB0byByZW1vdmUgaG9zdCBtaWIgc3VwcG9ydCBmb3Igd2luZG93cyBieSBkZWZhdWx0CgoyMDA2LTA3LTA3IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBEYXZlJ3MgcGF0Y2ggZm9yIGNvbXBpbGF0aW9uIGZpeGVzIGZvciB3aW5kb3dzCgoyMDA2LTA3LTA3IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgc25tcGxpYi9sY2RfdGltZS5jCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBNYXRoZXcgQmllbGVqZXNraSB0byBmcmVlIHVzZXIgbGlzdCBhbmQgZW5naW5lIHRpbWUgY2FjaGUgYXQgc2h1dGRvd24KCjIwMDYtMDctMDcgMTQ6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXggcG9zc2JpbGUgbnVsbCBkZXJlZmVuY2UsIG5vdGVkIG9uIGNvZGVycwoKMjAwNi0wNy0wNiAxNToxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcDoKCiAgIGFkanVzdCBPSUQgZm9yIFNvbGFyaXMgc3dhcCBzcGFjZSBzaXplCgoyMDA2LTA3LTA2IDE1OjAxICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBhc3NpZ25tZW50IGluIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4KCkgZm9yIEFTTl9JUEFERFJFU1MKCjIwMDYtMDctMDUgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIC0gYWRkIHdhcm5pbmcgY29tbWVudCBmb3IgZGVwcmVjYXRlZCBvYmplY3RzCiAgIC0gc2hvcnRlbiBzY2FsYXIgbm9kZSBjb21tZW50cyBieSBhIGxpbmUKICAgLSBzaG9ydGVuIGNvbHVtbiBub2RlIGNvbW1lbnRzCgoyMDA2LTA3LTA1IDE0OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIHVuc2lnbmVkIHRvIGFzbnR5cGVzCgoyMDA2LTA3LTA1IDE0OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICBhZGQgKiBuZXh0IHRvIHNjYWxhciBlbnVtIGRlZnZhbAoKMjAwNi0wNy0wNSAxNDoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgLSAnb3ZlcnJpZGUnIGFuZCAnYWRkX3JvdycgZGVmYXVsdCB0byBjb21tZW50ZWQgb3V0CiAgIC0gYWRkIG1pc3NpbmcgdHlwZSBpbmZvIHRvIG92ZXJyaWRlCiAgIC0gbWFrZSBjb25mIGZpbGUgaGVhZGVyIG1pYjJjIGNvbW1lbnRzIHNvIGl0J3Mgbm90IGluY2x1ZGVkIGluIG91dHB1dAoKMjAwNi0wNy0wNSAwNzo0MiAgcnN0b3J5CgogICAqIG1pYnMvOiBESVNNQU4tTlNMT09LVVAtTUlCLnR4dCwgRElTTUFOLVBJTkctTUlCLnR4dCwKICAgICBESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gUkZDIDQ1NjAKCjIwMDYtMDctMDMgMjE6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFByb3Blcmx5IGhhbmRsZSBzbm1wIGVudW1zIHVzaW5nIHRoZSB3b3JkICJkZXByZWNhdGVkIgoKMjAwNi0wNy0wMyAyMDo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgYXBwcm9wcmlhdGVseSBtYXJrIGRlcHJlY2F0ZWQgdGFibGUgb2JqZWN0cwoKMjAwNi0wNi0zMCAyMjoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIHN1cHBvcnQgZm9yIG9wdGlvbmFsIGZpbGVzIChkb24ndCBleGlzdCBpbiBldmVyeSBicmFuY2gpCgoyMDA2LTA2LTMwIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZG94eWdlbi5jb25mIHN1cHBvcnQKCjIwMDYtMDYtMzAgMjE6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBjaGVjayBmb3IgZmlsZSBleGlzdGVuY2UKCjIwMDYtMDYtMzAgMjE6MDcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBleGl0IHdpdGggdGhlIGN2cyBjb21taXQgc3RhdHVzIGlmIHJ1bgoKMjAwNi0wNi0zMCAxNTo1MyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBiZXR0ZXIgZW52IG5hbWUgZm9yIG5vdCBjaGVja2luZyB0aGUgdmVyc2lvbgoKMjAwNi0wNi0zMCAxNToxNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgdmVyc2lvbiBjaGFuZ2luZyBzdXBwb3J0OyBub3cgaW4gbWFrZXJlbGVhc2UKCjIwMDYtMDYtMzAgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZW1vdmUgdGFnIHN1cHBvcnQgZnJvbSB2ZXJzaW9udGFnOyBub3cgaW4gbWFrZXJlbGVhc2UKCjIwMDYtMDYtMzAgMTU6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBtdWNoIGJldHRlciBzdXBwb3J0IGZvciBjdnMgY29tbWl0LCB2ZXJzaW9uIG51bWJlcmluZywgZXRjCgoyMDA2LTA2LTMwIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdmFyaW91cyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzCgoyMDA2LTA2LTMwIDE1OjEzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIEFTTi9BU04ucG0sIEFTTi9NYWtlZmlsZS5QTAosIEFueURhdGFfU05NUC9TdG9yYWdlLnBtLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgT0lEL09JRC5wbSwgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9TTk1QLnBtLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbQosIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9hZ2VudC5wbSwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtCjoKCiAgIHBlcmwgdmVyc2lvbiBudW1iZXJpbmcgY2hhbmdlcwoKMjAwNi0wNi0zMCAxNToxMiAgaGFyZGFrZXIKCiAgICogcGVybC9NYWtlZmlsZS5zdWJzLnBsOgoKICAgVXBkYXRlIHRvIGNoZWNrIGZvciBDUEFOIHJlcXVpcmVkIHBlcmwgdmVyc2lvbiBudW1iZXJzCgoyMDA2LTA2LTI5IDE2OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICBmaXJzdCBwYXNzIGF0IGF1dG9nZW5lcmF0aW5nIG92ZXJyaWRlL3RhYmxlL2FkZF9yb3cgZW50cmllcyBmb3IgYSBNSUIKCjIwMDYtMDYtMjcgMTE6NDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNjFhZ2VudHBlcmwsIFQxMTVhZ2VudHhwZXJsOgoKICAgc2V0IERZTERfTElCUkFSWV9QQVRIIGZvciBPU1ggYW5kIFNITElCX1BBVEggZm9yIEhQLVVYCgoyMDA2LTA2LTI3IDExOjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggbW9yZSB1ZHBUYWJsZSBieXRlLW9yZGVyIGlzc3VlcyAoaW5kaWNlcykgb24gKkJTRCBhbmQgU29sYXJpcy94ODYKCjIwMDYtMDYtMjcgMDk6NDIgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgcmVtb3ZlIGVtYmVkZWQgcGVybCBpbmZvOyBhZGQgcGVybCBhZ2VudHggaW5mbwoKMjAwNi0wNi0yNiAxNToyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYWRkIG5ldHN0YXQgcGF0aCBmb3IgSVJJWAoKMjAwNi0wNi0yNiAwODozMyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIHVkcFRhYmxlIGJ5dGUtb3JkZXIgZml4ICh2YWx1ZXMgb25seSkgZm9yIE5ldEJTRCBhbmQgT3BlbkJTRAoKMjAwNi0wNi0yNSAxNDo0MyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBwcmVwZW5kIChpbnN0ZWFkIG9mIHJlcGxhY2UpIGEgbm9uLWVtcHR5IExEX0xJQlJBUllfUEFUSDsgZml4ZXMgdGVzdCBlcnJvcnMgb24gc3lzdGVtcyB0aGF0IHJlbHkgb24gaXQKCjIwMDYtMDYtMjUgMTQ6MjUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBmaXggdGVzdCBlcnJvciBvbiBTb2xhcmlzIGV0Yy46IG9ubHkgdXNlICJpZCAtdSIgb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQKCjIwMDYtMDYtMjUgMDg6NDMgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgICBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTAosIFNOTVAvTWFrZWZpbGUuUEwsIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIC0ncGVybCBNYWtlZmlsZS5QTCAtTkVULVNOTVAtSU4tU09VUkNFPXRydWUnIHdhcyBub3Qgd29ya2luZy4gIEZpeDogY2FsbAogICAgJ25zY29uZmlnJyAtLXZlcnNpb24gaW5zaWRlIG9mIEluaXRNYWtlUGFyYW1zIGluc3RlYWQgb2YgQ2hlY2tfVmVyc2lvbgogICAtU3VwcG9ydCBtb2R1bGU6IE5ldFNOTVBHZXRPcHRzIGNhbGwgc2hvdWxkIHBhc3MgcGFyZW50IGZvbGRlciBzbyBuZXQtc25tcC1jb25maWcKICAgIGNhbiBiZSBmb3VuZAogICAtU3VwcG9ydC9NYWtlZmlsZS5QTCB3YXMgbWlzc2luZyBmcm9tIE1ha2VmaWxlLm1ha2VmaWxlcwoKMjAwNi0wNi0yNCAwOTowMCAgYWxleF9iCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICAgIE1ha2VmaWxlLnN1YnMucGwsIG1ha2UtcGVybC1tYWtlZmlsZXMsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgLVNraXAgdmVyc2lvbiBjaGVjayBmb3IgV2luMzIgTVNWQwogICAtYWRkIFRyYXBSZWNlaXZlciB0byBNYWtlZmlsZS5tYWtlZmlsZXMKICAgLW1ha2UtcGVybC1tYWtlZmlsZXM6ICByZW5hbWUgZmlsZXMgQUZURVIgY2xvc2luZyB0aGVtLCBub3QgYmVmb3JlCgoyMDA2LTA2LTIzIDEyOjUwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgY2hlY2sgZm9yIDEyNy4wLjAuMS4sIG5vdCBqdXN0ICwgdG8gaWRlbnRpZnkgYnl0ZS1vcmRlciBpc3N1ZXMKCjIwMDYtMDYtMjMgMDk6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIENsZWFuIGZpeGluZyBvZiBvcmRlcmluZyBwcm9ibGVtcyB3aXRoIGtlcm5lbCBzdG9yYWdlIG9mIFVEUCB2YWx1ZXMKCjIwMDYtMDYtMjMgMDg6NTIgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBEb2N1bWVudCBjdXJyZW50IGJlc3QtcHJhY3Rpc2UgZm9yIGFubm91bmNpbmcgbmV3IHJlbGVhc2VzCiAgIChpbmNsdWRpbmcgcHJlLXJlbGVhc2VzIGFuZCByZWxlYXNlIGNhbmRpZGF0ZXMpLgogICBTYXkgd2hhdCB3ZSBkbywgcmF0aGVyIHRoYW4gZG8gd2hhdCB3ZSBzYXkuCgoyMDA2LTA2LTIzIDA1OjE5ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKCjIwMDYtMDYtMjMgMDI6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBlYXJsaWVyICJkb24ndCByZXZlcnNlIGFkZHJlc3MgYnl0ZSBvcmRlciBmb3Igc29sYXJpcyAoc3BlY2lmaWNhbGx5IHg4NikgZm9yIGxvY2FsIGFkZHJlc3NlcyIgcGF0Y2ggdGhhdCBicm9rZSBieXRlIG9yZGVyIGZvciBhbGwgcGxhdGZvcm1zCgoyMDA2LTA2LTIwIDE1OjM1ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGludHJvZHVjZSBOU0JfUFJFRklYIGFuZCBzd2l0Y2ggdG8gLS1wcmVmaXg9L3VzciBub3cgdGhhdCB3ZSBzdXBwb3J0IERFU1RESVIgZm9yIGV2ZXJ5dGhpbmc7IGUuZy4gdG8gYXZvaWQgdGhhdCB0aGUgaW5zdGFsbGF0aW9uIGVuZHMgaW4gL2Rlc3RkaXIvZGVzdGRpcgoKMjAwNi0wNi0yMCAxNDo0NiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX0VYVFJBX0lOU1RBTEwgdG8gYmUgYWJsZSB0byBwYXNzIGV4dHJhIGFyZ3MgdG8gIm1ha2UgaW5zdGFsbCIKCjIwMDYtMDYtMjAgMTI6MTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgZXhwb3J0aW5nCgoyMDA2LTA2LTIwIDA1OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHNldCBMRF9MSUJSQVJZX1BBVEggdG8gbWFrZSBzdXJlIHRoYXQgTmV0U05NUDo6YWdlbnQncyBhZ2VudC5zbyBjYW4gbG9hZCAodW5pbnN0YWxsZWQpIGxpYm5ldHNubXAqLnNvOyBvdGhlcndpc2UgdGVzdCBmYWlscyBhdCBsZWFzdCBvbiBGcmVlQlNECgoyMDA2LTA2LTE1IDE1OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHN1cHByZXNzIHN0ZGVyciB3YXJuaW5ncyBmb3IgInBzIC1lIiBpbiBvcmRlciB0byBmaXggW2ZhbHNlXSBuaWdodGx5IGJ1aWxkIGVycm9yIG1lc3NhZ2VzIG9uIFNGIENGIGhvc3QgYWxwaGEtbGludXgxCgoyMDA2LTA2LTE1IDA2OjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgYWRkIE9wZW5CU0QgYW5kIE5ldEJTRCB0byB0aGUgbGlzdCBvZiBzeXN0ZW1zIHRoYXQgcmVxdWlyZSByb290IHByaXZpbGVnZXMgZm9yIHVkcFRhYmxlIChhY2NvcmRpbmcgdG8gRGF2ZSdzIHRlc3RpbmcpCgoyMDA2LTA2LTEzIDE0OjU5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBzZXQgTkVUU05NUF9EU19BR0VOVF9OT19ST09UX0FDQ0VTUyAobmVlZGVkIGZvciBlLmcuIFNvbGFyaXMgMi42KQoKMjAwNi0wNi0xMyAwNTo0MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggYnVnIDE1MDUzNDE6IGFnZW50IHNlZ2ZhdWx0cyBvbiBTb2xhcmlzIHdpdGggLURBTEwKCjIwMDYtMDYtMTIgMTY6NTUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjb21taXQgdGhlIGRveHlnZW4uY29uZiBmaWxlCgoyMDA2LTA2LTEyIDE2OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBpbnRyb2R1Y2UgIm5ldC1zbm1wLWNvbmZpZyAtLXBlcmxwcm9nIiBhbmQgdXNlIGl0IGluIHRoZSAiQWdlbnRYIHN1YmFnZW50IGluIHBlcmwiIHRlc3QKCjIwMDYtMDYtMTIgMTY6MDAgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgaW50cm9kdWNlICJuZXQtc25tcC1jb25maWcgLS1wZXJscHJvZyIgYW5kIHVzZSBpdCBpbiB0aGUgIkFnZW50WCBzdWJhZ2VudCBpbiBwZXJsIiB0ZXN0CgoyMDA2LTA2LTEyIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZGVmaW5lIG1mZF8qX3Jvd3JlcV9mcm9tX2luZGV4IGlmIHBlcnNpc3RlbnQgZW5hYmxlZAoKMjAwNi0wNi0xMiAxNTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgaW5jbHVkZSBpcGFkZHIgaW5zdGVhZCBvZiByZWRlZmluaW5nIGNvbnN0YW50cwoKMjAwNi0wNi0xMiAxNTozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBhZGQgY29tbWVudCB3L2ludGVnZXIgdmFsdWUgZm9yIGVhc3kgZ3JlcHBpbmcKCjIwMDYtMDYtMTIgMTM6MjMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldDYuYywgcm91dGUuYzoKCiAgIGFkZCBzeXMvdHlwZXMuaCB0byBmaXggT1MgWCBidWlsZAoKMjAwNi0wNi0xMiAxMzowNSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gZml4IGJhZCBwYXJhbWV0ZXIgaW4gc2NhbGFyIHJlZ2lzdHJhdGlvbgogICAtIGtlZXAgc2NhbGFyIHZhbHVlIGZyZXNoIHVzaW5nIHRhYmxlIGNhY2hlICsgY2FjaGUgaGVscGVyCgoyMDA2LTA2LTEyIDEzOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgYWRkIGFjY2VzcyB0byB0YWJsZSBjYWNoZQoKMjAwNi0wNi0xMiAxMDozMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgZml4IGZvciBuZXcgZmFpbHVyZSBlcnJvciBjb2RlCgoyMDA2LTA2LTEyIDEwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggYnVnIHJlcG9ydGVkIGJ5IFJvYmVydCBXaWxjb3g6IHJldHVybiBubyBhY2Nlc3MgaW5zdGVhZCBvZiBub3Qgd3JpdGFibGUgb24gVkFDTSBkZW5pYWxzCgoyMDA2LTA2LTEyIDA5OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZmluYWxseSBhIHdvcmtpbmcgdmVyc2lvbiBvZiB0aGUgdmVyc2lvbiB3b3JraW5nIGNoZWNrCgoyMDA2LTA2LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZml4IHByZVggdmVyc2lvbiBudW1iZXJzIGJlZm9yZSBjaGVja2luZwoKMjAwNi0wNi0xMiAwODo0NiAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGNoZWNrIHRoZSBwZXJsIG1vZHVsZSB2ZXJzaW9uIG51bWJlciBhZ2FpbnN0IHRoZSBuZXQtc25tcCB2ZXJzaW9uIG51bWJlcgoKMjAwNi0wNi0xMiAwMToxOSAgdGFuZGVycwoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG1hbnVhbCBzdGVwIHRvIHVwZGF0ZSB2ZXJzaW9uIG51bWJlciBpbiBkb3h5Z2VuLmNvbmYKCjIwMDYtMDYtMTIgMDE6MTYgIHRhbmRlcnMKCiAgICogZG94eWdlbi5jb25mOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDYtMDYtMTAgMDU6NTcgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgZml4IHN5bnRheCBlcnJvciBpbnRyb2R1Y2VkIGluIGxhc3QgY29tbWl0CgoyMDA2LTA2LTA5IDEzOjQyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZml4IHR5cG8KCjIwMDYtMDYtMDkgMDU6NTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICAtIGRvbid0IGZyZWUgcGR1IGlmIGl0J3Mgbm90IGEgY2xvbmUKICAgLSBpZmRlZiBtb3JlIGNvZGUgbm90IHVzZWQgaWYgc25tcHYxIGRpc2FibGVkCgoyMDA2LTA2LTA3IDA1OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBwYXRjaCBmcm9tIERhdmUgdG8gcHJldmVudCBjcmFzaCB3aXRoIC1EcmVnaXN0ZXJfbWliCgoyMDA2LTA2LTA3IDA1OjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGFuZCBhcnBhL2luZXQuaCB0byBwaWNrIHVwIG50b2hsIG9uIGhwdXgxMC4yMAoKMjAwNi0wNi0wNSAxNTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggZG91YmxlLWZyZWUgb2YgZGVsZWdhdGVkIGNhY2hlCgoyMDA2LTA2LTA1IDE0OjI3ICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgYWRkIHZhY20gc2V0IHRlc3RzCgoyMDA2LTA2LTA1IDE0OjIxICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZzoKCiAgIGFkZCAocm98cncpY29tbXVuaXR5IGNvbmZpZyBmb3IgcncgdmFjbSB0ZXN0CgoyMDA2LTA2LTA1IDExOjA2ICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgc29tZSB2YWNtIG1hdGNoaW5nIGRlYnVnIG1zZ3MKCjIwMDYtMDYtMDUgMTA6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgLSB1c2UgbmV3IGFiaWxpdHkgdG8gc2NoZWR1bGUgYWxhcm0gaW4gMCBzZWMgdG8gcnVuIG10ZSB0aXJnZ2VycyBhc2FwIGFmdGVyCiAgICAgc3RhcnR1cCwgaW5zdGVhZCBvZiBkdXJpbmcgY29uZmlnIGZpbGUgcGFyc2luZwogICAtIGFkZCBtaXNzaW5nIFxuIHRvIGxvZyBtc2cKCjIwMDYtMDYtMDUgMTA6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gYWxsb3cgYSAwIHRpbWUgaW4gc25tcF9hbGFybV9yZWdpc3RlciwgdG8gbWVhbiBydW4gQVNBUCAoaS5lLiAxIHVzZWMpCiAgIC0gYWxsb3cgc2VjL3VzZWMgb2YgMCBpbiBzYV91cGRhdGVfZW50cnksIGV4Y2VwdCBmb3IgU0FfUkVQRUFUIGNhc2UKCjIwMDYtMDYtMDUgMTA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIC0gbG9nIGVycm9yIChhbmQgZG9uJ3QgY3JlYXRlIGVudHJ5KSBpZiBzZXNzIHVzZXIgbm90IGZvdW5kCiAgIC0gbG9nIGVycm9yIGlmIGFnZW50U2VjTmFtZSAoZGVmYXVsdCB1c2VyKSBub3Qgc3BlY2lmaWVkCiAgIC0gYWRkIG1pc3NpbmcgXG4gdG8gZGVidWcgbXNnCgoyMDA2LTA2LTA1IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgY2hhbmdlIGxlbiB0eXBlIHRvIHNpemVfdAoKMjAwNi0wNi0wNSAwOTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGFkZCBjb250YWluZXIgbmFtZXMKCjIwMDYtMDYtMDEgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBlbmZvcmNlIE1JQiBvYmplY3QgbGVuZ3RocwoKMjAwNi0wNS0yOSAwMjo0MCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFrIHRoZSBlcnJvciByZWdleAoKMjAwNi0wNS0yOSAwMTozNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmw6CgogICByZS1maXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMjggMTM6MTMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgdGVtcG9yYXJ5IHdvcmthcm91bmQgdG8gcHJldmVudCBzbm1wdHJhcGQgZW1iZWRkZWQgcGVybCBjcmFzaCBvbiB4ODZfNjQgKGJ1ZyAxNDk0ODgyKQoKMjAwNi0wNS0yNyAyMzo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICB1c2UgQ0hFQ0tPUkRJRSBpbnN0ZWFkIG9mIENIRUNLRklMRSB3aGVuIGRvaW5nIG11bHRpcGxlIGNoZWNrcyAod2FzIHN1Y2NlZWRpbmcgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZSkuICBBbHNvLCBvcGVuIGVtYmVkZGVkIHBlcmwgTE9HIGluIGFwcGVuZCBtb2RlIHNvIHNlY29uZCByb3V0aW5lIGRvZXNuJ3QgdHJ1bXAgdGhlIGZpcnN0CgoyMDA2LTA1LTI3IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBpbmNsdWRlIG5ldGluZXQvaW4uaCBhbmQgYXJwYS9pbmV0LmggdG8gcGljayB1cCBodG9ubCwgZXRjLCBvbiBocHV4MTAuMjAKCjIwMDYtMDUtMjcgMjI6MTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHdheSBzaW1wbGUgREVTVERJUiBzdXBwb3J0CgoyMDA2LTA1LTI3IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBhIGZldyBwZW9wbGUgZnJvbSBwcmV2aW91cyBwYXRjaGVzCgoyMDA2LTA1LTI3IDA3OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBzZXQgbGlidG9vbC1saWtlIExEX0xJQlJBUllfUEFUSCB0byBtYWtlIHN1cmUgdGhlIHBlcmwgYWdlbnQgc3RhcnRzIHByb3Blcmx5IChmaXhlcyBidWcgMTQ5NTQzMykKCjIwMDYtMDUtMjYgMTU6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBkb24ndCByZXZlcnNlIGFkZHJlc3MgYnl0ZSBvcmRlciBmb3Igc29sYXJpcyAoc3BlY2lmaWNhbGx5IHg4NikgZm9yIGxvY2FsIGFkZHJlc3NlcwoKMjAwNi0wNS0yNiAxNToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICByZW1vdmUgZG91YmxlIGVudHJ5IGNvbW1lbnQKCjIwMDYtMDUtMjYgMDk6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb25lIGludHB0cl90IGNhc3QgZnJvbSBhIHBvaW50ZXIKCjIwMDYtMDUtMjYgMDk6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgY29uZmlndXJlOgoKICAgY2hlY2sgZm9yIHVpbnRwdHJfdCBhbmQgaW50cHRyX3QKCjIwMDYtMDUtMjYgMDY6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIEFub3RoZXIgcHJvcGVyIHBvaW50ZXIgY2FzdAoKMjAwNi0wNS0yNiAwNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cywgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywKICAgICBhZ2VudC9hZ2VudC54czoKCiAgIFBhdGNoIGZyb20gZGFyaXggdG8gcHJvcGVybHkgY2FzdCBwb2ludGVycyB0byBhbiBJViBpbnN0ZWFkIG9mIGFuIGludCB0byBmaXggNjRiaXQgaXNzdWVzCgoyMDA2LTA1LTI2IDAxOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1ha2UgZGFlbW9ucyBiaW5kIHRvIGxvY2FsaG9zdCBieSBkZWZhdWx0IG9ubHkgKGZpeGVzIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wNS0yNSAxNToxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2V0IFNOTVBfUEVSU0lTVEVOVF9ESVIgZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMTU6MDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBTTk1QQ09ORlBBVEggZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMDk6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBkb24ndCBvcGVuIGRlZmF1bHQgc211eCBwb3J0L3NvY2tldAoKMjAwNi0wNS0yNSAwODowNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdXNtY29uZmlnYWdlbnQsIFN2YW55Y29uZmlnOgoKICAgZG9uJ3Qgb3BlbiBkZWZhdWx0IHNtdXggcG9ydC9zb2NrZXQKCjIwMDYtMDUtMjQgMDg6MzIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyBwZXJsCgoyMDA2LTA1LTI0IDA4OjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBkb3VibGUtZm9yayB0aGUgcGVybCBzdWJhZ2VudCB0byBhdm9pZCBzaGVsbCBvdXRwdXQgZnJvbSBqb2IgaGFuZGxpbmcKCjIwMDYtMDUtMjQgMDY6NDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGludHJvZHVjZSBhZGRpdGlvbmFsIHZhcmlhYmxlcyBmb3Igc3ViYWdlbnQgdGVzdHM6IEFHRU5UWF9DT05GSUdfRklMRSwgU05NUF9BR0VOVFhfUElEX0ZJTEUsIFNOTVBfQUdFTlRYX0xPR19GSUxFCgoyMDA2LTA1LTI0IDA2OjM5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBuZXcgdGVzdDogJ0FnZW50WCBzdWJhZ2VudCBpbiBQZXJsICh1c2luZyBOZXRTTk1QOjphZ2VudCknCgoyMDA2LTA1LTIyIDE1OjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX3N5c3RlbSBpbiBwYXJ0aWN1bGFyIGFuZCB1c2VzIHYxLCBub3QgdjJjCgoyMDA2LTA1LTIyIDE1OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfZGV2aWNlIGluIHBhcnRpY3VsYXIgYW5kIHVzZXMgdjEsIG5vdCB2MmMKCjIwMDYtMDUtMjIgMTU6MzYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgdXNlcyB2MSwgbm90IHYyYwoKMjAwNi0wNS0yMiAxNToxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lOgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfc3lzdGVtIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMjIgMDM6MDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9zdG9yYWdlIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMTkgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGZpeCBmb3IgYnVnIDEzMTM2NjcgcmVtb3ZlZCBzeW5jaCBzZW5kLCBhbGxvd2luZyB1cyB0byB1bmNvbW1lbnQgdGhlCiAgICAgY29tbWVudGVkIG91dCBwZHUgZnJlZSBvbiBlcnJvciwgcGx1Z2dpbmcgYSBtZW1vcnkgbGVhayBpZGVudGlmaWVkCiAgICAgb24gY29kZXJzIGJ5IGRlcmVrbCBhdCBibHVleW9uZGVyIGNvIHVrCgoyMDA2LTA1LTE5IDEwOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIHVzZSBucnByb2NzLTEgYXMgaW5kZXggaW5zdGVhZCBvZiBpLCB3aGljaCB3aWxsIGJlIG5lZ2F0aXZlIGlmIGNwdWluZm8KICAgICBkb2Vzbid0IGNvbnRhaW4gYSAncHJvY2Vzc29yJyBsaW5lCgoyMDA2LTA1LTE3IDE1OjExICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgbmVlZCBzeXMvdHlwZXMuaCBiZWZvcmUgbmV0aW5ldC9pbi5oIG9uIHNvbWUgcGxhdGZvcm1zCgoyMDA2LTA1LTEzIDAwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXBkYXRlIENWUyBob3N0IG5hbWUKCjIwMDYtMDUtMTIgMTU6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cwosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAosIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgLVcgZmxhZyBzdWJzdGl0aW9uIHRvIGJlIGV4YWN0IG1hdGNoIG9mIGZsYWdzIHRvIHJlbW92ZSwgcmF0aGVyIHRoYW4gcmVtb3ZpbmcgYW55IC1XIGZsYWcgZm9yIHBvcnRhYmlsaXR5IHJlYXNvbnMKCjIwMDYtMDUtMTIgMDk6MTAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWlzYy4gYWRkaXRpb25zIGZvciBtb3JlIGNvbmZpZ3VyYXRpb24gY29udHJvbCBvbiBidWlsZCBmYXJtcywgaW5jbHVkaW5nIGVtYmVkZGVkIHBlcmwgYnVpbGRpbmcKCjIwMDYtMDUtMTIgMDg6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNjB0cmFwZHBlcmwsIFQwNjFhZ2VudHBlcmw6CgogICBmaXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMTIgMDg6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBlbnN1cmUgdGhlIHRlc3RzIHdvcmsgZXZlbiBpZiBVQ0QtU05NUC1NSUIgaXNuJ3QgaW4gZGVmYXVsdHMgTUlCUyBsaXN0CgoyMDA2LTA1LTEyIDA4OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBpbnRyb2R1Y2UgZGVsYXlzIHRvIG5vdCBsb3NlIHRyYXBzCgoyMDA2LTA1LTEyIDA3OjU0ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICB1cGRhdGUgUkVBRE1FIGZvciBBSVggYmFzZWQgb24gYnVpbGQgdGVzdCBleHBlcmllbmNlIG9uIEFJWCA0LjMuMy81LjEvNS4yLzUuMwoKMjAwNi0wNS0wOCAwMzowNyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX0xJQldSQVAgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IC0td2l0aFtvdXRdLWxpYndyYXA9eHh4CgoyMDA2LTA1LTA4IDAxOjExICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBzbXV4IGZyb20gTlNCX0RJU1RfTU9EVUxFUyAoaXQncyBhbHJlYWR5IGluIE5TQl9FWFRSQV9NT0RVTEVTKQoKMjAwNi0wNS0wOCAwMDo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaDoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiB4bGMgb24gQUlYIDQuMy4zKTogbm8gdHJhaWxpbmcgY29tbWEgYWZ0ZXIgbGFzdCBlbnRyeSBvZiBhICJ0eXBlZGVmIGVudW0iCgoyMDA2LTA1LTA1IDE2OjAzICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZ1cnRoZXIgdHdlYWtpbmcgb2YgdGhlIGV4Y2VwdGlvbiByZWdleAoKMjAwNi0wNS0wNSAxNToyOCAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIEluaXRpYWwgUkVBRE1FIGZvciBJUklYCgoyMDA2LTA1LTA1IDE0OjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIHB1dCB0aGUgc25wcmludGYgbGVuZ3RoIGludG8gYSBkZXJlZmVyZW5jZWQgcG9pbnRlcgoKMjAwNi0wNS0wNCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY292ZXJ0aXkgMTM1OiBkb3VibGUgY2hlY2sgbmV0c25tcF9vaWRfZmluZF9wcmVmaXggcmV0dXJucyBhIHBvc2l0aXZlIHJlc3VsdCAoc2hvdWxkIG9ubHkgaGFwcGVuIGluIGJyb2tlbi10cmVlIGNhc2VzKQoKMjAwNi0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAjMTM2OiBmcmVlIG1lbSBsZWFrIGluIHJhcmUgYmFkLWFnZW50eCBwYWNrZXQgY2FzZQoKMjAwNi0wNS0wMyAxMzo1OSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgTkVXUzoKCiAgIFsgMTQ4MTAxMiBdIEhQLVVYIDExLjAvMTFpOiBpcEFkRW50QmNhc3RBZGRyIHdyb25nIChwYXRjaCBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQoKMjAwNi0wNC0zMCAyMjowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBbIDE0Nzg2MTYgXSBzbm1wdXNtIG91dHB1dHMgdG8gc3RkZXJyIG9uIHN1Y2Nlc3MKCjIwMDYtMDQtMzAgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgWyAxNDc5MDcxIF0gNjQgYml0cyBjb3VudGVyIG9uIExpbnV4ICYgZ29vZCBwYXJzaW5nIG9mIGRpc2tzdGF0cyAoYWdhaW4pIFttb2RpZmllZF0gZnJvbSBGYWJyaWNlIEJhY2NoZWxsYQoKMjAwNi0wNC0yNSAxMDozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgWyAxNDY2NDUwIF0gZml4IGNvbXBpbGF0aW9uIHdpdGggbGludXgvZXRodG9vbC4gIEluIG90aGVyIHdvcmRzOiB1Z2ggbmFzdHkgYnV0IG5lZWRlZCBwYXRjaAoKMjAwNi0wNC0yNSAxMDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBtb2RpZmllZCB2ZXJzaW9uIG9mIFsgMTQ2NjQ1MSBdIGlwQWRkcmVzcyBzaXplIHdpdGggNjRiaXQgdG8gdXNlIHNpemVvZigpIGZvciB0aGUgZGF0YXR5cGUgaW4gcXVlc3Rpb24KCjIwMDYtMDQtMjEgMDU6MzAgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBTa2lwIG1pc3NpbmcgZW50cmllcyAocmF0aGVyIHRoYW4gY3Jhc2hpbmcgb3V0IGNvbXBsZXRlbHkpCgoyMDA2LTA0LTIwIDE3OjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvOiBjb250YWluZXIuYywgc25tcHVzbS5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTA0LTIwIDE3OjEzICB0YW5kZXJzCgogICAqIE5FV1M6CgogICByZXBocmFzZWQKCjIwMDYtMDQtMjAgMTY6NTUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IGNoYW5nZXMgc2luY2UgNS4zLjAuMQoKMjAwNi0wNC0yMCAxNjoxOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTY6MDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MjcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBkYWVtb25zIGZhaWwgYWZ0ZXIgU0lHSFVQCgoyMDA2LTA0LTIwIDE1OjI0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBhZ2VudCBmYWlscyBhZnRlciBTSUdIVVAKCjIwMDYtMDQtMjAgMTU6MTUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjA5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBIVVBQUk9HKCksIEhVUEFHRU5UKCkgYW5kIEhVUFRSQVBEKCkgZm9yIHVwY29taW5nIFNJR0hVUCB0ZXN0cwoKMjAwNi0wNC0xOCAxMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBCdWcgIzE0MzIxNjU6IHR5cG9zIGluIHRoZSBmaWxlbmFtZXMKCjIwMDYtMDQtMTggMTE6MDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGJ1ZyAxNDU4Njg1OiBtYW4gcGFnZSBmb3Igc2V0YWNjZXNzIHdhcyBtaXNzaW5nIGEgdG9rZW4gaW4gdGhlIHN1bW1hcnkgbGluZQoKMjAwNi0wNC0xOCAxMDo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggYnVnIDE0NTg4MTg6IGF1dGhjb21tdW5pdHkgYW5kIGZyaWVuZHMgdXNlIC1WIG5vdCAtdiB0byBzcGVjaWZ5IGEgdmlldwoKMjAwNi0wNC0xOCAxMDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgWyAxMzQxMDk4IF0gRml4IG1pYjJjLm9sZC1hcGkuY29uZiBvaWQgc3VmZml4ZXMsIHN1ZmZpeCBsZW5ndGhzIGZyb20gbnNodWxtYW4KCjIwMDYtMDQtMTggMTA6MzIgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIFN1cHBvcnQgZnVuY3Rpb25zIGZvciBlYXNpZXIgZW1iZWRkZWQgcGVybCBpbnRlZ3JhdGlvbjogWyAxMzY5OTk2IF0gbWliIHRvIHBlcmwgc3VwcG9ydCBieSBQZXRlciBNYXJ0aW4KCjIwMDYtMDQtMTggMTA6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC8uY3ZzaWdub3JlLAogICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgbG9jYWwvbWliMmMucGVybC5jb25mOgoKICAgU3VwcG9ydCBmdW5jdGlvbnMgZm9yIGVhc2llciBlbWJlZGRlZCBwZXJsIGludGVncmF0aW9uOiBbIDEzNjk5OTYgXSBtaWIgdG8gcGVybCBzdXBwb3J0IGJ5IFBldGVyIE1hcnRpbgoKMjAwNi0wNC0xOCAxMDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgWyAxNDY1NDg1IF0gbmV0c25tcF9jb25maWdfcmVtZW1iZXJfZnJlZV9saXN0IG1lbSBsZWFrIGZyb20gUm9iZXJ0IFdpbGNveAoKMjAwNi0wNC0xOCAwNjo1OCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQLUZPUldBUkQtTUlCLnR4dCwgSVAtTUlCLnR4dCwgcmZjbGlzdAo6CgogICB1cGRhdGUgZnJvbSBuZXdseSBwdWJsaXNoZWQgUkZDcwoKMjAwNi0wNC0xMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgWyAxMzY0MjQ4IF0gQWRkIG5ldC1zbm1wLWNvbmZpZyAtLWNvbXBpbGUtc3ViYWdlbnQgcGFyYW1ldGVyczogZ2VuZXJhbCByZXdvcmsgb2YgdGhlIG1haW4gd3JhcHBlciBmb3IgYXV0by1zdWJhZ2VudHMgZnJvbSBtYWdmcgoKMjAwNi0wNC0xMyAxMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBbIDEzNzE3NzggXSBkaXNrSU9UYWJsZSBjb250YWlucyBpbnZhbGlkIGRhdGEgZm9yIHNvbWUgZGV2aWNlcyBvbiBMaW51eAoKMjAwNi0wNC0xMyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBbIDEzODYyNjQgXSA1LjIuMiAtIGZpeCBMaW51eCBDUFUgY291bnRlcnMgb24gU01QIG1hY2hpbmVzCgoyMDA2LTA0LTEyIDEyOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggcGFyc2luZyBvZiBhZGRyZXNzZXMgdGhhdCBJIGJyb2tlIHdoZW4gaW1wbGVtZW50aW5nIHBhcnNpbmcgb2YgZml4ZWQtd2lkdGggc3RyaW5ncwoKMjAwNi0wNC0xMiAxMDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggYSBidWcgcmVwb3J0ZWQgaW4gMTExODgxNCB3aGVyZSBpbml0IGxlbmd0aCB3YXNuJ3QgZ2V0dGluZyBpbml0aWFsaXplZCBwcm9wZXJseQoKMjAwNi0wNC0xMiAwOTo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4ZXMgZm9yIGZpeGVkIGxlbmd0aCBzdHJpbmcgcGFyc2luZwoKMjAwNi0wNC0xMiAwOToyMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA2LTA0LTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXhlZCBsZW5ndGggc3RyaW5nIHBhcnNpbmcKCjIwMDYtMDQtMTEgMDQ6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQnVpbGQgZml4IGZvciAiY29uZmlndXJlIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1DYWxsYmFjayIgKGZpeGVzIGZpcnN0IHBhcnQKICAgb2YgYnVnIDE0Njc3MjQpLgogICBXaHkgZG8gdGVzdHMgMjEtMjUgYW5kIDM0LTM1IChhbGwgaW52b2x2aW5nIHNubXB0cmFwZCkgZmFpbCBpbiA1LjMrICh1bmxpa2UKICAgNS4yLngpIGlmIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgaXNuJ3QgYXZhaWxhYmxlPwoKMjAwNi0wNC0xMCAwNzoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBbIDEzNjQ2NDggXSBGaXggc2VnZmF1bHQgb24gcGVybCBhc3luYyBidWxrd2FsayBmcm9tIE9sZSBCam9ybgoKMjAwNi0wNC0xMCAwNzoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgWyAxNDE1NTg2IF0gNS4zLjAuMSBob3N0L2hyX3N3cnVuLmMgcGF0Y2hlcyBmb3IgQUlYIDQsMy81LjIgZnJvbSBKb2UgQnVlaGxlcgoKMjAwNi0wNC0wOSAyMTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBtaWJJSS9pZlRhYmxlLmgKOgoKICAgWyAxNDI3NzkzIF0gaWYoWClUYWJsZSBpbXBsZW1lbnRhdGlvbiBmb3IgT3BlbkJTRCAzLnggZnJvbSBOb3J0aHRyb04KCjIwMDYtMDQtMDkgMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFsgMTQyOTQ1NSBdIGVuZGxlc3MgbG9vcCwgdGFibGVfaXRlcmF0b3IsIDUuMyBmcm9tIEtyaXMgKHRpbmtlcjEwNSkKCjIwMDYtMDQtMDkgMjE6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jOgoKICAgWyAxNDYwMDgyIF0gW1BBVENIXTogRml4IGV4dGVybmFsIGZkIGhhbmRsaW5nIChhbm9uKQoKMjAwNi0wMy0yNyAxNjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIHJlbW92ZSAodXNlZnVsKSAiLUNwIC1DdCIgc3RkZXJyIG91dHB1dCBzaW5jZSBpdCBoYXMgYmVlbiBzZWVuIHRvIGludGVyZmVyZSB3aXRoIHRoZSBzdGRvdXQgbWVzc2FnZXMgdG8gYmUgY2hlY2tlZAoKMjAwNi0wMy0yNCAwODo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBSZWNvZ25pc2UgZmFpbGVkL2R1cGxpY2F0ZSByZWdpc3RyYXRpb25zLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MKCjIwMDYtMDMtMjQgMDg6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgRG9uJ3QgY2hva2Ugb24gU05NUHYyIGV4Y2VwdGlvbnMKICAgKFN0aWxsIG5lZWQgdG8gaGFuZGxlIFNOTVB2MSBlcnJvcnMpCiAgIEZpeCBhIGNvdXBsZSBvZiBtaW5vciBvdXRwdXQgdHlwb3MuCgoyMDA2LTAzLTIzIDE2OjAwICB0YW5kZXJzCgogICAqIG1hbi9taWIyYy5jb25mLjUuaW46CgogICBGaXggc2VjdGlvbiBvZiBtaWIyYy5jb25mLjUgKERlYmlhbiBwYXRjaCAjMTYgZnJvbSA1LjIuMi0zKQoKMjAwNi0wMy0yMyAxMToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgUGF0Y2ggZnJvbSBkYXJpeCB0byBvcHRpb25hbGx5IHR1cm4gb2ZmIGNvbm5lY3Rpb24gbG9nZ2luZyBmb3IgdGNwX3dyYXBwZXJzCgoyMDA2LTAzLTE2IDAxOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFJvb3Qgc2Vjb25kIG91dHB1dCB0YWJsZSBjb3JyZWN0bHkKCjIwMDYtMDMtMTYgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBDb3JyZWN0IGxvZ2ljIG9mIHN0YXJ0dXAgdGVzdHMKCjIwMDYtMDMtMTUgMDg6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRml4IFNDX0FJTkZPIHN3YXBjdGwoKSBjYWxsLgoKMjAwNi0wMy0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBSZWNvZ25pc2UgYnVpbHQtaW4gdmVyc3VzIGNvbmZpZy1kZWZpbmVkIG5vdGlmaWNhdGlvbnMsCiAgIGFuZCBzZXQgb3duZXIgYWNjb3JkaW5nbHkuCgoyMDA2LTAzLTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGRvbid0IHVzZSBwZXJmZWN0bHkgbGVnYWwgcGVybCBzdHJ1Y3R1cmVzIGluIEMgY29kZQoKMjAwNi0wMy0wOSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggdHlwb3MKCjIwMDYtMDMtMDkgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIGZpeCBzY2hlZHVsZSB0eXBvCgoyMDA2LTAzLTA5IDE0OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmcmVlIG1hbGxvYyBpbiBlcnJvciBjb25kaXRpb24gd2hlbiBkZWNvZGUgZnVuY3Rpb24gbm90IHNwZWNpZmllZAoKMjAwNi0wMy0wOSAxMzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXB2My5jOgoKICAgZW5zdXJlIHRoYXQgaWYgb3AgPT0gcmVjZWl2ZWQgbWVzc2FnZSB0aGF0IHdlIGhhdmUgYSBQRFUgdG9vIChhbHdheXMgd2lsbCBiZSB0aGUgY2FzZSkKCjIwMDYtMDMtMDkgMTM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbnQgZGVsdmUgaW50byBmdXR1cmUgaWYgc3RhdGVtZW50IHdoZW4gc2Vzc2lvbiBmYWlscyB0byBwcm9iZQoKMjAwNi0wMy0wOSAxMzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZnJlZSBhIHBkdSBvbiB0aGUgZXJyb3IgY2FzZSBvZiBubyBzZXNzaW9uLi4uCgoyMDA2LTAzLTA5IDEzOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIHJldmVyc2UgYSBwYXRjaCB0aGF0IHdhcyB0cnlpbmcgdG8gZnJlZSBhbiBhcnJheQoKMjAwNi0wMy0wOSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGNvdmVyaXR5IDc1OiBlbnN1cmUgZnJlZSBpbiByYXJlIGNhc2Ugd2hlcmUgb3RoZXIgc2lkZSBvZiB0cmFuc3BvcnQgbm90IGZvdW5kIChzaG91bGRuJ3QgZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA5IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWlzYyBlcnJvciBjaGVja2luZyAodW5uZWVkZWQgYnkgb3RoZXIgbG9naWMsIGJ1dC4uLiAgd2h5IG5vdCkKCjIwMDYtMDMtMDkgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgY292ZXJpdHkgMzQ6IGNoZWNrIHRoYXQgdXNtIHdhc24ndCBhY3R1YWxseSBpbGxlZ2FsbHkgcGFzc2VkIGEgbnVsbCBzZXNzaW9uIChzaG91bGQgaGF2ZSBiZWVuIHN0b3BwZWQgbG9uZyBiZWZvcmUgbm93KQoKMjAwNi0wMy0wOSAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBjb3Zlcml0eSBtdWx0aXBsZTogY2hlY2sgYSBmZXcgcG9pbnRlcnMgZm9yIG51bGwgcmVmcyBqdXN0IGluIGNhc2UKCjIwMDYtMDMtMDkgMTI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0ZXh0X3V0aWxzLmMsIHZhY20uYzoKCiAgIGNvdmVyaXR5IDc5OiBmcmVlIG1lbW9yeSBpbiBlcnJvciBjb25kaXRpb24gc3BvdHMKCjIwMDYtMDMtMDkgMTI6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgYWxsb3cgZm9yIHF1ZXN0aW9uYWJseSBsZWdhbCBudWxsIGNvbW11bml0eSBzdHJpbmdzCgoyMDA2LTAzLTA5IDEyOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb3Zlcml0eSA2MTogY2hlY2sgcmV0dXJuIHZhbHVlIGZyb20gaW4gdHJlZSB0byBlbnN1cmUgaXQncyBub3QgbmVnYXRpdmUKCjIwMDYtMDMtMDkgMTI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGNvdmVyaXR5IDgwOiBmcmVlIHZibGlzdCBpbiBzb21lIGZhaWx1cmUgY2FzZXMKCjIwMDYtMDMtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYzoKCiAgIGNvdmVyaXR5IDgzOiBmcmVlIG1lbSBvbiBzaG91bGQtbmV2ZXItZ2V0LWhlcmUgc3BvdAoKMjAwNi0wMy0wOSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgZnJlZSBtZW1vcnkgb24gb3RoZXIgbWFsbG9jIGZhaWx1cmVzCgoyMDA2LTAzLTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgbW9yZSBjb21tYW5kIGxpbmUgZmxhZ3MgZm9yIGZhc3RlciBwYXRjaCBhcHBsaWNhdGlvbgoKMjAwNi0wMy0wOSAxMDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgY2hlY2sgZm9yIG51bGwgb3duZXIgaW4gMiBvdGhlciBzcG90cwoKMjAwNi0wMy0wOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTcvNDg6IGZyZWUgbG9zdCBtZW1vcnkgb24gaWxsZWdhbCB0YWJsZTsgY2hlY2sgZm9yIG51bGwgdGhhdCBzaG91bGRuJ3QgZXZlciBiZQoKMjAwNi0wMy0wOSAxMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTY6IGZpeCBwb3RlbnRpYWwgbGVhayB3aGVuIG1hbGxvYyBmYWlscwoKMjAwNi0wMy0wOSAxMDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgZnJlZSBhIGhhbmRsZXIgaWYgYSBzdWJzZXF1ZW5jZSBtYWxsb2MgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGNvdmVyaXR5IDk4LTEwMDogZnJlZSBzdWNjZXNzIG1hbGxvY3Mgd2hlbiBvbmUgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgY292ZXJpdHkgMTAyLzEwMTogaW4gY2FzZSBvZiBtYWxsb2MgZmFpbHVyZXMgZnJlZSB3aGF0IHlvdSBoYXZlIHN1Y2NlZWQgaW4gbWFsbG9jaW5nCgoyMDA2LTAzLTA5IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbmV2ZXItc2hvdWxkLWJlLW51bGwgY29uZGl0aW9ucyBhcmUgdHJ1ZQoKMjAwNi0wMy0wOSAwOTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBjb3Zlcml0eSA5MTogZnJlZSB2YXJpb3VzIG1lbW9yeSBhbGxvY2F0aW9ucyB3aGVuIHN1YnNlcXVlbnQgYWxsb2NhdGlvbnMgZmFpbAoKMjAwNi0wMy0wOSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGNvdmVyaXR5ICM0MTogbm90IGxpa2VseSBhIHJlYWwgbnVsbCBkZXJlZiBmb3IgdmFsaWQgdXNlIGNhc2VzOyBjYXNlcy4gIGRvdWJsZSBjaGVjayBmb3IgaXNzdWVzIGFueXdheQoKMjAwNi0wMy0wOSAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBGdWxsZXIgaW1wbGVtZW50YXRpb24gb2YgbWVtb3J5IEhBTCBmb3IgU29sYXJpcyAoMTAgYXQgbGVhc3QpCgoyMDA2LTAzLTA5IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGNvdmVyaXR5IDUwOiBkb3VibGUgY2hlY2sgd2UgY291bGQgZmluZCB0aGUgZXh0ZW5zaW9uIHRvIHJlbW92ZQoKMjAwNi0wMy0wOSAwODozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBjb3Zlcml0eSA1MTogZG91YmxlIGNoZWNrIHdlIGNvdWxkIGZpbmQgdGhlIGV4dGVuc2lvbiB0byByZW1vdmUKCjIwMDYtMDMtMDkgMDg6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgZW5zdXJlIGlsbGVnYWwgY29uZmlndXJhdGlvbiBvZiB0b28gbG9uZyBPSURzIGRvZXNuJ3Qgb2NjdXIKCjIwMDYtMDMtMDkgMDg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBjb3Zlcml0eSA2NjogY2hlY2sgdGhhdCBudWxsIGlzbid0IHdyaXR0ZW4gYmV5b25kIGVuZAoKMjAwNi0wMy0wOSAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgY292ZXJpdHkgNjc6IGVuc3VyZSB3ZSBkb24ndCB3cml0ZSB0aGUgbnVsbCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyCgoyMDA2LTAzLTA5IDA4OjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYSBzY3JpcHQgdG8gaGVscCBhdXRvbWF0dGVkIHBhdGNoIG1hbmFnZW1lbnQgYW5kIGFwcGx5IHBhdGNoZXMgdG8gbXVsdGlwbGUgYnJhY2hlcyBvZiB0aGUgbmV0LXNubXAgdHJlZQoKMjAwNi0wMy0wOSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBjb3Zlcml0eSA5MjogZnJlZSBkYXRhIHN0cnVjdHVyZSBpbiBldmVudCBzb21laG93IGFuIHVuc3VwcG9ydGVkIGRhdGEgdHlwZSBpcyBwYXNzZWQgaW4gKGNhbid0IGFjdHVhbGx5IGhhcHBlbiB3aXRoIGN1cnJlbnQgY29kZSkKCjIwMDYtMDMtMDkgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgY292ZXJpdHkgOTM6IGZyZWUgcG9pbnRlcnMgd2hlcmUgbWFsbG9jIHN1Y2NlZWRlZCBpZiBpdCBzdWRkZW5seSBzdG9wcGVkIHN1Y2NlZWRpbmcKCjIwMDYtMDMtMDkgMDc6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICB0eXBvCgoyMDA2LTAzLTA5IDA3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgY292ZXJpdHkgIzEwNTogZnJlZSBzdG9yYWdlIGluIGVycm9yIGxvb3AKCjIwMDYtMDMtMDggMjE6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGNvdmVyaXR5IDUyOiByYXJlIChuZXZlcikgZGVyZWZlcmVuY2UgaW4gaWxsZWdhbCBjb2RlIGNhc2VzLgoKMjAwNi0wMy0wOCAyMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAxMDY6IHJhcmUgbWVtb3J5IGxlYWsgb24gaWxsZWdhbCBhZ2VudHggcGR1J3MgYmVpbmcgcGFzc2VkIHRvIHRoZSBjbGllbnQKCjIwMDYtMDMtMDggMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGNvdmVyaXR5IDExMjogY2xvc2UgZmlsZSBoYW5kbGUgZm9yIC9wcm9jL25ldC9hcnAKCjIwMDYtMDMtMDggMjE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgY292ZXJpdHkgYnVnICMxMTM6IGZjbG9zZSBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBpbiBlcnJvciBsb29wCgoyMDA2LTAzLTA4IDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBjb3Zlcml0eSBidWcgIzUzOiBjaGVjayB0aGF0IGNsb3NlX2FnZW50eF9zZXNzaW9uIHdhc24ndCBwYXNzZWQgYSBOVUxMIHNlc3Npb24KCjIwMDYtMDMtMDggMTY6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGNvdmVyaXR5ICMxMDc6IGZpeCByYXJlIHBkdSBtZW1vcnkgbGVhayB3aGVuIGZ1bmN0aW9uIGNhbGxlZCBpbGxlZ2FseQoKMjAwNi0wMy0wOCAxNjowMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgKmF0IGxlYXN0KiBpc3N1ZSBhIFdBUk5JTkcgaWYgd2UnbGwgY3JlYXRlIG5vbi1wb3J0YWJsZSB0YXIgYXJjaGl2ZXMganVzdCBiZWNhdXNlIHRoZSByZWxlYXNlIG1hbmFnZXIgZmFpbGVkIHRvIGluc3RhbGwgc3Rhci4KCjIwMDYtMDMtMDggMTU6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA4OiBzdGlsbCBzaG91bGQgZnJlZSBtZW1vcnkgaW4gdGhlIG5ldmVyLXNob3VsZC1oYXBwZW4gY2FzZQoKMjAwNi0wMy0wOCAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBjb3Zlcml0eSAjMTA5OiBjbG9zZSBmaWxlIHBvaW50ZXIgaW4gZXJyb3IgY29uZHRpb25zIHRvIGF2b2lkIHBvdGVudGlhbCByYXJlIGxlYWtzCgoyMDA2LTAzLTA4IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY292ZXJpdHkgYnVnIDg1LCByMTU6IGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKCjIwMDYtMDMtMDggMTQ6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAtIGNvdmVyaXR5IGJ1ZyA0MCwgcnVuIDE1OiBmaXggcG90ZW50aWFsIG51bGwgZGVyZWZlcmVuY2UKICAgLSBtaXNjIG90aGVyIGNsZWFudXAvZXJyb3IgaGFuZGxpbmcKICAgICAtIHJlbGVhc2UgbWVtb3J5IHRoYXQgd29uJ3QgYmUgdXNlZCBiZWZvcmUgcmV0dXJuaW5nIGVycm9ycwogICAgIC0gY2hlY2sgZm9yIHBvdGVudGlhbCBudWxsIHJldHVybiBmcm9tIGZ1bmN0aW9uCiAgICAgLSBhc3NpZ24gdmFsdWVzIHRvIGNvcnJlY3QgdmFyaWFibGUKCjIwMDYtMDMtMDggMTQ6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMjk6IGNoZWNrIHNlc3Npb24gb3BlbiByZXN1bHRzIHdoZW4gZm9yd2FyZGluZyBhbmQgYmFpbCBpZiBmYWlsZWQgdG8gb3BlbgoKMjAwNi0wMy0wOCAxNDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIGNoZWNrIGZvciBudWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDA2LTAzLTA4IDE0OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNTogY2hlY2sgZm9yIG1hbGxvYyBmYWlsdXJlIGJlZm9yZSB1c2luZyB0aGUgcmVzdWx0cwoKMjAwNi0wMy0wOCAxMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNjogY2hlY2sgKGFueXdheSkgZm9yIG51bGwgaW4gdmFyaWFibGVzIHRoYXQgc2hvdWxkIG5ldmVyIGJlIG51bGwKCjIwMDYtMDMtMDggMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTE3OiBkb3VibGUgY2hlY2sgdGhhdCBwb2ludGVyIGlzbid0IG51bGwgZm9yIHNhZmUgcHJvZ3JhbW1pbmcgKHNob3VsZCBuZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA4IDEzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzExODogZG91YmxlIGNoZWNrIHRoYXQgcG9pbnRlciBpc24ndCBudWxsIGZvciBzYWZlIHByb2dyYW1taW5nIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOCAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIwOiBhdm9pZCBhIHBvc3NpYmxlIGRlZmVyZW5jZSB0byBhIGZyZWVkIHZhcmlhYmxlCgoyMDA2LTAzLTA4IDEzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBjb3Zlcml0eSBidWcgIzEyMjogcmV0dXJuIE5VTEwgYWZ0ZXIgZmFpbGluZyB0byBvcGVuIHRyYW5zcG9ydC4KCjIwMDYtMDMtMDggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIzOiBhdm9pZCBkb3VibGUgZnJlZSBmb3IgbG9uZyBPSUQgY2FzZXMgZHVyaW5nIGdldG5leHQKCjIwMDYtMDMtMDggMTA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hlY2sgZm9yIHN0YXIgYmVmb3JlIHVzaW5nCgoyMDA2LTAzLTA4IDEwOjQ4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHVzZSBzdGFyIGlmIGF2YWlsYWJsZQoKMjAwNi0wMy0wOCAwNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBhIHZlcnkgcmFyZSBvaWQgcGFyc2luZyBidWcgZm9yIHN0cmluZ3MgaW4gdHJ1bmNhdGVkIE9JRHMKCjIwMDYtMDMtMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfd2luLmM6CgogICBXaW5kb3dzIHZlcnNpb24gb2YgbWVtb3J5IEhBTCBpbnRlcmZhY2UKCjIwMDYtMDMtMDggMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRXh0cmEgcHJvdGVjdGlvbiB3aGVuIGNvbXBpbGluZyB1bmRlciBXaW5kb3dzCgoyMDA2LTAzLTA3IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA0OiByYXJlIGNhc2UgbWVtb3J5IGxlYWsgaWYgeW91J3JlIG91dCBvZiBtZW1vcnkgaW4gdGhlIGZpcnN0IHBsYWNlCgoyMDA2LTAzLTA3IDIyOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGNvdmVyaXR5IGJ1Z3MgIzExOSBpbml0aWFsaXplIDIgcG9pbnRlcnMgdG8gMAoKMjAwNi0wMy0wNyAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBjb3Zlcml0eSBidWcgIzEzMjogZnJlZSB2YXJpb3VzIHBvaW50ZXJzIGluIGVycm9yIGxvb3BzCgoyMDA2LTAzLTA3IDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTMzOiBmcmVlIGtleSBhZnRlciBtYWxsb2MgaW4gZXhpdCBsb29wIGFmdGVyIG9wZW5zc2wgZmFpbGVkCgoyMDA2LTAzLTA3IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBjb3Zlcml0eSBidWcgIzEzNDogZnJlZSBuZXdwZHUgZHVyaW5nIGEgdmFjbS1ub3QtY29uZmlndXJlZCBiYWlsLW91dAoKMjAwNi0wMy0wNiAwODoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFVwZGF0ZSBNZW1vcnkgSEFMIGZyYW1ld29yayB0byBzdXBwb3J0IEhvc3RSZXMgc3RvcmFnZQogICBpbmZvcm1hdGlvbiwgYW5kIHR3ZWFrIGhyU3RvcmFnZVRhYmxlIGltcGxlbWVudGF0aW9uIHRvIHVzZSBpdC4KICAgVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgb24ge0ZyZWUsTmV0LE9wZW59QlNELCBMaW51eCBhbmQgSFAtVVguCiAgIEl0J3MgcHJvYmFibHkgc3RpbGwgYnJva2VuIG9uIEFJWCwgRGFyd2luLCBEeW5peCBhbmQgU29sYXJpcwogICAoYW5kIGFueSBzeXN0ZW0gbm90IGV4cGxpY2l0bHkgbWVudGlvbmVkPykKCjIwMDYtMDMtMDYgMDM6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgRml4IHJldHJpZXZhbCBvZiBmaWxlc3lzdGVtIGluZm9ybWF0aW9uIG9uIE5ldEJTRAoKMjAwNi0wMy0wNiAwMzozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFN1cHBvcnQgVUNEIG1lbW9yeS9jcHUgTUlCcyBvbiBPcGVuQlNEIDMueAoKMjAwNi0wMi0yNyAwNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFR3ZWFrIFVDRCBtZW1vcnkgY29uZmlndXJlIHByb2Nlc3NpbmcgdG8gd29yayB3aXRoIHRoZSBtb3N0IHJlY2VudAogICBPcGVuQlNEIGFuZCBOZXRCU0QgcmVsZWFzZXMsIGFuZCB0byB1c2UgdGhlIG1lbW9yeSBIQUwKCjIwMDYtMDItMjcgMDQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVHdlYWsgbWVtb3J5IEhBTCBjb25maWd1cmUgcHJvY2Vzc2luZyB0byB3b3JrIHdpdGggdGhlIG1vc3QgcmVjZW50CiAgIE9wZW5CU0QgYW5kIE5ldEJTRCByZWxlYXNlcwoKMjAwNi0wMi0yNyAwNDoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LzogbWVtb3J5X2ZyZWVic2QuYywKICAgICBtZW1vcnlfbmV0YnNkLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCBtZW1vcnkgSEFMIGNvZGUgb24gKkJTRCBzeXN0ZW1zCgoyMDA2LTAyLTI3IDA0OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jLCBtZW1vcnkuaDoKCiAgIFVwZGF0ZSBVQ0QgbWVtb3J5IGdyb3VwIHRvIG1ha2UgcHJvcGVyIHVzZSBvZiBtZW1vcnkgSEFMIHJvdXRpbmVzCgoyMDA2LTAyLTI3IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVXBkYXRlIGRlZmluaXRpb25zIHRvIG1hdGNoIG5ldyBtZW1vcnkgSEFMIGNvZGUKCjIwMDYtMDItMjQgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5Lmg6CgogICBVc2UgbWVtb3J5IEhBTCBmb3IgdGhlIFVDRCBtZW1vcnkgZ3JvdXAgKGFsbCBhcmNoaXRlY3R1cmVzKS4KICAgVGhpcyB3aWxsIHByb2JhYmx5IGJyZWFrIHRoZSBhZ2VudCBvbiBhbGwgYmFyIExpbnV4IHN5c3RlbXMKICAgYW5kIG1ha2UgZXZlcnlvbmUgKGluY2x1ZGluZyBUaG9tYXMpIHVuaGFwcHkuCiAgIFNvIHRoZSBjeWNsZSBvZiBsaWZlIGNvbnRpbnVlcy4gIE9oIEZvcnR1bmEuLi4uCgoyMDA2LTAyLTI0IDA4OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IG1lbW9yeS5oLCBtZW1vcnkvbWVtb3J5X2FpeC5jCiwgbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywgbWVtb3J5L21lbW9yeV9keW5peC5jLAogICAgIG1lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCBtZW1vcnkvbWVtb3J5X2hwdXguYywKICAgICBtZW1vcnkvbWVtb3J5X2xpbnV4LmMsIG1lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBFeHRlbmQgbWVtb3J5IEhBTCB0byBjb3ZlciBhbGwgKHdlbGwsIG1vc3QpIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgogICBOb3QgeWV0IHRlc3RlZCBvbiBtb3N0IG9mIHRoZXNlIHN5c3RlbXMsIHNvIHRoZXJlIG1heSBlYXNpbHkgYmUgcHJvYmxlbXMuCiAgIEJ1dCBhdCBsZWFzdCB0aGlzIHNob3VsZCBzZXJ2ZSB0byBrZWVwIFRob21hcyBoYXBweS4uLi4KCjIwMDYtMDItMjIgMDg6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByLzogZXhwRXJyb3JUYWJsZS5jLAogICAgIGV4cEV4cHJlc3Npb24uYywgZXhwRXhwcmVzc2lvbi5oLCBleHBFeHByZXNzaW9uQ29uZi5jCiwgZXhwRXhwcmVzc2lvbkNvbmYuaCwgZXhwRXhwcmVzc2lvblRhYmxlLmMsCiAgICAgZXhwT2JqZWN0LmMsIGV4cFZhbHVlLmMsIGV4cFZhbHVlLmgsCiAgICAgZXhwVmFsdWVUYWJsZS5jLCBleHBfZW51bS5oOgoKICAgSW1wcm92ZWQgZXhwcmVzc2lvbiBwYXJzaW5nLCBhbmQgcHJlbGltaW5hcnkgZXZhbHVhdGlvbiBvZiBleHByZXNzaW9ucy4KCjIwMDYtMDItMjAgMTU6NDQgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBSZW1vdmUgaGlzdG9yaWMgcmVmZXJlbmNlcyB0byB0YXIgcHJvYmxlbXMgKGF0IGV2ZW4gbW9yZSBwbGFjZXMpCgoyMDA2LTAyLTIwIDE1OjM4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgUmVtb3ZlIGhpc3RvcmljIHBhcmFncmFwaCBvbiB0YXIgcHJvYmxlbXM6LSkKCjIwMDYtMDItMjAgMTU6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIChmdXJ0aGVyKSBjbGFyaWZ5IHRoZSBvcmlnaW5hbCBHTlUgdGFyIHByb2JsZW1zCgoyMDA2LTAyLTIwIDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIHN0YXIgaW5zdGVhZCBvZiB0YXIgZm9yIGNyZWF0aW5nIGFyY2hpdmVzIHRvIGdldCBhcm91bmQgZ251IHRhciBpbmNvbXBhdGliaWxpdGllcwoKMjAwNi0wMi0xNyAwNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC1maXggYnVnIDEzOTk0MjE6IDUuMis6IHR1bm5lbCBtaWIgZmFpbHMgdG8gYnVpbGQgdy8gaWYtbWliIHJld3JpdGUKCjIwMDYtMDItMTYgMTU6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCBUMDQ5c25tcHYzaW5mb3JtCiwgVDA0OXNubXB2M2luZm9ybWF1dGgsIFQwNDlzbm1wdjNpbmZvcm1wcml2LAogICAgIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDU3dHJhcGRhdXRodGVzdCwKICAgICBUMDU3dHJhcGRhdXRodGVzdDIsIFQwNTd0cmFwZGF1dGh0ZXN0MywKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgYWRkICItdCAkU05NUF9TTEVFUCIgdG8gc25tcGluZm9ybSBpbiBvcmRlciB0byBhdm9pZCB0ZXN0IGZhaWx1cmVzIG9uIHNsb3cgbWFjaGluZXMgZXZlbiB3aXRoIGFuIGluY3JlYXNlZCBTTk1QX1NMRUVQIChmaXhlcyBidWcgMTQwMzY4OCkKCjIwMDYtMDItMTUgMTY6MjcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDE2OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDQ5c25tcHYzaW5mb3JtYXV0aAosIFQwNDlzbm1wdjNpbmZvcm1wcml2LCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIFQwNTd0cmFwZGF1dGh0ZXN0LCBUMDU3dHJhcGRhdXRodGVzdDIsCiAgICAgVDA1N3RyYXBkYXV0aHRlc3QzLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDEwOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGdldHRhYmxlOiAgZml4IHJlcGVhdCBjb3VudCBmb3IgU05NUHYxICYgZml4IC1jb2x1bW5zIHRvIGFjdHVhbGx5IHdvcmsKCjIwMDYtMDItMTQgMDY6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBSZWdpc3RlciBpZk51bWJlciBhcyBhIHNjYWxhciBvYmplY3QsIG5vdCBhbiBpbnN0YW5jZSwgc28gdGhhdAogICBpdCBoYW5kbGVzIGludmFsaWQgaW5zdGFuY2VzIHByb3Blcmx5LCBhbmQgZml4IE9JRCByZWdpc3RyYXRpb24uCgoyMDA2LTAyLTEzIDE3OjQyICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIFBTREsgZG93bmxvYWQgaW5zdHJ1Y3Rpb25zLgoKMjAwNi0wMi0xMyAxNTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBmaXggYnVnIDEzOTkzNjk6IGlmTnVtYmVyIGJyb2tlbgoKMjAwNi0wMi0xMyAxMDo0OSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgYWRkIDUuMy4wLjEgc2VjdXJpdHkgZml4IGFuZCBzbXV4IHRyYXAgcGF0Y2gKCjIwMDYtMDItMTMgMTA6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBmaXggdHJhcCBwcm9jZXNzaW5nIGZyb20gU01VWCBwZWVycyAocGF0Y2ggMTQzMDgyNCBmcm9tIERlbGwsIHN1Ym1pdHRlZCBieSBTdVNFKQoKMjAwNi0wMi0xMyAwNzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaW5jcmVhc2UgbnVtYmVyIG9mIHJldHJpZXMgZm9yIHBvcnQgcHJvYmluZyB0byBsb3dlciB0aGUgY2hhbmNlIGZvciBzcHVyaW91cyB0ZXN0IGZhaWx1cmVzCgoyMDA2LTAyLTExIDE1OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIHNldCBwZXJzaXN0ZW50RGlyIGZvciBzbm1wdHJhcGQgaW4gb3JkZXIgdG8gYXZvaWQgYmVpbmcgaW52YXNpdmUgKHNlZSBidWdzIDE0MDM2ODgsIDE0MjQyOTMpCgoyMDA2LTAyLTEwIDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgICAgaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhIHRhbmdsZWQgd2ViIG9mIGZpeGVzIGZvciBvdmVycmlkZQogICAgIC0gYmFjayBvdXQgZml4IGZvciA3MTE0NjU6IG92ZXJyaWRlIGRpcmVjdGl2ZSBpZ25vcmVkIHdpdGggc25tcGJ1bGtnZXQKICAgICAtIGFwcGx5IG5ldyBmaXhlcyBmb3IgNzExNDY1IChzZWUgYnVnIHJlcG9ydCBmb3IgZ29yeSBkZXRhaWxzKQogICAgIC0gYWxzbyBmaXggb3ZlcnJpZGUgb2YgdGFibGUgaW5zdGFuY2UsIHJlcG9ydGVkIG9uIGNvZGVycwogICAtIGFuZCwgcXVvdGluZyBEYXZlOgoKICAgSSdtIG5vdCBhdCBhbGwgc3VyZSB0aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgdGhlIGNvcnJlY3QgZml4LCBidXQKICAgaXQgd2Fzbid0IHZlcnkgY2xlYXIgYXMgdG8gZXhhY3RseSB3aGF0IGlzIGJlaW5nIGhhbmRsZWQgaGVyZS4KICAgVGhpcyBjaGFuZ2UgY2VydGFpbmx5IGFkZHJlc3NlcyB0aGUgYWJvdmUgYnVnIHJlcG9ydCwgd2l0aG91dAogICBzZWVtaW5nIHRvIGJyZWFrIGFueXRoaW5nIGVsc2UuCgogICBMZXQncyBnaXZlIHRoaXMgcGF0Y2ggdGltZSB0byBzZXR0bGUgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCBjb2RlLAogICBhbmQgdGhlbiBjb25zaWRlciBiYWNrLXBvcnRpbmcgaXQgdG8gZWFybGllciBsaW5lcy4uLi4uCgoyMDA2LTAyLTA2IDE1OjM2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIGNoZWNrcyBmb3IgInN0cnVjdCBubGlzdDY0Iiwgb2ZmNjRfdCBhbmQgbHNlZWs2NCAoZm9yIElSSVggYW5kIGZyaWVuZHMpCgoyMDA2LTAyLTA0IDE0OjMyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGZhaWwgIm1ha2UiIG9uIFNOTVBfRVJSX05PRVJST1IKCjIwMDYtMDItMDMgMTc6MzIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGJhY2tpbmcgb3V0IHByZXZpb3VzIHBhdGNoICh3aGljaCBicmVha3MgdGVzdCAjMjQgIlNOTVB2MyB0cmFwcyByZWNlaXZlZCBhbmQgc2VudCBieSB0b29scyIpIHVudGlsIHNvbWVvbmUgZmluZHMgdGhlIHRpbWUgdG8gcmV2aWV3IGl0IGFnYWluCgoyMDA2LTAyLTAzIDE2OjM2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBmaXggdHlwbwoKMjAwNi0wMi0wMiAxOTozMSAgYWxleF9iCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggZm9yIGJ1ZyAxNDIwNzU4LiAgTWlzc2luZyBjYWxsICh0eXBvPykgZm9yIEZEX1pFUk8oJmV4Y2VwdGZkcykuCgoyMDA2LTAyLTAyIDE0OjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gdXNlIHRyZWVfaGVhZCBpZiB0cmVlX3RvcCB3YXMgTlVMTC4gaGFuZGxlcyBib3RoIE9JRCBhbmQgbmFtZSBsb29rdXBzCgoyMDA2LTAyLTAxIDE4OjU4ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGxtU2Vuc29ycy5jLCBsbVNlbnNvcnMuaDoKCiAgIGluY29ycG9yYXRlIG1ham9yIHBhdGNoZXMgYnkgTWlrZSBGaXNoZXIgYW5kIFRvbSBFLiBMYWNrbGV5CgoyMDA2LTAyLTAxIDA5OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcmV2ZXJ0IGNoYW5nZXMgZnJvbSB2ZXJzaW9uIDUuODgsIHdoaWNoIGJyb2tlIHBhcnNpbmcgZnVsbHkgcXVhbGlmaWVkCiAgICAgbmFtZWQgT0lEcyAoZWcgLmlzby5vcmcpLiBBbm90aGVyIGZpeCBmb3IgcGFyc2luZyBudW1lcmljIE9JRHMgYmVmb3JlCiAgICAgTUlCIGZpbGVzIGFyZSBsb2FkZWQgbmVlZHMgdG8gYmUgaW52ZXN0aWdhdGVkLgoKMjAwNi0wMS0zMSAxMDozMSAgdGFuZGVycwoKICAgKiBtYW4vOiBtaWIyYy5leHRyYWN0LnBsLCBzbm1wbmV0c3RhdC4xLmRlZjoKCiAgIGZpeCBtYW51YWwgcGFnZSBmb3JtYXR0aW5nIGVycm9ycyAoRGViaWFuIHBhdGNoICMxNywgb3JpZ2luYWwgYXV0aG9yIE5pY29sYXMgRnJhbmNvaXMpCgoyMDA2LTAxLTMxIDA5OjI3ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRml4IEJlZ2luIHNvdXJjZSAvIGVuZCBzb3VyY2UgbGluZXMuICBCdWcgMTQwNDQwMi4KCjIwMDYtMDEtMzEgMDQ6NTEgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jCjoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMxIDA0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgICAgc25tcFVEUERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgICAgdG9vbHMuYzoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMwIDA0OjA3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc25tcHYzLmM6CgogICBGaXggYXNzb3J0ZWQgdW5zaWduZWQgY29tcGFyaXNvbnMgYWdhaW5zdCAwLiAgKFNlZSBCdWcgIzEzOTc4OTEpCgoyMDA2LTAxLTMwIDAzOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDb3JyZWN0IGltcHJvcGVyIHVzZSBvZiAnbmV0c25tcF9oZXhfdG9fYmluYXJ5JwogICAoTXkgbWlzdGFrZSwgbm90IFJhZGVrJ3MpCgoyMDA2LTAxLTMwIDAzOjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBIYW5kbGUgZnVsbC1sZW5ndGggSVB2NiBhZGRyZXNzZXMuICBGaXggc3VwcGxpZWQgYnkgUmFkZWsgVm9rw6FsCgoyMDA2LTAxLTMwIDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRG9uJ3Qgc2F2ZSBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24gdW50aWwgcnVubmluZyB1c2VyL2dyb3VwIGhhdmUgYmVlbgogICByZXNldC4gIEJhc2VkIG9uIHBhdGNoICMxMzcxMDc4LgoKMjAwNi0wMS0zMCAwMTo0NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgVXBkYXRlIGhhbmRsaW5nIG9mIGVuZE9mTWliVmlldyBleGNlcHRpb25zLiAgUGF0Y2ggIzEwNDc3MDYKCjIwMDYtMDEtMzAgMDE6MzUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFN1cHBvcnQgZm9yIHJlYWRpbmcvc3RvcmluZyBJUCBhZGRyZXNzIHZhbHVlcy4gIEV4cGFuZGVkIGZyb20gcGF0Y2ggIzEwNzcwMAoKMjAwNi0wMS0zMCAwMToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRG9uJ3QgcmVsZWFzZSB0aGUgcmVzcG9uc2UgUERVIHByZW1hdHVyZWx5LCBiZWZvcmUgdHJ5aW5nIHRvCiAgIGV4dHJhY3QgT0lEcyBmcm9tIGl0LiAgUGF0Y2ggIzEyNzc1MDguCgoyMDA2LTAxLTMwIDAxOjI2ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IFBBVEggdHlwbwoKMjAwNi0wMS0yNyAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5oLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmM6CgogICBkbyB1bmRvIHJlZiBjb3VudCB2aWEgcm93cmVxX2N0eCwgbm90IGRhdGFfbGlzdAoKMjAwNi0wMS0yNyAwOToyNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvU05NUC9TTk1QLnhzCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIEhhbmRsZSBub24taW5jcmVhc2luZyBPSURzIGR1cmluZyBhIChwZXJsKSBidWxrd2Fsay4KICAgUGF0Y2ggIzEzNjQ2NTAgZnJvbSBPbGUgQmrDuHJuIEhlc3NlbgoKMjAwNi0wMS0yNyAwMzowNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgSGFuZGxlIG1pc3NpbmcgdmFsdWVzIG1vcmUgZ3JhY2VmdWxseS4KCjIwMDYtMDEtMjYgMDk6MDIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgQXBwbHkgUGF0Y2ggIzEzOTQwNjggdG8gTWZEIGdlbmVyYXRlZCB0ZW1wbGF0ZXMuCgoyMDA2LTAxLTI1IDA4OjI1ICBkdHMxMgoKICAgKiBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYwosIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMKLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYwosIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYwosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9kYXRhX2xpc3QuYwosIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2ludDY0LmMsCiAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYywKICAgICBzbm1wbGliL3Rvb2xzLmM6CgogICBDb21wcmVoZW5zaXZlIHJldmlldyBvZiBpbi1saW5lIGRvY3VtZW50YXRpb24uCiAgIEEgbW9zdCBpbXByZXNzaXZlIGVmZm9ydCBieSAgTmF6aW0gQmFpemlkICAoUGF0Y2ggIzEzOTQwNjgpCgoyMDA2LTAxLTI1IDA3OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRG9uJ3QgYmUgaW4gc3VjaCBhIHJ1c2ggdG8gcmVsZWFzZSBNSUIgcmVnaXN0cmF0aW9uIHN0cnVjdHVyZS4KICAgU2VlIFBhdGNoICMxMzg2NTI4CgoyMDA2LTAxLTI1IDA3OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQWRkaXRpb25hbCBkZWJ1Z2dpbmcgaW5mbwoKMjAwNi0wMS0yNCAwODoyMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVsZWFzZSBtZW1vcnkgYmVmb3JlIHJlLWFsbG9jYXRpbmcgaXQuICBTZWUgUGF0Y2ggIzE0MDcxNzMKCjIwMDYtMDEtMjQgMDg6MDIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgSW1wcm92ZWQvZml4ZWQgcGVybCB3YXJuaW5ncy4gIFNlZSBQYXRjaCAjMTMzNDU5OAoKMjAwNi0wMS0yNCAwNjo0MCAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDaGVjayAiVGltZVN0YW1wIiByZWZlcmVuY2UgYmVmb3JlIHVzZSAoaW4gbGluZSB3aXRoCiAgIHRoZSBvdGhlciBvY2N1cmFuY2VzIGluIHRoaXMgZmlsZSkuICBTZWUgQnVnICMxMzc1MjgyCgoyMDA2LTAxLTI0IDA2OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ2hlY2sgZm9yIG1pc3NpbmcgbW9uaXRvcmVkIHZhbHVlcyAoc2VlIEJ1ZyAjMTQwNDYwNSkKCjIwMDYtMDEtMjQgMDU6NDcgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgRG9uJ3Qgb3ZlcnJpZGUgYW4gZXhwbGljaXQgREVGUFJJVlRZUEUgc2V0dGluZywKICAgZXZlbiBpZiB0aGUgbGlicmFyeSBkb2Vzbid0IHN1cHBvcnQgZW5jcnlwdGlvbi4KCjIwMDYtMDEtMjQgMDE6NTEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZXBsYWNlICI9PSIgYnkgIj0iIHdoZW4gdXNpbmcgInRlc3QiIChyZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNi0wMS0yMyAwNzowNSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIE5ldyBoYW5kbGVyIHRvIGZvcndhcmQgdHJhcHMgdmlhIHRoZSBBZ2VudFggbWFzdGVyIGFnZW50LgoKMjAwNi0wMS0yMCAxNToxNiAgdGFuZGVycwoKICAgKiBORVdTLCBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBpbnRyb2R1Y2UgbmV3IHNubXB1c20gb3B0aW9uIC1DcCB0byBzZXQgdXNtVXNlclB1YmxpYyB2YWx1ZQoKMjAwNi0wMS0yMCAwOTowMSAgZHRzMTIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCB0ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdAosIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RzL1QxMTNhZ2VudHh0cmFwLAogICAgIHRlc3RzL1QxMjBwcm94eWdldCwgdGVzdHMvVDEyMXByb3h5c2V0LAogICAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBNb2R1bGFyIGFwcHJvYWNoIGZvciBwcm9iaW5nIHRvIGRldGVjdCBmcmVlIHBvcnRzLiAgU2VlIEJ1ZyAjMTMzNTc2NwoKMjAwNi0wMS0xOCAxNjowNiAgdGFuZGVycwoKICAgKiBORVdTLCBhcHBzL3NubXB1c20uYzoKCiAgIEF2b2lkIGV4cGVuc2l2ZSBnZW5lcmF0ZV9LdSgpIGlmIG5ld3Bhc3MgaXMgYSBsb2NhbGl6ZWQga2V5IChpbnN0ZWFkIG9mIGEgcGFzc3BocmFzZSkuIE1ha2VzIGEgaHVnZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB0aGVuLgoKMjAwNi0wMS0xOCAxMTozNCAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICB1c2UgYmFzZSBhcmNoIChlZyBpMzg2LCBub3QgaTY4Nik7IHVzZSBSUE1fQkFTRSBmb3IgdG9wZGlyCgoyMDA2LTAxLTE4IDA4OjI3ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBSZWdpc3RlciBSUE1zIGFzIGJlaW5nIGJ1aWx0IGJ5IHRoZSBOZXQtU05NUCBwcm9qZWN0LgoKMjAwNi0wMS0xOCAwODoyMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGFkZCBiZWVjcnlwdC1kZXZlbCwgZWxmdXRpbHMtbGliZWxmLWRldmVsIHRvIEJ1aWxkUmVxdWlyZXMKCjIwMDYtMDEtMTggMDc6MzUgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgcmVzdG9yZSBmaWxlIChsb29rcyBsaWtlIFZlcnNpb25NdW5nZSBudWtlZCBpdD8pOyBidW1wIHZlcnNpb24gdG8gNS40LmRldgoKMjAwNi0wMS0xOCAwNzoxOCAgdGFuZGVycwoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTAxLTE3IDA3OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgcmVmZXJlbmNlcyB0byBvYnNvbGV0ZSAoYW5kIG1pc3NpbmcpIHJvdXRpbmUuICBTZWUgQnVnICMxMDExMDUxCgoyMDA2LTAxLTE3IDA2OjI2ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZWNvZ25pc2UgcmFuZ2UgcGFyc2luZyBlcnJvcnMgcHJvcGVybHkuCgoyMDA2LTAxLTE1IDExOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzoKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGJldHRlciBjb29wZXJhdGlvbiBmb3IgaW50ZXJmYWNlIHRhYmxlcyB1c2luZyBzaGFyZWQgY29udGFpbmVyCiAgICAgLSB1c2Ugb25lIGRpcnR5IHZhcmlhYmxlCiAgICAgLSB1c2UgbmV3IHJlZiBjb3VudGluZyB1bmRvIGFsbG9jL2ZyZWUgZnVuY3Rpb24gZnJvbSBpZlRhYmxlCgoyMDA2LTAxLTE1IDA2OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICByZW1vdmUgdW5kbyBpZmVudHJ5IGhhbmRsaW5nIChkb25lIGVsc2V3aGVyZSkKCjIwMDYtMDEtMTUgMDY6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyBoZXJlCiAgIC0gYWRkIHJlZmVyZW5jZSBjb3VudGluZyBmb3IgdW5kbwoKMjAwNi0wMS0xNSAwNjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIG1vdmUgdW5kbyBpZmVudHJ5IGhhbmRsaW5nIGludG8gaW50ZXJmYWNlCgoyMDA2LTAxLTEzIDE3OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBhbGxvdyB3cml0ZSBzdXBwb3J0IGZvciBuZXcgdXNlciB0byB0ZXN0IHBhc3dvcmQgY2hhbmdlcwoKMjAwNi0wMS0xMyAxNToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgZml4IGJpdHdpc2UgdGVzdCB0byB1c2UgYml0d2lzZSBtYWNyb3MKCjIwMDYtMDEtMTMgMDg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBkb24ndCBkb3VibGUgYWxsb2NhdGUgdW5kbyBpZmVudHJ5CgoyMDA2LTAxLTEzIDA4OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtIG1vdmUgYWxsIHJlZnMgdG8gdW5kbyBwcm9taXNjIG1vZGUgaW5zaWRlIHByb21pc2Mgc2V0IGVuYWJsZSBpZmRlZnMKICAgLSBpZiBwcm9taXNjIG1vZGUgc2V0IGVuYWJsZWQsIG1ha2Ugc3VyZSB0byBhbGxvY2F0ZSB1bmRvIGlmZW50cnkKCjIwMDYtMDEtMTMgMDc6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGNvcnJlY3QgcHJvYyBwYXRoIGZvciBiYXNlIHJlYWNoYWJsZSB0aW1lCiAgIC0gdXNlIGNvcnJlY3QgZmxhZyBmb3IgYmFzZSByZWFjaGFibGUgYXZhaWxhYmlsaXR5CiAgIC0gYWN0dWFsbHkgcHV0IGJhc2UgcmVhY2hhYmxlIHRpbWUgaW4gaWZlbnRyeSBhZnRlciByZWFkaW5nIGl0CgoyMDA2LTAxLTExIDE1OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaAo6CgogICBJUklYIGF0VGFibGUgZml4OiB1c2Ugc3lzY3RsKCkgaW5zdGVhZCBvZiBubGlzdCgpIHRvIHN1cHBvcnQKICAgSVJJWCAqYW5kKiBJUklYNjQga2VybmVscyBhdCBvbmNlIGFuZCBub3QgcmVxdWlyZSAvZGV2L2ttZW0gYWNjZXNzCiAgIChwcm9wb3NlZCBieSBIZXJ2ZSBCb3Vsb3VpcykKCjIwMDYtMDEtMTEgMTQ6MDkgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIHMvdGhlIGFnZW50L3NubXB0cmFwZC8KCjIwMDYtMDEtMTEgMTQ6MDUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA2LTAxLTExIDEzOjM3ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIGZpeCBhY2NpZGVudGFsIG1hbmdsaW5nCgoyMDA2LTAxLTExIDEyOjQwICB0YW5kZXJzCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gYnVpbGQgZml4OiAjaW5jbHVkZSA8bGltaXRzLmg+IHRvIGNvdmVyIHJlY2VudGx5IGludHJvZHVjZWQgTE9OR19NQVgKICAgLSB3cmFwICIjaWYgSEFWRV9TWVNfU1RBVF9IIiBhcm91bmQgIiNpbmNsdWRlIDxzeXMvc3RhdC5oPiIKICAgLSByZW1vdmUgb2xkIGNoYW5nZWxvZyBmcm9tIHRoZSB0b3Agb2YgdGhlIGZpbGUKCjIwMDYtMDEtMTEgMDg6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgU0VUIHN1cHBvcnQgZm9yIG1hbmlwdWxhdGluZyB0aGUgcm91dGluZyB0YWJsZSBpc24ndCByZWFsbHkgaW1wbGVtZW50ZWQKICAgcHJvcGVybHkgKGV4Y2VwdCBvbiBDeWd3aW4pLCBzbyB3ZSBzaG91bGRuJ3QgcHJldGVuZCBpdCBpcy4KCjIwMDYtMDEtMTEgMDg6MzIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUmVkdWNlIHJlbGlhbmNlIG9uIChub24tdGhyZWFkLXNhZmUpIGdldGhvc3RieW5hbWUuICBTZWUgQnVnICM4Mzk2NzUKCjIwMDYtMDEtMTEgMDg6MDAgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIERvd25ncmFkZSB1cHBlci1ib3VuZCBwYXJzaW5nIHByb2JsZW1zIHRvIGEgd2FybmluZyAtIGtlZXAgVHJvZ0wgaGFwcHk6LSkKICAgRG9uJ3QgdGhpbmsgdGhlIGNoZWNrIGlzIHF1aXRlIHJpZ2h0IHlldCB0aG91Z2g6LSgKCjIwMDYtMDEtMTEgMDc6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJyaW5nIGNvZGUgdGVtcGxhdGUgaW50byBsaW5lIHdpdGggZmluYWwgaGVscGVyIEFQSS4KCjIwMDYtMDEtMTEgMDc6MDkgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENvcnJlY3QgYSBtaXNsZWFkaW5nIGNvbW1lbnQuCgoyMDA2LTAxLTExIDA3OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBc3NvY2lhdGUgTUlCIG5vZGUgdHlwZXMgd2l0aCB0aGUgKmxhc3QqIGVudHJ5IHBhcnNlZCBmcm9tIHRoZQogICBkZWZpbml0aW9uIHZhbHVlLCBub3QgdGhlIGZpcnN0LiAgRml4ZXMgcHJvYmxlbSB3aXRoIE1JQiBkZWZpbml0aW9ucwogICB0aGF0IHVzZSBpbnRlcm1lZGlhdGUgc3ViaWRlbnRpZmllcnMgKHNlZSBidWcgIzc1OTQxMikKCjIwMDYtMDEtMTEgMDY6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQ2xhcmlmeSB0aGUgYmVoYXZpb3VyIG9mIG5ldHNubXBfdGFibGVfZGF0YXNldF9yZW1vdmVfcm93KCkKCjIwMDYtMDEtMTAgMTM6NDUgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgZml4IGZvcm1hdCBzdHJpbmcgYnVnIChyZXBvcnRlZCBieSBkYXJpeCBvbiBJUkMpCgoyMDA2LTAxLTEwIDA4OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEb24ndCByZXRyeSAib3V0IG9mIHJhbmdlIiByZXNwb25zZXMgdW5sZXNzIHRoZXJlJ3MgYWN0dWFsbHkgYSB2YWx1ZQogICB0byBiZSBvdXQgb2YgcmFuZ2UuICBUaGlzIHByb3ZlZCB0byBiZSB0aGUgdW5kZXJseWluZyBjYXVzZSBvZiBHZXRCdWxrCiAgIHJlcXVlc3RzIGZhaWxpbmcgdG8gaGFuZGxlIGluc3RhbmNlLWJhc2VkIHJlZ2lzdHJhdGlvbnMsIHN1Y2ggYXMKICAgIm92ZXJyaWRlIiBkaXJlY3RpdmVzIChTZWUgQnVnICM3MTE0NjUpCgogICBJJ20gbm90IGF0IGFsbCBzdXJlIHRoYXQgdGhpcyBpcyBuZWNlc3NhcmlseSB0aGUgY29ycmVjdCBmaXgsIGJ1dAogICBpdCB3YXNuJ3QgdmVyeSBjbGVhciBhcyB0byBleGFjdGx5IHdoYXQgaXMgYmVpbmcgaGFuZGxlZCBoZXJlLgogICBUaGlzIGNoYW5nZSBjZXJ0YWlubHkgYWRkcmVzc2VzIHRoZSBhYm92ZSBidWcgcmVwb3J0LCB3aXRob3V0CiAgIHNlZW1pbmcgdG8gYnJlYWsgYW55dGhpbmcgZWxzZS4KCiAgIExldCdzIGdpdmUgdGhpcyBwYXRjaCB0aW1lIHRvIHNldHRsZSBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IGNvZGUsCiAgIGFuZCB0aGVuIGNvbnNpZGVyIGJhY2stcG9ydGluZyBpdCB0byBlYXJsaWVyIGxpbmVzLi4uLi4KCjIwMDYtMDEtMTAgMDM6MDcgIHRhbmRlcnMKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIEM4OSBjb21waWxlciBidWlsZCBmaXggKGJ1ZyAxMzk4NTQ1KSBwYXJ0IDI6ICJBIGRlY2xhcmF0aW9uIGNhbm5vdCBhcHBlYXIgYWZ0ZXIgYW4gZXhlY3V0YWJsZSBzdGF0ZW1lbnQgaW4gYSBibG9jay4iCgoyMDA2LTAxLTA5IDE3OjQxICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBDODkgY29tcGlsZXIgYnVpbGQgZml4IChidWcgMTM5ODU0NSkKCjIwMDYtMDEtMDkgMTc6MTEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICBJUklYIDYuNSBidWlsZCBmaXg6IGRvbid0IGluY2x1ZGUgc3lzL3NvY2tldHZhci5oIGJlY2F1c2UgaXQncyBub3QgbmVlZGVkIGFuZCBfS01FTVVTRVIgYnJlYWtzIHRoZSBidWlsZAoKMjAwNi0wMS0wOSAxNzowNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggSVJJWCA2LjUgInByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgd2FybmluZyBmb3Igc3lzL3Zub2RlLmggYW5kIHN5cy9oYXNoaW5nLmgKCjIwMDYtMDEtMDkgMTM6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL3VjZC1zbm1wLy5jdnNpZ25vcmU6CgogICBkb24ndCBpZ25vcmUgdWNkLXNubXAtY29uZmlnLmgsIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDYtMDEtMDkgMTM6MzggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZXZlcnQgdG8gLS1kaXNhYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYmVpbmcgdGhlIGRlZmF1bHQgYWdhaW4KCjIwMDYtMDEtMDkgMTE6MDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgaW5jbHVkZSBhbGwgZXJyIGxvZ3MgaW4gcmVzdWx0cwoKMjAwNi0wMS0wOSAwOToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHJlc3RvcmUgbG9zdCBpZkxhc3RDaGFuZ2UgdHJhY2tpbmcKCjIwMDYtMDEtMDkgMDc6MDYgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zCiwgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMKLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zCiwgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIG1hbi9uZXRzbm1wX2RlYnVnLjMKLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywKICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jCiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywKICAgICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiwgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYwosIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgICAgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jCiwgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLAogICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwosIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zCiwgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCiAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zCiwgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMKLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zCiwgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zCiwgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zCiwgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zCiwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMKLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMwosIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIEFkanVzdCBkb3h5Z2VuICJkZWZncm91cCIgY29tbWVudHMgdG8gaW1wcm92ZSBhdXRvLWdlbmVyYXRlZCBtYW4gcGFnZSBmb3JtYXQuCiAgIFNlZSBidWcgIzgzNTMyMQoKMjAwNi0wMS0wOSAwNTowMSAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwb3J0IGZhaWx1cmUgdG8gcGFyc2UgcmFuZ2VzIGNvcnJlY3RseSAoQnVnICM0MTE1OTQvNzU3MTIxKQoKMjAwNi0wMS0wNiAxNToxNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHVkcFRhYmxlIG9uIFNvbGFyaXMveDg2OiBob3N0IGJ5dGUgb3JkZXIgZm9yIHVkcExvY2FsUG9ydCAoYnVnIDEzOTMxOTcpCgoyMDA2LTAxLTA2IDEzOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gYWRkIGluc3RhbmNlIGhhbmRsZXIgZm9yIGluZXRDaWRyUm91dGVOdW1iZXIKCjIwMDYtMDEtMDYgMDk6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIHN1YnRyYWN0IG11bHRpY2FzdCBwYWNrZXRzIGZyb20gdG90YWwgcGFja2V0cyBmb3IgdW5pY2FzdCBwYWNrZXRzCiAgICAgKHRoZXJlIGlzIG5vIGJyb2FkY2FzdCBwYWNrZXQgY291bnRlciB0byBzdWJ0cmFjdCkKCjIwMDYtMDEtMDUgMTY6MjEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBmaXggbXVsdGlwbGUgPG5ldGluZXQvdGNwX3Zhci5oPiBpbmNsdXNpb24gKGJ1ZyAxMzk2NjM5LCBJUklYIGJ1aWxkIGZpeCkKCjIwMDYtMDEtMDUgMTU6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGRvbid0IHNhdmUvcmVzdG9yZSBwcm9taXNjdW91cyBtb2RlCgoyMDA2LTAxLTA1IDE1OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtIHVwZGF0ZSB0byByZXBvcnQgcHJvcGVyIHZhbHVlIGZyb20gcHJvbWlzY3VvdXMgbW9kZQoKMjAwNi0wMS0wNSAxNTo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaDoKCiAgIC0gY2xlYXIgcHJvbWlzY3VvdXMgbW9kZSBmcm9tIHNldHRhYmxlIGZsYWdzCgoyMDA2LTAxLTA1IDE1OjQxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYnVtcCBsaWJyYXJ5IHZlcnNpb24gbnVtYmVyIGluIHByb3ZpZGVzCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgLSAoZGlzdC9NYWtlZmlsZSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjI4ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCBMSUJDVVJSRU5UIHZlcnNpb24KCjIwMDYtMDEtMDUgMTU6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIGRlbGV0ZSB1bnVzZWQgZHVtbXkgdmFyIChzdHJ1Y3Qgc2l6ZSBjaGFuZ2Ugb2sgaW4gdW5yZWxlYXNlZCBicmFuY2hlcykKCjIwMDYtMDEtMDUgMTU6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIHBvaW50IHByb21pc2N1b3VzIG1vZGUgcmVmcyB0byBpbnRlcmZhY2UgZW50cnkgdmFsdWUKICAgLSByZW5hbWUgb2xkIHZhciAoZG9uJ3QgZGVsZXRlLCBzbyBzdHJ1Y3Qgc2l6ZSBkb2Vzbid0IGNoYW5nZSkKCjIwMDYtMDEtMDUgMTU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBzZXQgcHJvbWlzY3VvdXMgZmxhZyBmb3IgaW50ZXJmYWNlcwoKMjAwNi0wMS0wNSAxNTowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgYWRkIG1pc3NpbmcgXG4gdG8gbG9nIG1zZ3MKCjIwMDYtMDEtMDUgMDg6MzAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIERpc3BsYXkgY29ycmVjdCBNSUIgZ3JvdXAgbmFtZXMgaW4gY29tbWVudHMuICAoQnVnICMxMDc2NjU1KQoKMjAwNi0wMS0wNCAxNTowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudENvbmYuYywKICAgICBtdGVPYmplY3RzQ29uZi5jLCBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXJDb25mLmMKOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDYtMDEtMDIgMTY6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggbWlub3IgdHlwb3MKCjIwMDYtMDEtMDIgMTU6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtLWRpc2FibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBhbmQgLS1lbmFibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eT1ubyBub3cgYWN0dWFsbHkgKmRpc2FibGUqIFVDRC1TTk1QIGNvbXBhdGliaWxpdHkgaW5zdGVhZCBvZiBlbmFibGluZyBpdAoKMjAwNS0xMi0zMCAyMDozNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSBzZXQgdXAgbGVuIGZvciBwYXJzZSBpbmRleCBoYWNrIGZvciBmaXhlZCBsZW5ndGggc3RyL29pZCBpbmRleGVzCgoyMDA1LTEyLTMwIDIwOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcGFyc2UgaW5kZXggaGFjayBmb3IgbXVsdGlwbGUgZml4ZWQgbGVuZ3RoIHN0ci9vaWQgaW5kZXhlcwoKMjAwNS0xMi0zMCAxODowNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgc3RlcCBmb3IgY3JlYXRpbmcgcGF0Y2hlcyBicmFuY2ggZm9yIG5ldyByZWxlYXNlcwoKMjAwNS0xMi0zMCAxMTo0MiAgYWxleF9iCgogICAqIE1ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGRvY3NtdW5nZSBhcyBpdCBpcyBubyBsb25nZXIgbmVlZGVkIGJ5IHRoZSB3ZWIgc2l0ZS4KCjIwMDUtMTItMjkgMjE6MzggIGFsZXhfYgoKICAgKiBsb2NhbC9odG1sLXRleHRmaWxlLWZpeC5wbDoKCiAgIEFkZHMgc29tZSBIVE1MIGVudGl0aWVzIHRvIHRoZSB0ZXh0IGZpbGVzIHRvIHByZXZlbnQgbWlzc2luZyBjaGFyYWN0ZXJzCiAgIHdoZW4gaW5jbHVkaW5nIGluIEhUTUwuCgoyMDA1LTEyLTI4IDExOjEwICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4yIC0+IFY1LjMKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0NyAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQxICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMjggMTI6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTI3IDE3OjA2ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgTGFzdC1taW51dGUgdXBkYXRlIGZvciA1LjM6CiAgIC0gdWNkLXNubXAvbG1TZW5zb3JzIGltcGxlbWVudHMgTE0tU0VOU09SUy1NSUIsIG5vdCBVQ0QtU05NUC1NSUIhCiAgIC0gZGlzbWFuL3NjaGVkdWxlIG5vdyBzaGlwcyB3aXRoIDUuMwoKMjAwNS0xMi0yNyAxNjo0NSAgdGFuZGVycwoKICAgKiBGQVE6CgogICBMYXN0LW1pbnV0ZSB1cGRhdGVzIGZvciA1LjM6CiAgIC0gcmVtb3ZlIHR3byBtaXJyb3Igc2VydmVycyB0aGF0IGRvbid0IGV4aXN0IGFueW1vcmUKICAgLSB0d2VhayBsaXN0IG9mIHN1cHBvcnRlZCBwbGF0Zm9ybXMgdG8gbGlzdCB0aGUgYmV0dGVyIHN1cHBvcnRlZCBvbmVzIGZpcnN0CiAgIC0gZml4IHNubXB0cmFwZCBleGFtcGxlcyB0byBub3QgdXNlIGRlcHJlY2F0ZWQgb3B0aW9ucwogICAtIG1lbnRpb24gdGhlIDUuMyBzbm1wdHJhcGQgYXV0aG9yaXphdGlvbiBjaGFuZ2UKICAgLSBtZW50aW9uIHRoYXQgZGlzbWFuL2V2ZW50IGFuZCBob3N0IGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gNS4zCiAgIC0gbWVudGlvbiBkaXNtYW4vc2NoZWR1bGUgTUlCCgoyMDA1LTEyLTIxIDA2OjA4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1pbm9yIHR3ZWFrcy4KCjIwMDUtMTItMjEgMDQ6MzEgIGR0czEyCgogICAqIE5FV1M6CgogICBDb3JyZWN0IHRoZSBkZXNjcmlwdGlvbiBvZiAnc25tcG5ldHN0YXQnIGNoYW5nZXMuCiAgIFRoZSBzdGF0dXMgb2YgdGhlIDUuMyBsaW5lIGlzICpub3QqIHRoZSBzYW1lIGFzIHRoZSA1LjIgdmVyc2lvbi4KCjIwMDUtMTItMjEgMDA6MDcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTIwIDIzOjU4ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMjAgMjM6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEyLTIwIDIzOjE1ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yMCAxMDozMyAgdGFuZGVycwoKICAgKiBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZjoKCiAgIGZpeCBidWcgMTM4NjA4ODogdXNlIExPR19FUlIgaW5zdGVhZCBvZiBMT0dfRVJST1IKCjIwMDUtMTItMTkgMjA6NDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICB0cmFwcyAtPiBub3RpZmljYXRpb25zCgoyMDA1LTEyLTE5IDIwOjM3ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBmaXggdHlwbwoKMjAwNS0xMi0xOSAyMDozMyAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHNubXBfcGVybC5wbCAqaXMqIGluc3RhbGxlZCBhdXRvbWF0aWNhbGx5IChhdCBsZWFzdCBmb3IgbWUpLgoKMjAwNS0xMi0xOSAyMDoxNiAgdGFuZGVycwoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZ2V0IHJpZCBvZiAiZGVmYXVsdCBkZWZhdWx0IgoKMjAwNS0xMi0xOSAxODo1OSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYmV0dGVyIGhlbHAgb3V0cHV0IGZvciBkZXByZWNhdGVkICItUCIKCjIwMDUtMTItMTkgMDU6MzUgIGR0czEyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGQuOC5kZWYKLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOC5kZWYsCiAgICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBHZW5lcmFsIHJldmlzaW9uIG9mIGNvbW1hbmQgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZSBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMi0xOCAxNjozNiAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBleGVjdXRlIGFsc28gY292ZXJzIGVtYmVkZGVkIHBlcmwKCjIwMDUtMTItMTggMTY6MzAgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9Ob3RSZXRhaW5UcmFwTG9ncyAtPiBkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MKCjIwMDUtMTItMTQgMTE6NDAgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFJld29ya2luZyBvZiB0aGUgdHJhcGQgY29uZmlndXJhdGlvbiBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMi0xNCAwNTozOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgV2l0aGRyYXcgYWx0ZXJuYXRpdmUgImFjY2VwdEFsbFRyYXBzIiBkaXJlY3RpdmUuCiAgIChLZWVwIGl0IHNhZmUgZm9yIGFub3RoZXIgZGF5KS4KCjIwMDUtMTItMTMgMDc6NTAgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIG91ciBiaW5hcnkgcmVsZWFzZXMgKmRvKiBzdXBwb3J0IGVuY3J5cHRpb24KCjIwMDUtMTItMTMgMDc6MjkgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIGFkZCBBRVMKCjIwMDUtMTItMTEgMTU6MTUgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTUgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMyAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEzICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTMgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMiAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMiAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTExIDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTItMTEgMTU6MDAgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMi0xMSAxNDoxMyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYwosIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5oLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIEFkZCBjb25zdCBhbmQgI2luY2x1ZGUgdG8gZml4IHdhcm5pbmdzCgoyMDA1LTEyLTExIDEzOjU0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0xMSAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBkb24ndCB1c2UgQ1ZTVVNFUiBpZiBhbHJlYWR5IGluIGEgY3ZzIGRpcgoKMjAwNS0xMi0xMSAxMzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6CgogICBhZHZhbmNlIG5leHQgcG9pbnRlciBiZWZvcmUgY29udGludWUKCjIwMDUtMTItMTEgMTI6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmM6CgogICBkb24ndCBmcmVlIHRoZSBjb250YWluZXIgaWYgYXNrZWQgbm90IHRvCgoyMDA1LTEyLTExIDEyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgLSBmaXggMTM2MjMyNDogdGVzdGhhbmRsZXIgbW9kdWxlIGNhdXNlcyBpbmZpbml0ZSBsb29wCiAgICAgLSAgZG9uJ3QgcmV0cnkgZm9yIEFTTl9OVUxMOyB0aGlzIHJldHJpZXMgd2hlbiB0aGUgaGFuZGxlciBkb2VzIG5vdGhpbmcsCiAgICAgICAgd2hpY2ggaXMgd2hhdCB3ZSB0ZWxsIHBlb3BsZSB0byBkbyBhdCB0aGUgZW5kIG9mIGEgdGFibGUuCiAgIC0gYWRkIGNvbW1lbnRzCgoyMDA1LTEyLTExIDEwOjM3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hhbmdlIG5lc3RlZCBjb21tZW50IHRvIGlmZGVmIDAKCjIwMDUtMTItMTAgMjA6MDcgIHRhbmRlcnMKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTEwIDIwOjAyICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9ERVZFTlY6CgogICBjbGVhbnVwCgoyMDA1LTEyLTEwIDE5OjUwICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9uZXQtc25tcC01LjAuNi1idWlsZDoKCiAgIHJlcGxhY2VkIGJ5IHVwZGF0ZWQgYnVpbGRwYWNrYWdlLXNvbGFyaXMKCjIwMDUtMTItMTAgMTk6NDEgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkLzogUkVBRE1FLCBidWlsZHBhY2thZ2Utc29sYXJpcwo6CgogICBzY3JpcHQgdG8gY3JlYXRlIG5hdGl2ZSBTb2xhcmlzIHBhY2thZ2VzLCByZXBsYWNlcyBuZXQtc25tcC01LjAuNi1idWlsZAoKMjAwNS0xMi0xMCAxODo1MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZ1cnRoZXIgaW1wcm92ZSBtaWIgbW9kdWxlIGRlc2NyaXB0aW9ucwoKMjAwNS0xMi0xMCAxODoyOSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRoLWVudGVycHJpc2Utbm90aWZpY2F0aW9uLW9pZCBkZXNjcmlwdGlvbgoKMjAwNS0xMi0xMCAxODoxNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGltcHJvdmUgdGV4dCBhbGlnbm1lbnQgaW4gImNvbmZpZ3VyZSAtLWhlbHAiIG91dHB1dAoKMjAwNS0xMi0xMCAxMjozMCAgYWxleF9iCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzI6IE1TVkMgYnVpbGQgZml4ZXMKCjIwMDUtMTItMTAgMTI6MjggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBwdXQgcHJpdi9hdXRoIHJlbGF0ZWQgb3B0aW9ucyBjbG9zZXIgdG8gZWFjaCBvdGhlcgoKMjAwNS0xMi0xMCAxMTozNyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cyBvciBjb252ZXJ0IHRvIEMgY29tbWVudHMKCjIwMDUtMTItMTAgMTE6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgY2hhbmdlIGNwcCB3YXJuaW5ncyB0byBjb21tZW50cwoKMjAwNS0xMi0xMCAxMToyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEyLTEwIDExOjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV3ICdvcyBzcGVjaWZpYycgc2VjdGlvbiBpbiBtaWIgbW9kdWxlIGhlbHAKCjIwMDUtMTItMDkgMjE6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudENvbmYuaCwKICAgICBtdGVUcmlnZ2VyQ29uZi5oLCBtdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGNvbmZpZ19yZXF1aXJlIGlxdWVyeQoKMjAwNS0xMi0wOSAyMToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgbWlzYyBnZW5lcmF0ZWQgZmlsZXMKCjIwMDUtMTItMDkgMjA6NTggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgdXBkYXRlIHJlbmFtZWQgdmFyaWFibGUKCjIwMDUtMTItMDkgMjA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCjoKCiAgIGZpeCBjb25maWdfcmVxdWlyZSBwYXRoCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVtb3ZlIGV4cGVyaW1lbnRhbCBjb25maWdfbm9pbmNsdWRlIGRpcmVjdGl2ZXMKCjIwMDUtMTItMDkgMjA6NTcgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGZpeCBjdXQtbi1wYXN0ZQoKMjAwNS0xMi0wOSAyMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGFkZCBtaXNzaW5nIHJlZ2lzdHJhdGlvbiBvZiBsYXN0IGNoYW5nZSBvYmplY3QKCjIwMDUtMTItMDkgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcHY0SW50ZXJmYWNlVGFibGUuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGludGVybWVkaWF0ZSBjb25maWdfcmVxIGhlYWRlcnMKCjIwMDUtMTItMDkgMjA6MzIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICB1cGRhdGUgY29tcGF0IG1hcHBpbmcgdG9vCgoyMDA1LTEyLTA5IDE5OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgcHJvcGVyIG5hbWluZyBjb252ZW50aW9ucyBzdGFuZGFyZGl6ZWQgYW5kIHdpZGVseSBhZG9wdGVkIGJ5IHRoZSBJbnRlcm5ldCBFbmdpbmVlcmluZyBUYXNrIEZvcmNlCgoyMDA1LTEyLTA5IDE3OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIC0gZGVmaW5lIG5ldyBhZ2VudCBkcyBpZCBmb3IgcmV0YWluaW5nIHRyYXBzCgoyMDA1LTEyLTA5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICB0cmFwIC0+IG5vdGlmaWNhdGlvbgoKMjAwNS0xMi0wOSAxMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIC0gcmVzdG9yZSBkb250UmV0YWluTG9ncwogICAtIG5ldywgY2xlYXJlciBkb05vdFJldGFpblRyYXBMb2dzIHVzZSBzYW1lIGRzIGlkCgoyMDA1LTEyLTA5IDA4OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHRoZSBjb21tb24gYm9vbGVhbiBwYXJzaW5nIHJvdXRpbmUgKHRvIHJlY29nbmlzZQogICB0aGUgZnVsbCBsaXN0IG9mIGRvY3VtZW50ZWQgdmFsdWVzLCBub3Qgc2ltcGx5ICcxJyEpCgoyMDA1LTEyLTA5IDA4OjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgUHVsbCBwYXJzaW5nIG9mIGJvb2xlYW4gY29uZmlnIHZhbHVlcyBvdXQgaW50byBhIHNlcGFyYXRlIHJvdXRpbmUuCgoyMDA1LTEyLTA5IDA3OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBFeHBhbmQgdGhlIHNvdXJjZSBidWZmZXIgc28gaXQgY2FuIGhvbGQgYSBtYXhpbXVtLWxlbmd0aCBJUHY2IHNwZWNpZmljYXRpb24uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFNodWtpIFNhc3Nvbi4KCjIwMDUtMTItMDggMDg6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKOgoKICAgSXNzdWUgd2FybmluZ3Mgd2hlbiAnc25tcHRyYXBkJyBpcyBydW4gd2l0aG91dCBhbnkgYWNjZXNzIGNvbmZpZ3VyYXRpb24uCiAgIEJvdGggYXQgc3RhcnR1cCwgYW5kIHdoZW4gaW5jb21pbmcgdHJhcHMgYXJlIHJlY2VpdmVkIChhbmQgZHJvcHBlZCkuCgogICBBbHNvIGRlZmluZSBhbiBhbHRlcm5hdGl2ZSBuYW1lIGZvciB0aGUgJ2Rpc2FibGVBdXRob3JpemF0aW9uJyBkaXJlY3RpdmUsCiAgIHRoYXQgaXMgKElNTykgbW9yZSBkZXNjcmlwdGl2ZSBvZiB3aGF0IGEgbmV0d29yayBhZG1pbmlzdHJhdG9yIG1pZ2h0IHdhbnQgdG8gZG8uCgoyMDA1LTEyLTA4IDA4OjA3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIFByb3Blcmx5IHJlY29nbmlzZSB3aGVuIG5vIGFjY2VzcyBzZXR0aW5ncyBoYXZlIGJlZW4gY29uZmlndXJlZC4KICAgKFRoZSBuZXcgYnVpbHQtaW4gdmlld3MgYnJva2UgdGhlIHByZXZpb3VzIHRlc3QpLgoKMjAwNS0xMi0wOCAwNjowOCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBJbmNsdWRlIChhbmQgY2hlY2sgZm9yKSBhbm90aGVyIGhlYWRlciBmaWxlIC0gbmVlZGVkIG9uIFJlZEhhdCA5IHN5c3RlbXMuCgoyMDA1LTEyLTA3IDE3OjU1ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgZml4IHR5cG8KCjIwMDUtMTItMDcgMDc6MjkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMi0wNyAwNzoyNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gZml4IG1pbmktYWdlbnQgdGVzdHMgc28gdGhhdCAtLWRpc2FibGUgZG9lc24ndCBhY3R1YWxseSBlbmFibGUgaXQKCjIwMDUtMTItMDYgMTc6NTAgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBSRkMgaXNzdWVzCgoyMDA1LTEyLTA2IDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgcmVkdWNlIGNhY2hlIHJlbG9hZCB0aW1lb3V0IGJlbG93IHdyYXAgdGhyZXNob2xkIGZvciBnaWdhYml0IGludGVyZmFjZXMKCjIwMDUtMTItMDYgMDg6NTAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5pbnRlcm5hbC41LmRlZjoKCiAgIEJyaWVmIChhbmQgc29tZXdoYXQgcmVwZXRhdGl2ZSkgZG9jdW1lbnRhdGlvbiBvZiBpbnRlcm5hbCBkaXJlY3RpdmVzLgoKMjAwNS0xMi0wNiAwODoxMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgRmxlc2ggb3V0IEV2ZW50IE1JQiwgU2NoZWR1bGUgTUlCIGFuZCBwcm94eSBleGFtcGxlcwogICAocGx1cyB2YXJpb3VzIG1pbm9yIHR3ZWFrcykuCgoyMDA1LTEyLTA2IDA1OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVFdmVudC5jLCBtdGVPYmplY3RzLmMKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgSW1wbGVtZW50IG1pc3NpbmcgImxpbmtVcERvd25Ob3RpZmljYXRpb25zIiBkaXJlY3RpdmUKICAgKHRvZ2V0aGVyIHdpdGggc3VpdGFibGUgc3RhbmRhcmQgZW50cmllcykKCjIwMDUtMTItMDUgMTE6NDQgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIGRvbid0IHJlbW92ZSBkaXN0CgoyMDA1LTEyLTA1IDEwOjU1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IG1pc3NlZCB2YXIgcmVuYW1lIGluIGNvbmRpdGlvbmFsCgoyMDA1LTEyLTA1IDA3OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgY29uZmlnX2FkZF9taWIgaW4gaGVhZGVyCgoyMDA1LTEyLTA1IDA3OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB0d2Vha3MgcGVyIGNvbW1lbnRzIGZyb20gd2VzOyBzZWUgY29kZXJzIG5vdGUKCjIwMDUtMTItMDUgMDc6MjIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEZsZXNoIG91dCBBZ2VudFggZXhhbXBsZXMuCgoyMDA1LTEyLTA1IDA3OjIxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBGbGVzaCBvdXQgdHJhcCBoYW5kbGluZyBhbmQgZW1iZWRkZWQgcGVybCBleGFtcGxlcy4KCjIwMDUtMTItMDUgMDc6MjAgIGR0czEyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYsIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgQXNzb3J0ZWQgd29yZHNtaXRoaW5nLCBhbmQgcGljayB1cCBhIGNvdXBsZSBvZiB1bmRvY3VtZW50ZWQgb3B0aW9ucy4KCjIwMDUtMTItMDUgMDc6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEltcGxlbWVudCAnZ2V0X2V4ZWNfb3V0cHV0JyBhcyBhIHdyYXBwZXIgcm91bmQgJ3J1bl9leGVjX2NvbW1hbmQnCiAgIHRvIGdpdmUgcHJvcGVyIGhhbmRsaW5nIG9mIGNvbW1hbmQgdG9rZW5pemF0aW9uLiAgKFNlZSBCdWcgIzEzMjQwNTcpCiAgIE5vdGUgdGhpcyBkb2Vzbid0IGFwcGx5IHRvIFdpbmRvd3Mgc3lzdGVtcyAtIHRoYXQgZXhlYyBoYW5kbGluZwogICBwcm9iYWJseSBuZWVkcyB0byBiZSBtb3ZlZCB0byAncnVuX2V4ZWNfY29tbWFuZCcgYXMgd2VsbC4KCjIwMDUtMTItMDQgMTg6MDMgIHJzdG9yeQoKICAgKiByZW1vdmUtZmlsZXM6CgogICBhZGQgLVIgZm9yIGRpc3QgZGlyCgoyMDA1LTEyLTA0IDE3OjU0ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjU0ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MiAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTc6NDMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEyLTA0IDE3OjI2ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTc6MjMgIHJzdG9yeQoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgZGlzdCBhbmQgd2luMzIvZGlzdAoKMjAwNS0xMi0wNCAxNzoxNCAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBkbyBkaXN0Y2xlYW4gYmVmb3JlIGNvbmZpZ3VyZSBpZiBNYWtlZmlsZSBleGlzdHMKCjIwMDUtMTItMDQgMTY6NDkgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgbm90ZSB0aGF0IE1ha2VmaWxlLnRvcCB1c3VhbGx5IG9ubHkgY2hhbmdlIGZvciBmaXJzdCBwcmVyZWxlYXNlCgoyMDA1LTEyLTA0IDE2OjQ4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0wNCAxNjo0NyAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgLXEgdG8gdXBkYXRlIHNvIHBvdGVudGlhbCBjaGFuZ2VzIGRvbid0IHNjcm9sbCBvZmYgc2NyZWVuCgoyMDA1LTEyLTA0IDE2OjI5ICByc3RvcnkKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBmaXggc3ludGF4IGVycm9ycwoKMjAwNS0xMi0wNCAxMzo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBsb2cgcmMgdy9lcnJvciBtc2cKCjIwMDUtMTItMDQgMTM6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgbG9nIGNvbnRhaW5lciBuYW1lLCBpZiBhdmFpbCwgaW4gbG9nIG1zZwoKMjAwNS0xMi0wNCAxMzozOCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIGFkZCBsb2cgZmlsZSBhcHBlbmQgKC1BKSBvcHRpb24KICAgLSByZW1vdmUgTG9nL1ByaW50L1N5c2xvZyBkaXN0aW5jdGlvbgogICAtIGJyaW5nIHN0YXJ0dXAvcmVjb25maWcgbG9nIG1lc3NhZ2UgaW4gbGluZSB3L3NubXBkCgoyMDA1LTEyLTA0IDEzOjI0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIGZpeCBidWcgMTI5Nzg3ODogaGVhZGVyX2dlbmVyaWMgYW5kIGhlYWRlcl9zaW1wbGVfdGFibGUgcHJvdG90eXBlcwogICAgIC0gZXh0cmEgaGVhZGVyIGxpc3QvaW5zdGFsbCB0YXJnZXQKICAgLSBncm91cCBwZXJsIGluc3RhbGwvdW5pbnN0YWxsIHRvZ2V0aGVyCgoyMDA1LTEyLTA0IDEzOjE5ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIGltcG9ydGFudCBub3RlcyBmb3IgNS4zCgoyMDA1LTEyLTA0IDA5OjQyICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMDQgMDk6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGZpeCBidWcgIDEzNjUxMjg6IHNubXBkIHF1aWV0bHkgZGllcyBvbiBocHV4IDExLjExCiAgICAgLSBhZGQgY29uZmlndXJlIGNoZWNrIGZvciAtbG5tCgoyMDA1LTEyLTA0IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIGFkZGl0aW9uYWwgZml4IGZvciBidWcgMTEwMzY0NCwgRnJlZUJTRCBtZW1vcnkgbGVhawogICAgIC0gcHJvYmxlbSBwb2ludGVkIG91dCBieSByb2plciBvbiBpcmMKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MvbWVtc2V0CgoyMDA1LTEyLTAyIDE5OjEzICByc3RvcnkKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICB1cGRhdGUgdG8gMjAwNTEwMTAwMDAwWiB2ZXJzaW9uCgoyMDA1LTEyLTAyIDE4OjQ4ICByc3RvcnkKCiAgICogbWlicy9JUC1NSUIudHh0OgoKICAgLSB1cGRhdGUgZnJvbSBkcmFmdC1pZXRmLWlwdjYtcmZjMjAxMS11cGRhdGUtMTAudHh0LCBjdXJyZW50bHkgaW4gdGhlIFJGQwogICAgIGVkaXRvcidzIHF1ZXVlCgoyMDA1LTEyLTAyIDE3OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBidWcgMTMzNzUzNDogUmVhZCBwcm9ibGVtIG9uIHN0cmVhbSBzb2NrZXRzCiAgICAgLSBwcm9wZXJseSBzYXZlIHBhcnRpYWwgcGFja2V0IHdoaWNoIGlzbid0IGF0IHN0YXJ0IG9mIGJ1ZmZlcgoKMjAwNS0xMi0wMiAxNzowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYnVnIDEzNzA4NTY6IGlwIGFkZHJlc3MgZW5jb2Rpbmcgb24gNjRiaXQKICAgICAtIHVzZSBpbmV0X2FkZHJfdCBmb3IgaW5ldCBhZGRyCgoyMDA1LTEyLTAyIDE3OjAzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBidWcgMTM3MDg1NjogaXAgYWRkcmVzcyBlbmNvZGluZyBvbiA2NGJpdAogICAgIC0gc3luYyBzbm1wX3NldF92YXJfdmFsdWUgdy9zbm1wX2J1aWxkX3Zhcl9vcDogQVNOX0lQQUREUkVTUyBhcyBhIHN0cmluZwoKMjAwNS0xMi0wMiAxMzoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogdWRwLW1pYi5oLCB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUuaAosIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS5oOgoKICAgYWRkIG1pc3NpbmcgY29uZmlnX3JlcSBmaWxlcwoKMjAwNS0xMi0wMiAxMzoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgb25seSBwcmludCByYW5nZXMgaWYgdGhleSBleGlzdAoKMjAwNS0xMi0wMiAxMzoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIuaDoKCiAgIHJlbW92ZSBleHRyYSA7CgoyMDA1LTEyLTAyIDEzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLzogdWRwRW5kcG9pbnRUYWJsZS5jCiwgdWRwRW5kcG9pbnRUYWJsZS5oLCB1ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy5oCiwgdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB1ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLCB1ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDIgMTM6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvOiB0Y3BMaXN0ZW5lclRhYmxlLmMKLCB0Y3BMaXN0ZW5lclRhYmxlLmgsIHRjcExpc3RlbmVyVGFibGVfY29uc3RhbnRzLmgKLCB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsIHRjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY291bnRlcjY0J3Mgd2hlbiBkZWZpbmVkIHdpdGggNjRiaXQgbG9uZyB2YXJpYWJsZXMgaW4gdGhlIEM2NCBzdHJ1Y3R1cmUKCjIwMDUtMTItMDIgMTA6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBVc2UgJ2NvcHlfbndvcmQnIHRvIHRva2VuaXplIGV4dGVybmFsIGNvbW1hbmRzLgogICBUaGlzIG1lYW5zIHRoYXQgcXVvdGVkIHN0cmluZ3MgYXJlIGhhbmRsZWQgaW4gdGhlIG5hdHVyYWwgbWFubmVyLgoKMjAwNS0xMi0wMiAxMDozMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgSXQgaGVscHMgaWYgeW91IGFjdHVhbGx5IGNyZWF0ZSB0aGUgbWFuIHBhZ2UgYXMgd2VsbCwgRGF2ZSEKCjIwMDUtMTItMDIgMDk6NTUgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgdGhlIHJlY2VudGx5IGludHJvZHVjZWQgbWFudWFsIHBhZ2VzCgoyMDA1LTEyLTAyIDA5OjUwICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGQuaW50ZXJuYWwuNS5kZWY6CgogICBUZW1wbGF0ZSBmb3IgZG9jdW1lbnRpbmcgaW50ZXJuYWwgc25tcGQgY29uZmlnIGRpcmVjdGl2ZXMuCiAgIChJJ3ZlIGlkZW50aWZpZWQgYW5kIGxpc3RlZCB0aGUgZGlyZWN0aXZlcyBjb25jZXJuZWQsCiAgICBidXQgaGF2ZW4ndCBwcm92aWRlZCBhbnkgZGVzY3JpcHRpb25zIG9mIHdoYXQgdGhleSBkbyEpCgoyMDA1LTEyLTAyIDA1OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgaW5ldDYuYywKICAgICBtYWluLmMsIG1haW4uaCwgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgQWxpZ24gd2l0aCB3YXJuaW5nIGZpeGVzIGZvciA1LjIuMgoKMjAwNS0xMi0wMiAwNTozMyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggc25tcHRyYW5zbGF0ZSAtVGQgZGlzcGxheSBvZiBVTklUUwoKMjAwNS0xMi0wMiAwMDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBhZGRlZCBtZmQtcGVyc2lzdGVuY2UubTJpCgoyMDA1LTEyLTAxIDE2OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvOiB0Y3BDb25uZWN0aW9uVGFibGUuYwosIHRjcENvbm5lY3Rpb25UYWJsZS5oLCB0Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhbnRzLmgKLCB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNjozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5jLCB1c21ESFVzZXJLZXlUYWJsZS5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oLCB1c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgsIHVzbURIVXNlcktleVRhYmxlX29pZHMuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE2OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS86CiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb25zdGFudHMuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYwosIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTU6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLzogaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLCBpcFN5c3RlbVN0YXRzVGFibGUuaCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTE6MTMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQXNzb3J0ZWQgbWlub3IgdHdlYWtzIGFuZCB3b3Jkc21pdGhpbmcuCgoyMDA1LTEyLTAxIDEwOjUwICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIE1vdmUgc25tcGQuY29uZiBleGFtcGxlcyBpbnRvIGEgc2VwYXJhdGUgbWFuIHBhZ2UsCiAgIGFuZCBleGFtcGxlIHRoZSByYW5nZSBvZiBleGFtcGxlcyBwcm92aWRlZC4KICAgKE5vdCBmaW5pc2hlZCB5ZXQsIGJ1dCBpdCdzIHByb2JhYmx5IHdvcnRoIHN1Ym1pdHRpbmcKICAgdGhpcyB3aGlsZSB3ZSdyZSBzdGlsbCBpbiBwcmUtcmVsZWFzZSBtb2RlKQoKMjAwNS0xMi0wMSAxMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS86CiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUuYywgaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDA4OjA5ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIERyb3AgYm9ndXMgIi1wIiBwb3J0IG9wdGlvbiAoYW5kIGFwcGx5IGNvbnNpc3RlbnQgaW5kZW50YXRpb24pLgogICBTaG91bGQgdGhlIG90aGVyIGNoYW5nZXMgc3VnZ2VzdGVkIGluIGJ1ZyAjMTI0NzE2NCBiZSBhcHBsaWVkLCB0b28/CgoyMDA1LTEyLTAxIDA3OjQ1ICBkdHMxMgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIERvbid0IGNyYXNoLWFuZC1idXJuIG9uIFNOTVAgZXhjZXB0aW9ucyAoc2VlIGJ1ZyAjMTI3ODgwOSkKCjIwMDUtMTEtMzAgMTk6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS86IGluZXROZXRUb01lZGlhVGFibGUuYwosIGluZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxODo0NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwOgoKICAgUmV3cml0dGVuIGZyb20gc2NyYXRjaCB0byB2ZXJpZnkgbm9BdXRoTm9Qcml2LCBhdXRoTm9Qcml2ICphbmQqIGF1dGhQcml2IFNOTVB2MyB0cmFwcy4gTGV0J3MgbmV2ZXIgYnJlYWsgdGhpcyBhZ2Fpbi4KCjIwMDUtMTEtMzAgMTg6NDQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZDoKCiAgIGNyZWF0ZSBub0F1dGhOb1ByaXYgdXNlcgoKMjAwNS0xMS0zMCAxODo0MyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2U6CgogICBpbnRyb2R1Y2UgIHRvIHNwZWNpZnkgdGhlIGVuZ2luZSBJRCBmb3IgY3JlYXRlVXNlcgoKMjAwNS0xMS0zMCAxNzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuYywgaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTc6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBpbml0IHZhcgoKMjAwNS0xMS0zMCAxNjowOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBmaXggYXV0b21hdGljIHVzZXIgY3JlYXRpb24gZm9yIHNlc3Npb25zIHRoYXQgaGF2ZSBwcm9iaW5nIG9mZiBvciBkZWxheWVkCgoyMDA1LTExLTMwIDE2OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2NvbnN0YW50cy5oLCBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL1JFQURNRToKCiAgIGFkZGVkIGEgUkVBRE1FIGZpbGUgdGhhdCBoYXMgYmVlbiBzaXR0aW5nIGluIG15IGRpcmVjdG9yeSB1bi1jaGVja2VkLWluCgoyMDA1LTExLTI5IDE4OjM2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlZmVyIHRvIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FIHJhdGhlciB0aGFuICJ0aGUgdWNkLXNubXAgZnRwIHNpdGUiIGZvciBpcGZ3Y2hhaW5zCgoyMDA1LTExLTI5IDE3OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfY29uc3RhbnRzLmgsIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMjkgMTQ6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIHR5cG8gaW4gbG9nIG1zZwoKMjAwNS0xMS0yNSAwOToxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE2MHNubXBuZXRzdGF0LCBUMjAwc25tcHYyY3dhbGthbGw6CgogICB1c2UgU0tJUAoKMjAwNS0xMS0yNSAwNToxMiAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjBzbm1wbmV0c3RhdCwgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgU2tpcCB0ZXN0cyB0aGF0IGFyZSBrbm93biB0byBmYWlsIHdoZW4gbm90IHJ1biBhcyByb290LgogICAoTWF5IG5lZWQgdG8gYmUgZXh0ZW5kZWQgdG8gb3RoZXIgTy9TJ3MgYXMgd2VsbCkuCgoyMDA1LTExLTI0IDE4OjI0ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IHR5cG8gYW5kIGxheW91dAoKMjAwNS0xMS0yNCAxODoxNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgICBUMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgVDA0OXNubXB2M2luZm9ybXByaXY6CgogICBmaXggdGVzdHMgdG8gd29yayB3aXRoIC0tZGlzYWJsZS1wcml2YWN5CgoyMDA1LTExLTIzIDE5OjU2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0xMS0yMyAxOToyMiAgdGFuZGVycwoKICAgKiBORVdTLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgbWFrZSAiY29uZmlndXJlIC0tZGlzYWJsZS1hZ2VudCIgZmluYWxseSB3b3JrIChmaXhlcyBidWdzIDEwMDY0MTUsIDkwODU3MSkKCjIwMDUtMTEtMjMgMDg6MTQgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBXaW4zMjogTVNWQyBidWlsZCBmaXggZm9yIG5ldHNubXBtaWJzLmRzcAoKMjAwNS0xMS0yMyAwNDoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1vdmUgb3BlbmluZyBicmFjZSBvdXQgb2YgYWx0ZXJuYXRlICNpZmRlZiBjbGF1c2VzCiAgIChjb25mdXNlcyBicmFjZS1tYXRjaGluZyBlZGl0b3JzISkKCjIwMDUtMTEtMjIgMTY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICB1cGRhdGUgZGVwcyBmb3IgZGVsZXRlZCBmaWxlCgoyMDA1LTExLTIyIDA1OjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBCZWVmIHVwIHRoZSAicmVsb2NhdGFibGUgZXhlYyIgd2FybmluZyBtZXNzYWdlLgoKMjAwNS0xMS0yMiAwNTozNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCBTY2hlZHVsZSBNSUIgY29uZmlndXJhdGlvbi4KCjIwMDUtMTEtMjEgMjA6NDAgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgd2luMzIvYWdlbnRfbW9kdWxlX2luaXRzLmgKLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzI6ICBNU1ZDIGFuZCBDeWd3aW4gY29tcGlsZSBmaXhlcwoKMjAwNS0xMS0yMSAxOToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlczsgcmVpbXBsZW1lbnRlZCBpbiBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlCgoyMDA1LTExLTIxIDA2OjI3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlzZSB0aGUgRGlzTWFuIEV2ZW50LU1JQiBkb2N1bWVudGF0aW9uIHRvIG1hdGNoIHRoZSBuZXcgaW1wbGVtZW50YXRpb24uCgoyMDA1LTExLTIxIDA2OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIFByb3Blcmx5IGRldGVjdCBhbGwgdGhyZWUgc3R5bGVzIG9mIG1vbml0b3IgZXhwcmVzc2lvbiBhdXRvbWF0aWNhbGx5LgogICAoVGhpcyBtYWtlcyB0aGUgJy10JyBvcHRpb24gcmVkdW5kYW50LCB0aG91Z2ggaXQncyBzdGlsbCBhY2NlcHRlZCkKCjIwMDUtMTEtMjAgMTg6NTEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hFQ0tBTkRESUUoKSBzaG91bGQgRVhQRUNUUkVTVUxUIDAKCjIwMDUtMTEtMjAgMTg6MzAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBtYWtlIHRoZSB0ZXN0IGFsc28gRkFJTCBvbiAiV3JvbmcgVHlwZSAoc2hvdWxkIGJlIC4uLikiCgoyMDA1LTExLTIwIDE4OjI4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBDSEVDS0FORERJRSgpIHRvIEZBSUwgaWYgYSBwYXR0ZXJuICppcyogZm91bmQKCjIwMDUtMTEtMjAgMTg6MDAgIHRhbmRlcnMKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICB1cGRhdGUgTEFTVC1VUERBVEVEIGZpZWxkIHRvIHJlZmxlY3QgcmVjZW50IGNoYW5nZXMKCjIwMDUtMTEtMjAgMTc6NDggIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBjbGFyaWZ5IHRoYXQgImhvc3QiIGlzIG9ubHkgZW5hYmxlZCBieSBkZWZhdWx0IG9uIHRoZSBtYWpvciBzdXBwb3J0ZWQgcGxhdGZvcm1zCgoyMDA1LTExLTIwIDE3OjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGRlc2NyaXB0aW9uIGZvciBlbmdpbmVJRAoKMjAwNS0xMS0yMCAxNzoyNyAgdGFuZGVycwoKICAgKiBORVdTLCBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbm9QZXJzaXN0ZW50TG9hZCBhbmQgbm9QZXJzaXN0ZW50U2F2ZQoKMjAwNS0xMS0yMCAxNjozMCAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB1c2UgLXEgb24gZmluYWwgY3ZzdXBkYXRlOyBhZGQgc3BhY2luZwoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE3ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE2OjA3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTIwIDE2OjA1ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMjAgMTU6NTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgLSByZW1vdmUgaG93dG8gb24gbGlidG9vbCB2ZXJzaW9uaW5nIG1hdGNoIHJlbGVhc2UgbnVtYmVycwogICAtIHVwZGF0ZSBzdWdnZXN0ZWQgY29uZmlndXJlIHRlc3Qgb3B0aW9ucwoKMjAwNS0xMS0yMCAxNTozOCAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB1c2UgZW5hYmxlLWlwdjYgaW5zdGVhZCBvZiBzcGVjaWZ5aW5nIHRyYW5zcG9ydHMKCjIwMDUtMTEtMjAgMTU6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE1OjM1ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFkZCBtaXNzaW5nIDsKCjIwMDUtMTEtMjAgMTQ6NDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBidWcgMTM0NzcwOTogc25tcGQgZG9lc250IGhhbmRsZSBsYXJnZSBsb2cgZmlsZXMgKD49IDJHQikgZ3JhY2VmdWxseQogICAgIC0gcGFydGlhbCBmaXg6IG9wZW4vdHJ1bmNhdGUgbG9nIGZpbGVzIGF0IHN0YXJ0dXAKCjIwMDUtMTEtMjAgMTQ6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldyBkcyBib29sZWFuIGZvciBhcHBlbmQgbG9nZmlsZXMsIGluc3RlYWQgb2YgbG9jYWwgdmFyCgoyMDA1LTExLTIwIDE0OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIG5ldyBsaWIgYm9vbGVhbiBmb3IgYXBwZW5kIGxvZ2ZpbGVzCgoyMDA1LTExLTE4IDE2OjU3ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgc3VwcG9ydCBmb3IgY291bnRlcnMgaW4gcmVhZF9jb25maWdfcmVhZF9tZW1vcnkKCjIwMDUtMTEtMTggMTQ6MjEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBhbGxvdyBzZXNzaW9uIHBhcmFtcyB0byBvdmVycmlkZSBnbG9iYWwgZGVmYXVsdHMKCjIwMDUtMTEtMTggMTA6NTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aXNlIHRoZSBpbnRyb2R1Y3Rpb24gdG8gc25tcGQgY29uZmlnIGZpbGVzLgoKMjAwNS0xMS0xOCAxMDozNiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgRGlzTWFuIEV2ZW50IE1JQiBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNyAyMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBhY2NvdW50IGZvciBwb3NzaWJsZSBOVUxMIHZhbHVlIGZyb20gZnVuY3Rpb24KCjIwMDUtMTEtMTcgMTc6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgaW5jbHVkZSBDT05GSUdVUkVfT1BUSU9OUyBpbiByZXN1bHRzIGVtYWlsCgoyMDA1LTExLTE3IDE3OjAzICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGlmZGVmIF9fYXBsaGEsIGlmZGVmIG91dCBvcHRpbWl6YXRpb24gY2F1c2luZyBhbHBoYS1saW51eDEgdG8gc2VnZmF1bHQKCjIwMDUtMTEtMTcgMTQ6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgYWRkIG1lbW9yeS92bXN0YXRzIGZvciBmcmVlYnNkNgoKMjAwNS0xMS0xNyAxMjo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGV4cGxpY3RseSBjb25maWcgaXB2NiB0cmFuc3BvcnRzOyBlbmFibGUtaXB2NiBpbnN0ZWFkCgoyMDA1LTExLTE3IDEyOjQxICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIC0gdXNlIHNlbmRtYWlsIG9uIGZyZWVic2QgdG9vCiAgIC0gYWRkIEVycm9ycy1UbyBoZWFkZXIgdG8gbWFpbAogICAtIGVjaG8gdG8vc3ViamVjdCB0byBzdGRvdXQKCjIwMDUtMTEtMTcgMTE6NDUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdHJhcCBkZXN0aW5hdGlvbiBoYW5kbGluZy4KCjIwMDUtMTEtMTcgMTE6MTYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTWlub3Igd29yZHNtaXRoaW5nIGFuZCBmb3JtYXR0aW5nIGNvcnJlY3Rpb25zLgoKMjAwNS0xMS0xNyAxMToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIGV4Y2x1ZGUgaW50ZXJmYWNlIGdldC9uZXh0IHByb3RvdHlwZXMgaWYgdXNpbmcgbWZkIHJld3JpdGVzCgoyMDA1LTExLTE3IDExOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZXhwbGljaXQgY2FzdCB0byBtYXRjaCBwcm90b3R5cGUKCjIwMDUtMTEtMTcgMTE6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGU7IGFkZCBDKysgZXh0ZXJuIHdyYXBwZXJzCgoyMDA1LTExLTE3IDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIHF1aXRlIGNvbXBpbGVyOiBhZGQgaGVhZGVycyBmb3IgbWlzc2luZyBwcm90b3R5cGVzCgoyMDA1LTExLTE3IDEwOjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIHNwZWNpYWwgY2FzZSBmb3Igb3BlbmJzZCBtYWlsCgoyMDA1LTExLTE3IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmg6CgogICBDbGFyaWZ5IHRoYXQgdGhlICJldmVudC1taWIuaCIgd2FybmluZyAqaXMqIGEgd2FybmluZyByYXRoZXIgdGhhbgogICBzaW1wbHkgYSBub3RlICh3aGljaCB3b3VsZCBiZWxvbmcgaW4gdGhlIGRvY3VtZW50YXRpb24pCgoyMDA1LTExLTE2IDE2OjM2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTEtMTYgMTY6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBuZXRic2Qgd2FudHMgbmV0aW5ldC9pcDYuaCBiZWZvcmUgbmV0aW5ldDYvaW42X3BjYi5oCgoyMDA1LTExLTE2IDE2OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTEtMTYgMTY6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkaXNhbGxvdyBpcHY2IHRyYW5zcG9ydHMgaWYgaXB2NiBub3QgZW5hYmxlZAoKMjAwNS0xMS0xNiAxNTozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk6IGV4cGxpY2l0IGFyZ3VtZW50IGNhc3QKCjIwMDUtMTEtMTYgMTU6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgQysrIGNsZWFudXA6IGRvbid0IHVzZSBuZXcgYXMgdmFyaWFibGUgbmFtZQoKMjAwNS0xMS0xNiAxNToyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZQoKMjAwNS0xMS0xNiAxNToxOCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OiBleHBsaWNpdCBhcmd1bWVudCBjYXN0CgoyMDA1LTExLTE2IDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAo6CgogICBtb3ZlIGluaXRpYWxpemVfdGFibGVfaWZYVGFibGUgcHJvdG90eXBlIHRvIGhlYWRlcgoKMjAwNS0xMS0xNiAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgcHJvdG90eXBlcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaW50ZXJmYWNlIGZ1bmN0aW9ucwoKMjAwNS0xMS0xNiAxNTowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIEMrKyBleHRlcm4gIkMiIHdyYXBwZXJzCgoyMDA1LTExLTE2IDE1OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgaW5jbHVkZSBoZWFkZXIgdy9uZWVkZWQgcHJvdG90eXBlCgoyMDA1LTExLTE2IDE0OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIEMrKyBjbGVhbnVwOiBkb24ndCB1c2UgbmV3IGFzIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAtIEMrKyBjbGVhbnVwCiAgICAgLSBkb24ndCB1c2UgX19QKCkgKG5vd2hlcmUgZWxzZSBpbiB0aGUgY29kZSB1c2VzIGl0KQogICAgIC0gZG9uJ3QgdXNlIG5ldyBhcyBhIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTI6MTcgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIC8vIC0+IC8qICovCgoyMDA1LTExLTE2IDEwOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uaDoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIGZvciBOSV9NQVhIT1NUIGlmIG1pc3NpbmcuCgoyMDA1LTExLTE2IDEwOjEwICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMKLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiwgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZToKCiAgIGJ1aWxkIGZpeGVzIGZvciBzb2xlIC0tZGlzYWJsZS1zbm1wdjEgKCp3aXRob3V0KiAtLWRpc2FibGUtc25tcHYyYykKCjIwMDUtMTEtMTYgMDg6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKOgoKICAgYnVpbGQgZml4IGZvciAtLWRpc2FibGUtc25tcHYxLy0tZGlzYWJsZS1zbm1wdjJjCgoyMDA1LTExLTE2IDA2OjIwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBidWlsZCBmaXggZm9yIC0tZGlzYWJsZS1zbm1wdjEvLS1kaXNhYmxlLXNubXB2MmMKCjIwMDUtMTEtMTYgMDU6NTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQmV0dGVyIGxheW91dCBvZiAnaW5qZWN0X2hhbmRsZXInIGRvY3VtZW50YXRpb24uCgoyMDA1LTExLTE2IDA1OjA5ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIGxvYWQgYXZlcmFnZSBhbmQgZmlsZSBtb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24uCiAgIChwbHVzIGFzc29ydGVkIHRpZHlpbmcgdXApLgoKMjAwNS0xMS0xNiAwNDo1OCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgZGlzayBtb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24KCjIwMDUtMTEtMTYgMDQ6NTcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIHByb2Nlc3MgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uCgoyMDA1LTExLTE2IDA0OjU3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBIb3N0IFJlc291cmNlcyBjb25maWd1cmF0aW9uCgoyMDA1LTExLTE2IDA0OjU2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBzeXN0ZW0gZ3JvdXAgY29uZmlndXJhdGlvbi4KCjIwMDUtMTEtMTYgMDQ6NTUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ29uc29saWRhdGUgdGhlICJzeXN0ZW0gaW5mb3JtYXRpb24iLCBhbmQgImFnZW50IGJlaGF2aW91ciIgY29uZmlndXJhdGlvbgogICBkaXJlY3RpdmVzIHRvIGJlIGRvY3VtZW50ZWQgdG9nZXRoZXIgKGFzIHR3byBkaXN0aW5jdCBzZWN0aW9ucykuCgoyMDA1LTExLTE1IDIxOjE0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1bmNvbW1lbnQgb3V0IGNsZWFudXAgY29kZQoKMjAwNS0xMS0xNSAyMToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgZXh0cmEgZXJyb3IgY2hlY2tpbmcgZm9yIGZyZWVic2QKCjIwMDUtMTEtMTUgMjE6MDggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICByZW1vdmUgY3BwICN3YXJuaW5nIGxpbmVzCgoyMDA1LTExLTE1IDIxOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIC0gdXNlIGZpbmQgZm91bmQgYnkgY29uZmlndXJlCiAgIC0gdHdlYWsgY29tbWVudGNoZWNrIHJlZ2V4cCB0byBtaXNzIHJlZ2V4cCBpbiBwZXJsIGhlYWRlcgoKMjAwNS0xMS0xNSAyMDozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICAtIHNvbGFyaXMgZml4ZXMKICAgICAtIGRvbid0IHNldCBzb3J0ZWQgZmxhZyBmb3Igc29sYXJpcyAoZGF0YSBvbiBzZiBjZiA1LjkgaXMgbm90IHNvcnRlZCkKICAgICAtIHJldmVyc2UgY29uZGl0aW9uIG9uIGlkbGUgdGVzdCBzbyBzb21lIGRhdGEgZ2V0cyByZXR1cm5lZAoKMjAwNS0xMS0xNSAxOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwo6CgogICB1c2Ugc3RhdGUgZnJvbSBhcnAgZW50cnkgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUKCjIwMDUtMTEtMTUgMTk6MjQgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkZWZhdWx0IHJvdyBzdGF0dXMgdG8gYWN0aXZlCgoyMDA1LTExLTE1IDE5OjI0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kOgoKICAgaW50cm9kdWNlIHNubXBkIHRlc3QgZm9yIGV4dGVuZAoKMjAwNS0xMS0xNSAxOToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIC0gZG9uJ3QgaWdub3JlIGluY29tcGxldGUgZW50cmllcwogICAtIHNldCBzdGF0ZSB0byByZWFjaGFibGUgaWYgISBpbmNvbXBsZXRlCgoyMDA1LTExLTE1IDE5OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTUgMTg6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgc29tZSBvcHRpbWl6YXRpb24KCjIwMDUtMTEtMTUgMTg6MzIgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgZG9jdW1lbnQgZGVmYXVsdCBwaW5nIGludGVydmFsCgoyMDA1LTExLTE1IDE4OjEyICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlub3IgdHdlYWtzCgoyMDA1LTExLTE1IDE3OjQ2ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBtaW5vciB0d2Vha3MKCjIwMDUtMTEtMTUgMTE6MzcgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgcGluZywgcG9uZzsgcmVzdG9yZSBuZXRzbm1wX3J1bm5pbmcgY2hhbmdlcwoKMjAwNS0xMS0xNSAxMDo1MSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBBZ2VudFggY29uZmlnLgoKMjAwNS0xMS0xNSAwOTozNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBkbG1vZCwgcHJveHkgYW5kIFNNVVggZGVzY3JpcHRpb25zCiAgIChwbHVzIGFzc29ydGVkIG1pbm9yIHR3ZWFrcykKCjIwMDUtMTEtMTUgMDU6MjggIGR0czEyCgogICAqIEZBUToKCiAgIEV4cGFuZCBkaXNjdXNzaW9uIG9mIG1pYjJjIGNvbmZpZ3MuCgoyMDA1LTExLTE0IDIwOjE5ICBhbGV4X2IKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgV2luMzI6ICBzbm1wbmV0c3RhdCBJUHY2IGJ1aWxkIGZpeGVzCgoyMDA1LTExLTE0IDE5OjExICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIFdlIGZpbmFsbHkgaGF2ZSBzbm1wZCBlbWJlZGRlZCBwZXJsIHRlc3RpbmcuIEZlZWwgZnJlZSB0byByZXZpZXcvc2NyZWFtL2JhY2sgb3V0IC0tIG9yIGFwcGxhdWQuCgoyMDA1LTExLTE0IDE4OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICAtIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMKICAgLSBhZGQgYWRkaXRpb25hbCBlcnJvciBoYW5kbGluZy9sb2dnaW5nCiAgIC0gbW9yZSBjb21tZW50cwogICAtIGRveHlnZW4gZG9jcwoKMjAwNS0xMS0xNCAxODowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBTVEREb21haW4uYywgc25tcGxvY2Fsc20uYzoKCiAgIHJlbW92ZSBDKysgcmVsYXRlZCBjb21tZW50cwoKMjAwNS0xMS0xNCAxNzo1OSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGRvbid0IG1hbnVhbCB1cGRhdGUgdG8gU0Ygc2VydmVycwoKMjAwNS0xMS0xNCAxNzo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gdW5kZWZpbmUgIE5FVFNOTVBfUEFSQU5PSURfTEVWRUxfSElHSCwgZG9jdW1lbnQgd2hhdCBpdCBkb2VzCiAgIC0gdXBkYXRlIGxvY2sgYXNzZXJ0L3dhcm4gY2FzZXMgZm9yIGxvY2sgcGVyIGNhbGxiYWNrIGV4cGVjdGF0aW9ucwoKMjAwNS0xMS0xNCAxNzoyOCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMS0xNCAxNzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmM6CgogICByZW1vdmUgY29tbWVudGVkIG91dCBpbmNsdWRlcwoKMjAwNS0xMS0xNCAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHJlbW92ZSBjKysgc3R5bGUgY29tbWVudGVkIG91dCBjb2RlCgoyMDA1LTExLTE0IDE3OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgY29tbWVudHMKCjIwMDUtMTEtMTQgMTM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IGJ1ZyAxMzUyNTU0OiBTZWcgZmF1bHQgaW4gbmV0c25tcF9jb250YWluZXJfdGFibGVfcm93X2luc2VydAoKMjAwNS0xMS0xNCAxMzoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG1vdmUgcnVubmluZyBmbGFnIGJhY2sgaW50byBhcHBsaWNhdGlvbnMKICAgLSByZXN0b3JlIGluZmluaXRlIGxvb3AgaW4gZ2V0LW5leHQgbG9vcCBoYW5kbGluZwoKMjAwNS0xMS0xNCAxMTozMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHNtdXhzb2NrZXQgYW5kIGVuaGFuY2UgQWdlbnRYKgoKMjAwNS0xMS0xNCAxMDo1NCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIGZpeGVzIGFmdGVyIHJldmlld2luZyBEYXZlJ3MgY2hhbmdlcwoKMjAwNS0xMS0xNCAxMDo0MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBlbWJlZGRlZCBwZXJsIGRvY3VtZW50YXRpb24uCgoyMDA1LTExLTE0IDA2OjM1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcywgYW5kIHNwZWNpZnkgYSBtb3JlIGRlZmluaXRlIFNFVAogICBwcm90b2NvbCBmb3IgJ3Bhc3NfcGVyc2lzdCcgLSBjb21wYXRpYmxlIHdpdGggdGhlCiAgIGN1cnJlbnQgYmVoYXZpb3VyLCBidXQgb3BlbmluZyB0aGUgZG9vciBmb3IgbW9yZQogICBmbGV4aWJsZSBoYW5kbGluZyBpbiB0aGUgZnV0dXJlLgoKMjAwNS0xMS0xNCAwNjoyOSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBwYXNzLXRocm91Z2ggc3VwcG9ydC4KCjIwMDUtMTEtMTQgMDY6MjIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgImV4ZWMiLyJleHRlbmQiIGRvY3VtZW50aW9uCgoyMDA1LTExLTE0IDA1OjU1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENvbnNvbGlkYXRlIGFsbCB0aGUgZXh0ZW5zaW9uIG1lY2hhbmlzbXMgdG8gYmUgZG9jdW1lbnRlZCB0b2dldGhlci4KCjIwMDUtMTEtMTQgMDU6NTMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IHRoZSBBY2Nlc3MgQ29udHJvbCBzZWN0aW9uLCBpbmNsdWRpbmcgc2VwYXJhdGlvbiBpbnRvCiAgIGRpc3RpbmN0IHN1YnNlY3Rpb25zLgoKMjAwNS0xMS0xNCAwNTo1MiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBTaW1wbGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGF1dGgqIGRpcmVjdGl2ZXMuCgoyMDA1LTExLTE0IDA0OjQxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggdHlwbwoKMjAwNS0xMS0xNCAwMTo1MiAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjaGVjayBmb3IgZ3BnIGtleSBpbnN0ZWFkIG9mIHVzZXJpZAoKMjAwNS0xMS0xNCAwMTo0NyAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgb3B0aW9uIHRvIHJlcGVhdCBmYWlsZWQgc3RlcHMKCjIwMDUtMTEtMTQgMDE6NDQgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozNyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjM2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgYWdlbnR4IHN1YmFnZW50IGNvbm5lY3QgYWZ0ZXIgY29uZmlncyBmaXgKCjIwMDUtMTEtMTQgMDE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTE0IDAxOjI1ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MTkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMToxMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDA6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVtb3ZlIHVubmVlZGVkIHJlcG9zaXRvcnkgc3BlYwoKMjAwNS0xMS0xMyAyMjoxMCAgYWxleF9iCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGluc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIC1XaW4zMjogQWRkIG1pc3NpbmcgbWliMmMtZGF0YSB0byBpbnN0YWxsZXIKICAgLVdpbjMyOiBVc2Ugd2lsZGNhcmRzIGluIGluc3RhbGxlciBmb3IgaW5zdGFsbGluZyBmaWxlcyB0byBoZWxwIHByZXZlbnQKICAgIG1pc3NpbmcgZmlsZXMuCgoyMDA1LTExLTEzIDIyOjAwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gbmV3IG5ldHNubXBfcnVubmluZyBnbG9iYWwgaW4gYWdlbnQgbGliCiAgICAgLSB1c2VkIGluIHBsYWNlIG9mIHdoaWxlKDEpIGluIGdldCBuZXh0IHByb2Nlc3NpbmcgbG9vcAogICAgIC0gZGFlbW9ucyB3L3NpZ2hhbmRsZXIgdXBkYXRlZCB0byBjbGVhciBmbGFnIG9uIHNpZ3Rlcm0KCjIwMDUtMTEtMTEgMjE6NTUgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBXaW4zMjogIEZpeCBOSV9NQVhIT1NUIGRlZmluZS4KCjIwMDUtMTEtMTEgMjE6MTEgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFdpbjMyOiBXb3JrIGFyb3VuZCBmb3IgYnVnIDEyNzg3NDM6ICBJZiB0cnlpbmcgdG8gcmV2ZXJzZSBsb29rdXAKICAgMTI3LjAuMC4xLCByZXR1cm4gJ2xvY2FsaG9zdCcgdG8gcHJldmVudCBXaW5kb3dzIGZyb20gcmV0dXJuaW5nIHRoZQogICBsb2NhbCBjb21wdXRlciBuYW1lIGJlY2F1c2UgaXQgaWdub3JlcyB0aGUgaG9zdHMgZmlsZS4KCjIwMDUtMTEtMTAgMTk6NDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0OgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTAgMTk6MTggIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggc3ludGF4IHR5cG8KCjIwMDUtMTEtMTAgMTg6NTUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBjbGFyaWZ5IHRoYXQgdGhpcyB0ZXN0IHJlcXVpcmVzIGEgd29ya2luZyB1ZHBUYWJsZQoKMjAwNS0xMS0xMCAxODoyMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg6CgogICBidWlsZCBmaXggZm9yIE9wZW5CU0QvU1BBUkMgMy43CgoyMDA1LTExLTEwIDE0OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzIHRvIHN1YmFnZW50X2luaXQKICAgICAtIGRvbid0IGNvbm5lY3QgdG8gbWFzdGVyIGluIHN1YmFnZW50X2luaXQsIGluc3RlYWQgcmVnaXN0ZXIgUE9TVF9DT05GSUcKICAgICAgIGNhbGxiYWNrIHRvIGRvIHNvCgoyMDA1LTExLTEwIDE0OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSBmaW5lciBncmFpbmVkIGxvY2tpbmcgb2YgY2FsbGJhY2tzIChwZXIgc3ViaWQpLCBhbGxvd2luZyBhIGNhbGxiYWNrIHRvCiAgICAgbWFuaXB1bGF0ZSAocmVnL3VucmVnKSBvdGhlciBjYWxsYmFja3MKICAgLSBtb3JlIGRlYnVnZ2luZwogICAtIGFkZCBzdGF0aWMgZmxhZyBmb3IgaW5pdAogICAgIC0gbWVtc2V0IGFuZCBpbml0IHZhcmlhYmxlcyBpbiBpbml0X2NhbGxiYWNrIGlmIG5vdCBkb25lIHlldAogICAgIC0gY2FsbCBpbml0X2NhbGxiYWNrLCBpZiBuZWVkZWQsIGZyb20gYWxsIGZ1bmN0aW9ucwoKMjAwNS0xMS0xMCAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgcmVzdG9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAobm8gc3ViYWdlbnQgaW5pdCBpbiBpbml0X21hc3Rlcl9hZ2VudCgpKQoKMjAwNS0xMS0xMCAxNDoxMiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcms6CiAgICAgcmVzdG9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAoY2FsbCBzdWJhZ2VudCBpbiBpbiBpbml0X2FnZW50KQoKMjAwNS0xMS0xMCAwNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQtbWliLmgsCiAgICAgb2xkLWV2ZW50LW1pYi5oOgoKICAgU3BsaXQgb3JpZ2luYWwgYW5kIG5ldyBFdmVudCBNSUIgaW1wbGVtZW50YXRpb25zIGludG8gZGlzdGluY3QKICAgIm1vZHVsZSBncm91cCIgaGVhZGVycywgYW5kIHVzZSB0aGUgb3JpZ2luYWwgbmFtZSB0byB3YXJuIG9mIHRoZSBjaGFuZ2VzLgoKMjAwNS0xMS0xMCAwNToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgc3VwcG9ydCBmb3IgTUlCIG1vZHVsZXMgdG8gZ2VuZXJhdGUgY29uZmlndXJlIHdhcm5pbmdzIG9yIGVycm9ycwoKMjAwNS0xMS0xMCAwNDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgU2lsZW5jZSBhIGNvdXBsZSBvZiBjb21waWxlciB3YXJuaW5ncwoKMjAwNS0xMS0xMCAwNDo0NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRG9uJ3QgY2hva2Ugb24gbWlzc2luZyBpbnRlcmZhY2VzIChhbmQgc2lsZW5jZSBhIGNvdXBsZSBvZiBjb21waWxlciB3YXJuaW5ncykKCjIwMDUtMTEtMTAgMDQ6NDQgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0LmMsIGluZXQ2LmM6CgogICBTdXBwcmVzcyBoZWFkZXJzIGZvciBlbXB0eSBUQ1AgZGlzcGxheXMgKGFuZCBmaXggYSBtaW5vciB0eXBvKQoKMjAwNS0xMS0wOSAyMTozMyAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICAtV2luMzI6IEZvcmNlIEV2ZW50IExvZywgU0NNLCByZWdpc3RyeSBldGMgdG8gdXNlIGxvbmcKICAgIG5hbWUgZm9yIHNlcnZpY2UgKE5ldC1TTk1QIEFnZW50IGluc3RlYWQgb2Ygc25tcGQpLiAgTmVlZGVkCiAgICBiZWNhdXNlIG9mIG5ldyAtbiBvcHRpb24gaW4gc25tcGQuICBOb3RlOiAgVGhlIHNubXBkIC1uIG9wdGlvbgogICAgZG9lcyBub3QgY2hhbmdlIHRoZSBXaW5kb3dzIHNlcnZpY2UgbmFtZSBldGMsIG9ubHkgdGhlIGNvbmZpZwogICAgZmlsZSBsb2FkZWQuCgoyMDA1LTExLTA5IDE5OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAibWFrZSB0ZXN0LW1pYnMiIHN0aWxsIHdvbid0IHdvcmsgaWYgYnVpbGQgZGlyICE9IHNvdXJjZSBkaXIsIGJ1dCBpdCdzIGNsb3NlciBub3cKCjIwMDUtMTEtMDkgMTg6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmgsIHN1YmFnZW50Lmg6CgogICBhZ2VudHggaW5pdCByZXdvcms6IHVwZGF0ZSBwcm90b3R5cGVzIGZvciByZW5hbWVkIGZ1bmN0aW9ucwoKMjAwNS0xMS0wOSAxODoyNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGRlYnVnIG1lc3NhZ2Ugc2hvdWxkIG1hdGNoIGNvZGUKCjIwMDUtMTEtMDkgMTc6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZXhlY3V0YWJsZXMsIG1ha2VmaWxlcywgdHh0IGZpbGVzLCBzdWJhZ2VudCBmaWxlcwoKMjAwNS0xMS0wOSAxNzozMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZQoKMjAwNS0xMS0wOSAxNzoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgc3BlY2lmaWMgZXJyb3IgcmVnZXhwCgoyMDA1LTExLTA5IDE3OjI2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFnZW50eCBpbml0IHJld29yazogdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZXMKCjIwMDUtMTEtMDkgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgLSBpZmRlZiBlbnRpcmUgbW9kdWxlIGJhc2VkIG9uIHVzaW5nIGFnZW50eCBzdWJhZ2VudCBtb2R1bGUKICAgICAtIHJlbmFtZSBpbml0IGZ1Y250aW9uIHNvIHdlIGNhbiBjb250cm9sIHdoZW4gaXQgaXMgY2FsbGVkCiAgICAgLSByZW1vdmUgc3ViYWdlbnRfcHJlX2luaXQKICAgICAgIC0gY29uZmlnIHN0dWZmIG1vdmVkIGludG8gYWdlbnR4X2NvbmZpZy5jCiAgICAgICAtIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBtb3ZlZCB0byBzdWJhZ2VudF9pbml0LCBub3cgdGhhdCBpdCdzIGNhbGxlZAogICAgICAgICBhZnRlciBjb25maWdzIGhhdmUgYmVlbiByZWFkCgoyMDA1LTExLTA5IDE3OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIC0gY29uc29saWRhdGUgbWFzdGVyIGFuZCBzdWJhZ2VudCBjb25maWdzIGluIHRoaXMgZmlsZQogICAgIC0gc2xpZ2h0IGNvZGUgcmUtb3JnIChubyBjaGFuZ2VzOyBtb3ZlIGFnZW50eCBzb2NrZXQgcGFyc2luZyB0byB0b3ApCiAgICAgLSByZWdpc3RlciBwaW5nIGludGVydmFsIGNvbmZpZyBhbmQgc2V0IGRlZmF1bHQKICAgICAtIHJlbmFtZSBpbml0IGZ1bmN0aW9uIHNvIGNvbmZpZ3VyZSB3b24ndCBhZGQgaXQgdG8gbW9kdWxlcyBpbml0cywgc28gd2UKICAgICAgIGNhbiBjYWxsIGl0IHdoZW4gd2Ugd2FudCBpdCB0byBiZSBjYWxsZWQKCjIwMDUtMTEtMDkgMTc6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yazogaW5pdCBzdWJhZ2VudCBpbiBpbml0X21hc3Rlcl9hZ2VudAogICAtIGFzc2VydCBpZiByb2xlIGlzbid0IG1hc3RlciBvciBzdWItYWdlbnQKCjIwMDUtMTEtMDkgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgLSBkb24ndCBpbml0IHN1YmFnZW50IGhlcmUgKGNvbmZpZ3MgaGF2ZW4ndCBiZWVuIHJlYWQgeWV0KQogICAgIC0gb25seSBpbml0IG1hc3Rlci9zdWIgY29uZmlncwoKMjAwNS0xMS0wOSAxNzoxMiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgdXBkYXRlIGZvciBuZXcgdGFibGVzCgoyMDA1LTExLTA4IDA3OjIxICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgbWFpbi5jLCBuZXRzdGF0Lmg6CgogICBJbXBsZW1lbnQgT3Blbi9OZXRCU0Qtc3R5bGUgb2N0ZXQgaW50ZXJmYWNlIGRpc3BsYXkuCgoyMDA1LTExLTA4IDA3OjE3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBSaWdodC1qdXN0aWZ5IGhlYWRpbmdzIGZvciBjb3VudGVyIHZhbHVlcy4KICAgKGxvb2tzIG5lYXRlciB3aGVuIGluZGl2aWR1YWwgdmFsdWVzIGJlY29tZSByZWxhdGl2ZWx5IHdpZGUpCgoyMDA1LTExLTA4IDA3OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBGaXggcHJvYmxlbXMgd2Fsa2luZyB0aGUgSVB2NiBjb25uZWN0aW9uIHRhYmxlcy4KCjIwMDUtMTEtMDggMDY6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgT25seSBzY2hlZHVsZSBhdXRvbWF0aWMgbG9hZGluZyBvbmNlIGZvciBhbnkgZ2l2ZW4gY2FjaGUuCgoyMDA1LTExLTA3IDIyOjQ2ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgQ2hhbmdlTG9nIG5vdGUKCjIwMDUtMTEtMDcgMjE6NDUgIGFsZXhfYgoKICAgKiB3aW4zMi86IG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIFdpbjMyOiAgTVNWQyBidWlsZCBmaXhlcy4KCjIwMDUtMTEtMDcgMTk6NDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsOgoKICAgaW50cm9kdWNlIGVtYmVkZGVkIHBlcmwgdGVzdCBmb3Igc25tcHRyYXBkICh0b28gZmFuY3kgdG8gcmVzaXN0KQoKMjAwNS0xMS0wNyAxOTo0MiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgYnVpbGQgZml4OiBmc3MtPmZmcwoKMjAwNS0xMS0wNyAxODo1NCAgdGFuZGVycwoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICBmaXggdHlwbwoKMjAwNS0xMS0wNyAxODozNCAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBmaXggdHlwb3MKCjIwMDUtMTEtMDcgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZHJvcCBkZWZhdWx0IHRpbWVvdXQgZG93biB0byBJTlRfTUFYLCBhbmQgZG9jdW1lbnQgd2h5CgoyMDA1LTExLTA3IDA5OjM5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogTWFrZWZpbGUuaW4sIGZmcy5jLCBpZi5jLAogICAgIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgVHdlYWtzIHRvIHN1cHBvcnQgYnVpbGRpbmcgdW5kZXIgV2luZG93cwogICAgIChpbmNsdWRpbmcgcmVuYW1lZCAnZmZzKCknIHJvdXRpbmUsIHRha2VuIGZyb20gT3BlbkJTRCBzb3VyY2UgdHJlZSkKCjIwMDUtMTEtMDcgMDY6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIERpc3BsYXkgaW50ZXJmYWNlIGFkZHJlc3NpbmcgaW5mb3JtYXRpb24uCgoyMDA1LTExLTA3IDAxOjU3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU3ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMDcgMDE6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTA3IDAxOjQzICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMDcgMDE6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZG9uJ3QgdHJ5IHRvIHVzZSBhZ2VudCB2YXIgaW4gYmFzZSBsaWIgKGl0IHdhcyBsYXRlLCBvaz8pCgoyMDA1LTExLTA3IDAwOjE2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYnJlYWsgb3V0IG9mIHdhaXRpbmcgbG9vcHMgaWYgISBydW5uaW5nCgoyMDA1LTExLTA2IDIyOjM0ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6ICBNb3ZlIHVpbnQxNl90IGRlZmluaXRpb24gdG8gc3RhdGljIHdpbjMyIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA1LTExLTA2IDIxOjI3ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTExLTA1IDE4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYnJlYWsgb3V0IG9mIGdldG5leHQgbG9vcCBpZiAhIHJ1bm5pbmcKCjIwMDUtMTEtMDUgMTc6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIG9ubHkgdXNlICJ1bGltaXQgLXYiIGluIGJhc2gKCjIwMDUtMTEtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMS0wNSAxNzoyNCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGp1c3QgZXJyb3IgcmVnZXg6IGRvbid0IGZhaWwgb24gJmVudHJ5LT5zY2hlZExhc3RGYWlsZWQsICZmYWlsIGV0Yy4KCjIwMDUtMTEtMDUgMTc6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICAtIGFsbG93IG92ZXItcmlkZSBvZiBOU0JfKERJU1R8RVhUUkEpX01PRFVMRVMKICAgLSByZW1vdmUgdGVzdGhhbmRsZXIgZnJvbSBFWFRSQSBtb2R1bGVzIChoYW5ncyBzbm1wd2FsaykKICAgLSBzZXQgU05NUF9UTVBESVJfQkFTRSAoZnV0dXJlIHVzZSkKCjIwMDUtMTEtMDUgMTc6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEknbGwgdGFrZSBteSBwb3J0IG51bWJlcnMgdW5zaWduZWQsIHBsZWFzZQoKMjAwNS0xMS0wNSAxNjo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgaW5jbHVkZSBuZXRpbmV0L3RjcF92YXIuaCwgaWYgYXZhaWxhYmxlCgoyMDA1LTExLTA1IDE2OjM4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBkZWxpYmVyYXRlbHkgaWdub3JlIHVsaW1pdCBmYWlsdXJlcwoKMjAwNS0xMS0wNSAxNjoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgcmVtb3ZlIHN5cy9zb2NrZXR2YXIuaCwgc2luY2UgbWliSUlfY29tbW9uLmggYWxyZWFkeSBoYXMgaXQKCjIwMDUtMTEtMDUgMTQ6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIHN3aXRjaCBkaXNtYW4gbW9kdWxlIGxpc3QgYmFjayB0byBldmVudC1taWIgKHN0aWxsIHVzZXMgbmV3IGNvZGUpCiAgIC0gcmVtb3ZlIGV2ZW50IG1pYiBjb25mbGljdCBjaGVjayAoaGFuZGxlZCBieSBjb25maWdfZXhjbHVkZXMpCgoyMDA1LTExLTA1IDE0OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgLSBjZW50cmFsaXplIGV2ZW50IG1pYiByZXF1aXJlcyBpbiBvcmlnaW5hbCBldmVudC1taWIuaAogICAtIGRlZmF1bHQgdG8gcmUtd3JpdGVzCiAgIC0gd2hpY2hldmVyIGltcGxlbWVudGF0aW9uIGlzIHNlbGVjdGVkLCBjb25maWdfZXhjbHVkZSB0aGUgb3RoZXIKCjIwMDUtMTEtMDUgMTQ6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQuaDoKCiAgIC0gY2VudHJhbGl6ZSBldmVudCBtaWIgcmVxdWlyZXMgaW4gb3JpZ2luYWwgZXZlbnQtbWliLmgKCjIwMDUtMTEtMDUgMTM6MTUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBmaXggb3B0UHJvYyBzaWduYXR1cmUKCjIwMDUtMTEtMDQgMTg6NDYgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgQnVpbGQgZml4OiBwcm90ZWN0ICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KCjIwMDUtMTEtMDQgMTM6MDUgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGUKCjIwMDUtMTEtMDQgMTM6MDUgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaDoKCiAgIGNoZWNrIGlmIHdlIGhhdmUgaGVhZGVyIGJlZm9yZSBpbmNsdWRpbmcgaXQKCjIwMDUtMTEtMDQgMTE6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIG5ldHN0YXQuaDoKCiAgIE1vdmUgdGhlIG9wdGlvbiBmbGFnIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbnRvIGEgY29kZSBmaWxlLgoKMjAwNS0xMS0wNCAxMTo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgUG9lcnRhYmlsaXR5IG9mICdzaW42X2xlbicgZmllbGQgaXMgdW5jbGVhcgogICAoYW5kIGl0IGRvZXNuJ3QgaW1tZWRpYXRlbHkgc2VlbSB0byBiZSBuZWVkZWQpCgoyMDA1LTExLTA0IDExOjQ0ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0Lmg6CgogICBhZGQgdm9pZCB0byBlbXB0eSBwcm90b3R5cGUgcGFyYW0gbGlzdAoKMjAwNS0xMS0wNCAwOTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBEZXRlY3QgKGFuZCByZWplY3QpIHVzZSBvZiBjb25mbGljdGluZyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb25zLgoKMjAwNS0xMS0wNCAwNzo0MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIG1haW4uYywgbWFpbi5oLAogICAgIG5ldHN0YXQuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIElQdjYgc3VwcG9ydAoKMjAwNS0xMS0wNCAwNzozMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBQbHVnIG1pbm9yIG1lbW9yeSBsZWFrLgoKMjAwNS0xMS0wMyAyMDowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaDoKCiAgIHVwZGF0ZSAuaCBmcm9tIHRoZSB0cmFwZC5oIGZpbGVzCgoyMDA1LTExLTAzIDE5OjU5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBtYWtlIHBlcmwgb25seSByZXF1aXJlIHRoZSBleGVjdXRlIGJpdAoKMjAwNS0xMS0wMyAxMTo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkanVzdCB0byBuZXcgc25tcG5ldHN0YXQgb3B0aW9ucwoKMjAwNS0xMS0wMyAxMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIG1haW4uYywgcm91dGUuYzoKCiAgIEVuc3VyZSBJUHY2IGNvZGUgaXMgb21pdHRlZCAodW50aWwgaXQgY2FuIGJlIHByb3Blcmx5IHBvcnRlZC90ZXN0ZWQpCgoyMDA1LTExLTAzIDExOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIE9taXQgcmVkdW5kZW50IGRlY2xhcmF0aW9ucy4KCjIwMDUtMTEtMDMgMTE6MjggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgUmVtb3ZlIGNvZGUgZm9yIGRldGVybWluaW5nIFJQQyBzZXJ2aWNlIG5hbWVzCiAgIChub3QgcmVsZXZhbnQvYXBwcm9wcmlhdGUgZm9yIFNOTVAtYmFzZWQgcXVlcmllcykKCjIwMDUtMTEtMDMgMDg6NTggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBob3N0LXNwZWNpZmljIHJvdXRlcywgYW5kIGRpc3BsYXlpbmcgZ2F0ZXdheS9ob3N0IG5hbWVzLgoKMjAwNS0xMS0wMyAwNzoyMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IG1haW4uYywgcm91dGUuYzoKCiAgIFJlLWltcGxlbWVudCByb3V0aW5nIHRhYmxlIGRpc3BsYXkgKGJhc2VkIG9uIE9wZW5CU0QgY29kZSkKCjIwMDUtMTEtMDMgMDc6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIHJlcGVhdGVkIGludGVyZmFjZSBkaXNwbGF5LgoKMjAwNS0xMS0wMiAxNjoyMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIG1vdmUgaW5jbHVkZSBhZnRlciBuZXQtc25tcC1pbmNsdWRlcy5oOyBmaXggZ2xvYmFsIHNlc3Npb24gbmFtZQoKMjAwNS0xMS0wMiAxMjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaDoKCiAgIHJlbW92ZSBib2d1cyBleHBlcmltZW50YWwgY29uZmlnIG1hY3JvCgoyMDA1LTExLTAyIDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oOgoKICAgYWRkIG1pc3Npbmcgc2VtaS1jb2xvbgoKMjAwNS0xMS0wMiAwOToyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgbWFpbi5jLAogICAgIG1haW4uaCwgbmV0c3RhdC5oOgoKICAgUHJlbGltaW5hcnkgcmUtaW1wbGVtZW50YXRpb24sIGJhc2VkIG9uIHJlLWRpc3RyaWJ1dGFibGUgT3BlbkJTRCBjb2RlLgogICAoTm90ZSB0aGF0IGlmLmMgZHJhd3MgaGVhdmlseSBvbiB0aGUgRnJlZUJTRCBpbnRlcmZhY2UgZGlzcGxheSBiZWhhdmlvdXIsCiAgICB3aGljaCBpcyBzb21ld2hhdCBkaWZmZXJlbnQgdG8gdGhlIE5ldC9PcGVuQlNEIGFwcHJvYWNoKQoKMjAwNS0xMS0wMiAwMTo1NiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIHdvcmQgdHdpZGRsZXMKCjIwMDUtMTEtMDIgMDE6NTAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGZpeCBlbWJlZGRlZCBwZXJsIGFuZCBlbnN1cmUgY29tcGlsYXRpb24gZmFpbHVyZXMgaWYgdHVybmVkIG9uIGJ1dCBmdW5jdGlvbnMgbWlzc2luZwoKMjAwNS0xMS0wMSAxNToyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBkb24ndCBhZGQgbm90aWZ5IG9iamVjdHMgdG8gdGhlIHNjYWxhciBsaXN0CgoyMDA1LTExLTAxIDA0OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBjYWxsaW5nIHVsaW1pdAoKMjAwNS0xMC0zMSAwNzo0MCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1Lmg6CgogICBUcnU2NCBVbml4IDUuMSBidWlsZCBmaXg6IG1ha2Ugc3VyZSBVSU5UMzJfTUFYIGlzIGRlZmluZWQKCjIwMDUtMTAtMzEgMDY6MTEgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZToKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGNhbGxpbmcgYmFzaAoKMjAwNS0xMC0zMSAwNTozNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIFNvbGFyaXMgYnVpbGQgZml4OiBpbmNsdWRlIGxpbWl0cy5oIGZvciBbVV1MT05HX01BWCBhbmQgTE9OR19NSU4KCjIwMDUtMTAtMzEgMDQ6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTAtMzEgMDQ6MjcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMC0zMSAwNDoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTAtMzEgMDQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIHBhdGNoZXMgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwNDowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwKICAgICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgcGF0Y2hlcyBmcm9tIGFwcGxlCgoyMDA1LTEwLTMxIDA0OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZGFyd2luNy5jLAogICAgIG1lbW9yeV9kYXJ3aW43LmgsIHZtc3RhdF9kYXJ3aW43LmMsIHZtc3RhdF9kYXJ3aW43LmgKOgoKICAgbWVtb3J5L3Ztc3RhdHMgY29kZSBmcm9tIGFwcGxlCgoyMDA1LTEwLTMxIDAzOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfcHJpdmF0ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50Lmg6CgogICBmaXJzdCBwYXNzIGF0IHVkcEVuZHBvaW50VGFibGUKCjIwMDUtMTAtMzEgMDM6NDggIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBjcHUgYW5kIG1lbW9yeSBsaW1pdHMgdG8gcHJldmVudCBtYWpvciBkYW1hZ2UsIGVzcGVjaWFsbHkgc2luY2Ugd2Ugbm93IGhhdmUgYSBmdWxsIHNubXB3YWxrIHRlc3QKCjIwMDUtMTAtMzAgMjM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgcXVpZXQgY29tcGlsZXIKCjIwMDUtMTAtMzAgMjM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBkYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDUtMTAtMzAgMjM6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIGNhbGN1bGF0ZSBwcmVmaXggb2lkIGFzIG5lZWRlZAoKMjAwNS0xMC0zMCAyMzoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHJlbW92ZSBwcmVmaXggb2lkOyBhZGQgcHJlZml4IGxlbgoKMjAwNS0xMC0zMCAyMzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICByZW1vdmUgcHJlZml4IG9pZAoKMjAwNS0xMC0zMCAyMzoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIGdldCByaWQgb2YgcHJlZml4IG9pZAogICAtIGFkZCBwcmVmaXggbGVuCiAgIC0gYWRkIHByZWZpeCBmdW5jdGlvbiBwcm90b3R5cGVzCgoyMDA1LTEwLTMwIDIyOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIC0gZG9uJ3QgdXNlIHRlc3QgY29ycmVjdCBmbGFnIGJpdAogICAtIGFkZCBwcmVmaXggdXRpbGl0eSByb3V0aW5lcwoKMjAwNS0xMC0zMCAyMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBhZGQgYWNjZXNzIHRvIGNvbnRhaW5lcgoKMjAwNS0xMC0zMCAyMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRvIG5vdCB1c2UgaW5pdCBmbGFnIHdpdGggbG9hZCByb3V0aW5lCgoyMDA1LTEwLTMwIDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSByZW1vdmUgaW5ldDYgY29kZSwgc2luY2UgdGhlcmUgd2UgYXJlbid0IHVzaW5nIGlwdjYgaW9jdGxzCiAgIC0gYWRkIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcEFkZHJlc3NUYWJsZS5oLAogICAgIGlwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmg6CgogICBtb3ZlIGRldGFpbGVkIGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBkb3duIGEgbGV2ZWwKCjIwMDUtMTAtMzAgMjI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgdXNlIG5ldyB1dGlsIGZ1bmMgdG8gY2FsY3VsYXRlIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjI6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IGNoZWNrIGRpcnR5IGZsYWcgZm9yIHdyaXRhYmxlIHRhYmxlcwoKMjAwNS0xMC0zMCAyMjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS86CiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUuYywgaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmg6CgogICBpbml0aWFsIHBhc3MgYXQgaXBBZGRyZXNzUHJlZml4VGFibGUKCjIwMDUtMTAtMzAgMTU6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBuZXcgbmV0c25tcF9jdmFsdWUgdW5pb24KCjIwMDUtMTAtMzAgMTU6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oLCBzbm1wbGliL3RleHRfdXRpbHMuYwo6CgogICBtb3JlIG5ldyB1dGlsaXR5IGZ1bmN0aW9ucwoKMjAwNS0xMC0zMCAxNDowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIG5ldyB1dGlsIGZpbGVzCgoyMDA1LTEwLTMwIDEzOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgc3VwcG9ydCBmb3IgdW5zb3J0ZWQgZmxhZwoKMjAwNS0xMC0zMCAxMzo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICAtIGFkZCBjb21wYXJlIGZ1bmN0aW9uIHB0ciB0byBjb250YWluZXIgdHlwZSBzdHJ1Y3QKICAgLSBzZXQgY29tcGFyZSBmdW5jIGZyb20gY29udGFpbmVyIHR5cGUgc3RydWN0CiAgIC0gcmVnaXN0ZXIgc29tZSBzdHJpbmcgY29tcGFyZSBiYXNlZCBiaW5hcnkgYXJyYXkgdHlwZXMKCjIwMDUtMTAtMzAgMTM6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICAtIG5ldyBjb250YWluZXIgcmVnaXN0ZXIgd2l0aCBjb21wYXJlIHByb3RvdHlwZQogICAtIGFkZCB1bnNvcnRlZCBjb250YWluZXIgZmxhZwogICAtIGZpeCBjb250YWluZXIgb3B0aW9ucyBtYWNyb3MKICAgICAtIGFkZCByYyBwYXJhbQogICAgIC0gbWlzc2luZyB9CgoyMDA1LTEwLTI5IDE4OjEyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICB0ZXN0IGNoYW5nZSBhbmQgdXNhZ2Ugb2YgbG9jYWxpemVkIGtleXMKCjIwMDUtMTAtMjkgMTc6MjkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgaW50cm9kdWNlIHNubXB0cmFwZCB0cmFwaGFuZGxlIHRlc3QKCjIwMDUtMTAtMjkgMTU6NTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBJbnRyb2R1Y2UgZnVsbCBzbm1wd2FsayB0ZXN0LiBOZWVkcyBhIHNpZ25pZmljYW50IGFtb3VudCBvZiBDUFUgY3ljbGVzLCBidXQgd2lsbCBjYXRjaCBpbXBvcnRhbnQgaXNzdWVzIGxpa2Ugd2hlbiBhIHNpbXBsZSB3YWxrIGNyYXNoZXMvaGFuZ3MgdGhlIGFnZW50LgoKMjAwNS0xMC0yOSAwODoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZGF0YV9zZXQuaCwgZGVsYXllZF9pbnN0YW5jZS5oCiwgZXhhbXBsZS5oLCBuZXRTbm1wSG9zdHNUYWJsZS5oLAogICAgIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oCiwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuaCwgbm90aWZpY2F0aW9uLmgKLCBzY2FsYXJfaW50LmgsIHVjZERlbW9QdWJsaWMuaDoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlciBwcm90ZWN0IGFuZC9vciBjcGx1c3BsdXMgaWZkZWZzCgoyMDA1LTEwLTI5IDA4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oOgoKICAgYWRkIG1pc3NpbmcgaGVhZGVyIGZvciB3YXRjaGVkLmgKCjIwMDUtMTAtMjggMjM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICAtIHJlbW92ZSBleHRyYSA7CiAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIG1hY3JvCgoyMDA1LTEwLTI4IDIzOjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmg6CgogICByZWR1Y2Ugc2NvcGUgb2YgaW9jdGwgdmVyc2lvbiBjaGVja2luZyB0byB2NCBvbmx5IChubyBpcHY2IGlvY3RscykKCjIwMDUtMTAtMjggMjM6MjcgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIGNvcnJlY3QgY3V0LW4tcGFzdGUgZXJyb3IgaW4gcHJvdG90eXBlCgoyMDA1LTEwLTI4IDIzOjI2ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB5YW5rIG1vcmUgY29kZSB3aGljaCBpcyB1bnVzZWQgZHVlIHRvIGNvbnRhaW5lciBzaGFyaW5nCgoyMDA1LTEwLTI4IDIzOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAo6CgogICB1cGRhdGUgZm9yIGNoYW5nZWQgaWZlbnRyeSB2YXIgbmFtZXMKCjIwMDUtMTAtMjggMjM6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jCjoKCiAgIHNraXAgdmFycyB0aGF0IGRvIG5vdCBoYXZlIGlmZW50cnkgZmxhZyBzZXQKCjIwMDUtMTAtMjggMjM6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIGFkZCBtaXNzaW5nIGZsYWdzIHBhcmFtIHRvIGFyY2ggY29udGFpbmVyIGxvYWQKICAgLSBzdXBwb3J0IGZvciBpcHYoNHw2KSBvbmx5IGxvYWQgZmxhZwogICAtIHRyeSB0byBsb2FkIGlwdjYgZXZlbiBpZiBpcHY0IGZhaWxzCgoyMDA1LTEwLTI4IDIzOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIHBhc3MgY29ycmVjdCBmbGFncyB0byBjb250YWluZXIgaW5pdCBkdXJpbmcgbG9hZAoKMjAwNS0xMC0yOCAyMzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHR3ZWFrcyBhbmQgc3VwcG9ydCBmb3IgaXB2NkludGVyZmFjZVRhYmxlCgoyMDA1LTEwLTI4IDIzOjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIG5ldyBsb2FkIGZsYWdzCgoyMDA1LTEwLTI4IDIzOjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFkZCBpbnNlcnQgZmlsdGVyaW5nCgoyMDA1LTEwLTI4IDIzOjEzICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIHJlZHVjZSBkZXBlbmRlbmN5IGxpc3Qgb24gc25tcF92YXJzLmxvIHRvIGFnZW50X21vZHVsZV9saXN0X2gKICAgLSBhZGQgbWliX21vZHVsZV9saXN0X2ggYXMgZGVwIGZvciBtaWJfbW9kdWxlcy5sbwogICAtIGRvY3VtZW50IHdoeSByZWFkX2NvbmYubG8gZGVwcyBhcmUgaGVyZSBhbmQgbm90IGluIHNubXBsaWIvTWFrZWZpbGUuaW4KCjIwMDUtMTAtMjggMjM6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLzogaXB2NkludGVyZmFjZVRhYmxlLmMKLCBpcHY2SW50ZXJmYWNlVGFibGUuaCwgaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oCiwgaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGltcGxlbWVudCBpcHY2SW50ZXJmYWNlVGFibGUKCjIwMDUtMTAtMjggMjM6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBhZGQgc2h1dGRvd24gcHJvdG90eXBlCgoyMDA1LTEwLTI4IDE4OjM4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIHBvcnRhYmxlIHdheSBvZiBleHBvcnRpbmcgU05NUENPTkZQQVRICgoyMDA1LTEwLTI4IDE3OjI4ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBsb2dpYyBjaGFuZ2Ugb24gZ2V0S3N0YXRJbnQKCjIwMDUtMTAtMjggMTY6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZW1vdmUgOyBmcm9tIGNvbmZpZ19yZXF1aXJlIG1hY3JvcwoKMjAwNS0xMC0yOCAxNTo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIC0gbW92ZSBsb2NhbCBpbmNsdWRlIHdpdGggb3RoZXIgbG9jYWwgaW5jbHVkZXMKICAgLSBpZmRlZiBwcm9wdHlwZXMgdGhhdCB3b24ndCBiZSBkZWZpbmVkIGZvciBOT0FSQ0ggY2FzZQoKMjAwNS0xMC0yOCAxNTo0MCAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgZm9yZ290IHRoZSBpbmNsdWRlIGZvciBzb21lIG5ldHNubXBfYXJjaF9pbnRlcmZhY2Ugc3R1ZmYKCjIwMDUtMTAtMjggMTQ6NDkgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgeW91IGNhbid0IG5vdCBkZWNsYXJlIEhSTl9pbmRleCBmb3Igc29sYXJpcyB0aGVuIGV4cGVjdCBpdCB0byByZXR1cm4gYSBmZXcgbGluZXMgbGF0ZXIKCjIwMDUtMTAtMjggMTQ6MjAgIGJzaGF3NjY2CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBpdCdzIHVpbnQxNl90IG5vdCB1X2ludDE2X3QKCjIwMDUtMTAtMjggMTI6NTUgIHRhbmRlcnMKCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICB1cGRhdGUgb24gLUNFIGFuZCAtQ2sKCjIwMDUtMTAtMjggMTI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmg6CgogICByZW1vdmUgYWNjaWRlbnRhbCBjaGVja2luIG9mIHVuaW1wbGVtZW50ZWQgY29uZmlnIG1hY3JvCgoyMDA1LTEwLTI4IDEyOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjggMTI6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbmV3IGFyZ3VtZW50IHRvIHR1cm4gb24gZGVidWcgZHVyaW5nIG1pYiBtb2R1bGUgcHJvY2Vzc2luZwoKMjAwNS0xMC0yOCAxMjoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaDoKCiAgIHJlcXVpcmUgbWliSUkvaWZUYWJsZSBpbnN0ZWFkIG9mIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjggMTI6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIHJlbmFtZS9yZXZhbXAgaW50ZXJmYWNlIGNvdW50IGZ1bmN0aW9uCiAgICAgLSBhbGxvY2F0ZSBsb2NhbCBpZmNvbmYgaWYgY2FsbGVkIGRpZG4ndCBwYXNzIG9uCiAgICAgLSBkb2N1bWVudCB0aGF0IGZ1bmN0aW9uIGFsbG9jYXRlcyBtZW1vcnkgdGhhdCBjYWxsZXIgbXVzdCByZWxlYXNlIGlmCiAgICAgICB0aGV5IHBhc3MgaW4gdGhlaXIgb3duIGlmY29uZiBwb2ludGVyCgoyMDA1LTEwLTI4IDEyOjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmg6CgogICAtIHJlbW92ZSAnOycgZm9ybSBjb25maWdfKiBtYWNyb3MKICAgLSBjb25maWdfcmVxdWlyZSBpZlRhYmxlLCBpbmNsdWRlIGlmVGFibGUgaGVhZGVyCgoyMDA1LTEwLTI4IDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBjYWxsIGlmVGFibGUgaW5pdCB0byBtYW5hZ2UgaWZYVGFibGUgaW5pdAoKMjAwNS0xMC0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWRkIGNhbGxzIHRvIGlwdig0fDYpIGludGVyZmFjZSB0YWJsZXMgd2hlbiB1cGRhdGluZyByb3dzCiAgIC0gY29ycmVjdCBpZlRhYmxlTGFzdENoYW5nZSBiZWhhdmlvdXIgdG8gY29tcGx5IHdpdGggb2JqZWN0IGRlZmluaXRpb24KICAgLSBjbGFyaWZ5IHNvbWUgY29tbWVudHMKICAgLSBhZGQgYXNzZXJ0IHRvIG5vdGlmeSB1cyB3aGVuL2lmIGFuZCBvcyB0cmFja3MgbGFzdCBjaGFuZ2VkIG9uIGl0J3Mgb3duCgoyMDA1LTEwLTI4IDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBmaXggY29uZmlnX3JlcXVpcmUgbWFjcm9zCiAgIC0gYWRkIHJlcXVpcmUgZm9yIGRhdGFfYWNjZXNzL2ludGVyZmFjZQogICAtIHJlbW92ZSBsYXN0IGNoYW5nZSBmcm9tIGRhdGEgY29udGV4dCwgdXNlIGlmZW50cnkgdmVyc2lvbiBpbnN0ZWFkCgoyMDA1LTEwLTI4IDExOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSBtYWtlIGluaXRfaWZUYWJsZSB0aGUgY29tbW9uIGluaXQgZnVuY3Rpb24gZm9yIGludGVyZmFjZSBtb2R1bGVzCiAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgY2FsbHMKICAgICAtIHByb3BlciBpbml0IGZ1bmN0aW9uIGNhbGxzIGZvciBpcHYoNHw2KUludGVyZmFjZVRhYmxlL2lmWFRhYmxlCgoyMDA1LTEwLTI4IDExOjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBtb3ZlIHN0YXRzIHBhcnNpbmcgdG8gaXQncyBvd24gZnVuY3Rpb24KICAgLSBzdXBwb3J0IG5ldyBsb2FkIGZsYWdzOiBpcHY0IG9ubHksIG5vIHN0YXRzCiAgIC0gYWRkIChoYXJkY29kZWQgcmVhc21fbWF4KQogICAtIGdldCBhcnAgcmV0cmFuc21pdCB0aW1lIGZyb20gL3Byb2MKCjIwMDUtMTAtMjggMTE6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmg6CgogICBhZGQgY29uZmlnX3JlcXVpcmUgb2YgZGF0YV9hY2Nlc3MvaXBhZGRyZXNzCgoyMDA1LTEwLTI4IDExOjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGNoZWNrIGFuIGludGVyZmFjZSBmb3IgaXB2KDR8NikgaXAgYWRkcmVzc2VzCgoyMDA1LTEwLTI4IDExOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIHdhcm5pbmdzIHRvIHVwZGF0ZSBmdW5jdGlvbnMgd2hlbiBhZGRpbmcvZGVsZXRpbmcgc3R1Y3QgbWVtYmVycwogICAtIG1ha2UgZmxhZ3MgZmllbGQgdW5zaWduZWQKICAgLSB1bnNpZ25lZCBpbnQgLT4gdV9pbnQKICAgLSBhZGQgZmllbGRzIGZvciBpcHY0SW50ZXJmYWNlVGFibGUKICAgLSBmaXggb3NfZmxhZ3MgY29tbWVudAogICAtIG5ldyBuc19mbGFncyBkZWZpbmVzIGZvciBpcHYoNHw2KUludGVyZmFjZVRhYmxlCiAgIC0gbmV3IGxvYWQgZmxhZ3MgZGVmaW5lcwoKMjAwNS0xMC0yOCAxMTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICByZW5hbWUgdG8gaW50ZXJmYWNlLmMKCjIwMDUtMTAtMjggMTE6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICByZW5hbWUgaW50ZXJmYWNlX2NvbW1vbi5jIHRvIGludGVyZmFjZS5jIHRvIGVhc3kgY29uZmlndXJlIHByb2Nlc3NpbmcKCjIwMDUtMTAtMjggMTE6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSByZXZlcnQgdG8gcHJldmlvdXMgYmVoYXZpb3Igb2YgaWZEZXNjciA9IGludGVyZmFjZSBuYW1lCiAgIC0gYWRkIG5ldy9taXNzaW5nIHN0cnVjdHVyZSBtZW1iZXJzIHRvIGludGVyZmFjZSBjb3B5IHJvdXRpbmUKICAgLSByZW5hbWUgaW5pdCBmdW5jdGlvbiBmb3IgcGVuZGluZyBmaWxlIHJlbmFtZQoKMjAwNS0xMC0yOCAxMToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUuaCwgaXAtbWliL2lwQWRkcmVzc1RhYmxlLmgKLCBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwLW1pYi9pcF9zY2FsYXJzLmgKLCBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19jb21tb24uaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwgdGNwLW1pYi90Y3BDb25uVGFibGUuaCwgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUuaAosIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLAogICAgIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmg6CgogICAtIG1vc3RseSByZW1vdmluZyBleHRyYW5lb3VzICc7JyBvbiBjb25maWdfKiBtYWNyb3MKICAgLSBhIGZldyB0d2VhayBjb25maWdfKiBtYWNyb3MKCjIwMDUtMTAtMjggMTE6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yOCAxMToxNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY2hlY2sgZm9yIHByb2dyYW0gJ2ZpbmQnCiAgIC0gb25seSBhZGQgaGVhZGVyIHRvIChhZ2VudHxtaWIpX21vZHVsZV9pbmNsdWRlcy5oIGlmIGluaXQvc2h1dGRvd24gZm91bmQKCjIwMDUtMTAtMjggMTA6MjYgIHRhbmRlcnMKCiAgICogZGlzdC86IFJFQURNRS5idWlsZC1zY3JpcHRzLCBuc2ItbmlnaHRseSwKICAgICBuc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvCgoyMDA1LTEwLTI4IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS86IGlwdjRJbnRlcmZhY2VUYWJsZS5jCiwgaXB2NEludGVyZmFjZVRhYmxlLmgsIGlwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaAosIGlwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmM6CgogICBpbXBsZW1lbnQgaXB2NEludGVyZmFjZVRhYmxlCgoyMDA1LTEwLTI4IDA4OjEzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgbWFrZSBzdXJlIHNubXBuZXRzdGF0IGNhbiBiZSBleGVjdXRlZDsgc2tpcCBvdGhlcndpc2UKCjIwMDUtMTAtMjcgMDU6NDIgIGR0czEyCgogICAqIHNubXBsaWIvOiBnZXRvcHQuYywgc3RydG9sLmMsIHN0cnRvdWwuYzoKCiAgIFJlbW92ZSBVQ0IgYWR2ZXJ0aXNpbmcgY2xhdXNlIChyZXNjaW5kZWQgMjIgSnVseSAxOTk5KQoKMjAwNS0xMC0yNyAwNTozOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgVXBkYXRlIEJTRCBjb3B5cmlnaHQgbGljZW5zZSB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24uCgoyMDA1LTEwLTI2IDE4OjU0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgYWRkIHNpbXBsZSB0ZXN0IGZvciBzbm1wbmV0c3RhdCB0byB2ZXJpZnkgdGhlIHVwY29taW5nIHJld3JpdGUKCjIwMDUtMTAtMjYgMTg6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgc2tpcCBvbiBESVNBQkxFX1NFVF9TVVBQT1JUCgoyMDA1LTEwLTI2IDE3OjQ3ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIGRvY3VtZW50IGdlbmVyaWMgLS08bmFtZT49PHZhbHVlPiBjb21tYW5kLWxpbmUgb3B0aW9uCgoyMDA1LTEwLTI2IDE3OjIyICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBkb2N1bWVudCBnZW5lcmljIC0tPG5hbWU+PTx2YWx1ZT4gY29tbWFuZC1saW5lIG9wdGlvbgoKMjAwNS0xMC0yNiAxMzoxNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGFsbG93cyB0byB1c2Ugb2xkIGFuZC9vciBuZXcgbG9jYWxpemVkIGtleSBpbnN0ZWFkIG9mIHBhc3MtcGhyYXNlIHdpdGggLUNrCgoyMDA1LTEwLTI2IDEyOjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIG1ham9yIHJld3JpdGU6IGFkZHMgbW9yZSB0ZXN0cyBhbmQgdXNlcyBuZXcgU3YzdXNtY29uZmlnKgoKMjAwNS0xMC0yNiAxMjoyMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2U6CgogICBmaXggc29tZSB2YXJpYWJsZSBuYW1lcwoKMjAwNS0xMC0yNiAwODoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHJlbW92ZSBwYXRjaCBmbHViCgoyMDA1LTEwLTI2IDA3OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEV4dHJhIGRlYnVnZ2luZyB0byBoZWxwIGRpc3Rpbmd1aXNoIGJldHdlZW4gZGlmZmVyZW50IGNhY2hlIHRpbWVycy4KCjIwMDUtMTAtMjYgMDc6MDIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgU2xpZ2h0IHJldGhpbmsgYWJvdXQgaG93IHRvIGhhbmRsZSB0aGUgcmVtb3ZhbCBvZiBhIE1JQiByZWdpc3RyYXRpb24uCiAgIChUaGlzIGlzIGRlZmluaXRlbHkgb25lIGZvciA1LjQsIG1ldGhpbmtzISkKCjIwMDUtMTAtMjYgMDY6NTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGdlbmVyaWMgdGFibGUgQVBJIHJvdXRpbmUgbmFtZXMuCgoyMDA1LTEwLTI2IDA2OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgQnJpbmcgJ3RkYXRhJyByb3V0aW5lIG5hbWVzIGludG8gbGluZSB3aXRoIHRoZSBwcm9wb3NlZCB0YWJsZSBBUEkKCjIwMDUtMTAtMjYgMDY6MjAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICBmaXggY29tcGlsZSBlcnJvciBkdWUgdG8gd3JvbmcgaHB1eDExIHRlc3QKCjIwMDUtMTAtMjYgMDU6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgTW92ZSByZWdpc3RyYXRpb24gb2Ygc3RhbmRhcmQgdmlld3Mgc28gdGhhdCB0aGV5J3JlIHBpY2tlZCB1cAogICBieSBib3RoIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIgaW5pdGlhbGlzYXRpb24uCiAgIENsYXJpZnkgd2hpY2ggaW5pdGlhbGlzYXRpb24gcm91dGluZXMgYXJlIGNhbGxlZCBieSB3aGljaCBhcHBzLgoKMjAwNS0xMC0yNSAxOTowOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIHRlbXBvcmFyeSB3b3JrYXJvdW5kIGFzIHN1Z2dlc3RlZCBieSBEYXZlIHRvIGdldCBzbm1wdHJhcGQgd29ya2luZyBhZ2FpbgoKMjAwNS0xMC0yNSAxOTowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICAtIG5hcnJvdyBzY29wZSBvZiBhc3NlcnQgdGVzdAogICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhawoKMjAwNS0xMC0yNSAxNjo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI1IDE2OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IHRlc3RzIGZvciBlbXB0eSB2YXIgY2FzZQoKMjAwNS0xMC0yNSAxMjo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm06CgogICAuLi4gYW5kIHNheSBzby4KCjIwMDUtMTAtMjUgMTI6NDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgY2xhcmlmeSBhcyBiZWluZyBhIG5vQXV0aE5vUHJpdiB0ZXN0CgoyMDA1LTEwLTI1IDExOjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IE9wZW5CU0QgMy40ICJwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIHdhcm5pbmc6IHN5cy9zd2FwLmggbmVlZHMgc3lzL3BhcmFtLmggZm9yIE1BWFBBVEhMRU4KCjIwMDUtMTAtMjUgMTE6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICByZW1vdmUgTUZEX1JFV1JJVEUgZGVmaW5lIHRlc3RzCgoyMDA1LTEwLTI1IDExOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgLSBjb21tZW50IGZvcm1hdHRpbmcKICAgLSBjb25maWdfZXhjbHVkZSBpZi1taWIvaWZUYWJsZS9pZlRhYmxlCgoyMDA1LTEwLTI1IDExOjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgYWRkIElURVJBVE9SX1JFTEVBU0UgbWFjcm8KCjIwMDUtMTAtMjUgMDg6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV9jb25mLmMsIHZhY21fY29uZi5oOgoKICAgQWx0ZXJuYXRpdmUgdmlld3R5cGUtYmFzZWQgYWNjZXNzIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlICgiYXV0aGFjY2VzcyIpLgogICBTaW1pbGFyIHRvICJzZXRhY2Nlc3MiLCBidXQgY2xvc2VyIGluIGZlZWwgdG8gdGhlIG90aGVyIGF1dGgqIGRpcmVjdGl2ZXMuCiAgIFRoaXMgYWxzbyBhbGxvd3MgdGhlIHNlY3VyaXR5IG1vZGVsLCBsZXZlbCBhbmQgY29udGV4dCBpbmZvcm1hdGlvbiB0byBiZQogICBvbWl0dGVkIChkZWZhdWx0aW5nIHRvIHNlbnNpYmxlIHZhbHVlcykuCgoyMDA1LTEwLTI1IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEFyZ2dnaGhoaCEhISAgSWYgeW91J3ZlIGdvdCBjb2RlIHRoYXQgd29ya3MsIGRvbid0IGNoYW5nZSBpdCBiZWZvcmUgY29tbWl0dGluZyBpdC4KICAgSWYgeW91ICptdXN0KiBjaGFuZ2UgaXQsIHRoZW4gYXQgbGVhc3QgaGF2ZSB0aGUgZ3VtcHRpb24gdG8gdGVzdCBpdCBhZ2FpbiBmaXJzdCEKICAgPGhlYXZ5IHNpZ2g+CgoyMDA1LTEwLTI1IDA4OjAxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFRlbGwgeW91IHdoYXQsIERhdmUuICBXaHkgZG9uJ3QgeW91IHRyeSBjb21taXR0aW5nIHRoZSBjb2RlIGZvciB0aGUKICAgImF1dGhncm91cCIgZGlyZWN0aXZlIC0gcmF0aGVyIHRoYW4ganVzdCB0aGUgaGVhZGVyIGZpbGU/CiAgIDxzaWdoPgogICBZb3UganVzdCBjYW4ndCBnZXQgdGhlIHN0YWZmIHRoZXNlIGRheXMuCgoyMDA1LTEwLTI1IDA3OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaDoKCiAgIERpcmVjdGl2ZSB0byBzdXBwb3J0IHZpZXd0eXBlLWJhc2VkIGNvbmZpZ3VyYXRpb24gb2YgZ3JvdXBzICgiYXV0aGdyb3VwIikKCjIwMDUtMTAtMjUgMDc6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQWxsb3cgY29tbXVuaXR5LWJhc2VkIGRpcmVjdGl2ZXMgKGF1dGhjb21tdW5pdHksIGV0YykgdG8gc3BlY2lmeQogICBhIHBhcnRpY3VsYXIgU05NUCB2ZXJzaW9uICh2MS1vbmx5IG9yIHYyYy1vbmx5KQoKMjAwNS0xMC0yNSAwNzo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBTdXBwb3J0IHNpbXBsZSBhY2Nlc3MgZGlyZWN0aXZlcyBjb25maWd1cmVkIHdpdGggbmFtZWQgdmlld3MgKC1WKQogICBhcyB3ZWxsIGFzIE9JRCBzdWJ0cmVlcy4KCjIwMDUtMTAtMjUgMDc6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV9jb25mLmMsIHZhY21fY29uZi5oOgoKICAgRGVmaW5lICJzdGFuZGFyZCIgdmlld3MgKGFsbCBvciBub3RoaW5nKQoKMjAwNS0xMC0yNSAwNzozOSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdvcmsgd2l0aCB0aGUgYWN0aXZlIHJvb3Qgb2YgdGhlIE1JQiB0cmVlIChyYXRoZXIgdGhhbiB0aGUgYmFja3dhcmQKICAgY29tcGF0aWJpbGl0eSB2ZXJzaW9uKS4gIFRoaXMgYWxsb3dzICdyZWFkX29iamlkJyB0byB3b3JrIGNvcnJlY3RseQogICAod2l0aCBudW1lcmljIE9JRHMpIGJlZm9yZSB0aGUgTUlCIGZpbGVzIGFyZSBsb2FkZWQuCgoyMDA1LTEwLTI0IDE5OjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICByZXdvcmtlZCB0byB1c2UgbmV3IFN2M3VzbWNvbmZpZyogZnJhbWV3b3JrCgoyMDA1LTEwLTI0IDE5OjMwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtYXV0aCwgVDA0OXNubXB2M2luZm9ybXByaXYKOgoKICAgU05NUHYzIGF1dGhOb1ByaXYvYXV0aFByaXYgSU5GT1JNIHRlc3RzIGJhc2VkIG9uIG5ldyBTdjN1c21jb25maWcqCgoyMDA1LTEwLTI0IDE5OjI3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjN1c21jb25maWdhZ2VudCwgU3YzdXNtY29uZmlnYmFzZSwKICAgICBTdjN1c21jb25maWd0cmFwZDoKCiAgIHJld3JpdHRlbiBTTk1QdjMgVVNNIGNvbmZpZzogYmFzaWMsIGFnZW50LCB0cmFwZAoKMjAwNS0xMC0yNCAxOTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBGaXggZm9yIGNvbXBpbGF0aW9uIGlzc3VlczoKICAgICAtIHJlYXJyYW5nZSBmdW5jdGlvbiBvcmRlciB0byBnZXQgcHJvcGVyIHByb3RvdHlwZSBvcmRlcmluZyB3aXRob3V0CiAgICAgICBwcm90b3R5cGVzLgogICAgIC0gUmVtb3ZlZCBkYXRhIHR5cGUgZm9yIGEgdmFyaWFibGUgbmFtZSB0aGF0IHdhcyBnZXR0aW5nIHBhc3NlZCBpbgogICAgICAgYXMgd2VsbC4KCjIwMDUtMTAtMjQgMTg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgdXNlIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pbmRleF9maW5kIGluc3RlYWQgb2YgSW50ZXJmYWNlX0luZGV4X0J5X05hbWUKCjIwMDUtMTAtMjQgMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgcmVtb3ZlIE1GRF9SRVdSSVRFIGNoZWNrLCB1c2UgVVNJTkdfTUlCSUlfSU5URVJGQUNFU19NT0RVTEUgaW5zdGVhZAoKMjAwNS0xMC0yNCAxODozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIGNvbmZpZ19leGNsdWRlIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjQgMTg6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSByZXF1aXJlIG5ldyBtaWJJSS9pZlRhYmxlIGluc3RlYWQgb2YgbWliSUkvaW50ZXJmYWNlcwogICAtIHJlbW92ZSBNRkRfUkVXUklURSBjaGVjawogICAtIGNvbnNvbGlkYXRlIGxpbnV4IHJlcXVpcmVzIHRvIG9uZSBsaW5lCgoyMDA1LTEwLTI0IDE4OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICBmaXggaWZJbmRleCBtaXMtbWF0Y2ggKGFkZCBzdXBwb3J0IGZvciBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSkKCjIwMDUtMTAtMjQgMTg6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaDoKCiAgIC0gcmVxdWlyZSBuZXcgbWliSUkvaWZUYWJsZSBpbnN0ZWFkIG9mIG1pYklJL2ludGVyZmFjZXMKICAgLSByZXF1aXJlIGhvc3QvaHJfZGV2aWNlIHRvbywgc2luY2UgaXQgZGVjbGFyZXMgZ2xvYmFscyB3ZSBuZWVkCgoyMDA1LTEwLTI0IDE4OjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gaW1wbGVtZW50IGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IGZ1bmN0aW9ucyBJbnRlcmZhY2VfU2Nhbl8oSW5pdHxOZXh0KSBzbwogICAgIGFsbCBtb2R1bGVzIGNhbiBhZ3JlZSBvbiBpZkluZGV4IHZhbHVlcwoKMjAwNS0xMC0yNCAxNzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGJ1ZyBpbiBpdGVyYXRvcjsgcmVzZXQgcHRyIG92ZXJ3cml0dGVuIGJ5IHJlbGVhc2UKCjIwMDUtMTAtMjQgMTY6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBkcm9wIHBhY2tldHMgd2l0aCBzZXNzaW9uIGVycm5vcyBhdHRhY2hlZCB0byB0aGVtCgoyMDA1LTEwLTI0IDEzOjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICByZW1vdmUgTUZEIHJld3JpdGUgZ3lyYXRpb25zCgoyMDA1LTEwLTI0IDEzOjQ0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjQgMTM6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgdGVzdHMgZm9yIGludmFsaWQgb3B0aW9ucyAobWluaWFnZW50KQoKMjAwNS0xMC0yNCAxMzo0MiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGFkZCBkZXRhaWxzIHRvIGxvZy9kZWJ1ZyBtZXNzYWdlCgoyMDA1LTEwLTI0IDEzOjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaDoKCiAgIHVzZSBuZXcgbWliSUkvaWZUYWJsZSBpbiBwbGFjZSBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDEzOjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5oOgoKICAgbmV3IG1vZHVsZSBmb3Igb3RoZXIgbW9kdWxlcyB0byByZWZlcmVuY2UsIGluIHBsYWNlIG9mIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjQgMTM6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCBpZkluZGV4IGxvb2t1cCBvbiBsaW51eCAodXNlIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pbmRleF9maW5kKQoKMjAwNS0xMC0yNCAxMTo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIEdlbmVyaWMgdGFibGUgQVBJOiAiUm93IG9wZXJhdGlvbnMiICAgKGV4cGVyaW1lbnRhbCBpbXBsZW1lbnRhdGlvbikKCjIwMDUtMTAtMjQgMTE6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgaW50cm9kdWNlIFNLSVAoKQoKMjAwNS0xMC0yNCAxMDoxOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzREVTY29uZmlnLCBTdjNTSEFERVNjb25maWc6CgogICByZW1vdmUgb2Jzb2xldGUgU05NUHYzIGNvbmZpZyBmaWxlcwoKMjAwNS0xMC0yNCAwNzowMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBHZW5lcmljIHRhYmxlIEFQSTogUm93IG9wZXJhdGlvbnMKCjIwMDUtMTAtMjQgMDY6NTggIGR0czEyCgogICAqIGxvY2FsL3NubXBkdW1wLnBsOgoKICAgRm9yIFRob21hcwoKMjAwNS0xMC0yNCAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdmlzaW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlICJUYWJsZSBtYWludGVuYW5jZSIgZ2VuZXJpYyBBUEkuCiAgIE1vc3Qgb2YgdGhpcyBpcyBub3QgcmVhbGx5IGFwcGxpY2FibGUgdG8gdGhlIGl0ZXJhdG9yIGhlbHBlciwgYnV0CiAgIGhhdmluZyBhIHN0YW5kYXJkIG1lY2hhbmlzbSBmb3IgY29uc3RydWN0aW5nIChhbmQgZnJlZWluZykgdGhlCiAgIG1haW4gaXRlcmF0b3Igc3RydWN0dXJlIG1pZ2h0IGJlIHVzZWZ1bC4KCjIwMDUtMTAtMjQgMDY6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIENvdW50IHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhbiBpdGVyYXRvci1iYXNlZCB0YWJsZS4KCjIwMDUtMTAtMjQgMDY6MTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBBc3NvY2lhdGUgdGFibGUgaW5kZXggaW5mb3JtYXRpb24gd2l0aCB0aGUgaXRlcmF0b3Igc3RydWN0dXJlLgogICAoRXhwZXJpbWVudGFsIGNvZGUgLSBpbnRyb2R1Y2VzIGEgbWlub3Igb25lLW9mZiBtZW1vcnkgbGVhaywKICAgIGJ1dCBzaG91bGRuJ3Qgb3RoZXJ3aXNlIGFmZmVjdCBleGlzdGluZyBjb2RlKQoKMjAwNS0xMC0yMyAyMDoxMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgaW5pdGlhbCB0ZXN0IGZvciBTTk1QdjMgc25tcHRyYXBkIFVTTSB1c2VyIG1hbmFnZW1lbnQgd2l0aCBzbm1wdXNtCgoyMDA1LTEwLTIzIDE5OjU3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGZpeCBDSEVDS0FHRU5UKCkgYW5kIGludHJvZHVjZSBDSEVDS1RSQVBET1JESUUoKQoKMjAwNS0xMC0yMyAxOTo0NSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgZml4IHR5cG8KCjIwMDUtMTAtMjMgMTU6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZsYWdzIHN1cHBvcnQ7IGRlZmF1bHQgdG8gbm8gZHVwbGljYXRlIGtleXMKCjIwMDUtMTAtMjMgMTU6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB0d2VhayBvcHRpb25zIGZ1bmN0aW9uIHRvIGFsbG93IHRlc3QgYW5kIHNldAoKMjAwNS0xMC0yMyAxNTowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGFkZCBmdW5jdGlvbiB0byBzZXQgY29udGFpbmVyIG9wdGlvbnMKCjIwMDUtMTAtMjIgMTg6MjYgIHRhbmRlcnMKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCB0ZXN0cy9TdjNjb25maWcsCiAgICAgdGVzdHMvU3YzdmFjbWNvbmZpZywgdGVzdHMvU3ZhY21jb25maWcsCiAgICAgdGVzdHMvU3Zhbnljb25maWc6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBuYW1lCgoyMDA1LTEwLTIyIDE4OjE0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlcGxhY2Ugb2Jzb2xldGUgc25tcHRyYXBkICItdSIgZmxhZyBieSAiLXAiCgoyMDA1LTEwLTIyIDE4OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi8uY3ZzaWdub3JlOgoKICAgaXAtbWliIGNoYW5nZXMgbm93IHJlcXVpcmUgLmN2c2lnbm9yZQoKMjAwNS0xMC0yMiAxODowNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZ3NoYToKCiAgIG9ic29sZXRlZCBieSBTdjNjb25maWcKCjIwMDUtMTAtMjIgMDA6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU3dHJhcGRhdXRodGVzdCwgVDA1N3RyYXBkYXV0aHRlc3QyCiwgVDA1N3RyYXBkYXV0aHRlc3QzOgoKICAgcHJvcGVyIGNoZWNrcyBmb3IgZmFpbHVyZSBvZiB1bmF1dGhvcml6ZWQgdHJhcHMKCjIwMDUtMTAtMjIgMDA6NTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QyOgoKICAgdGVzdCBmb3Igd3JvbmcgdHJhcCBvaWRzCgoyMDA1LTEwLTIyIDAwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybSwgVDA1MHNubXB2M3RyYXAsCiAgICAgVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwgVDA1M2FnZW50djF0cmFwCiwgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICAgIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQwNThhZ2VudGF1dGh0cmFwLAogICAgIFQxMTNhZ2VudHh0cmFwOgoKICAgbmV3IGNvbmZpZyB0b2tlbnMgcm91bmQgMgoKMjAwNS0xMC0yMiAwMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsIGFwcHMvc25tcHRyYXBkX2F1dGguYwo6CgogICBEbyB0cmFwIGF1dGggcGFyc2luZyB0aGUgd2F5IERhdmUgd2FudHMuCgoyMDA1LTEwLTIxIDIwOjMwICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgbmV3IGhlbHBlciBhbmQgc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOgoKICAgYWRkIG5ldyBJUC1NSUIgc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oOgoKICAgZGF0YSBhY2Nlc3MgZm9yIHNvbWUgSVAtTUlCIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBzY2FsYXJzX2NvbW1vbi5oLAogICAgIHNjYWxhcnNfbGludXguYzoKCiAgIGRhdGEgYWNjZXNzIGZvciBsaW51eCBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXBfc2NhbGFycy5jLCBpcF9zY2FsYXJzLmg6CgogICBzb21lIG5ldyBzY2FsYXJzIGluIHRoZSBJUC1NSUIKCjIwMDUtMTAtMjEgMjA6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgLSBuZXcgaGVscGVyIGZvciBydyBhY2Nlc3MgdG8gYW4gaW50ZWdlciBiYXNlZCB2YXJpYWJsZSB3aGljaCBpcyBzdG9yZWQKICAgICBhcyBhc2NpaSBpbiBhIGZpbGUKCjIwMDUtMTAtMjEgMTg6MzEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgQWRkICItQ0UgRU5HSU5FLUlEIiBvcHRpb24gdG8gc3BlY2lmeSB0aGUgdXNtVXNlckVuZ2luZUlELiBFbmFibGVzIHNubXB1c20gdG8gbWFuYWdlIHNubXB0cmFwZCdzIHVzbVVzZXJUYWJsZSAoZml4ZXMgYnVnICMxMzMzNjU1KS4KCjIwMDUtMTAtMjEgMTg6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIGZpeCBmdW4gY29tbWVudCBoZWFkZXIgZm9yIGRveHlnZW4gKGtlZXAgd2VzIGhhcHB5KQogICAtIGRvY3VtZW50IHNsaWdodGx5IG5vbi1vYnZpb3VzIGluZGV4IHVzZSAoa2VlcCBkYXZlIGhhcHB5KQoKMjAwNS0xMC0yMSAxMjoyOSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEFwcGx5IHBhdGNoIDEyOTk1NTQgZnJvbSBUYW8gdG8gZml4IHNlZ2ZhdWx0IGluIHZhcl9pZkVudHJ5KCkKCjIwMDUtMTAtMjEgMDY6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYzoKCiAgIE1vcmUgcG9ydGFibGUgaGFuZGxpbmcgb2YgJ292ZXJzaG9vdCcgZGVjbGFyYXRpb24uCgoyMDA1LTEwLTIxIDA2OjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfY29udGFpbmVyLmMsIHRhYmxlX2RhdGEuYywKICAgICB0YWJsZV9pdGVyYXRvci5jOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgdGhlICJUYWJsZSBtYWludGVuYW5jZSIgc2VjdGlvbgogICBvZiB0aGUgZ2VuZXJpYyB0YWJsZSBBUEkuCgoyMDA1LTEwLTIxIDA2OjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBnZW5lcmljIHRhYmxlIEFQSSBuYW1lcywKICAgYW5kIGNvcnJlY3QgYSBjb3VwbGUgb2YgZmxhd2VkIGZ1bmN0aW9uIHByb3RvdHlwZXMuCgoyMDA1LTEwLTIxIDA1OjIyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgZ2VuZXJhbGl6ZWQgZXhjZXB0aW9uIHJlZ2V4IHRvIGxldCBhbnkgInRlc3RpbmcgLi4uIGZhaWx1cmUgLi4uIiBnbyB0aHJvdWdoLCBlLmcuIHRoZSBuZXcgc25tcHRyYXBkIHRlc3QgcmVjZW50bHkgaW50cm9kdWNlZAoKMjAwNS0xMC0yMSAwMTo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgaW5pdCB2YWNtCgoyMDA1LTEwLTIxIDAxOjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuaDoKCiAgIGluY2x1ZGUgdGhlIG5ldyBzbm1wdHJhcGRfZHMuaCBmaWxlCgoyMDA1LTEwLTIxIDAxOjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBBZGRlZCBhIHdhcm5pbmcgbm90ZSBhYm91dCBwb3RlbnRpYWwgY29uZmxpY3RzIHdpdGggc25tcHRyYXBkLCB3aGljaAogICBoYWQgYWN0dWFsbHkgYmVlbiBieXBhc3NlZCByZWNlbnRseSBhbmQgbm8gb25lIG5vdGljZWQuCgoyMDA1LTEwLTIxIDAxOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0OgoKICAgdGVzdCB0cmFwZCBhdXRob3JpemF0aW9uIGZhaWx1cmVzCgoyMDA1LTEwLTIxIDAxOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybSwgVDA1MHNubXB2M3RyYXAsCiAgICAgVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwgVDA1M2FnZW50djF0cmFwCiwgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICAgIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQwNThhZ2VudGF1dGh0cmFwLAogICAgIFQxMTNhZ2VudHh0cmFwOgoKICAgTW9kaWZpZWQgdGhlIHRlc3RzIHRvIGFjY29tbW9kYXRlIHRoZSBuZXcgdHJhcGQgYXV0aCBzY2hlbWUKCjIwMDUtMTAtMjEgMDE6MzggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9hdXRoLmMKLCBzbm1wdHJhcGRfYXV0aC5oLCBzbm1wdHJhcGRfZHMuaCwKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBBZGRlZCBhIG5ldyBhdXRob3JpemF0aW9uIGhhbmRsZXIgYW5kIHJlbGF0ZWQgY29uZmlndXJhdGlvbiB0b2tlbnMgdG8KICAgYWxsb3cgc25tcHRyYXBkIHRvIGFjY2VwdCBvciBkcm9wIG5vdGlmaWNhdGlvbnMgYmFzZWQgb24gdGhlCiAgIGF1dGhvcml6YXRpb24gYXNzaWduZWQgdG8gYSBjb21tdW5pdHkvdXNlciBwYWlyZWQgd2l0aCB0aGUgYWN0aW9uIHRvCiAgIGJlIHRha2VuIChsb2csIGZvcndhcmQsIGV4ZWN1dGUpLiAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNvbmZpZ3VyYXRpb24KICAgdG9rZW5zIHRoYXQgd2VyZSBhZGRlZCB0byBhY2hpZXZlIHRoaXMuICAzIG9mIHRoZSBWQUNNIG9uZXMgY2FuIGJlCiAgIHVzZWQgYXMgbm9ybWFsICh2aWV3LCBjb20yc2VjLCBncm91cCkgYW5kIG9uZSBhZGRpdGlvbmFsIG9uZQogICAoc2V0YWNjZXNzKSBuZWVkcyB0byBiZSB1c2VkIHRvIHNldCBpbmRpdmlkdWFsIHZpZXdzIGZvciBhY2Nlc3MgdG8KICAgYmluZCBldmVyeXRoaW5nIHRvZ2V0aGVyLiAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNvbnZlbmllbmNlIHdyYXBwZXJzCiAgIGFzIHdlbGwgZm9yIHRoZXNlIHRva2VuIHNldHMuICBGaW5hbGx5LCB0aGVyZSBpcyBhCiAgIGRpc2FibGVBdXRob3JpemF0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHNldCB0byB0cnVlIHRvIHNpbXBseSBhbGxvdwogICBldmVyeXRoaW5nIHRocm91Z2guCgoyMDA1LTEwLTIxIDAxOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gcmVzdHJ1Y3R1cmVkIHRoZSBWQUNNIGNvZGUgdG8gcHJvdmlkZSBmb3IgdGhlIG5vdGlvbiBvZiBhZGRpdGlvbmFsCiAgICAgdmlld3MgYmVzaWRlcyB0aGUgc3RhbmRhcmQgcmVhZC93cml0ZS9ub3RpZnkgdmlld3MKICAgICAtIG11Y2ggb2YgdGhlIGNoZWNraW5nIGNvZGUgd2FzIHJlc3RydWN0dXJlZCB0byBiZSBtb3JlIG1vZHVsYXIKICAgICAtIGFkZGVkIGEgbmV3IHNldGFjY2VzcyBjb25maWcgdG9rZW4gdGhhdCBjYW4gc2V0IHRoZSB2aWV3IG5hbWUgZm9yCiAgICAgICBhIHBhcnRpY3VsYXIgYWNjZXNzIGxldmVsCiAgICAgLSBhZGRlZCAzIG5ldyBhY2Nlc3MgbGV2ZWxzOiBsb2csIGV4ZWN1dGUsIG5ldAogICAgICAgLSBhZGRlZCBlbnVtIHN0cnVjdHVyZSBmb3IgdGhlc2UKCjIwMDUtMTAtMjAgMTM6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCByZW1haW5pbmcgSVAgYWRkcmVzcyBieXRlIG9yZGVyIGJ1ZwoKMjAwNS0xMC0yMCAwODoyNiAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIEV2ZW50IE1JQi4KCiAgIChRbjogd2hlcmUgZG9lcyAnZGVmYXVsdF9taWJzX2luc3RhbGwnIGdldCBzZXQ/KQoKMjAwNS0xMC0yMCAwODoyNSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgc2NoZWR1bGUgTUlCIGltcGxlbWVudGF0aW9uIHRvIHRoZSBkZWZhdWx0IGxpc3QuCgogICBUaGlzIHF1YWxpZmllcyBmb3IgYm90aDoKICAgICAgICdUcmFkaXRpb25hbGx5IGl0J3MgYmVlbiAidHVybiBpdCBvbiBpZiBpdCBjb21waWxlcyAxMDAlCiAgICAgICAgb2YgdGhlIHRpbWUuLi4uJwogICBzaW5jZSBpdCdzIGFsbCBub24tYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUsIGFuZDoKICAgICAgICcuLi4gYW5kIGlmIGl0IHJlcXVpcmVzIHJ1biB0aW1lIGVuYWJsaW5nIGFzIHdlbGwiCgoyMDA1LTEwLTIwIDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQuaDoKCiAgIEFkZCB0aGUgRXZlbnQgTUlCIHRvIHRoZSBsaXN0IG9mIE1JQnMgdG8gbG9hZC4KCjIwMDUtMTAtMjAgMDc6MzMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLSBybWRpciAtPiBybSAtZlIsIHNpbmNlIGRpcmVjdG9yeSBpc24ndCBlbXB0eQogICAtIGFkZCAtcC9TTk1QX1RFU1RfUFJFRklYIHRvIGFsbG93IG5vbi1zdGFuZGFyZCB0ZXN0cyB0byBiZSBydW4KCjIwMDUtMTAtMjAgMDU6MzEgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBwcm9wYWdhdGUgdGVzdC1taWJzIHRhcmdldAoKMjAwNS0xMC0yMCAwNDozMSAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFrIGV4Y2VwdGlvbiByZWdleAoKMjAwNS0xMC0xOSAyMzozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGFkZCBpZlRhYmxlTGFzdENoYW5nZSBzY2FsYXIKCjIwMDUtMTAtMTkgMTc6NTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZG9jdW1lbnQgdGhhdCAtLWVuYWJsZS1lbWJlZGRlZC1wZXJsIGFmZmVjdHMgc25tcHRyYXBkIGFsc28KCjIwMDUtMTAtMTkgMTE6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBlcnJvciByZWdleHAgZXhjZXB0aW9ucwoKMjAwNS0xMC0xOSAwNzowNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgV2l0aGRyYXcgJ3RhYmxlX2RhdGFzZXQyJyBoZWxwZXIKCjIwMDUtMTAtMTkgMDE6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGFkZCAnZGVmYXVsdCcgYXMgdGhlIG9pZCBmb3IgZXhlY2luZyB0aGUgZXhhbXBsZSB0cmFwaGFuZGxlCgoyMDA1LTEwLTE5IDAxOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggYnVnICMxMzEzNjY3OiBpbmZvcm1zIGFyZSBzZW50IGFzeWNocm9ub3VzbHkgdG8gYXZvaWQgY3Jhc2hpbmcgdGhlIGFnZW50IHdoZW4gdGhlIHJlY2VpdmVyIGlzIGRvd24KCjIwMDUtMTAtMTggMjI6MjQgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgUkVBRE1FLnR4dCwKICAgICBpbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzI6IFJlbmFtZSBOZXQtU05NUC5wcGQgdG8gTmV0U05NUC5wcGQsIGFkZCBhIGNvdXBsZQogICBoZWFkZXIgZmlsZXMgdG8gV2luMzIgdW5pbnN0YWxsZXIuCgoyMDA1LTEwLTE4IDE4OjIyICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZGQgI2lmZGVmcyBmb3IgTUlCIG1vZHVsZSBkZXBlbmRlbnQgY29kZQoKMjAwNS0xMC0xOCAxNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZml4IGluZGV4IGdlbmVyYXRpb24gZm9yIGZpeGVkIGxlbmd0aCBvY3RldCBzdHJpbmdzCgoyMDA1LTEwLTE4IDEyOjAwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Mi5oLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIFdpdGhkcmF3ICd0YWJsZV9kYXRhc2V0MicgaGVscGVyLgoKMjAwNS0xMC0xOCAxMTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgbXRlRXZlbnRUYWJsZS5jOgoKICAgUmV2ZXJ0IHRvIG9yaWdpbmFsICd0YWJsZV9kYXRhc2V0JyBoZWxwZXIuCgoyMDA1LTEwLTE4IDExOjQzICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIHN5bmMgcmVhZG1lIGluIGFsbCBicmFuY2hlcwoKMjAwNS0xMC0xOCAxMTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgUmV2ZXJ0IHRvIHVzaW5nIHRoZSBvcmlnaW5hbCAndGFibGVfZGF0YXNldCcgaGVscGVyLgoKMjAwNS0xMC0xOCAxMTozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBQcm92aWRlIG1pc3NpbmcgdGFibGUtdHJhdmVyc2FsIHJvdXRpbmVzLgoKMjAwNS0xMC0xOCAxMDo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5oOgoKICAgT29wcyEgIE9uZSBsb2NhdGlvbiBjaGFuZ2UgZ290IG92ZXJsb29rZWQhCgoyMDA1LTEwLTE4IDEwOjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWFrZSBncmVwcyBmb3IgZXJyb3IgY2FzZSBpbnNlbnNpdGl2ZQoKMjAwNS0xMC0xOCAxMDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBkbyBub3QgaW5zdGFsbCByZW1vdmVkL3JlZHVuZGFudCBoZWFkZXIKCjIwMDUtMTAtMTggMTA6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaCwKICAgICB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluOgoKICAgUmVuYW1lICd0YWJsZV9kYXRhMicgaGVscGVyIGFzICd0YWJsZV90ZGF0YScKCjIwMDUtMTAtMTggMDc6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgUHJlcGFyZSB0aGUgd2F5IGZvciByZW5hbWluZyAndGFibGVfZGF0YTInIG1vcmUgc2Vuc2libHkuCgoyMDA1LTEwLTE4IDA3OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBSZW1vdmUgdW53YW50ZWQgdmVzdGlnYXRlcyBvZiAndGFibGVfZGF0YScgc3RydWN0dXJlcywgYW5kIGJyaW5nCiAgIHRhYmxlIGNyZWF0aW9uIG1vcmUgY2xvc2VseSBpbnRvIGxpbmUgd2l0aCB0aGUgZ2VuZXJpYyBBUEkgdGVtcGxhdGUuCgoyMDA1LTEwLTE4IDA3OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBNaXNzaW5nIHJldHVybiB2YWx1ZS4KCjIwMDUtMTAtMTggMDc6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmM6CgogICBNaXNzaW5nIHJldHVybiB2YWx1ZXMuCgoyMDA1LTEwLTE4IDA3OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYzoKCiAgIElmIG5vIGlxdWVyeSBzZXNzaW9uIGlzIGNvbmZpZ3VyZWQgZm9yIGEgcGFydGljdWxhciBldmVudCwKICAgdHJ5IHRoZSBzZXR0aW5ncyBmcm9tIHRoZSB0cmlnZ2VyLCBiZWZvcmUgZmFsbGluZyBiYWNrIHRvCiAgIHRoZSBkZWZhdWx0IGludGVybmFsIHF1ZXJ5IHNlc3Npb24uCgoyMDA1LTEwLTE4IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIFVzZSAnaXF1ZXJ5U2VjTmFtZScgc2V0dGluZ3MgYXQgY29uZmlndXJlIHRpbWUsIHJhdGhlciB0aGFuIHdoZW4KICAgdGhlIHRyaWdnZXIgaXMgYWN0dWFsbHkgaW52b2tlZC4gIFRoaXMgYWxsb3dzOgogICAgICAgIGlxdWVyeVNlY05hbWUgbWUKICAgICAgICBtb25pdG9yIG15TW9uaXRvciAuLi4uLgogICAgICAgIG1vbml0b3IgbXlPdGhlck1vbml0b3IgLi4uLi4KICAgICAgICBpcXVlcnlTZWNOYW1lIHlvdQogICAgICAgIG1vbml0b3IgeW91ck1vbml0b3IgLi4uLi4KICAgdG8gd29yayBpbiB0aGUgbW9zdCBuYXR1cmFsIG1hbm5lci4KICAgSWYgbm8gaXF1ZXJ5IHNlY3VyaXR5IG5hbWUgaXMgYXZhaWxhYmxlIGF0IGNvbmZpZ3VyZSB0aW1lLAogICB0aGlzIHdpbGwgYmUgZXZhbHVhdGVkIGF0IHJ1biB0aW1lIGluc3RlYWQuCgoyMDA1LTEwLTE4IDA3OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvbmYuYywgc2NoZWRDb25mLmgsCiAgICAgc2NoZWRDb3JlLmMsIHNjaGVkQ29yZS5oLCBzY2hlZFRhYmxlLmMsCiAgICAgc2NoZWRUYWJsZS5oOgoKICAgUmVtb3ZlIHByZXZpb3VzIFNjaGVkdWxlIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMTAtMTggMDc6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkdWxlLmgsIHNjaGVkdWxlLy5jdnNpZ25vcmUKLCBzY2hlZHVsZS9zY2hlZENvbmYuYywgc2NoZWR1bGUvc2NoZWRDb25mLmgsCiAgICAgc2NoZWR1bGUvc2NoZWRDb3JlLmMsIHNjaGVkdWxlL3NjaGVkQ29yZS5oLAogICAgIHNjaGVkdWxlL3NjaGVkVGFibGUuYywgc2NoZWR1bGUvc2NoZWRUYWJsZS5oOgoKICAgUmUtd29ya2VkIFNjaGVkdWxlIE1JQiBpbXBsZW1lbnRhdGlvbi4KICAgQ2xlYW5lciwgbGVhbmVyLCBhbmQgbW9yZSBjb21wbGV0ZS4KICAgTm93IHdpdGggYWRkZWQgdml0YW1pbnMuCgoyMDA1LTEwLTE3IDE4OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgYWRkIG1vdmUgdmVyYm9zZSBkZWJ1Z2dpbmc7IGluaXQgaW5uZXIgbG9vcCBjb3VudGVyIGFmdGVyIGVhY2ggaXRlcmF0aW9uCgoyMDA1LTEwLTE3IDE3OjAyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHBvcnRhYmxlIGV4cG9ydCBvZiBlbnYgdmFyCgoyMDA1LTEwLTE3IDE2OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgRml4IGEgZmxpcHBpbmcgbG8gaW50ZXJmYWNlIGJ5IGZpeGluZyBnZXRLc3RhdEludCB0byBkbyBhcyBkb2N1bWVudGVkCgoyMDA1LTEwLTE3IDE0OjE3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGFkZCBwcm90b3R5cGUgYmVmb3JlIHVzZTsgY2hlY2sgc3RhdHVzIG9mIGNvcnJlY3Qgc3RydWN0IG1lbWJlcgoKMjAwNS0xMC0xNyAxMjo1MiAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICAtIG5vdGUgbGQgZmxhZ3MgZm9yIDEwLjQueCBidWlsZGluZyB3L3BlcmwKCjIwMDUtMTAtMTcgMTE6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgRW5zdXJlIHRoZSBldmVudCBuYW1lIGJ1ZmZlciBpcyBwcm9wZXJseSBjbGVhcmVkIGJlZm9yZSB1c2UuCgoyMDA1LTEwLTE3IDA3OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgTW9kaWZ5IGV4aXN0aW5nIHRhYmxlIGhlbHBlcnMgaW4gbGluZSB3aXRoIHRoZSBwcm9wb3NlZCBnZW5lcmljIEFQSS4KCiAgIFRoaXMgZG9lcyAqTk9UKiBjaGFuZ2UgYW55IGV4aXN0aW5nIGNvZGUgKGF0IGxlYXN0IG5vdCBpbnRlbnRpb25hbGx5KSwKICAgb3IgYWRkIGFueSBvZiB0aGUgIm1pc3NpbmciIEFQSSByb3V0aW5lcy4gIEkndmUgc2ltcGx5IHJlLXNodWZmbGVkCiAgIHRoZSBvcmRlciBvZiB0aGUgZXhpc3Rpbmcgcm91dGluZXMgdG8gbWF0Y2ggdGhlIGdlbmVyaWMgdGVtcGxhdGUuCgoyMDA1LTEwLTE3IDA3OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIFByb3BlciBkZWZpbml0aW9uL2RvY3VtZW50YXRpb24gb2YgYSBnZW5lcmljIHRhYmxlIEFQSSBmcmFtZXdvcmsuCiAgIFRoZSBleGFjdCBkZXRhaWxzIG1heSBub3QgYmUgZGlyZWN0bHkgYXBwcm9wcmlhdGUgaW4gZnVsbCBmb3IgZXZlcnkKICAgdGFibGUgaGVscGVyLCBidXQgdGhpcyBzaG91bGQgcHJvdmRlIGEgdXNlZnVsIGJhc2ljIGRlc2lnbiB0ZW1wbGF0ZS4KCjIwMDUtMTAtMTcgMDA6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVtb3ZlZCBmb3JjZWQgZGVidWdnaW5nIG91dHB1dAoKMjAwNS0xMC0xNCAxOTozNyAgYnNoYXc2NjYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhdXRvY29uZiByZWNvZ25pdGlvbgoKMjAwNS0xMC0xNCAxODo0NSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgc3VwcG9ydCBOZXRCU0QgMS54IGFuZCAyLnggdW5kZXIgdGhlIChjb21tb24pICJuZXRic2QiIHN5c09iamVjdElELjAKCjIwMDUtMTAtMTQgMTc6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBjb21tZW50cyBhbmQgZGVidWcgbWVzc2FnZXMKICAgLSBkb24ndCByZWxlYXNlIHJvdyBvbiBlcnIgKGl0J3Mgc3RpbGwgaW4gdGhlIGNvbnRhaW5lciEpCiAgIC0gZG9uJ3QgaW5zZXJ0IHJvdyBvbiBzdWNjZXNzIChpdCdzIGFscmVhZHkgaW4gdGhlIGNvbnRhaW5lciEpCgoyMDA1LTEwLTE0IDE3OjA3ICByc3RvcnkKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBtaWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICByZXBsYWNlIGhhcmRjb2RlZCAic25tcGQiIHcvTkVUU05NUF9EU19MSUJfQVBQVFlQRQoKMjAwNS0xMC0xNCAxMToyNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVnaXN0ZXIgdGhlIHNubXBFbmdpbmUgTUlCIGdyb3VwIHVuZGVyIHRoZSAic25tcHRyYXBkIiBjb250ZXh0IHRvIGFsbG93IGZvciBlbmdpbmVJRCBwcm9iZXMgdmlhIHRoZSBtYXN0ZXIgYWdlbnQsIGUuZy4gYnkgc25tcHVzbQoKMjAwNS0xMC0xNCAxMToyNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvOiBzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaDoKCiAgIGFsbG93IHN1YmFnZW50cyAobGlrZSBzbm1wdHJhcGQpIHRvIHJlZ2lzdGVyIHRoZSBzbm1wRW5naW5lIE1JQiBncm91cCB1bmRlciBhIGNvbnRleHQgYnkgaW50cm9kdWNpbmcgcmVnaXN0ZXJfc25tcEVuZ2luZV9zY2FsYXJzX2NvbnRleHQoKQoKMjAwNS0xMC0xNCAwOTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXhwcmVzc2lvbi5oLCBleHByLy5jdnNpZ25vcmUKLCBleHByL2V4cEVycm9yVGFibGUuYywgZXhwci9leHBFcnJvclRhYmxlLmgsCiAgICAgZXhwci9leHBFeHByZXNzaW9uLmMsIGV4cHIvZXhwRXhwcmVzc2lvbi5oLAogICAgIGV4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgZXhwci9leHBFeHByZXNzaW9uQ29uZi5oLAogICAgIGV4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsIGV4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmgsCiAgICAgZXhwci9leHBPYmplY3QuYywgZXhwci9leHBPYmplY3QuaCwKICAgICBleHByL2V4cE9iamVjdENvbmYuYywgZXhwci9leHBPYmplY3RDb25mLmgsCiAgICAgZXhwci9leHBPYmplY3RUYWJsZS5jLCBleHByL2V4cE9iamVjdFRhYmxlLmgsCiAgICAgZXhwci9leHBTY2FsYXJzLmMsIGV4cHIvZXhwU2NhbGFycy5oLCBleHByL2V4cFZhbHVlLmMKLCBleHByL2V4cFZhbHVlLmgsIGV4cHIvZXhwVmFsdWVUYWJsZS5jLAogICAgIGV4cHIvZXhwVmFsdWVUYWJsZS5oOgoKICAgUHJlbGltaW5hcnkgKHJlLSlpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRXhwcmVzc2lvbiBNSUIuCiAgIFRoZSBleHBFeHByZXNzaW9uVGFibGUgYW5kIGV4cE9iamVjdFRhYmxlIGFyZSByZWFzb25hYmx5IGNvbXBsZXRlLgogICBUaGUgZXhwVmFsdWVUYWJsZSAoYW5kIGV4cHJlc3Npb24gZXZhbHVhdGlvbikgaXMgc3RpbGwganVzdCBhCiAgIGJhc2ljIGZyYW1ld29yayAtIGV4cHJlc3Npb25zIGFyZSBkaXNwbGF5ZWQgcmF0aGVyIHRoYW4gZXZhbHVhdGVkLgogICBBbmQgdGhlcmUncyBubyB1c2VyLWxldmVsIGNvbmZpZ3VyYXRpb24gb2YgZXhwcmVzc2lvbnMgeWV0LgoKICAgQnV0IHRoZXJlJ3MgZW5vdWdoIHdvcmtpbmcgY29kZSB0byBiZSB3b3J0aCBjb21taXR0aW5nIC0gZXZlbiBpZgogICBvbmx5IGFzIGEgc2FmZXR5IG1lY2hhbmlzbS4KCjIwMDUtMTAtMTMgMTc6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaXggc3BhcnNlIGhhbmRsZXIgY2FzZTogbm8gbW9yZSByb3dzLCBsYXN0IGNvbHVtbgoKMjAwNS0xMC0xMyAxMjo0OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSBmaXggdGFibGUgdG9rZW4gdGFibGUgaW5kZXhlcyBmb3IgYXVnbWVudGVkIHRhYmxlCiAgIC0gdHdlYWsgZGVidWcKICAgLSBhZGQgd2FybmluZyBpZiB0b28gbXVjaCBkYXRhIHNwZWNpZmllZCBmb3IgYWRkX3JvdwoKMjAwNS0xMC0xMyAxMToyOCAgcnN0b3J5CgogICAqIGRvdGdkYmluaXQ6CgogICBhZGQgcHJpbnRpbmRleCBmb3IgbmV0c25tcF9pbmRleCBzdHJ1Y3RzCgoyMDA1LTEwLTEzIDEwOjEyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY29uZmlndXJlIHByZWZpeCAoaW5zdGVhZCBvZiB1c2luZyBpbnN0YWxsIHByZWZpeD0pCgoyMDA1LTEwLTEzIDA1OjE1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFN3aXRjaCB0byB1c2luZyB0aGUgbmV3IEV2ZW50LU1JQiBpbXBsZW1lbnRhdGlvbiBieSBkZWZhdWx0LgoKICAgVGhlIHByZXZpb3VzIHZlcnNpb24gaXMgc3RpbGwgYXZhaWxhYmxlIGZvciB0aG9zZSB0aGF0IHByZWZlcgogICB0byB1c2UgdGhhdCwgYnV0IEknbSBzdXJlIHNvbWVvbmUgd2lsbCBjb21wbGFpbiBhbnl3YXk6LSgKCjIwMDUtMTAtMTIgMTg6NTkgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaDoKCiAgIG9wZW5ic2Qgc3lzT2JqZWN0SUQuMCBmb3IgT3BlbkJTRCAzLngKCjIwMDUtMTAtMTIgMTg6MTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICBlbmhhbmNlIHJlY2VudGx5IGludHJvZHVjZWQgIm5ldC1zbm1wLWNvbmZpZyAtLXNubXBjb25mcGF0aCIgdG8gb3V0cHV0IGZ1bGwgY29uZmlnIHBhdGgKCjIwMDUtMTAtMTIgMTA6NDYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBkZWYgZmlsZXMgYXJlIGluIHNyY2RpcgoKMjAwNS0xMC0xMiAwNjoyOCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgY2hhbmdlIG5vLW9wIG1hY3JvIGRlZiB0byBlbXB0eSBpc250ZWFkIG9mICh2b2lkKQoKMjAwNS0xMC0xMSAxOToxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgcmV3b3JrIDY0IGJpdCBvdmVyZmxvdyBjaGVja2luZywgYWNjb3VudGluZyBmb3Igc2lnbmVkZWRuZXNzCgoyMDA1LTEwLTExIDE2OjMwICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHZhcmlhdGlvbnMgaW4gdGFpbCBwYXJhbWV0ZXIgZm9ybWF0CgoyMDA1LTEwLTExIDE0OjUzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGxlZnRvdmVyIEVPRiBmcm9tIHJldiAxLjMxNAoKMjAwNS0xMC0xMSAwNzo1MiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBvaywgbGludXggbWFpbCBkb2Vzbid0IGxpa2UgW2NlbnNvcmVkXSBzb2xhcmlzIHN0eWxlOyBmaXgKCjIwMDUtMTAtMTEgMDc6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSBuZXQtc25tcC1jb25maWcgaXMgZXhlY3V0ZWFibGUgYmVmb3JlIGJ1aWxkaW5nIHBlcmwgbWFrZSBmaWxlcwoKMjAwNS0xMC0xMSAwNToyNyAgZHRzMTIKCiAgICogcGVybC86IFNOTVAvZXhhbXBsZXMvYnVsa3dhbGsucGwsCiAgICAgU05NUC9leGFtcGxlcy90cmFwLWV4YW1wbGUucGwsIFNOTVAvdC9idWxrd2Fsay50LAogICAgIG1hbmFnZXIvbWFuYWdlci5wbToKCiAgIEJlIGNvbnNpc3RlbnQgaW4gaG93IHZhcmlvdXMgcGVybCBzY3JpcHRzIGFyZSBpbnZva2VkLgoKMjAwNS0xMC0xMCAxOTo0MiAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwgb3Yvb2lkX3RvX3N5bS5pbgosIG92L29pZF90b190eXBlLmluOgoKICAgYWRkIHN5c09iamVjdElEIHZhbHVlIGZvciBNYWMgT1MgWAoKMjAwNS0xMC0xMCAxODozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHVwZGF0ZSBsaW51eCBnZXRfaWZfc3BlZWQgZnVuY3Rpb24gbmFtZQoKMjAwNS0xMC0xMCAxODowMSAgdGFuZGVycwoKICAgKiBvdi86IG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluOgoKICAgYWRkIHN5c09iamVjdElEIHZhbHVlIGZvciBBSVgKCjIwMDUtMTAtMTAgMTc6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIGJyZWFrIGFwYXJ0IHJlYWRpbmcgb2YgY29uZmlnIGZpbGVzIGFuZCBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlcyAoYWxsb3dzCiAgICAgcHJvcGVyIGhhbmRsaW5nIG9mIHBlcnNpc3RlbnREaXIgdG9rZW4gaW4gY29uZmlnIGZpbGVzKQogICAtIHJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUKCjIwMDUtMTAtMTAgMTc6NTEgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIHJlcGFsY2UgcGVybCB3LyAkKFBFUkwpCgoyMDA1LTEwLTEwIDE3OjQ0ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgYWRkIHN5c09iamVjdElEIHZhbHVlIGZvciBBSVgKCjIwMDUtMTAtMTAgMTc6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IGZyb20gb3B0YXJnIHByb2Nlc3NpbmcKCjIwMDUtMTAtMTAgMTY6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiBmb3IgZnJvbSBhZGRyZXNzIGZvciBlbWFpbCByZXN1bHRzCgoyMDA1LTEwLTEwIDE2OjI1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIC0gYWRkIGRpc3RpbmN0IGVtYWlsIGFkZHJlc3NlcyBmb3Igc3VjY2Vzcy9lcnJvciBjYXNlcwogICAtIGZpeGVzIGZvciAjJUAkKiYgc29sYXJpcyBtYWlsIGV4ZQogICAtIGRvbid0IHJlbW92ZSBkaXJlY3RvcnkgdGlsIHZlcnkgZW5kCgoyMDA1LTEwLTEwIDE2OjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZXhjbHVkZSBlcnJvciBsaW5lcyBmb3IgJ0luIGZ1bmN0aW9uJyAoZWcgZnVuYyBuYW1lIGNvbnRhaW5zIHdvcmQgZXJyb3IpCgoyMDA1LTEwLTEwIDE0OjU2ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSBiYXNlIG1pYjJjLmNvbmYgZ2VuZXJhdGlvbiBvbiAkUEVSTCwgbm90IC1kIENWUwogICAtIGlmIG5vIHBlcmwsIHRvdWNoIGZpbGUgc28gaW5zdGFsbCBkb2Vzbid0IGZhaWwKCjIwMDUtMTAtMTAgMTQ6NDcgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBsb2NhbC9NYWtlZmlsZS5pbgosIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIGRlZmluZSBQRVJMIGluIGFsbCBtYWtlZmlsZXMgKHZpYSBNYWtlZmlsZS50b3ApCiAgIC0gcmVwbGFjZSBhbGwgY2FsbHMgdG8gcGVybCB3aXRoICQoUEVSTCkKICAgLSByZXBsYWNlIGV4aXN0aW5nIFBFUkxQUk9HIHdpdGggUEVSTCBpbiBtYWtlZmlsZXMKCjIwMDUtMTAtMTAgMTQ6MzggIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgUEVSTExET1BUUyB0byBhZ2VudCBsaWJzCgoyMDA1LTEwLTEwIDA5OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgQWxsb3cgdGhlIGFkbWluaXN0cmF0b3IgdG8gY2hvb3NlIGJldHdlZW4gZm9sbG93aW5nIHRoZSBEaXNNYW4KICAgc3BlY2lmaWNhdGlvbnMgc3RyaWN0bHksIG9yIHVzaW5nIGFuIGFwcHJvYWNoIHRoYXQgYWN0dWFsbHkgd29ya3MhCiAgIChUaGUgb2ZmaWNpYWwgb3JkZXJpbmcgZm9yIGFkZGluZyB2YXJiaW5kcyB0byBhIG5vdGlmaWNhdGlvbgogICAgcGF5bG9hZCBsaXN0IG1ha2VzIGl0IGltcG9zc2libGUgdG8gdXNlIHNwZWNpZnkgVHJpZ2dlciBhbmQKICAgIEV2ZW50IG9iamVjdHMgaW4gYSBzZW5zaWJsZSBmYXNoaW9uKS4KCjIwMDUtMTAtMTAgMDk6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBEb24ndCByZXBvcnQgcm93cyB0aGF0IGhhdmVuJ3QgZmluaXNoZWQgYmVpbmcgY3JlYXRlZCwgYW5kCiAgIGRvbid0IGtlZXAgc2NoZWR1bGluZyBzYW1wbGVzIGZvciByb3dzIHRoYXQgYXJlIGRpc2FibGVkIG9yIHJlbW92ZWQuCgoyMDA1LTEwLTEwIDA5OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIFJlZHVuZGVudCAoYXV0by0pY29tbWVudC4KCjIwMDUtMTAtMTAgMDk6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBDb252ZXJ0aW5nIGJldHdlZW4gaW5kZXggcmVwcmVzZW50YXRpb25zIGlzIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJLgoKMjAwNS0xMC0xMCAwODoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQ29wZSB3aXRoIGEgbWlzc2luZyBpbnRlcm5hbCBxdWVyeSB1c2VybmFtZQogICAocmF0aGVyIHRoYW4gZm9yY2luZyBhIGhhcmR3aXJlZCBvbmUpCgoyMDA1LTEwLTEwIDA3OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBSZXR1cm4gdGhlIGZ1bGwgbGlzdCBvZiByZXN1bHRzIGZyb20gYW4gaW50ZXJuYWwgcXVlcnksCiAgIHJhdGhlciB0aGFuIHRydW5jYXRpbmcgaXQgYWZ0ZXIgdGhlIGZpcnN0IHZhcmJpbmQuCiAgIChXaHkgJ2Nsb25lX3Zhcicgc3RvbXBzIG9uIHRoZSBuZXh0IGxpbmsgaXMgYSBteXN0ZXJ5IHRvIG1lISkKCjIwMDUtMTAtMTAgMDc6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEluZGljYXRlIHRoYXQgJ2lmX3NwZWVkJyBBUElzIGFyZSBMaW51eC1zcGVjaWZpYwogICAoYW5kIG5vdCBwYXJ0IG9mIHRoZSBnZW5lcmljIElGLU1JQiBkYXRhX2FjY2VzcyBmcmFtZXdvcmspCgoyMDA1LTEwLTA3IDE3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jOgoKICAgaWZkZWYgb3V0IGNvZGUgaWYgbW9kdWxlIG5vdCBlbmFibGVkCgoyMDA1LTEwLTA3IDE2OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBtb3ZlIG1pc2FwcGxpZWQgcGF0Y2ggdG8gY29ycmVjdCBsb2NhdGlvbgoKMjAwNS0xMC0wNyAxNjo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHR5cG8KCjIwMDUtMTAtMDcgMTY6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBvbmx5IHNhdmUgc2V0dGFibGUgY29scwoKMjAwNS0xMC0wNyAxNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaDoKCiAgIGRlZmluZSBzZXR0YWJsZSBjb2xzCgoyMDA1LTEwLTA3IDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBnZXQgcmlkIG9mIG9sZCBwZXJzaXN0ZW50IHNhdmUgZnVuY3MsIGluIGZhdm9yIG9mIG5ldyBnZW5lcmF0ZWQgc3R1ZmYKCjIwMDUtMTAtMDcgMTY6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgdHlwbwoKMjAwNS0xMC0wNyAxNjozOCAgdGFuZGVycwoKICAgKiBGQVE6CgogICBNYWpvciBvdmVyaGF1bCBvZiBsaXN0IG9mIHN1cHBvcnRlZCBwbGF0Zm9ybXMgYmFzZWQgb24gNS4yLjIucHJlWCB0ZXN0aW5nCgoyMDA1LTEwLTA3IDE2OjI1ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBmaXggdHlwb3MgaW4gNS4yIE5FV1MKCjIwMDUtMTAtMDcgMTA6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgSG1tbW0uLi4uIHJlbW92aW5nIHRoZSBvYmplY3QgZW50cmllcyBmb2xsb3dpbmcgYSBkdXBsaWNhdGUgdHJpZ2dlcgogICBzZWVtcyB0byBiZSBwcm9ibGVtYXRpY2FsLiAgKEFzIGluIHRoZSBhZ2VudCBjcmFzaGVzISkgIEl0J3Mgbm90CiAgIGNsZWFyIHdoZXRoZXIgdGhpcyBpcyBhcHByb3ByaWF0ZSBiZWhhdmlvdXIgYW55d2F5LgoKICAgTmVlZCB0byB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUuCgoyMDA1LTEwLTA3IDA5OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyQ29uZi5jLAogICAgIG10ZVRyaWdnZXJDb25mLmg6CgogICBDb25maWd1cmUgbW9uaXRvcmluZyBvZiBVQ0Qtc3BlY2lmaWMgdGFibGVzCiAgIChjb21wYXRhYmlsaXR5IHdpdGggcHJldmlvdXMgRXZlbnQtTUlCIGltcGxlbWVudGF0aW9uKS4KCiAgIE5vdCB5ZXQgZnVsbHkgdGVzdGVkLCBidXQgc2VlbXMgdG8gYmUgT0suCgoyMDA1LTEwLTA3IDA5OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC5oLCBldmVudC9tdGVTY2FsYXJzLmMsCiAgICAgZXZlbnQvbXRlU2NhbGFycy5oOgoKICAgSW1wbGVtZW50IHRoZSBFdmVudC1NSUIgc2NhbGFyIG9iamVjdHMuCgoyMDA1LTEwLTA3IDA5OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXIuaAo6CgogICBBUEkgZm9yIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgdmFsdWVzIGJlaW5nIG1vbml0b3JlZC4KCjIwMDUtMTAtMDcgMDg6NDIgIHRhbmRlcnMKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZ2V0IHJpZCBvZiBDKysga2V5d29yZCAibmV3Ii4gTWZELWJhc2VkIGNvZGUgc3RpbGwgbmVlZHMgdG8gYmUgcmVnZW5lcmF0ZWQuCgoyMDA1LTEwLTA3IDA1OjU1ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgZGFyd2luOC5oIGFuZCBzb2xhcmlzMi4xMC5oCgoyMDA1LTEwLTA2IDIwOjMxICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGltcHJvdmUgaGVscCBvdXRwdXQKCjIwMDUtMTAtMDYgMjA6MjEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICBBZGQgbmV0LXNubXAtY29uZmlnIG9wdGlvbnMgLS1kZWZhdWx0LW1pYnMsIC0tZGVmYXVsdC1taWJkaXJzLCAtLXBlcnNpc3RlbnQtZGlyZWN0b3J5IGFuZCAtLXNubXBjb25mcGF0aAoKMjAwNS0xMC0wNiAxOTowMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvU3YzY29uZmlnLAogICAgIHRlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RzL1N2YWNtY29uZmlnLAogICAgIHRlc3RzL1N2YW55Y29uZmlnOgoKICAgLSBjcmVhdGUgYW5kIHVzZSBwZXJzaXN0ZW50IGRpciBpbiB0ZXN0IGRpcmVjdG9yeSAoc28gbWFrZSB0ZXN0IGFzIHJvb3QKICAgICBkb2Vzbid0IG11Y2sgd2l0aCBzeXN0ZW0gcGVyc2lzdGVudCBjb25mKQoKMjAwNS0xMC0wNiAxODo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvdW50ZXI2NCBzdXBwb3J0IHRvIHNubXBfYWRkX3ZhciAoc28gdGhleSBjYW4gYmUgc2VudCB3L3NubXB0cmFwKQoKMjAwNS0xMC0wNiAxODo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgZXhwbGljaXQgYnJhY2VzIHRvIGtlZXAgY29tcGlsZXIgaGFwcHkKCjIwMDUtMTAtMDYgMTg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGluY2x1ZGUgdXRtcC91dG1weCBoZWFkZXIgKGZpeCBmb3Igb25lIG9mIHRoZSBCU0RzKQoKMjAwNS0xMC0wNiAxODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIC0gaW5jcmVhc2UgZGVmYXVsdCBidWZmZXIgc2l6ZQogICAtIGNoZWNrIG9wZW4gcmMKICAgLSBsb2cgZXJyIGlmIG5vIGRhdGEgYXZhaWxhYmxlCgoyMDA1LTEwLTA2IDE4OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUvY3B1LmMsIG1lbW9yeS9od19tZW0uYzoKCiAgIHRoaXMgKEMrKyByZXNlcnZlZCB3b3JkKSAtPiB0aGlzX3B0cgoKMjAwNS0xMC0wNiAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgY2FsbCBpbml0X2FnZW50eF9jb25maWcgaW5zdGVhZCBvZiByZWdpc3RlcmluZyBoYW5kbGVyIGRpcmVjdGx5CgoyMDA1LTEwLTA2IDE4OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIC0gc2xpZ2h0IHJlb3JnIG9mIGluaXRfYWdlbnR4X2NvbmZpZygpCiAgICAgLSBpZmRlZiBzb21lIHN0dWZmIGJhc2VkIG9uIG1hc3RlciBhZ2VudCBzdXBwb3J0CiAgICAgLSBtb3ZlIGFnZW50eChwZXJtc3x0aW1lb3V0KSBpbiBjb25kaXRpb25hbCBmb3IgYWdlbnQgcm9sZSA9PSBtYXN0ZXIKCjIwMDUtMTAtMDYgMDg6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjYXQgY29ycmVjdCBmaWxlIG9uIGVycm9ycwoKMjAwNS0xMC0wNiAwODozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIHRvIGVtYWlsIHJlc3VsdHMKCjIwMDUtMTAtMDYgMDc6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4Lmg6CgogICBJUklYIHRjcC1taWIgY2xlYW51cCBwYXRjaCAoZnJvbSBBbGJlcnQgQ2hpbikKCjIwMDUtMTAtMDYgMDU6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBQcmVsaW1pbmFyeSBoYW5kbGluZyBvZiBlcnJvcnMuCgoyMDA1LTEwLTA2IDA1OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEJsb2NrIGNvbmZpZ3VyYXRpb24gb2YgZGVsdGEtdGhyZXNob2xkcyBvbiBkZWx0YS1zYW1wbGVzLgoKMjAwNS0xMC0wNiAwNToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgQ29uc29saWRhdGUgaGFuZGxpbmcgb2Ygc3lzVXBUaW1lIGluc3RhbmNlIGRpc2NvbnRpbnVpdHkgbWFya2VyLgoKMjAwNS0xMC0wNiAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBTdXBwb3J0IHRoZSBjb25maWd1cmF0aW9uIG9mICpqdXN0KiBkZWx0YSB0aHJlc2hvbGQgdGVzdHMuCgoyMDA1LTEwLTA2IDA1OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsCiAgICAgbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEltcGxlbWVudCBkZWx0YS10aHJlc2hvbGQgdGVzdHMuCgoyMDA1LTEwLTA2IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEFjY2VwdCBuZWdhdGl2ZSB2YWx1ZXMgKHJhdGhlciB0aGFuIHJlamVjdGluZyB0aGVtIGFzIGludmFsaWQgb3B0aW9ucykKCjIwMDUtMTAtMDYgMDU6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBEb24ndCBib3RoZXIgdHJ5aW5nIHRvIGZpcmUgbWlzc2luZyB0aHJlc2hvbGQgZXZlbnRzLgoKMjAwNS0xMC0wNSAwODoyNiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldCByaWQgb2YgQysrIGtleXdvcmQgImNsYXNzIgoKMjAwNS0xMC0wNSAwNDo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBTaWdoIC0gcmVhZCB0aGUgd2hvbGUgZW1haWwgbWVzc2FnZSwgRGF2ZSEKCjIwMDUtMTAtMDUgMDQ6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUmVtb3ZlIGJvZ3VzIHRyYWlsaW5nIGNvbW1hIChyZXBvcnRlZCBieSBBbGJlcnQgQ2hpbikKCjIwMDUtMTAtMDQgMTc6NTEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjaGVjayByZXN1bHRzIG9mIGV2ZXJ5IHN5c3RlbSBjYWxsIGluc3RlYWQgb2YganVzdCBzcGVjaWFsIG9uZXMuCgoyMDA1LTEwLTA0IDEwOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXIuaAosIG10ZVRyaWdnZXJDb25mLmMsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgZGVsdGEtdmFsdWVkIHNhbXBsZXMuCiAgIE9ubHkgdGVzdGVkIHdpdGggQm9vbGVhbiBlbnRyaWVzLCBhbmQgYSBiYXNpYyBzeXNVcFRpbWUuMAogICBkaXNjb250aW51aXR5IG1hcmtlci4gIFRocmVzaG9sZCBkZWx0YS12YWx1ZWQgc2FtcGxlcyBhbmQKICAgd2lsZGNhcmRlZCBkaXNjb250aW51aXR5IE9JRHMgb3VnaHQgdG8gd29yaywgYnV0IHN0aWxsIG5lZWQgdGVzdGluZy4KCjIwMDUtMTAtMDQgMTA6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBDYW5vbmljYWxpc2UgcHJldmlvdXMvY3VycmVudCByZXN1bHRzIC0gbWF0Y2hpbmcgZW50cmllcyBsZWFkcyB0bwogICBzaW1wbGVyIHRlc3QgY29kZS4gIEFkanVzdCBFeGlzdGVuY2UgdGVzdHMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcy4KCjIwMDUtMTAtMDMgMTk6NDcgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBGaXggdHlwbyBpbiBzY3JpcHQsIGZpeCAld2luZGlyJSBlbnYgdmFyIGNoZWNrLgoKMjAwNS0xMC0wMyAwNzo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBSdW4gU0VUIGFzc2lnbm1lbnRzIGR1cmluZyB0aGUgQUNUSU9OIHBhc3MsIHNvIGVycm9ycyBjYW4gYmUgcmVwb3J0ZWQuCiAgIChTaG91bGQgZml4IEJ1ZyAjODY0MjgxLCBhbmQgYmUgY29uc2lzdGVudCB3aXRoIHBhc3MuYyBiZWhhdmlvdXIpCgoyMDA1LTEwLTAxIDE2OjUxICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gZm9yIGVtYWlsIG9mIGVycm9yIHJlc3VsdHMKCjIwMDUtMTAtMDEgMTU6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgZml4IHV0bXAgaW5jbHVkZSBpZmRlZiBsb2dpYwoKMjAwNS0xMC0wMSAxMjoyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTAxIDEyOjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGNoZWNrIGZvciBtYnN0YXQubV9tYnVmcyBiZWZvcmUgdXNpbmcKCjIwMDUtMDktMjkgMTg6NTEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBGaXggYnVnICMxMTUwMDE4OiBEeW5hbWljIGFsbG9jYXRpb24gb2YgZGlzayBzdG9yYWdlIGFycmF5LgoKMjAwNS0wOS0yOSAxODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGaXggYnVnICMxMTUwMDE4OiBEeW5hbWljIGFsbG9jYXRpb24gb2YgZGlzayBzdG9yYWdlIGFycmF5LgoKMjAwNS0wOS0yOSAxODoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIFBhdGNoIGZyb20gYnVnIzEyMzQ4MzQ6IGZpeGVzIHRhcmdldGFkZHJ0aW1lb3V0IHNvIGl0cyB3cml0YWJsZQoKMjAwNS0wOS0yOSAxODoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29sdW1uX2VudW1zLmNvbmY6CgogICBhZGRlZCBnZW5lcmF0aW9uIG9mIGVudW1zIGZvciBzY2FsYXJzCgoyMDA1LTA5LTI5IDEzOjE2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgc2V0IHNvY2sgYnVmIHNpemUgZm9yIHVuaXggZG9tYWluIHNvY2tldHMKCjIwMDUtMDktMjkgMDY6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywKICAgICBtdGVUcmlnZ2VyQ29uZi5jOgoKICAgSW1wbGVtZW50IHNpbmdsZS12YWx1ZWQgdGhyZXNob2xkIHRyaWdnZXJzLgoKMjAwNS0wOS0yOCAxODoyOCAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIFdpbjMyIE1TVkM6ICBFbmFibGUgQUVTIGVuY3J5cHRpb24gd2hlbiBTU0wgaXMgZW5hYmxlZC4KCjIwMDUtMDktMjggMTc6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIHN3YXAgcmV2ZXJzZWQgaWYvZWxzZSBjb2RlCgoyMDA1LTA5LTI4IDE1OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgcHJvdmlkZSBkZWZhdWx0IGZvciBpbnRlcm5hbCBzZWNuYW1lCgoyMDA1LTA5LTI4IDEyOjM4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGxhc3QgcmVtYWluaW5nICJwcmVzZW50LCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiB3YXJuaW5nIG9uIFNvbGFyaXMgOQoKMjAwNS0wOS0yOCAxMTozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQvLmN2c2lnbm9yZSwKICAgICBldmVudC9tdGVFdmVudC5jLCBldmVudC9tdGVFdmVudC5oLAogICAgIGV2ZW50L210ZUV2ZW50Q29uZi5jLCBldmVudC9tdGVFdmVudENvbmYuaCwKICAgICBldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCBldmVudC9tdGVFdmVudFNldFRhYmxlLmMKLCBldmVudC9tdGVFdmVudFNldFRhYmxlLmgsIGV2ZW50L210ZUV2ZW50VGFibGUuYwosIGV2ZW50L210ZUV2ZW50VGFibGUuaCwgZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGV2ZW50L210ZU9iamVjdHMuaCwgZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywKICAgICBldmVudC9tdGVPYmplY3RzQ29uZi5oLCBldmVudC9tdGVPYmplY3RzVGFibGUuYywKICAgICBldmVudC9tdGVPYmplY3RzVGFibGUuaCwgZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGV2ZW50L210ZVRyaWdnZXIuaCwgZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICAgIGV2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgZXZlbnQvbXRlVHJpZ2dlckNvbmYuYwosIGV2ZW50L210ZVRyaWdnZXJDb25mLmgsIGV2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKLCBldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICAgIGV2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICAgIGV2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCBldmVudC9tdGVUcmlnZ2VyVGFibGUuYwosIGV2ZW50L210ZVRyaWdnZXJUYWJsZS5oLAogICAgIGV2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICAgIGV2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgTmV3IGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaXNNYW4gRXZlbnQgTUlCLgoKMjAwNS0wOS0yOCAxMDoyNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBhZGRlZCBkb2N1bWVudGF0aW9uIGRlc2NyaWJpbmcgdGhlIGV4ZWMoKSBwYXRoIHJlcXVpcmVtZW50CgoyMDA1LTA5LTI4IDEwOjIxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFVwZGF0ZWQgZG9jcyBvbiAtSWIgdG8gZG9jdW1lbnQgZXh0cmEgbGltaXRhdGlvbnMKCjIwMDUtMDktMjggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBFeHRlbmQgdGFibGUgaW50ZXJmYWNlIHdpdGggcm93IGNvbXBhcmlzb24gQVBJIHJvdXRpbmVzLgoKMjAwNS0wOS0yOCAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgVXNlIHRoZSBkZWZhdWx0IHF1ZXJ5IHNlc3Npb24gZnJvbSB0aGUgbGlicmFyeS4KCjIwMDUtMDktMjggMDY6MDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFN1cHBvcnQgdGhlIGlkZWEgb2YgYSAiZGVmYXVsdCBzZXNzaW9uIiBmb3IgdGhlIHF1ZXJ5IGNvbnZlbmllbmNlIHJvdXRpbmVzLgoKMjAwNS0wOS0yOCAwNTowMCAgdGFuZGVycwoKICAgKiBSRUFETUU6CgogICByZXZlYWwgbXkgY29udGludWVkIHByZXNlbmNlIGFyb3VuZCBoZXJlCgoyMDA1LTA5LTI4IDA0OjUzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDYWxsYmFjayB0byByZXBvcnQgZXN0YWJsaXNobWVudCBvZiBhIGNvbm5lY3Rpb24gKGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDUtMDktMjcgMjI6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSBjb252ZXJ0IG1hc2sgdG8gbmV0d29yayBieXRlIG9yZGVyCiAgIC0gdXBkYXRlIHBmeF9sZW4gY291bnRpbmcgZm9yIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIGFkZCBsaXR0bGUgZW5kaWFuIC9wcm9jL25ldC9yb3V0ZSBleGFtcGxlIGxpbmUKICAgLSBvbmx5IHNldCByb3V0ZSBwb2xpY3kgZm9yIGRlZmF1bHQgZ2F0ZXdheSByb3V0ZXMKICAgLSB1cGRhdGUgZm9yIG5ldyBzdGF0aWMgcG9saWN5IGZsYWcKICAgLSBuZXcgcm91dGUgY3JlYXRlL2RlbGV0ZSBmdW5jdGlvbnMKCjIwMDUtMDktMjcgMTk6MjUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICAtIG1vdmUgYWN0aXZlIHJvdyBzZXQgcmVzdHJpY3Rpb24gdG8gZGVwZW5kZW5jeSBjaGVjayBmdW5jdGlvbgogICAtIHVwZGF0ZSBhc3NlcnQgdG8gdGVzdCBhZ2FpbnN0IG5ldyBleHBlY3RlZCB2YWx1ZQoKMjAwNS0wOS0yNyAxOToxMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4xMC5oOgoKICAgYWRkIFNvbGFyaXMgMTAgc3VwcG9ydAoKMjAwNS0wOS0yNyAxOTowOCAgcnN0b3J5CgogICAqIE5FV1M6CgogICBtZW50aW9uIGR5bmFtaWMgaXB2NCByb3V0ZSBjcmVhdGlvbi9kZWxldGlvbgoKMjAwNS0wOS0yNyAxNzo0NSAgdGFuZGVycwoKICAgKiBSRUFETUUudHJ1NjQsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIFRydTY0IFVuaXggNS54IGJ1aWxkIGZpeGVzIChidWcgIzEyMTc1MDkpCgoyMDA1LTA5LTI3IDE0OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBwcmludCByYW5nZSBpbmZvcm1hdGlvbgoKMjAwNS0wOS0yNyAxMzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSB1c2UgbmV3IHJvdXRlX2VudHJ5IGZ1bmN0aW9ucyBmb3IgZHluYW1pYyBpcHY0IHJvdXRlIGNyZWF0aW9uL2RlbGV0aW9uCiAgIC0gbnVrZSBnZW5lcmF0ZWQgY29sdW1uIHVuZG8gZnVuY3MsIHVzZSBuZXcgdGFibGUgbGV2ZWwgb25lIGluc3RlYWQKICAgLSBhZGQgc29tZSBkZXBlZGVuY3kgdmFsaWRhdGlvbiAoYWRkciB0eXBlICYgZXhwZWN0ZWQgYWRkciBsZW4pCgoyMDA1LTA5LTI3IDEzOjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICByZW1vdmUgZGVidWdnaW5nIGNvbW1lbnRzCgoyMDA1LTA5LTI3IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBwYXRjaCAjMTMwNDQwMDogYmV0dGVyIGhyU1dSdW5UeXBlIHN1cHBvcnQKCjIwMDUtMDktMjcgMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcGF0Y2ggIzEyMjUzNjAgdG8gZml4IHRoZSBzbXV4IGVuY29kaW5nIG9mIHRoZSByZXF1ZXN0aWQgdG8gYSBzaWduZWQgaW50CgoyMDA1LTA5LTI3IDEyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBrZXkgdmFjbSAibm8gYWNjZXNzIiB3YXJuaW5nIG9mZiBhZ2VudF9tb2RlIGluc3RlYWQgb2YgYXBwIHR5cGUKCjIwMDUtMDktMjcgMTI6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IHNvY2sgc3RhcnR1cAoKMjAwNS0wOS0yNyAxMjowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gZG9jdW1lbnQgdGhhdCBhZGRyZXNzZXMgYXJlIGluIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIGJ1bXAgbWF4IHBvbGljeSBvaWQgbGVuZ3RoIHRvIDIsIHRvIGhhbmRsZSBkZWZhdWx0IG51bGwgb2lkIGNhc2UKICAgLSBtb3ZlIHBvbGljeSBzdGF0aWMgZmxhZyBkZWZpbml0aW9uIHdpdGggb3RoZXIgZmxhZ3MKICAgLSBjaGFuZ2UgcG9saWN5IHN0YXRpYyBmbGFnIHNvIGFzIG5vdCB0byBjb25mbGljdCB3aXRoIGl0ZW0gY2hhbmdlZCBmbGFncwogICAtIGFkZCBuZXcgcG9saWN5IGRlZXAgY29weSBmbGFnCiAgIC0gYWRkIG1hY3JvIG9mICdjaGFuZ2UgaXRlbScgZmxhZ3MgbWFzawoKMjAwNS0wOS0yNyAxMjowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGFkZCAtLWZvcndhcmQgZmxhZyB0byBwYXRjaCBjb21tYW5kCgoyMDA1LTA5LTI3IDEyOjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICAtIHVzZSBuZXcgbWliMmMgbGVmdC9yaWdodCBoYW5kIGxlbmd0aCB1bml0cyBmb3IgcHJvcGVyIHNpemVzIHdoZW4gY29weWluZwogICAgIGFuZCBjb21wYXJpbmcgZGF0YQoKMjAwNS0wOS0yNyAxMTo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIC0gb3ZlcnJpZGUgZGVmYXVsdCBsZWZ0L3JpZ2h0IGhhbmQgbGVuZ3RoIHVuaXRzOyBib3RoIGFyZSBlbGVtZW50cwogICAtIHVwZGF0ZSBpbml0aWFsIHNldCBvZiBtYXggbGVuIHRvIGJlIGVsZW1lbnRzCgoyMDA1LTA5LTI3IDExOjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGRlZmluZSBkZWZhdWx0IGxlZnQvcmlnaHQgaGFuZCBsZW5naHQgdW5pdHMgKGJ5dGVzL2VsZW1lbnRzKQoKMjAwNS0wOS0yNyAxMTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBkZWZpbmUgc2VwYXJhdGUgc2V0dGFibGUgZmxhZ3MKICAgLSBkZWZpbmUgc2V0dGFibGUgY29sdW1uIG1hY3JvCgoyMDA1LTA5LTI3IDExOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBmaXggaW5jb3JyZWN0IHJldHVybiBkZWZpbmUgc3VnZ2VzdGlvbiBpbiBjb21tZW50CgoyMDA1LTA5LTI3IDExOjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhbHdheXMgdHJhY2sgaWYgZGF0YSBjb250ZXh0IHdhcyBwcm92aWRlZCBieSB1c2VyCiAgIC0gZG9uJ3QgY2FsbCBkYXRhIGN0eCBpbml0IHJvdXRpbmUgZm9yIHVzZXIgcHJvdmlkZWQgZGF0YQogICAtIHJlbW92ZSBpbnRlcm5hbC92ZXJib3NlIHByZWZpeCBmcm9tIGFsbCBkZWJ1ZyBlcnJvciBjYXNlcwogICAtIGRvbid0IHRyeSB0byBjb3B5IGluZGV4ZXMgaWYgaW5kZXggY2hlY2sgZmFpbGVkIChhbmQgY3R4IHdhcyByZWxlYXNlZCEpCiAgIC0gY2FsbCByb3dfcHJlcCBmb3IgbmV3bHkgY3JlYXRlZCByb3dzIChkeW5hbWljIHJvdyBjcmVhdGlvbikKICAgLSBjYWxsIG5ldyB0YWJsZSB1bmRvIGJlZm9yZSBjb2x1bW4gdW5kbwoKMjAwNS0wOS0yNyAxMTo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgLSBvbmx5IGluY2x1ZGUgc2V0dGFibGUgb2JqZWN0IHdoZW4gY2FsY3VsYXRpbmcgdG1wIHN0b3JhZ2Ugc2l6ZQogICAtIGRvbid0IGNhbGwgY29sX3NhdmUgcm91dGluZSBpZiBjb2x1bW4gaXNuJ3Qgc2V0dGFibGUKCjIwMDUtMDktMjcgMTE6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBhZGQgdGFibGUgbGV2ZWwgdW5kbyBiZWZvcmUgY29sdW1uIGxldmVsIHVuZG8KCjIwMDUtMDktMjcgMTE6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgaGFuZGxlIG5ld2x5IGNyZWF0ZWQgcm93IHcvcm93IHN0YXR1cyBvZiBkZXN0cm95CgoyMDA1LTA5LTI3IDExOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICAtIGRvbid0IGZyZWUgcnRfcG9saWN5IGlmIHN0YXRpYyBmbGFnIHNldAogICAtIG5ldyBmdW5jdGlvbiB0byBzZXQgcm91dGUgY2hhbmdlcwogICAtIG5ldyBmdW5jdGlvbiB0byBjb3B5IHJvdXRlX2VudHJpZXMKCjIwMDUtMDktMjcgMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgcmVxdWlyZSBuZXcgcm91dGVfaW9jdGwgZm9yIGxpbnV4CgoyMDA1LTA5LTI3IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jOgoKICAgLSB1cGRhdGUgdGltZW91dCBmb3IgYXV0by11cGRhdGUgY2FjaGVzIHdoZW4gbWliIHZhbHVlIGNoYW5nZWQKCjIwMDUtMDktMjcgMTE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBtb3ZlIGNvZGUgZm9yIGhlbHAgY2FzZSBhZnRlciBhbGwgY29tbWFuZCBsaW5lIGFyZ3MgaGF2ZSBiZWVuIHByb2Nlc3NlZAogICAtIGFkZCBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAoLW4pIGZvciAnYXBwbGljYXRpb24gbmFtZSc7IHZlcnkgdXNlZnVsIGZvcgogICAgIGhhdmluZyBtdWx0aXBsZSBjb25maWdzLCBhbmQgd29ya3Mgd2VsbCB3aXRoIHBlcnNpc3RlbnQgc3RvcmUgdG9vLiBPcGVuCiAgICAgZm9yIHN1Z2dlc3Rpb25zIG9uIGEgZGlmZmVyZW50IGNoYXIgKG9yIG1lcmdlIHcvc29tZSBleGlzdGluZyBtdWx0aS1jaGFyCiAgICAgc2V0OyBtYXliZSAtQykuCgoyMDA1LTA5LTI3IDExOjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMjcgMTE6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGFkZCBkaXNtYW4vZXZlbnQtbWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QKICAgLSBhZGQgaG9zdCB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IGZvcgogICAgIGxpbnV4KiB8IG1pbmd3MzIqIHwgY3lnd2luKiB8IGZyZWVic2QqIHwgZHluaXgqIHwgc29sYXJpczIqIHwgaHB1eCoKCjIwMDUtMDktMjcgMTA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBzb21lIG5vbi1zb3VyY2UgZmlsZXMgZ2VuZXJhdGVkIGJ5IE1GRAoKMjAwNS0wOS0yNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLzogcm91dGVfaW9jdGwuYywKICAgICByb3V0ZV9pb2N0bC5oLCByb3V0ZV9saW51eC5oOgoKICAgY29weSByb3V0ZSBpb2N0bHMgZnJvbSBtaWJJSS9yb3V0ZV93cml0ZSAmIHVwZGF0ZSBmb3Igcm91dGVfZW50cnkKCjIwMDUtMDktMjYgMTk6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIDEyOTI4OTYgY2hlY2tpbmcgZm9yIC0xIGJlZm9yZSBzZWFyY2hpbmcgZm9yIFRDIHR5cGUKCjIwMDUtMDktMjYgMTg6NTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0yNiAxODo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IG1ha2UgZGVjaXNpb25zIGJhc2VkIG9uIHRhcmdldF9vcyB1bnRpbCBhZnRlciBpdCdzIHNldCEKCjIwMDUtMDktMjYgMTg6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQnVnIFBhdGNoICMxMjk2ODQyOiBkb24ndCByZXR1cm4gZnJvbSB2b2lkIGZ1bmN0aW9uCgoyMDA1LTA5LTI2IDE2OjIxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgZml4IFNOTVB2MyBjb25maWcgaWYgQUVTIGlzbid0IGF2YWlsYWJsZQoKMjAwNS0wOS0yNiAxMzowMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgRml4ICIteCIgb3B0aW9uCgoyMDA1LTA5LTI2IDA4OjI1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT3BlbkJTRCBidWlsZCBmaXg6IGJyaW5nIGluIHN5cy90aW1lb3V0LmgKCjIwMDUtMDktMjQgMTU6MDIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBQdXQgYmFjayBtaXNzaW5nICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29tcGxldGVseQogICByZW1vdmUnIG1lc3NhZ2Ugd2hlbiB1bmluc3RhbGxpbmcuCgoyMDA1LTA5LTIzIDIxOjQ1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIEFkZCBvcHRpb25hbCBjaGVjayBmb3IgT3BlblNTTCBETEwgKGxpYmVheTMyLmRsbCkKCjIwMDUtMDktMjMgMTI6MjQgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90ZSB0aGF0IHNubXBkIG5vdyBpbXBsZW1lbnRlZCBub3RpZmljYXRpb24gbG9nZ2luZyBhbmQgZmlsdGVyaW5nCgoyMDA1LTA5LTIzIDEwOjQxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlcnVuIGF1dG9jb25mCgoyMDA1LTA5LTIzIDEwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIHNocmluayBidWZmZXIgc2l6ZSBzbyBNSUIgc2l6ZSBsaW1pdCBub3QgZXhjZWVkZWQKCjIwMDUtMDktMjIgMTk6MDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBtb3ZlIHNvY2tldHZhci5oIGFmdGVyIHNvY2tldC5oCgoyMDA1LTA5LTIyIDE3OjIxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgRGVmYXVsdCB0byBkaXNsYWJlZCBmb3IgZGV2ZWxvcG1lbnQgZmlsZXMuCgoyMDA1LTA5LTIyIDE1OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcHV0IHZhciBuYW1lIGluIGJyYWNlcyB0byBzZXBhcmF0ZSBmcm9tIGFwcGVuZGVkIHRleHQKCjIwMDUtMDktMjAgMDk6MjMgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFNpbmNlIHRoZSBsZW5ndGggcGFyYW1ldGVyIGlzbid0IGFsd2F5cyByZXF1aXJlZCB3aGVuIHN0b3JpbmcgZGF0YSwKICAgYWxsb3cgaXQgdG8gYmUgb21pdHRlZCAoYW5kIGNvcnJlY3QgdGhlIG1pc2xlYWRpbmcgY29tbWVudCBhcyB0bwogICBob3cgdGhpcyBpcyBhY3R1YWxseSB1c2VkISkKCjIwMDUtMDktMTYgMTU6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggZnJvbSBQYXRyaWNrIFdlbGNoZSB0byBmaXggcXVvdGluZyBmb3IgbmV3ZXIgYXV0b2NvbmZzCgoyMDA1LTA5LTE2IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgY29ycmVjdCBtaXNzaW5nIGZ1bmN0aW9uIGNhbGxzIG5vdyByZXBsYWNlZCBieSB0ZGF0YS4KCjIwMDUtMDktMTYgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN1cHBvcnQgZm9yIHN0cmluZyBwYXJzaW5nIG9mIGNvdW50ZXI2NHMKCjIwMDUtMDktMTYgMTQ6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0xNiAxNDozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdXBkYXRlIG91dC1vZi1zeW5jIHZlcnNpb24gbnVtYmVycwoKMjAwNS0wOS0xNiAxMzowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBkb24ndCB0cnkgdG8gdXNlIFNJT0MoQUREfERFTClSVCBpZiB0aGV5IGFyZW4ndCBkZWZpbmVkCgoyMDA1LTA5LTE2IDEyOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgSFJTV1JVTlBFUkZfTUVNIGRvbid0IHdvcmsgb24gZGFyd2luOAoKMjAwNS0wOS0xNiAxMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgdXNlIG5ldyBjb25maWd1cmUgdmFyIFBFUkxMRE9QVFMKCjIwMDUtMDktMTYgMTI6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgbWlzc2luZyBzZWNvbmQgc2VtaWNvbG9uCgoyMDA1LTA5LTE2IDExOjUxICBkdHMxMgoKICAgKiBzbm1wbGliLzogY2hlY2tfdmFyYmluZC5jLCBzbm1wX2FwaS5jLAogICAgIHNubXBfbG9nZ2luZy5jOgoKICAgUGljayB1cCBhIGNvdXBsZSBvZiBzdHJheSAnc3RyaW5ncycgdGhhdCBzbGlwcGVkIHRocm91Z2guCiAgIChhbmQgYSBib2d1cyBBU04gdHlwZSBuYW1lKQoKMjAwNS0wOS0xNiAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHJlZmluZSBjb25kaXRpb25hbCBpbmNsdWRlcyBsb2dpYwoKMjAwNS0wOS0xNiAxMDo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggaWZmIGF2YWlsYWJsZQoKMjAwNS0wOS0xNiAxMDo0MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJyZWFrIHBlcmwgbGQgb3B0cyBpbnRvIGl0cyBvd24gdmFyCgoyMDA1LTA5LTE2IDEwOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMTA6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMDg6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgcmV2aXNlZCAndGRhdGEnIEFQSS4KCjIwMDUtMDktMTYgMDc6NDggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFVzZSB0aGUgYXBwcm9wcmlhdGUgbGlicmFyeSB1dGlsaXR5IHJvdXRpbmVzIGZvciByZXR1cm5pbmcgYQogICBjb2x1bW4gdmFsdWUsIGFuZCBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgYW4gYXNzaWdubWVudC4KCjIwMDUtMDktMTYgMDc6MzMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFVzZSB0aGUgKHJldmlzZWQpIGNvbnRhaW5lci1iYXNlZCAndGFibGVfZGF0YTInIGhlbHBlci4KCjIwMDUtMDktMTYgMDc6MjEgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCB0eXBvIHdoZW4gZGVmaW5pbmcgcmFuZ2Ugb2YgdmFsaWQgY29sdW1ucy4KCjIwMDUtMDktMTYgMDc6MTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaDoKCiAgIEkndmUgbmV2ZXIgbGlrZSB0aGUgcmVuYW1pbmcgb2YgdGhlIGNvbnRhaW5lci1iYXNlZCB0YWJsZV9kYXRhCiAgIEFQSSBjYWxscyBhbmQgZGF0YSBzdHJ1Y3R1cmVzLiAgSWYgd2UncmUgc3RhcnRpbmcgdG8gdGhpbmsgYWJvdXQKICAgcmVsZWFzaW5nIHRoaXMgY29kZSwgdGhlbiBhbnkgYWx0ZXJhdGlvbnMgbXVzdCBiZSBtYWRlICpiZWZvcmUqCiAgIHRoaXMgZ29lcyBsaXZlLCBvciBlbHNlIGl0J2xsIGJlIHRvbyBsYXRlLgoKICAgSSd2ZSBmaW5hbGx5IGNvbWUgdXAgd2l0aCBhIGZvcm0gb2YgbmFtaW5nIGZvciB0aGUgdGFibGVfZGF0YTIKICAgY29kZSB0aGF0IEknbSByZWFzb25hYmx5IGhhcHB5IHdpdGggKGJhc2VkIGFyb3VuZCAndGRhdGEnKSwKICAgc28gdGhpcyBwYXRjaCByZXdyaXRlcyB0aGlzIGhlbHBlciB0byB1c2UgdGhhdCBzdHlsZSAoYXMgd2VsbAogICBhcyB0d2Vha2luZyB0aGUgZGF0YXNldDIgY29kZSB0byBtYXRjaCkuCiAgICAgVGhlIG1haW4gZGF0YXNldDIgQVBJIGhhc24ndCBiZWVuIHByb3Blcmx5IHVwZGF0ZWQsIGJ1dCB0aGlzCiAgIHNob3VsZCBwcm9iYWJseSBhbHNvIGJlIGFkZHJlc3NlZCBiZWZvcmUgNS4zIGdvZXMgb3V0IG9mIHRoZSBkb29yLgoKICAgVGhpcyB2ZXJzaW9uIGFsc28gaWxsdXN0cmF0ZXMgYSBzdWl0YWJsZSAiZ2VuZXJpYyB0YWJsZSBBUEkiLAogICB0aGF0IGNvdWxkIHVzZWZ1bGx5IGJlIGNvbnNpZGVyZWQgZm9yIG90aGVyIHRhYmxlIGhlbHBlcnMgYXMKICAgd2VsbC4gIFNvbWUgYXNwZWN0cyBvZiBpdCBtYXkgYmUgc3BlY2lmaWMgdG8gdGhlIHRhYmxlX2RhdGEKICAgZnJhbWV3b3JrLCBidXQgdGhlIGJhc2ljIGlkZWFzIGFyZSBtb3JlIHdpZGVseSByZWxldmFudC4KCjIwMDUtMDktMTYgMDY6NDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYzoKCiAgIEEgY29udGFpbmVyLWJhc2VkICdkYXRhc2V0JyBpbXBsZW1lbnRhdGlvbiB3aWxsIGF1dG9tYXRpY2FsbHkgY29udmVydAogICBHRVRORVhUL0JVTEsgcmVxdWVzdHMgaW50byBhbiBlcXVpdmFsZW50IEdFVCByZXF1ZXN0IChpbmNsdWRpbmcgdXBkYXRpbmcKICAgdGhlIE9JRCkuICBTbyBhbGwgdGhhdCdzIHJlcXVpcmVkIGlzIHRvIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgdmFsdWUuCiAgIFRoZSAnbmV0c25tcF90YWJsZV9kYXRhMl9idWlsZF9yZXN1bHQnIHJvdXRpbmUgaXMgdGhlcmVmb3JlIHJlZHVuZGVudC4KCjIwMDUtMDktMTYgMDY6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBEZWZpbmUgYSBuZXcgY2hlY2sgdXRpbGl0eSByb3V0aW5lIGZvciB1bnNpZ25lZCBpbnRlZ2Vycy4KICAgSW50ZWdlcnMgYXJlIG1lYW50IHRvIGJlIHJlcHJlc2VudGVkIGFzICdsb25nJyByYXRoZXIgdGhhbiAnaW50JyB2YWx1ZXMuCgoyMDA1LTA5LTE2IDA2OjMwICBkdHMxMgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBpbnQ2NC5jLCBwYXJzZS5jLAogICAgIHJlYWRfY29uZmlnLmMsIHNubXAtdGMuYywgc25tcEFBTDVQVkNEb21haW4uYywKICAgICBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywKICAgICBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsCiAgICAgc25tcFVEUElQdjZEb21haW4uYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMKLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgQmxpdHogdXNlIG9mICdzdHJpbmcnIGFzIGEgdmFyaWFibGUgbmFtZS4KCjIwMDUtMDktMTYgMDU6NDkgIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlZ2VuZXJhdGUgdG8gbWF0Y2ggdXBkYXRlZCAnY29uZmlndXJlLmluJwoKMjAwNS0wOS0xNiAwMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBVc2UgYSBzZWN1cml0eSBtb2RlbCBudW1iZXIgZGVmaW5lZCBpbiB0aGUgZ2xvYmFsIGhlYWRlciBpbnN0ZWFkIG9mIGEKICAgaGFyZC1jb2RlZCBudW1iZXIKCjIwMDUtMDktMTYgMDE6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgZGVmaW5lIHNlY3VyaXR5IG1vZGVsIG51bWJlcnMgZm9yIG5ldC1zbm1wIHNwZWNpZmljIHNlY3VyaXR5IG1vZGVscwogICBoZXJlIHRvIGtlZXAgYSByZWdpc3RyeSBpbiBhIGNlbnRyYWwgcGxhY2UuCgoyMDA1LTA5LTE2IDAxOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGxvY2Fsc20uaCwKICAgICBzbm1wbGliL3NubXBsb2NhbHNtLmM6CgogICAtIERlZmluZWQgYSBsb2NhbCBzZWN1cml0eSBtb2RlbCB0aGF0IGFzc3VtZXMgdGhlIHBlcnNvbiB0aGF0IGV4ZWN1dGVkCiAgICAgdGhlIGFnZW50IGlzIHRoZSBvbmUgd2hvIHNob3VsZCBiZSBhdXRob3JpemVkLiAgSXQgcmVxdWlyZXMgdGhhdCBhCiAgICAgdHJhbnNwb3J0IHdhcyB1c2VkIHRoYXQgd2FzIG5vdCBhIGRpcmVjdCBuZXR3b3JrIHRyYW5zcG9ydCAoRUcsCiAgICAgY3VycmVudGx5IHRoaXMgbWVhbnMgaXQgd2FzIHR1bm5lbGVkIG9yIHNlbnQgdGhyb3VnaCBzdGRpbi9vdXQKICAgICBjaGFubmVsKS4gIEF1dGhlbnRpY2F0aW9uIGFuZCBlbmNyeXB0aW9uIGxldmVsLCBiZWluZyB1bmtub3duLCBpcwogICAgIGxlZnQgYXQgbm9BdXRoTm9Qcml2LgoKICAgICBUaGlzIG1vZGVsIGlzIGV4cGVjdGVkIHRvIGJlIHVzZWQgZm9yIGV4cGVyaW1lbnRhbCBhbmQgcHVycG9zZXMgb25seQogICAgIGF0IHRoaXMgdGltZSBhbmQgc2hvdWxkIHByb2JhYmx5IG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24uCgoyMDA1LTA5LTE2IDAwOjQ1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgZGVmaW5lIGEgUERVIHR1bm5lbGVkIGZsYWcKCjIwMDUtMDktMTUgMTE6NTggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgbW50X2RpciBpbiBzdGF0dmZzCgoyMDA1LTA5LTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzL21ha2VodG1sLnBsOgoKICAgQWRkZWQgYSBsaW5rIHRvIHRoZSBjb25mb3JtYW5jZSBzdW1tYXJ5LgoKMjAwNS0wOS0xNSAwOTo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgLSBBZGRlZCBTVEQgaW5pdAoKMjAwNS0wOS0xNSAwOTo0NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYzoKCiAgIC0gQWRkZWQgYWJpbGl0eSBmb3IgU1REIGhhbmRsZXIgdG8gY2FsbCBleHRlcm5hbCB0aGluZ3MgdG8gcGlwZSB0by9mcm9tCiAgIC0gQmVnaW5uaW5nIHN1cHBvcnQgZm9yIGEgdHJhbnNwb3J0IGJlaW5nIGtub3duIGFzICJ0dW5uZWxlZCIuCgoyMDA1LTA5LTE1IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgbWlub3IgZml4ZXMKCjIwMDUtMDktMTUgMDk6NDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBEZWZpbml0aW9ucyBmb3IgbmV3IGZlYXR1cmVzIChzdGQgYW5kIGEgZnV0dXJlIFNNIG1vZGVsKQoKMjAwNS0wOS0xNCAyMzowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgY2hlY2sgZm9yIHN0cnVjdCBtZW1iZXIgYmVmb3JlIHVzaW5nCgoyMDA1LTA5LTE0IDIwOjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBjaGVjayBmb3Igc3lzL3NvY2tldHZhci5oIGVhcmxpZXIKICAgLSBpbmNsdWRlIHN5cy9zb2NrZXR2YXIuaCBpbiBuZXR3b3JrIGhlYWRlciB0ZXN0cwogICAtIGZpeCB3aXRob3V0LWVsZiB0ZXN0CgoyMDA1LTA5LTE0IDIwOjA2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oOgoKICAgbWlzc2luZyBkZWZpbmVzIGZvciBkYXJ3aW44IChPUyBYIDEwLjQuMikKCjIwMDUtMDktMTQgMTQ6MTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICBBZGRlZCBhIG9kZCB0cmFuc3BvcnQgdG8gZG8gc3R1ZmYgdGhyb3VnaCBzdGRpbi9vdXQKCjIwMDUtMDktMTMgMTQ6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmg6CgogICByZW1vdmUgdW51c2VkIGZpbGUKCjIwMDUtMDktMTIgMTE6MzYgIGR0czEyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBQcm92aWRlIGEgbWFrZSB0YXJnZXQgZm9yIHRlc3RpbmcgdGhlIE1JQnMgaW1wbGVtZW50ZWQgYnkgYW4gYWdlbnQuCiAgIFRoZSBiZWhhdmlvdXIgb2YgdGhpcyB0YXJnZXQgbWF5IG5lZWQgc29tZSBhZGp1c3RtZW50LCBidXQgaXQncyBhIHN0YXJ0Li4uCgoyMDA1LTA5LTEyIDExOjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBEb2N1bWVudCB0aGF0ICdkZWxldGVfcm93JyBob29rIGRvZXNuJ3QgcmV0dXJuIGEgdXNlZnVsIHJlc3VsdC4KCjIwMDUtMDktMTIgMTE6MTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgdGhlIHRhYmxlX2FycmF5IGhlbHBlciAoYXMgdXNlZCBieSB0aGUgIm1pYjJjLmFycmF5LXVzZXIuY29uZiIKICAgdGVtcGxhdGUpIGluIHRoZSBjb21iaW5lZCBoZWxwZXIgaGVhZGVyIGZpbGUuCiAgICAgKE5vdyB3ZSdsbCBmaW5kIG91dCB3aHkgaXQgd2FzIG9taXR0ZWQuLi4uLikKCjIwMDUtMDktMTIgMTA6NTAgIGR0czEyCgogICAqIHNubXBsaWIvOiBjaGVja192YXJiaW5kLmMsIHNubXAtdGMuYzoKCiAgIEVuc3VyZSB0aGF0IGludmFsaWQgUm93U3RhdHVzIGFzc2lnbm1lbnRzIHJldHVybiBhICd3cm9uZ1ZhbHVlJyBlcnJvci4KCjIwMDUtMDktMTIgMTA6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBBZGRpdGlvbmFsIFNFVCB2YWxpZGF0aW9uIHV0aWxpdHkgcm91dGluZXMKICAgKGZvciBPSUQgYW5kIGdlbmVyYWwgSU5URUdFUiBhc3NpZ25tZW50cykKCjIwMDUtMDktMTIgMTA6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbGl0aWVzLmgsIHV0aWxpdGllcy9pcXVlcnkuaDoKCiAgIEluY2x1ZGUgdGhlIG5ldyAiaW50ZXJuYWwgcXVlcnkiIG1vZHVsZQoKMjAwNS0wOS0wOSAwNzoxMSAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIG5ldyBtaWIyYyBjb25maWcgZmlsZXMuIChCdWcgIzEyODQzMTUpCgoyMDA1LTA5LTA5IDA2OjA5ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBFbnN1cmUgdGhhdCB0aGUgTUlCIGludGVybmFscyBhcmUgaW5pdGlhbGlzZWQgYmVmb3JlIHVzaW5nIHRoZW0uICAoQnVnICM3MDU1MzYpCgoyMDA1LTA5LTA4IDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICByZW1vdmUgc2h1dGRvd24gY29kZSAoaGFuZGxlZCBieSBpZlRhYmxlKQoKMjAwNS0wOS0wNyAxMDozMCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgRml4IGEgJ215JyBsaXN0IGRlY2xhcmF0aW9uIHRoYXQgc2xpcHBlZCB0aHJvdWdoIHRoZSBuZXQuCiAgIENhbiBmaW5hbGx5IGNsb3NlIGJ1Z3MgIzU3OTcwNSAmICM2MDExOTAuCgoyMDA1LTA5LTA3IDA3OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXBvcnQgZXJyb3JzIGZvciBpbnZhbGlkIHRhYmxlIE9JRHMgYXBwcm9wcmlhdGVseSBmb3IgdGhlIHR5cGUgb2YgcmVxdWVzdC4KICAgKEJhc2VkIG9uIHBhdGNoICMxMjc2OTk5IGJ5IFJvYmVydCBXaWxjb3gpCgoyMDA1LTA5LTA3IDA1OjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFR3ZWFrIHRvIFVTTSBkZWJ1Z2dpbmcgLSBoZWxwIGRldGVjdCBlbmdpbmVJRCBtaXNtYXRjaGVzCgoyMDA1LTA5LTA2IDIxOjQ4ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbgosIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzCgoyMDA1LTA5LTA2IDIwOjM3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgV2luMzIgTVNWQyBjb21waWxlIGZpeCAtIGRlY2xhcmUgdmFyaWFibGVzIGF0IHRoZSB0b3Agb2YgdGhlIGZ1bmN0aW9uLgoKMjAwNS0wOS0wNiAyMDowNyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIENoYW5nZSBkZWZhdWx0IHZlcnNpb24gZm9yIGJpbmFyeS4KCjIwMDUtMDktMDYgMjA6MDYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9idWlsZC5wbAosIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEFkZCAnRGV2ZWxvcG1lbnQgZmlsZXMnIHNlY3Rpb24gdG8gd2luMzIgYmluYXJ5CgoyMDA1LTA5LTA2IDE5OjI5ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgV2luMzI6IFVwZGF0ZSBiaW5hcnkgUkVBRE1FLnR4dCB0byByZWZlcmVuY2UgUkVBRE1FLndpbjMyCgoyMDA1LTA5LTA2IDE5OjE3ICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlCjoKCiAgIGFkZCAubGlicyBhbmQgKi5sbwoKMjAwNS0wOS0wNiAxNjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHJldmVyc2VkIGlwQWRkcmVzcyBvbiBsaXR0bGUgZW5kaWFuIGFyY2hpdGVjdHVyZXMKCjIwMDUtMDktMDYgMTE6MTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBtb3ZlIHRvIGxpYnRvb2wgcmVjb21tZW5kZWQgdmVyc2lvbmluZwoKMjAwNS0wOS0wNSAxOTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYwosIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwgaWZYVGFibGUvaWZYVGFibGUuYwosIGlmWFRhYmxlL2lmWFRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oCiwgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA1LTA5LTA1IDE2OjE2ICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBjaGVjayBmb3IgT3BlblNTTCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBBRVMKCjIwMDUtMDktMDQgMTI6MDggIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgdXNlIGV4aXN0aW5nIFNOTVBfVkVSQk9TRSBlbnYgdmFsdWUsIGlmIHNldAoKMjAwNS0wOS0wNCAxMTo1NiAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHRlc3QgY29uZGl0aW9uYWwgaW5zdGVhZCBvZiBpZ25vcmluZyBleGVjdXRpb24gZXJyb3IKCjIwMDUtMDktMDIgMjA6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfYXV0aC5jLCBzbm1wdHJhcGRfYXV0aC5oOgoKICAgYWRkZWQgdGVtcGxhdGUgZnVuY3Rpb25zIGZvciBhdXRob3JpemF0aW9uIGRlY2lzaW9ucwoKMjAwNS0wOS0wMiAxOTozMiAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIC5jdnNpZ25vcmUgZmlsZXMKCjIwMDUtMDktMDEgMTc6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGV4dHJhIHBhcmFub2lkIGxlbmd0aCBjaGVja3MKCjIwMDUtMDktMDEgMTY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGFjY291bnQgZm9yIGhleGlmaWVkIHRleHQgbGVuIG9uIHBlcnNpc3RlbnQgc3RvcmUgc2F2ZQoKMjAwNS0wOC0zMSAyMjoyOSAgYWxleF9iCgogICAqIE5FV1MsIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQXBwbHkgcGF0Y2ggZm9yIGJ1ZyAxMjA2NzEyOiBQZXJsIGdldG5leHQgZG9lc24ndCBob25vciBleHBsaWNpdCByZWZlcmVuY2UKICAgdG8gTUlCIGZpbGUKCjIwMDUtMDgtMzAgMTE6NDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE2MHJmYzEyMTMsIFQxNjFyZmMxMjEzLCBUMTYycmZjMTIxMwo6CgogICByZW1vdmUgbm9uLWNvbmRpdGlvbmFsIHRlc3RzIG9mIHBvdGVudGlhbGx5IHVuaW1wbGVtZW50ZWQgb2JqZWN0cwoKMjAwNS0wOC0zMCAwODoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAga2VlcCBydW5uaW5nIGNvdW50IG9mIHRyYXBzIHNlbnQKCjIwMDUtMDgtMzAgMDg6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBhZGQgbm90aWZpY2F0aW9uIGZpbHRlcmluZyBwZXIgUkZDIDM0MTMsIHNlY3Rpb24gNgoKMjAwNS0wOC0zMCAwODoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oOgoKICAgdXNlIG5ldyBtZmQgc25tcE5vdGlmeUZpbHRlclRhYmxlCgoyMDA1LTA4LTMwIDA4OjA2ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb25zdGFudHMuaAo6CgogICBuZXcgZmlsZQoKMjAwNS0wOC0yOSAyMTowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgdHh0IGZpbGVzCgoyMDA1LTA4LTI5IDIxOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wLW5vdGlmaWNhdGlvbi1taWIuaCwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAo6CgogICAtIG5ldyBNRkQgc25tcE5vdGlmeUZpbHRlclRhYmxlCgoyMDA1LTA4LTI5IDIwOjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgLSByZW1vdmUgY29tbWVudGVkIG91dCBtaWIyYyBjb2RlCiAgIC0gc2V0IHJvdyBkaXJ0eSBmbGFnIG9uIHN1Y2Nlc2ZmdWwgY29tbWl0CiAgIC0gY2xlYXIgcm93IGRpcnR5IGZsYWcgb24gc3VjY2Vzc2Z1bCB1bmRvIGNvbW1pdAoKMjAwNS0wOC0yOSAyMDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gY2hhbmdlIGRpcnR5IGZsYWcgdG8gdV9pbnQKICAgLSBhbHdheXMgZ2VuZXJhdGVkIGludGVyZmFjZSBpcnJldmVyc2libGVfY29tbWl0CiAgICAgLSBtb3ZlIGF1dG8gcm93IGluc2VydC9kZWxldGUgdG8gaXJyZXZlcnNpYmxlX2NvbW1pdAogICAtIHJlbGVhc2UgZGVsZXRlZCByb3dzIGluIHBvc3RfcmVxdWVzdCwgYmVmb3JlIGNhbGxpbmcgdXNlcgogICAtIHdhcm5pbmcgaWYgZGlydHkgZmxhZyBzZXQgb24gdW5zdWNjZXNzZnVsIHBhY2tldAogICAtIG1lbXNldCBsb2NhbCBzdHJ1Y3QgdG8gMHgwMCBiZWZvcmUgdXNlCiAgIC0gY29weSBpbmRleGVzIHRvIHJvd3JlcSBvaWRfaWR4IG9uIGNyZWF0ZQogICAtIHNldCAoaW5jcikgZ2xvYmFsIGRpcnR5IGlmIHVzZXIgc2V0IHJvdyBkaXJ0eQogICAtIGNsZWFyIChkZWNyKSBnbG9iYWwgZGlydHkgaWYgdXNlIGNsZWFyZWQgZmxhZyBvbiB1bmRvCgoyMDA1LTA4LTI5IDIwOjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYXV0b2NyZWF0ZSBjdXJyZW50IGRpciwgaWYgbmVlZGVkCgoyMDA1LTA4LTI5IDIwOjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIC0gZml4IGNvbW1lbnRzIG9uIHVzZXIgZmxhZ3MKICAgLSBhZGQgdXNlciBmbGFnIG1hc2sKICAgLSBhZGQgbWZkIHJvdyBtYXNrCiAgIC0gYWRkIE1GRF9ST1dfRElSVFkgZmxhZwoKMjAwNS0wOC0yOSAyMDo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgYWRkIGNvbW1lbnRzCgoyMDA1LTA4LTI5IDIwOjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBhZGQgY29tbWVudHMKICAgLSBtb3ZlIGZsYWcgY2xlYXIgYSBsaXR0bGUgbGF0ZXIKCjIwMDUtMDgtMjkgMjA6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdHdlYWsgY29tbWVudAoKMjAwNS0wOC0yOSAyMDozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGZpeCByZXF1aXJlZCBjb2x1bW5zIHRlc3QgKHRoZXkgYXJlIGEgbWluLCBub3QgZXhhY3QgcmVxdWlyZW1lbnQpCiAgIC0gYXV0by10cmFuc2l0aW9uIGNyZWF0ZUFuZEdvIHRvIGFjdGl2ZQogICAtIHNldCBNRkRfUk9XX0RFTEVURUQgb24gZGVzdHJveQogICAtIHR3ZWFrIGxvZyBtZXNzYWdlIG9uIGNyZWF0aW9uIGVycm9ycwoKMjAwNS0wOC0yOSAyMDozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgLSByZXdvcmsgdmlldyBsaXN0IGZ1bmN0aW9ucyB0byB0YWtlIHBvaW50ZXIgdG8gaGVhZCAodnMgaGFyZGNvZGVkIGhlYWQpCgoyMDA1LTA4LTI5IDIwOjMyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgaXRlcmF0b3Igc3VwcG9ydAoKMjAwNS0wOC0yOSAyMDozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIC0gZml4IHNvbWUgY29tbWVudHMKICAgLSB0d2Vha3MgZm9yIGl0ZXJhdG9yIHN1cHBvcnQKICAgLSByZW1vdmUgdW51c2VkIHNvdGVkX2NvbnRhaW5lciB0eXBlZGVmCgoyMDA1LTA4LTI5IDIwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTA4LTI5IDIwOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSBzZXQgbmV3IHRhcmdldCBwYXJhbU5hbWUgaW4gc2Vzc2lvbgogICAtIGZpeCBidWc6IHN0cmR1cCBzZWN1cml0eU5hbWUsIHNpbmNlIGl0IHdpbGwgYmUgZnJlZWQgb24gc2Vzc2lvbiBjbG9zZQoKMjAwNS0wOC0yOSAyMDoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgYWRkIHRhcmdldCBwYXJhbU5hbWUKCjIwMDUtMDgtMjkgMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKLCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmg6CgogICByZW5hbWUgZ2V0X0ZpbHRlck5hbWUgLT4gZ2V0X0ZpbGdlclByb2ZpbGVOYW1lCgoyMDA1LTA4LTI5IDIwOjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIGxvZyB3YXJuaW5nIG9uIGR1cGxpY2F0ZSBhZGRfZGF0YQoKMjAwNS0wOC0yOSAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBhZGQgZGVidWcKCjIwMDUtMDgtMjkgMjA6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgLSBtb3ZlIG1pYiBtb2R1bGUgc2h1dGRvd25zIHRvIGEgU0hVVERPV04gY2FsbGJhY2sgc28gdGhleSBhcmUgY2FsbGVkCiAgICAgYWZ0ZXIgdGhlIGxhc3Qgc25tcF9zdG9yZSgpIGFuZCBjYW4gcmVsZWFzZSB0YWJsZSBkYXRhCiAgIC0gYWRkIGxvZ2ljIGZvciB0ZXN0aW5nIGV4dHJhIGluaXRfbWliX21vZHVsZXMoKSBjYWxscwoKMjAwNS0wOC0yOSAyMDoxMiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIG1vdmUgbWliIG1vZHVsZSBzaHV0ZG93bnMgdG8gYSBTSFVURE9XTiBjYWxsYmFjayBzbyB0aGV5IGFyZSBjYWxsZWQKICAgICBhZnRlciB0aGUgbGFzdCBzbm1wX3N0b3JlKCksIGFuZCBjYW4gcmVsZWFzZSB0YWJsZSBkYXRhCgoyMDA1LTA4LTI5IDIwOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgbW92ZSBmaW5kX3ZhcmJpbmRfaW50X2xpc3QgdG8gc25tcF9jbGllbnQuYwoKMjAwNS0wOC0yOSAyMDowOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gbW92ZSBmaW5kX3ZhcmJpbmRfaW50X2xpc3QgdG8gc25tcF9jbGllbnQuYwogICAtIHJlbW92ZSBleHRyYW5lb3VzIHRleHQgaW4gZGVidWcgbXNnCgoyMDA1LTA4LTI5IDIwOjA2ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgaWYgc2luayBjb250YWlucyAnOicsIHBhc3Mgd2hvbGUgdGhpbmcgYXMgcGVlcm5hbWUuIChhbGxvd3MgdGNwIHNpbmtzKQoKMjAwNS0wOC0yOSAxODoyNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGludHJvZHVjZSBncmFudWxhciBjb25maWcvcGVyc2lzdGVudCBmaWxlIGRpc2FibGVtZW50IChQYXRjaCAjMTI1OTI1NyBieSBTdGV2ZW4gRnJpZWRsKQoKMjAwNS0wOC0yNiAwOToxNSAgZHRzMTIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgQWR2ZXJ0aXNlIHRoZSBtYWluIFJQTSBhcyBwcm92aWRpbmcgdGhlIGVxdWl2YWxlbnQgb2YgdGhlIFJlZEhhdC9GZWRvcmEKICAgJ25ldC1zbm1wLXV0aWxzJyBSUE0uICBCcmluZyB0aGUgbWFpbiBpbmZvcm1hdGlvbiBzZXR0aW5ncyBpbnRvIGxpbmUKICAgd2l0aCBjdXJyZW50IHJwbWJ1aWxkIGV4cGVjdGF0aW9ucyAoJ0xpY2Vuc2UnIHJhdGhlciB0aGFuICdDb3B5cmlnaHQnKQoKMjAwNS0wOC0yNSAwNToxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX2NvbmYuYywgdmFjbV92YXJzLmM6CgogICBUaGUgdmlldyBtYXNrIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIE9JRCBpdCdzCiAgIG1hc2tpbmcgYWdhaW5zdC4gQ29uZmlndXJlIGFuZCByZXBvcnQgdGhpcyBwcm9wZXJseS4gKEJ1ZyAjMTIwMjY5MikKCjIwMDUtMDgtMjUgMDU6MDYgIGR0czEyCgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgVmFyYmluZCBjaGVja3Mgc2hvdWxkIHJldHVybiBhbiBTTk1QdjIgZXJyb3IgKHdyb25nVmFsdWUpCiAgIHJhdGhlciB0aGFuIHRoZSBlcXVpdmFsZW50IFNOTVB2MSBlcnJvciAoYmFkVmFsdWUpLgoKMjAwNS0wOC0yMyAxMDowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIFVzZSAnaXBzX2ZyYWdtZW50cycgZmllbGQgb2YgSVAgc3RhdGlzdGljcyBzdHJ1Y3R1cmUsIGlmIGF2YWlsYWJsZQogICAoU2VlIHBhdGNoICMxMTAzNzM5KQoKMjAwNS0wOC0yMyAxMDowNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUZXN0IGZvciAnaXBzX2ZyYWdtZW50cycgZmllbGQgaW4gSVAgc3RhdGlzdGljcyBzdHJ1Y3R1cmUuCiAgIChTZWUgcGF0Y2ggIzExMDM3MzkpCgoyMDA1LTA4LTIzIDA5OjUxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlICctbCcgb3B0aW9uIGZyb20gb3B0YXJnIHByb2Nlc3NpbmcKICAgKHNpbmNlIHRoZSBjb3JyZXNwb25kaW5nIGNhc2Ugc3RhdGVtZW50IHdhcyBkZWxldGVkIG1vbnRocyBhZ28hKQogICBSZXBvcnRlZCBieSBKb2huIFBmYWZmLgoKMjAwNS0wOC0yMiAyMToxNyAgYWxleF9iCgogICAqIE5FV1MsIGFwcHMvc25tcGRlbHRhLmM6CgogICB3aW4zMjogRml4IGZvciAnc2VsZWN0OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyBpbiBzbm1wZGVsdGEKCjIwMDUtMDgtMjIgMTQ6MDggIHRhbmRlcnMKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9hdXRob3B0czoKCiAgIGFkZCBtaXNzaW5nIEFFUyBzdXBwb3J0CgoyMDA1LTA4LTIyIDEzOjQ5ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGZ1bGx5IGRvY3VtZW50IEFFUwoKMjAwNS0wOC0xOSAxOTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgZ3JycjsgKnJlYWxseSogZml4IHR5cG8KCjIwMDUtMDgtMTkgMTk6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTA4LTE5IDEwOjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZW1waGFzaXplIHRvIHVzZSAicHJveHkgLi4uIC4xLjMiIChub3QganVzdCAuMSkgdG8gcHJveHkgdGhlIGVudGlyZSBNSUIgdHJlZSAoQnVnICMxMjQ5NTk0KQoKMjAwNS0wOC0xOSAxMDowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgaW1wcm92ZSBoZWxwIG91dHB1dCBmb3IgIi1EIiAoQnVnICMxMjQ5NTU2KSBhbmQgIi1jIgoKMjAwNS0wOC0xOSAwOToyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGFkZCBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQgdG8gbmV0c25tcF9jaGVja192Yl9zaXplX3JhbmdlKCkgKEJ1ZyAjMTI2MzUyMykKCjIwMDUtMDgtMTkgMDc6NTkgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkZWx0YS4xLmRlZjoKCiAgIGZpeCB0eXBvCgoyMDA1LTA4LTE5IDA1OjU1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLy5jdnNpZ25vcmU6CgogICBpbml0aWFsIC5jdnNpZ25vcmUKCjIwMDUtMDgtMTkgMDU6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoYXJkd2FyZS9jcHUvLmN2c2lnbm9yZSwKICAgICBoYXJkd2FyZS9tZW1vcnkvLmN2c2lnbm9yZSwgaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZQosIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSAubGlicyBhdCBtb3JlIHBsYWNlcwoKMjAwNS0wOC0xOSAwNTowOCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGxpc3QgY29udGV4dCBzdXBwb3J0IGFuZCBmaXggdHlwbwoKMjAwNS0wOC0xOCAxODo1MSAgYWxleF9iCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFdpbjMyIE1TVkM6ICBVc2UgX19pbnQ2NCBpbnN0ZWFkIG9mIGxvbmcgbG9uZy4KCjIwMDUtMDgtMTggMTg6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIG1vdmUgdGVzdCBhZnRlciBmb3JlYWNoIGxvb3AKICAgLSBzZXQgaW50ZXJhY3RpdmUgZmxhdCBhZnRlciBvdmVyd3JpdGUKCjIwMDUtMDgtMTggMTg6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIHJldHVybiBlcnJvciBpZiBhc24gYnVmZmVyIGV4Y2VlZHMgb2JqaWQgZGVzdCBidWZmZXIKCjIwMDUtMDgtMTggMTc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgaW5kZXhfb2lkL2xlbgogICAtIHJlc3RvcmUgbmV0c25tcF90YWJsZV9kYXRhMl9idWlsZF9yZXN1bHQKCjIwMDUtMDgtMTggMTc6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICByZW1vdmUgdW51c2VkIGluZGV4X29pZC9sZW4KCjIwMDUtMDgtMTggMTc6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcXVpZXQgY29tcGlsZXIKCjIwMDUtMDgtMTggMTc6MzUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICAtIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBjb25maWd1cmUgZXh0cmFzCiAgIC0gYWRkIG1ha2UgZXh0cmFzCgoyMDA1LTA4LTE4IDE3OjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgYnJpbmcgaHB1eCBmdW5jdGlvbiBkZWNsIGluIGxpbmUgdy9wcm90eXBlCgoyMDA1LTA4LTE4IDE3OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jCjoKCiAgIGZpeCBidWcgMTI1OTA0OTogc25tcGQgc2VnZmF1bHRzIGluIElQLU1JQiBkdXJpbmcgc25tcHdhbGsKCjIwMDUtMDgtMTggMDk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBpbnQ2NC5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSBsb3RzIG9mIDY0IGJpdCBjaGVja3MgYWRkZWQgaWZmIFNJWkVPRl9MT05HICE9IDQKICAgICAtIGNoZWNrIGNvdW50ZXI2NCBoaWdoL2xvdyBvdmVyZmxvd3MgKGludDY0LmMpCiAgICAgLSB0cnVuY2F0ZSByZWNlaXZlZCB2YWx1ZXMgdG8gMzIgYml0cyAoYXNuMS5jKQogICAgIC0gdHJ1bmNhdGUgc2VudCB2YWx1ZXMgdG8gMzIgYml0cyBiZWZvcmUgZW5jb2RpbmcgKGFzbjEuYykKICAgLSB1cGRhdGUgc2V0X3Zhcl92YWx1ZSAoc25tcF9jbGllbnQuYykKICAgICAtIHRydW5jYXRlIHZhcmJpbmQgdmFsdWUgc2V0cyB0byAzMiBiaXRzCiAgICAgLSBoYW5kbGUgc2V0IG9mIGludGVnZXJzIG9mIHZhcmlvdXMgbGVuZ3RocyAoMSwgMiwgNCwgOCBieXRlcykKCjIwMDUtMDgtMTggMDY6MDUgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIERvbid0IGdlbmVyYXRlIGF1dGhGYWlsIHRyYXBzIGlmIHRoZXNlIGFyZSBub3QgcmVxdWlyZWQuCiAgIChCdWcgIzEyMjY3ODgsIHJlcG9ydGVkIGJ5IFdhbmcgVGVrIEtlZSkKCjIwMDUtMDgtMTcgMjA6NDQgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXM6IExPTkdfTUlOIG5vdCBkZWZpbmVkIChsaW1pdHMuaCkgYW5kIGFkZGVkCiAgIGZkX2V2ZW50X21hbmFnZXIuYyB0byBidWlsZCBmaWxlcy4KCjIwMDUtMDgtMTcgMjA6MjkgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGQgJ0NvLWV4aXN0ZW5jZSB3aXRoIE1pY3Jvc29mdCBTTk1QIHNlcnZpY2VzJyBzZWN0aW9uIGFuZCB1cGRhdGUgdGhlCiAgICdJbnRlcmFjdGlvbnMgd2l0aCBPdGhlciBWZW5kb3IncyBQcm9kdWN0cycgc2VjdGlvbi4KCjIwMDUtMDgtMTcgMTc6NTAgIHRhbmRlcnMKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiBvbiBjbGllbnRBZGRyIHRva2VuOiBhbHNvIHVzZWQgYnkgc25tcGQgd2hlbiBzZW5kaW5nIG5vdGlmaWNhdGlvbnMKCjIwMDUtMDgtMTcgMDk6NDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIDMyLzY0LWJpdCB0eXBlIGRlZmluaXRpb25zIChCdWcgIzEyNTQ5OTApCgoyMDA1LTA4LTE3IDA4OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jCiwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMKLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jCiwgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywKICAgICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMKLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9kYXRhX2xpc3QuYwosIHNubXBsaWIvb2lkX3N0YXNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgJyNpbmNsdWRlIDxkbWFsbG9jLmg+JyBzdGF0ZW1lbnRzLCBzaW5jZSB0aGlzIGlzIGhhbmRsZWQgaW4KICAgdGhlIGhlYWRlciBmaWxlIHdoaWNoIGlzIGluY2x1ZGVkIGFueXdheS4gIChQYXRjaCAjMTEwODA1MyBieSBKdW4gS3VyaXlhbWEpCgoyMDA1LTA4LTE3IDA3OjUwICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwKICAgICBUMTEyYWdlbnR4c2V0ZmFpbCwgVDExM2FnZW50eHRyYXA6CgogICBTdXBwb3J0IHJ1bm5pbmcgQWdlbnRYIHRlc3RzIHdoZW4gY29uZmlndXJlZCB1c2luZyBzZXBhcmF0ZQogICAnYWdlbnR4L21hc3RlciBhZ2VudHgvc3ViYWdlbnQnIG1vZHVsZXMgKFBhdGNoICMxMDQ5Nzk0IGZyb20gbWFnZnIpCgoyMDA1LTA4LTE3IDA1OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEV4dGVuZCBsZW5ndGggb2YgY29tMnNlYyAic291cmNlIiBidWZmZXIgKFBhdGNoICMxMjI1MTMwIGZyb20gQW5kcmV3IFN0ZWV0cykKCjIwMDUtMDgtMTcgMDQ6NDUgIGR0czEyCgogICAqIHNubXBsaWIvd2lucGlwZS5jOgoKICAgRml4IHR5cG8gKHBhdGNoICMxMjU1NzEzIGJ5IEJlcm5oYXJkIFBlbnopCgoyMDA1LTA4LTE2IDIwOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgZml4IGJ1ZyAxMjU5MDUxOiBzbm1wZCBzZWdmYXVsdHMgb24gYW1kNjQKCjIwMDUtMDgtMTYgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGFsbG93IGlwdjQgc3RhdHMgdG8gd29yayBpZiB2NiBzdGF0cyBhcmUgbm90IGF2YWlsYWJsZQoKMjAwNS0wOC0xNiAxNjo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgZml4IGJ1ZyAxMjU5MDU0OiBzbm1wZDogY2Fubm90IG9wZW4gL3Byb2MvbmV0L3NubXA2CgoyMDA1LTA4LTE2IDEyOjI5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFR5cG8gaW4gdGhlIGRlc2NyaXB0aW9uIG9mIC0tZW5hYmxlLW1pYi1jb25maWctY2hlY2tpbmcgKGJ1ZyAjMTIzODMwMSkKCjIwMDUtMDgtMTYgMTE6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGFsd2F5cyBzcGVjaWZ5IHBlcm1zIHRvIG1rZGlyLCBhcyBpdCBpcyBub3Qgb3B0aW9uIGZvciBvbGRlciBwZXJsIHZlcnNpb25zCgoyMDA1LTA4LTE1IDE4OjQyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgc2V0IHRpbWVvdXQvcmV0cmllcyB0byBkZWZhdWx0IGZvciBpbmZvcm0gc2Vzc2lvbnMKCjIwMDUtMDgtMTUgMTg6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgZml4IHR5cG8KCjIwMDUtMDgtMTUgMTg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogaW5zdGFuY2UuYywgc2NhbGFyX2dyb3VwLmMsIHRhYmxlLmMKOgoKICAgd2FpdCBmb3IgZGVsZWdhdGVkIHJlcXVlc3RzIGJlZm9yZSByZXRyaWVzCgoyMDA1LTA4LTE0IDE3OjIyICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgRml4IHNwZWxsaW5nIG1pc3Rha2UgaW4gZGVzY3JpcHRpb24gb2YgYSBkZWZpbmUuCgoyMDA1LTA4LTExIDEzOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZml4IGxlbmd0aCBvZiBzeXNPYmplY3RJRAoKMjAwNS0wOC0wMSAwNzozOSAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtZG9uJ3QgdXNlIGdldGR0YWJsZXNpemUoKSBmb3IgV0lOMzIKCjIwMDUtMDgtMDEgMDc6MzkgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgICAgbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIGxpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCBzbm1wdHJhcGQvTWFrZWZpbGUuaW4KLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIC1XaW4zMjogIFVwZGF0ZSBwcm9qZWN0IGZpbGVzIHdpdGggbmV3IGxvY2F0aW9uIGZvciBub3RpZmljYXRpb25fbG9nLmMgYW5kCiAgICBtaXNzaW5nIHRhYmxlX2RhdGEyLmMgZm9yIE1TVkMgR1VJCgoyMDA1LTA4LTAxIDA3OjM3ICBhbGV4X2IKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC1GaXggd2luMzIgYnVpbGQgcHJvYmxlbSAtIGRlY2xhcmUgdmFyaWFibGVzIGJlZm9yZSB1c2luZy4KCjIwMDUtMDctMjggMDc6NDcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgU2ltcGxlICd3aGlsZScgbG9vcCwgYW5kIChub24tZXJyb3IpIHF1aXQgc3RhdGVtZW50LgoKMjAwNS0wNy0yNiAwODowNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQcm9iZSBmb3IgZW5naW5lSUQgaW5pdGlhbGx5LCBzbyB0aGF0IGl0J3MgYXZhaWxhYmxlIGZvciBjb25zdHJ1Y3RpbmcKICAgdGhlIHVzbVVzZXJUYWJsZSBPSURzLgoKMjAwNS0wNy0yNiAwNjoxOSAgdGFuZGVycwoKICAgKiBGQVE6CgogICBVcGRhdGUgT1Mgc3VwcG9ydCBzZWN0aW9uLiBTdGlsbCBsaWtlbHkgdG8gYmUgb3V0ZGF0ZWQgZm9yIHNvbWUgcGxhdGZvcm1zLgoKMjAwNS0wNy0yNSAxOTo1MyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZml4IGJ1ZyAxMjMwMzY2OiBhZGQgIi1uIiB0byAibmV0c3RhdCAtYSIgdG8gbWFrZSBpdCB3b3JrIGV2ZW4gaWYgcG9ydCBudW1iZXJzIGhhdmUgY29ycmVzcG9uZGluZyBzZXJ2aWNlIG5hbWVzCgoyMDA1LTA3LTI1IDE5OjI4ICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgYXV0b19ubGlzdC5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgaW5jbHVkZSBoZWFkZXIgdy9wcm90b3R5cGUKCjIwMDUtMDctMjUgMTk6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IG1vdmUgcGFyYW0gdHlwZSBkZWNsIGludG8gcGFyYW0gZGVjbCBsaXN0CgoyMDA1LTA3LTI1IDE5OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgLSBtb3ZlIGNvbW1lbnQgZW5kIG91dCBvZiBjb25kaXRpb25hbCAoc2luY2Ugc3RhcnQgaXMgYXMgd2VsbCkKICAgLSBpbmNsdWRlIGN0eCBzZXQgZm9yIG5vbi1lbnVtIHR5cGVzCgoyMDA1LTA3LTI1IDE5OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgICBnZW5lcmljLWN0eC1zZXQubTJpOgoKICAgZGVhbCB3aXRoIG9pZCBsZW5ndGggdnMgc2l6ZSBkdXJpbmcgZ2V0L3NldAoKMjAwNS0wNy0yNSAxNTo1NyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0wNy0yNSAxNTo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBub3RpZmljYXRpb24tbG9nLW1pYiB0byBkZWZhdWx0IG1pYiBsaXN0CgoyMDA1LTA3LTI1IDE1OjU1ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gZml4IG5vdGlmY2F0aW9uIGxvZyBpbmNsdWRlIHBhdGgKICAgLSBvbmx5IGluY2x1ZGUgbm90aWZpY2F0aW9uIGxvZyBjb2RlIGlmIG1vZHVsZSBpbmNsdWRlZAoKMjAwNS0wNy0yNSAxNDozNSAgbWFyegoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS8uY3ZzaWdub3JlLCBtZW1vcnkvLmN2c2lnbm9yZQo6CgogICBmaXhpbmcgY3ZzIGlnbm9yZSBmb3Igc2hhcmVkIGxpYnMKCjIwMDUtMDctMjUgMTM6MjIgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgb24vZm9yIG5vdGlmaWNhdGlvbl9sb2cKCjIwMDUtMDctMjUgMTE6MzkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgR2VuZXJhdGUgZGlmZmVyZW50IGNvZGUgZm9yIGNhY2hpbmcgYW5kIG5vbi1jYWNoaW5nIGNvbnRhaW5lciBmcmFtZXdvcmtzCiAgIChyYXRoZXIgdGhhbiBpbmNsdWRpbmcgY2FjaGluZyBzdXBwb3J0IHJlZ2FyZGxlc3MpCgoyMDA1LTA3LTI1IDExOjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIG0yY190YWJsZV9zYXZlX2RlZmF1bHRzLm0yaSwgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYwosIG1mZC1tYWtlZmlsZS5tMm0sIG1mZC10b3AubTJjOgoKICAgQWdlbnRYIG1ha2VmaWxlIGFuZCBzdWJhZ2VudCBkcml2ZXIgY29kZSB3ZXJlbid0IGdldHRpbmcgZ2VuZXJhdGVkCiAgIChldmVuIGlmIHRoZXkgd2VyZSByZXF1ZXN0ZWQpLiAgRml4IHRoaXMuCgoyMDA1LTA3LTI1IDExOjM0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDb252ZW5pZW5jZSByb3V0aW5lIGZvciBzZXR0aW5nIGFuIGludGVnZXIgdmFyYmluZCB2YWx1ZS4KCjIwMDUtMDctMjEgMjE6NTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBhZGQgIE5FVFNOTVBfRFNfTk9USUZfTE9HX0NUWCBzdHJpbmcKCjIwMDUtMDctMjEgMjE6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBsb2cgbm90aWZpY2F0aW9uIGlmIHVzaW5nIG5vdGlmaWNhdGlvbiBsb2cgbWliIG1vZHVsZQoKMjAwNS0wNy0yMSAyMTo1MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBhZGQgdG9kbyBjb21tZW4KCjIwMDUtMDctMjEgMjE6NDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSByZW1vdmUgY29tbWVudGVkIG91dCB2YXIgZGVjbAogICAtIHJlbW92ZSB1bnVzZWQgbnVtX3JlY2VpdmVkCiAgIC0gc2V0IHNubXB0cmFwZCBjb250ZXh0IGZvciBub3RpZmljYXRpb24gbG9nIG1vZHVsZQoKMjAwNS0wNy0yMSAyMTo0NyAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBhZGQgaW50ZXJmYWNlIHRvIG5vdGlmaWNhdGlvbiBsb2cgYWdlbnQgbW9kdWxlCgoyMDA1LTA3LTIxIDIxOjQ3ICByc3RvcnkKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBub3RpZmljYXRpb25fbG9nLmMsCiAgICAgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgcmVtb3ZlIHVudXNlZCBub3RpZmljYXRpb25fbG9nIGZpbGVzCgoyMDA1LTA3LTIxIDIxOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgLSBtYWtlIG51bV9yZWNlaXZlZCBzdGF0aWMKICAgLSBhZGQgbG9jYWwgZW5hYmxlZCBmbGFnLCBzZXQgd2hlbiBtb2R1bGUgaW5pdCBjYWxsZWQKICAgLSByZXR1cm4gaW1tZWRpYXRlbHkgZnJvbSBsb2dfbm90aWZpY2F0aW9uIGlmIG5vdCBlbmFibGVkCiAgIC0gdXNlIGNvcnJlY3QgaW5kZXggaW4gY29tcGFyZSwgc28gd2UgaGF2ZSBhIGNoYW5jZSBhdCBmaW5kaW5nIHRoZSByaWdodCByb3cKICAgICAodGhpcyBmaXhlcyB0aGUgdmFyYmluZCBtZW1vcnkgbGVhaykKCjIwMDUtMDctMjEgMjA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBzdHJkdXAgdG1wIGRzIHN0cmluZyB0aGF0IHdpbGwgYmUgcmVsZWFzZWQKCjIwMDUtMDctMjEgMTk6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBhZGQgbWlzc2luZyBzZW1pLWNvbG9uCgoyMDA1LTA3LTIxIDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvOiBub3RpZmljYXRpb25fbG9nLmMsCiAgICAgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgLSByZW1vdmUgYWdlbnR4IGNvbmRpdGlvbmFsIGNvbXBpbGUKICAgLSByZW1vdmUgc25tcHRyYXBkIGhlYWRlcnMKICAgLSByZS13b3JrIGxvZyBzaXplIG1hbmFnZW1lbnQKICAgLSBhZGQgY29udGV4dCBwYXJhbWV0ZXIgZm9yIHRhYmxlIGluaXQgcm91dGluZXMKICAgLSBuZXcgZHNfYXBwIGZvciBtb2R1bGUgaW5pdCB0byBkZXRlcm1pbmUgY29udGV4dAogICAtIHJlbW92ZSBkb250UmV0YWluTG9ncyBjb25maWcgKHVzZSAtSSAtbm90aWZpY2F0aW9uX2xvZykKICAgLSBjaGcgZGVidWcgc3ltYm9sIChsb2dfbm90aWZpY2F0aW9uLT5ub3RpZmljYXRpb25fbG9nKQogICAtIHJlbW92ZSBleHRyYW5lb3VzIGNvbW1lbnRzCiAgIC0gbWFrZSBzdXJlIHRyYW5zcG9ydCBwdHIgaGFzIHZhbHVlIGJlZm9yZSB1c2luZwoKMjAwNS0wNy0yMSAxODo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgICBub3RpZmljYXRpb24tbG9nLW1pYi5oOgoKICAgb3JpZ2luYWwgdmVyc2lvbnMKCjIwMDUtMDctMjAgMjA6MzQgIGFsZXhfYgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC1BZGQgd3JhcHBlciBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzIChteV9nZXRlbnYpIHRvIGFkZCBXaW5kb3dzIHJlZ2lzdHJ5CiAgICBzdXBwb3J0IGZvciBwZXJzaXN0ZW50IGZvbGRlci9maWxlIGNoZWNrCiAgIC1GaXggYnVnIGluIGdldF9wZXJzaXN0ZW50RGlyIGNhbGwgKGl0IHdhcyBub3QgcGFzc2luZyB0aGUgZmlsZW5hbWUgb2YKICAgIHNubXAuY29uZgoKMjAwNS0wNy0yMCAxODoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBtb3ZlIGhlYWRlciBpbmNsdWRlIHRvIHRvcCBvZiBmaWxlCgoyMDA1LTA3LTIwIDE4OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYWRkIG1pc3NpbmcgaGVhZGVyCgoyMDA1LTA3LTIwIDE4OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZml4IGluY2x1ZGUgb2Ygb3duIGhlYWRlciAoY3V0LW4tcGFzdGUgZXJyb3IpCgoyMDA1LTA3LTIwIDE4OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5LzogbWliLmgsIHNubXBfYXBpLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMDctMjAgMTg6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICByZW1vdmUgcHJvdG90eXBlIGZvciBub24tZXhpc3RlbnQgZnVuYzsgYWRkIG1pc3NpbmcgcHJvdG90eXBlCgoyMDA1LTA3LTIwIDE4OjA4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHR3ZWFrIHBhcmFtZXRlcnMgZm9yIG5zYi1jb25maWcgZXhhbXBsZQoKMjAwNS0wNy0yMCAxODowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IHJlbW92ZSByZWR1bmRhbnQgc2VtaWNvbG9uCgoyMDA1LTA3LTIwIDE4OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgYWRkIG1pc3NpbmcgaW5jbHVkZXMvcHJvdG90eXBlCgoyMDA1LTA3LTIwIDE4OjAwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGJhZCBvcHRpb24gW3dpdGh8ZW5hYmxlXS1zc2wKCjIwMDUtMDctMjAgMTc6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSBjaGVjayBydW4gZmluZCBvbiBzcmNkaXIKCjIwMDUtMDctMjAgMTE6MzAgIGR0czEyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBHdWFyZCBhZ2FpbnN0IHVzaW5nIG5hbWVsZXNzIGRhdGEgbGlzdHMuICBUaGlzIHN0aWxsCiAgIHdvbid0IHdvcmsgcHJvcGVybHksIGJ1dCBhdCBsZWFzdCB0aGUgYWdlbnQgd29uJ3QgY3Jhc2guCiAgIChZZXMsIEkga25vdyB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gLSBidXQgeW91IGNhbid0IHRydXN0CiAgIHNvbWUgcGVvcGxlIG5vdCB0byBkbyBzb21ldGhpbmcgc3R1cGlkIC0gbmFtaW5nIG5vIG5hbWVzKQoKMjAwNS0wNy0yMCAxMToyNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgSW5jbHVkZSB0aGUgaGFuZGxlciBuYW1lIHdoZW4gcmVnaXN0ZXJpbmcgYSB0YWJsZV9hcnJheS4KCjIwMDUtMDctMTkgMTM6NDQgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpeCBjdXQtbi1wYXN0ZTsgbmV3IHRhYmxlcyBhcmUgbGludXggb25seQoKMjAwNS0wNy0xOSAxMDo1MiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmY6CgogICBJbXByb3ZlIGhhbmRsaW5nIG9mIHZhcmlhYmxlLWxlbmd0aCBpbmRleCBhbmQgY29sdW1uIHZhbHVlcy4KCjIwMDUtMDctMTkgMTA6NTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBoYW5kbGluZyBvZiB2YXJpYWJsZS1sZW5ndGggaW5kZXhlcy4KCjIwMDUtMDctMTkgMTA6NDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBQcm92aWRlIGFub3RoZXIgcmVnaXN0cmF0aW9uIEFQSSB0byBoaWRlIHRoZSBoZWxwZXIgaW50ZXJuYWxzCiAgIGZyb20gdXNlci1sZXZlbCBjb2RlLgoKMjAwNS0wNy0xOCAxNzo1NyAgcnN0b3J5CgogICAqIE5FV1MsIFJFQURNRS5hZ2VudC1taWJzOgoKICAgdXBkYXRlIGZvciBuZXcgdGNwQ29ubmVjdGlvblRhYmxlIGFuZCB0Y3BMaXN0ZW5lclRhYmxlCgoyMDA1LTA3LTE4IDE3OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLzogdGNwTGlzdGVuZXJUYWJsZS5jCiwgdGNwTGlzdGVuZXJUYWJsZS5oLCB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgaW5pdGlhbCB3b3JraW5nIHZlcnNpb24KCjIwMDUtMDctMTggMTc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHRjcC1taWIuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfY29uc3RhbnRzLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW5pdGlhbCBjb2RlIGZvciB0Y3BMaXN0ZW5lclRhYmxlCgoyMDA1LTA3LTE4IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvOiB0Y3BDb25uZWN0aW9uVGFibGUuYwosIHRjcENvbm5lY3Rpb25UYWJsZS5oLCB0Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhbnRzLmgKLCB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSBsb2FkIGNhY2hlIGZyb20gZGF0YSBhY2Nlc3MKICAgLSBtYXAgYWRkcmVzcyB0eXBlCiAgIC0gc2hyaW5rIHN0b3JhZ2UgZm9yIGluZGV4ZXMKCjIwMDUtMDctMTggMTc6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmM6CgogICAtIGZpeCBpbmRleCBvaWQgcG9pbnRlcgogICAtIGFkZCB1cGRhdGUgb2YgcGlkCgoyMDA1LTA3LTE4IDE3OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICAtIHVzZSBuZXcgcHJpdmF0ZSBoZWFkZXIKICAgLSBmaXggbG9hZCBwcm90b3R5cGVzCiAgIC0gY2hlY2sgbmV3IGxpc3RlbiBzdGF0ZSByZXF1aXJlL2V4Y2x1ZGUgbG9hZCBmbGFnCiAgIC0gZml4IGNvcHkgb2YgcmVtb3RlIGFkZHJlc3MKCjIwMDUtMDctMTggMTY6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHByaW50IGJhZCBsaW5lIHdoZW4gYmFpbGluZyBvbiBlcnJvcgoKMjAwNS0wNy0xOCAxNjoyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgZml4IGN1dC1uLXBhc3RlIGZsdWIKCjIwMDUtMDctMTggMTY6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBjb21tZW50IGJsb2NrCgoyMDA1LTA3LTE4IDE2OjIzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICAtIHJlbW92ZSB1bnVzZWQgZGVmaW5lcy9jb21tZW50cwogICAtIGFkZCBwaWQgdG8gc3RydWN0CiAgIC0gYWRkIGxvYWQgZmxhZ3MgdG8gcmVxdWlyZS9leGx1ZGUgbGlzdGVuIHN0YXRlCgoyMDA1LTA3LTE4IDE2OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgYWRkIGRlYnVnIHRvIGZyZWVCU0QgKGVzcCBlcnJvciBjYXNlcykKCjIwMDUtMDctMTggMTU6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYwo6CgogICBjb3JyZWN0IGRhdGEgc3RydWN0IG5hbWUKCjIwMDUtMDctMTggMTU6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLzogdGNwQ29ubmVjdGlvblRhYmxlLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW5pdGlhbCB2ZXJzaW9ucwoKMjAwNS0wNy0xOCAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9wcml2YXRlLmg6CgogICBwcml2YXRlIGltcGxlbWVudGF0aW9uIGhlYWRlcgoKMjAwNS0wNy0xNSAxODo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYywKICAgICBnZW5lcmljLXRhYmxlLWVudW1zLm0yYywgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHF1b3RlIHN0cmluZyBhcmd1bWVudCBpbiBhc3NpZ25tZW50CgoyMDA1LTA3LTE1IDE4OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2xlYXIgc2Vzc2lvbiBmcm9tIGNhbGxiYWNrIGNsaWVudCBhcmdzIG9uIGZyZWUKCjIwMDUtMDctMTQgMTk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIGZpeCBpbnRyL2N0eCBvdmVyZmxvd3MKCjIwMDUtMDctMTQgMTg6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaDoKCiAgIGNvbmZpZ19yZXF1aXJlIHV0aWxpdGllcy9leGVjdXRlIChmb3Igc25tcHRyYXBkKQoKMjAwNS0wNy0wNyAxMjozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBkbyBub3QgY2xvc2UgYWxsIG5vbi1zdGQgZmRzIGluIGRhZW1vbml6ZSAoYXMgd2UgaGF2ZSBwcm9iYWJseSBvcGVuZWQgc29tZSkKCjIwMDUtMDctMDcgMTI6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjbG9zZSBhbGwgbm9uLXN0YW5kYXJkIGZkcyBpbmhlcml0ZWQgZnJvbSBzaGVsbCBpbW1lZGlhdGVseQogICAtIHJlZ2lzdGVyIHNpZ25hbCBoYW5kbGVycyBtdWNoIHNvb25lciwgc28gZWFybHkgc2lnbmFsIGRvZXNuJ3QgY29yZQoKMjAwNS0wNy0wNiAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgdHdlYWsgdGFyZ2V0IHRvIGJ1aWxkICAoYWxsKSBsaWJzIHRvIHVzZSBleGlzdGluZyBJTlNUQUxMTElCUwoKMjAwNS0wNy0wMSAxODo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAtIHVzZSB1dGlsaXR5IHJvdXRpbmUgdG8gY2xlYXIgZGVsZWdhdGVkIGZsYWcKICAgLSBkb24ndCBzZXQgZXJyb3IgZm9yIHRpbWVvdXQgb24gZ2V0LW5leHQKICAgLSByZWxlYXNlIGRlbGVnYXRlZCBjYWNoZSB3aGVuIHVuZGVsZWdhdGluZyByZXF1ZXN0cwoKMjAwNS0wNi0zMCAxMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gaWZmIG5vdCBhcHBsaWVkLCBmaXggZnJlZSBvZiBwa3QgdG8gdXNlIGFsbG9jJ2QgcHRyLCBub3Qgb2Zmc2V0IGluIHBrdAogICAtIGlmZiBhcHBsaWVkLCByZW1vdmUgcmVkdW5kYW50IHBydCBjbGVhciBhZnRlciBTTk1QX0ZSRUUKCjIwMDUtMDYtMzAgMDU6MjcgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZC44LmRlZgosIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggMTIyNjE4NzogZG9jdW1lbnQgbWlzc2luZyBjb25maWcgZmlsZSB0b2tlbnMgYW5kIGNtZGxpbmUgb3B0aW9ucwoKMjAwNS0wNi0zMCAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBDYWxjdWxhdGUgImNvb2tlZCIgdmFsdWVzIGZyb20gaGlzdG9yaWNhbCBkYXRhLgogICBUaGlzIGNoYW5nZXMgdGhlIG1lYW5pbmcgb2YgdGhlc2UgZmlndXJlcyBmcm9tIGEgc3lzdGVtCiAgIGxpZmUtdGltZSBhdmVyYWdlIHRvIGEgKG1vcmUgdXNlZnVsKSBvbmUtbWludXRlIGF2ZXJhZ2UsCiAgIGFuZCBicmluZ3MgdGhlIExpbnV4IGltcGxlbWVudGF0aW9uIGludG8gbGluZSB3aXRoIG1vc3QKICAgb3RoZXIgYXJjaGl0ZWN0dXJlcy4KCjIwMDUtMDYtMzAgMDQ6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oOgoKICAgU3RhbmRhcmQgKHN5c3RlbS1pbmRlcGVuZGVudCkgbWVjaGFuaXNtIGZvciB0cmFja2luZyBoaXN0b3JpY2FsIENQVQogICBzdGF0aXN0aWNzLCBpbiBvcmRlciB0byBjYWxjdWxhdGUgcm9sbGluZyBhdmVyYWdlcy4KCjIwMDUtMDYtMjkgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERvIHByb3BlciBjaGVja3MgZm9yIHplcm8gcmV0dXJuIGFuZCB3YWl0IHJhdGhlciB0aGFuIGNsb3NpbmcgdGhlIGNvbm5lY3Rpb24KCjIwMDUtMDYtMjkgMTM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gUm9tYW4gVHNpcm91bG5pa292IHRvIGNhdGNoIC0xIHJldHVybiBjb2RlIGZyb20gY2hlY2tfcGFja2V0IGZ1bmN0aW9ucwoKMjAwNS0wNi0yOCAwODozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5oOgoKICAgVHdlYWsgdGhlIG5hbWUgb2YgdGhlIGNvcmUgSEFMIG1lbW9yeSBtb2R1bGUuCgoyMDA1LTA2LTI3IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzLCBleGFtcGxlcy90cmFwLWV4YW1wbGUucGw6CgogICBQYXRjaCBmcm9tIERhdmlkIEJlYXR0aWUgdG8gZml4IHRyYXAgcmVjZXB0aW9uCgoyMDA1LTA2LTI3IDA1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N0b3JhZ2UuaAosIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIFVzZSBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciB0byBpbXBsZW1lbnQgTWVtb3J5IG1vbml0b3Jpbmcgb24gTGludXggc3lzdGVtcy4KCjIwMDUtMDYtMjcgMDU6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9wcm9jLmMsIGhvc3QvaHJfcHJvYy5oLAogICAgIHVjZC1zbm1wL3Ztc3RhdC5jLCB1Y2Qtc25tcC92bXN0YXQuaDoKCiAgIFVzZSBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciB0byBpbXBsZW1lbnQgQ1BVIG1vbml0b3Jpbmcgb24gTGludXggc3lzdGVtcy4KCjIwMDUtMDYtMjcgMDQ6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgYSBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllcgogICAoSnVzdCBjb3ZlcmluZyBDUFUgYW5kIG1lbW9yeSBpbmZvcm1hdGlvbiBmb3Igbm93LCBhbmQKICAgIG9ubHkgaW1wbGVtZW50ZWQgb24gTGludXgtYmFzZWQgc3lzdGVtcy4gQnV0IGl0J3MgYSBzdGFydCEpCgoyMDA1LTA2LTI3IDA0OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBIYW5kbGUgd2Vlay1kYXkgYml0IHNwZWNpZmljYXRpb25zLgoKMjAwNS0wNi0yNyAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgSGFuZGxlIHJldmVyc2UtZGF5IGJpdCBzcGVjaWZpY2F0aW9ucy4KCjIwMDUtMDYtMjQgMDY6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgY2FsYW5kYXItYmFzZWQgc2NoZWR1bGluZy4KICAgVGhpcyBkb2Vzbid0IGhhbmRsZSByZXZlcnNlLWRheSBvciB3ZWVrZGF5IGJpdHMgeWV0LAogICBidXQgc2hvdWxkIHByb3ZpZGUgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgbmVlZGVkIGZvcgogICB0aGUgImNyb24iIGFuZCAiYXQiIGNvbmZpZ3VyZSBkaXJlY3RpdmVzLgoKMjAwNS0wNi0yMyAwODo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgTW9yZSBtZWFuaW5nZnVsIGRlYnVnIG91dHB1dC4KCjIwMDUtMDYtMjIgMjA6MTYgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gZG9jdW1lbnQgbG9nbWF0Y2gsIGFnZW50eHBlcm1zLCBjb20yc2VjdW5peCwgZW5naW5lSURUeXBlLCBlbmdpbmVJRE5pYwogICAgIGFuZCBsZWF2ZV9waWRmaWxlIHRva2VucwoKMjAwNS0wNi0yMiAyMDowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVtb3ZlIHNubXBkIGRpc2tpbyB0b2tlbiBhbmQgdGhlIHVudXNlZCBzdGF0aWMgdmFyaWFibGUgaXQgc2V0cwoKMjAwNS0wNi0yMiAxOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBvb3BzLiBkZWNsYXJlIHZhcmlhYmxlIHVzZWQgaW4gbmV3IGNvZGUuCgoyMDA1LTA2LTIyIDE5OjM1ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSAxMjE5NTQ4OiBkb24ndCB1c2UgZGVwcmVjYXRlZCBvcHRpb24KCjIwMDUtMDYtMjIgMTk6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBhcHBseSBwYXRjaCBmcm9tIDEyMTk1NDg6IGRvbid0IHVubGluayBudWxsIGZpbGVuYW1lCgoyMDA1LTA2LTIyIDE5OjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGNsb3NlIGFsbCBmZHMgYWZ0ZXIgZGFlbW9uaXppbmcKCjIwMDUtMDYtMjIgMTc6MDMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyBjaGVjayB0YXJnZXQgZm9yIGZ1bGwgcGF0aHMgaW4gZGVwZW5kZW5jeSBmaWxlcwoKMjAwNS0wNi0yMiAxNjowNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBhcHBseSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIDEyMjU0NDA6IHJlZ2lzdGVyIHNpbmdhbCBoYW5kbGVycyBlYXJsaWVyCgoyMDA1LTA2LTIyIDE1OjU3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFwcGx5IHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgMTIyNTQ0MDogcmVnaXN0ZXIgc2luZ2xhIGhhbmRsZXMgZWFybGllcgoKMjAwNS0wNi0yMiAxMzoyMiAgcnN0b3J5CgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgbW92ZSBpZmRlZiB0ZXN0IGFmdGVyIGhlYWRlciB3aXRoIGRlZmluZSBpcyBpbmNsdWRlZAoKMjAwNS0wNi0yMiAwNjowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkVGFibGUuYzoKCiAgIFVzZSB0aGUgbmV3IHNjaGVkVGFibGUgZW50cnkgY3JlYXRpb24gcm91dGluZXMuCgoyMDA1LTA2LTIyIDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBFbnN1cmUgc2Vuc2libGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgYW4gaW50ZXJuYWwgc2Vzc2lvbi4KCjIwMDUtMDYtMjIgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBTdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHZlcnNpb24gYW5kIHNlY3VyaXR5IGxldmVsCiAgIHVzZWQgdG8gbWFrZSBpbnRlcm5hbCBxdWVyaWVzLgogICAgIFVuZm9ydHVuYXRlbHksIGNvbW11bml0eS1iYXNlZCByZXF1ZXN0cyBkb24ndCBjdXJyZW50bHkKICAgd29yayBvdmVyIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQsIGJ1dCBJJ20gd29ya2luZyBvbiB0aGF0LgoKMjAwNS0wNi0yMiAwNTozOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCBzbm1wbGliL3NubXB2My5jOgoKICAgU2VwYXJhdGUgb3V0IHBhcnNpbmcgc2VjdXJpdHkgbGV2ZWwgdG9rZW5zIGludG8gYSBzZXBhcmF0ZSByb3V0aW5lLgoKMjAwNS0wNi0yMSAxNzozOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0wNi0yMSAxNzozNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgYXNzZXJ0CgoyMDA1LTA2LTIxIDE3OjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgcHJvdG90eXBlIGZvciBuZXRzbm1wX2xvZ2dpbmdfcmVzdGFydAoKMjAwNS0wNi0yMSAxNzozMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICBwcm90b3R5cGVzIGZvciBzaG91bGRfaW5pdCBhbmQgYWRkX3RvX2luaXRfbGlzdAoKMjAwNS0wNi0yMSAxNzozMiAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtIG5ldyAtLWRpc2FibGUtc25tcHRyYXBkLXN1YmFnZW50IGNvbmZpZ3VyZSBvcHRpb24KICAgLSBjaGVjayBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc3ViLWFnZW50IGNvZGUKICAgLSBhZGQgJ0knIG9wdGlvbiB0byBjb21tYW5kIGxpbmUgcHJvY2Vzc2luZywgdG8gZGlzYWJsZSBtb2R1bGVzCiAgIC0gdXNlIHNob3VsZF9pbml0IHRvIGRldGVybWluZSBpZiBub3RpZmljYXRpb24gbG9nIG1pYiBpcyBkaXNhYmxlZAogICAtIHVzZSBuZXcgc25tcF9sb2dnaW5nX3Jlc3RhcnQgb24gSFVQCgoyMDA1LTA2LTIxIDExOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgcHJvdG90eXBlIGZvciBzbm1wX3N0ZGVycmxvZ19zdGF0dXMKCjIwMDUtMDYtMjEgMTE6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29yZS5jLCBzY2hlZENvcmUuaDoKCiAgIEEgY2xlYW5lciBhcHByb2FjaCB0byBjcmVhdGluZyBlbnRyaWVzIGluIHRoZSBzY2hlZFRhYmxlCgoyMDA1LTA2LTIxIDExOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBDb25zaXN0ZW50bHkgd29yayB3aXRoIFNOTVAgdmVyc2lvbnMsIG5vdCAicHJvY2Vzc2luZyBtb2RlbHMiLgoKMjAwNS0wNi0yMSAxMTozMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQ29ycmVjdCB0ZW1wbGF0ZSBmb3IgY2FjaGVkIHRhYmxlX2RhdGEgcmVnaXN0cmF0aW9uLgoKMjAwNS0wNi0yMSAxMDo0NSAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIFJlZmVyIHRvIHRoZSBjb3JyZWN0IGxvY2F0aW9uIGZvciBjb25maWcgZmlsZXMuCiAgIChTcG90dGVkIGJ5IExlbyBMZWkpCgoyMDA1LTA2LTIxIDEwOjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gb25seSBhZGQgbm90aWZpY2F0aW9uIGhhbmRsZXIgaWZmIHdlIGFyZSBhbiBhZ2VudHggc3ViYWdlbnQKCjIwMDUtMDYtMjAgMTg6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGZpeCBzZXR0aW5nIG9mIGV4cGVjdCByZXNwb25zZSBwZHUgZmxhZyAoSSBicm9rZSBpdCBmaXhpbmcgdGhlIFNOTVB2MwogICAgIGRlbGF5ZWQgZW5naW5lSUQgcHJvYmUpCgoyMDA1LTA2LTIwIDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBwcm94eSBoYW5kbGluZyBvZiBOT1NVQ0hOQU1FIG9uIGEgZ2V0LW5leHQsIG5vdGVkIG9uIHVzZXJzIGJ5IEpvaG4gSGFyZGluCgoyMDA1LTA2LTIwIDE3OjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gcmVtb3ZlIHVudXNlZCBsb2cgZmxhZ3MgaW4gYWdlbnQKICAgLSBzZXQgbm8gZGVmYXVsdCBsb2cgZmxhZyBmb3Igc3lzbG9nIGNhc2VzCiAgIC0gbmV3IHNubXBfc3RkZXJybG9nX3N0YXR1cygpIGNoZWNrcyBmb3IgZW5hYmxlZCBzdGRlcnIgbG9nIGhhbmRsZXJzCiAgIC0gZml4IHJlLWVuYWJsZSBvZiBzeXNsb2cgaW4gbG9nZ2luZyByZXN0YXJ0IGZ1bmN0aW9uCiAgIC0gdXNlIGNvcnJlY3QgZnVuY3Rpb24gbmFtZSB0byByZS1lbmFiZSBmaWxlIGxvZ3MKICAgLSBDKysgY29tbWVudHMgLT4gQyBjb21tZW50cwoKMjAwNS0wNi0yMCAxNjozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIG5ldyBuZXRzbm1wX2xvZ2dpbmdfcmVzdGFydCgpIHRvIGNsb3NlL3Jlb3BlbiBmaWxlIGJhc2VkIGxvZ3MKICAgLSBwdXJnZSBhZ2VudCBzZXR1cF9sb2cKICAgLSBvbmx5IGVuYWJsZSBkZWZhdWx0IExPR0ZJTEUgaWYgbm8gb3RoZXIgbG9nIG9wdGlvbiBkZWZpbmVkCgoyMDA1LTA2LTE4IDExOjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA1LTA2LTE4IDEwOjQ0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLW1vdmUgc29tZSBhcmcgY2hlY2tzIGVhcmxpZXIKICAgLW1vdmUgbGlid3JhcC9ycG0gY2hlY2tzIGJhY2sgYWZ0ZXIgc2V0dGluZyBOT05BR0VOVExJQlMsIHNvIHRoZXkgYXJlbid0CiAgICBsaXN0ZWQgaW4gYXBwIGxpYnMgYnkgbmV0LXNubXAtY29uZmlnCgoyMDA1LTA2LTE2IDEzOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBvb3BzLSBwYXNzIGFkZHIgb2YgdmFyIHRvIHNzY2FuZgoKMjAwNS0wNi0xNSAxNzozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIGZ1bmMgdXNlZCBiZWZvcmUgZGVmaW5lZAoKMjAwNS0wNi0xNSAwODowNSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZyZWUgdGhlIHNhbWUgcG9pbnRlciB0aGF0IHdhcyByZXR1cm5lZCBieSAnc3RyZHVwJwoKMjAwNS0wNi0xNCAxNjoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gcmV3b3JrIHNubXB2MyBlbmdpbmVJRCBwcm9iZSBkZWxheSB0byBmaXggcHJvYmxlbXMgbm90ZWQgb24gY29kZXJzCiAgICAgLSBzZXQgdXAvY2hlY2sgc2Vzcy9wZHUgdmVyc2lvbiBhIGxpdHRsZSBlYXJsaWVyCiAgICAgLSBzZXQgRVhQRUNUX1JFU1BPTlNFIGZsYWcgY29ycmVjdGx5IGluaXRpYWxseSwgaW5zdGVhZCBvZiBnbG9iYWwgc2V0CiAgICAgICBhbmQgdW5zZXQgZm9yIGNlcnRhaW4gY2FzZXMuIGFsc28gZG8gaXQgYSBsaXR0bGUgZWFybGllcgogICAgIC0gbW92ZSBjaGVjayBmb3IgcHJvYmUgaGlnaGVyIHVwIGNhbGwgc3RhY2sgLSBub3cgd2lsbCBiZSBkb25lIHRoZSBmaXJzdAogICAgICAgdGltZSBhIHNlc3Npb24gc2VuZHMgYSB2MyBwZHUgdGhhdCBleHBlY3RzIGEgcmVzcG9uc2UKCjIwMDUtMDYtMTQgMTI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvbmYuYzoKCiAgIFVzZSAiYWdlbnRTZWNOYW1lIiBmb3IgcmV0cmlldmluZyBzY2hlZHVsZSBpbmZvcm1hdGlvbi4KCjIwMDUtMDYtMTQgMTI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIGZpeCBidWcgMTE5NzE4Mzogc3NSYXdDcHUqIHN0YXlzIG9uIDJeMzItMSBpbnN0ZWFkIG9mIHJvbGxpbmcgb3ZlcgoKMjAwNS0wNi0xNCAxMTo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIG9vcHMtIG1vdmUgdmFyIGRlY2wgdG8gZnVuYyB0aGF0IHZhciB3YXMgbW92ZWQgdG8KCjIwMDUtMDYtMTQgMTE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBmaXggYnVnIDEyMTcyNjE6IElGLU1JQiByZXBvcnRzIGluY29ycmVjdCBzdGF0cyBvbiBBTUQ2NAoKMjAwNS0wNi0xNCAxMDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcHJvY2VzcyBvcHRpb25hbCBjb25maWcgZmlsZXMgZHVyaW5nIHByZS1taWIgY29uZmlnIHRvbwogICAtIGlmIG9wdGlvbmFsIGNvbmZpZ3MgcHJlZml4ZWQgd2l0aCAnLScsIHByb2Nlc3MgYmVmb3JlIGRlZmF1bHQgY29uZmlncwoKMjAwNS0wNi0xNCAwNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgICAgZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCB1dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBNb3ZlICJhZ2VudFNlY05hbWUiIGNvbmZpZyBkaXJlY3RpdmUgdG8gdGhlIGlxdWVyeSB1dGlsaXR5IG1vZHVsZS4KCjIwMDUtMDYtMTQgMDc6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIERpc3Rpbmd1aXNoIHNubXBfc2VuZCBlcnJvcnMgZnJvbSBTTk1QIGVyclN0YXQgZXJyb3JzCgoyMDA1LTA2LTE0IDA3OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgUG9wdWxhdGUgY2FsbGJhY2sgUERVIHdpdGggU05NUHYzIGRlZmF1bHRzIGZyb20gdGhlIHNlc3Npb24gc3RydWN0dXJlLgoKMjAwNS0wNi0xMyAxOToyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyLCBhdXRvY29uZgoKMjAwNS0wNi0xMyAxOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBhcHBseSBwYXRjaCAxMTk4MjEwOiB1c2luZyBldGh0b29sIGZvciBnaWdhYml0IE5JQ3MKCjIwMDUtMDYtMTMgMTk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmM6CgogICB1cGRhdGUgZm9yIHByZXZpb3VzIGNhY2hlX2hpbnQgbWV0aG9kCgoyMDA1LTA2LTEzIDE3OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBhbHdheSBwYXNzIGhpbnRzIHRvIGxvd2VyIGhhbmRsZXJzCgoyMDA1LTA2LTEzIDE3OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWFrZSBtaWJzLCBtaWJkaXJzIGFuZCBtaWJmaWxlcyBoYW5kbGluZyBjb25zaXN0ZW50OgogICAgIC0gJy1YWFgnIGFkZHMgWFhYIGJlZm9yZSBleGlzdGluZwogICAgIC0gJytYWFgnIGFkZHMgWFhYIGFmdGVyIGV4aXN0aW5nCiAgICAgICBOT1RFOiB0aGlzIHJlc3RvcmVzIG9yaWdpbmFsIGJlaGF2aW9yIG9mICcrJyB0byB0aGF0IG9mIDUuMC4xLiBBZnRlcgogICAgICAgICAgICAgNS4wLjIsIGlmIEkgcmVhZCB0aGUgY29kZSByaWdodCwgJysnIGJlaGF2aW91ciBvbiB0aGUgY21kIGxpbmUgYW5kCiAgICAgICAgICAgICBpbiBNSUJESVJTIHdhcyByZXZlcnNlZCBhbmQgbm90IGNvbnNpc3RlbnQgd2l0aCBoYW5kbGVfbWlic19jb25mLgoKMjAwNS0wNi0xMyAxNTozNCAgcnN0b3J5CgogICAqIFJFQURNRS50cnU2NDoKCiAgIG5ldyByZWFkIG1lIGZvciBUcnU2NAoKMjAwNS0wNi0xMyAxMjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlLmMsIGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2NvbHVtbnMuaCwgaWZYVGFibGVfY29sdW1ucy5oOgoKICAgUmVtb3ZlIG9ic29sZXRlIGlmVGFibGUgcmV3cml0ZS4KCjIwMDUtMDYtMTMgMTI6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBSdW4gdHJhcCBoYW5kbGVycyB1c2luZyAnc3lzdGVtKCknIHJhdGhlciB0aGFuICdleGVjdigpJywKICAgdG8gc3VwcG9ydCB0cmFwIGhhbmRsZXIgc2hlbGwgc2NyaXB0cy4KCjIwMDUtMDYtMTMgMTI6MTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBjb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHBhcnNlLmMsCiAgICAgc25tcFVEUElQdjZEb21haW4uYywgc25tcF9wYXJzZV9hcmdzLmMsIHN5c3RlbS5jCiwgd2luc2VydmljZS5jOgoKICAgR3VhcmQgYWdhaW5zdCBhc3NvcnRlZCBtYWxsb2MgZmFpbHVyZXMuCiAgIFJlcG9ydGVkIGJ5IEFuZHJlYXMgTW9yb2Rlci4KCjIwMDUtMDYtMTMgMTE6MzggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgYm9ndXMgaGFuZGxpbmcgb2YgemVyby13aWR0aCBoaW50cy4KICAgVGhlc2UgbWlnaHQgYmUgcG9pbnRsZXNzLCBidXQgdGhleSBhcmUgc3RyaWN0bHkgdmFsaWQuCiAgIChTZWUgUkZDIDI1NzksIFNlY3Rpb24gMy4xICgxKSkKCjIwMDUtMDYtMTMgMTA6NTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmMsCiAgICAgc25tcGxpYi9taWIuYzoKCiAgIFBvc3NpYmxlIG1lY2hhbmlzbSBmb3IgYWRkcmVzc2luZyBuYW1lc3BhY2UgY2xhc2hlcwogICAoaW4gcmVzcG9uc2UgdG8gTWF0dGhldyBCb2VobScgQXN0ZXJpc2sgcHJvYmxlbSkKCjIwMDUtMDYtMTAgMTY6MDQgIGhhcmRha2VyCgogICAqIG1pYnMvVURQLU1JQi50eHQ6CgogICB1cGRhdGUgZnJvbSBSRkM0MTEzCgoyMDA1LTA2LTEwIDE2OjAyICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3J1bjoKCiAgIGFwcGx5IHRlc3RpbmctcmZjMTIxMy1ydW4uZGlmZiBmcm9tIHBhdGNoIDEyMTc0NzU6IGJ1aWxkIGZpeGVzCgoyMDA1LTA2LTEwIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGUgdGhlIFVEUC1NSUIgdG8ganVzdCBwdWJsaXNoZWQgUkZDNDExMwoKMjAwNS0wNi0xMCAxNTo1NCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBhcHBseSB0ZXN0aW5nLXRlc3Rjb25mLmRpZmYgZnJvbSBwYXRjaCAxMjE3NDc1OiBidWlsZCBmaXhlcwoKMjAwNS0wNi0xMCAxNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBhcHBseSBhZ2VudC1oZWxwZXJzLW1ha2VmaWxlLmRpZmYgZnJvbSBwYXRjaCAxMjE3NDc1OiBidWlsZCBmaXhlcwoKMjAwNS0wNi0xMCAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgaW5pdCBoYW5kbGVyIGZvciBhZ2VudHhzb2NrZXQgZm9yIHN1YmFnZW50cyB0b28KCjIwMDUtMDYtMTAgMTA6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgWWV0IEFub3RoZXIgQXR0ZW1wdCB0byBmaW5kIHRoZSBjb3JyZWN0IHF1b3Rpbmcgb2YgY29uZmlndXJlIG9wdGlvbnMuCgoyMDA1LTA2LTEwIDA3OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBVcGRhdGUgdG8gdXNlIHRoZSByZW5hbWVkIGludGVybmFsIGFuZCBsaWJyYXJ5IHF1ZXJ5IEFQSSBjYWxscy4KCjIwMDUtMDYtMTAgMDc6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIFR3ZWFrIHRoZSBzcGVjaWZpY2FsbHkgYWdlbnQtaW50ZXJuYWwgcXVlcnkgcm91dGluZXMgdG8gdXNlIHRoZSBTTk1QCiAgIGxpYnJhcnkgdmVyc2lvbnMuCgoyMDA1LTA2LTEwIDA3OjI5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNb3ZlIChhbmQgcmVuYW1lKSBzZXNzaW9uLWJhc2VkICJpbnRlcm5hbCBxdWVyeSIgQVBJIGNhbGxzIGludG8gdGhlIFNOTVAKICAgbGlicmFyeSwgc28gdGhleSdyZSBhdmFpbGFibGUgYXMgYSBjb252ZW5pZW5jZSB0byBhbGwgU05NUCBhcHBsaWNhdGlvbnMuCgoyMDA1LTA2LTEwIDA1OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb3ZlIHNwZWNpYWwgaGFuZGxpbmcgZm9yICJpcCIgaW50ZXJmYWNlcyB0byBTVU5WMy1vbmx5IGNvZGUgYmxvY2suCiAgIE5vLW9uZSBjYW4gcmVtZW1iZXIgd2hhdCB0aGlzIHdhcyBpbnRlbmRlZCBmb3IsIGFuZCBpdCBicmVha3MKICAgTGludXggSVB2NiB0dW5uZWwgaW50ZXJmYWNlcy4KCjIwMDUtMDYtMTAgMDQ6MjMgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEJyaW5nIGF1dGhlbnRpY2F0aW9uL2VuY3J5cHRpb24gZmxhZ3MgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIGNvbW1hbmRzLgogICBJbiBmYWN0LCB0cmVhdHMgJy1BLy1hJyBhcyBlcXVpdmFsZW50LCBhbmQgdXNlcyB0aGUgdmFsdWUgdG8gZGlzdGluZ3Vpc2gKICAgYmV0d2VlbiBwcm90b2NvbHMgYW5kIHBhc3MgcGhyYXNlcy4gIChBbmQgc2ltaWxhcmx5IGZvciAtWC8teCkKCjIwMDUtMDYtMDkgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYnVnIDEyMDcwMjM6IHNubXBkIGNyYXNoIG9uIHRjcCBkaXNjb25uZWN0CgoyMDA1LTA2LTA5IDE3OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIG1vdmUgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSBzaXplIGNoZWNrcyB0byBzbm1wX3NldF92YXJfdmFsdWUKICAgICAtIHVzZSBzbm1wX3NldF92YXJfdmFsdWUgaW4gc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZQoKMjAwNS0wNi0wOSAxMTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIGFkZCBpcHY2IHN1cHBvcnQKCjIwMDUtMDYtMDkgMTE6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgcmVuYW1lIHBhcmFtLCB1cGRhdGUgZG9jcywgdG8gcmVkdWNlIGNvbmZ1c2lvbgoKMjAwNS0wNi0wOSAwNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29uZi5jOgoKICAgSW1wbGVtZW50IHBhcnNpbmcgb2YgdGhlICJhdCIgYW5kICJjcm9uIiBjb25maWcgZGlyZWN0aXZlcy4KICAgVGhlc2Ugc3RpbGwgZG9uJ3QgYWN0dWFsbHkgd29yaywgYnV0IHlvdSBjYW4ndCBoYXZlIGV2ZXJ5dGhpbmcuLi4uCgoyMDA1LTA2LTA5IDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb25mLmM6CgogICBGaXggcGFyc2luZyBvZiAicmVwZWF0IiBkaXJlY3RpdmUuCgoyMDA1LTA2LTA5IDA1OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvbmYuYywgc2NoZWRDb3JlLmg6CgogICBJdCB3b3VsZCBiZSB2YWd1ZWx5IGhlbHBmdWwgaWYgSSBrbmV3IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KICAgaG91cnMgYW5kIG1vbnRocywgYW5kIGhvdyBtYW55IG9mIGVhY2ggdGhlcmUgd2VyZSEKCjIwMDUtMDYtMDkgMDU6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIERpc2FibGUgdGVzdGluZyBjb2RlLgogICAoaW5pdGlhbGlzaW5nIHRoZSBsaWJyYXJ5IHRvbyBlYXJseSBicmVha3MgY29uZmlnIGZpbGUgcHJvY2Vzc2luZzotKCkKCjIwMDUtMDYtMDggMTU6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIHNraXAgaXB2NiBjb2RlIGlmIGlwdjYgbm90IGVuYWJsZWQ7IG5vdGVkIG9uIGNvZGVycyBieSBlaXJpayBub3JkYnJvZGVuCgoyMDA1LTA2LTA3IDEwOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc21hbi5oLCBkaXNtYW4vc2NoZWRDb25mLmMsCiAgICAgZGlzbWFuL3NjaGVkQ29uZi5oLCBkaXNtYW4vc2NoZWRDb3JlLmMsCiAgICAgZGlzbWFuL3NjaGVkQ29yZS5oLCBkaXNtYW4vc2NoZWRUYWJsZS5jLAogICAgIGRpc21hbi9zY2hlZFRhYmxlLmgsIGRpc21hbi9zY2hlZHVsZS5oOgoKICAgUHJlbGltaW5hcnkgKGFuZCBpbmNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGlzTWFuIFNjaGVkdWxlIE1JQi4KCjIwMDUtMDYtMDYgMDU6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIFV0aWxpdHkgcm91dGluZXMgZm9yIG1ha2luZyAiaW50ZXJuYWwgcXVlcmllcyIsIHRvIHJldHJpZXZlIG9yIGFzc2lnbgogICB2YWx1ZXMgZnJvbSBlbHNld2hlcmUgaW4gdGhlIGN1cnJlbnQgYWdlbnQuCgoyMDA1LTA2LTA2IDA1OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgUG9wdWxhdGUgY2FsbGJhY2sgUERVIHdpdGggZGVmYXVsdHMgZnJvbSB0aGUgc2Vzc2lvbiBzdHJ1Y3R1cmUuCiAgIFRoaXMgYWxsb3dzIGNvbW11bml0eS1iYXNlZCBQRFVzIHRvIGJlIHNlbnQgb3ZlciBhIGNhbGxiYWNrIHRyYW5zcG9ydC4KCjIwMDUtMDYtMDIgMTk6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWxheSBTTk1QdjMgRW5naW5lSUQgcHJvYmUgdW50aWwgbmVlZGVkCgoyMDA1LTA2LTAyIDE5OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseS9yZS1hcHBseSBmaXggZm9yIGJ1ZyAxMTAzNjQ0LCBGcmVlQlNEIG1lbW9yeSBsZWFrCgoyMDA1LTA2LTAyIDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGNhY2hlX2hhbmRsZXIuYywgbXVsdGlwbGV4ZXIuYywKICAgICBudWxsLmMsIHJlYWRfb25seS5jOgoKICAgYXBwbHkgcGF0Y2ggMTIxMDYzMjogUmVwbGFjZSBuZXRzbm1wX3NldF9hbGxfcmVxdWVzdHNfZXJyb3IKCjIwMDUtMDUtMzAgMTc6MjEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSRkMgNDA0NDogRkMtTUdNVC1NSUIKCjIwMDUtMDUtMzAgMTc6MTcgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIEN1cnJlbnQgSUFOQSB2ZXJzaW9uCgoyMDA1LTA1LTI3IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNvbW1pdCBtaXNzaW5nIHN0cnRva19yIGNoYW5nZXMgKmNvdWdoKgoKMjAwNS0wNS0yMyAxODo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BlcmxfdHJhcGQucGwsIHBlcmwvQVNOL0FTTi5wbSwKICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgc25tcGxpYi9zbm1wX2RlYnVnLmMKLCBzbm1wbGliL3NubXB2My5jOgoKICAgQXBwbGllZCBtaW5vciBidWcgZml4L2RvYyBwYXRjaGVzIGZyb20gVGhvbWFzIEFuZGVycyBpbiAjMTIwNjk4MgoKMjAwNS0wNS0yMyAxNjo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIFVzZSBta3N0ZW1wIGFwcHJvcHJpYXRlIHRvIGdlbmVyYXRlIHRlbXAgZmlsZXMKCjIwMDUtMDUtMjAgMTA6MDMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBCcmluZyAnLUgnIGluaXRpYWxpc2F0aW9uIGludG8gbGluZSB3aXRoIG5vcm1hbCBzdGFydHVwLgoKMjAwNS0wNS0xNiAxNTo1MCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgRG9uJ3QgYXV0by1idWlsZCBkZXBlbmRlbmNpZXMuICBTcGVjaWZ5IGEgbGlzdCBpbnN0ZWFkLgoKMjAwNS0wNS0xNiAxNTo0OSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIEEgYml0IG9mIHJlbnVtYmVyaW5nLgoKMjAwNS0wNS0xNiAxNTo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGF1dG9tYXR0ZWQgcmVsZWFzZSBwcm9kdWNlciBzY3JpcHQKCjIwMDUtMDUtMTEgMTk6NTEgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMDUtMDUtMTEgMTA6MDIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogaHRtbGhlbHAvTmV0LVNOTVAuaGhjLCBodG1saGVscC9OZXQtU05NUC5oaHAKLCBzY3JpcHRzL3JlYWRtZTJodG1sOgoKICAgQWRkIFJFQURNRS5hZ2VudC1taWJzIHRvIFdpbmRvd3MgYmluYXJ5CgoyMDA1LTA1LTExIDA1OjIwICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTW9yZSBSRkNzIHdpdGggTUlCcwoKMjAwNS0wNS0xMCAyMToxMyAgYWxleF9iCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mOgoKICAgc25tcGNvbmY6IEFsbG93IFNOTVBDT05GUEFUSCB0byBoYXZlIG11bHRpcGxlIHBhdGhzIGRlZmluZWQgc3VjaCBhcyB3aGVuIHRoZQogICBwZXJzaXN0ZW50IGZvbGRlciBpcyBpbmNsdWRlZC4gIHNubXBjb25mIHdpbGwgYWxzbyBkZXRlcm1pbmUgdGhlIGNvbmZpZ3VyZWQKICAgcGVyc2lzdGVudCBmb2xkZXIgYW5kIHByZXZlbnQgaXQgZnJvbSBiZWluZyB0cmVhdGVkIGFzIGEgcmVndWxhciBjb25maWd1cmF0aW9uCiAgIGZpbGUuCgoyMDA1LTA1LTEwIDIwOjQ0ICBhbGV4X2IKCiAgICogTkVXUzoKCiAgIEFkZCBmaXhlcyB0byBORVdTIGZvciBuZXh0IHJlbGVhc2UKCjIwMDUtMDUtMDkgMjE6MDcgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZToKCiAgIEF1dG91cGRhdGUKCjIwMDUtMDUtMDkgMjA6NTMgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFRoZSBrZXJuZWwgbGl2ZXMgaW4gL2Jvb3Qva2VybmVsL2tlcm5lbCBvbiByZWNlbnQgRnJlZUJTRCdzCgoyMDA1LTA1LTA5IDE5OjM1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS50eHQsCiAgICAgaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBiaW5hcnk6IEFkZCBwZXJzaXN0IGZvbGRlciB0byBTTk1QQ09ORlBBVEgKCjIwMDUtMDUtMDkgMTk6MDAgIGFsZXhfYgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wZC44LmRlZiwKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtUGVyc2lzdGVudCBmaWxlcyB3ZXJlIG5vdCBiZWluZyByZWFkIGF0IHN0YXJ0dXAgd2hlbiB1c2luZwogICBzbm1wLmNvbmYgcGVyc2lzdGVudERpcgogICAtVXBkYXRlIHBlcnNpc3RlbnQgc3RvcmFnZSBzZWN0aW9ucyBvZiBzbm1wX2NvbmZpZyBhbmQgc25tcGQKICAgbWFuIHBhZ2VzCgoyMDA1LTA1LTA5IDE4OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICB1c2UgbW9yZSBmbGV4aWJsZSBjc3MgZm9yIG1hcmt1cCBhbmQgYWxsb3cgYSBwYXNzZWQgaW4gZmlsZQoKMjAwNS0wNS0wOSAxODoxMiAgYWxleF9iCgogICAqIENPUFlJTkc6CgogICBBZGQgRmFiYXNvZnQgUiZEIFNvZnR3YXJlIChjKSBub3RpY2UKCjIwMDUtMDUtMDkgMTY6MzcgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgZGV0ZWN0IGV4dHJhIGFyZ3VtZW50cwoKMjAwNS0wNS0wOSAxNjozMyAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBzbm1wZ2V0ID0+IHNubXBkZgoKMjAwNS0wNS0wOSAxNjoyMSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFJGQyA0MDA4IGlzIE5BVC1NSUIKCjIwMDUtMDUtMDkgMTY6MjAgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBGaW5kIGRlY2xhcmF0aW9ucyBmb3Igc2lnaG9sZC9zaWdzZXQvc2lncGF1c2UKCjIwMDUtMDUtMDkgMTY6MTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEVuc3VyZSAwLXRlcm1pbmF0aW9uIG9mIHJlYWQgZmlsZSBkYXRhCgoyMDA1LTA1LTA5IDE2OjE2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBEZXRlY3QgdG9vIG1hbnkgZGVmaW5lZCBwZWVycy4gUHJvcGVybHkgcGFyc2Ugc3ltYm9saWMgcGVlcnMKCjIwMDUtMDUtMDkgMTY6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIE5lZWRlZCBleHRlcm5hbAoKMjAwNS0wNS0wOSAxNjoxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEZpeCBmb3JtYXQgd2FybmluZwoKMjAwNS0wNS0wOSAxNjowOSAgbmJhCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgRml4IGZvciBpbnN0YWxsaW5nIHJlbW90ZSBmcm9tIHNvdXJjZSBkaXIKCjIwMDUtMDUtMDkgMTY6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBGaXggZm9yIE5ldEJTRAoKMjAwNS0wNS0wOSAxNjowMSAgbmJhCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEdlbmVyYXRlZAoKMjAwNS0wNS0wOSAxNTo0NSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIEZpeGVzIGZvciBOZXRCU0QvRnJlZUJTRCBmb3Igc3dhcCBkYXRhCgoyMDA1LTA1LTA5IDE1OjE3ICBuYmEKCiAgICogYWNjb25maWcuaDoKCiAgIEZpeCBtaW5ndyB0ZXN0IHRoYXQgd2FzIG9ubHkgYXBwbGllZCB0byBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAwNS0wNS0wOSAxNToxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgRml4IGJvZ3VzIHByZXByb2Nlc3NvciBpZgoKMjAwNS0wNS0wOSAwNDo1OSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSWxsdXN0cmF0ZSBoYW5kbGluZyBvZiBjYWNoZWQgdGFibGVzIHVzaW5nIHRoZSB0YWJsZV9kYXRhIGhlbHBlci4KICAgKEFjdGl2YXRlIHVzaW5nICJtaWIyYyAtU2NhY2hlPXRydWUgLi4uIikKCjIwMDUtMDUtMDkgMDQ6NTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEV4dHJhY3QgcmVxdWlyZWQgdGFibGUgc3RydWN0dXJlcyB3aGVuIHByb2Nlc3NpbmcgUm93U3RhdHVzIGFzc2lnbm1lbnRzLgoKMjAwNS0wNS0wOSAwNDoxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgRml4IHRhYmxlIG1heC9taW4gY29sdW1uIHJlZ2lzdHJhdGlvbi4KCjIwMDUtMDUtMDYgMTU6MTQgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZToKCiAgIEF1dG91cGRhdGUKCjIwMDUtMDUtMDYgMTU6MTEgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFBsYWNhdGUgYXV0b2NvbmYyNTkgYnkgdGVzdGluZyBhbmQgaW5jbHVkaW5nIDx2bS92bS5oPiBiZWZvcmUgdGVzdGluZwogICA8dm0vc3dhcF9wYWdlci5oPgoKMjAwNS0wNS0wNSAyMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEwNjQ0MyBmcm9tIHRvbGdhIGNleWxhbiB0byB1c2UgYSBwcm9wZXIgcmV0dXJuIGNvZGUgY2hlY2sgZm9yIGdldEtzdGF0SW50CgoyMDA1LTA1LTA1IDIwOjA0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBBcHBsaWVkIHBhdGNoICMxMTA5NzEyIHRvIGZpeCBWUEFUSCBmb3IgcmMgZmlsZXMgb24gY3lnd2luCgoyMDA1LTA1LTA1IDE5OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBQYXRjaCAjMTExMDU3MSBmcm9tIEthdHN1aGlzYSBBQkUgdG8gc2V0IGlwdjYgdGNwIHNvY2tldHMgdG8gaXB2NiBvbmx5IGlmIHBvc3NpYmxlCgoyMDA1LTA1LTA1IDE5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBBcHBsaWVkIHBhcnQgb2YgcGF0Y2ggIzExMTA2MTAgZnJvbSBQZXRlciBCcmVpdGVubG9obmVyIGZvciBjb21waWxlciB3YXJuaW5ncwoKMjAwNS0wNS0wNSAxOToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLAogICAgIHNubXBsaWIvbWliLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMTIzMjQyIGZyb20gTWlrZSBNY0hlbnJ5IHRvIGFkZCBtaWIyc2NoZW1hIGNvbXBsaWFudCBvdXRwdXQgdG8gc25tcHRyYW5zbGF0ZQoKMjAwNS0wNS0wNSAxOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMTI0NTY5IGZyb20gTWFyY3VzIE1laXNzbmVyIHRvIGR5bmFtaWNhbGx5IGRlY2lkZSBob3cKICAgbWFueSBjcHVzIHRoZXJlIG9uIGxpbnV4IGFuZCB0byBiZXR0ZXIgcGFyc2UgaW5mb3JtYXRpb24gYWJvdXQgdGhlbS4KICAgICAtIG1vZGlmaWVkIHRvIGJlIGNvbXBsaWFudCB3aXRoIEFOU0kgYW5kIHRoZSBjb2Rpbmcgc3R5bGUuCgoyMDA1LTA1LTA1IDE5OjExICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUGF0Y2ggIzEwNjIxMTQgYnkgInNubXBwb3J0YWwiIHRvIGNsZWFuIHVwIGEgZmV3IG1lbW9yeSBsZWFrcy4KCjIwMDUtMDUtMDUgMDc6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjMTExNzI3MSAodmFyaWFudCkgLSBjaGVjayB0aGUgYnVmZmVyIGxlbmd0aCB3aGVuIGZvcm1hdHRpbmcKICAgYW4gdXB0aW1lIHN0cmluZyAodGhvdWdoIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGV4aXN0aW5nIEFQSSBjYWxsKS4KCjIwMDUtMDUtMDUgMDU6MDcgIGR0czEyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgSWdub3JlIGFkZGl0aW9uYWwgZ2VuZXJhdGVkIGNsaWVudCBtYW4gcGFnZXMKCjIwMDUtMDUtMDQgMjA6NTggIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZToKCiAgIEF1dG91cGRhdGUKCjIwMDUtMDUtMDQgMjA6NTYgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgYWNjdW11bGF0ZWQgd2lzZG9tIG9mIHRoZSBwcmV2aW91cyBBQ19IRUFERVJDSEVDS1MgZm9yCiAgIEhBVkVfTkVUSU5FVF9JUF9ILCBIQVZFX05FVElORVRfSUZfSCwgSEFWRV9ORVRJTkVUX0lQX0lDTVBfSCBhbmQKICAgSEFWRV9ORVRJTkVUX1VEUF9IIChpbiBhZGRpdGlvbiB0byB0aGUgb25lcyBhbHJlYWR5IHByZXNlbnQpLgogICBUaGlzIHVuYnJlYWtzIHRoZSBidWlsZCBvbiBGcmVlQlNEIDUuMyBhbmQgNC4xMCAoYnV0IHRoZSBsYXR0ZXIKICAgc3RpbGwgaXNuJ3QgcGxheWluZyB3aXRoIHRoZSBmdWxsIHZtX3N3YXAgZGVjaykuCgoyMDA1LTA1LTA0IDIwOjQ4ICBkcmllaHVpcwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgRnJlZUJTRCA1LjMgaXMgcmVhbGx5IHVuaGFwcHkgYWJvdXQgZ2V0dGluZyBfS0VSTkVMIGRlZmluZWQuIEJ5IGZvcmNpbmcKICAgSUZORVRfTkVFRFNfS0VSTkVMIG9mZiB3ZSBmaXggdGhhdCAoYWZ0ZXIgYWxsLCBkZWZpbmluZyBfS0VSTkVMIHJlYWxseQogICBpcyBhIGdyb3NzIGhhY2sgZm9yIHBsYXRmb3JtcyB0aGF0IGRvbid0IHByb3Blcmx5IGV4cG9ydCBzeXN0ZW0KICAgaW50ZXJuYWxzIC0tIGZhbW91cyBsYXN0IHdvcmRzOi0pCgoyMDA1LTA1LTA0IDExOjQ4ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFBhdGNoICMxMTI0NjUyOiBvcHRpb25zIHRvIGV4cGxpY2l0bHkgaW5jbHVkZS9leGNsdWRlIGVsZiBhbmQgYnppcCBsaWJyYXJpZXMKCjIwMDUtMDUtMDQgMTE6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFBhdGNoICMxMDQyNDQ3IC0gY2xvbmUgemVyby1sZW5ndGgsIG5vbi1OVUxMLXBvaW50ZXIgc3RyaW5ncy4KCjIwMDUtMDUtMDQgMDg6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoICMxMDUxMDAxIC0gc2tpcCB1bm5lY2Vzc2FyeSBjYWxsIHRvICdhdXRvX25saXN0JyB1bmRlciBOZXRCU0QKCjIwMDUtMDUtMDQgMDg6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaDoKCiAgIFBhdGNoICMxMDk2NDc5IC0gZml4IGRlY2xhcmF0aW9uIG9mIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuCgoyMDA1LTA1LTA0IDA4OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIFBhdGNoICMxMDk2NDgzIC0gZml4IGEgbWlub3IgaW5jb25zdGlzdGVuY3kKCjIwMDUtMDUtMDQgMDg6MjIgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFBhdGNoICMxMTAzNzUxIC0gc2tpcCBlZGl0b3IgYmFja3VwcyB3aGVuIGxvYWRpbmcgTUlCIGZpbGVzLgoKMjAwNS0wNS0wNCAwODowNyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjMTEwOTcxOTogUmVtb3ZlIChhcHBhcmVudGx5KSByZWR1bmRhbnQgcXVvdGluZyBvZiBjb25maWd1cmUgb3B0aW9ucy4KICAgVGhpcyBxdW90aW5nIHdhcyBpbnRyb2R1Y2VkIGVhcmx5IGluIHRoZSB2NSBsaWZldGltZSB0byBzdXBwb3J0ICJvcHRpb25zCiAgIGNvbnRhaW5pbmcgc3BhY2VzIiAoc2VlIHJldmlzaW9uIDUuMjYpLiAgU2ltcGxlIHRlc3Rpbmcgc2VlbXMgdG8gaW5kaWNhdGUKICAgdGhhdCBpdCdzIG5vIGxvbmdlciBuZWVkZWQsIGFuZCBpdCBicmVha3MgQUlYIChwb3NzaWJseSBhbW9uZyBvdGhlcnMpLCBzbwogICBsZXQncyB0cnkgd2l0aG91dCBpdC4KICAgICBJZiBuby1vbmUgY29tcGxhaW5zLCB0aGlzIHBhdGNoIG1heSBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIG90aGVyIGJyYW5jaGVzCiAgIGFzIHdlbGwuCgoyMDA1LTA1LTA0IDA3OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBQYXRjaCAjMTExODEzMiAtIGhhbmRsZSBkaXNhcHBlYXJpbmcgTGludXggcHJvY2Vzc2VzLgoKMjAwNS0wNS0wNCAwNjo0MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeGVkICNpZmRlZiB0eXBvCgoyMDA1LTA1LTA0IDA2OjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBQYXRjaCAjMTExNzI3NiAtIHR3ZWFrIEVWUF9EaWdlc3RGaW5hbCBwYXJhbWV0ZXJzIHRvIG1hdGNoIGV4cGVjdGVkIHR5cGVzLgoKMjAwNS0wNS0wNCAwNjowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYzoKCiAgIFBhdGNoICMxMTE3MjY1IC0gb3BlbiBkZXZpY2VzIHdpdGggTkRFTEFZIHdoZW4gcG9zc2libGUuCiAgIEF2b2lkcyBhZ2VudCBoYW5naW5nIG9uIG1pc3NpbmcgcmVtb3ZhYmxlIGRldmljZXMuCgoyMDA1LTA1LTAzIDE4OjI2ICBhbGV4X2IKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBXaW4zMjogQXBwbHkgcGF0Y2ggMTE1MzI3MSBieSBFa2tlaGFyZCBEb21uaW5nIGZvciBzbm1wZCBwYXNzX3BlcnNpc3Qgc3VwcG9ydAogICBmb3IgTVNWQy4gIEFwcGx5IHBhdGNoIGJhc2VkIG9uIDExNTMyNzEgZm9yIHBhc3Mgc3VwcG9ydCBmb3IgTVNWQyBhbmQgTWluR1cuCgoyMDA1LTA1LTAzIDEwOjM4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZjoKCiAgIFVzZSB0aGUgd2F0Y2hlZCBzY2FsYXIgaGVscGVyIChyYXRoZXIgdGhhbiBzcGVjaWFsaXNlZCBpbnN0YW5jZSBoZWxwZXJzKQogICBmb3IgaW1wbGVtZW50aW5nIGludGVnZXItYmFzZWQgc2NhbGFyIG9iamVjdHMuICBQaWNrcyB1cCBvbiB1bnNpZ25lZAogICBpbnRlZ2VyIG9iamVjdHMsIGFzIHdlbGwgYXMgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiByZWFkLW9ubHkvcmVhZC13cml0ZQogICBNSUIgZGVmaW5pdGlvbnMuCgoyMDA1LTA1LTAzIDEwOjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBJbGx1c3RyYXRlIGhhbmRsaW5nIG9mIGNhY2hlZCB0YWJsZXMgdXNpbmcgdGhlIGl0ZXJhdG9yIGhlbHBlci4KICAgKEFjdGl2YXRlIHVzaW5nICJtaWIyYyAtU2NhY2hlPXRydWUgLi4uIikKCjIwMDUtMDUtMDMgMTA6MjMgIGR0czEyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBTdGFzaCBsb29rdXAgZGVidWdnaW5nIGNvZGUuCgoyMDA1LTA1LTAzIDEwOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgQ29udmVuaWVuY2Ugc2luZ2xlLWNhbGwgQVBJcyBmb3IgaW50ZWdlci1iYXNlZCB3YXRjaGVkIHNjYWxhcnMuCiAgIChNb2RlbGxlZCBvbiB0aGUgZXhpc3RpbmcgaW5zdGFuY2UtYmFzZWQgY2FsbHMpLgoKMjAwNS0wNS0wMyAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBQcm92aWRlIGEgKHRyaXZpYWwpIGdldF97Zmlyc3QsbmV4dH0gQVBJLgogICBOb3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGluIGl0c2VsZiwgYnV0IHNob3VsZCBhaWQgdGhlCiAgIHRyYW5zaXRpb24gdG8gYSBjb250YWluZXItYmFzZWQgdGFibGVfZGF0YSBzdHlsZS4KCjIwMDUtMDUtMDIgMjA6NDIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBBZGQgbGltaXRzLmggaGVhZGVyIGZpbGUKCjIwMDUtMDUtMDIgMTg6NDYgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXAvTWFrZWZpbGUuaW4sIGxpYnNubXAvbGlic25tcC5kc3AsCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBXaW4zMiBNU1ZDIHN1cHBvcnQgZm9yIGZkX2V2ZW50X21hbmFnZXIuW2NoXQoKMjAwNS0wNS0wMSAxMzo0NyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEZpeCBzeXNEZXNjciBzdXBwb3J0IGZvciBNaW5HVwoKMjAwNS0wNS0wMSAwOToyMCAgYWxleF9iCgogICAqIGxvY2FsL3Bhc3N0ZXN0LnBsOgoKICAgQWRkZWQgUGVybCB2ZXJzaW9uIG9mIC9sb2NhbC9wYXNzdGVzdCBzaGVsbCBzY3JpcHQKCjIwMDUtMDQtMzAgMjA6MzggIGFsZXhfYgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBDeWd3aW46IEFkZCBtaXNzaW5nIHJlZ2lzdHJ5IHN1cHBvcnQgZm9yIFNOTVBDT05GUEFUSCBldGMuCgoyMDA1LTA0LTMwIDIwOjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHBlcmwvU05NUC9SRUFETUU6CgogICAtUmVtb3ZlICdkZWZpbmUgV0lOMzInIGZvciBDeWd3aW4gYW5kIGNoYW5nZSBpZmRlZnMgdG8gY2hlY2sgZm9yIGVpdGhlcgogICBXSU4zMiBvciBjeWd3aW4uCiAgIC1BZGQgc2VjdGlvbiB0byBSRUFETUUud2luMzIgZGVzY3JpYmluZyB0aGUgdmFyaW91cyBXaW5kb3dzIGRlZmluZXMuCiAgIC1BZGQgbm90ZSB0byBSRUFETUUgZmlsZXMgYWJvdXQgc3BhY2VzIGluIGZvbGRlciBuYW1lcyB3aGVuIGNvbXBpbGluZy4KCjIwMDUtMDQtMzAgMTg6MzYgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJoZWxwZXJzLzogTWFrZWZpbGUuaW4sIGxpYmhlbHBlcnMuZHNwOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcwoKMjAwNS0wNC0yOSAxMjoxNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoICMxMTQ5NDIwIC0gdXNlIG5ldyBleHRlcm5hbCBmZCBoYW5kbGVyIHJvdXRpbmVzLAogICB0byBwYXZlIHRoZSB3YXkgZm9yIG1vcmUgaW50ZWdyYXRlZCB0cmFwIGhhbmRsZXJzLgoKMjAwNS0wNC0yOSAxMjoxMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaDoKCiAgIFBhdGNoICMxMTQ5NDIwIC0gc2VwYXJhdGUgZXh0ZXJuYWwgZmQgaGFuZGxpbmcgb2ZmIGludG8KICAgYSBkaXN0aW5jdCBsaWJyYXJ5IG1vZHVsZS4gIFN1Ym1pdHRlZCBieSBTdGVuIEouIE9sc3NvbgoKMjAwNS0wNC0yOSAxMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgUGF0Y2ggIzExNTQ0ODggLSBvcHRpb24gdG8gc3BlY2lmeSBwcmlvcml0eSBvZiAicGFzcyIgcHJvY2Vzc2luZwoKMjAwNS0wNC0yOSAxMTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBBcHBseSBwYXRjaCAjMTE1NTMzNyAtIGZpeCBkaXNrSU8gYXZlcmFnZSBzdXBwb3J0IGZvciBGcmVlQlNENQoKMjAwNS0wNC0yNyAyMDoyMiAgYWxleF9iCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBXaW4zMiBNU1ZDOiBBYm9ydCBjb21waWxlIGlmIGEgc3BhY2UgaXMgZGV0ZWN0ZWQgaW4gdGhlIGJhc2UgZm9sZGVyCiAgIHdoZW4gY29tcGlsaW5nLgoKMjAwNS0wNC0yNyAyMDoxMCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgTWFzc2l2ZSBkZWJ1Z2dpbmcgb2YgbWVtb3J5IGxlYWtzLiAgSXQgaXMgbm93IG1lbW9yeS1sZWFrIGZyZWUhCgoyMDA1LTA0LTI3IDIwOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmcmVlIHRoZSBzdWItbmFtZSBpZiBub3QgYXR0YWNoZWQgdG8gdGhlIHBhcmVudCBzdHJ1Y3R1cmUuCgoyMDA1LTA0LTI3IDE4OjU1ICBhbGV4X2IKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDeWd3aW46IFJlcGxhY2UgUElEX1pPTUJJRSByZWZlcmVuY2VzIGFzIHRoZSBmbGFnIHdhcyByZW1vdmVkIGZyb20KICAgQ3lnd2luIGluIG1pZCBKYW4gMjAwNS4KCjIwMDUtMDQtMjYgMTg6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAtIHN5bmMgc29tZSBjb21tZW50cwogICAtIGZpeCBoYW5kbGluZyBvZiBPSURzIGluIHJvd19jb3B5IGNvZGUsIG5vdGVkIG9uIElSQyBieSBkYXZlal8KCjIwMDUtMDQtMjUgMTI6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICB1cGRhdGUgdGFibGVfaXRlcmF0b3IgdG8gdXNlIHZhbGlkX2NvbHVtbiBpbmZvCgoyMDA1LTA0LTIyIDExOjE4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbXByb3ZlIGhhbmRsaW5nIG9mIG5vbi1pbnRlZ2VyLWJhc2VkIG9iamVjdHMgaW4gdGFibGVfZGF0YSB0ZW1wbGF0ZSBjb2RlLgoKMjAwNS0wNC0yMiAxMToxMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgSWYgYW4gaW5zdGFuY2UtYmFzZWQgaGFuZGxlciByZXR1cm5zIGFuIGVycm9yIGZvciBhIEdldE5leHQgcmVxdWVzdCwKICAgd2UgbmVlZCB0byBza2lwIG9uIHRvIHRoZSBuZXh0IHZhbGlkIGluc3RhbmNlLgoKMjAwNS0wNC0yMiAxMDo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZmFpbHVyZSB0byBjcmVhdGUgaW5pdGlhbCB1c2VyLgoKMjAwNS0wNC0yMSAxMjo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgZG9uJ3QgdHJhY2sgZGVidWcgc3RhdHMgYnkgZGVmYXVsdDsgYWRkIHN0YXRzIHByb3RvdHlwZXMKCjIwMDUtMDQtMjEgMTA6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGFwcGx5IHBhdGNoIDEwODUyNDM6IEFkZCA2NC1iaXQgY291bnRlcnMgdG8gZGlza0lPVGFibGUKCjIwMDUtMDQtMjEgMTA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGluaXQgc3RhdCBwdHIgdG8gbnVsbAoKMjAwNS0wNC0yMSAxMDoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMKOgoKICAgLSBzdGF0aWMgZGVsZXRlX2R1cGxpY2F0ZXMgLT4gcHVibGljIG5ldHNubXBfY2FsbGJhY2tfY2xlYXJfY2xpZW50X2FyZwogICAtIHRhYnMgdG8gc3BhY2VzCgoyMDA1LTA0LTIxIDEwOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYwo6CgogICBhZGQvdXNlIGNhbGxiYWNrIHByaW9yaXR5IG1hY3JvcwoKMjAwNS0wNC0yMSAxMDowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgYWRkIGRlYnVnIHRva2VuIGV4Y2x1c2lvbgoKMjAwNS0wNC0yMSAwOTozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIHNraXAgZXhjbHVkZWQgdG9rZW5zICh0aWwgbWliIGlzIHVwZGF0ZWQpCgoyMDA1LTA0LTIwIDIzOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB1cGRhdGUgZm9yIGNoYW5nZSB0byBjdHggaW5pdCBkZWZhdWx0CgoyMDA1LTA0LTIwIDIzOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIGNvZGUgZm9yIERFRlZBTHMgaW4gY3R4IGluaXQKCjIwMDUtMDQtMjAgMjM6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIGRlZmF1bHQgdG8gZ2VuZXJhdGUgY3R4IGluaXQKCjIwMDUtMDQtMjAgMTk6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGFkZCBub3RlIG9uIGluZGV4IGF0dHJpYnV0ZXMgYWxyZWFkeSB0ZXN0ZWQKCjIwMDUtMDQtMjAgMTg6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGZpeCBjb21tZW50cwogICAtIHJldmFtcCBjaGVja19pbmRleGVzIHRvIGRvIGJhc2ljIHZhbGlkYXRpb24gYmVmb3JlIGNhbGxpbmcgdXNlciBmdW5jCiAgIC0gZXhwbGljaXQgbm90IHdyaXRhYmxlIGNhc2UgZm9yIGluZGV4L3JlYWQtb25seSB2YXJzIGluIHNldCBjb2xzCgoyMDA1LTA0LTIwIDE4OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBhZGQgY29tbWVudHMgaW4gaW5kZXggaGFuZGxpbmcgZnVuY3Rpb24gaGVhZGVycwoKMjAwNS0wNC0yMCAxODo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLSByZW1vdmUgaGFyZGNvZGVkIHRhYmxlIG5hbWUKICAgLSByZW1vdmUgcmVkdW5kYW50IHByb3RvdHlwZQogICAtIGFkZCBzb21lIGNvbW1lbnRzCiAgIC0gZGVmaW5lIHByb3RvdHlwZSBiZWZvcmUgdXNlCiAgIC0gZml4IGJhY2sgZnVuY3Rpb24gbmFtZQogICAtIGZpeCB0b28gbWFueSBwYXJhbXMgZm9yIGZ1bmN0aW9uCgoyMDA1LTA0LTIwIDE4OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbm9kZS12YWxpZGF0ZS5tMmksCiAgICAgbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIC0gYnJlYWsgdmFsdWUgdmFsaWRhdGlvbiBvdXQgb2YgdmFyYmluZC12YWxpZGF0ZQogICAtIGNvbXBhcmUgdmFsdWVzL2xlbmd0aHMgZGlyZWN0bHksIGluc3RlYWQgb2YgY2FsbGluZyBmdW5jdGlvbgogICAtIGRldGVjdC9oYW5kbGUgcmFuZ2VzIHRoYXQgYXJlIHJlYWxseSBzaW5nbGUgdmFsdWVzCgoyMDA1LTA0LTIwIDE4OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgZml4IGRpcmVjdG9yeSBjb3B5CgoyMDA1LTA0LTIwIDE1OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBmcmVlIHN0cmluZyBwYXNzZWQgdG8gcGVybCBhZnRlciBpdCdzIHBhc3NlZAoKMjAwNS0wNC0yMCAxNDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmg6CgogICBhZGQgd2F0Y2hlZCBleGFtcGxlCgoyMDA1LTA0LTIwIDE0OjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLAogICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIC0gYWRkIGV4YW1wbGUgc3RyaW5nIHRvIG1pYgogICAtIGFkZCBleGFtcGxlIG9mIGEgd2F0Y2hlZCBzdHJpbmcKCjIwMDUtMDQtMTkgMTY6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQoKMjAwNS0wNC0xOCAxODoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIHF1aWV0IGNvbXBpbGVyICglZCAtPiAlbGQpCgoyMDA1LTA0LTE4IDE4OjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICAtIGZpeGVzIGZvciBjcmVhdGVfZmV3ZXJfZmlsZXMgc2V0dGluZwogICAtIGRlZmluZSB0YWJsZSBuYW1lIG9uY2UsIGF0IHRvcCwgZm9yIHF1aWNrZXIgdXBkYXRpbmcKCjIwMDUtMDQtMTggMTg6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgIC0gYWRkIHRvcC90YWJsZSBsZXZlbCBzaHV0ZG93biBmdW5jdGlvbnMKICAgLSBkZWZpbmUgdXNlciBjb250ZXh0CgoyMDA1LTA0LTE4IDE4OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgLSB1c2UgbmV3IG0yY19kYXRhX2NhY2hlIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgZ2VuZXJhdGUgY2FjaGUgY29kZQogICAtIGFkZCBmdW5jdGlvbiB0byBnZXQgdGFibGUgY29udGFpbmVyCiAgIC0gbW9zdCBjYWNoZV8qIGZ1bmN0aW9ucyByZW5hbWVkIHRvIGNvbnRhaW5lcl8qOyByZW1haW5pbmcgY2FjaGUgdmVyc2lvbnMKICAgICBjYWxsIGNvbnRhaW5lciB2ZXJzaW9ucwogICAtIGFkZCB0YWJsZS9jb250YWluZXIgc2h1dGRvd24gZnVuY3Rpb25zCgoyMDA1LTA0LTE4IDE4OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgbW92ZSBpbmRleGVzX3NldCByZWFkbWUgaGVyZSAoZnJvbSBjb250YWluZXItY2FjaGVkKQoKMjAwNS0wNC0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICAtIHF1aWV0IGNvbXBpbGVyICglZCAtPiAlbGQpCiAgIC0gcmVtb3ZlIGhhcmRjb2RlZCBub2RlIG5hbWUKCjIwMDUtMDQtMTggMTg6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gcmV2YW1wIGRlZmF1bHRzIGhhbmRsaW5nCiAgICAgLSBnZW5lcmF0ZSBkZWZhdWx0cyBpbiB0b3AsIGluc3RlYWQgb2Ygc2V0dXBfdGFibGUKICAgICAtIGFsd2F5cyB3cml0ZSBkZWZhdWx0cywgc28gbmV3IG9wdGlvbnMgYXBwZWFyIGZvciB1c2VyCiAgICAgLSBuZXcgb3B0aW9uczogZGF0YV9jYWNoZSwgZGF0YV9zcGFyc2UKICAgICAtIG1vcmUgaW50ZXJhY3RpdmUgcXVlc3Rpb25zOgogICAgICAgc2tpcCBtYXBwaW5nLCBzcGFyc2UsIHVuY2FjaGVkIGNvbnRhaW5lciwgZ2VuZXJhdGUgbWFrZWZpbGUvYWdlbnR4CgoyMDA1LTA0LTE4IDE3OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICB0d2VhayBleGNsdXNpb24gb2YgbWFwcGluZyBmdW5jdGlvbnMKCjIwMDUtMDQtMTggMTc6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3RhYmxlX3NhdmVfZGVmYXVsdHMubTJpOgoKICAgbmV3IG0yaSB0byBzYXZlIGFsbCB0YWJsZSBkZWZhdWx0cwoKMjAwNS0wNC0xOCAxNzo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC0gcmV2YW1wIGRlZmF1bHRzIGhhbmRsaW5nCiAgICAgLSBnZW5lcmF0ZSBkZWZhdWx0cyBpbiB0b3AsIGluc3RlYWQgb2Ygc2V0dXBfdGFibGUKICAgICAtIGFsd2F5cyB3cml0ZSBkZWZhdWx0cywgc28gbmV3IG9wdGlvbnMgYXBwZWFyIGZvciB1c2VyCgoyMDA1LTA0LTE4IDE3OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgLSBjaGVjayBmb3IgYmFkIGhkciBsZW4KICAgLSBkb24ndCBmcmVlIE5VTEwgcHRyCgoyMDA1LTA0LTE4IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSB1c2UgbmFtZWQgdmFycyBpbnN0ZWFkIG9mIHBvc2l0aW9uYWwsIGZvciBjbGFyaXR5CiAgIC0gdHdlYWtzIHRvIGNvcHkgdXBkYXRlZCBkZWZhdWx0cyBmaWxlcwoKMjAwNS0wNC0xNSAxNzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIuaDoKCiAgIGFkZCBjb25maWdfYWRkX21pYgoKMjAwNS0wNC0xNCAxODoxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNS0wNC0xNCAxNzoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG1vdmUgZ2VuZXJhdGlvbiBvZiBlbXB0eSBpbmNsdWRlcyBvdXRzaWRlIG9mIGFnZW50IGVuYWJsZWQgY29uZGl0aW9uYWwKCjIwMDUtMDQtMTMgMjI6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmk6CgogICB1cGRhdGUgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGlubGluZSB3L2V2ZXJ5b25lIGVsc2UKCjIwMDUtMDQtMTMgMjI6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGdlbmVyYXRlIGluZGV4IGNoZWNrIHJvdXRpbmVzIGlmIHRhYmxlIHBlcnNpc3RlbnQgaXMgc2V0CiAgIC0gZG9uJ3QgcmVmZXJuY2Ugc2V0X2NvbHVtbnMgdW5sZXNzIHRhYmxlIHNldHRhYmxlCiAgIC0gZG9uJ3QgY2hlY2svaW5zZXJ0IG5ldyByb3dzIHVubmxlc3Mgcm93IGNyZWF0aW9uIGlzIHNldAoKMjAwNS0wNC0xMyAyMjo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1kYXRhLXNldC5tMmMKLCBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gZ2VuZXJhdGUgaW5kZXggY2hlY2sgcm91dGluZXMgaWYgdGFibGUgcGVyc2lzdGVudCBpcyBzZXQKICAgLSBtb3ZlIGluZGV4IGNoZWNrIGZ1bmN0aW9ucyB0byBkYXRhIGFjY2VzcyBmaWxlIHNvIHRoZXkgY2FuIGJlIHVzZWQgYnkKICAgICB0aGUgcGVyc2lzdGVuY2Ugcm91dGluZXMKCjIwMDUtMDQtMTMgMDk6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi5oLCBpcC1mb3J3YXJkLW1pYi5oLCBpcC1taWIuaAo6CgogICBhZGQgYXBwcm9wcmlhdGUgbWlicyB0byBkZWZhdWx0IGxvYWQgbGlzdAoKMjAwNS0wNC0wOCAxMDozOCAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGFuZ2UgaW5kZXggYW5kIHJpbmRleCBkZWZpbmVzIGZvciBNaW5HVyB0byBmaXggY29tcGlsZSBwcm9ibGVtLgoKMjAwNS0wNC0wNyAxOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIHN5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gYWRkIGFwaSBmb3IgcmVmZXJlbmNlIGNvdW50aW5nCiAgIC0gYWRkIGFwaSB0byBmaW5kIHJvdyBmcm9tIHRhYmxlIG1pYiBpbmRleCBzdHJ1Y3QKCjIwMDUtMDQtMDcgMTg6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBwYXNzIGluIGhpbnQgdG8gZ2V0X2ZpcnN0IGlmIHNvcnRlZCAoc3VnZ2VzdGVkIGJ5IE1pa2UgVGhhdGNoZXIgb24gY29kZXJzKQoKMjAwNS0wNC0wNyAxMzowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIGRvbid0IGRpc2FibGUgYWxsIGZpbGVsb2dzIHdoZW4gYSBuZXcgb25lIGlzIGVuYWJsZWQuCiAgIC0gYWdhaW4gd2l0aCB0aGUgQysrIGNvbW1lbnRzLCBzbyB0aGlzIGlzIHJlLXRob3VnaHQgYmVmb3JlIDUuMwoKMjAwNS0wNC0wNiAxMjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGV4Y2x1ZGUgY3ZzIElkIGxpbmVzIGZyb20gZGlmZgoKMjAwNS0wNC0wNiAxMTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHJlbW92ZSBleHRyYW5lb3VzIDsKCjIwMDUtMDQtMDYgMTE6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBhZGQgbWlzc2luZyBjb21tZW50IGNsb3NlCgoyMDA1LTA0LTA2IDExOjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgcGFyZW50LXNldC5tMmk6CgogICAtIGFkZCBmdW5jdGlvbiB0byBnZXQgY29udGFpbmVyIHNpemUKICAgLSB0cmFjayB0YWJsZSBsZXZlbCBkaXJ0eSBmbGFnIGZvciBzZXR0YWJsZSB0YWJsZXMKICAgLSBjaGVjayBkaXJ0eSAmIHN1Y2Nlc3MgdG8gY2FsbCBzbm1wX3N0b3JlIGZvciBzZXR0YWJsZSBwZXJzaXN0ZW50IHRhYmxlcwoKMjAwNS0wNC0wNSAxMjo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgLSB1cGRhdGUgaW50ZXJhY3RpdmUgc2V0dXAgdG8gcHJvbXB0IGZvciBwZXJzaXN0ZW50IHN0b3JlCgoyMDA1LTA0LTA1IDEyOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmM6CgogICByZW1vdmUgb2xkIGNvZGUgbm90IHVzZWQgZm9yIHRoZSBjb250YWluZXIgdmVyc2lvbgoKMjAwNS0wNC0wNSAxMjozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF90YWJsZS5tMmksCiAgICAgbWZkLWludGVyZmFjZS5tMmMsIG1mZC1wZXJzaXN0ZW5jZS5tMmksIG1mZC10b3AubTJjCjoKCiAgIC0gbW92ZSBwZXJzaXN0ZW50IHN0b3JlIGNvZGUgdG8gaXRzIG93biBmaWxlCiAgIC0gdXBkYXRlIGludGVyYWN0aXZlIHNldHVwIHRvIHByb21wdCBmb3IgcGVyc2lzdGVudCBzdG9yZQogICAtIG1vdmUgc2hvdWxkX3NhdmUoKSBvdXQgb2YgaW50ZXJmYWNlIGNvZGUsIGludG8gKlRhYmxlLmMKICAgLSBsb2cgZXJyb3IgaWYgbm8gY29sdW1ucyBmb3VuZCBkdXJpbmcgcmVzdG9yZQoKMjAwNS0wNC0wNCAxNToxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMDUtMDQtMDQgMTQ6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBjbGVhciBkdXBsaWNhdGVzIHNvIHRoZXkgYXJlbid0IGRvdWJsZS1mcmVlZAoKMjAwNS0wNC0wMSAxMzo1OCAgcnN0b3J5CgogICAqIGRpc3Qvc25tcHRyYXBkLWluaXQuZDoKCiAgIG5ldyBzdGFydHVwIHNjcmlwdAoKMjAwNS0wNC0wMSAwMzowNiAgbmJhCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDUtMDMtMzEgMTk6MDYgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQoKMjAwNS0wMy0zMSAxODoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBtZW50aW9uIEFFUyB0b28KCjIwMDUtMDMtMzEgMTc6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIGNhbGwgc25tcF9zaHV0ZG93bgoKMjAwNS0wMy0zMSAxNzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIGFkZCByZXN1bHQgY29kZSB0byBzbm1wX2xvZyBtZXNzYWdlCgoyMDA1LTAzLTMxIDE3OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Mi5oOgoKICAgVGhlIG5ldyBkYXRhIGFuZCBkYXRhc2V0IGhlbHBlciBpbXBsZW1lbnRhdGlvbnMgYnJlYWsgb2xkZXIgY29kZSBhbmQKICAgdGh1cyBicmVhayBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KICAgICAtIE1hcmsgdGhlIG9sZCBkYXRhIGFuZCBkYXRhc2V0IGltcGxlbWVudGF0aW9ucyBhcyBvYnNvbGV0ZSBidXQgcmVzdG9yZQogICAgICAgdGhlbSBmcm9tIHByZXZpb3VzIENWUyB2ZXJzaW9ucy4gIFJlZmVyZW5jZSB0aGUgbmV3IG9uZXMgaW4gdGhlIGRvY3MKICAgICAgIGZvciB0aGUgb2xkIG9uZXMuCiAgICAgLSBDcmVhdGUgbmV3IGRhdGEyIGFuZCBkYXRhc2V0MiB2ZXJzaW9ucyB3aGljaCBhcmUgdGhlIG5ldyBjb250YWluZXIKICAgICAgIGltcGxlbWVudGF0aW9ucy4KICAgICAtIE1ha2UgdGhlIGN1cnJlbnQgZGF0YXNldCBpbXBsZW1lbnRhdGlvbnMgdXNlIHRoZSBuZXdlciB2ZXJzaW9uLgogICAgICAgLSBleGNlcHQgdGhlIHRhYmxlIGFuZCBhZGRfcm93IGltcGxlbWVudGF0aW9ucyB3aGljaCBicm9rZQogICAgICAgICBlbnRpcmVseSB1bmRlciB0aGUgbmV3IGNvZGUuCgoyMDA1LTAzLTMwIDIzOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCByb3cgY3JlYXRpb24gZm9yIHZhY20gZmFtaWx5IHRyZWUgcm93cyB0aGF0IGFyZSBiZW5lYXRoIGEgcGFyZW50IHJvdy4KCjIwMDUtMDMtMzAgMTg6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgLSBhZGQgZGVidWcKICAgLSBkb24ndCBhc3NlcnQgb24gY29uZGl0aW9uIGZvciBuZXh0L2J1bGsKICAgICAtIHRoZSB3aG9sZSBtb2RlIGNvdW50aW5nIGlkZWEgbmVlZHMgcmUtdGhpbmtpbmcuLgogICAtIHVzZSBTTk1QX0ZSRUUgaW5zdGVhZCBvZiBmcmVlLCBub3cgdGhhdCBudWxsIHB0cnMgYXJlIGEgcG9zc2liaWxpdHkKCjIwMDUtMDMtMzAgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCjoKCiAgIHJ1biBodG9ubCBvbiB0aGUgaW5kZXggYWRkcnMKCjIwMDUtMDMtMjkgMjI6MzggIGFsZXhfYgoKICAgKiB3aW4zMi9saWJoZWxwZXJzLzogTWFrZWZpbGUuaW4sIGxpYmhlbHBlcnMuZHNwOgoKICAgQWRkIHN0YXNoX3RvX25leHQgdG8gV0lOMzIgTVNWQyBNYWtlZmlsZSBhbmQgd29ya3NwYWNlLgoKMjAwNS0wMy0yOSAyMDoxMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNvbW1lbnQgb3V0IGRlZmF1bHQgZGlzYWJsZSBvZiBzdGRlcnIgbG9nLCBzaW5jZSBpdCBtYWtlcyBpdCBpbXBvc3NpYmxlCiAgICAgdG8gdXNlIHN0ZG91dC9zdGRlcnIgZm9yIGxvZ2dpbmcgKG5vdyB0aGF0IGxvZy0+ZW5hYmxlZCBpcyBjaGVja2VkKS4gdXNlCiAgICAgQysrIGNvbW1lbnRzLCBzaW5jZSB0aGUgd2hvbGUgbG9nIHNldHVwIG5lZWRzIHJlLXRoaW5raW5nIGJlZm9yZSA1LjMuCgoyMDA1LTAzLTI5IDE2OjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jOgoKICAgRml4IGJhZCBmb3JtYXQgcGFyYW1ldGVycyB0byBzbm1wX2xvZwoKMjAwNS0wMy0yOSAxNTowNSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvY211X2NvbXBhdC5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEZXRlY3QgYW5kIHJlcG9ydCBpbnZhbGlkIFBEVXMgc2VudCBhcyByZXNwb25zZQoKMjAwNS0wMy0yOCAxNToyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gdXNlIG5ldyBjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IgdG8gY2hlY2sgdGhlIHJjIGluIEFMTCB2YXJiaW5kcywgbm90IGp1c3QKICAgICBjdXJyZW50IHJvdy9oYW5kbGVyIHZhcmJpbmRzCgoyMDA1LTAzLTI4IDE1OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gZml4IGJ1ZyAxMTcwNjA0IHNubXBfZGlzYWJsZV9zdGRlcnJsb2coKSBpcyBpZ25vcmVkCiAgIC0gY2hlYyBmb3IgbnVsbCBiZWZvcmUgZGVyZWYgKGZpeCBzbm1wdHJhcGQgY3Jhc2ggbm90ZWQgb24gaXJjKQoKMjAwNS0wMy0yOCAxNDoyOSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGZpeCBhZGRyZXNzIHR5cGUgaW4gaW5kZXggb2lkCgoyMDA1LTAzLTI4IDE0OjI3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICBuZXcgZnVuY3Rpb24gdG8gcmVhbGx5IHJlYWxseSBjaGVjayBlcnJvciBzdGF0dXMgb2YgYWxsIHJlcXVlc3RzCgoyMDA1LTAzLTI1IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNoZWNrIHNpemUgb2YgYXJyYXkgaW4gZ2V0dGFibGUgYmVmb3JlIGFzc3VtaW5nIGl0IGhhcyBzb21ldGhpbmcgaW4gaXQKCjIwMDUtMDMtMjUgMDk6NDkgIGFsZXhfYgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgQWRkIGhleE91dHB1dExlbmd0aCB0byBtYW4gcGFnZS4KCjIwMDUtMDMtMjQgMjI6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHBhc3MgTlVMTCB0byBjb25maWcgaGFuZGxlciByZWcsIHRvIHVzZSBjdXJyZW50IGFwcHR5cGUKICAgLSBhZGQgc2VwYXJhdG9ycyBhbmQgaGVhZGVycyB3aGVuIHNhdmluZyBwZXJzaXN0ZW50IGRhdGEKICAgLSByZW1vdmUgZXh0cmFuZW91cyBuZXdsaW5lIGluIHBlcnNpc3RlbnQgZGF0YQoKMjAwNS0wMy0yNCAyMjowNiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIG5ldyBlbnYgdmFyOiBTTk1QX1BFUlNJU1RFTlRfRElSCgoyMDA1LTAzLTI0IDE2OjQ4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRvbid0IGRpc2FibGUgY2FjaGUsIGp1c3QgZm9yY2UgcmVsb2FkIGZvciBldmVyeSByZXF1ZXN0CgoyMDA1LTAzLTIzIDE5OjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgYWRkIG1vZHVsZSBuYW1lCgoyMDA1LTAzLTIzIDE5OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBmaXggdHlwbwogICAtIHVwZGF0ZSBjb25maWdfcmVxdWlyZSgpIHBhdGggdG8gc29tZXRoaW5nIGJldHRlciBmb3IgY29uZmlndXJlCgoyMDA1LTAzLTIzIDE5OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICByZW1vdmUgKiBmcm9tIGRlZmF1bHQgY29udGV4dCByZWcgdHlwZSAodHlwZWRlZiBpcyBmb3Igc3RydWN0LCBub3QgcHRyKQoKMjAwNS0wMy0yMiAxNzozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICBtYXRjaCB1cCB0b2RvIHdpdGggYWN0dWFsIGdlbmVyYXRlZCBjb2RlCgoyMDA1LTAzLTIyIDE3OjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpOgoKICAgYWRkIG1pc3NpbmcgcGFyYW0gdG8gc25tcF9sb2cKCjIwMDUtMDMtMTggMTg6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgbWFrZSBzaWduYWwgY2FsbHMgY29uZGl0aW9uYWwgYmFzZWQgb24gZGVmaW5pdGlvbiBvZiBzaWduYWwgKGxpa2Ugc25tcGQpCgoyMDA1LTAzLTE4IDE4OjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIGFkZCBkZWZhdWx0ICgwKSBmb3Igc3BhcnNlIHRhYmxlcwogICAtIG9ubHkgbWtkaXIgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0CiAgIC0gZG9uJ3QgaWdub3JlIG1rZGlyIGVycm9ycwoKMjAwNS0wMy0xOCAxODowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgbW92ZSB0ZW1wIHN0b3JhZ2UgZm9yIGluZGV4ZXMgb3V0c2lkZSBvZiBleGFtcGxlIGNvbmRpdGlvbmFsCgoyMDA1LTAzLTE4IDE4OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBmaXggZGVmYXVsdCBmb3IgZGF0YSB0cmFuc2llbnQgKG9mZiBieSAxKQoKMjAwNS0wMy0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGdlbmVyYXRlIGNvbHVtbl9leGlzdHNfZmxhZ3MgY29kZSBpZiBzcGFyc2UgdGFibGUgbm90IHNldAoKMjAwNS0wMy0xOCAxODowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGZpeCBnZW5lcmF0ZWQgcm93cmVxX2N0eF9pbml0IHByb3RvdHlwZQoKMjAwNS0wMy0xOCAxODowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLAogICAgIGdlbmVyaWMtZ2V0LWNoYXIubTJpLCBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpCjoKCiAgIGNoYW5nZSBJTlRFUk5BTF8qIGVudW0gZGVmaW5lcyB0byBpbmNsdWRlIGNvbnRleHQgKHRhYmxlKSBuYW1lCgoyMDA1LTAzLTE4IDE3OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZml4IHNvbWUgdHlwb3Mgbm90ZWQgb24gbWFpbGluZyBsaXN0cwoKMjAwNS0wMy0xOCAxNzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gZGV0ZWN0IGZpcnN0IHJ1biBzbyB3ZSBrbm93IHRvIGNvcHkgZ2VuZXJhdGUgZGVmYXVsdHMgdG8gY3VyciBkaXIKICAgLSBkaWZmIGluZGl2aWR1YWwgZmlsZXMgaW5zdGVhZCBvZiByZWN1cnNpdmUgZGlmZiB3L2V4Y2x1ZGVzCiAgIC0gdXBkYXRlcyBmb3IgbmV3IGRlZmF1bHQgZGlyZWN0b3J5IHN0eWxlIGRlZmF1bHRzCgoyMDA1LTAzLTE4IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGFkZCB0YWJsZSB0ZXN0IGZvciBsYXN0Y2hhbmdlIGFuZCBzdG9yYWdldHlwZSB0YwogICAtIHR3ZWFrIGRvYyBjb21tZW50cwogICAtIGRvY3VtZW50IGlmY29uZiBhbmQgbmV3IGlmZGlyCgoyMDA1LTAzLTE4IDA1OjMxICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgVENQLU1JQi50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgVENQLU1JQiB0byBSRkMgNDAyMgoKMjAwNS0wMy0xOCAwNTozMCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlZCBJQU5BLWlmVHlwZS1NSUIKCjIwMDUtMDMtMTggMDU6MjYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgRml4IGEgd2FybmluZyBmcm9tIEJTRCBzeXN0ZW1zCgoyMDA1LTAzLTE4IDA0OjUyICBuYmEKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBtaWIyYy5jb25mLjUgaXMgYSBnZW5lcmF0ZWQgZmlsZQoKMjAwNS0wMy0xNyAwNTozMiAgbmJhCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jOgoKICAgVXBzLCB1bmludGVuZGVkIHBhdGNoIHVuZG9uZQoKMjAwNS0wMy0xNyAwNDozMCAgbmJhCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICBBZGQgZm9ybWF0IGNoZWNraW5nIHRvIGNhbGxzIHRvIHNubXBfbG9nLCBhbmQgZml4IHRoZSB1bmNvdmVyZWQgZXJyb3JzCgoyMDA1LTAzLTE1IDAxOjEzICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEluY2x1ZGUgc211eCBoZWFkZXJzIHdoZW4gbmVlZGVkCgoyMDA1LTAzLTE0IDE2OjE0ICBuYmEKCiAgICogY29uZmlndXJlOgoKICAgU3luYyB0byBjb25maWd1cmUuaW4KCjIwMDUtMDMtMTQgMTU6NTMgIG5iYQoKICAgKiBtaWJzLzogSU5FVC1BRERSRVNTLU1JQi50eHQsIE1ha2VmaWxlLm1pYiwgcmZjbGlzdAo6CgogICBVcGRhdGUgdG8gY3VycmVudCBJTkVULUFERFJFU1MtTUlCCgoyMDA1LTAzLTE0IDE1OjQ4ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IGNvbmZpZ3VyZSBoZWFkZXIgYWxlcnRzIGZvciBTb2xhcmlzIDggYW5kIDksIE5ldEJTRCAyIGFuZCBGcmVlQlNEIDUKCjIwMDUtMDMtMDQgMTU6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIG1ha2VmaWxlCiAgIC0gaW5kZW50aW9uIGNoYW5nZXMKICAgLSBleHBsaWNpdCBjbG9zZSBvZiBmaWxlCgoyMDA1LTAzLTA0IDE1OjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0L3NldCB1c2VyIGNvbnRleHQKICAgLSB1c2UgbmV3IHJvd19tZXJnZSBmaXJzdC9sYXN0IGFwaSB0byBtYWtlIHN1cmUgcHJlL3Bvc3QgY2FsbGVkIDEvcGVyIGhhbmRsZXIKICAgLSBhZGQgcmMgcGFyYW0gdG8gcG9zdF9yZXF1ZXN0ICh5dW0sIG15IG93biB3b3JkcyB3ZXJlIGRlbGljaW91cykKICAgLSB1c2UgYXNwIHN0YXR1cywgbm90IHN0YXR1cyBvZiBoYW5kbGVycyByZXF1ZXN0cywgd2hlbiBjaGVja2luZyBmb3IKICAgICBzdWNjZXNzZnVsIHJlcXVlc3QgY29tcGxldGlvbgogICAtIGFkZCBzdXBwb3J0IGZvciBza2lwcGluZyBub24tZXhpc3RlbnQgcm93cyBpbiBzcGFyc2UgdGFibGVzCiAgIC0gYWRkIG1vcmUgaW5mbyB0byBzb21lIGRlYnVnIG1zZ3MKICAgLSB1c2UgU05NUF9OT1NVQ0hJTlNUQU5DRSBpbnN0ZWFkIG9mIEFTTl9QUklWX1JFVFJZCiAgIC0gYWRkIG1vcmUgZGVidWdzIG1zZ3MKICAgLSBkb24ndCBjbGVhciBzZXQgZmxhZ3MgdGlsIHBvc3QgY29tbWl0CiAgIC0gcmVtb3ZlIHJlZHVuZGFudCB2YXJiaW5kIGxlbmd0aCBjaGVjawogICAtIHVwZGF0ZSBmb3IgbmV3IGNvbHVtbiBmbGFnIG5hbWVzCgoyMDA1LTAzLTA0IDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIGZpeCB0ZXN0IGZvciBkZWZhdWx0cyBpbiBvbGQgbG9jYXRpb24KICAgLSBhZGQgb3B0aW9uIHRvIHJlLXJ1biBpbnRlcmFjdGl2ZSBzZXR1cCBpZiBleGlzdGluIGRlZmF1bHRzCgoyMDA1LTAzLTA0IDE1OjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgbm9uLWV4aXN0ZW50IHJvd3MgaW4gc3BhcnNlIHRhYmxlcwogICAtIGFkZCByYyBwYXJhbSB0byBwb3N0X3JlcXVlc3QgKHl1bSwgbXkgb3duIHdvcmRzIHdlcmUgZGVsaWNpb3VzKQogICAtIGNoZWNrIG5ldyB2YXJzIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSBzdXBwb3J0IGZpbGVzCiAgICAgKGRveHlnZW4sIG1ha2VmaWxlLCBzdWJhZ2VudCkKCjIwMDUtMDMtMDQgMTU6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgLSBhZGQgY29tbWVudHMgb24gbm9kZSBsZW5ndGhzCiAgIC0gdXBkYXRlIGZvciBjaGFuZ2VzIGluIHZhbHVlIG1hcCByZXZlcnNlCgoyMDA1LTAzLTA0IDE1OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICAtIHVwZGF0ZSBCSVRTIGZpZWxkcyB0byB1c2UgZGVmaW5lIElOVEVSTkFMXypfRkxBRyBkZWZpbmVzLCBpbnN0ZWFkIG9mIElTX1NFVF8qCiAgIC0gYWRkIG9idmlvdXMgbm90ZSBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIEMgYml0IG9yZGVyIGFuZCBTTk1QIGJpdCBvcmRlcgogICAtIGFkZCBCSVRTIG1hcHBpbmcgdG8gcmV2ZXJzZSB2YWx1ZSBtYXAKCjIwMDUtMDMtMDQgMTU6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLCBwYXJlbnQtc2V0Lm0yaSwKICAgICBzeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICBjaGFuZ2UgY29sdW1uIGZsYWcgbmFtZXMgdG8gcmVkdWNlIGNvbmZ1c2lvbiB3aXRoIG90aGVyIGRlZmluZWQgbmFtZXMKCjIwMDUtMDMtMDQgMTQ6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGFkZCBuZXcgbTJjX3RhYmxlX3NwYXJzZSB0byBkZWZhdWx0cwoKMjAwNS0wMy0wNCAxNDo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICB1c2UgbmV3IHZhciBmb3IgZW51bSBzdWZmaXgKCjIwMDUtMDMtMDQgMTQ6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgbmV3IHZhciBmb3IgZW51bSBzdWZmaXgsIHNldCB0byBfZmxhZyBmb3IgYml0cyBvYmplY3RzCgoyMDA1LTAzLTA0IDEzOjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgLSBtb3ZlIElOVEVSTkFMXyogZW51bSBtYWNyb3MgaW5zaWRlIGlmZGVmcyBmb3IgVEMKICAgLSBnZW5lcmF0ZSBJTlRFUk5BTF8qIGVudW1zIGZsYWdzIGZvciBCSVRTCgoyMDA1LTAzLTAzIDE5OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICB1cGRhdGUgY29tbWVudHMKCjIwMDUtMDMtMDMgMTk6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGZpeCBuZXRzbm1wX2NoZWNrX3ZiX3JhbmdlIChjaGVjayB2YWx1ZXMsIG5vdCBzaXplcykKCjIwMDUtMDMtMDMgMTk6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmg6CgogICAtIGtlZXAgc2F2ZWQgc3RhdHVzIGRhdGEgYmV0d2VlbiBtb2RlIGNhbGxzIChpbiByZXFpbmZvKSwgc28gd2UgY2FuLi4KICAgLSBidWlsZCBhbGwgdGVtcG9yYXJ5IHJlcXVlc3QgbGlzdHMgYmVmb3JlIGNhbGxpbmcgbmV4dCBoYW5kbGVyLCBzbyB3ZSBjYW4uLgogICAtIHRyYWNrIG51bWJlciBvZiByZXF1ZXN0cyBhbmQgbnVtYmVyIG9mIHJvd3MsIHNvIHdlIGNhbi4uCiAgIC0gcHJvdmlkZSBhcGkgZm9yIGxvd2VyIGhhbmRsZXIgdG8ga25vdyBpZiBjdXJyZW50IGNhbGwgaXMgZm9yIGZpcnN0L2xhc3Qgcm93CiAgIC0gbG9nIGEgd2FybmluZyBpZiBoYW5kbGVyIGZvciByb3cgcmV0dXJucyBlcnJvciwgYnV0IERPTlQgZXhpdCBsb29wCiAgICAgLSBpZiBsb3dlciBoYW5kbGVyIHJldHVybnMgZXJyLCBwYXNzIGl0IHRvIHBhcmVudAogICAtIGFkZCBtb3JlIGRlYnVnZ2luZwoKMjAwNS0wMy0wMyAxNTozMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBhZGQgb3B0aW9uIHRvIHdhdGNoZWQgdGltZXN0YW1wIHRvIGhhdmUgYSBwb2ludGVyIHRvIGEgZGlyZWN0IHZhbHVlCgoyMDA1LTAzLTAyIDE4OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICAtIG1vdmUgY29sdW1uIGJpdCBmbGFnIG1hY3JvcyB1cCB3aXRoIGNvbHVtbiBudW1iZXIgbWFjcm9zCiAgIC0gYmFpbCBpZmYgbW9yZSB0aGFuIDMyIGNvbHVtbnMuIGZpeCB0aGlzIGxhdGVyLi4uCgoyMDA1LTAzLTAyIDE4OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICAtIGRvbid0IHJ1biBleHRyYSBmaWxlIGZyb20gdG9wOyBtb3ZlIGRvd24gc28gY2FuIGJlIGNvbnRyb2xsZWQgYnkgZGVmYXVsdHMKCjIwMDUtMDMtMDIgMTg6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgLSByZW1vdmUgdW51c2VkIHNldHVwIG9mIG0yY19udnZfc2l6ZW9mCgoyMDA1LTAzLTAyIDE4OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICAtIHJld29yayBpbml0aWFsIGNoZWNrX3ZiXyogbG9naWMsIGNoZWNraW5nIG1heF9zaXplIGZvciBvY3RldCBzdHJpbmdzCiAgIC0gZml4IHJhbmdlIGNoZWNrcyBmb3Igb2N0ZXQgc3RyaW5ncwogICAtIHVzZSBtMmMgZGF0YV9pdGVtIGFuZCBub2RlIGRpcmVjdG9yeSwgZWxpbWluYXRpbmcgYSB2YXIgZnJvbSBub2RlIHNldHVwCiAgIC0gcmVtb3ZlIGdlbmVyYXRlZCBjb21tZW50IGFuZCBzb21lIGNvbW1lbnRlZCBvdXQgY29uZiBzdHVmZgoKMjAwNS0wMy0wMiAxODoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgcHJvcGVyIGltcGxlbWVudGF0aW9uIGZvciBjaGVja192Yl9zaXplX3JhbmdlCgoyMDA1LTAzLTAyIDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIC0gbW92ZSBUT0RPIGNvbW1lbnQgYXdheSBmcm9tIGxpbmtlIGxpa2VseSB0byBiZSBkZWxldGVkCiAgIC0gYSBsb2cgbWVzc2FnZSBpbmRpY2F0aW5nIGEgbm9kZSBpcyBub3QgaW1wbGVtZW50ZWQKCjIwMDUtMDMtMDIgMTU6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIGFsbG93IG9jdGVzdCBzdHJpbmcgcmVhZCB0byBmaWxsIGJ1ZmZlcgogICAtIGRvbid0IG51bGwgdGVybWluYXRlIG9jdGV0IHN0cmluZyBpZiBidWZmZXIgZnVsbAogICAtIHdhcm4gaWYgaW5wdXQgaXMgbGFyZ2VyIHRoYW4gYnVmZmVyCgoyMDA1LTAzLTAyIDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHR5cGVkZWYgdG8gc3RydWN0IChub3QgYSBwdHIgdG8gc3RydWN0KQoKMjAwNS0wMy0wMiAxNDo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0eXBlZGVmIHRvIHN0cnVjdCAobm90IGEgcHRyIHRvIHN0cnVjdCkKCjIwMDUtMDMtMDIgMTQ6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCiwgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLXJlYWRtZS5tMmMsCiAgICAgcGFyZW50LXNldC5tMmk6CgogICBjaGFuZ2UgZGVmYXVsdCByZWdpc3RyYXRpb24gdHlwZWRlZiB0byBzdHJ1Y3QgKG5vdCBhIHB0ciB0byBzdHJ1Y3QpCgoyMDA1LTAzLTAyIDE0OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGZpeCBtaXMtbmFtZWQgZnVuY3Rpb247IGFkZCBwcm90byBmb3IgY29ycmVjdCBuYW1lCgoyMDA1LTAzLTAyIDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBhbGxvdyBzbm1wZC5jb25mIHNtdXggT0lEcyB0byBiZSB0ZXh0LCBub3QganVzdCBudW1lcmljCgoyMDA1LTAzLTAyIDE0OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmNpZXMKICAgICAtIHVzZSBuZXcgc3lzT1IgcmVnaXN0cmF0aW9uIGNhbGxiYWNrIGluc3RlYWQgb2YgZGlyZWN0IGZ1bmN0aW9uIGNhbGxzCgoyMDA1LTAzLTAyIDEzOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgYWRkL3JlZ2lzdGVyIGNhbGxiYWNrcyBmb3IgcmVnL3VucmVnIHN5c09SIGVudHJpZXMKCjIwMDUtMDMtMDIgMTM6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oOgoKICAgYWRkIGNhbGxiYWNrcyBmb3IgcmVnL3VucmVnIHN5c09SIGVudHJpZXMKCjIwMDUtMDMtMDIgMTM6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gbG9nIElORk8gbWVzc2FnZSBvbiBzdWNjZXNzZnVsIGNvbm5lY3QgdG8gbWFzdGVyCiAgIC0gYWx3YXlzIGxvZyBwZWVybmFtZSBvbiB1bnN1Y2Nlc3NmdWwgY29ubmVjdCBhdHRlbXB0CgoyMDA1LTAzLTAyIDEzOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgYWx3YXlzIGxvZyBhZ2VudHggcGVlciBuYW1lIG9uIGNvbm5lY3QgZmFpbHVyZQoKMjAwNS0wMy0wMiAxMzo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gbG9nIG1lc3NhZ2Ugb24gZmFpbGVkIHJlZ2lzdHJhdGlvbgogICAtIHVwZGF0ZSBmb3IgbmV3IHZlcnNpb25fc3lzb2lkIGxvY2F0aW9uCgoyMDA1LTAzLTAyIDEzOjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgbW9yZSBkZWJ1Zy9lcnJvciBsb2cgZm9yIHByb2JsZW1zIHdpdGggY2FjaGUgZmlsZQoKMjAwNS0wMy0wMiAxMzozNiAgcnN0b3J5CgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY2llcwogICAgIC0gbW92ZSB2ZXJzaW9uX3N5c29pZCBpbnRvIHRoZSBhZ2VudCAoZml4IGxpYnJhcnkgZGVwZW5kZW5jaWVzKQogICAgIC0gdXBkYXRlIHN5c3RlbV9taWIgZm9yIG5ldyBzeXNvaWQgbG9jYXRpb24KICAgLSBkb24ndCBjYWxsIGhvc3RzX2N0bCBmb3IgY2FsbGJhY2sgY29ubmVjdGlvbgogICAtIGxvZyBhZGRyX3N0cmluZyBmb3IgVU5LTk9XTiBjb25uZWN0aW9ucwoKMjAwNS0wMy0wMiAxMjoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICBhZGQgZGVidWcKCjIwMDUtMDMtMDIgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgLSBhZGQgLXggcGFyYW0gZm9yIG1hc3RlciBhZGRyZXNzCiAgIC0gYWRkIHdpbmRvd3MgU09DS18qIG1hY3JvcwoKMjAwNS0wMy0wMiAxMjowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZG94eWdlbi5tMmM6CgogICBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgY29uZiBmaWxlCgoyMDA1LTAzLTAyIDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSBmaXggc3BlYyBzbyBycG1idWlsZCB3L3BhcmFtZXRlcnMgc2hvdWxkIHdvcmsgb2sKICAgICAtIG1ha2Ugc3VyZSBwZXJsIHVzZXMgUlBNIHByZWZpeCwgaW5zdGVhIG9mIGhhcmRjb2RlZCAvdXNyIChjb25maWcsIHBhdGhzdWIpCiAgICAgLSBtYWtlIHN1cmUgbWFrZWluc3RhbGwgdXNlcyBwcm9wZXIgaW5jbHVkZSBkaXIgcGF0aAoKMjAwNS0wMi0yOCAwNzo1MiAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQWRkZWQgV0lOMzIgaWZkZWYgYmxvY2tzIHRvIGFjY29tb2RhdGUgY29tcGlsaW5nIHRoZSBIT1NULVJFU09VUkNFIG1pYiBvbgogICBXaW5kb3dzLgoKMjAwNS0wMi0yOCAwNzo1MCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgV2luZG93cyBIT1NULVJFU09VUkNFIG1pYiBpbXBsZW1lbnRhdGlvbi4gc3RydWN0IHdpbl9zdGF0ZnMgaGFzIGJlZW4gbW92ZWQKICAgdG8gaHJfc3RvcmFnZS5oLgoKMjAwNS0wMi0yOCAwNzo0OCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oOgoKICAgV2luZG93cyBIUiBtaWIgaW1wbGVtZW50YXRpb24uCgoyMDA1LTAyLTI3IDIyOjM0ICBhbGV4X2IKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgdC9taWIudCwgdC9zdGFydGFnZW50LnBsOgoKICAgQXBwbHkgTWF4IEJha2VyJ3MgcGF0Y2ggMTExNzY5NiB3aGljaCBmaXhlcyBhIHJlZ2V4IHRoYXQgc3BsaXRzIGEgdGFnIGZyb20KICAgYW4gaWlkLiAgQWxzbyBhZGRlZCBhZGRpdGlvbmFsIHRlc3RzIHRvIG1pYi50IHRlc3Qgc2NyaXB0LgoKMjAwNS0wMi0yNiAwNzoyMSAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgVGhpcyBpcyBwYXJ0IG9mIHRoZSBIT1NULVJFU09VUkNFIFdpbmRvd3MgaW1wbGVtZW50YXRpb24uIGhyX25ldHdvcmsuYyB3aWxsCiAgIG5vdyBjb21waWxlIHdpdGggTWluR1cgYnV0IG11Y2ggb2YgdGhlIGZ1bmN0aW9uYWxpdHkgc3RpbGwgbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCgoyMDA1LTAyLTI1IDE3OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHNldCBhIGdvb2QgZXhhbXBsZSBhbmQgY2FsbCBTT0NLX0NMRUFOVVAgYmVmb3JlIGV4aXQKCjIwMDUtMDItMjUgMTc6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIG0yY19zZXR1cF90YWJsZS5tMmksIG1mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgbmFtZQoKMjAwNS0wMi0yNSAxNzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gZml4IHByb3RvdHlwZXMsIG5vdGVkIGJ5IG5pZWxzCiAgIC0gZG9uJ3QgZ2VuZXJhdGUgZG94eWdlbiBjb25mIGZpbGUKCjIwMDUtMDItMjUgMTc6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBpZ25vcmUgY3ZzIElkIHRhZ3Mgd2hlbiBwZXJmb3JtYWluZyBkaWZmCgoyMDA1LTAyLTI1IDE2OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJncm91cC9zbXV4L3NtdXguaCwgbWliX21vZHVsZXMuYywKICAgICBzbm1wX3ZhcnMuYzoKCiAgIC0gZWxpbWluYXRlIGxpYm5ldHNubXBhZ2VudCByZWZzIHRvIGxpYm5ldHNubXBtaWJzCiAgICAgLSBtb3ZlIG1vZHVsZV9pbml0X2xpc3Qgc3R1ZmYgaW50byBhZ2VudCBsaWJzCiAgICAgLSBtb3ZlIHNtdXggY29kZSBpbnRvIGFnZW50IGxpYnMKCjIwMDUtMDItMjUgMTY6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhZGQgY29udGV4dCB0byByZWdpc3Rlcl9taWIgZGVidWcKICAgLSB3YXJuIGlmIHBhc3NlZCBjb250ZXh0IGRvZXNuJ3QgbWF0Y2ggcmVnaW5mby0+Y29udGV4dE5hbWUKCjIwMDUtMDItMjUgMTY6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICByZWdpc3RlciB3aXRoIGNvbnRleHQsIGlmIHNwZWNpZmllZAoKMjAwNS0wMi0yNSAxNjoxMCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gZml4IGxpYnJhcnkgb3JkZXJzIGluIGxpbmsgbGluZXMKICAgLSBhZGQgd2luZG93cyBTT0NLXyogbWFjcm9zIHRvIGdlbmVyYXRlZCBzdWJhZ2VudAoKMjAwNS0wMi0xOSAwNzowMCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUGFydCBvZiB0aGUgSE9TVC1SRVNPVVJDRSBpbXBsZW1lbnRhdGlvbiBmb3IgV2luZG93cy4KCiAgICogRGVmaW5lZCB3aW5fc3RhdGZzIHN0cnVjdHVyZS4KICAgKiBEZWZpbmVkIHBhZ2VzaXplIGZvciBXaW5kb3dzIGFzIDQwOTYgKDRrIGlzIHdoYXQgSSBoYXZlIGZvdW5kIHRocm91Z2ggbXkKICAgCXJlc2VhcmNoLiBUaGVyZSBpcyBwcm9iYWJseSBhIHZhcmlhYmxlIG9yIGZ1bmN0aW9uIHRvIGdldCB0aGUgaW5mb3JtYXRpb24KICAgCW9uIFdpbmRvd3MgYnV0IEkgaGF2ZSBub3QgZm91bmQgaXQgeWV0LikKICAgKiBBZGRlZCBmdW5jdGlvbnMgd2luX3N0YXRmcygpIGFuZCB3aW5fcmVhbHBhdGgoKS4KCjIwMDUtMDItMTYgMTY6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEtpbGxpbmcgd2FybmluZ3MKCjIwMDUtMDItMTYgMTY6NDggIG5iYQoKICAgKiBtaWJzLzogTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dCwgTkVULVNOTVAtRVhURU5ELU1JQi50eHQKLCBORVQtU05NUC1UQy50eHQ6CgogICBzbWlsaW50J2luZwoKMjAwNS0wMi0xNSAxMToyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBJbXBsZW1lbnQgcHJvcGVyIFNFVCBzdXBwb3J0IGZvciBuc0V4dGVuZFJ1blR5cGUuCgoyMDA1LTAyLTEyIDA4OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBNb3ZlIHZhcmlhYmxlIHVudXNlZCB3aGVuIDxwaWNsLmg+IHVuYXZhaWxhYmxlIGZvciBTb2xhcmlzCgoyMDA1LTAyLTEyIDA4OjMyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIEZpeCB3YXJuaW5ncwoKMjAwNS0wMi0xMiAwODowNyAgbmJhCgogICAqIGFnZW50LzogaGVscGVycy9pbnN0YW5jZS5jLCBoZWxwZXJzL3dhdGNoZXIuYywKICAgICBtaWJncm91cC9hZ2VudC9leHRlbmQuYywgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBTb2xhcmlzIGdjYyAtbTY0IGZpeGVzCgoyMDA1LTAyLTEyIDA2OjQyICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgTW9yZSBkZXRhaWxzIHdoZW4gcmVzcG9uc2UgZmFpbHMuIEdvb2QgZm9yIGxvY2F0aW5nIDY0LWJpdCBwcm9ibGVtcwoKMjAwNS0wMi0xMiAwNTo1OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBGaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMTIgMDU6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBJbnRlZ3JhdGUgZml4ZXMgZnJvbSBOZXRCU0QgcG9ydAoKMjAwNS0wMi0xMCAxNDo1MyAgbmJhCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEZpeCBtaXNsZWFkaW5nIGNvbW1lbnQuIFRoYW5rcyB0byBidWcgMTA4Njg3MAoKMjAwNS0wMi0xMCAxMzo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluY2x1ZGUgc3lzbG9nLmggYWxzbyBpZiBub3QgdXNpbmcgbGlid3JhcAoKMjAwNS0wMi0xMCAxMzoyNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRml4IHN5c0lPUmF3U2VudC9SZWNlaXZlZCB3aGljaCBhcmUgcmV2ZXJzZWQgZm9yIExpbnV4LiBCdWcgMTEwMjUxOAoKMjAwNS0wMi0xMCAxMDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgRml4IEZyZWVCU0QgbWVtb3J5IGxlYWssIHRoYW5rcyB0byBKb2huIFNlbGxlbnMsIGJ1ZyAxMTAzNjQ0CgoyMDA1LTAyLTEwIDA4OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBGaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMTAgMDc6MzUgIG5iYQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEwIDA3OjIyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBhbiBleHRyYW5lb3VzIG5ld2xpbmUgZW5kaW5nIGhleHN0cmluZ3MKCjIwMDUtMDItMDkgMTY6MzQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEZpeCBiYWQgaW5kZXgsIHBvaW50ZWQgb3V0IGluIGJ1ZyAxMTE2NjUyCgoyMDA1LTAyLTA5IDE2OjMwICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBhIGJhZCBlcnJvciBtZXNzYWdlCgoyMDA1LTAyLTA5IDE2OjI1ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSB3YXJuaW5ncwoKMjAwNS0wMi0wOSAxNjoxNSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgd2FybmluZ3MKCjIwMDUtMDItMDkgMTY6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQW5vdGhlciBodW50IGZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0wOSAxNDo0NiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEFkZCBzb21lIG1pc3NpbmcgY29uc3QtbmVzcyBmb3IgcGFyYW1ldGVycwoKMjAwNS0wMi0wOCAxNjo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICBGaXggYSBidW5jaCBvZiB0cml2aWFsIHdhcm5pbmdzCgoyMDA1LTAyLTA4IDE1OjA2ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgU01VWC1NSUIudHh0LCBpYW5hbGlzdAosIHJmY2xpc3QsIHNtaXN0cmlwOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbnMKCjIwMDUtMDItMDggMTQ6NTQgIG5iYQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXhlcyB0byBhbGxvdyBpdCB0byBwYXNzIHNtaWxpbnQKCjIwMDUtMDEtMjcgMjI6NTIgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZGlzYWJsZSBjYWNoaW5nIHNpbmNlIG90aGVyIGNvZGUgbW9kaWZpZXMgdW5kZXJseWluZyBkYXRhCgoyMDA1LTAxLTI1IDE2OjI0ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJlbW92ZSBub3RlIG9uIGN2czJjbCB3b3JrYXJvdW5kLCBhZGQgbm90ZSBvbiBob3cgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbgoKMjAwNS0wMS0yNSAwODo1MSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeCBtaXNuYW1lZCByb3cgc3RydWN0dXJlLgoKMjAwNS0wMS0yMiAxNjo0OSAgYWxleF9iCgogICAqIGxvY2FsL0ZBUTJIVE1MLCBsb2NhbC9odG1sLWFkZC1oZWFkZXItZm9vdGVyLnBsLAogICAgIG1hbi9tYWtlX2luZGV4LnBsLCBtYW4vbWFuX3NlY3Rpb25zLnR4dCwKICAgICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL21ha2VodG1sLnBsOgoKICAgVXBkYXRlZCBzY3JpcHRzIGV0YyBmb3IgZ2VuZXJhdGluZyB3ZWIgY29udGVudC4KCjIwMDUtMDEtMjIgMTU6MzggIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbDoKCiAgIFdpbjMyIHJlZ2lzdHJ5IGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzCgoyMDA1LTAxLTIyIDEwOjQyICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIEFkZGVkIGNvdW50X3VzZXJzIGZ1bmN0aW9uYWxpdHkgZm9yIFdpbmRvd3MuIFRoZSBmdW5jdGlvbiBjdXJyZW50bHkgcmV0dXJucwogICAwIGZvciBhIGZhaWxlZCBjYWxsIHRvIE5ldFdrc3RhR2V0SW5mbygpIGFuZCBtYXkgcmVxdWlyZSBtb3JlIGVycm9yIGNoZWNraW5nCiAgIG9uIFdpbmRvd3Mgc3lzdGVtcyB0byByZXR1cm4gYSBjb3JyZWN0IHZhbHVlIGZvciBmYWlsdXJlLgoKMjAwNS0wMS0yMSAxMTowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIFVzZSB0aGUgKG5ldykgdGFibGVfZGF0YXNldCBpdGVyYXRvciBBUEkgcm91dGluZXMsCiAgIHJhdGhlciB0aGFuIHRoZSBpbnRlcm5hbCBmaWVsZHMgZGlyZWN0bHkuCgogICAoSSB3b25kZXIgaG93IG1hbnkgbW9yZSBiaXRzIEkgYnJva2U/KQoKMjAwNS0wMS0yMSAwNToxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmM6CgogICBEb24ndCBiZSBzdWNoIGFuIGltcGF0aWVudCBjaGlsZCwgRGF2ZSEgIElmIEkndmUKICAgdG9sZCB5b3Ugb25jZSwgSSd2ZSB0b2xkIHlvdSBhIHRob3VzYW5kIHRpbWVzOgoKICAgVGlkeSB1cCBwcm9wZXJseSBhZnRlciBvbmUgcmVxdWVzdCBiZWZvcmUgc3RhcnRpbmcgb24gdGhlIG5leHQuCgogICA8c2hha2VzIGhlYWQgc29ycm93ZnVsbHk+CiAgIFNvbWUgcGVvcGxlISAtIEkgYmxhbWUgdGhlIHBhcmVudHMuLi4uLgoKMjAwNS0wMS0yMCAwOToyNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBSZS1pbXBsZW1lbnQgJ3RhYmxlX2RhdGEnIHVzaW5nIHRoZSAndGFibGVfY29udGFpbmVyJyBoZWxwZXIuCiAgIFRoZSB0d28gYXJlIGFsbW9zdCBpZGVudGljYWwgaW4gYmVoYXZpb3VyIGFueXdheSAtIGp1c3Qgd2l0aAogICBkaWZmZXJlbnQgZXhwZWN0YXRpb25zIG92ZXIgdGhlIGZvcm1hdCBvZiBhIHBlci1yb3cgc3RydWN0dXJlLgoKMjAwNS0wMS0yMCAwOTowOSAgZHRzMTIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBVc2UgdGhlIChuZXcpIHRhYmxlX2RhdGFzZXQgaXRlcmF0aW9uIEFQSSwKICAgcmF0aGVyIHRoYW4gZmlkZGxpbmcgd2l0aCB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uCgoyMDA1LTAxLTIwIDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFByb3ZpZGUgYSBjbGVhbiBBUEkgZm9yIHdhbGtpbmcgdGhyb3VnaCB0aGUgcm93cyBvZiBhIHRhYmxlCiAgIChSYXRoZXIgdGhhbiByZWx5aW5nIG9uIGEgcGFydGljdWxhciBpbnRlcm5hbCByZXByZXNlbnRhdGlvbikuCgoyMDA1LTAxLTIwIDA5OjAyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFRoZSBBUEkgZm9yIGNvdW50aW5nIHRoZSBudW1iZXIgb2Ygcm93cyB3YXMgY29uZnVzaW5nbHkKICAgbmFtZWQsIGFuZCBub3QgYWN0dWFsbHkgZGVjbGFyZWQgaW4gdGhlIGhlYWRlciBmaWxlLgogICBJbnRyb2R1Y2UgYSBtb3JlIHNlbnNpYmxlIHZlcnNpb24uCgoyMDA1LTAxLTE5IDA5OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBXZSBzZWVtIHRvIGhhdmUgYW4gaW5jb25zaXN0ZW50bHkgbmFtZWQgQVBJLCBkZXBlbmRpbmcgb24gd2hldGhlciBpdAogICBpcyBiZWluZyBkZWZpbmVkIGlubGluZSBvciBub3QuICBUaGlzIGRvZXMgbm90IGZlZWwgbGlrZSBhIEdvb2QgSWRlYS4KICAgRW5zdXJlIHRoYXQgdGhlIHNhbWUgbmFtZXMgd29yaywgcmVnYXJkbGVzcyBvZiBpbmxpbmluZy4KICAgKFRoYXQgaW50cm9kdWNlcyBhIGNlcnRhaW4gZHVwbGljYXRpb24gb2YgY29kZSwgYnV0IHN1Y2ggaXMgbGlmZSkKCjIwMDUtMDEtMTMgMTE6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIE5ld2VyIElQLUZPUldBUkQtTUlCIGZyb20gYW4gSUQgc2V0IHRvIGJlY29tZSBhbiBSRkMKCjIwMDUtMDEtMTMgMTE6MjQgIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUC1GT1JXQVJELU1JQi50eHQsIElBTkEtUlRQUk9UTy1NSUIudHh0LAogICAgIE1ha2VmaWxlLmluOgoKICAgTmV3ZXIgSVAtRk9SV0FSRC1NSUIgZnJvbSBhbiBJRCBzZXQgdG8gYmVjb21lIGFuIFJGQwoKMjAwNS0wMS0xMiAxMTo1MCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFByb3ZpZGUgYSBtZWFucyBmb3Igc25tcHRyYXBkIHRvIHJlcG9ydCAvZXRjL2hvc3RzLnthbGxvdyxkZW55fQogICBzdHlsZSBhY2Nlc3MgY29udHJvbCBhY3Rpdml0eS4KICAgVGhpcyBzaG91bGQgcGVyaGFwcyBiZSBsb2dnZWQgdmlhICdzbm1wX2xvZycgKGMuZiBhZ2VudC9zbm1wX2FnZW50LmMpCiAgIGJ1dCBJIHNlZW0gdG8gcmVjYWxsIHByb2JsZW1zIHdpdGggZHVwbGljYXRlIHN5bWJvbHMuICBCdXQgYSBkZWJ1ZwogICBtZXNzYWdlIHNob3VsZCBiZSBzYWZlIGVub3VnaC4uLi4KCjIwMDUtMDEtMTIgMTE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgZGVmaW5lIHNldFBlcnJvcnN0YXR1cyB1bnRpbCBwcm9wZXIgZml4IGltcGxlbWVudGVkCgoyMDA1LTAxLTEyIDA5OjQzICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBQaGlsaXAgVyBHaWxsaXMgYW5kIERhbmllbCBLZXJucyBmb3Igd2luMzIgZ2V0ZW52IGNyYXNoLgoKMjAwNS0wMS0xMiAwNjozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaDoKCiAgIFN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiBzdGFzaC1jYWNoZSB0aW1lb3V0cywgYm90aCBhdAogICByZWdpc3RyYXRpb24gYW5kIHZpYSB0aGUgTkVULVNOTVAtQUdFTlQtTUlCOjpuc0NhY2hlVGFibGUuCiAgIChEb24ndCBtdWNoIGxpa2UgdGhlIEFQSSBuYW1lcywgdGhvdWdoIC0gaW1wcm92ZWQgc3VnZ2VzdGlvbnMKICAgZ3JhdGVmdWxseSByZWNlaXZlZCkuCgoyMDA1LTAxLTEyIDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmM6CgogICBVc2UgdGhlIHN0YW5kYXJkIGNhY2hlIGhlbHBlciwgcmF0aGVyIHRoYW4gaGFuZGxpbmcgdGhpcyBpbnRlcm5hbGx5LgoKMjAwNS0wMS0xMiAwNjoyMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBNYWtlIHRoZSBoYW5kbGVyIGNoYWluIGluZm9ybWF0aW9uIGF2YWlsYWJsZSB0byB0aGUgY2FjaGUgbG9hZCByb3V0aW5lLgogICAoQW5kIGZpeCBhIGJyb2tlbiBkZWJ1ZyBtZXNzYWdlKQoKMjAwNS0wMS0xMiAwNToxNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEluY2x1ZGUgdGhlIG5ldyAnc3Rhc2hfdG9fbmV4dCcgaGVscGVyIGluIHRoZSBoZWxwZXIgbGlicmFyeS4KCjIwMDUtMDEtMTEgMTA6MTEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaCwKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jCjoKCiAgIEF1dG9tYXRpY2FsbHkgaW5qZWN0IHRoZSBzdGFzaF90b19uZXh0IGhlbHBlciBhdCByZWdpc3RyYXRpb24sCiAgIHJhdGhlciB0aGFuIGR5bmFtaWNhbGx5IGR1cmluZyByZXF1ZXN0IHByb2Nlc3NpbmcuCiAgIChXZSBtdXN0IHRyeSB0byBrZWVwIG91ciBiZWxvdmVkIGxlYWRlciBoYXBweSBhbmQgY29udGVudCBhbmQgdW5zdXNwZWN0aW5nLi4uLikKCjIwMDUtMDEtMTEgMTA6MDIgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFN1cHBvcnQgdGhlIGluamVjdGlvbiBvZiBhIGhhbmRsZXIgc3ViLWNoYWluCiAgIChyYXRoZXIgdGhhbiBqdXN0IGEgc2luZ2xlIGhhbmRsZXIpCgoyMDA1LTAxLTA5IDExOjMxICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBjb25maWcuaCAtPiBuZXQtc25tcC1jb25maWcuaAoKMjAwNS0wMS0wOCAxMDoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmVhZC9jcmVhdGUgZGVmYXVsdCBmaWxlcyBmcm9tL2luIHN1YmRpcgoKMjAwNS0wMS0wOCAxMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksIG0yY19zZXR1cF9ub2RlLm0yaSwKICAgICBtZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjLCBtZmQtcmVhZG1lLm0yYzoKCiAgIHJlYWQvY3JlYXRlIGRlZmF1bHQgZmlsZXMgZnJvbS9pbiBzdWJkaXIKCjIwMDUtMDEtMDggMDc6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHJlbmFtZSBzb21lIG9mIHRoZSBuZXcgcGVyc2lzdGVudCBmdW5jdGlvbnMvdmFycwogICAtIGZpeCBsZW5ndGggaGFuZGxpbmcgZm9yIEJJVFMKICAgLSB1c2Ugc3RhY2sgZm9yIGxpbmUgYnVmZmVyCiAgIC0gYWRkL3R3ZWFrIHNvbWUgZGVidWcgbXNncwoKMjAwNS0wMS0wNyAwNzoyMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX3RvX25leHQuaDoKCiAgIEV4dGVuZCB0aGUgYXBwbGljYWJpbGl0eSBvZiBXZXMnICJzdGFzaF9jYWNoZSIgaGVscGVyLCBieQogICBhdXRvbWF0aWNhbGx5IGNvbnZlcnRpbmcgYSBHRVRTVEFTSCByZXF1ZXN0IGludG8gYSBHRVRORVhUCiAgIHdhbGsgZm9yIHRob3NlIGNoYWlucyB0aGF0IGRvbid0IHN1cHBvcnQgdGhpcyBtb2RlIGRpcmVjdGx5LgogICAoQW5kIHByb3ZpZGUgYSB3YXkgZm9yIGNoYWlucyB0aGF0IGRvLCB0byBzYXkgc28hKQoKMjAwNS0wMS0wNyAwNDozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBVc2UgbmV0c25tcF9jaGVja192Yl90eXBlIGZvciBjaGVja2luZyBTRVQgcmVxdWVzdHMuCgoyMDA1LTAxLTA2IDEyOjMzICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdCBwZXJzaXN0ZW5jZSBzdXBwb3J0IGZvciBtZmQKCjIwMDUtMDEtMDYgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGFkZCBpbmNsdWRlIHRvIHF1aXRlIHdhcm5pbmcKICAgLSBhZGQgcGVyc2lzdGVuY2UKCjIwMDUtMDEtMDYgMTI6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICByZW1vdmUgY29uZGl0aW9uIG9uIHByb3RvdHlwZSBnZW4gbm93IHRoYXQgZnVuY3Rpb24gaXMgYWx3YXlzIGdlbmVyYXRlZAoKMjAwNS0wMS0wNiAxMDoxNiAgcnN0b3J5CgogICAqIE5FV1M6CgogICBtZW50aW9uIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMKCjIwMDUtMDEtMDYgMTA6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHNldCByZXF1ZXN0cyAoZG9lcyBub3QgZXhjbHVkZSBzZXQgcHJvY2Vzc2luZyBjb2RlIC0geWV0KQoKMjAwNS0wMS0wNiAxMDowOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNS0wMS0wNiAwOTo1NyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHNldCByZXF1ZXN0cyAoZG9lcyBub3QgZXhjbHVkZSBzZXQgcHJvY2Vzc2luZyBjb2RlIC0geWV0KQoKMjAwNS0wMS0wNiAwOTo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIHJlbW92ZSBjb25kaXRpb25hbCBmb3IgdmFyIGRlY2wsIHNpbmNlIHVzZSBpc24ndCBjb25kaXRpb25hbAoKMjAwNS0wMS0wNiAwOTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgYWRkIGNvbW1lbnQgb24gaG93IHRvIGRpc2FibGUgY2FjaGluZwoKMjAwNS0wMS0wNiAwOTo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaToKCiAgIC0gYWRkIG1pc3NpbmcgJSBzcGVjIGluIGxvZyBtc2cKICAgLSBnZW4gY29kZSB0byBjb3B5IHZhbHVlIG9uY2UgYWRkclR5cGUgaXMga25vd24KCjIwMDUtMDEtMDUgMTc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgaW5pdCBtaWJzIGJlZm9yZSBzbm1wIHNvIGNvbmYgZmlsZSByZWdpc3RyYXRpb25zIHdvcmsKCjIwMDUtMDEtMDUgMTU6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBhbHdheXMgZ2VuZXJhdGUgcm93IHVuZG9fc2V0dXAvdW5kb19jbGVhbnVwCgoyMDA1LTAxLTA1IDEwOjEyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGNhc2UgbGFiZWwgdG8gbWF0Y2ggbGFibGVsIGdpdmVuIGluIHVzYWdlIG1zZwoKMjAwNS0wMS0wMyAxMDo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNvbW1lbnQgb3V0IG92ZXJyaWRlIGNoZWNrcyB3aGVyZSB3ZSBkb24ndCBoYXZlIHRoZSBpbnRlcmZhY2UgbmFtZQoKMjAwNS0wMS0wMiAyMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZWNvZ25pc2Ugd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGFzIHByaW50YWJsZS4KCjIwMDUtMDEtMDIgMjA6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIE9ubHkgaXNzdWUgImFjY2VzcyBjb250cm9sIG5vdCBjb25maWd1cmVkIiB3YXJuaW5nIGZvciB0aGUgYWdlbnQKICAgKG5vdCBzbm1wdHJhcGQpCgoyMDA1LTAxLTAyIDE5OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBtZmQtZGF0YS1nZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGdlbmVyYXRlIFRPRE8gaXRlbSBmb3IgY29kZSBpbiBpbnRlcmZhY2VzIGZpbGUKCjIwMDUtMDEtMDIgMTg6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGRvbid0IGJpbmQgbG9jYWwgdHJhcHNpbmtzIHRvIGxvY2FsaG9zdCBpZiBjbGllbnRBZGRyIGlzIHNldAoKMjAwNC0xMi0zMSAwOToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNvbW1lbnQgY2xhcmlmaWNhdGlvbgoKMjAwNC0xMi0yOCAxODo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgZml4IGxvZ2ljIGZvciBtZmQgdGFibGUgdGVzdAoKMjAwNC0xMi0yOCAxNzoyOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHVwZGF0ZSByZmMgcmVmZXJlbmNlCgoyMDA0LTEyLTI4IDE2OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBkb24ndCByZWdpc3RlciByb25seSBoYW5kbGVycyBhcyBSV1JJVEUKICAgLSBhZGQgbWlzc2luZyBuZXRzbm1wX3JlZ2lzdGVyX2ludF9pbnN0YW5jZV9jb250ZXh0CgoyMDA0LTEyLTI4IDE1OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICB1c2UgbWFjcm8gY29uc3RhbnRzIGZvciByZXR1cm4gdmFsdWVzLCBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZXMKCjIwMDQtMTItMjggMTU6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRlYnVnIG1zZyB3L2Vycm5vIHdoZW4gc2VuZHRvIGZhaWxzCgoyMDA0LTEyLTI4IDE1OjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIG5ldHNubXBfYXNzZXJ0IG9uIGJhZCBBU04gYnVpbGQKCjIwMDQtMTItMjggMTU6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGhlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSBhbHdheXMgc3BlY2lmeSBjb250ZXh0LCBpZiBhdmFpbGFibGUpIGZvciByZWdpc3RlciBjYWxsYmFja3MKICAgICAoc28gZGlzY29ubmVjdGVkIGFnZW50eCBzdWJhZ2VudHMgcmVjb25uZWN0IHcvcHJvcGVyIGNvbnRleHQpCiAgIC0gbWVtc2V0IHN0cnVjdCBvbiBzdGFjayB0byAwCgoyMDA0LTEyLTI4IDEyOjAyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGJ1ZyAxMDQ5NjA3OiBuZXQtc25tcC1jb25maWcgLS1jb21waWxlLXN1YmFnZW50IGJyb2tlbgoKMjAwNC0xMi0yNyAxMDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIGFkZCBwb2ludGVyIHRvIHR1dG9yaWFsIGFuZCBjb21tYW5kbGluZSB0byBnZW5lcmF0ZSBwc2V1ZG8tdG9kbyBsaXN0CgoyMDA0LTEyLTI1IDAwOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICBiYWlsIG9uIG5vbi10YWJsZSBPSUQgdW50aWwgbXVsdGlwbGUgdGFibGVzIHBlciBmaWxlIGFyZSBzdXBwb3J0ZWQKCjIwMDQtMTItMjUgMDA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIGZpeCBidWcgMTA2Mjk4NjogcGFzcyBhbmQgcGFzc19wZXJzaXN0IGZhaWwgYW5kIGNyYXNoIHNubXBkCgoyMDA0LTEyLTI0IDIzOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGZpeCBidWcgMTA3MjQwNjogaW52YWxpZCBvcGVyYXRvciBwcmVjZWRlbmNlIGluIG9wZW5kaXIoKQoKMjAwNC0xMi0yNCAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBmaXggYnVnIDEwODQ0MTM6IENhbid0IGRpc2FibGUgZmlsZSBsb2dnaW5nCgoyMDA0LTEyLTI0IDEwOjMyICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGZpeCBidWcgMTA0MDcxMTogc25tcHRyYXBkOiBTSUdIVVAgZHVwbGljYXRlcyB0cmFwaGFuZGxlcnMgKHJlcGVhdGVkbHkpCgoyMDA0LTEyLTI0IDA5OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYWRkIC1wIHRvIG1rZGlyIHBhcm0KCjIwMDQtMTItMjQgMDk6NDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICByZW1vdmUgaGFyZGNvZGVkIEhBVkVfSUZOQU1FVE9JTkRFWCBub3cgdGhhdCBjb25maWd1cmUgY2hlY2tzIGZvciBpdAoKMjAwNC0xMi0yNCAwOTowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgLSBkb24ndCBvcGVuIHN0ZG91dCB0aWwgd2UgbmVlZCBpdAogICAtIGV4cGxpY2l0IGNsb3NlIGZvciBvcGVuZWQgZmlsZQogICAtIGNoYW5nZSBkZWZhdWx0IHRvIGFza2luZyBxdWVzdGlvbnMgaW5zdGVhZCBvZiB1c2luZyBkZWZhdWx0cwoKMjAwNC0xMi0yNCAwOTowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgLSBjaGFuZ2UgZGVmYXVsdCBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgdG8gb24KICAgLSBkb24ndCBvdmVycmlkZSByZXBvcnQgcHJvZ3Jlc3MgdmFyIGlmIGFscmVhZHkgc2V0CgoyMDA0LTEyLTIzIDE3OjU3ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBGaXggY29tcGlsaW5nIHdpdGhvdXQgUFNESy4KCjIwMDQtMTItMjMgMTQ6MTkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyBjb21waWxlIGZpeGVzCgoyMDA0LTEyLTIyIDE4OjA5ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgZml4IGJ1ZyAxMDg4NzY1OiBBZ2VudCBmYWlscyB0byBzZW5kIHRyYXBzIHRvIHJlbW90ZSB0YXJnZXQKCjIwMDQtMTItMjIgMTY6MjggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMjIgMTY6MTIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgLSB0ZXN0IGZvciBpZl9uYW1ldG9pbmRleAoKMjAwNC0xMi0yMiAxMzozNyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUudGhyZWFkOgoKICAgbWVudGlvbiB0aGF0IHYzIGlzbid0IHRocmVhZCBzYWZlCgoyMDA0LTEyLTE2IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgbG9nIHdhcm5pbmcgb24gYmFkIGhleCBsZW5ndGggKGhpZ2hlciByb3V0aW5lcyBkb24ndCBnZXQgZXJyb3IgaW5kaWNhdGlvbikKCjIwMDQtMTItMTYgMjA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgaWZkZWYgb3V0IHYxL3YyIGNvZGUgd2hlbiBib3RoIGRpc2FibGVkCgoyMDA0LTEyLTE2IDE4OjE0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtY2hlY2sgZm9yIGR1cGxpY2F0ZSB0YWJsZSBkZWZzIGluIHNubXBkLmNvbmYKICAgLW1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZXMKICAgLXN1cHBvcnQgcnVuLXRpbWUgdGFibGVzIHdoaWNoIGFyZSBhdWdtZW50YXRpb25zCiAgIC1sb2cgZXJyb3IgaWYgcnVuLXRpbWUgcm93IGFkZCBmYWlscwoKMjAwNC0xMi0xNiAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgbW9yZSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlcwoKMjAwNC0xMi0xNiAxNDo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGNoZWNrIGZvciBudWxsIHZhciBiZWZvcmUgZGVyZWYKCjIwMDQtMTItMTYgMTQ6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY2FjaGUgbmV4dCBwdHIgYjQgb2JqZWN0IGNvdWxkIGJlIGZyZWVkCgoyMDA0LTEyLTE2IDE0OjQyICByc3RvcnkKCiAgICogbHRtYWluLnNoOgoKICAgbW9yZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2Ugb24gbWlzc2luZyBsaWJyYXJ5CgoyMDA0LTEyLTE2IDE0OjQwICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgSU5TVEFMTF9QUkVGSVggdG8gcHJvZ3Jlc3MgbWVzc2FnZXMKCjIwMDQtMTItMTUgMTE6MTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMTQgMDg6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgZGVsZXRlIGV4dHJhICc7JwoKMjAwNC0xMi0xNCAwNjo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBxdW90aW5nIG9uIGV2YWwgbGluZXMKCjIwMDQtMTItMTMgMTI6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZWdpc3RyYXRpb24gbG9va3VwIG9wdGltaXphdGlvbiBhbGxvd2luZyBpbmNvbWluZyByZXF1ZXN0cyB0byBtb3JlIHF1aWNrbHkgc2VhcmNoIHRocm91Z2ggdGhlIGxpbmtlZCBsaXN0IGFuZCBkbyBzaW5nbGUgaW50IGNvbXBhcmVzIGluc3RlYWQgb2YgZnVsbCBPSUQgY29tcGFyZXMgZm9yIG11Y2ggb2YgdGhlIHNlYXJjaCB0cmVlLiAgU2hvdWxkIHNpZ25maWNhbnRseSBpbmNyZWFzZSB0aGUgc2VhcmNoIHNwZWVkIGZvciBuZXcgcmVxdWVzdHMuCgoyMDA0LTEyLTEzIDEyOjM3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBGQVEsIFJFQURNRQosIHNlZHNjcmlwdC5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtICgpOiB2ZXJzaW9uIHRhZyAoIDUuMy5kZXYgKQoKMjAwNC0xMi0xMyAxMjozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWRkZWQgYSBuZXcgb2lkLWNvbXBhcmUgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB3aGVyZSB0aGUgT0lEcyBkaWZmZXJlZAoKMjAwNC0xMi0xMyAxMjoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBhZGQgYW4gZXh0cmEgc29ydGluZyB2YXJpYWJsZTogb2lkX29mZgoKMjAwNC0xMi0xMyAwODoyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0xMyAwODoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBtaXNzaW5nIGVuZCBxdW90ZQoKMjAwNC0xMi0xMCAxNToxNSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIHJlY2VudCBjaGVja2lucwoKMjAwNC0xMi0xMCAxNTowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIC1jb21tZW50IHR3ZWFrcwogICAtZnJlZSB2YXJiaW5kIGluZGV4ZXMgYmVmb3JlIHBhcnNpbmcgbmV3IG9uZXMKICAgLWFkZC91c2UgcHJvcGVyIGRhdGFfbGlzdCBmcmVlIGZ1bmN0aW9uIGZvciByb3cgc3Rhc2hlcwoKMjAwNC0xMi0xMCAxNDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGZpeCBmb3IgdXNpbmcgaWZOYW1lIGZvciBpZkRlc2NyIHdoZW4gaWZEZXNjciBub3QgYXZhaWxhYmxlCgoyMDA0LTEyLTEwIDE0OjQxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtZml4IGJ1ZyAxMDM0MDA4OiBtZW1vcnkgbGVhayB1c2luZyBTRVQgZm9yIHRhYmxlX2RhdGFzZXQKICAgLXJlbW92ZSB1bnN1cHBvcnRkICUgc3BlYyBpbiBjb25maWdfcHdhcm4KCjIwMDQtMTItMTAgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgYXBwbHkgcGF0Y2ggMTA1MjQ2MDogYWdlbnQgZGVhZGxvY2sgb24gZXhlYwoKMjAwNC0xMi0xMCAxMzowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmWFRhYmxlL2lmWFRhYmxlLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYwosIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGFwcGx5IHBhdGNoIDEwNTUwMzY6IGlmLW1pYiBpbml0IG9yZGVyIGZpeAoKMjAwNC0xMi0xMCAxMjo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgYXBwbHkgcGF0Y2ggMTA1NzA1NzogaXBTeXN0ZW1TdGF0c1RhYmxlIGluZGV4IGZpeCwgYWRkIGlwdjYKCjIwMDQtMTItMTAgMTE6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC1uZXcgdGFyZ2V0cyB0byBtYWtlIGFnZW50bGliLCBtaWJsaWIgb3IgYm90aAogICAtcmVtb3ZlIGFnZW50IGxpYiBkZXBlbmRlbmN5IG9uIG1pYiBsaWIKCjIwMDQtMTItMTAgMTE6MDQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyB0YXJnZXRzIHRvIG1ha2Ugc25tcGxpYiwgYWdlbnQsIGFsbCBvciBpbmRpdmlkdWFsIGFwcHMKCjIwMDQtMTItMTAgMTE6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMTAgMTE6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtZml4IGRpc2FibGUgc25tcHYyYwogICAtYWRkIHBhcnRpYWwgdGFyZ2V0IG9zIHRvIG1vZHVsZSBjZmxhZ3MKICAgLXJlc3RvcmUgbWlzc2luZyB2YXIgaW5pdCAoZml4IGNvbmZpZ3VyZSBzbG93ZG93bikKICAgLW1vcmUgZGVidWdnaW5nCgoyMDA0LTEyLTEwIDEwOjE1ICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3NubXBmdW4uc2g6CgogICBmaXggdGFibGUgY2hlY2tzIGJ5IGFkZGluZyBtaXNzaW5nIG51bGwgcGFyYW1ldGVyCgoyMDA0LTEyLTEwIDEwOjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBjb21tZW50IGNoYW5nZSBvbmx5LSBkb2N1bWVudCB3aHkgdGVzdCBtYXkgbm90IGFsd2F5cyBiZSBmYWxzZQoKMjAwNC0xMi0xMCAwOTo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIGNvbnNpc3RlbnQgdGFibGUgbmFtaW5nIGluIGV4YW1wbGUgZmxvdywgbm90ZWQgb24gY29kZXJzIGJ5IERhdmUKCjIwMDQtMTItMTAgMDk6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC1hZGQgZmxhZyBmb3Igcm93IGRlbGV0ZWQKICAgLWlmIG5vIGVycm9ycywgaW5zZXJ0L2RlbGV0ZSBuZXcvZGVsZXRlZCByb3cgaW50byBjb250YWluZXIKCjIwMDQtMTItMTAgMDk6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgZml4IGNhc2Ugb2YgbWlzc2luZyBnZXQgY29kZQoKMjAwNC0xMi0xMCAwOTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgdXNlIHNhbWUgY2FjaGUgdGltZW91dCBvbiBhbGwgcGxhdGZvcm1zCgoyMDA0LTEyLTEwIDA5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBhcHBseSBwYXRjaCAxMDU2OTI3OiA1LjItcDAzOiBmcmVlYnNkIGludGVyZmFjZSBidWdzCiAgICAgLSBmaXggYnVnIDEwNTU3ODE6IGdldC1uZXh0IGZhaWxzIHRvIHN0ZXAgaW50byBpbnRlcmZhY2VzIGdyb3VwIGNvcnJlY3RseQogICAgIC0gZml4IGJ1ZyAxMDU2NzYwOiBhZ2VudCBpZ25vcmVzIGlmc3BlZWQsIHR5cGUgc2V0dGluZ3MgaW4gc25tcGQuY29uZgogICAtIGFsc28gZml4IGJ1ZyAxMDU2NzYwIGZvIEhQLVVYLCBzb2xhcmlzLCBXaW4zMiBhbmQgb3RoZXJzCgoyMDA0LTEyLTEwIDA4OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGFwcGx5IHBhdGNoIDEwNzM4OTc6IGZpeCBpZi1taWIgZGF0YSBhY2Nlc3MgNjRiaXQgY291bnRlciB3cmFwIGRldGVjdGlvbgoKMjAwNC0xMi0wOSAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIC0gZGVsZXRlIHJlbW92ZWQgcm93IGFmdGVyIHVzZXIgY29tbWl0IGZ1bmN0aW9uIGNhbGxlZAogICAtIHJlbW92ZSByb3cgaW5zZXJ0L2RlbGV0ZSBpbiB1bmRvIC0gaGFuZGxlZCBpbiBjb21taXQKCjIwMDQtMTItMDkgMjI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIGNoZWNrIHJlcXVlc3RzIGZvciBlcnJvcnMgb24gZ2V0IG1vZGVzIHRvbwoKMjAwNC0xMi0wOSAyMTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGRvbid0IGZyZWUgbnVsbCBwb2ludGVyCgoyMDA0LTEyLTA5IDExOjU3ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgU2xpZ2h0bHkgY2xlYW5lciBzdW1tYXJpZXMgb2YgY29uZmlnIGZpbGUgaGFuZGxpbmcuCgoyMDA0LTEyLTA5IDExOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQWxsb3cgdGhlIHRyYXAgZGFlbW9uIHRvIHNwZWNpZnkgYSBub24tZGVmYXVsdCBBZ2VudFggc29ja2V0LgoKMjAwNC0xMi0wOSAxMTo1MiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIE5ldyB1dGlsaXR5IHJvdXRpbmVzIGZvciBjaGVja2luZyBtYXhpbXVtIChyYXRoZXIgdGhhbiBleGFjdCkgc2l6ZSBsaW1pdHMuCgoyMDA0LTEyLTA5IDExOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgVXNlIHRoZSBsZW5ndGggc3VwcGxpZWQgZHVyaW5nIHJlZ2lzdHJhdGlvbiB3aGVuIGRlY2lkaW5nIGhvdwogICBtdWNoIG9mIHRoZSBPSUQgdG8gc2tpcCBiZWZvcmUgY29tcGFyaW5nIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzLAogICByYXRoZXIgdGhhbiB0cnlpbmcgdG8gc2Vjb25kLWd1ZXNzIHdoYXQgdGhlIE1JQiBpbXBsZW1lbnRlciB3YW50ZWQuCgogICBUaGUgTWZEIGZyYW1ld29yayAod2hpY2ggaXMgdGhlIG9ubHkgcGxhY2UgdGhpcyBoZWxwZXIgaXMgY3VycmVudGx5CiAgIHVzZWQpIGFscmVhZHkgdGFrZXMgdGhlIG9iamVjdCBzdWJpZGVudGlmaWVyIGludG8gYWNjb3VudCB3aGVuCiAgIGluc2VydGluZyB0aGUgaGVscGVyLCB0aHVzIGRvaW5nIHNvIGFnYWluIHdpbGwgYnJlYWsgdGhpbmdzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMSAtPiBWNS4yCgoyMDA0LTExLTI0IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgd29yZGluZyBjaGFuZ2VzIHN1Z2dlc3RlZCBieSBSb2JlcnQKCjIwMDQtMTEtMjQgMTc6MTIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGRvY3VtZW50IGdldF9pbmRleGVzKCkgYnkgZXhhbXBsZQoKMjAwNC0xMS0yNCAxNzowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVudCBnZXR0YWJsZSgpCgoyMDA0LTExLTI0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQ29udmVydCBHTlUgc3BlY2lmaWMgbWFrZSBoYWNrcyB0byBwb3J0YWJsZSB2ZXJzaW9uCgoyMDA0LTExLTI0IDE2OjQyICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNC0xMS0yNCAxNjo0MSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIFVwZGF0ZSBmb3IgNS4yIGFkZGluZyBhIHRvbiBvZiBuZXcgc3R1ZmYKCjIwMDQtMTEtMjQgMTQ6MzUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIFVwZGF0ZSBmb3IgNS4yCgoyMDA0LTExLTI0IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgZm9yIDUuMi4gIEFkZGVkIGEgZmV3IHJlZmVyZW5jZXMgdG8gdGhlIG90aGVyIFJFQURNRSBmaWxlcwoKMjAwNC0xMS0yNCAxMDozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIE1hbiBwYWdlIHVwZGF0ZSBmb3IgNS4yCgoyMDA0LTExLTI0IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHRvIDUuMgoKMjAwNC0xMS0yNCAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBzdHJpY3QgbWFuIHBhZ2UgZml4ZXMgZnJvbSBFcmljIFMuIFJheW1vbmQKCjIwMDQtMTEtMTggMDU6MjcgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgZml4IHR5cGUgbm90ZWQgb24gY29kZXJzCgoyMDA0LTExLTE3IDEwOjE3ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIC0gZG9jdW1lbnQgZmxhZ3MgdG8gdXNlIHRvIGluc3RhbGwgb3ZlciBBcHBsZSdzIHZlcnNpb24gKHdoaWNoIGhhcyBhIGJhZAogICAgIGNvcHkgb2YgbmV0LXNubXAtY29uZmlnCiAgIC0gZG9jdW1lbnQgZXhsdWRpbmcgdGhlIHVuc3VwcG9ydGVkIGljbXAgdGFibGUKCjIwMDQtMTEtMTcgMDY6NDkgIGR0czEyCgogICAqIEFHRU5ULnR4dDoKCiAgIEZpeCB0eXBvIGFuZCBtaXNzaW5nIGNvbmZpZyBkaXJlY3RpdmUsIHJlcG9ydGVkIGJ5IFdpbGxpYW0gQnVja2xleS4KICAgRW1waGFzaXNlIChpbiBhbiB1bmRlcnN0YXRlZCBCcml0aXNoIHNvcnQgb2Ygd2F5KSB0aGF0IHRoaXMgaXMgcHJpbWFyaWx5CiAgIGRlc2NyaWJpbmcgdGhlIHY0IGFnZW50LCBhbmQgdGhpbmdzIG1heSBiZSBkaWZmZXJlbnQgd2l0aCB0aGUgdjUgdG9vbGtpdC4KCjIwMDQtMTEtMTcgMDU6MjkgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNyAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI3ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNiAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNiAxNjo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMS0xNiAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gcmM0CgoyMDA0LTExLTE2IDE1OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsCiAgICAgaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBkb24ndCBjb25maWd1cmUgaW4gaW50ZXJmYWNlIGlvY3RsIGNvZGUgYnkgZGVmYXVsdAogICAtIGlmZGVmIG91dCBhcmNoIGRlcGVuZGVudCBjb2RlIGluIGludGVyZmFjZSBjb21tb24KCjIwMDQtMTEtMTIgMDc6MzYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB0d2Vha3MKCjIwMDQtMTEtMTEgMDY6MzYgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBtb3JlIGNoYW5nZXMgYW5kIGZpeGVzCgoyMDA0LTExLTA5IDA4OjIxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBub24tb3B0aW9uYWwgbmF0dXJlIG9mIHNubXBkLmNvbmYKICAgKHNwb3R0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5KQoKMjAwNC0xMS0wOSAwODoxMiAgZHRzMTIKCiAgICogRkFROgoKICAgUmFpZCBSb2JlcnQncyBGQVEgZm9yIHNvbWUgdXNlZnVsIGVudHJpZXMuCgoyMDA0LTExLTA5IDA1OjE2ICBkdHMxMgoKICAgKiBUT0RPOgoKICAgSXQncyBhYm91dCB0aW1lIHdlIGhhZCBhIGZyZXNoIFRPRE8gbGlzdC4KICAgVGhlcmUgbWF5IHdlbGwgYmUgYml0cyB0aGF0IGNhbiBiZSBzYWx2YWdlZCBmcm9tIHRoZQogICBvbGQgdmVyc2lvbiwgYnV0IEknbGwgbGVhdmUgdGhhdCB0byBzb21lb25lIGVsc2UuCgoyMDA0LTExLTA1IDIxOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mLCBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMwosIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMKLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMKLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMKLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMKLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMKLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zCiwgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMKLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCiAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zCiwgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMKLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zCiwgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zCiwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdXRpbC4zCiwgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNC0xMS0wNSAyMToyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNC0xMS0wNSAyMDoyNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICB1cGRhdGUgZnJvbSBCcnVjZQoKMjAwNC0xMS0wNSAxMzowOCAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBjb25maWd1cmUgcHJvYmxlbSB3aGVuIGNvbXBpbGluZyB3aXRoIHNvbWUgV2luZG93cyBjb21waWxlcnMuCiAgIFRoZSBhZmZlY3RlZCBwbGF0Zm9ybXMgd2VyZSBNaW5HVyBhbmQgQ3lnd2luLCB0aGUgcGF0Y2ggc2hvdWxkIG5vdCBlZmZlY3QgTVNWQysrCiAgIGJ1aWxkcy4KCjIwMDQtMTEtMDUgMDI6MDUgIGR0czEyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZGVsdGEuMSwgc25tcGRlbHRhLjEuZGVmCiwgc25tcGRmLjEsIHNubXBkZi4xLmRlZiwgc25tcG5ldHN0YXQuMSwKICAgICBzbm1wbmV0c3RhdC4xLmRlZjoKCiAgIEdlbmVyYXRlICJmaXhlZCBpbmZvcm1hdGlvbiIgY29tbWFuZCBtYW4gcGFnZXMgZHluYW1pY2FsbHkKICAgKHNvIHRoZXkgcGljayB1cCB0aGUgdmVyc2lvbiBoZWFkZXIpIHJhdGhlciB0aGFuIGhhdmUgdGhlbSBzdGF0aWMuCgoyMDA0LTExLTA1IDAxOjI4ICBkdHMxMgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgc25tcGJ1bGtnZXQuMS5kZWYsCiAgICAgc25tcGJ1bGt3YWxrLjEuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMQosIHNubXBkZi4xLCBzbm1wZ2V0LjEuZGVmLCBzbm1wZ2V0bmV4dC4xLmRlZgosIHNubXBuZXRzdGF0LjEsIHNubXBzZXQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYKLCBzbm1wdGFibGUuMS5kZWYsIHNubXB0cmFuc2xhdGUuMS5kZWYsCiAgICAgc25tcHRyYXAuMS5kZWYsIHNubXB1c20uMS5kZWYsIHNubXB2YWNtLjEuZGVmLAogICAgIHNubXB3YWxrLjEuZGVmOgoKICAgVHdlYWsgdGhlIG9uZS1saW5lIGRlc2NyaXB0aW9ucyBvZiB2YXJpb3VzIGNvbW1hbmRzIHRvIGltcHJvdmUKICAgY29uc2lzdGVuY3kgYW5kIGNsYXJpdHkKCjIwMDQtMTEtMDQgMjE6MzggIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZXMgKG1vc3RseSBzdHVmZiB3ZSBkb24ndCBzdXBwb3J0KQoKMjAwNC0xMC0yOSAyMjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTAgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICAtPiA1LjIucmMyCgoyMDA0LTEwLTI5IDIyOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgLT4gNS4yLnJjMgoKMjAwNC0xMC0yOSAxMzoyOCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgZmlyc3QgcGFzcyBhdCBhZ2VudCBtaWJzIHJlYWRtZQoKMjAwNC0xMC0yNiAwNTo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0yNiAwNTozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IHVuY29uZGl0aW9uYWxseSBhZGQgbGlicmFyaWVzIChmcmVlYnNkIGRvZXNuJ3QgaGF2ZSBsaWJkbCkKCjIwMDQtMTAtMjIgMTg6MDYgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGZpeCBjb25mbGljdAoKMjAwNC0xMC0yMiAxODowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTEwLTIyIDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2NzCgoyMDA0LTEwLTIyIDE3OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNC0xMC0yMiAxMTo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0yMiAxMTo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbW92ZSBQSUMgY2hlY2sgYWZ0ZXIgbW9kdWxlIHByb2Nlc3NpbmcsICYgY2hlY2sgYWdhaW5zdCBjb21wbGV0ZSBtb2R1bGUgbGlzdAogICAtIGNoZWNrIGRpc2tpbyBhbmQgbG1TZW5zb3JzIGFnYWluc3QgY29tcGxldGUgbW9kdWxlIGxpc3QKCjIwMDQtMTAtMjIgMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXhlcyBmb3IgYnVpbGRpbmcgaWZUYWJsZSB3L291dCBpZlhUYWJsZQoKMjAwNC0xMC0yMiAwMjoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIElmIHdlJ3JlIGdvaW5nIHRvIGluY2x1ZGUgdGhlIE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydCBieSBkZWZhdWx0LAogICAoYW5kIGxvYWQgaXQgYXV0b21hdGljYWxseSksIGl0IHdvdWxkIGJlIGV2ZW4gbW9yZSB1c2VmdWwgdG8gYWN0dWFsbHkKICAgaW5zdGFsbCBpdCwgc28gaXQgd2FzIGF2YWlsYWJsZSB0byBfYmVfIGxvYWRlZCEKCjIwMDQtMTAtMjIgMDI6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oOgoKICAgSWYgd2UncmUgZ29pbmcgdG8gaW5jbHVkZSB0aGUgTkVULVNOTVAtRVhURU5ELU1JQiBzdXBwb3J0IGJ5IGRlZmF1bHQsCiAgIGl0IHdvdWxkIGJlIHNlbnNpYmxlIHRvIGxvYWQgdGhhdCBNSUIgYXV0b21hdGljYWxseS4KCjIwMDQtMTAtMjEgMTU6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBpZmRlZiB1c2Ugb2YgdmFyaWFibGUgdGhhdCBpc24ndCBhbHdheXMgZGVmaW5lZAoKMjAwNC0xMC0yMSAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZml4IGZvciBtdWx0aXBsZSByb3dzL3RhYmxlcyBzZXQgcHJvYmxlbSwgbm90ZWQgYnkgU3ZlbiBKb25hcyBvbiBjb2RlcnMKCjIwMDQtMTAtMjAgMjE6MDIgIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnZva2UgcGVybHJlYWxjbGVhbiBmaXJzdCBpbiB0aGUgZGlzdGNsZWFuIHNlcXVlbmNlLgoKMjAwNC0xMC0yMCAxOTo1NSAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHBlcmZvcm0gZGVlcCBjbGVhbmluZyBvbiBQZXJsIHRyZWUgdG8gZml4IGJ1ZyAjODk0NDI1LgoKMjAwNC0xMC0yMCAxOTozNSAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBmaXggdGFibGUgb3ZlcmZsb3cgKGluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCB0byA1LjEuMikuCgoyMDA0LTEwLTIwIDE4OjUyICBzbGlmCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgcmVtb3ZlIHNlY29uZCByZWFkX29iamlkIGZyb20gbWV0aG9kcyBsaXN0IChJbnNwaXJlZCBieSBjdXJyZW50IERlYmlhbiBwYXRjaCkKCjIwMDQtMTAtMjAgMTY6NTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc3lzdGVtLmM6CgogICBmaXggYnVnIzEwNDMxOTcgKDIpIC0gdGVzdCBvcyB2ZXJzaW9uIGFuZCByZWxlYXNlIHVzaW5nIHVuYW1lIHRvIHF1YWxpZnkgYWN0aW9uCgoyMDA0LTEwLTE5IDE2OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIG1vdmUgcnBtIGhlYWRlciBpbmNsdWRlcyBpbnNpZGUgSEFWRV9MSUJSUE0gYmVjYXVzZSBvZiBoZWFkZXIgZGVwZW5kZW5jaWVzCgoyMDA0LTEwLTE5IDE2OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBtb3ZlIHJwbSBjaGVja3MgYmFjayBhZnRlciBtb2R1bGUgcHJvY2Vzc2luZywgc2luY2UgcnBtIG9ubHkgaW5jbHVkZWQKICAgICBpZmYgaHJfc3dpbnN0IGdldHMgY29uZmlndXJlZCBpbgoKMjAwNC0xMC0xOSAxNDowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgcmVtb3ZlIGNwcCB3YXJuaW5nCgoyMDA0LTEwLTE5IDE0OjAxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTE5IDE0OjAwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSB1cGRhdGUgcmVsZWFzZQogICAtIGZvciBldmVyeSBBQ19BUkdfRU5BQkxFLCBhZGQgY29ycmVzcG9uZGluZyBBQ19BUkdfV0lUSCB3aXRoIGVycm9yIG1lc3NhZ2UKICAgLSBmb3IgZXZlcnkgQUNfQVJHX1dJVEgsIGFkZCBjb3JyZXNwb25kaW5nIEFDX0FSR19FTkFCTEUgd2l0aCBlcnJvciBtZXNzYWdlCiAgIC0gbW92ZSBsaWJyd2FwL3JwbSBjaGVja3MgZWFybGllciwgc28gdGhleSB3aWxsIGZhaWwgYmVmb3JlIG1vZHVsZSBwcm9jZXNzaW5nCiAgIC0gY2hlY2sgbWJzdGF0IHN0cnVjdCBmb3IgbV9jbHVzdGVycyAoZnJlZWJzZCBhcHBhcmVudGx5IGRyb3BwZWQgaXQpCgoyMDA0LTEwLTE5IDAzOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBEb24ndCBnZW5lcmF0ZSAnR2V0JyBjb2RlIGZvciBpbmFjY2Vzc2libGUgb2JqZWN0cy4KCjIwMDQtMTAtMTkgMDM6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgYWdlbnQgY3Jhc2hpbmcgaWYgbm8gJ2RlbGV0ZV9yb3cnIG9yCiAgICdkdXBsaWNhdGVfcm93JyByb3V0aW5lcyB3ZXJlIGNvbmZpZ3VyZWQuCgoyMDA0LTEwLTE5IDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcmV2ZW50IHRoZSBhZ2VudCBmcm9tIHNwaW5uaW5nIGluIGFuIGluZmluaXRlIGxvb3AKICAgYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUuCgoyMDA0LTEwLTE5IDAzOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBSZXBvcnQgKndoaWNoKiBhZ2VudHggc29ja2V0IGNvdWxkbid0IGJlIG9wZW5lZC4KCjIwMDQtMTAtMTggMjA6MjQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgcmVsZWFzZQoKMjAwNC0xMC0xOCAyMDoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHJlcGxhY2UgaW5jb3JyZWN0IGNvbW1lbnQgYmxvY2sgdy9ub3RlIGFib3V0IHBvc3NpYmxlIGZ1dHVyZSBvcHRpbWl6YXRpb24KCjIwMDQtMTAtMTggMjA6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIHVzZSBuZXcgaW9jdGwgaWZJbmRleCBmaW5kCiAgIC0gbWFrZSBuZXh0IGFsaWFzIGZ1bmMgc3RhdGljCgoyMDA0LTEwLTE4IDIwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICAtIHVzZSBuZXcgaXBhZGRyZXNzIGVudHJ5IGNvcHkgZnVuY3Rpb24gZm9yIHRhYmxlIGxldmVsIHVuZG8gc2V0dXAKICAgLSByZW1vdmUgbm9kZSBsZXZlbCB1bmRvIHNldHVwCiAgIC0gaW1wbGVtZW50IHVuZG9fY29tbWl0CgoyMDA0LTEwLTE4IDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgbmV3IG5ldHNubXBfYWNjZXNzX2lwYWRkcmVzc19lbnRyeV9jb3B5IHRvIGNvcHkgZW50cmllcwoKMjAwNC0xMC0xNyAyMDo1NiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gZml4IHNsaWdodCBtZW1vcnkgbGVhawoKMjAwNC0xMC0xNyAyMDo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0xMC0xNyAyMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5oLAogICAgIGludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIGZkIHBhcmFtZXRlciB0byBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfaWZpbmRleF9nZXQKCjIwMDQtMTAtMTcgMTk6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIG9ubHkgdHJhY2sgd2hldGhlciB1c2VyIGFsbG9jYXRlZCBkYXRhIGNvbnRleHQgZm9yIG5vbi10cmFuc2llbnQgZGF0YQoKMjAwNC0xMC0xNiAxOTo1MyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyIG1hbmRpcjJodG1sIHNjcmlwdCB3YXMgY3V0dGluZyBvZmYgdGhlIGJvdHRvbSB0aGUgbWFuIHBhZ2VzLiAgRml4ZWQuCgoyMDA0LTEwLTE2IDE5OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gdXNlIG5ldyBmZCBwYXJhbSBmb3IgaWZpbmRleCBsb29rdXAsIHdpdGggbG9jYWwgc29ja2V0CiAgIC0gZG9uJ3QgbG9va3VwIGludGVyZmFjZSBpZiBubyBuYW1lCgoyMDA0LTEwLTE2IDE4OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBkb24ndCB1c2UgbV9jbHVzdGVycyBpZiBub3QgYXZhaWxhYmxlCgoyMDA0LTEwLTE2IDE4OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgc2ltcGx5IHJlcXVpcmUgaW50ZXJmYWNlLCBsZXQgaXQgZGVjaWRlIGFib3V0IHNwZWNpZmljIGFyY2ggcmVxdWlyZXMKCjIwMDQtMTAtMTYgMTg6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIGFsd2F5cyBkZWZpbmUgaWZpbmRleCBmdW5jdGlvbjsgc2ltcGx5IHJldHVybiAwIGlmIFNJT0NHSUZJTkRFWCBub3QgYXZhaWwKICAgLSBhZGQgZmQgcGFyYW0gdG8gaWZpbmRleCBnZXQsIGZvciBvcHRpbWl6YXRpb24KCjIwMDQtMTAtMTYgMTg6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBzZXBhcmF0ZSBpbnRlcmZhY2VfY29tbW9uIGluaXQgZnJvbSBhY2Nlc3NfaW50ZXJmYWNlIGluaXQKICAgLSBjYWxsIGFjY2VzcyBmdW5jdGlvbiwgbm90IGFyY2ggKHNvIHVuc3VwcG9ydGVkIGFyY2hlcyB3b3JrKQoKMjAwNC0xMC0xNiAxODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFsd2F5cyBpbmNsdWRlIGlvY3RsIHcvaW50ZXJmYWNlIHN0dWZmCgoyMDA0LTEwLTE2IDE4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIG1vdmUgYWNjZXNzIGluaXQgZnJvbSBhZ2VudCB0byBtaWIgaW5pdAoKMjAwNC0xMC0xNiAxMzo0NCAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy90ZXN0X2Z1bjoKCiAgIC0gY29tbWVudCBvdXQgYW5zaSBjb2xvcnMgKGluY29uc2lzdGVudCB1c2UpCiAgIC0gcHJlZml4IHN1Yi10ZXN0cyAmIHN1bW1hcnkgd2l0aCBtYWluIHRlc3QgbnVtYmVyIHRvIHJlZHVjZSBjb25mdXNpb24KCjIwMDQtMTAtMTYgMTM6NDMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvc25tcGZ1bi5zaDoKCiAgIHVzZSBzbm1wZ2V0bmV4dCBpbnN0ZWFkIG9mIHNubXB0YWJsZSB0ZXN0aW5nIHRhYmxlcwoKMjAwNC0xMC0xNiAxMzo0MiAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gY2hlY2sgZm9yIG5vIHBpZCBmaWxlcyBmb3VuZAogICAtIGNoZWNrIGZvciBwaWRmaWxlIHZhbmlzaGluZwoKMjAwNC0xMC0xNiAxMzo0MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICByZW1vdmUgc3RyYXkgcXVvdGUKCjIwMDQtMTAtMTYgMTA6MzIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaWYgbmV0c3RhdCBpcyBhdmFpbGFibGUsIHRlc3QgZm9yIHBvcnQgaW4gdXNlIGFuZCB0cnkgMiBtb3JlIHJhbmRvbSBwb3J0cwoKMjAwNC0xMC0xNSAyMTowMSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIxOjAwICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIxOjAwICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU5ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OSAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo0OCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0xMC0xNSAyMDo0OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMi5wcmUzCgoyMDA0LTEwLTE1IDIwOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA0LTEwLTE1IDIwOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgdXBkYXRlIGZvciBkYXRhIGFjY2Nlc3MgY2hhbmdlCgoyMDA0LTEwLTE1IDIwOjA0ICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jCjoKCiAgIGxtU2Vuc29ycyBjaGFuZ2VzIGZyb20gQnJ1Y2UKCjIwMDQtMTAtMTUgMTg6MDAgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMiBtYW5kaXIyaHRtbCBzY3JpcHQgd2FzIGN1dHRpbmcgb2ZmIHRoZSB0b3Agb2YgdGhlIG1hbiBwYWdlcy4gIEZpeGVkLgoKMjAwNC0xMC0xNSAxNzozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9vaWRzLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLzogaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLCBpcFN5c3RlbVN0YXRzVGFibGUuaCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmMKLCBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNjo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlhUYWJsZV9pbnRlcmZhY2UuYwosIGlmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE2OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE1OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86CiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1GSVJTVC50eHQsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1pcFN5c3RlbVN0YXRzVGFibGUudHh0OgoKICAgcmVtb3ZlIG5vbi1zb3VyY2UgZmlsZXMKCjIwMDQtMTAtMTUgMTU6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAo6CgogICBmaXggbWF4IGluZGV4IGxlbgoKMjAwNC0xMC0xNSAxNToxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXggY3V0LW4tcGFzdGUgaW4gbG9nIG1zZwoKMjAwNC0xMC0xNSAxNToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHVzZSBTSU9DR0lGSU5ERVggaW9jdGwgZm9yIGlmSW5kZXgKCjIwMDQtMTAtMTUgMTU6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmMsIGludGVyZmFjZV9pb2N0bC5oLAogICAgIGludGVyZmFjZV9saW51eC5jOgoKICAgdXNlIFNJT0NHSUZJTkRFWCBpb2N0bCBmb3IgaWZJbmRleAoKMjAwNC0xMC0xNSAxMTo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIHR3ZWFrIGJ1ZmZlciBzaXplIGNvZGUgYW5kIGFwcGx5IHRvIHRjcCBzb2NrZXRzIHRvbwoKMjAwNC0xMC0xNCAyMDoyOSAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICBNb2RpZmllZCBpbmNsdWRlcyBmb3IgV2luZG93cyBidWlsZHMgdG8gaW5jbHVkZSB3aW5zb2NrIHJhdGhlciB0aGFuIFVuaXggc29ja2V0cy4KCjIwMDQtMTAtMTQgMTg6MTUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaAo6CgogICBvcHRpbWl6ZSBtaWIgaW5kZXggc2l6ZSBkZWZzIChyZWR1Y2UgY2FjaGUgc2l6ZSBieSBoYWxmISkKCjIwMDQtMTAtMTQgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuaCwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IGRvbid0IHVzZSBzdHJ1Y3QgcHRyIGFzIGRhdGEgY29udGV4dAoKMjAwNC0xMC0xNCAxNzo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIGRlZmluZSBtYXggcG9saWN5IGxlbmd0aAoKMjAwNC0xMC0xNCAxNzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICBtaW5vciB0d2VhayB0byBjb21tZW50cywgcmVkdWNlIGRpZmZzIG9uIHN3aXRjaCBmcm9tIGVtYmVkZGVkLT5hbGxvY2F0ZWQgZGF0YQoKMjAwNC0xMC0xNCAxNzo1MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGZyZWUgYSBkYXRhIGNvbnRleHQgd2UgZGlkbid0IGFsbG9jYXRlCgoyMDA0LTEwLTE0IDE3OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBjbGFyaWZ5IHRoYXQgYSBwb2ludGVyIHNob3VsZG4ndCBiZSB1c2VkIGFzIHRoZSBkYXRhIGNvbnRleHQgdHlwZQoKMjAwNC0xMC0xNCAxNzo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgYWNjb3VudCBmb3IgaXBhZGRyZXMtPk9JRCBjb252ZXJzaW9uIGluIGluZGV4IHNwYWNlIGFsbG9jYXRpb25zCgoyMDA0LTEwLTE0IDE3OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgICBtMmNfc2V0dXBfdGFibGUubTJpLCBzeW50YXgtQ09VTlRFUjY0LWdldC5tMmk6CgogICBtaW5vciB0d2VhayB0byBjb21tZW50cywgcmVkdWNlIGRpZmZzIG9uIHN3aXRjaCBmcm9tIGVtYmVkZGVkLT5hbGxvY2F0ZWQgZGF0YQoKMjAwNC0xMC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBmaXggdmFyIG5hbWUKCjIwMDQtMTAtMTQgMDU6NTcgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBtaWIyYy5jb250YWluZXIuY29uZgosIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuc2NhbGFyLmNvbmYsCiAgICAgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgUmV0dXJuICdTTk1QX0VSUl9OT0VSUk9SJyBvbiAibm9ybWFsIiBTRVQgZXJyb3JzLgogICAoU3VjaCBlcnJvcnMgc2hvdWxkIG9ubHkgYmUgcmVwb3J0ZWQgdmlhIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IpCgoyMDA0LTEwLTEzIDE5OjIxICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB1c2UgY29ycmVjdCBmYWNpbGl0eSB3aGVuIGluaXRpYWxpemluZyBzeXNsb2cgbG9nIGhhbmRsZXIuCgoyMDA0LTEwLTEzIDE4OjM2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSByZWJvb3Qgd2FybmluZyBmcm9tIHJlZ2lzdGVyIHNjcmlwdHMgYW5kIGNsYXJpZnkgc3RlcCBpbiBidWlsZCBzdGVwcwoKMjAwNC0xMC0xMyAxNToyNCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvQ29uZmlndXJlLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ3JlYXRlIGxpYnNubXAuZGVmLmluIGZpbGUgZm9yIHNubXBsaWJfZGxsIGFuZCBtb2RpZnkgd2luMzJcQ29uZmlndXJlIHRvCiAgIGdlbmVyYXRlIGxpYnNubXAuZGVmIGlmIGR5bmFtaWMgaXMgc3BlY2lmaWVkIGFuZCB3aXRoIG9yIHdpdGhvdXQgdGhlIElQdjYKICAgbGluZXMgaW4gbGlic25tcC5kZWYuCgoyMDA0LTEwLTEyIDIxOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggYnVnIFsgMTA0NTYwNSBdIHN5bnRheCBlcnJvciBpbiBzbm1wdHJhcGQuYyAod3JvbmcgYXJnIG9yZGVyKQoKMjAwNC0xMC0xMiAxNzowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhbGxvdyBidWlsZF9vaWRfbm9hbGxvYyB0byBjb21wbGV0ZWx5IGZpbGwgaW5jb21pbmcgYnVmZmVyCgoyMDA0LTEwLTEyIDE2OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtbW92ZSBpbml0aWFsaXphdGlvbiBvZiBpbnRlcm5hbHMgYmFjayBiZWZvcmUgd2UgdXNlIHRoZW0KICAgICAgICAgICAgKGFoLCB0aGUgam95cyBvZiBhdXRvbWF0ZWQgcGF0Y2hpbmcpCgoyMDA0LTEwLTEyIDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaWYtbWliL2lmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZi1taWIvaWZYVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9kZWZhdWx0LXRhYmxlLWluZXRDaWRyUm91dGVUYWJsZS5tMmQKLCBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2RlZmF1bHQtdGFibGUtaXBDaWRyUm91dGVUYWJsZS5tMmQKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0TmV0VG9NZWRpYVRhYmxlLm0yZAosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2RlZmF1bHQtdGFibGUtaXBBZGRyZXNzVGFibGUubTJkLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvZGVmYXVsdC10YWJsZS1pcFN5c3RlbVN0YXRzVGFibGUubTJkCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS9kZWZhdWx0LXRhYmxlLXVzbURIVXNlcktleVRhYmxlLm0yZAo6CgogICByZW1vdmUgZmlsZXMgdXNlZCBmb3IgY29kZSBnZW4gKG1vdmVkIHRvIG5ldHNubXAvbW9kdWxlLXRlbXBsYXRlcyBjdnMgdHJlZSkKCjIwMDQtMTAtMTIgMTM6MjQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEZpeCBJUFY2IGNvbXBpbGUgaXNzdWVzIHdpdGggUGVybAoKMjAwNC0xMC0xMiAxMzowMyAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRml4IFBlcmwgY29tcGlsZSBpc3N1ZSB3aXRoIGRiZ190b2tlbnMgYW5kIGRlYnVnX251bV90b2tlbnMuICBGaXggc25tcHRyYXBkCiAgIGNvbXBpbGUgaXNzdWUgYnkgYWRkaW5nIGlwaGxhcGkubGliIHRvIG5ldHNubXBtaWJzc2RrLgoKMjAwNC0xMC0xMiAxMDo0MCAgd2FzbWl0aDMyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgU29tZSB2ZXJzaW9ucyBvZiBnY2Mgd2l0aCBNaW5HVyBkbyBub3QgbGlrZSBhIGxhYmxlIHdpdGggbm8gc3RhdGVtZW50cyBmb2xsb3dpbmcuCiAgIFRoZSBzb2xsdXRpb24gd2FzIHRvIGFkZCBhbiBlbXB0eSBzdGF0ZW1lbnQgaW4gdGhlIHN1ZG8gZXhjZXB0aW9uIGhhbmRsaW5nCiAgIGNvZGUgaW4gd2luc2VydmljZS5jLiBOZXQtU05NUCB3aWxsIG5vdyBjb21waWxlIHVzaW5nIGEgTGludXggaG9zdGVkIFdpbmRvd3MKICAgY3Jvc3MgY29tcGlsZXIuCgoyMDA0LTEwLTExIDIxOjA2ICBzbGlmCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmUgb2YgcmFuZ2Vfc3ViaWQKCjIwMDQtMTAtMTEgMjE6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyIHNlc3NfY29tbXVuaXR5CgoyMDA0LTEwLTExIDIxOjAyICBzbGlmCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZ2V0IGRlZmluaXRpb24gb2Ygc2hvdWxkX2luaXQKCjIwMDQtMTAtMTEgMjE6MDIgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgcGlja3VwIG5ldyBkZWZpbml0aW9uIG9mIHN0cnRva19yIGFzIG5lZWRlZC4KCjIwMDQtMTAtMTAgMjE6MjggIGJzaGF3NjY2CgogICAqIFJFQURNRS5zb2xhcmlzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIExNLVNFTlNPUlMtTUlCIGZvciBTb2xhcmlzCgoyMDA0LTEwLTA5IDA3OjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW92ZSB2YXIgZGVjbCB0byB0b3Agb2YgZnVuYzsgcmVtb3ZlIGV4dHJhIH0KCjIwMDQtMTAtMDkgMDQ6NDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYwo6CgogICByZW1vdmUgYnVnZml4ICMxMDQzMTk3IC0gd3JvbmcgcGF0Y2ggZG9uZSB0aGUgd3Jvbmcgd2F5IGF0IHRoZSB3cm9uZyB0aW1lCgoyMDA0LTEwLTA4IDIyOjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICAtIChkaXN0L01ha2VmaWxlKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjE6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgZWRpdHMKCjIwMDQtMTAtMDggMjE6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMTAtMDggMjE6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgYXV0b2NvbmYgdmVyc2lvbiByZXE7IHVwZGF0ZSBuZXQtc25tcCB2ZXJzaW9uIHRvIC5wcm8yCgoyMDA0LTEwLTA4IDIxOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGNoYW5nZSB0aGUgYW5vbiBncm91cHMvZXRjIGNyZWF0ZWQgYnkgdGhlIHNpbXBsZSB0b2tlbnMgdG8gYmUgbW9yZSBkZXNjcmlwdGl2ZSBhbmQgdW5pcXVlCgoyMDA0LTEwLTA4IDIxOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgdGVzdCB0aGUgcmlnaHQgdmFyaWFibGUKCjIwMDQtMTAtMDggMjE6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIG1ha2UgdGhlIGJhY2tncm91bmQgb2YgdGhlIG9ic29sZXRlIHNlY3Rpb24gcGlua2lzaAoKMjAwNC0xMC0wOCAyMTozOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBlbmFibGUgc3RkZXJybG9nCgoyMDA0LTEwLTA4IDIwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIGZpeCBpbmNvbnNpc3RlbmNpZXMgcG9pbnRlZCBvdXQgYnkgUGF0cmljayBXZWxjaGUKCjIwMDQtMTAtMDggMjA6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBtYWtlIHN1cmUgc25tcEVuZ2luZVRpbWUgY2FsY3VsYXRpb25zIGRvbid0IHdyYXAgcGFzdCBhbiB1aW50IHNpemUKCjIwMDQtMTAtMDggMTk6MjcgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgZnVuY3Rpb24KCjIwMDQtMTAtMDggMTk6MjUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGZpeCB0eXBvCgoyMDA0LTEwLTA4IDE5OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgdHdlYWsgc29tZSBtYWNybyBhbmQgZnVjdGlvbiBuYW1lcy92YWx1ZXMKCjIwMDQtMTAtMDggMTk6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKLCBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCjoKCiAgIHVwZGF0ZSBnZW5lcmVhdGVkIGNvZAoKMjAwNC0xMC0wOCAxOTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgdHdlYWsgbWF4IG9pZCBndWVzc3dvcmsKCjIwMDQtMTAtMDggMTY6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtcmVkdWNlIHNvbWUgZ2VuZXJhdGVkIGNvbW1lbnRzIGlmIHZlcmJvc2Ugbm90IHNldAoKMjAwNC0xMC0wOCAxNjo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXVzZSBuZXcgbWFjcm8gZm9yIHNpemUgb2YgaW5kZXggb2lkIGJ1ZmZlcgoKMjAwNC0xMC0wOCAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLWluaXQgaXJyZXZlcnNpYmxlIGNvbW1pdCB0byAwCgoyMDA0LTEwLTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBhZ2VudC9zbm1wX2FnZW50LmMKOgoKICAgQXBwbHkgcGF0Y2ggZm91bmQgaW4gYnVnICMxMDQwNDMxIHRvIGluY2x1ZGUgdHJhbnNwb3J0IGluZm9ybWF0aW9uIGluIHRoZSBkdW1wIG91dHB1dAoKMjAwNC0xMC0wOCAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtdXNlIG5ldyBkZWZpbmUgaW4gaGVhZGVyIGZvciBjYWNoZSB0aW1vdWV0CgoyMDA0LTEwLTA4IDE2OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtcmVtb3ZlIHNvbWUgcmVkdW5kYW50IGNvbW1lbnRzCgoyMDA0LTEwLTA4IDE2OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC10cnkgdG8gc2hvcnRlbiBzaXplIG9mIG9pZCBidWZmZXJzIGZvciBpbmRleGVzCgoyMDA0LTEwLTA4IDE2OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtZG9uJ3QgZ2VuIGludGVybmFsIGVudW1zIGlmIG5vdCBtYXBwaW5nCgoyMDA0LTEwLTA4IDE2OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMKLCBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1nZXQubTJjLAogICAgIG1mZC1kYXRhLXNldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBub2RlLWdldC5tMmkKLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmksCiAgICAgc3ludGF4LUNPVU5URVI2NC1nZXQubTJpLCBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwKICAgICBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpCiwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLAogICAgIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaSwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmk6CgogICByZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKCjIwMDQtMTAtMDggMTY6MDIgIHNsaWYKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRnJvbSBEZWJpYW4gcGF0Y2ggbmV0LXNubXBfNS4xLjItNS5kaWZmLmd6IC0tIHByb3BhZ2F0ZSBXUkFQTElCUwoKMjAwNC0xMC0wOCAxNTozMiAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYXBwbHkgdGhlIGludGVudCBvZiBwYXRjaCA5NDcwMzMgZnJvbSBDbGF1cyBLbGVpbiB0byBhbGxvdyBmb3IgY3Jvc3MgY29tcGlsYXRpb24gc3VwcG9ydCB0aHJvdWdoIHRoZSB1c2Ugb2YgLS1wcmVmaXg9IGFuZCAtLWV4ZWMtcHJlZml4PSBmbGFncy4gIERpZG4ndCBhcHBseSB0aGUgd2hpdGUgc3BhY2UsIHJlZm9ybWF0dGluZywgZXRjIHBvcnRpb25zIHNpbmNlIGl0cyBhZ2FpbnN0IG91ciBwYXRjaCBhY2NlcHRhbmNlIHN0YW5kYXJkcy4gIEFsc28gbWFkZSBhIHNtYWxsIGZpeCBzbyB0aGF0IC0tcGVyZml4PS9zb21ldGhpbmcgZG9lc24ndCBhZGQgYSAvbmV0LXNubXAgc3VmZml4IHRvIHRoZSBpbmNsdWRlIGRpcmVjdG9yeQoKMjAwNC0xMC0wOCAxNToxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBbIDEwMjI3ODcgXSBQYXRjaCAoZnJvbSBHZWVydCBEZSBQZXV0ZXIpIHRoYXQgYWxsb3dzIFVEUCBidWZmZXIgdHVuaW5nLi4uICBUYWtlIDIgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiAtY29kZXJzCgoyMDA0LTEwLTA4IDE0OjE1ICBzbGlmCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBPSUQvT0lELnBtLAogICAgIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIGFnZW50L2FnZW50LnBtLAogICAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIG1hbmFnZXIvZGlzcGxheXRhYmxlLnBtCjoKCiAgIFNlZW4gaW4gYSBEZWJpYW4gcGF0Y2guICBJbnNlcnQgcmVxdWlyZWQgYmxhbmsgbGluZSBmb2xsb3dpbmcgX19FTkRfXyBjdXQgbWFyay4KCjIwMDQtMTAtMDggMTM6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBEb24ndCBzaG93IHNtdXggcGVlciBwYXNzd29yZCBpbiBjb25uZWN0IGFjY2VwdC9yZWZ1c2UgbG9nIG1lc3NhZ2VzLgoKMjAwNC0xMC0wOCAxMTo1MiAgc2xpZgoKICAgKiB0ZXN0aW5nLzogcmZjMTIxMy9SRUFETUUsIHJmYzEyMTMvcnVuLAogICAgIHJmYzEyMTMvc25tcGZ1bi5zaCwgcmZjMTIxMy90ZXN0X2Z1biwKICAgICByZmMxMjEzL3Rlc3RtaWIxLnNoLCByZmMxMjEzL3Rlc3RtaWIyLnNoLAogICAgIHJmYzEyMTMvdGVzdG1pYjMuc2gsIHRlc3RzL1QxNjByZmMxMjEzLAogICAgIHRlc3RzL1QxNjFyZmMxMjEzLCB0ZXN0cy9UMTYycmZjMTIxMzoKCiAgIHBhdGNoICM2ODk3NTcgLSBhZGQgdGVzdCBjYXNlcyBmb3IgYWNjZXNzaW5nIFJGQy0xMjEzIE1JQiB2YXJpYWJsZXMuCiAgIHRoYW5rcyB0byBMaW5nIFhpYW9mZW5nIGZvciB0aGUgb3JpZ2luYWwgd29yay4KCjIwMDQtMTAtMDggMTA6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGluaXRpYWxpemUgcHRyIHRvIE5VTEwKCjIwMDQtMTAtMDggMTA6MzEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBmaXggYnVnIzEwNDMxOTcgLSBwcm92aWRlIGEgZnVuY3Rpb24gdG8gdGVzdCBvcyB2ZXJzaW9uIGFuZCByZWxlYXNlCgoyMDA0LTEwLTA4IDEwOjIyICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gZml4IGJ1ZyBbIDEwMjU0NTQgXSB1bmRlZmluZWQgc3ltYm9scyBpbiBzbm1wdHJhcGQKICAgICAtIG1vdmUgaW5jbHVkZSAiYWdlbnRfbW9kdWxlX2luaXRzLmgiIGluY2x1ZGUgaW5zaWRlIGluaXRfYWdlbnQKCjIwMDQtMTAtMDggMDk6MjkgIHdhc21pdGgzMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMybXN2Yy5oOgoKICAgVGhlIExpbnV4IGhvc3RlZCB2ZXJzaW9uIG9mIE1pbkdXIHJlcG9ydHMgaXRzZWxmIGFzIG1pbmd3MzJtc3ZjLiBUaGlzIHN5c3RlbQogICBoZWFkZXIgZG9lcyBub3RoaW5nIG1vcmUgdGhhbiBkZWZpbmUgbWluZ3czMiBhbmQgaW5jbHVkZSBtaW5ndzMyLmguIEFsbCBjaGFuZ2VzCiAgIHNob3VsZCBiZSBtYWRlIGluIG1pbmd3MzIuaC4KCjIwMDQtMTAtMDggMDk6MDQgIGFsZXhfYgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXRzbm1wX2dldGVudigpOiBNb3ZlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGludG8gV0lOMzIgSUZERUYKCjIwMDQtMTAtMDggMDk6MDEgIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgbG9jYWwvc25tcGNvbmYsCiAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvdG9vbHMuYywgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLAogICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEFkZCBuZXRzbm1wX2dldGVudigpIHdoaWNoIGlzIGEgd3JhcHBlciBmb3IgZ2V0ZW52KCkgdG8gYWRkCiAgIGJhc2ljIFdpbmRvd3MgcmVnaXN0cnkgc3VwcG9ydC4KCjIwMDQtMTAtMDcgMTk6MzEgIHNsaWYKCiAgICogaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaDoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmggYW5kIG5ldC1zbm1wL3R5cGVzLmgKICAgZm9yIGltcHJvdmVkIFVDRF9DT01QQVRJQkxFIHVzZXMgKGZyb20gRmVkb3JhIG5ldC1zbm1wLTUuMC42LWNvbXBhdC5wYXRjaCkuCgoyMDA0LTEwLTA3IDE4OjQ0ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVtb3ZlIG1pYjJjLml0ZXJhdGUyLmNvbmYKCjIwMDQtMTAtMDcgMTc6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZS1pbnN0YWxsIHBhdGggZml4LCBwcm9tcHQgb3ZlcndyaXRlIHNubXAuY29uZgoKMjAwNC0xMC0wNyAxNjoxNSAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzIgRExMIHN1cHBvcnQgZm9yIHN0cnRva19yCgoyMDA0LTEwLTA3IDE1OjIxICBhbGV4X2IKCiAgICogc25tcGxpYi9zdHJ0b2tfci5jLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgTVNWQyBzdXBwb3J0IGZvciBzdHJ0b2tfcgoKMjAwNC0xMC0wNyAxNDo1NyAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIGRlZmluZWQgTkVUU05NUF8qIGRlZmluZXMKCjIwMDQtMTAtMDcgMDU6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHN0cnRva19yLmM6CgogICBhZGQgc3RydG9rX3IKCjIwMDQtMTAtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgbWFrZSBwcm94eSBuby1jb21tdW5pdHkgc3VwcG9ydCB1c2luZyAtQ2MgaW5zdGVhZCBvZiBhc3N1bWluZyB5b3Ugd2FudGVkIGl0IHRoYXQgd2F5CgoyMDA0LTEwLTA2IDE5OjIyICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgdGVtcCB2YXIgImkiIGludHJvZHVjZWQgYnkgcmVjZW50IGlwdjYgcGF0Y2guCgoyMDA0LTEwLTA2IDE5OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICByZW5hbWUgdG8gTkVUU05NUF9STkQuIChmb3Jnb3QgdG8gY2hlY2sgdGhpcyBmaWxlIGluIGZyb20gZWFybGllciBjaGVja2luCgoyMDA0LTEwLTA2IDE3OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBrc20gcGF0Y2ggcHJvYmxlbSBwb2ludGVkIG91dCBieSBCdWNrIEh1cHBtYW5uCgoyMDA0LTEwLTA2IDE3OjQ5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaDoKCiAgIGFkZCBtaXNzaW5nIGRlZmluZSBFTkdJTkVJRF9UWVBFX05FVFNOTVBfUk5EIDI1NgoKMjAwNC0xMC0wNiAxNjo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IGJ1ZyBbIDk4NjIzOCBdIHNubXBkIGxvb3BzIGZvcmV2ZXIKCjIwMDQtMTAtMDYgMTY6MDEgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBmaXggYnVnIzEwNDA0Mjk6IHRlc3QgZXZlcnkgZl9mbXRhZGRyIGNhbGwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgb3IgZnJlZWluZy4KICAgQ2F0Y2ggbWVtb3J5IGxlYWtzIGluIHNubXB0ZXN0LCBzbm1wdHJhcGQsIGFuZCBzbm1wc3RhdHVzLgoKMjAwNC0xMC0wNiAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQYXRjaCBbIDkyMzQ5NCBdIGZyb20gQnVjazogaW1wcm92ZWQgYXV0b2NvbmYgc3VwcG9ydCBhbmQgaGVpbWRhbCBzdXBwb3J0IGZvciBrc20uCgoyMDA0LTEwLTA2IDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCBbIDk0MjE1NSBdIEZyb20gRGFpLkg7IElQdjYgYWRkcl9zdHJpbmcgZml4IGZvciBsaWJ3cmFwCgoyMDA0LTEwLTA2IDE0OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IGJ1ZyBbIDYxNTc0NCBdIFNwdXJpb3VzIERJU01BTi1FVkVOVCB0cmFwCgoyMDA0LTEwLTA2IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBQYXRjaCBbIDEwNDA3MTggXSBmcm9tIEJlbiBSb2dlcnM6IEFnZW50eCBlcnJvciBwcm9wYWdhdGlvbiBhbmQgaW5maW5pdGUgbG9vcAoKMjAwNC0xMC0wNiAxNDoxMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZXN0b3JlIHB0ciBpbml0IGJlZm9yZSBkZXJlZmVyZW5jZTsgbm8gaWRlYSBob3cgdGhpcyBoYXMgYmVlbiB3b3JraW5nIGZvciB0aGUKICAgbGFzdCA2IG1vbnRocywgYW5kIHdoeSBpdCBzdGFydGVkIGNyYXNoaW5nIG9uIG1lIHRvZGF5LgoKMjAwNC0xMC0wNiAxMzoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gYmFjayBvdXQgYWxsIG9mIGZpeCBmb3IgYnVnIDg2NTQxNQogICAgIC0gaGVhZGVyX2lmRW50cnkgZGVwZW5kcyBvbiBjb250aWd1b3VzIGlmSW5kZXggdmFsdWVzLCBhbmQgSSdtIG5vdCBhYm91dAogICAgICAgdG8gdHJ5IGFuZCBmaXggdGhhdCBpbiB0aGlzIGlmZGVmIGhlbGwtaG9sZS4gVGhvc2Ugd2FudGluZyBub24tY2hhbmdpbmcKICAgICAgIGlmSW5kZXhlcyB3aWxsIGp1c3QgaGF2ZSB0byBtb3ZlIHRvIHRoZSBtZmQtcmV3cml0ZS4KCjIwMDQtMTAtMDYgMTM6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGJhY2sgb3V0IGFsbCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUKICAgICAtIGhlYWRlcl9pZkVudHJ5IGRlcGVuZHMgb24gY29udGlndW91cyBpZkluZGV4IHZhbHVlcywgYW5kIEknbSBub3QgYWJvdXQKICAgICAgIHRvIHRyeSBhbmQgZml4IHRoYXQgaW4gdGhpcyBpZmRlZiBoZWxsLWhvbGUuIFRob3NlIHdhbnRpbmcgbm9uLWNoYW5naW5nCiAgICAgICBpZkluZGV4ZXMgd2lsbCBqdXN0IGhhdmUgdG8gbW92ZSB0byB0aGUgbWZkLXJld3JpdGUuCgoyMDA0LTEwLTA2IDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBiYWNrIG91dCBwYXJ0IG9mIGZpeCBmb3IgYnVnIDg2NTQxNSwgaXQgYnJva2Ugc29sYXJpcyAmIHByb2JhYmx5IG90aGVycwogICAgIChub3QgYWxsIHBsYXRmb3JtcyBoYXZlIEludGVyZmFjZV9TY2FuX0luaXQsSW50ZXJmYWNlX1NjYW5fTmV4dCkKCjIwMDQtMTAtMDYgMTA6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggIzEwNDEzNzggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCB0aGUgZGVzY3JpcHRpb24gb2YgaG93IGVuZ2VJRHMgYXJlIGNyZWF0ZWQuCgoyMDA0LTEwLTA2IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IHRoZSBjb21wbGFpbnQgb3V0bGluZWQgYnkgVGhvbWFzIEFuZGVycyBpbiBQYXRjaCAxMDQzNzggdXNpbmcgdGhlIG5ldC1zbm1wIGVudGVycHJpc2UgbnVtYmVyIGluc3RlYWQgb2YgdGhlIFVDRCBvbmUgZm9yIHJhbmRvbWx5IGNvbXBvc2VkIGVuZ2luZUlEcwoKMjAwNC0xMC0wNiAxMDozNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluZWQgTkVUU05NUF8qIGRlZmluZXMKCjIwMDQtMTAtMDUgMjI6MjcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgTWFnbnVzIEZyb21yZWlkZSwgTWFyY3VzIE1laXNzbmVyLCBBbmRyZXcgUnVja2VyIEpvbmVzLCBEYWkuSC4KCjIwMDQtMTAtMDUgMjE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXJ0IG9mIHBhdGNoIFsgOTM5NTk1IF0gZnJvbSBzdW4gKHVwZGF0ZSBjYWNoZSB0aW1lcykKCjIwMDQtMTAtMDUgMjE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGFwcGx5IHRpbnkgcGllY2Ugb2YgcGF0Y2ggWyA4MzYzOTAgXQogICAgIC0gYXBwbGllZCBtb3JlIGlmbmFtZSB0byBpZnR5cGUgbWFwcGluZ3MKCjIwMDQtMTAtMDUgMjE6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA4MTE2ODcgXSBQcm94eSBzdXBwb3J0IGlnbm9yZXMgY29tbXVuaXR5IHN0cmluZyBpZiAtYyBvcHRpb24gb21pdHRlZAoKMjAwNC0xMC0wNSAyMDo0NyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA1NTExODMgXSBMUlUgcmVwbGFjZW1lbnQgZm9yIGFkZHJlc3MgY2FjaGUKCjIwMDQtMTAtMDUgMjA6MDYgIGFsZXhfYgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBtaXNzaW5nIHJlZmVyZW5jZSBmb3Igd2luc2VydmljZXJjIGluIE1pbkdXIHNlY3Rpb24KCjIwMDQtMTAtMDUgMTk6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA5OTY0NjIgXSBhZ2VudHggZmFpbHMgb24gbGl0dGxlIGVuZGlhbiA2NGJpdAoKMjAwNC0xMC0wNSAxOToxNSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGFwcGx5IHBhdGNoIFsgMTAwOTc5OSBdIEFnZW50WCBSZWdpc3Rlci1QRFUgd2l0aCBtdWx0aXBsZSBpdGVtcwoKMjAwNC0xMC0wNSAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIGFwcGx5IFsgMTAxMTQ3MSBdIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcyArIGlubGluZSBtYWNybyBwcm9ibGVtcwogICAgIC0gZGVmaW5lIG1hY3JvIGZvciB1bml4d2FyZSBpbmNsdWRlcwoKMjAwNC0xMC0wNSAxOTowMSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZW1vdmUgZXh0cmFuZW91cyBlbmRpZgoKMjAwNC0xMC0wNSAxODozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMDUgMTc6NDYgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAtIGFwcGx5IFsgMTAxMTQ3MSBdIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcyArIGlubGluZSBtYWNybyBwcm9ibGVtcwogICAgIC0gY2hlY2sgZm9yIG5lc3RlZCBzdGF0aWMgaW5saW5lIHN1cHBvcnQKCjIwMDQtMTAtMDUgMTc6MzggIGFsZXhfYgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvd2luc2VydmljZXJjLnJjOgoKICAgQXBwbHkgcGF0Y2ggMTA0MDMyNSAtIHdpbjMyIE1pbkdXIGFnZW50L3RyYXBkIHNlcnZpY2UgRXZlbnRsb2cgZml4ZXMKCjIwMDQtMTAtMDUgMTY6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGFwcGx5IHBhdGNoIFsgMTA0MDI1NCBdIFN0cmVuZ3RoZW4gQUdFTlRYIE9JRCBjaGVja3MKCjIwMDQtMTAtMDUgMTY6MjYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaCBbIDEwNDAyNjEgXSBNYWtlIGl0IHBvc3NpYmxlIHRvIHNlbGVjdCB0ZXN0cyBvbiBhZ2VudCBtb2R1bGVzCgoyMDA0LTEwLTA1IDE2OjE1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0wNSAxNjoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBhZGQgY2hlY2sgZm9yIHN0cnRva19yIGFuZCBydW4gYXV0b2hlYWRlcgoKMjAwNC0xMC0wNSAxNjoxMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBHZWVydCBEZSBQZXV0ZXIgdG8gY29udHJpYnV0b3JzCgoyMDA0LTEwLTA1IDE2OjEyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYXBwcy9zbm1wdmFjbS5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGFwcGx5IHBhdGNoIFsgMTA0MDMzMCBdIEdldHRpbmcgcmlkIG9mIHN0cnRvawoKMjAwNC0xMC0wNSAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHJlbW92ZSBhdHRyaWJ1dGlvbiBjb21tZW50CgoyMDA0LTEwLTA1IDA3OjA2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVtb3ZlIC1DIGFuZCAtYyByZWdpc3RlciBvcHRpb25zIGFuZCBhZGQgbm90ZSBhYm91dCByZWJvb3QKCjIwMDQtMTAtMDUgMDA6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgcGF0Y2ggZnJvbSBqcHJha2FzaGJhYnU6IG1vdmUgZW5kZnNlbnQgY2FsbCBuZWFyIHNldGZzZW50IHRvIGF2b2lkIGNvbXBpbGUgZXJyb3IKCjIwMDQtMTAtMDQgMjA6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBlbG1pbmF0ZSB1c2Ugb2YgVE9ET19maW5kXyogdW5kZWZpbmVkIG1hY3JvcwoKMjAwNC0xMC0wNCAyMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgcHV0IGlycmV2ZXJzaWJsZV9jb21taXQgc2V0dGluZyBpbiBnZW5lcmF0ZWQgZGVmYXVsdC10YWJsZS0qCgoyMDA0LTEwLTA0IDIwOjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIGVsbWluYXRlIHVzZSBvZiBUT0RPX2ZpbmRfKiB1bmRlZmluZWQgbWFjcm9zCgoyMDA0LTEwLTA0IDE1OjA5ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFJlbmFtZSBnX3N6QXBwTmFtZSB0byBhcHBfbmFtZSB0byBmb2xsb3cgbmFtaW5nIHN0YW5kYXJkcwoKMjAwNC0xMC0wNCAxMTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksIG5vZGUtc2V0Lm0yaQo6CgogICAtIG1ha2UgY29tbWVudHMgbW9yZSB1bmlxdWUgKGhlbHAgb3V0IGRpZmYpCiAgIC0gcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBjb21tZW50cwoKMjAwNC0xMC0wNCAxMTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHVzZSBmdWxsIHBhdGhzIGluc3RlYWQgb2YgcmVsYXRpdmUKCjIwMDQtMTAtMDQgMTE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgYWRkIGRlYnVnIHRva2VucwoKMjAwNC0xMC0wNCAwOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHN0b3JlIHBlcm1hbmVudCByb3dzIHRvbwoKMjAwNC0xMC0wNCAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGRvbid0IHJlc2V0IG9wZXJfc3RhdHVzIGZsYWdzLCBpb2N0bCBjb2RlIGhhcyBhbHJlYWR5IHNldCB0aGVtCgoyMDA0LTEwLTA0IDA5OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgbGlzdCBhbGwgbG9jYXRpb25zIHRvIHVwZGF0ZSBpbiBmbG93Y2hhcnQgY29tbWVudHMKCjIwMDQtMTAtMDMgMTg6MjIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBVbnJlZ2lzdGVyIHNlcnZpY2VzIG9uIHVuaW5zdGFsbCwgYWRkIG1pc3NpbmcgbWlicywgbWliMmMgYW5kIGhlYWRlciBmaWxlcy4KCjIwMDQtMTAtMDMgMTQ6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBmcm9tIENvcmV5IFdyaWdodDogZml4IHNlbnNvcl9hcnJheSBzaXplIGxpbWl0IHRlc3QKCjIwMDQtMTAtMDMgMTA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGFwcGx5IG1pc3NlZCBiaXQgZnJvbSBwcmV2aW91cyBwYXRjaAoKMjAwNC0xMC0wMyAwODo0NyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgLSBhcHBseSBwYXRjaCBmcm9tIEdlZXJ0IERlIFBldXRlciBbIDEwMjI5NDEgXSBTcGVlZCB1cCBhZGRpbmcgYSByb3cgdG8gYSB0YWJsZQogICAgIC0gKHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24pCiAgICAgLSB0ZXN0IGZvciBhcHBlbmQgYmVmb3JlIGxpbmVhciBzZWFyY2gKICAgICAtIHNhdmUgcmMgaW5zdGVhZCBvZiByZXBlYXRpbmcgZnVuY3Rpb24gY2FsbAoKMjAwNC0xMC0wMyAwNzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBwYXRjaCBmcm9tIFBhdHJpY2sgV2VsY2hlOyBjaGVjayBmb3IgTlVMTCBiZWZvcmUgZGVyZWYKCjIwMDQtMTAtMDIgMjA6NTEgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBBZGQgc3RlcCB0byBjb21wYXJlIGNvbXBpbGVkIGFuZCBpbnN0YWxsZWQgZm9sZGVycyB0byBsb2NhdGUgbWlzc2luZyBmaWxlcwoKMjAwNC0xMC0wMSAyMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzeXNjb25mIGFuZCB0aW1lcyBmdW5jdGlvbnMgYW5kIHN5cy90aW1lcy5oIGhlYWRlcgoKMjAwNC0xMC0wMSAyMDo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIHNubXB2My5jOgoKICAgUHJvcGVyIGZpeCBpdCB2MyBlbmdpbmV0aW1lIHdyYXBwaW5nIHByb2JsZW0uICBGYWlybHkgcG9ydGFibGUgJiYgdXNlcyB0aW1lcygpLgoKMjAwNC0xMC0wMSAyMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgY3JlYXRlIGEgbmV3IGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYgZnVuY3Rpb24KCjIwMDQtMTAtMDEgMjA6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzZXQgaGVudCB2YXJpYWJsZSB0byBOVUxMIHRvIHNxdWFzaCBib2d1cyBjb21waWxlciB3YXJuaW5nCgoyMDA0LTEwLTAxIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgIGZpeCBidWcgWyA4NjU0MTUgXSBpbmNvcnJlY3QgaWZBZEVudElmSW5kZXggZmllbGQKCjIwMDQtMTAtMDEgMDg6NTggIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBTaW1wbGlmeSBidWlsZCBzdGVwcwoKMjAwNC0xMC0wMSAwNToyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlMi5jb25mLAogICAgIGxvY2FsL21pYjJjLmNvbmYsIE5FV1M6CgogICBCcmVhayB0aGUgaGFiaXQgb2YgYSBsaWZldGltZSwgaGF2ZSB0aGUgY291cmFnZSBvZiBteSBjb252aWN0aW9ucywKICAgYW5kIHB1c2ggdGhlIG5ldyAoZnVsbGVyKSBpdGVyYXRlIGNvbmZpZyBpbiBwcmVmZXJlbmNlIHRvIHRoZSBlYXJsaWVyCiAgIChyZWxhdGl2ZWx5IGVtcHR5KSBmcmFtZXdvcmsuCiAgICAgW0kganVzdCBrbm93IEknbSBnb2luZyB0byByZWdyZXQgZG9pbmcgdGhpcy4uLi4uXQoKMjAwNC0wOS0zMCAyMDoxMCAgd2FzbWl0aDMyCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFVwZGF0ZWQgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGJhdGNoIGZpbGVzIGZvciB0aGUgV2luZG93cyBpbnN0YWxsZXIgc2NyaXB0LgogICBBcHBsaWVkIGEgbW9kaWZpZWQgcGF0Y2ggWyAxMDM3Njk1IF0gd2l0aCBlZGl0cyBtYWRlIGJ5IEFsZXggQnVyZ2VyIGFuZCBteXNlbGYuCiAgIFRoZSBwYXRjaCBhbHNvIHJlbW92ZXMgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIHRoZSBzY3JpcHQgdGhhdCB3ZXJlIG5vdAogICBiZWluZyBpbnN0YWxsZWQuCgoyMDA0LTA5LTMwIDExOjEyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY2hhbmdlIDUgLT4gdmFyaW91cyBzbyB3ZSBzdG9wIGdldHRpbmcgaXQgd3JvbmcKCjIwMDQtMDktMzAgMDg6NTkgIGFsZXhfYgoKICAgKiB3aW4zMi9idWlsZC5wbDoKCiAgIEZvciBidWcgMTAzNzUyNDogU2V0IHBhdGggdG8gLkRMTCBmb3IgUGVybCBidWlsZCAvIHRlc3QKCjIwMDQtMDktMzAgMDU6NDggIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhdmUgJ3JlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nJyB0YWtlIG5vdGUgb2YgdGhlCiAgIGluaXRpYWwgbGVuZ3RoIHdoZW4gdXNpbmcgZXhpc3RpbmcgYnVmZmVycy4KCjIwMDQtMDktMzAgMDI6NTUgIHNsaWYKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgaWdub3JlIGVycm9ycyBmb3IgYW55IG1pc3NpbmcgTUFONUcgZmlsZXMgKGUuZy4sIG1pYjJjLmNvbmYuNSkKCjIwMDQtMDktMzAgMDI6NDMgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIGFkZCBERUxBWSBhZnRlciBzZXQgdG8gYWxsb3cgdGltZSBmb3IgdHJhcCB0byBmaXJlIGFuZCBiZSBsb2dnZWQuCgoyMDA0LTA5LTMwIDAxOjM4ICBzbGlmCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4ICJJbmNvbnNpc3RlbnQgb3BlcmF0b3IgZm9yIHRlc3QiIHdoaWNoIHdhcyBpbnRyb2R1Y2VkIHdoZW4KICAgd2hpdGVzcGFjZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGluIGluc3RhbGxzdWJkaXJoZWFkZXJzLgogICBJbmRlbnQgbGluZXMgb2YgcnVsZSBib2RpZXMgdXNpbmcgdGFiIG9ubHkgKGEgcmVxdWlyZW1lbnQgZm9yIHNvbWUgIm1ha2UiKS4KICAgUmVtb3ZlIGV4dHJhbmVvdXMgd2hpdGVzcGFjZSBuZWFyIHRoZSBlbmQgb2YgY29udGludWF0aW9uIGxpbmVzLgoKMjAwNC0wOS0yOSAyMzoxOCAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IHRyeSB0byBpbnN0YWxsIHVjZC1zbm1wL2FnZW50X21vZHVsZV9jb25maWcuaCAobm8gc3VjaCBmaWxlKQoKMjAwNC0wOS0yOSAxODowMiAgYWxleF9iCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgc25wcmludGYgbm93IHVzZXMgc2l6ZW9mKG9iamVjdCkKCjIwMDQtMDktMjkgMTc6MzUgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIG5vdGUgaW1wb3J0YW5jZSBvZiBtYXRjaGluZyBNZXNzYWdlSWQgdmFsdWUgZm9yIFJlcG9ydEV2ZW50LgoKMjAwNC0wOS0yOSAxNTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgUGF0Y2g6IDEwMzEwNDYgd2hpdGUgc3BhY2UgdGFiIGRhbWFnZQoKMjAwNC0wOS0yOSAxNTo0NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBbbm8gbG9nIG1lc3NhZ2VdCgoyMDA0LTA5LTI5IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoOiBbIDEwMzQxNTYgXSBDbGFyaWZ5IE9wZW5TU0wgcmVxLiBpbiBzbm1wZC5jb25mLjUKCjIwMDQtMDktMjkgMTU6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGUgc2VydmljZSByZWdpc3RyYXRpb24gc2VjdGlvbiB0byBtZW50aW9uIHRoZSBuZWVkIGZvciBhIHJlYm9vdCB0bwogICBhbGxvdyBzeXN0ZW0gZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGJlIHVzZWQuCgoyMDA0LTA5LTI5IDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIFsgMTAxMTMzMSBdIHZhY21fZGVzdHJveUFjY2Vzc0VudHJ5IHdhcyBkb3VibGUgY2hlY2tpbmcgYSB2YWx1ZSBhbmQgbWlzc25pZyBhbm90aGVyLgoKMjAwNC0wOS0yOSAxNTowMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICByZW1vdmUgamFwYW4gbWlycm9yIGFzIHRoZSBtYWludGFpbmVyIHBhc3NlZCBhd2F5CgoyMDA0LTA5LTI5IDE0OjIzICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBmaXggYnVnICNJRm9yZ290IHRvIGZpeCBhZ2VudHggdXNhZ2Ugb24gd2luZG93cyB0byB1c2UgYSByZWFsIHNubXBkLmNvbmYgdG9rZW4gZm9yIHNvY2tldCBhZGRyZXNzIHN1cHBvcnQKCjIwMDQtMDktMjkgMTI6NTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgcmVtb3ZlIG5vbi1wb3J0YWJsZSAoYnV0IG5pY2UgZ29hbCkgb3B0aW1pemVkIGhlYWRlciBpbnN0YWxsYXRpb24uICBCcmVha3Mgb24gZnJlZWJzZCBzeXN0ZW1zIHdoZXJlIGNtcCBleGl0cyB3aXRoIHN0YXR1cyAyCgoyMDA0LTA5LTI5IDEwOjM0ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBcHBseSBwYXRjaCBpbiBidWcgOTI2Mzg5IGJ5IE1pa2UgU2xpZmNhayB0byBmaXggV2luMzIgZXZlbnQgbG9nIGxvZ2dpbmcKICAgZm9yIHNubXB0cmFwZCBhbmQgc25tcGQuICBBZGRzIHNubXBfbG9nX3N5c2xvZ25hbWUoKSBmdW5jdGlvbiB3aGljaAogICBpcyBub3cgdXNlZCBieSBvcGVubG9nKCkuCgoyMDA0LTA5LTI5IDA3OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW1vdmUgeHh4IGNvbW1lbnRzIGluIGdlbmVyYXRlZCBjb2RlCiAgIC0gdXBkYXRlIGZvciByZW5hbWUgdGFibGVfY29udGFpbmVyIGZ1bmN0aW9ucwoKMjAwNC0wOS0yOSAwNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIG1mZC10b3AubTJjOgoKICAgcmVtb3ZlIHh4eCBjb21tZW50cyBpbiBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yOSAwNzoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGNvbnZlcnQgbWlzc2luZyBkaXIgZXJyb3IgbXNnIHRvIGRlYnVnIG1zZwoKMjAwNC0wOS0yOCAxODo0NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0yOCAxODo0NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICAtIGNoZWNrIGZvciBuZXQvaWZfYXJwLmggaGVhZGVyCiAgIC0gcnVuIGF1dG9oZWFkZXIgdG8gdXBkYXRlIG5ldC1zbm1wLWNvbmZpZy5oLmluCgoyMDA0LTA5LTI4IDE4OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIHZtbmV0IHRvIHR5cGUtYnktbmFtZSBkZXRlY3Rpb24KCjIwMDQtMDktMjggMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIGluY2x1ZGUgbmV0L2lmX2FycC5oIHNvIGFycCB0eXBlIGRldGVjdGlvbiBoYXMgYSBjaGFuY2UgdG8gd29yawogICAtIGlmZGVmIGFycGhyZCB0eXBlcyB0aGF0IGFyZW4ndCBjb21tb24gKHByZXR0eSBtdWNoIGFsbCBvZiB0aGVtKQogICAtIGRlYnVnIG1zZyBvbiB1bmtub3duIHR5cGUKCjIwMDQtMDktMjggMTU6MjQgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICB1c2UgdGhlIGNvcnJlY3QgaHRvbnMgZnVuY3Rpb24gdG8gYXNzaWduIHRvIGEgTkJPIG9iamVjdC4KCjIwMDQtMDktMjggMTM6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICAtIGZpcnN0IHVwZGF0ZSBpbiBhIHdoaWxlCiAgIC0gdXNlIGNyZWF0ZV9mZXdlcl9maWxlcyB0byBkZXRlcm1pbmUgY29ycmVjdCBmaWxlIG5hbWUKICAgLSBjaGcgaW5kZXggY29udGV4dCB0byBtaWIgY29udGV4dAogICAtIGNoZyB0YWJsZSBjb250ZXh0IHRvIHJvdyByZXF1ZXN0IGNvbnRleHQKICAgLSByZW1vdmUgYXNzdW1wdGlvbnMgYWJvdXQgZGF0YSBhY2Nlc3MgbWV0aG9kCiAgIC0gYWRkIGV4YW1wbGUgZnVuY3Rpb24gZmxvdyAody9zb3VyY2UgZmlsZSkgZm9yIHZhcmlvdXMgcmVxdWVzdCBzY2VuYXJpb3MKCjIwMDQtMDktMjggMDY6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBhZGQgZGVidWcKCjIwMDQtMDktMjggMDU6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgZml4IGxlbmd0aCBmb3IgbWVtY3B5CgoyMDA0LTA5LTI3IDE3OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggYSBmZXcgZGVidWcgbWVzc2FnZXMKICAgLSBsb2cgZXJyb3Igb24gdWtub3duIGNvbHVtbgogICAtIGRvbid0IHB1dCB1bmRvXyhzZXR1cHxjbGVhbnVwKSBpbiBpbnRlcmZhY2UgY29kZSBmb3IgZ2VuZXJhdGVkIHN0cnVjdHVyZXMKICAgLSBjYWxsIG5vZGUgdW5kb19zZXR1cCBmdW5jdGlvbnMgYWZ0ZXIgcm93IHVuZG9fc2V0dXAKCjIwMDQtMDktMjcgMTc6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZSB0aGF0IHNudWNrIGluCgoyMDA0LTA5LTI3IDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBmaXggbG9naWMgdGVzdCAoZGVmdmFsIGlzIGEgc3RyaW5nLCBub3QgYSBmbGFnKQoKMjAwNC0wOS0yNyAxNzoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgc2tpcCB1bmRvX2NsZWFudXAgaWYgdW5kb19zZXR1cCB3YXNuJ3QgcnVuCgoyMDA0LTA5LTI3IDE0OjM2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgZml4aW5nIFNZTk9QU0lTIGluIHNubXBuZXRzdGF0LCBzbm1wZGVsdGEgYW5kIHNubXBkZgoKMjAwNC0wOS0yNyAxNDoyMSAgYWxleF9iCgogICAqIG1hbi86IHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcG5ldHN0YXQuMToKCiAgIE1ha2UgY29tbWFuZHMgaW4gU1lOT1BTSVMgLyBERVNDUklQVElPTiBzZWN0aW9uIGJvbGQKCjIwMDQtMDktMjcgMTI6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhbGxvdyBmb3IgZmluZXIgZ3JhaW5lZCBkZWJ1ZyBjb250cm9sCgoyMDA0LTA5LTI3IDEwOjQ0ICBhbGV4X2IKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNZXJnZWQgbW9zdCBXcml0ZVRvRXZlbnRMb2cgYW5kIERpc3BsYXlFcnJvciBjYWxscyBpbnRvIFByb2Nlc3NFcnJvciBzbyBldmVudCwgY29uc29sZSAmIHBvcC11cCBtZXNzYWdlcyBhcmUgY29uc2lzdGVudC4gIENoYW5nZWQgYWxsIHN0cHJpbnRmJ3MgdG8gc25wcmludGZzLgoKMjAwNC0wOS0yNyAwNjowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBmaXggdHlwbwoKMjAwNC0wOS0yNyAwNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBkb24ndCBtb2RpZnkgdGFibGUgcmVxdWVzdCBkYXRhIGlmIG5vIG5leHQgY29sdW1uCgoyMDA0LTA5LTI2IDEzOjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICAtIGRlYnVnIHRva2VuIGNvbnNpc3RlbmN5CiAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB2YWx1ZSBtYXAgZm9yIGluZGV4ZXMKCjIwMDQtMDktMjYgMTM6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgbm9kZS1nZXQubTJpLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwKICAgICBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gZGVidWcgdG9rZW4gY29uc2lzdGVuY3kKICAgLSBhZGQgbWlzc2luZyBkZWJ1Z3MKCjIwMDQtMDktMjYgMTM6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIGZpeCBwYXRocwoKMjAwNC0wOS0yNCAxMjowMyAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIHdoZW4gY3JlYXRpbmcgYWRkcmVzcyBmcm9tIG9zdHJpbmcsIGNvbnZlcnQgcG9ydCB0byBuZXR3b3JrIGJ5dGUgb3JkZXIKCjIwMDQtMDktMjQgMDk6MTUgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBmaXggY29tbWFzIGluIGNvbW1lbnRlZCBvdXQgaXRlbXMKCjIwMDQtMDktMjQgMDc6NTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBMaW51eCBtZW1vcnkgYnVmZmVycyBwYXRjaCBmcm9tIEthaiBOaWVtaSAoRmVkb3JhICpocl9zdG9yYWdlLW1idWYtdjIucGF0Y2gpCgoyMDA0LTA5LTI0IDA3OjQ2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgaW5pdCBpbnB1dC9vdXRwdXQgdmFyaWFibGUgc2FfZW50ZXJwcmlzZW9pZF9sZW4gKEZlZG9yYSAqc211eC1zdGFjay12YXIucGF0Y2gpCgoyMDA0LTA5LTI0IDA3OjM4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICB3aGVuIGNyZWF0aW5nIGFkZHJlc3MgZnJvbSBvc3RyaW5nLCBjb252ZXJ0IHBvcnQgdG8gbmV0d29yayBieXRlIG9yZGVyCgoyMDA0LTA5LTI0IDA2OjE4ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9zbm1wa3NtLmM6CgogICBwYXRjaCA5MjM1MTEgYWRkcyBzdXBwb3J0IGZvciBub24taG9zdCBzZXJ2aWNlIHByaW5jaXBhbCBmb3Iga3NtCgoyMDA0LTA5LTI0IDA1OjUwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggMTAxMDM5NSByZW1vdmUgZHVwbGljYXRlIGNoZWNrcyBmb3Igc25wcmludGYgYW5kIHN0cnRvdWwKICAgcGF0Y2ggMTAwOTcxMiBjaGVjayBmb3IgZ2V0aG9zdGJ5bmFtZSBpbiAtbHNvY2tldCBmb3IgVW5peHdhcmUKCjIwMDQtMDktMjQgMDU6MzAgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBwYXRjaCAxMDMyNjAyIHN1cHBvcnRzIExpbnV4IGNyb3NzIGNvbXBpbGVyIGZvciBXaW5kb3dzICh0YXJnZXQgbWluZ3czMm1zdmMpLgoKMjAwNC0wOS0yMyAxNjoxNSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgICBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dDoKCiAgIHVuZG8gcGF0Y2ggIzEwMjc1MjIgYXMgaXQgdmlvbGF0ZXMgUkZDIDE5MDIgc2VjdGlvbiAxMC4yCiAgIHdoZW4gdGhlIE1JQiBvYmplY3RzIHdlcmUgY2hhbmdlZC4KCjIwMDQtMDktMjMgMTQ6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCBzbm1wbGliL3NjYXBpLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSByZXF1aXJlZCBsZW5ndGggb2YgYSBwcml2YWN5IGtleQoKMjAwNC0wOS0yMyAxMzoyNCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwo6CgogICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKICAgLSBmaXggZnVuY3Rpb24gY2FsbAogICAtIGZpeCByZW5hbWVkIHZhciBtaXNzZWQgaW4gbWVyZ2UKCjIwMDQtMDktMjMgMDk6MTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQ6CgogICBhcHBseSBwYXRjaCAjMTAyNzUyMiB0byBwZXJtaXQgcmVwb3J0aW5nIG5lZ2F0aXZlIHNlbnNvciB2YWx1ZXMKCjIwMDQtMDktMjMgMDk6MDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBhcHBseSBtb2RpZmllZCBwYXRjaCAjMTAyNzUyMSB0byBmaXggcHJvYmxlbXMgd2l0aCBzZW5zb3IgY2F0ZWdvcmllcyAodHlwZXMpLgoKMjAwNC0wOS0yMyAwODo1OCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGFwcGx5IHBhcnQgb2YgcGF0Y2ggIzk2MDI2OSB0byByZWxlYXNlIG1lbW9yeSByZXR1cm5lZCBmcm9tIHNlbnNvcl9nZXRfbGFiZWwKCjIwMDQtMDktMjIgMTc6NTEgIHNsaWYKCiAgICogd2luMzIvZGlzdC9odG1saGVscC86IHNubXAuY29uZi53aW4zMi5odG1sLAogICAgIHNubXBkLmNvbmYud2luMzIuaHRtbCwgc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbDoKCiAgIHBhdGNoIDEwMzMwNTIgZnJvbSBBbGV4IEJ1cmdlcjogV2luMzI6IFVwZGF0ZWQgaHRtbGhlbHAgZmlsZXMgZm9yICouY29uZgoKMjAwNC0wOS0yMiAxMToyMCAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIGFwcGx5IHBhdGNoICMxMDMwOTEzIHRvIHN1cHByZXNzIHdpbmRvd3MgcG9wdXBzIGZvciBzZXJ2aWNlIHJlZy91bnJlZyBlcnJvcnMuCiAgIGVycm9ycyBhcmUgcHJpbnRlZCB0byBzdGRlcnIgaWYgLXF1aWV0IHBhcmFtZXRlciBpcyBzdXBwbGllZC4KCjIwMDQtMDktMjIgMTE6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaHRtbGhlbHAvSW50cm9kdWN0aW9uLmh0bWw6CgogICBhcHBseSBwYXRjaCMxMDM5MDAgc28gdGhhdCBpbnRybyBtb3JlIGNsb3NlbHkgbWF0Y2hlcyBjdXJyZW50IHdlYiBzaXRlIGhvbWUgcGFnZS4KICAgYWxzbyBhZGp1c3QgYnVpbGQgaW5zdHJ1Y3Rpb25zIHRvIHJlbW92ZSBleGFtcGxlIGFuZCBkZW1vIE1JQnMgZnJvbSBidWlsZC4KCjIwMDQtMDktMjIgMTE6MDEgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhcHBseSBwYXRjaCMxMDI4OTc2IGNoZWNrIHZhbHVlcyBmb3IgbGFiZWwsIGlpZCBiZWZvcmUgZGVyZWZlcmVuY2UuCiAgIEZpeGVzIHBlcmwgbW9kdWxlIGZhdWx0LCBhc3luYyBjYWxsYmFjay4gU2VlIFJlZEhhdCBidWcgIzExMTMxOQoKMjAwNC0wOS0yMiAwOTozNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICBwYXRjaCBmcm9tIEFiaGlqaXQgSGF5YXRuYWdhcmthciB0byBzdXBwb3J0IGtleSBjaGFuZ2luZyBmb3IgbG9jYWxpemVkLW9ubHkga2V5cwoKMjAwNC0wOS0yMiAwNzowNiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwYXRjaCAxMDI4OTI3IGZyb20gQW5keSBTbWl0aCBmaXhlcyBidWcgOTcyNzk3OyByZWdpc3RlcmluZyB3aW4zMgogICBzbm1wZC9zbm1wdHJhcGQgc2VydmljZXMgaW5jbHVkZXMgcGF0aHMgdG8gY29uZmlnIGZpbGUgYW5kIHRvIGxvZyBmaWxlLgoKMjAwNC0wOS0yMiAwNzowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5jLCB1c21ESFVzZXJLZXlUYWJsZS5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1cGRhdGUgZm9yIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA5LTIxIDE5OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZm9yIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA5LTIxIDE5OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgZG9uJ3QgZ2VuZXJhdGUgbWFjcm9zIHRoYXQgYXJlIGluIG1mZC5oCgoyMDA0LTA5LTIxIDE5OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgZml4IHR5cG8KCjIwMDQtMDktMjEgMTk6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgb25seSBnZW5lcmF0ZSByb3cgY3JlYXRpb24gY2hlY2sgaWYgbTJjX3RhYmxlX3Jvd19jcmVhdGlvbiBzZXQKCjIwMDQtMDktMjEgMTk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIC0gc2V0IHVwIG1hY3JvIHcvcmVxdWlyZWQgY29sdW1ucyBmb3Igcm93IGNyZWF0aW9uCgoyMDA0LTA5LTIxIDE2OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29sdW1uX3N0b3JhZ2UuY29uZjoKCiAgIHN0b3JhZ2UgZm9yIHRhYmxlIGluZGV4ZXMgYW5kIGNvbHVtbnMKCjIwMDQtMDktMjEgMTY6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIG1vdmUgcm93X21lcmdlIGFmdGVyIHRhYmxlX2NvbnRhaW5lciBpbiBoYW5kbGVyIGNoYWluCgoyMDA0LTA5LTIxIDE2OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBpbmNyZWFzZSBjb250ZXh0IGZvciBkaWZmCiAgIC0gaW5jcmVhc2UgZnV6eiBmb3IgcGF0Y2gKCjIwMDQtMDktMjEgMTY6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIGFsbG9jYXRlIHRhZyBzdG9yYWdlIGVhcmxpZXIsIHdpdGggc3BhY2UgZm9yIG51bGwgdGVybWluYXRpb24KICAgLSBhbGxvYyBzcGFjZSBmb3IgbnVsbCB0ZXJtaW5hdGlvbiBvZiBuYW1lCiAgIC0gcmV0dXJuIGVycm9yIGlmIGFsbG9jYXRpb25zIGZhaWwKCjIwMDQtMDktMjEgMTY6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgc2V0IGVuZG9mbWlidmlldyB3aGVuIGdldG5leHQgZ29lcyBiZXlvbmQgbGFzdCBpdGVtIGluIHRhYmxlCgoyMDA0LTA5LTIxIDE2OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIG1hcmsgcHJvY2Vzc2VkIHJlcXVlc3RzIGFzIERPTkUgc28gdGhleSBhcmVuJ3QgbWVyZ2VkCgoyMDA0LTA5LTIxIDE0OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgaWZkZWYvY29tbWVudCBzb21lIGRlYnVnIGFzc2VydCBjb2RlIHRoYXQgZ2V0cyBoaXQgaW4gcmFyZSBjYXNlcwoKMjAwNC0wOS0yMSAxMjo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBwYXRjaCBmcm9tIEFiaGlqaXQgSGF5YXRuYWdhcmthciB0byBzdXBwb3J0IGtleSBjaGFuZ2luZyBmb3IgbG9jYWxpemVkLW9ubHkga2V5cwoKMjAwNC0wOS0yMSAwNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQYXRjaCBmcm9tIEFiaGlqaXQgSGF5YXRuYSB0byBmaXggREgga2V5IGxlbmd0aHMKCjIwMDQtMDktMjEgMDY6NDMgIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwo6CgogICBjaGVjayBhIGZldyBwb2ludGVycyBiZWZvcmUgdXNpbmcgdGhlbQoKMjAwNC0wOS0xNyAwMToyMiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBhbmQgaW5jbHVkZSBycG0vcnBtZGIuaAoKMjAwNC0wOS0xNyAwMTowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgVGhpcyB3YXMgbm90IGFsd2F5cyBhbiB1bnVzZWQgdmFyaWFibGUKCjIwMDQtMDktMTcgMDA6NTggIG5iYQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEZpeCBPcGVuU1NMIGNoZWNoIHRvIHdvcmsgb24gNjQtYml0IFNvbGFyaXMgY29tcGlsZSB3aXRoIDMyLWJpdCBPcGVuU1NMCiAgIGluc3RhbGxlZCAuLi4KCjIwMDQtMDktMTYgMTA6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliMmMuY29sdW1uX3N0b3JhZ2UuY29uZgoKMjAwNC0wOS0xNiAxMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gZG9uJ3QgZnJlZSBOVUxMIHBvaW50ZXIKICAgLSB1cGNhc2UgZmlyc3Qgd29yZCBpbiBzZW50ZW5jZQogICAtIGV4cGFuZCBtb3JlIG9uIG5vQ3JlYXRpb24gZXhwbGFuaXRvcnkgbWVzc2FnZQogICAtIGFkZCBleHBsYW5pdG9yeSBtZXNzYWdlIGZvciBpbmNvbnNpc3RlbnROYW1lCgoyMDA0LTA5LTE2IDEwOjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgbG9nIGVycm9yIG1lc3NhZ2UgaWYgYSBNSUIgZGlyZWN0b3J5IGNhbm5vdCBiZSBvcGVuZWQKCjIwMDQtMDktMTYgMDg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy9NYWtlZmlsZSwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBkYXRhIGFjY2VzcyBmb3IgdGNwLW1pYiB0Y3AgY29ubmVjdGlvbnMgKGlwdjQgb25seSkKCjIwMDQtMDktMTYgMDg6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgLSByZW1vdmUgdW51c2VkIHZhcnMKICAgLSBjcmVhdGUgZGVmYXVsdC1ub2RlLSR7bm9kZX0ubTJkIHcvY3VycmVudCB2YWx1ZXMsIGlmZiBkb2Vzbid0IGV4aXN0CgoyMDA0LTA5LTE2IDA4OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGRvbid0IGdlbmVyYXRlIG1hcHBpbmcgY29kZSBpZiBza2lwIG1hcHBpbmcgc2V0CgoyMDA0LTA5LTE1IDE3OjIyICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBmcmVlYnNkNS82IGhlYWRlcnMKCjIwMDQtMDktMTUgMTU6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IGFuIG9wcHMuICBEZWxldGUgdGhlIHVzbSBzdGF0ZSByZWYgYmVmb3JlIHRoZSBoYW5kbGluZyBvZiByZXBvcnRzIHNpbmNlIGl0IGRpZG4ndCBuZWVkIGl0IGJlZm9yZQoKMjAwNC0wOS0xNSAwOTo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBtYWtlIHRoZSBIYW5kbGVSZXBvcnQgY2FsbGJhY2sgdGFrZSBhIHRyYW5zcG9ydCBwb2ludGVyCgoyMDA0LTA5LTE1IDA5OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIE1ha2UgdGhlIHVzbSBtb2R1bGUgaGFuZGxlIGl0cyBvd24gcmVwcm90cwoKMjAwNC0wOS0xNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgZnJlZSB0aGUgc3RhdGUgcmVmZXJlbmNlIHRpbGwgYWZ0ZXIgdGhlIGhhbmRsZV9yZXBvcnRfcGR1IGNhbGxiYWNrIGlzIGNhbGxlZC4gIEFsc28gcGFzcyBpbiB0aGUgdHJhbnNwb3J0IHRvIHRoZSBzYW1lIGhvb2suCgoyMDA0LTA5LTE1IDA5OjE5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGRhcndpbjcgaGVhZGVyCgoyMDA0LTA5LTE1IDA3OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gY2hlY2sgY29sdW1uX3NldF9mbGFncyB0byBzZWUgaWYgcm93c3RhdHVzIHNldAogICAgIC0gb25seSBjaGVjayB0cmFuc2l0aW9uIGlmIHNldAogICAgIC0gY2hlY2sgcmVxdWlyZWQgcm93cyBvbiBjcmVhdGVBbmRHbwogICAgIC0gZG9uJ3QgYWxsb3cgZGVzdHJveSBpZiBvdGhlciBjb2x1bW5zIHNldAogICAtIGRvbid0IGFsbG93IGNyZWF0aW9uIGlmIHJvd3N0YXR1cyBub3Qgc2V0CgoyMDA0LTA5LTE1IDA3OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgICAgcGFyZW50LXNldC5tMmk6CgogICAtIHJlbmFtZSBzZXRfZmxhZ3MKICAgLSBhZGQgY29tbWVudCBhYm91dCByb3cgY3JlYXRlZCBmbGFnIGluIHJvd3JlcV9mbGFncwoKMjAwNC0wOS0xNSAwNzoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBjb21tZW50IGdyYW1tYXIgdHdlYWsKCjIwMDQtMDktMTUgMDc6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGFkZCByb3dyZXFfZmxhZ3MKICAgLSByZW5hbWUgc2V0X2ZsYWdzIHRvIGNvbHVtbl9zZXRfZmxhZ3MKICAgLSB1c2UgY29udGV4dCBuYW1lIGZvciBleGFtcGxlIHVzZXIgY29udGV4dCBkYXRhIGxpc3QKCjIwMDQtMDktMTUgMDc6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHVzZSBuZXcgbWFjcm8gdG8gdmFsaWRhdGUgU05NUCBlcnJvciBjb2RlcwogICAtIHVzZSBuZXcgcm93cmVxX2ZsYWdzIHRvIHNldC9jbGVhciBuZXcgcm93IGZsYWcKICAgLSBzZXQgcmVxdWVzdCBlcnJvciBvbiBpbnZhbGlkIG9pZCBmb3IgbmV3IHJvdwogICAtIGNsZWFyIHVuZG8gcG9pbnRlciBhZnRlciByZWxlYXNpbmcgaXQKICAgLSBzZXQgV1JPTkdMRU5HVEggZm9yIGJhZCB2YXJpYWJsZSBzaXplCgoyMDA0LTA5LTE1IDA3OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBhZGQgaW5jbHVkZSB0byBxdWlldCBjb21waWxlcgoKMjAwNC0wOS0xNSAwNzoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIC0gYWRkIHByb3RvdHlwZSBmb3Igc2VfZmluZF9zbGlzdAogICAtIHR3ZWFrIGNvbW1lbnQKCjIwMDQtMDktMTUgMDc6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgbmV3IG1hY3JvIHRvIHZhbGlkYXRlIFNOTVAgZXJyb3IgY29kZXMKCjIwMDQtMDktMTUgMDc6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oOgoKICAgLSBkZWZpbmUgZmxhZ3MgZm9yIHJvd3JlcV9mbGFncwoKMjAwNC0wOS0xNSAwNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSBtb3ZlIHN0b3JhZ2UgdHlwZSBpbnRvIGRhdGEgYWNjZXNzIGludGVyZmFjZQogICAtIGFkZC91c2UgdW5kbyBzdG9yYWdlIGZvciBMYXN0Q2hhbmdlZAogICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGlvbi9kZWxldGlvbiBvZiBpcGFkZHJlc3NlcyB2aWEgUm93U3RhdHVzCiAgIC0gYWRkIGZsYWdzIGZvciByZXF1aXJlZCBjb2x1bW5zCgoyMDA0LTA5LTE1IDA2OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKCjIwMDQtMDktMTUgMDY6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIHR3ZWFrIGxvZyBtZXNzYWdlLCBjb21tZW50cwoKMjAwNC0wOS0xNSAwNjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gcmVtb3ZlIGFyY2ggZmxhZ3MsIGFkZCBkYXRhIGxpc3QgZm9yIGFyY2ggZGF0YQogICAgIC0gYWRkICYgY2FsbCBhcmNoIGZ1bmN0aW9ucyBvbiBjcmVhdGUsIGNvcHksIGRlbGV0ZSBpcGFkZHJlc3MgZW50cnkKICAgLSBhZGQgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIC0gbmV3IGlwYWRkcmVzcyBzZXQgKGNyZWF0ZS9kZWxldGUgaXAgYWRkcmVzcyBhbGlhc2VzKQogICAtIGNoYW5nZSBtYWNybyBuYW1lCiAgIC0gYWRkIGZsYWcgZm9yIGFsaWFzZXMKCjIwMDQtMDktMTUgMDY6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIGFkZCBwcm90b3R5cGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgLSBuZXcgZnVuY3Rpb24gdG8gZmluZCBpbnRlcmZhY2UgbmFtZSBmcm9tIGlmSW5kZXgKCjIwMDQtMDktMTQgMTU6MDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgVXBkYXRlIHRvIG1vZHVsYXJpemUgYSBiaXQgbW9yZSB0aGUgc2VjdXJpdHkgbW9kZWwgaW5mcmFzdHJ1Y3R1cmU6IHJlcG9ydCBoYW5kbGluZyBvdXRzb3VyY2VkIHRvIHRoZSBzZWNtb2QKCjIwMDQtMDktMTMgMTk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyX2dyb3VwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5LmgsCiAgICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLAogICAgIHNubXBsaWIvbXRfc3VwcG9ydC5jOgoKICAgLSBwYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gcmVtb3ZlICc7JyBmcm9tIGV4dGVybiAnQycgaGVhZGVyIGNvbnRydWN0cwogICAgIChhbGxvdyBnKysgMy40IGFuZCBhYm92ZSB0byBjb21waWxlIG5ldC1zbm1wKQoKMjAwNC0wOS0xMyAwMzozNCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvU3YzY29uZmlnOgoKICAgd2hlbiBtYXRjaGluZyBDUFAgZGVmaW5lcywgbWF0Y2ggdGhlIG9uZXMgd2hpY2ggYmVnaW4gdGhlIHNvdXJjZSBoZWFkZXIgbGluZS4KCjIwMDQtMDktMTMgMDM6MjAgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgd2luMzIvZGlzdC9SRUFETUUudHh0LCB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhoYwosIHdpbjMyL2Rpc3QvaHRtbGhlbHAvTmV0LVNOTVAuaGhwLAogICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9wb2RkaXIyaHRtbCwKICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvcmVhZG1lMmh0bWw6CgogICBhcHBseSBwYXRjaCAjMTAyNjY5IFdpbjMyIDUuMiBidWlsZCB1cGRhdGVzYAoKMjAwNC0wOS0xMiAyMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICAtIGluY2x1ZGUgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzCiAgIC0gaW5pdGlhbGl6ZSBkZWZhdWx0cyBwZXIgdGhlIG1pYgoKMjAwNC0wOS0xMiAyMjoyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIGNoYW5nZSBjb21tZW50CiAgIC0gYWRkIHN0b3JhZ2UgdHlwZQogICAtIGRlZmluZSBmbGFncyBmb3Igc2V0IHN1cHBvcnQKCjIwMDQtMDktMTIgMjI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IGRhdGEgbG9va3VwIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHZhcmJpbmRzCgoyMDA0LTA5LTEyIDIyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBza2lwcGluZyBvZiB1bi1yZWdpc3RlcmVkIG1vZGVzCiAgIC0gcmVtb3ZlIHJlcXVlc3QgbmV4dF9tb2RlIHN0dWZmIChuZXZlciB1c2VkKQogICAtIHNob3J0ZW4gbXV4IGRlYnVnIHRva2VuCgoyMDA0LTA5LTEwIDE1OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGRvbid0IG1hc2sgcmV0dXJuIGNvZGVzIGluIGludGVybmFsIGZ1bmN0aW9ucwoKMjAwNC0wOS0xMCAxNToxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgYWRkIHVuZG8gc3RvcmFnZSBmb3Igcm93c3RhdHVzIGFuZCBzdG9yYWdlIHR5cGUKCjIwMDQtMDktMTAgMTQ6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIC0gbmV3IGZ1bmN0aW9uIG5ldHNubXBfYmFieV9zdGVwX21vZGUyZmxhZwogICAtIHVzZSBuZXcgZnVuY3Rpb24sIHNvIHNraXBwaW5nIHVucmVnaXN0ZXJlZCBtb2RlcyB3b3JrcwoKMjAwNC0wOS0xMCAxNDo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gdXNlIG1mZCBzdWNjZSBtYWNybyBpbnN0ZWFkIG9mIHNubXAgbWFjcm8KICAgLSBpZiBjaGVjayByZXR1cm5zIGFuIGVycm9yLCByZXR1cm4gaW1tZWRpYXRlbHkKCjIwMDQtMDktMTAgMTQ6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmk6CgogICB1c2UgY29ycmVjdCBmdW5jdGlvbiBuYW1lCgoyMDA0LTA5LTEwIDEzOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gYWRkIGRlZmluZSB0byBhbGxvdyByb3ctY3JlYXRpb24KCjIwMDQtMDktMTAgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0xMCAwNTozMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDaGVjayB0aGF0IGEgdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSB2YWxpZCBNSUIgb2JqZWN0LAogICBiZWZvcmUgdHJ5aW5nIHRvIGxvb2sgYXQgY2hhcmFjdGVyaXN0aWNzIG9mIHRoaXMgb2JqZWN0LgogICAoRml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIE1GRCBzY3JpcHRzLCB3aGljaCB1c2UgdGhlIG1pYjJjCiAgICB2YXJpYWJsZSBleHBhbnNpb25zIGZvciBub24tTUlCLW9iamVjdCBuYW1lcyBhcyB3ZWxsKS4KCjIwMDQtMDktMDkgMTY6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGZpeCBsb2cgbXNnIHR5cG8KICAgLSBzZXQgcmVxdWVzdCBlcnJvcnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgZXJyb3IgZnJvbSBoYW5kbGVyCiAgIC0gZGVidWcgbXNncyBmb3IgcmVxdWVzdCBlcnJvcnMKCjIwMDQtMDktMDkgMTY6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIGFkZCBtaXNzaW5nIHF1b3RlCgoyMDA0LTA5LTA5IDA5OjE3ICBkdHMxMgoKICAgKiBORVdTOgoKICAgTWVudGlvbiBuZXcgTkVULVNOTVAtRVhURU5ELU1JQiBzdXBwb3J0CiAgIChwbHVzIG1pbm9yIGdyYW1tYXIgYW5kIGZvcm1hdHRpbmcgdHdlYWtzKQoKMjAwNC0wOS0wOSAwNzowMSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBhcHBseSBwYXRjaCAjMTAyNDM1MiBDaGFuZ2VzIFdpbmRvd3MgaW5zdGFsbGVyIHRvIGFsbG93IHNubXB0cmFwZCBhcyBzZXJ2aWNlLgoKMjAwNC0wOS0wOSAwNjo0OSAgc2xpZgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBmb3JtYXR0aW5nIHBhdGNoICMxMDI0NzQ2IChvbmUtbGluZXIpIGZyb20gQWxleCBCdXJnZXIuCgoyMDA0LTA5LTA5IDAzOjQzICBzbGlmCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIHNubXBsaWIvY29udGFpbmVyLmMsCiAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaXggYnVnIzEwMjUwMTQgLSByZW1vdmUgdW51c2VkcywgcXVlbGwgc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmdzIGluIDUuMi5wcmUxCgoyMDA0LTA5LTA5IDAzOjMxICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsYXJlIGV4dGVybmFsIGZ1bmN0aW9uIHdpdGhpbiBzY29wZSB1c2VkLgoKMjAwNC0wOS0wOSAwMzoyMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IGJ1ZyMxMDI1MDA0IGFwcGx5IG1pbm9yIGNvbW1lbnQgYW5kIGdyYW1tYXIgZml4ZXMgdG8gc25tcGQsc25tcHRyYXBkCgoyMDA0LTA5LTA4IDIwOjUyICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBwYXJ0aWFsIGZpeCBidWcgIzkwOTIyMiAtIG1vdmUgd2luMzIgY2hhbmdlcyBpbnNpZGUgIF9kaXNhYmxlX3N5c2xvZ3tlbnRyeX0sCiAgIGRvbnQgd3JpdGUgc3RhbmRhcmQgZXJyb3Igb24gZmFpbHVyZSB0byBjbG9zZSBldmVudCBsb2cgZnJvbSBkaXNhYmxlX3N5c2xvZy4KCjIwMDQtMDktMDggMTg6NDMgIHNsaWYKCiAgICogd2luMzIvOiBhZ2VudF9tb2R1bGVfZG90X2NvbmYuaCwgYWdlbnRfbW9kdWxlX2luY2x1ZGVzLmgKLCBhZ2VudF9tb2R1bGVfaW5pdHMuaCwgYnVpbGQucGwsCiAgICAgbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBuZXQtc25tcC9hZ2VudC9hZ2VudF9tb2R1bGVfY29uZmlnLmgsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgQXBwbHkgbW9kcyBpbiBwYXRjaCAjMTAyNDgxMCBpbiBvcmRlciB0byBidWlsZCA1LjIucHJlMSBvbiB3aW4zMiBNU1ZDK01pbkdXLgoKMjAwNC0wOS0wOCAwODozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgZml4IGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IG1hY3JvIG5hbWUKCjIwMDQtMDktMDcgMjA6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIG1hcCBkYXRhIGFjY2VzcyBpZiBhZGRyZXNzIHR5cGUgdG8gbWliIHR5cGUgaW4gaW5kZXgKCjIwMDQtMDktMDcgMjA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBwYXNzIGNvcnJlY3QgY29udGFpbmVyIHRvIHVwZGF0ZSBjaGVjayBmdW5jdGlvbnNvIG1pc3NpbmcgYWRkcnMgYXJlIHJlbW92ZWQKCjIwMDQtMDktMDcgMjA6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBudWxsIHJvd3JlcV9jdHggaXMgdmFsaWQgaW4gdW5kb19jbGVhbnVwOyBzaW1wbHkgcmV0dXJuIHN1Y2Nlc3MKCjIwMDQtMDktMDcgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIGZpeCBpZkluZGV4IGxvb2t1cCBmb3IgaW50ZXJmYWNlIGFsaWFzZXMKICAgLSBhZGQgZGVidWcgbWVzc2FnZQogICAtIG5ldyBmdW5jdGlvbiB0byBzZXQgaXBhZGRyZXNzCgoyMDA0LTA5LTA3IDIwOjM1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgYWRkIHNlIHBhaXJzIGZvciBiYWJ5IHN0ZXAgbW9kZXMKCjIwMDQtMDktMDcgMjA6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIC0ga2VlcCByZWdpc3RlcmVkIG1vZGVzIHdpdGggbWliIGhhbmRsZXIKICAgLSBza2lwIGxvd2VyIGhhbmRsZXJzIGZvciBtb2RlcyB0aGF0IGhhbmRsZXIgZGlkbnQgcmVnaXN0ZXIgZm9yCiAgIC0gc2tpcCB1bmRvIGNvbW1pdCBpZiBoYW5kbGVyIHdhc250IGNhbGxlZCBmb3IgY29tbWl0CiAgIC0gZG9udCBicmVhayBvbiByZXF1ZXN0IGVycm9yIGluIGZpbmFsIHN0ZXBzIChlcXVpdmFsZW50IG9mIGNvbW1pdC91bmRvL2ZyZWUpCiAgIC0gbW9yZSBkZWJ1ZyBtc2dzCgoyMDA0LTA5LTA3IDIwOjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICAtIHN5bmMgbmFtZXMgb2YgQkFCWV9TVEVQXyogd2l0aCBNT0RFX0JTVEVQXyoKICAgLSBkZWZpbmUgc3RydWN0dXJlIGZvciBiYWJ5IHN0ZXBzIGhhbmRsZXIgbW9kZSB0cmFja2luZwoKMjAwNC0wOS0wNyAyMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgYWRkIGRlYnVnIG1zZwoKMjAwNC0wOS0wNiAyMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSBhZGQgcGVyc2lzdGVuY2UgZm9yIGlmQWxpYXMsIGlmTGlua1VwRG93blRyYXBFbmFibGUKICAgLSBkb24ndCBhbGxvdyBzZXQgb2YgcHJvbWlzY3VvdXMgbW9kZSwgc2luY2UgaXQncyBub3QgaW1wbGVtZW50ZWQKCjIwMDQtMDktMDYgMTk6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGZpeCBmaXhlZCBzaXplIGNoZWNrCiAgIC0gYWRkIGFjY2VzcyB0byBjb250YWluZXIgcG9pbnRlcgoKMjAwNC0wOS0wNiAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgZG9uJ3QgZ2VuZXJhdGUgZml4ZWQgc2l6ZSBjaGVjayBmb3Igb2N0ZXQgc3RyaW5ncwoKMjAwNC0wOS0wNiAxOTowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBzZXQgdXAgdmFycyBmb3IgbGVuZ3RocyB0byBiZSBjb3BpZWQgY29ycmVjdGx5CgoyMDA0LTA5LTA1IDE4OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICByZW1vdmUgZXh0ZXJuIG9mIG5vbi1leGlzdGFudCB2YXIKCjIwMDQtMDktMDIgMDc6MjIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgZG9udCBpbmNsdWRlIGJ5dGVvcmRlci5oIC0tIGF2b2lkcyB3YXJuaW5nIHNlZW4gb24gUmVkSGF0CgoyMDA0LTA5LTAyIDA2OjU4ICBkdHMxMgoKICAgKiBORVdTOgoKICAgTWVudGlvbiB0aGUgb3RoZXIgbmV3IG1pYjJjIGNvbmZpZyB0ZW1wbGF0ZXMsIGFuZCBwcm92aWRlIGEgbGl0dGxlCiAgIG1vcmUgZXhwbGFuYXRpb24uICAoUGx1cyBmaXhpbmcgYSBjb3VwbGUgb2YgdHlwb3MpCgoyMDA0LTA5LTAyIDA2OjUyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGZpeCAjOTk1NDg5IGJ5IG9idGFpbmluZyBzeXNEZXNjciBhbmQgc3lzQ29udGFjdCB0aHJvdWdoIHdpbmRvd3MgbmF0aXZlIG1ldGhvZHMuCgoyMDA0LTA5LTAyIDAwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgLSByZXF1aXJlIGFsbCBpZi1taWIgaW50ZXJmYWNlIGZvciBsaW51eAoKMjAwNC0wOS0wMiAwMDowNCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowNCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDEgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMSAyMzo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICByZXF1aXJlIGV4cGxpY2l0IGNvbmZpZ3VyZSBmbGFnIGZvciBleHBlcmltZW50YWwgbWZkIHJld3JpdGUgbW9kdWxlcwoKMjAwNC0wOS0wMSAyMzo1MSAgcnN0b3J5CgogICAqIE5FV1M6CgogICAtIG1lcmdlIDUuMS4yIG5ld3MKICAgLSBhZGQgb3RoZXIgdGlkYml0cyBnbGVhbmVkIGZyb20gQ2hhbmdlbG9nCgoyMDA0LTA5LTAxIDIzOjUxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjIucHJlMQoKMjAwNC0wOS0wMSAyMjo1NyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgbWFuIHBhZ2VzCgoyMDA0LTA5LTAxIDIyOjUxICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjM6CgogICBjaGVjayBpbiBuZXcgbWFuIHBhZ2VzCgoyMDA0LTA5LTAxIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTA5LTAxIDIyOjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBhZnRlciBydW5uaW5nIGF1dG9oZWFkZXIKCjIwMDQtMDktMDEgMjI6MTQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHVwZGF0ZSBmb3IgNS4yLnByZTEKCjIwMDQtMDktMDEgMjI6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKLCBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gY29udmVydCBDKysgc3R5bGUgY29tbWVudHMgdG8gQyBzdHlsZSBjb21tZW50cyAob3IgcmVtb3ZlIHRoZW0pCgoyMDA0LTA5LTAxIDIyOjA1ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIHJlYWRtZSBmb3IgTWFjIE9TIFgKCjIwMDQtMDktMDEgMjI6MDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDIyOjAzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4yLnByZTEKCjIwMDQtMDktMDEgMjE6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uL2dudWMuaCwgZXhwcmVzc2lvbi9pbjYuaAosIGV4cHJlc3Npb24vaXBfdmFyLmgsIGV4cHJlc3Npb24vaXB2Ni5oLAogICAgIGV4cHJlc3Npb24vdWRwX3Zhci5oLCBwaW5nL2dudWMuaCwgcGluZy9pbjYuaCwKICAgICBwaW5nL2lwX3Zhci5oLCBwaW5nL2lwdjYuaCwgcGluZy91ZHBfdmFyLmgsCiAgICAgdHJhY2Vyb3V0ZS9nbnVjLmgsIHRyYWNlcm91dGUvaW42LmgsCiAgICAgdHJhY2Vyb3V0ZS9pcF92YXIuaCwgdHJhY2Vyb3V0ZS9pcHY2LmgsCiAgICAgdHJhY2Vyb3V0ZS91ZHBfdmFyLmgsIG5zbG9va3VwL2dudWMuaCwgbnNsb29rdXAvaW42LmgKLCBuc2xvb2t1cC9pcF92YXIuaCwgbnNsb29rdXAvaXB2Ni5oLAogICAgIG5zbG9va3VwL3VkcF92YXIuaDoKCiAgIHJlbW92ZSBHUEwgbGljZW5zZSBjb2RlLCBwbHVzIHNvbWUgZ3VpbHR5LWJ5LWFzc29jaWF0aW9uIGZpbGVzCgoyMDA0LTA5LTAxIDIwOjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDktMDEgMjA6MTMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBvcGVuYnNkIG5lZWRzIHN5cy90eXBlcyBiZWZvcmUgdGNwZC5oCgoyMDA0LTA5LTAxIDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICB0d2VhayBjb21tZW50IGFuZCBsb2cgbWVzc2FnZSBmb3JtYXQKCjIwMDQtMDktMDEgMTk6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIC0gd2hpdGVzcGFjZSBjaGFuZ2UgdG8gYWRkIHJlYWwgbG9nIG1lc3NhZ2UgKGxhc3QgY2hlY2tpbmcgaGFkIHdyb25nIGxvZyBtZXNzYWdlKQogICAtIGFkZCBwb3J0IG51bWJlciB0byBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMDQtMDktMDEgMTk6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIC0gaW5jcmVhc2UgbWF4X3NlbnNvcnMKICAgLSBicmVhayB3aGVuIG51bWJlciBvZiBzZW5zb3JzIGV4Y2VlZHMgbWF4X3NlbnNvcnMKICAgLSBhZGQgZGVidWcKCjIwMDQtMDktMDEgMTk6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDE5OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYmFpbCBpZiBsbV9zZW5zb3JzIGhlYWRlci9saWIgY2hlY2tzIGZhaWwKCjIwMDQtMDktMDEgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgLSBkb24ndCByZXR1cm4gaGFuZGxlciBpZiBjYW4ndCBhbGxvY2F0ZSBzZ3JvdXAKICAgLSB1c2UgbG9jYWwgdmFyIGZvciByb290b2lkIG1hY2hpbmF0aW9ucywgaW5zdGVhZCBvZiByZWdpbmZvIHJvb3RvaWQKICAgICAocmVhbGxvYyBvZiBleHRyYSBzdWJvaWRzIGRvZXNuJ3Qgc3Vydml2ZSByZWdpc3RyYXRpb24sIHdoZW4gc3VidHJlZV9zcGxpdAogICAgIGNhbGxzIG5ldHNubXBfc3VidHJlZV9kZWVwY29weSgpKSBbc2NvcmUgb25lIGZvciBsaWJlZmVuY2VdCgoyMDA0LTA5LTAxIDE3OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgb25seSBjb25maWdfcmVxdWlyZSBpZi1taWIgaW50ZXJmYWNlX2NvbW1vbiwgbm90IGFsbCBvZiBpZi1taWIgaW50ZXJmYWNlCgoyMDA0LTA5LTAxIDE3OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlbW92ZSBjb25maWdfcmVxdWlyZSBmb3IgcGxhdGZvcm1zIHdoaWNoIGhhdmVuJ3QgYmVlbiBwb3J0ZWQgeWV0CgoyMDA0LTA5LTAxIDE3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsCiAgICAgaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgaWZkZWYgb3V0IGFyY2ggc3BlY2lmaWMgZnVuY3Rpb25zIGlmIGFyY2ggbm90IHN1cHBvcnRlZAoKMjAwNC0wOS0wMSAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBvbmx5IHJlcXVpcmUgbmV3IG1mZCBtb2R1bGVzIGZvciBsaW51eCwgdW50aWwgb3RoZXIgcGxhdGZvcm1zIGFyZSBwb3J0ZWQKCjIwMDQtMDktMDEgMTU6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgaW5jbHVkZSBhc20vdHlwZXMuaCBzbyB0aGF0IGFnZW50IHdpbGwgYnVpbGQgb24gTWFuZHJha2UgZmxhdm9yZWQgTGludXguCgoyMDA0LTA5LTAxIDE0OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnQKICAgLSBkb2N1bWVudCB1c2Ugb2Ygc2ltcGxpc3RpYyBfbG9jawoKMjAwNC0wOS0wMSAxNDozMCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNi5oOgoKICAgcHJvdmlkZSBoZWFkZXIgZm9yIEZyZWVCU0QgNi4gZml4ZXMgYnVnIzEwMTgyMDkKCjIwMDQtMDktMDEgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIG9ubHkgbG9nIG9wZW4gZXJyIG9uY2UgKHVudGlsIHN1Y2Nlc3MsIHRoZW4gcmVzZXQgZmxhZykKCjIwMDQtMDktMDEgMTQ6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGNoZWNrIGZvciBOVUxMIHBvaW50ZXIgZnJvbSBkYXRhIGFjY2VzcyByb3V0aW5lcywgJiByZXR1cm4gcmVzb3VyY2UgdW5hdmFpbGFibGUKCjIwMDQtMDktMDEgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSBvbmx5IGxvZyBmaWxlIG9wZW4gZXJyb3Igb25jZSAodW50aWwgYSBzdWNjZXNzZnVsIG9wZW4pCiAgIC0gcmV0dXJuIG5vIGVycm9yIGlmIGNvdWxkbid0IG9wZW4gaXB2Niwgc28gd2UgY2FuIGNvbnRpbnVlIHcvaXB2NAoKMjAwNC0wOS0wMSAxMDo0NiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGVsaW1pbmF0ZSBkb3VibGUgZnJlZSBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCiAgIC0gZml4IHBvdGVudGlhbCBtZW1vcnkgbGVha3Mgb24gZmFpbGVkIHJlZ2lzdHJhdGlvbgogICAgIChpLmUuIGFsd2F5cyBmcmVlIHJlZ2luZm8gaWYgcmVnaXN0cmF0aW9uIGZhaWxzKQoKMjAwNC0wOS0wMSAxMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZWxpbWluYXRlIGRvdWJsZSBmcmVlIG9uIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24KCjIwMDQtMDktMDEgMDg6MjUgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQXR0ZW1wdCB0byBlbnN1cmUgdGhhdCAnaW50MzJfdCcgYW5kIChpZiBhcHByb3ByaWF0ZSkgJ2ludDY0X3QnCiAgIHR5cGVzIChwbHVzIHVuc2lnbmVkIGVxdWl2YWxlbnRzKSBhcmUgYXZhaWxhYmxlLgoKMjAwNC0wOS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgUmVtb3ZlIHVuYmFsYW5jZWQgIkBlbmRAIiBzdGF0ZW1lbnRzLgoKMjAwNC0wOS0wMSAwNTo1NyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIFByb3ZpZGUgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0YWJsZSBjb25maWcgdGVtcGxhdGVzLCBhbmQKICAgZGVzY3JpYmUgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlbSBhIGxpdHRsZSBtb3JlIGZ1bGx5LgoKMjAwNC0wOS0wMSAwNTo1NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZTIuY29uZjoKCiAgIEZpeCBtaW5vciB0eXBvCgoyMDA0LTA4LTMxIDIxOjM2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gdXBkYXRlIGxpYnRvb2wgdmVyc2lvbiBpbmZvcm1hdGlvbgogICAtIGFkZCBub3RlIG9uIHJ1bm5pbmcgY3ZzMmNsIG9uIGEgYnJhbmNoCgoyMDA0LTA4LTMxIDIxOjI2ICByc3RvcnkKCiAgICogbWFuL21pYjJjLjEuZGVmLCBsb2NhbC9taWIyYy5jb25mOgoKICAgYWRkIGluZm9ybWF0aW9uIGFib3V0IG1pYjJjLm1mZC5jb25mCgoyMDA0LTA4LTMxIDIwOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSB1cGRhdGUgY29tbWVudHMgb24gbGlidG9vbCB2ZXJzaW9uaW5nCiAgIC0gdXBkYXRlIGZvciA1LjIKCjIwMDQtMDgtMzEgMTY6NDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgZml4IGZsb2F0IGNhbGMgaW4gdmFyX2V4dGVuc2libGVfZGlzayBwZXIgSGFyYWxkIFN0cmHfYmVyZ2VyIDxoc0BzeXNsb2cuYXQ+CgoyMDA0LTA4LTMxIDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgYWdlbnRfbW9kdWxlX2NvbmZpZy5oCgoyMDA0LTA4LTMxIDAzOjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBEZWNsYXJlIGhhbmRsZXJzIGFzIFJXUklURS9ST05MWSBhcyBhcHByb3ByaWF0ZS4KICAgU3VwcHJlc3MgU0VUIGhhbmRsaW5nIGNvZGUgZm9yIHJlYWQtb25seSB0YWJsZXMuCgoyMDA0LTA4LTMxIDAzOjI1ICBkdHMxMgoKICAgKiBsb2NhbC86IHNubXBjb25mLCBtaWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaSwKICAgICBtaWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmksCiAgICAgbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIERhdmUncyBiZWluZyBwZXJuaWNraXR5IGFib3V0IGdyYW1tYXIgYWdhaW4uCiAgICJJdCdzIiBpcyBzaG9ydCBmb3IgIml0IGlzIi4KICAgIkJlbG9uZ2luZyB0byBpdCIgaXMgIml0cyIgLSBubyBhcG9zdHJvcGhlLgoKMjAwNC0wOC0zMSAwMzoyMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIEltcHJvdmUgZXJyb3IgaGFuZGxpbmcgZm9yIGludmFsaWQgU0VUIHJlcXVlc3RzLgoKMjAwNC0wOC0zMSAwMzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFN1cHByZXNzIFNFVCBoYW5kbGluZyBjb2RlIGZvciByZWFkLW9ubHkgdGFibGVzLgoKMjAwNC0wOC0zMSAwMzoxOCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYKOgoKICAgT29wcyEgIG1pYjJjIGNvbmZpZyB0eXBvCgoyMDA0LTA4LTMxIDAzOjE2ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZgo6CgogICBEZWNsYXJlIGhhbmRsZXJzIGFzIFJXUklURS9ST05MWSBhcyBhcHByb3ByaWF0ZS4KCjIwMDQtMDgtMzEgMDM6MTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUyLmNvbmY6CgogICBBbHRlcm5hdGl2ZSBpdGVyYXRvciB0ZW1wbGF0ZS4gIEJhc2VkIG9uIGEgc2luZ2xlIGhhbmRsZXIgKHVubGlrZQogICAnaXRlcmF0b3JfYWNjZXNzJyksIGJ1dCBzb21ld2hhdCBtb3JlIGNvbXBsZXRlIHRoYW4gdGhlIG9yaWdpbmFsLAogICBwYXJ0aWN1bGFybHkgdy5yLnQuIFNFVCBoYW5kbGluZy4KCjIwMDQtMDgtMzEgMDM6MDkgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEltcHJvdmUgdGhlIGV4YW1wbGUgZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiAoZXNwLiB3LnIudC4gaW5kZXggdmFsdWVzKQoKMjAwNC0wOC0zMSAwMDozNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgbmV3IHN0cnVjdCB0eXBlZGVmLCBuZXRzbm1wX2hhbmRsZXJfYXJncwoKMjAwNC0wOC0zMSAwMDozNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSBhZGQgbmV3IHZvaWQgcG9pbnRlciBmb3IgY2FjaGUgaGludAogICAtIGRlZmluZSBuZXcgZmxhZyBmb3IgaGFuZGxlciBhcmdzIGNhY2hlIGhpbnQKICAgLSBwYXNzIGhhbmRsZXIgYXJncyBjYWNoZSBoaW50IHdoZW4gZmxhZyBzZXQKCjIwMDQtMDgtMjggMTU6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBjb25maWdfcmVxdWlyZSBtaWJJSS92YXJfcm91dGUgKFVTRV9TWVNDVExfSUYgbmVlZHMgZ2V0X2FkZHJlc3MpCgoyMDA0LTA4LTI4IDEyOjM4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgLSBuZXRzbm1wX2Fzc2VydCBvbiBzZWxmLXJlZmVyZW5jZSBpbiBsaW5rZWQgbGlzdAoKMjAwNC0wOC0yOCAxMjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gYWRkIGNvbW1lbnRzCgoyMDA0LTA4LTI4IDEyOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBjb21tZW50IG91dCBjb25maWdfcmVxdWlyZSBtYWNyb3MgZm9yIHVud3JpdHRlbiBtb2R1bGVzCgoyMDA0LTA4LTI4IDEyOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBkb2N1bWVudCBzY2FubGluZSBmb3JtYXQKCjIwMDQtMDgtMjggMTI6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgLSByZW1vdmUgZXh0cmFuZW91cyAnOycKICAgICAoaXNzdWUgbm90ZWQgaW4gYnVnL3BhdGNoIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yOCAxMjoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgLSBpbmxpbmUgZml4ZXMgZnJvbSBTdGVwaGVuIEouIEZyaWVkbCwgcGx1cyBhIGZldyBJIGZvdW5kCiAgICAgKGlzc3VlcyBub3RlZCBpbiBidWcvcGF0Y2ggMTAxMTQ3MSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMpCgoyMDA0LTA4LTI4IDEyOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKCjIwMDQtMDgtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBvbmx5IGRlZmluZSBpbmxpbmUgbWFjcm9zIGlmIGVuYWJsZWQKICAgICAoaXNzdWUgbm90ZWQgaW4gYnVnIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yNyAyMzoyNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gZml4IDEvMiBvZiBidWcgNzAyNDM1OiBtZW1vcnkgbGVhayBbLi4uXSBmb3IgYWdlbnR4IHN1YmFnZW50cwogICAgIC0gUGF0Y2ggc3VwcGxpZWQgYnkgRnJhbnogRy4gRmlzY2hlcgoKMjAwNC0wOC0yNyAyMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXIgYW5kIHByb3RvdHlwZXMKICAgLSBhZGQgY29tbWVudCBkb2N1bWVudGluZyBzY2FuIGxpbmUgZm9ybWF0CgoyMDA0LTA4LTI3IDIzOjIyICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBvbWl0IHJvdXRlcyB0aGF0IGFyZSBkb3duCiAgIC0gaGFyZGNvZGUgYWN0aXZlIHJvdyBzdGF0dXMgZm9yIG5ld2x5IGRpc2NvdmVyZWQgcm91dGVzCgoyMDA0LTA4LTI3IDIzOjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gdHdlYWsgbG9nIG1lc3NhZ2VzIHN5bnRheAogICAtIGZpeCBpcHY0IG1hc2sgY2FsY3VsYXRpb24KICAgLSBpbXBsZW1lbnQgaXB2NiByb3V0ZXMKICAgLSBjb21tb24gZnVuY3Rpb24gdG8gc2V0IHJvdXRlIHR5cGUgZnJvbSBmbGFncwogICAtIHNldCBwb2xpY3kgb2lkIGJhc2VkIG9uIGFyYml0cmFyeSBpbmRleAoKMjAwNC0wOC0yNyAyMzoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgZG9udCBmcmVlIHBvbGljeSBvaWQgaWYgc3RhdGljIGZsYWcgc2V0CgoyMDA0LTA4LTI3IDIzOjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgLSBhZGQgZmxhZyBmb3Igc3RhdGljIHBvbGljeSBvaWQKICAgLSBjaGFuZ2UgaW50ZXJuYWwgaW5kZXggdHlwZSB0byBvaWQKCjIwMDQtMDgtMjcgMDc6MjkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgVHJ5IGEgZGlmZmVyZW50IGFwcHJvYWNoIHRvIG11bHRpLXR5cGUgY29uZmlnIGhhbmRsaW5nLgogICBEb24ndCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVyIGNvbmZpZyB0b2tlbnMgYWdhaW5zdCBtdWx0aXBsZSB0eXBlcy4KICAgSW5zdGVhZCwgZXhwbGljaXRseSByZWdpc3RlciBBZ2VudFgtcmVsYXRlZCBjb25maWcgdG9rZW5zIGFzIHN1Y2guCiAgIChUaGUgY29uZmlnIG1lY2hhbmlzbSB3aWxsIGFscmVhZHkgYXV0b21hdGljYWxseSBsb2FkIGFueSBjb25maWcKICAgZmlsZSB0eXBlcyB0aGF0IGl0IGtub3dzIGFib3V0KS4KCjIwMDQtMDgtMjcgMDM6MTUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFVzZSBhIGNvbnNpc3RlbnQgImhvc3RzLnthbGxvdyxkZW55fSIgdG9rZW4gZm9yIGtub3duIGFuZCB1bmtub3duIGFkZHJlc3Nlcy4KCjIwMDQtMDgtMjcgMDM6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIElmIHdlJ3JlIHJlYWRpbmcgaW4gdGhlIG11bHRpY2FzdCBzdGF0cywgdGhlbiB0aGUgc2NhbiBsaW5lIG5lZWRzIHRvIGJlCiAgIHR3ZWFrZWQgbm90IHRvIHNraXAgdGhpcyB2YWx1ZSEKCjIwMDQtMDgtMjYgMDc6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIFN1cHByZXNzIDMyLWJpdCBzaGlmdCB3YXJuaW5ncyBvbiAzMi1iaXQgc3lzdGVtcy4KICAgKFRob3VnaCB0aGlzIG1heSBub3QgYmUgdGhlIGJlc3Qgd2F5IHRvIGRldGVjdCBzdWNoIHN5c3RlbXMhKQoKMjAwNC0wOC0yNiAwNzoyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRGVjbGFyZSBtaXNzaW5nIHZhcmlhYmxlIG9uIG5vbi1TQ051TUFYIHN5c3RlbXMuCgoyMDA0LTA4LTI1IDEyOjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVuYW1lIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5IG1lbWJlcnMgdG8gYXZvaWQgbmFtZXNwYWNlIGNvbmZsaWN0cwogICAgIC0gbm90ZWQgb24gdXNlcnMgYnkgQWtpaGlybyBJSUpJTUEKCjIwMDQtMDgtMjUgMDk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBtaWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGFwcGx5IHJldmlzZWQgcGF0Y2ggZm9yIGJ1ZyA4OTcwMDI6IHNubXBkIGNhbm5vdCBoYW5kbGUgNjQgYml0IGludGVyZmFjZSBjb3VudGVycwogICAgIChoYWQgYmVlbiBtYXJrZWQgYXMgZml4ZWQgYnV0IHdhc24ndCkKCjIwMDQtMDgtMjUgMDg6MzggIGR0czEyCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICBEb2N1bWVudCB0aGUgbmV3IG1pYjJjIG5vZGUgdGFncy4KCjIwMDQtMDgtMjUgMDg6MzUgIGR0czEyCgogICAqIG1pYnMvOiBESVNNQU4tRVhQUkVTU0lPTi1NSUIudHh0LCBESVNNQU4tTlNMT09LVVAtTUlCLnR4dAosIERJU01BTi1QSU5HLU1JQi50eHQsIERJU01BTi1UUkFDRVJPVVRFLU1JQi50eHQKOgoKICAgQWRkIERpc01hbiBSZW1vdGUgT3BlcmF0aW9ucyBNSUIgZmlsZXMKCjIwMDQtMDgtMjUgMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV4cHJlc3Npb24vZ251Yy5oLCBleHByZXNzaW9uL2luNi5oCiwgZXhwcmVzc2lvbi9pcF92YXIuaCwgZXhwcmVzc2lvbi9pcHY2LmgsCiAgICAgZXhwcmVzc2lvbi91ZHBfdmFyLmgsIG5zbG9va3VwL2dudWMuaCwgbnNsb29rdXAvaW42LmgKLCBuc2xvb2t1cC9pcF92YXIuaCwgbnNsb29rdXAvaXB2Ni5oLAogICAgIG5zbG9va3VwL3VkcF92YXIuaCwgcGluZy9nbnVjLmgsIHBpbmcvaW42LmgsCiAgICAgcGluZy9pcF92YXIuaCwgcGluZy9pcHY2LmgsIHBpbmcvdWRwX3Zhci5oLAogICAgIHRyYWNlcm91dGUvZ251Yy5oLCB0cmFjZXJvdXRlL2luNi5oLAogICAgIHRyYWNlcm91dGUvaXBfdmFyLmgsIHRyYWNlcm91dGUvaXB2Ni5oLAogICAgIHRyYWNlcm91dGUvdWRwX3Zhci5oOgoKICAgTG9jYWxseS10d2Vha2VkIHZlcnNpb25zIG9mIHN0YW5kYXJkIGhlYWRlciBmaWxlcy4KICAgVGhpcyBpcyBub3QgdGhlIG1vc3QgYXBwcm9wcmlhdGUgd2F5IHRvIHByb2NlZWQsCiAgIGJ1dCBpcyBuZWVkZWQgdG8gZ2V0IHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uIHdvcmtpbmcuCgoyMDA0LTA4LTI1IDA3OjMxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgU3VwcG9ydCBob2xlcyBpbiAiaXRlcmF0ZV9hY2Nlc3MiIHRhYmxlcy4KCjIwMDQtMDgtMjUgMDE6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYzoKCiAgIEZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBSbW9uIGNvZGUuIChSZXBvcnRlZCBieSBGb25nIFRzdWkpCgoyMDA0LTA4LTI0IDE4OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGRhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGRhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIHJlbmFtZSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSBtZW1iZXJzIHRvIGF2b2lkIG5hbWVzcGFjZSBjb25mbGljdHMKICAgICAtIG5vdGVkIG9uIHVzZXJzIGJ5IEFraWhpcm8gSUlKSU1BCgoyMDA0LTA4LTI0IDA5OjI4ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwCjoKCiAgIEZpeCB0aGUgbWluaW1hbCBjb25maWcgdGVzdHMgdG8gdXNlIHRoZSBjb3JyZWN0IHNldCBvZiBNSUIgbW9kdWxlcy4KICAgKFJlcG9ydGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTI0IDA5OjI0ICBkdHMxMgoKICAgKiB0ZXN0aW5nLzogUkVBRE1FLCBSVU5URVNUUywgZXZhbF90b29scy5zaDoKCiAgIFN1cHBvcnQgYWRkaXRpb25hbCB0cmFwZCBmbGFncyAocGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlKQogICAoQW5kIHVwZGF0ZSB0aGUgUkVBRE1FIHRvIGtlZXAgTWlrZSBoYXBweSEpCgoyMDA0LTA4LTI0IDA5OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgTG9nIHJlY29uZmlnL3NodXRkb3duIG1lc3NhZ2VzIG1vcmUgcmVsaWFibHkuICAoUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0yNCAwOToxNiAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIEFkZCBDaXNjby9CVVBUTklDIGNvcHlyaWdodCBub3RpY2UsIHRvIGNvdmVyIHRoZSBuZXcgRGlzTWFuIFJlbU9wcyBjb2RlLgoKMjAwNC0wOC0yNCAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNtYW4uaCwgZGlzbWFuL2V4cHJlc3Npb24tbWliLmgsCiAgICAgZGlzbWFuL25zbG9va3VwLW1pYi5oLCBkaXNtYW4vcGluZy1taWIuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS1taWIuaCwgZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5jCiwgZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5oLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5oLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmMsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5oLAogICAgIGRpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLAogICAgIGRpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLAogICAgIGRpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmgsCiAgICAgZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIGRpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oCiwgZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsCiAgICAgZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmgsCiAgICAgZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLAogICAgIGRpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5oLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5oLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGlzTWFuIFJlbW90ZSBPcGVyYXRpb24gTUlCIGdyb3Vwcy4KICAgTm90ZSB0aGF0IHRoZXNlIGFyZSBub3QgeWV0IHJlYWR5IGZvciBwcm9kdWN0aW9uIHVzZS4KCjIwMDQtMDgtMjMgMDg6MDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIG5ldyB0YXJnZXQgdG8gb25seSBtYWtlIG9iamVjdHMgZm9yIGN1cnJlbnQgZGlyZWN0b3J5IChubyBzdWJkaXJzKQoKMjAwNC0wOC0yMyAwNzozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMS5kZWY6CgogICBPcHRpb24gdG8gZXhjbHVkZSB0aGUgZmluYWwgR0VUIHJlcXVlc3Qgd2hlbiB3YWxraW5nIGEgc2luZ2xlIGluc3RhbmNlLgoKMjAwNC0wOC0yMyAwMjozOSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgTmV3IHRlbXBsYXRlIGNvbmZpZ3MgZm9yIHJvdy1iYXNlZCAiaW50ZXJuYWwtZGF0YSIgaW1wbGVtZW50YXRpb25zLgoKMjAwNC0wOC0yMyAwMjoyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBOZXcgdmFyaWFibGUgdG9rZW5zIHRvIGlkZW50aWZ5ICJjcmVhdGFibGUiIG9yIFJvd1N0YXR1cyBjb2x1bW4gb2JqZWN0cy4KICAgRXh0ZW5kIHRoZXNlIHR3byB0b2tlbnMsIHBsdXMgInNldHRhYmxlIiB0byBhcHBseSB0byB0YWJsZXMgYXMgd2VsbAogICAocmVwb3J0aW5nIG9uIHRoZSBjb25zdGl0dWVudCBjb2x1bW4gb2JqZWN0cykuCgoyMDA0LTA4LTIzIDAxOjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBJbXBsZW1lbnQgY29udGV4dCBlcnJvciBjb3VudGVycyBhcyBwcm9wZXIgc2NhbGFyIG9iamVjdHMKICAgKHJhdGhlciB0aGFuIHNpbXBseSBpbnN0YW5jZXMpCgoyMDA0LTA4LTIzIDAxOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jOgoKICAgRnVsbGVyIGltcGxlbWVudGF0aW9uIG9mIHNubXBTZXRTZXJpYWxObyBvYmplY3QsIGluY2x1ZGluZyBwZXJzaXN0YW5jZSBhY3Jvc3MKICAgYWdlbnQgcmVzdGFydCwgcmFuZG9tIGluaXRpYWxpc2F0aW9uIHZhbHVlIChib3RoIHBlciBUZXN0QW5kSW5jciBkZXNjcmlwdGlvbikKICAgYW5kIHByb3BlciBvYmplY3QgaW5zdGFuY2UgYmVoYXZpb3VyLgoKMjAwNC0wOC0yMyAwMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERvbid0IGludm9rZSBjYWxsYmFjayByZWdpc3RyYXRpb25zIGlmIHRoZSBvcmlnaW5hbCByZWdpc3RyYXRpb24gZmFpbHMuCiAgIChTZWUgYnVnICM5OTAwNzApCgoyMDA0LTA4LTIwIDA4OjUxICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHByb2plY3QgbnVtYmVyIHRvIDUuMi5kZXYKCjIwMDQtMDgtMjAgMDg6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHJlbW92ZSBzdGF0aWMgYXR0cmlidXRlIGZvciBmdW5jdGlvbgogICAtIGZpeCBwYXJlbiBncm91cGluZwoKMjAwNC0wOC0yMCAwODo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gZG8gbm90IGluY2x1ZGUgZGF0YSBhY2Nlc3MgaGVhZGVycywgYXMgdGhleSBhcmUgbm90IGluc3RhbGxlZAoKMjAwNC0wOC0yMCAwODoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGluY2x1ZGUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGhlYWRlcgoKMjAwNC0wOC0yMCAwMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFRpZHkgdXAgaGFuZGxpbmcgb2YgcGlkX2ZpbGUuIChQYXRjaGVzIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTkgMDI6MjMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBJbXByb3ZlZCBoYW5kbGluZyBvZiBzbm1wdHJhcGQgUElEIGZpbGUuCiAgIFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZS4KCjIwMDQtMDgtMTkgMDI6MTcgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgSGFuZGxlIGFnZW50X21vZHVsZSBoZWFkZXIgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFzIG1pYl9tb2R1bGUgb25lcy4KICAgKFJlbW92aW5nIHRoZW0gd2hlbiBjbGVhbmluZyB1cCwgYW5kIGluc3RhbGxpbmcgdGhlIGNvbmZpZyBoZWFkZXIpCgoyMDA0LTA4LTE5IDAyOjEyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBBZGQgYWdlbnRfbW9kdWxlIGNvbmZpZ3VyYXRpb24gdG9rZW5zIHRvIHRoZSBsaXN0IG9mCiAgIHN0YW5kYXJkIGFnZW50IGluY2x1ZGVzLiAgKFJlcG9ydGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE5IDAyOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtQ29uZi5oOgoKICAgQ29ycmVjdCBhZ2VudF9tb2R1bGUgY29uZmlnIHNldHRpbmcuCiAgIChTcG90dGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE4IDE1OjEyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQWxsb3cgVE9LRU5SSU5HLU1JQiBhbmQgRFMxLU1JQiB0byBvdmVycmlkZSBvbGRlciBSRkMgbWlicwoKMjAwNC0wOC0xOCAwMjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVXNlIHRoZSBjb250ZXh0IG5hbWUgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGNhbGwsCiAgIHJhdGhlciB0aGFuIHRoZSBjb250ZXh0IGZyb20gdGhlIGluY29taW5nIHJlcXVlc3QuCiAgIFRoZXNlIG91Z2h0IHRvIGJlIHRoZSBzYW1lLCBidXQgYXJlIHN1YnRseSBkaWZmZXJlbnQgd2hlbgogICBubyBjb250ZXh0IGlzIHNwZWNpZmllZC4gIChQYXRjaCBzdXBwbGllZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xNyAwODo0MCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBNb3JlIHBvcnRhYmxlIGFwcHJvYWNoIHRvIGF2b2lkaW5nIHVubmVjZXNzYXJ5IGhlYWRlciBpbnN0YWxscy4KICAgKFRoYW5rcyB0byBib3RoIEJlbiBSb2dlcnMgYW5kIFN0ZXBoZW4gSi4gRnJpZWRsKQoKMjAwNC0wOC0xNyAwMjowOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBdHRlbXB0IHRvIHN1cHBvcnQgbXVsdGlwbGUgJ3t4eHh4fS5jb25mJyBhcHBsaWNhdGlvbiB0eXBlcy4KCjIwMDQtMDgtMTcgMDI6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBJbmNsdWRlIHRoZSBuZXcgJ05FVC1TTk1QLUVYVEVORC1NSUInIG1vZHVsZSBpbiBhIGRlZmF1bHQgY29uZmlnLgoKMjAwNC0wOC0xNyAwMjowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEFsbG93ICJ0cmFwaGFuZGxlIiBkaXJlY3RpdmVzIHRvIG1hdGNoIGEgc3VidHJlZSByYXRoZXIKICAgdGhhbiBqdXN0IGEgc2luZ2xlIHRyYXAuICAoU3VnZ2VzdGVkIGJ5IEJvc2tvIE1pbGVraWMpCgoyMDA0LTA4LTE3IDAxOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRG9uJ3QgYm90aGVyIGxvb2tpbmcgdXAgdGhlIGhvc3RuYW1lIHVubGVzcyBpdCdsbCBhY3R1YWxseQogICBiZSBuZWVkZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGVuZ2luZUlELiAgU3VnZ2VzdGVkIGJ5IEpvZSBDLgoKMjAwNC0wOC0xNyAwMTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgICBzbm1wVW5peERvbWFpbi5jOgoKICAgRW5zdXJlIHRoYXQgYSBub24tbWF0Y2hpbmcgY29tMnNlYyBsb29rdXAgd2lsbCByZXR1cm4gYSBOVUxMICdzZWNOYW1lJwogICAoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IE9sZWcgSXZhbm92KQoKMjAwNC0wOC0xNyAwMTo0MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRG9uJ3QgYXBwbHkgJ2hvc3RzLnthbGxvdyxkZW55fScgY2hlY2tpbmcgdG8gY2FsbGJhY2sgY29ubmVjdGlvbnMKICAgKHdoaWNoIHR5cGljYWxseSB3b24ndCBtYXRjaCBhbnl0aGluZyBvdGhlciB0aGFuICJBTEwiKQoKMjAwNC0wOC0xNyAwMTozOCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIHBhcmFtZXRlcnMuICAoU3VnZ2VzdGVkIGJ5IEpvaG4gTGFzaCkKCjIwMDQtMDgtMTcgMDE6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIEFQSSBmb3IgYWRkaW5nIGEgKG5ld2x5IGNyZWF0ZWQpIHJvdyB0byB0aGUgdmFyYmluZCByZXF1ZXN0IGxpc3QsCiAgIHNvIGl0J3MgYXZhaWxhYmxlIGR1cmluZyBsYXRlciBTRVQgcGFzc2VzLiAgIFRoZXJlJ3MgcHJvYmFibHkKICAgYSBiZXR0ZXIgd2F5IG9mIGNvbXBhcmluZyBpbmRleCB2YWx1ZXMsIGJ1dCB0aGlzIHNlZW1zIHRvIHdvcmsuCgoyMDA0LTA4LTE3IDAxOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXB2M21pYnMuaCwgc25tcHYzL3VzbUNvbmYuYywKICAgICBzbm1wdjMvdXNtQ29uZi5oLCBzbm1wdjMvdXNtVXNlci5jOgoKICAgU3BsaXQgb2ZmIFVTTSBjb25maWcgaGFuZGxpbmcgaW50byBhIHNlcGFyYXRlIG1vZHVsZQogICAoYW5kIG1vdmUgdGhpcyBpbnRvIHRoZSBhZ2VudCBsaWJyYXJ5KQoKMjAwNC0wOC0xNyAwMToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvYWdlbnR4X2NvbmZpZy5oLCBhZ2VudHgvY2xpZW50LmgKLCBhZ2VudHgvbWFzdGVyLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgICBhZ2VudHgvcHJvdG9jb2wuaCwgYWdlbnR4L3N1YmFnZW50LmgsCiAgICAgbWliSUkvdmFjbV9jb25mLmg6CgogICBNb3ZlIFZBQ00gY29uZmlnIGhhbmRsaW5nIGFuZCBBZ2VudFggc3VwcG9ydCBpbnRvIHRoZSBhZ2VudCBsaWJyYXJ5LgoKMjAwNC0wOC0xNyAwMToyMyAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBtaWJfbW9kdWxlcy5jOgoKICAgUGljayB1cCBhZ2VudF9tb2R1bGUgaW5pdGlhbGlzYXRpb24gYW5kIGRvdF9jb25mIHJvdXRpbmVzLgogICAoTm90IGNvbnZpbmNlZCB0aGlzIGlzIHRoZSBiZXN0IHBsYWNlIGZvciB0aGUgYWdlbnRfbW9kdWxlCiAgICBpbml0IHJvdXRpbmVzIHRvIGJlIGNhbGxlZCwgYnV0IGl0J2xsIGRvIGZvciBub3cuKQoKMjAwNC0wOC0xNyAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBTd2l0Y2ggbGlua2luZyBvcmRlciBvZiBhZ2VudCBhbmQgbWliIGxpYnJhcmllcyAoc2luY2UgbGlibmV0c25tcG1pYnMKICAgbWF5IHdlbGwgdXNlIHJvdXRpbmVzIGRlZmluZWQgaW4gbGlibmV0c25tcGFnZW50LCBidXQgbm90IHZpY2UgdmVyc2EpCgoyMDA0LTA4LTE3IDAxOjE1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEVuc3VyZSBhZ2VudCB2cyBtaWIgbW9kdWxlcyBhcmUgcGlja2VkIHVwIGNvcnJlY3RseSAoZXNwLiBmb3IgbW9kdWxlcwogICB3aXRob3V0IGEgaGVhZGVyIGZpbGUsIHdoaWNoIHNob3VsZCBkZWZhdWx0IHRvICdtaWJfbW9kdWxlcycpCgoyMDA0LTA4LTE3IDAxOjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFNsaWdodGx5IHByZWZlcmFibGUgY29uZmlnIHRva2VuIGZvciB0aGUgbmV3IGV4dGVuc2libGUgc2NyaXB0aW5nIG1pYiwKICAgZG9jdW1lbnQgdGhpcyBmZWF0dXJlLCBhbmQgYWRkIGEgd2FybmluZyByZWdhcmRpbmcgdGhlIG9sZCAoaW52YWxpZCkKICAgcmVsb2NhdGFibGUgb3V0cHV0IGZvcm1hdC4KCjIwMDQtMDgtMTYgMjA6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGRvbid0IGRyb3AgcmUtYXR0YWNoZWQgaGVhZCAocGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbikKICAgLSBmaXggdHlwbwoKMjAwNC0wOC0xNiAxNDo1NyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1mZC5oCgoyMDA0LTA4LTE2IDE0OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG5ldyB2ZXJzaW9uIGZyb20gYXV0b2NvbmYKCjIwMDQtMDgtMTYgMTQ6MjMgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBhZGQgdW5kZWYgZm9yIFNUUlVDVF9UTV9IQVNfVE1fR01UT0ZGRgogICAtIGRlZmluZSBjb25maWdfYmVsb25nc19pbiB0byBub3RoaW5nCgoyMDA0LTA4LTE2IDEyOjEzICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2gsIHNtaXN0cmlwOgoKICAgTW9yZSBhdXRvbWF0aWMgaW5zdGFsbGF0aW9uIG9mIFJGQyBiYXNlZCBtaWJzCgoyMDA0LTA4LTEzIDA2OjU5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmU6CgogICBJZ25vcmUgY29uZmlnLWdlbmVyYXRlZCAnYWdlbnRfbW9kdWxlJyBmaWxlcwoKMjAwNC0wOC0xMyAwNjo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIElnbm9yZSBjb25maWctZ2VuZXJhdGVkICdhZ2VudF9tb2R1bGUnIGZpbGVzCgoyMDA0LTA4LTEzIDA2OjQzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBsb2NhbC9NYWtlZmlsZS5pbiwKICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvYXV0aGVudGljYXRpb24sCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2xvZ2dpbmcsCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3J1bnRpbWUsCiAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2kKOgoKICAgQWRkIHNubXB0cmFwZCBjb25maWcgc3VwcG9ydCBmb3IgbG9nZ2luZywgYXV0aGVudGljYXRpb24gYW5kIHJ1bnRpbWUgb3B0aW9ucy4KICAgKFBhdGNoICM5ODEzMTkgZnJvbSBBbGV4IEJ1cmdlcikKCjIwMDQtMDgtMTMgMDY6MzMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgU3RyaXAgcG9ydC1udW1iZXIgc3BlY2lmaWNhdGlvbiBmcm9tICJwZWVybmFtZSIgd2hlbiBjb25zdHJ1Y3RpbmcgS1NNIGNyZWRlbnRpYWxzLgogICAoQmFzZWQgb24gcGF0Y2ggIzk5MjQ0MCkKCjIwMDQtMDgtMTMgMDM6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEhhbmRsZSAiZ2VuZXJhbCIgQWdlbnRYIGVycm9ycywgbm90IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHZhcmJpbmQuCiAgIChCYXNlZCBvbiBwYXRjaCAjOTgzOTcyIGZyb20gbG9yZW56aW0pCgoyMDA0LTA4LTEzIDAyOjU0ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFByb3ZpZGUgbWlzc2luZyBkZWZpbml0aW9uIG9mICdpbnN0YWxsc3ViZGlyaGVhZGVycycgcnVsZS4KICAgKFBhdGNoICM5OTE2NjQgZnJvbSBCZW4gUm9nZXJzKQoKMjAwNC0wOC0xMyAwMjo1MyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICAiTGF6eSIgaW5zdGFsbGF0aW9uIG9mIGhlYWRlciBmaWxlcy4gIE9ubHkgaW5zdGFsbCBhIGhlYWRlciBmaWxlIGlmCiAgIGl0J3MgbmV3ZXIgdGhhbiB0aGUgZXhpc3Rpbmcgb25lLiAgKFBhdGNoICM5OTE2NjQgZnJvbSBCZW4gUm9nZXJzKQoKMjAwNC0wOC0xMyAwMjo1MCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wLXRjLmMKOgoKICAgVXNlIGFuIGV4cGxpY2l0IGNoZWNrIGZvciAndG1fZ210b2ZmJywgcmF0aGVyIHRoYW4gcGVyLWFyY2hpdGVjdHVyZSAjZGVmaW5lcwogICAoUGF0Y2ggIzEwMDYyOTggZnJvbSBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDgtMTMgMDI6MTcgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBpYW5hbGlzdCwgcmZjbGlzdDoKCiAgIFVwZGF0ZWQgUkZDIE1JQiBpbmZvcm1hdGlvbgoKMjAwNC0wOC0xMiAwNzo0OSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgSGFuZGxlIGEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgImFwcGxpY2F0aW9uLXR5cGUiIGNvbmZpZyBmaWxlcy4KICAgKGUuZy4gImFnZW50eDpzbm1wZCIgdG8gc2VhcmNoICpib3RoKiAnc25tcGQuY29uZicgKmFuZCogJ2FnZW50eC5jb25mJykKICAgU2VlIGNvZGVycy10aHJlYWQgIkFnZW50WCBjb25maWd1cmF0aW9uIiAtIEp1bCAnMDQKCjIwMDQtMDgtMTIgMDU6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBBbiBleGFtcGxlIG9mIGNvbmZpZ3VyaW5nIGNvZGUgaW50byB0aGUgYWdlbnQgcmF0aGVyIHRoYW4gdGhlIG1pYiBsaWJyYXJ5LgoKMjAwNC0wOC0xMiAwNToxOCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbgosIGNvbmZpZ3VyZToKCiAgIFN1cHBvcnQgYSBtZWNoYW5pc20gZm9yIGluY2x1ZGluZyBwYXJ0aWN1bGFyIGNvZGUgbW9kdWxlcyB3aXRoaW4gZWl0aGVyCiAgIHRoZSBtaWIgbGlicmFyeSBvciB0aGUgYWdlbnQgbGlicmFyeSAob3IgcG90ZW50aWFsbHkgZWxzZXdoZXJlIGFzIHdlbGwpLgogICAoU2VlIGNvZGVycy10aHJlYWQgIk1vdmluZyBBZ2VudFggb3V0IG9mIHRoZSBtaWJtb2R1bGVzIiAtIEp1bmUgJzA0KQoKMjAwNC0wOC0xMiAwNToxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgSW5jbHVkZSBhbiBvZnQtb3Zlcmxvb2tlZCBoZWxwZXIuCgoyMDA0LTA4LTEyIDA1OjExICBkdHMxMgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmb2xsb3dpbmcgTlVMTCBwb2ludGVycwogICAocGx1cyBzb21lIHBldHR5IGdyYW1tYXRpY2FzdGlnYXRpb24pCgoyMDA0LTA4LTExIDEzOjU3ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbG9vayBmb3IgLmluIGZpbGUgaW4gc3JjZGlyLCB3aGljaCBtYXkgIT0gY3VycmVudCBkaXIKCjIwMDQtMDgtMTEgMDU6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgT25seSBzdG9yZSB0aGUgdGFibGUgc3RydWN0dXJlIG9uIHRoZSBmaXJzdCBwYXNzIHRocm91Z2guCiAgIFN1YnNlcXVlbnQgcGFzc2VzIGNhbiByZXRyaWV2ZSB0aGlzIHN0b3JlZCB2YWx1ZSBhbnl3YXkuCgoyMDA0LTA4LTExIDA0OjU1ICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICByZW1vdmUgZGVsZXRlZCBtYW4gcGFnZXMgKHRvZG8gJiBkZXByZWNhdGVkKQoKMjAwNC0wOC0xMCAwODo1MyAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb25pbmcgYSBiaXQKCjIwMDQtMDgtMDQgMDU6NTEgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9kZXByZWNhdGVkLjMsCiAgICAgbWFuL25ldHNubXBfdG9kby4zOgoKICAgRG9uJ3QgaW5zdGFsbCAndG9kbycgb3IgJ2RlcHJlY2F0ZWQnIG1hbiBwYWdlcwogICAoc2luY2UgdGhlc2UgYXJlIGNvbnN0cnVjdGVkIHdpdGggc3VzcGVjdCBmb3JtYXR0aW5nKQoKMjAwNC0wOC0wMyAwODoxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgbGVuZ3RoIG9mIHN0cmluZyBmb3IgQUVTICdzdHJuY21wJyBjb21wYXJpc29ucy4KICAgKFNlZSBidWcgIzk5Njg5NCkKCjIwMDQtMDgtMDIgMTQ6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggY29udGV4dCByZWdpc3RyYXRpb24gc28gbmV3IGNvbnRleHQgdHJlZXMgZ2V0IHByb3Blcmx5IGluaXRpYWxpemVkLgoKMjAwNC0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIERvbid0IGRvdWJsZS1wcm9kdWNlIEhUTUwgb3V0cHV0IGZvciByZXBlYXRlZCBNSUJzLgoKMjAwNC0wNy0zMCAxNzozMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gZG9jdW1lbnQgQWdlbnRYIGNvbnRleHQgZml4aW5nCiAgIC0gZG9jdW1lbnQgdGhlIHVzbVVzZXIgdGFibGUgcG9wdWxhdGlvbiB1bmRlciBzbm1wdHJhcGQKCjIwMDQtMDctMzAgMTc6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIERvdWJsZSBjaGVjayB0aGF0IHRoZSBjb250ZXh0TmFtZSBhcnJheSBpcyBwcm9wZXJseSBpbml0aWFsaXplLgoKMjAwNC0wNy0zMCAxNzozMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgQWRkIGNvbnRleHROYW1lIHRvIHRoZSByZWdpc3RyYXRpb24gcGFyYW1hdGVycyBzdHJ1Y3R1cmUuCgoyMDA0LTA3LTMwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVnaXN0ZXIgdGhlIHVzbVVzZXJUYWJsZSB1bmRlciB0aGUgInNubXB0cmFwZCIgY29udGV4dAoKMjAwNC0wNy0zMCAxNzoyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIHJlZ2lzdGVyIGFsbCB0aGUgc25tcHRyYXBkIG1pYiBub2RlcyB1bmRlciB0aGUgInNubXB0cmFwZCIgY29udGV4dAoKMjAwNC0wNy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogdXNtVXNlci5jLCB1c21Vc2VyLmg6CgogICBDcmVhdGUgYSBmdW5jdGlvbiB0byByZWdpc3RlciB0aGUgdXNtVXNlciB0YWJsZSBvdGhlciBhIGRpZmZlcmVudCBjb250ZXh0LgoKMjAwNC0wNy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIGNsaWVudC5oLCBtYXN0ZXIuYwosIHN1YmFnZW50LmM6CgogICAtIEZpeCBhZ2VudHggdG8gd29yayBwcm9wZXJseSB1bmRlciBub24tZGVmYXVsdCBjb250ZXh0cy4KCjIwMDQtMDctMzAgMTc6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCjoKCiAgIEFkZCBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyB0byByZWdpc3RlciBpbnN0YW5jZXMgdW5kZXIgbm9uIGRlZmF1bHQgY29udGV4dHMuCgoyMDA0LTA3LTMwIDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBmaXggYWRkX3N1YnRyZWUgc28gaXQgcmVnaXN0ZXJzIHRvcCBsZXZlbCBudWxsIGhhbmRsZXJzIHRvbwogICAgIC0gZml4ZXMgYSBudW1iZXIgb2YgY29udGV4dCBwcm9ibGVtcwogICAtIHBhc3MgY29udGV4dCBpbmZvcm1hdGlvbiBkb3duIGludG8gcmVnaXN0cmF0aW9uIGluZm8gc3RydWN0ICh1c2VkIGJ5IGFnZW50eCkKCjIwMDQtMDctMzAgMTc6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaDoKCiAgIC0gYWRkIGEgbnVsbCByZWdpc3RyYXRpb24gZnVuY3Rpb24gZm9yIGNvbnRleHRzIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQuCgoyMDA0LTA3LTMwIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMKOgoKICAgUGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gZml4IFVTTSBwcml2YWN5IGtleSBsZW5ndGhzCgoyMDA0LTA3LTMwIDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEkgd2FzIHNsZWVwaW5nIGVhcmxpZXIgd2hlbiBJIGZpeGVkIGNvZGUgdGhhdCB3YXNuJ3QgYnJva2VuLgoKMjAwNC0wNy0zMCAxMzowNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gY29tbXVuaXR5IHN0cmluZyAtPiBjb250ZXh0IG1hcHBpbmdzCgoyMDA0LTA3LTMwIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBuZXcgY29tMnNlYyB0b2tlbiBvcHRpb25zLgoKMjAwNC0wNy0zMCAxMzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgTWFrZSB0aGUgY29tMnNlYyogdG9rZW5zIGFjY2VwdCBhIC1DbiBDT05URVhUIGZsYWcgdG8gYWxsb3cgdGhlCiAgIG1hcHBpbmcgb2YgY29tbXVuaXR5IHN0cmluZ3MgdG8gU05NUHYzIGNvbnRleHRzLgoKMjAwNC0wNy0zMCAxMjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGFzcyB0aGUgYWN0dWFsIHBkdSBiZWluZyBwcm9jZXNzZWQgaW50byBjaGVja19hY2Nlc3MgaW5zdGVhZCBvZiB0aGUgY29weQoKMjAwNC0wNy0zMCAxMToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXggY29udGV4dCBjaGVja2luZyBzbyBpdCBhY3R1YWxseSB3b3JrcyBmb3Igbm9uIGRlZmF1bHQgY29udGV4dHMKCjIwMDQtMDctMjggMTI6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGNvbmZpZ3VyZV9yZXF1aXJlIC0+IGNvbmZpZ19yZXF1aXJlCgoyMDA0LTA3LTI4IDA1OjQwICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBPcGVuU1NMIGlzIG5lZWRlZCBmb3IgU0hBLWJhc2VkIGF1dGhlbnRpY2F0aW9uLCByYXRoZXIgdGhhbiBNRDUuCiAgIChJdCdzIHVzZWQgZm9yIGJvdGggaWYgYXZhaWxhYmxlLCBidXQgaXQncyBvbmx5ICpuZWVkZWQqIGZvciBTSEEpCgoyMDA0LTA3LTI4IDAyOjE3ICBkdHMxMgoKICAgKiBGQVE6CgogICBEaXNjdXNzIFJQTS1kZXBlbmRlY3kgcHJvYmxlbXMuCgoyMDA0LTA3LTI4IDAxOjA0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBQZXItb2JqZWN0IHN3aXRjaCBzdGF0ZW1lbnQgaXMgbWlzc2luZyB0aGUgImNhc2UiIGtleXdvcmQuCiAgIChSZXBvcnRlZCBieSBXaWxsaWFtIEJ1Y2tsZXkpCgoyMDA0LTA3LTIyIDE3OjU1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGZvciB3aW4zMiBhZ2VudCwgaW50ZXJwcmV0IGlmT3BlclN0YXR1cyBjb3JyZWN0bHksCiAgIGFuZCBzZXQgaWZMYXN0Q2hhbmdlIHRvIHplcm8uIFRoZXNlIGNoYW5nZXMgZml4ZXMgYnVnICM5MDc3MTYuCgoyMDA0LTA3LTIyIDEzOjA2ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIHR5cGVkZWYgbG9uZyBpbnQzMl90IHRvIHN1Y2NlZWQgYnVpbGRpbmcgd2l0aCBNU1ZDKysuCgoyMDA0LTA3LTIyIDEwOjQ1ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHBhdGNoICM5ODI2MjggYXBwbGllZCB0byBmaXggbGVhayBvbiBlcnJvcnMgaW4gbmV0c25tcF91ZHA2X3RyYW5zcG9ydAoKMjAwNC0wNy0yMiAwODo0OSAgZHRzMTIKCiAgICogRkFROgoKICAgRW1waGFzaXNlIHRoZSBuZWVkIHRvIGV4cGxpY2l0bHkgY3JlYXRlIHVzZXJzLgoKMjAwNC0wNy0yMCAyMzoyNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBmaXggYnVnICM5OTI3MzUgT1NYIDEwLjMuNCBtYWtlIGZhaWxzIGJ5IGluY2x1ZGluZyBkYXJ3aW4gaW4gI2lmIGV4cHJlc3Npb25zLgoKMjAwNC0wNy0yMCAyMjoyOSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43Lmg6CgogICBjcmVhdGUgc3lzdGVtIGhlYWRlciBmb3IgLURkYXJ3aW43LiBwYXJ0aWFsIGZpeCBmb3IgYnVnIDk5MjczNS4KCjIwMDQtMDctMjAgMTk6NDAgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IGJ1ZyA5OTQxOTQgYnkgY2hlY2tpbmcgZm9yIG51bGwgYmVmb3JlIGRlLXJlZmVyZW5jaW5nIHBvaW50ZXIgYXJndW1lbnQuCgoyMDA0LTA3LTIwIDEzOjMxICBzbGlmCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgcGF0Y2ggOTg4Mjg2IGZyb20gQnJ1Y2UgU2hhdyAtIExvdHMgb2YgdXBkYXRlcyBvbiBSRUFETUUuc29sYXJpcwoKMjAwNC0wNy0yMCAxMzoyMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICB1c2Uga2lsbC5leGUgb25seSBpZmYgT1NUWVBFID0gbXN5cyAocGF0Y2ggIzk4NzYyNiBhcHBsaWVkKQoKMjAwNC0wNy0xOSAwOToyOCAgZHRzMTIKCiAgICogbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgRml4IGVycm9uZW91cyB0cm9mZiBtYWNybywgYXMgcmVwb3J0ZWQgYnkgRXJpYyBSYXltb25kCgoyMDA0LTA3LTE2IDIyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IG1pYklJX2NvbW1vbi5oLCB0Y3BUYWJsZS5jOgoKICAgQXR0ZW1wdGVkIGZpeGVzIGZvciBkYXJ3aW4KCjIwMDQtMDctMTYgMTE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUuaDoKCiAgIEFkZGVkIG1pc3NpbmcgaXBTeXN0ZW1TdGF0c1RhYmxlLmggZmlsZSB3aGljaCBSb2JlcnQgcHJvYmFibHkgZm9yZ290IHRvIGNoZWNrIGluLiAgSSdtIGd1ZXNzaW5nIGF0IHRoZSAgcHJvcGVyY29udGVudHMsIGJ1dCBpdCBzaG91bGQgYmUgcmlnaHQKCjIwMDQtMDctMTYgMDk6MDggIGR0czEyCgogICAqIEZBUToKCiAgIEEgZmV3IGFkZGl0aW9uYWwgZW50cmllcyAoZXNwLiByZWxhdGluZyB0byBnZW5lcmF0aW5nIHRyYXBzKQogICBwbHVzIHNvbWUgbWlub3IgcmVzdHJ1Y3R1cmluZyBhbmQgd29yZHNtaXRoaW5nLgoKMjAwNC0wNy0xMCAyMToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgLSByZW1vdmUgZGVidWcgbXNnCiAgIC0gbG9nIHdhcm5pbmcgaWYgaGVhZGVyIGxlbmd0aCBpc24ndCB3aGF0IHdlIGV4cGVjdAoKMjAwNC0wNy0xMCAyMToyOCAgcnN0b3J5CgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gZml4IGludmVydGVkIGNvbmRpdGlvbmFsIHRlc3QKICAgLSBkb24ndCBhc3N1bWUgNjQgaWYgd3JhcGNoZWNrIHNraXBwZWQKCjIwMDQtMDctMTAgMTk6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBhZGQgY29tbWVudCB0byBkb2N1bWVudCBzdHJ1Y3R1cmUgdmFyCgoyMDA0LTA3LTEwIDE5OjUxICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIGJ1bXAgdXAgdGltZW91dCB0byAzMCBzZWNvbmRzLCBpbnN0ZWFkIG9mIDMKCjIwMDQtMDctMTAgMTk6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSByZW1vdmUgcmVtaW5kZXIgY29tbWVudAogICAtIGZpeCB0eXBvLCBpbmRlbnRlbnRhdGlvbgoKMjAwNC0wNy0xMCAxOTo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIHVzZSB1aW50bWF4X3QgdmFycyBmb3IgcGFyc2luZyBkYXRhCgoyMDA0LTA3LTEwIDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIG1ha2UgbG9jYWwgZnVuY3Rpb24gbW9yZSBnZW5lcmljIGFuZCBtb3ZlIHRvIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZQoKMjAwNC0wNy0xMCAxMzowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGluZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaAosIGlwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmg6CgogICBtb3ZlIGNvbmZpZyByZXF1aXJlcyB1cCBhIGxldmVsCgoyMDA0LTA3LTEwIDEzOjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9uZXQtc25tcC1kYXRhLWFjY2Vzcy1pbmNsdWRlcy5oCjoKCiAgIGFkZCBpcHN0YXRzL3N5c3RlbXN0YXRzIGhlYWRlcnMKCjIwMDQtMDctMTAgMTM6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgc25tcGxpYi9pbnQ2NC5jOgoKICAgbmV3IGZ1bmN0aW9uIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZQoKMjAwNC0wNy0xMCAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOgoKICAgYWRkIGlwU3lzdGVtU3RhdHNUYWJsZQoKMjAwNC0wNy0xMCAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9kZWZhdWx0LXRhYmxlLWlwU3lzdGVtU3RhdHNUYWJsZS5tMmQKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1GSVJTVC50eHQKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1pcFN5c3RlbVN0YXRzVGFibGUudHh0CiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgaW1wbGVtZW50IGlwU3lzdGVtU3RhdHNUYWJsZQoKMjAwNC0wNy0wOSAyMjo1OCAgaGFyZGFrZXIKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCjoKCiAgIC0gcmVtb3ZlIG15IHF1aWNrIC8vIGNvbW1lbnRzCiAgIC0gcmVtb3ZlIGEgZmV3IFhYWCBjb21tZW50cyB0aGF0IHdlcmUgZmVlZGJhY2sgZm9yIFJvYmVydCAobm93IGVtYWlsZWQpLgoKMjAwNC0wNy0wOSAxNToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIFB1bGwgdGhlIERIIHBhcmFtZXRlcnMgZnJvbSB0aGUgYWdlbnQgdG8gdXNlIGl0cyBjdXJyZW50bHkgY29uZmlndXJlZCBwYXJhbXMuCiAgIC0gcHJvdGVjdCBhZ2FpbnN0ICFvcGVuc3NsIHVzZXJzCgoyMDA0LTA3LTA5IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFB1bGwgdGhlIERIIHBhcmFtZXRlcnMgZnJvbSB0aGUgYWdlbnQgdG8gdXNlIGl0cyBjdXJyZW50bHkgY29uZmlndXJlZCBwYXJhbXMuCgoyMDA0LTA3LTA5IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXAtdXNtLWRoLW9iamVjdHMtbWliLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldGVycy5jLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCjoKCiAgIEFkZGVkIHRoZSB1c21ESFBhcmFtZXRlcnMgb2JqZWN0IGZvciBtYW5hZ2VtZW50IG9mIHRoZSBESCBwYXJhbWV0ZXJzCgoyMDA0LTA3LTA5IDExOjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHRoZSBwZXJzaXN0ZW50IGZpbGUgd2FybmluZyBhIGJpdCwgdW0sIG1vcmUgc3Ryb25nCgoyMDA0LTA3LTA5IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvZGVmYXVsdC10YWJsZS11c21ESFVzZXJLZXlUYWJsZS5tMmQKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RveHlnZW4uY29uZgosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgSW1wbGVtZW50ZWQgdGhlIFNOTVAtVVNNLURILU9CSkVDVFMtTUlCIHVzbURIVXNlcktleVRhYmxlIHRhYmxlLgoKMjAwNC0wNy0wOSAwOTo1NyAgaGFyZGFrZXIKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS8uY3ZzaWdub3JlCjoKCiAgIGlnbm9yZSBmaWxlCgoyMDA0LTA3LTA5IDA5OjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBTdXBwb3J0IGEgZGlmZmllLWhlbG1hbiBiYXNlZCAiY2hhbmdla2V5IiBjb21tYW5kLgoKMjAwNC0wNy0wOSAwOToyNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDoKCiAgIEFkZCBkaWZmaWUtaGVsbWFuIHZvaWQgKiBjb250YWluZXIgcG9pbnRlcnMuCgoyMDA0LTA3LTA5IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogU05NUC1VU00tREgtT0JKRUNUUy1NSUIudHh0LCBNYWtlZmlsZS5pbjoKCiAgIHJmYzI3ODY6IGRoIHVzbSBtaWIKCjIwMDQtMDctMDkgMDk6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBUZXN0IGZvciBvcGVuc3NsL2RoLmgKCjIwMDQtMDctMDggMTc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgLSBMaW51eDogdXNlIG5vbiAwIHNvY2tldCBwcm90b2NvbCB3aGVuIGNyZWF0aW5nIHNvY2tldCAob3IgY2FsbCBmYWlscykKICAgLSBkb24ndCByZXR1cm4gc3VjY2VzcyBpZiBzb2NrZXQgY2FsbCBmYWlscwogICAtIGNsb3NlIHNvY2tldCBiZWZvcmUgcmV0dXJuaW5nCiAgIC0gZml4IHR5cG8gaW4gY29tbWVudAoKMjAwNC0wNy0wOCAxNzoyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSBtb3ZlIHdyaXRlX21ldGhvZCBhc3NpZ25tZW50IGJlZm9yZSBjaGVjayBmb3IgZXhpc3Rpbmcgbm9kZSwgc28gcm93IGNyZWF0aW9uCiAgICAgY2FuIGJlIHN1cHBvcnRlZAoKMjAwNC0wNy0wOCAxNzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB1cGRhdGUgdGVzdCBmb3IgY29ycmVjdCBub2RlIGRlY2wgdHlwZQoKMjAwNC0wNy0wOCAxNzoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgZ2VuZXJhdGUgaGlnaCAmIGxvdyBhc3NpZ25tZW50cyBmb3IgY291bnRlcjY0IG5vZGVzCgoyMDA0LTA3LTA4IDE1OjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjbG9zZSBmaWxlcyBiZWZvcmUgZXhpdCwgdG8gZmx1c2ggcGVuZGluZyBvdXRwdXQKCjIwMDQtMDctMDggMDk6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgLSBhc3NpZ24gZHN0IGFkZHIgdG8gbmV3IGNhY2hlIGVudHJ5LCBzbyB3ZSBjYW4gZmluZCBpdCBpbiBuZXh0IHBhc3MKCjIwMDQtMDctMDggMDg6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGJhY2sgb3VyIHByZXZpb3VzIHRyYXAgYmluZGluZyBjaGFuZ2UKICAgLSBzZXQgbmV3IHNlc3Npb24ubG9jYWxuYW1lIHRvIGxvY2FsaG9zdCBmb3IgdjEvdjJjIHRyYXBzIChidXQgbm90IGluZm9ybXMpCgoyMDA0LTA3LTA4IDA4OjM2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICAtIGFsbG93IHBlciBzZXNzaW9uIGJpbmRpbmcgdG8gc3BlY2lmaWMgbG9jYWwgYWRkcmVzcyBmb3IgdWRwIHRyYW5zcG9ydHMKCjIwMDQtMDctMDggMDc6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGJpbmQgdjEgdHJhcCBzZXNzaW9ucyBjbGllbnQgYWRkcmVzcyB0byBsb2NhbGhvc3QKCjIwMDQtMDctMDggMDY6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIGNsb3NlIGZpbGUgd2hlbiBkb25lIHdpdGggaXQKCjIwMDQtMDctMDcgMTY6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIHN3aXRjaCB0byB1bmlmaWVkIGRpZmYKCjIwMDQtMDctMDcgMTY6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIHJlbW92ZSBzb21lIGR1cGxpY2F0ZWQgY29kZSAodXNlIGludGVyZmFjZSBkYXRhIGFjY2VzcyB2ZXJzaW9ucykKICAgLSByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wNy0wNyAxNjoyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgUHJvcGVybHkgcXVvdGUgbWliMmMgdmFyaWFibGUgaW4gYSBAaWZAIGNsYXVzZS4KCjIwMDQtMDctMDcgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gY2hhbmdlIHJvdyBzdGF0dXMgb2JqZWN0IG5hbWUgdG8gbWF0Y2ggbWliICh3aGljaCBkb2Vzbid0IGVuZCBpbiBSb3dTdGF0dXMpCgoyMDA0LTA3LTA3IDE2OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNy0wNyAxMzo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBhZ3JlZSBvbiB2YXJpYWJsZSBuYW1lCgoyMDA0LTA3LTA3IDEzOjQxICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgLSByZWdpc3RlciB0YWJsZSBhcyBDQU5fUk9OTFkKCjIwMDQtMDctMDcgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGltcGxlbWVudCByb3cgc3RhdHVzIChoYXJkY29kZWQgYXMgYWN0aXZlKQoKMjAwNC0wNy0wNyAxMzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgLSByZXBsYWNlIHVfaW50Tl90IHdpdGggbW9yZSBwb3J0YWJsZSB1aW50Tl90CgoyMDA0LTA3LTA3IDEwOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5oOgoKICAgLSBpbmNsdWRlIGludGVyZmFjZSBkYXRhIGFjY2VzcyBoZWFkZXIgZm9yIHN0cnVjdC9lbnVtcwoKMjAwNC0wNy0wNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIC0gaW5pdGlhbGlzZSBjb250YWluZXIgdmlhIGRhdGEgYWNjZXNzIGxpYnJhcnkKCjIwMDQtMDctMDcgMTA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIHVzZSBlbnVtcyBmcm9tIG1pYiBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZXMKCjIwMDQtMDctMDcgMTA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgKOgoKICAgLSBhZGQgbWlzc2luZyBUQyB2YWx1ZQoKMjAwNC0wNy0wNyAxMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gdXBkYXRlIGlwdjYgaW1wbGVtZW50YXRpb24gKHRha2UgYSBzdGFiIGF0IHN0YXR1cywgdHlwZSwgb3JpZ2luKQoKMjAwNC0wNy0wNyAwNzoxMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdHdlYWsgY29tbWVudCBjaGVjayBwYXR0ZXJuIHRvIGV4Y2x1ZGUgbG9ncyBvZiBtZmQgbWF0Y2hlcwoKMjAwNC0wNy0wNyAwNzowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsCiAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICAtIGFkZCB1bnNvcnRlZCBzaW5nbHkgbGlua2VkIGxpc3QgKGZpZm8gb3IgbGlmbykKCjIwMDQtMDctMDcgMDU6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgUXVvdGUgInJbb3ddY29tbXVuaXR5IiBzdHJpbmcgYmVmb3JlIHBhc3NpbmcgdG8gY29tMnNlYy1zdHlsZSBwYXJzZXIsCiAgIHRvIHJldGFpbiBhbnkgaW50ZXJuYWwgd2hpdGVzcGFjZS4KCjIwMDQtMDctMDcgMDU6MjEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBVc2UgY29weV9ud29yZCByYXRoZXIgdGhhbiBzdHJ0b2sgZm9yIHBhcnNpbmcgY29tMnNlYyBlbnRyaWVzLgogICAoVG8gaGFuZGxlIHF1b3RlZCBzdHJpbmdzIHByb3Blcmx5KQoKMjAwNC0wNy0wNyAwMjoxNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBDb252ZXJ0IHRvIHVzZSB0aGUgbm9uLXJlY3Vyc2l2ZSAnQVVUT19ORVhUJyBhcHByb2FjaAogICBmb3IgYWxsIGJhciBHRVRORVhUL0dFVEJVTEsgcmVxdWVzdHMuCgoyMDA0LTA3LTA3IDAyOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgU3BhcnNlIHRhYmxlcyBhcmUgaGFuZGxlZCB3aXRoaW4gdGhlIHRhYmxlciBoZWxwZXIsCiAgIHNvIGRvbid0IG5lZWQgdG8gYmUgY29uc2lkZXJlZCBoZXJlLgoKMjAwNC0wNy0wNyAwMjoxMSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgRG9uJ3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGZpbmFsIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGRpZG4ndAogICBpbmNsdWRlIGFuIGV4cGxpY2l0IGhhbmRsZXIgcm91dGluZS4gIFRoaXMgaXMgcGVyZmVjdGx5IHJlYXNvbmFibGUKICAgaWYgdGhlIE1JQiBvYmplY3QgaXMgaGFuZGxlZCBpbnRlcm5hbGx5IGJ5IHRoZSBwcmVjZWRpbmcgaGVscGVycy4KCjIwMDQtMDctMDYgMjE6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGltcGxlbWVudC9lbmFibGUgaXBBZGRyZXNzVHlwZSwgaXBBZGRyZXNzQ3JlYXRlZCwgaXBBZGRyZXNzTGFzdENoYW5nZWQKICAgICBpcEFkZHJlc3NSb3dTdGF0dXMgKGhhcmRjb2RlZCBhY3RpdmUpLCBpcEFkZHJlc3NTdG9yYWdlVHlwZSAoaGFyZGNvZGVkIHZvbGF0aWxlKQogICAtIHJldHVybiBub3Qgd3JpdGFibGUvbm8gY3JlYXRpb24gdW50aWwgc2V0IHN1cHBvcnQgaW1wbGVtZW50ZWQKICAgLSBjb25maWdfcmVxdWlyZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MKICAgLSB1cGRhdGUgY2FjaGUgcG9saWN5IHRvIGF1dG8gcmVsb2FkLCBmb3IgbGFzdCBjaGFuZ2VkL2NyZWF0ZWQKCjIwMDQtMDctMDYgMjE6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIG5ldyBmdW5jIHRvIGNvbXBhcmUgYW5kIHVwZGF0ZSBpcGFkZHJlc3MgZW50cmllcwogICAtIG5ldyBmbGFnL2NvZGUgZm9yIHNlY29uZCBjb250YWluZXIgaW5kZXgsIGJ5IGFkZHJlc3MKCjIwMDQtMDctMDYgMjE6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIHJldHVybiByZXNvdXJjZSB1bmF2YWlsYWJsZSBvbiBlbXB0eSBpbnRlcmZhY2UgY29udGFpbmVyCiAgIC0gbG9nIG1hbGxvYyBmYWlsdXJlCgoyMDA0LTA3LTA2IDIxOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW5hbWUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGluaXQgcm91dGluZQogICAtIGNyZWF0ZSBjb250YWluZXIgb25jZSBkdXJpbmcgaW5pdCwgdG8gZGlzY292ZXIgaWZJbmRleGVzCgoyMDA0LTA3LTA2IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBpbml0IGludGVyZmFjZSBkYXRhIGFjY2VzcyBpbiBpbml0X2FnZW50CgoyMDA0LTA3LTA2IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGluY3JlYXNlIGRlZmF1bHQgb2lkIHByaW50aW5nIHNpemUuCgoyMDA0LTA3LTA2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgaW5jcmVhc2UgZGVmYXVsdCBidWZmZXIgc2l6ZSBwYXNzZWQgdG8gZ2V0X3N5bWJvbF9yZWFsbG9jICh1c2VmdWwKICAgZm9yIGxvbmcgT0lEcyB3aGVuIHJlYWxsb2MgaXMgYWN0dWFsbHkgb2ZmKS4KCjIwMDQtMDctMDYgMTU6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBhZGQgbmV3IG1mZCBoZWFkZXIKCjIwMDQtMDctMDYgMTU6NTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oOgoKICAgY29tbW9uIG1mZCBpbmNsdWRlCgoyMDA0LTA3LTA2IDE1OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgaW5pdGlhbGl6ZSB2YXJpYWJsZSBiZWZvcmUgdXNlCgoyMDA0LTA3LTA2IDE0OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIE9ubHkgcHJpbnQgb25lIG9mIHRoZSBlcnJvciBtZXNzYWdlcyBpZiB0aGUgcmVzdWx0IHdhcyBhbiBhcnJheS4KCjIwMDQtMDctMDYgMTQ6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIC0gZml4IGEgZmV3ICJ3aG9vcHMiIChyZW1vdmUgZGVidWdnaW5nOyBwcm9wZXJseSB7fSBtdWx0aSBpZiBzdGF0ZW1lbnRzKS4KCjIwMDQtMDctMDYgMTQ6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSBpZiBhIHRhYmxlIGlzIGNvbXBvc2VkIG9mIG9ubHkgaW5kZXhlcywgd2FsayBhdCBsZWFzdCBvbmUgc28gcmVzdWx0cwogICAgIGFyZSByZXR1cm5lZCBmb3IgZ2V0dGFibGUoKS4KCjIwMDQtMDctMDYgMTQ6MDggIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIC0gcHJvcGVybHkgcmV0dXJuIE5VTExzIHdoZW4gYXBwcm9wcmlhdGUuCiAgIC0gbWFrZSBnZXRfaW5kZXhlcyByZXR1cm4gaW5kZXhlcyBmcm9tIGF1Z21lbnRlZCB0YWJsZXMuCgoyMDA0LTA3LTA2IDE0OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBhZGQgaW51Y2FzdCwgb251Y2FzdCBjb3VudGVycyB0byBzdGF0cyBzdHJ1Y3QKICAgLSBtb3ZlIGludWNhc3QsIG9udWNhc3QgY2FsY3VsYXRpb25zIGludG8gbGludXggaW50ZXJmYWNlIGRhdGFfYWNjZXNzCgoyMDA0LTA3LTA2IDExOjUzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICAtIHVwZGF0ZSBtYWtlIGNoZWNrcyB0byBjaGVjayBmb3IgY3BwICN3YXJuaW5ncwoKMjAwNC0wNy0wNSAyMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICAtIGRvY3VtZW50IC1UIG9wdGlvbiBpbiB1c2FnZQoKMjAwNC0wNy0wNSAyMDowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbW92ZSBuYXN0eSBrZXJuZWwgdHJpY2sgZGVmaW5lcwogICAtIGFkZCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSB0eXBlZGVmIGZvciBjb25mX2lmX2xpc3QKCjIwMDQtMDctMDUgMTk6NTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIGluY2x1ZGUgbmV3IGRhdGEgYWNjZXNzIGluY2x1ZGUKCjIwMDQtMDctMDUgMTk6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL25ldC1zbm1wLWRhdGEtYWNjZXNzLWluY2x1ZGVzLmgKOgoKICAgbmV3IGhlYWRlciBmb3IgYWxsIGRhdGEgYWNjZXNzIGluY2x1ZGVzCgoyMDA0LTA3LTA1IDE1OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgLSByZW1vdmUgcm93IHN0YXR1cyBmb3Igbm93OyB3YXJuaW5nIHRvIHJlbWluZCBiZWZvcmUgNS4yCgoyMDA0LTA3LTA1IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgYWRkIGNvbmZpZ19yZXF1aXJlIG9mIGRhdGFfYWNjZXNzL2ludGVyZmFjZQoKMjAwNC0wNy0wNSAxNDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHJlbW92ZSBjb25mX2lmX2xpc3QgZGVjbGFyYXRpb24gKGl0J3MgaW4gZGF0YV9hY2Nlc3MvaW50ZWZhY2VzLmggbm93KQoKMjAwNC0wNy0wNSAxNDoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgYXNzZXJ0cyBzaG91bGQgYmUgbmV0c25tcF9hc3NlcnRzCgoyMDA0LTA3LTA1IDE0OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGRhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gZG9uJ3QgdXNlIG5hc3R5IGtlcm5lbCB0cmljayAoYXZvaWQgdW5leHBlY3RlZCBtYWNybyBzdWJzdGl0dXRpb25zKQoKMjAwNC0wNy0wNSAwOToyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNy0wNSAwOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuMi5kZXYKCjIwMDQtMDctMDUgMDk6MDQgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowNCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDEgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwODozMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBtYWtlIHRlc3QgcmVzdWx0cyB0byB1cGxvYWQKCjIwMDQtMDctMDUgMDU6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBjYWNoZV9oYW5kbGVyLmMsIHJlYWRfb25seS5jLAogICAgIHRhYmxlX2RhdGFzZXQuYywgd2F0Y2hlci5jOgoKICAgVXNlICJBVVRPX05FWFQiLXN0eWxlIGhhbmRsaW5nIGZvciB0aGUgdHJpdmlhbCBjYXNlcwogICAobm90aW5nIHRoaXMgYmVoYXZpb3VyIHdpdGhpbiB0aGUgaGFuZGxlciBpdHNlbGYpLgoKMjAwNC0wNy0wNSAwNTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgVXNlIHN3aXRjaCBmYWxsdGhyb3VnaCB0byBoYW5kbGVyIEdldEJ1bGstPkdldE5leHQtPkdldCBoYW5kbGVyIGZhbGxiYWNrcy4KICAgVGhlIHByZXZpb3VzIGNvZGUgZGlkbid0IGNvcGUgd2l0aCBhIG1pc3NpbmcgR0VUIGhlbHBlciBmb3IgR2V0QnVsay9HZXROZXh0LgoKMjAwNC0wNy0wNCAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICAtIGNvbnZlcnQgdG8gdXNlIEFVVE9fTkVYVAoKMjAwNC0wNy0wNCAxODoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmg6CgogICAtIHJlc3RvcmUgY29uZmlnX3JlcWlyZSBvZiBvbGQgdGFibGUgKGVuYWJsZS1tZmQtcmV3cml0ZXMgY29leGlzdGVuY2UpCgoyMDA0LTA3LTA0IDE4OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gaWZkZWYgb3V0IHRhYmxlIHJlZ2lzdHJhdGlvbiBpZmYgISBlbmFibGUtbWZkLXJld3JpdGVzCiAgIC0gaW5pdCBjYWNoZSBlYXJsaWVyIChpdCBoYXBwZW5zIGV2ZW4gaWYgISBlbmFibGUtbWZkLXJld3JpdGVzLCBmb3IgaWZYVGFibGUpCgoyMDA0LTA3LTA0IDE4OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBhZGQgZmxhZyB0byBpbmRpY2F0ZSBpZiBhIGNhY2hlZCBpbnRlcmZhY2UgaXMgbm90IG1pc3NpbmcKICAgLSBzZXQgYWRtaW4gKGFuZCBtYXliZSBvcGVyKSBzdGF0dXMgZG93biBmaXJzdCB0aW1lIGludGVyZmFjZSBnb2VzIG1pc3NpbmcKICAgLSBzZXQgaWZMYXN0Q2hhbmdlZCB3aGVuIG9wZXIgc3RhdHVzIGNoYW5nZXMKICAgLSBzZXQgaWZDb3VudGVyRGlzY29udGludWl0eVRpbWUgd2hlbiBtaXNzaW5nIGludGVyZmFjZSByZXR1cm5zCgoyMDA0LTA3LTA0IDE4OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSB1c2UgaWZOYW1lIGZvciBkZXNjcmlwdGlvbiBpZmYgTlVMTCBkZXNjcmlwdGlvbgogICAtIHJldHVybiBlbXB0eSBzdHJpbmcgZm9yIHBoeXNhZGRyIGlmZiBhbGwgMHMKCjIwMDQtMDctMDQgMTg6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGRvY3VtZW50IHRoYXQgU0lPQ0dJRkhXQUREUiBpb2N0bCBtaWdodCBub3QgcmV0dXJuIGZ1bGwgNiBieXRlcwogICAtIGFkZCBtZW1zZXQgdG8gMCBiZWZvcmUgU0lPQ0dJRkhXQUREUiBpb2N0bCwgaWYgbmVlZGVkCiAgIC0gdXNlIHN0YW5kYXJkIElGSFdBRERSTEVOIG1hY3JvIGluc3RlYWQgb2YgaGFyZGNvZGVkIDYKICAgLSB0cml2aWFsIG9wdGltaXphdGlvbiAoZG9uJ3QgYXNzaWduIHZhciB0d2ljZSBpbiBjZXJ0YWluIGNhc2VzKQogICAtIGNvbW1lbnQgb3V0IGFsbCBpZlRhYmxlIGZyb20gdmFyaWFibGUgc3RydWN0IGlmZiAtLWVuYWJsZS1tZmQtcmV3cml0ZXMKCjIwMDQtMDctMDQgMTg6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICB0dW5uZWwvdHVubmVsLmM6CgogICAtIGRvY3VtZW50IHRoYXQgU0lPQ0dJRkhXQUREUiBpb2N0bCBtaWdodCBub3QgcmV0dXJuIGZ1bGwgNiBieXRlcwogICAtIGFkZCBtZW1zZXQgdG8gMCBiZWZvcmUgU0lPQ0dJRkhXQUREUiBpb2N0bCwgaWYgbmVlZGVkCiAgIC0gdXNlIHN0YW5kYXJkIElGSFdBRERSTEVOIG1hY3JvIGluc3RlYWQgb2YgbG9jYWwgb25lCgoyMDA0LTA3LTA0IDE4OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gZG9uJ3QgYXNzdW1lIG9wZXIgc3RhdHVzIGlzIHVwCiAgIC0gcmVtb3ZlIGdyYXR1aXRvdXMgbG9nIG1lc3NhZ2UKCjIwMDQtMDctMDQgMTg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICByZW1vdmUgcHJvdG90eXBlcyBjYXVzaW5nIGNvbXBpbGUgZXJyIChmaW5kIGZpeCBsYXRlcikKCjIwMDQtMDctMDQgMTg6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmM6CgogICB1cGRhdGUgZm9yIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA3LTA0IDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS5oLCBpZi1taWIvaWZUYWJsZS5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS5oLCBpZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICAtIHJlLWVuYWJsZSBvbGQgaW1wbGVtZW50YXRpb25zIGZvciAtLWVuYWJsZS1tZmQtcmV3cml0ZXMKICAgICAoZXhjZXB0IGZvciBpZlRhYmxlOyB0dXJucyBvdXQgdGhlIHJlc3QgYXJlIGFsbCBuZXcgdGFibGVzKQogICAtIGlmZGVmIG91dCBpZlRhYmxlIHJlZ2lzdHJhdGlvbiBmb3IgZW5hYmxlLW1mZC1yZXdyaXRlcywgbGVhdmluZyB0aGUgcmVzdAogICAgIG9mIHRoZSBjb2RlIGludGFjdCBmb3Igb3RoZXIgdGFibGVzL29iamVjdCB0aGF0IG5lZWQgaXQuCgoyMDA0LTA3LTA0IDEwOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBzZXQgaWYgdHlwZSB0byB0dW5uZWwgaWYgbm90IHNldCAmIGlmIG5hbWUgc3RhcnRzIHdpdGggJ3NpdCcKCjIwMDQtMDctMDQgMTA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIHNldCBwaHlzYWRkciBsZW4gdG8gMCBpZiBwaHlzYWRkciBub3Qga25vd24KICAgLSBzZXQgb3BlciBzdGF0dXMgZnJvbSBpZiBmbGFncwoKMjAwNC0wNy0wNCAxMDoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGxlYXZlIGlmX2Rlc2NyIE5VTEwgdW50aWwgd2UgY2FuIGRldGVybWluZSBpdC4KCjIwMDQtMDctMDQgMTA6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIExpbnV4OiBvbmx5IGxvZyBtaXNzaW5nIC9wcm9jL21lbWluZm8gZXJyb3JzIG9uY2UsIGF0IHN0YXJ0dXAKCjIwMDQtMDctMDQgMTA6MDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbml0IHZhciBiZWZvcmUgdXNpbmcgaXQKCjIwMDQtMDctMDQgMTA6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgYWRkIG5ldHNubXAgYXNzZXJ0IG9uIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24KCjIwMDQtMDctMDMgMTc6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGZpeCBjYWNoZSBsb29rdXAgb2lkIHBhcmFtCgoyMDA0LTA3LTAzIDE3OjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICB1cGRhdGUgY29tbWVudHM7IGRvY3VtZW50IHRoYXQgbWFnaWMgaXMgZm9yIHVzZXIgaGFuZGxlcgoKMjAwNC0wNy0wMyAxNzowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNy0wMyAxNzowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBzb21lIHdhcm5pbmdzIGZvciBzdHVmZiB0byBiZSBkb25lIGJlZm9yZSA1LjIKCjIwMDQtMDctMDMgMTU6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgZml4IGNvbmRpdGlvbmFsIHRlc3QgZm9yIHNraXBwaW5nIG1hcHBpbmcKCjIwMDQtMDctMDMgMTU6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICBvbmx5IGRlY2xhcmUgdmFyIGlmIGl0IHdpbGwgYmUgdXNlZAoKMjAwNC0wNy0wMyAxMzo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgYWRkIG5vdGUgaW4gc3RydWN0IHRvIHVwZGF0ZSBfY2xvbmVfaGFuZGxlciB3aGVuIG5vdCBpdGVtcyBhZGRlZAoKMjAwNC0wNy0wMyAxMzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gZG9uJ3QgdXNlICc6JyBpbiBmaWxlIG5hbWUKICAgLSBhZGQgLS1zaG93LWMtZnVuY3Rpb24gdG8gZGlmZiBwYXJhbXMKCjIwMDQtMDctMDMgMTM6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IHVwbG9hZCBmb3IgbnNiLXBhY2thZ2UgYWJvcnQgY2FzZQoKMjAwNC0wNy0wMyAxMzozNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgdmVyYm9zZSBpbmZvIG9uIHVwbG9hZAoKMjAwNC0wNy0wMyAxMDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgcmV0dXJuIGVycm9yIGZyb20gdXNtX2NoZWNrX3NlY0xldmVsIGlmIHVzZXJTdGF0dXMgaXMgbm90IGFjdGl2ZQoKMjAwNC0wNy0wMyAxMDo0OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICAtbmV3IG5ldHNubXBfaGV4X3RvX2JpbmFyeSAoYWxsb3dzIHNwZWNpZnlpbmcgZGVsaW1pdGVycyBmb3IgaGV4IHN0cmluZykKICAgLWFkZCBkb3h5Z2VuIGRvY3M7IG1vdmUgc29tZSBjb21tZW50cyB0byBmdW5jdGlvbiBkb2NzCgoyMDA0LTA3LTAzIDEwOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIHVwY2FzZSBjb25zdGFudHMKCjIwMDQtMDctMDMgMTA6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBpbmNsdWRlIGRlbGV0ZWQgaGVhZGVyCgoyMDA0LTA3LTAzIDEwOjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICAtIGNvbnNpc3RlbmN5IGJldHdlZW4gbm9uLWluZGV4IGFuZCBpbmRleCB2YXIgcmVmZXJlbmNlcwoKMjAwNC0wNy0wMyAxMDoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBhbGxvdyB0YWJsZSB0byBzcGVjaWZ5IG5vIG1hcHBpbmcgZm9yIG5vZGVzCiAgIC0gbmV3IG9wdGlvbiB0byBnZW5lcmF0ZSB0YWJsZSBkZWZhdWx0cyAmIGV4aXQKCjIwMDQtMDctMDMgMTA6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICAtIG1vdmUgYXNzaWdubWVudCBsYXRlciB0byBnZXQgY29ycmVjdCB2YWx1ZQoKMjAwNC0wNy0wMyAxMDoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtZ2V0LW9pZC5tMmksIG0yY19zZXR1cF9ub2RlLm0yaSwKICAgICBtZmQtZGF0YS1nZXQubTJjLCBtZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjLAogICAgIG1mZC1yZWFkbWUubTJjOgoKICAgLSBhbGxvdyB0YWJsZSB0byBzcGVjaWZ5IG5vIG1hcHBpbmcgZm9yIG5vZGVzCgoyMDA0LTA3LTAyIDEwOjA3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIGZpeCBidWcjODE5MTU0IGJ5IGFsbG93aW5nIGdldG5leHQgZmFpbHVyZSB0byBjb250aW51ZSB0cmF2ZXJzaW5nIHRoZSBleHRlbnNpYmxlIGxpc3RzLgoKMjAwNC0wNy0wMiAwNzoxOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIG1ha2UgYSBzYWZlIGNvcHkgb2YgdGhlIGNvbW1hbmQgc3RyaW5nIHRvIHRoZSBuYW1lIHN0cmluZy4KCjIwMDQtMDctMDIgMDY6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBhcHBseSBwYXRjaCAjOTEwMDk0IFNvbGFyaXMgY2FuIG9ubHkgc2VlIHNvbWUgZGlza3MgLS0gaW5jcmVhc2UgTFVOIHJhbmdlIDAtNwoKMjAwNC0wNy0wMiAwNjozOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCBidWcgIzk4NDA2MSAtIGNoZWNrIGxpbWl0cywgYnVpbGQgZGV2aWNlIHR5cGUgc3BhbnMgcHJvcGVybHkKCjIwMDQtMDctMDIgMDY6MTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgd2FybiwgdGhlbiBwcmV2ZW50IGFkZGluZyBtb3JlIGRldmljZXMgdGhhbiB0aGUgZGlza3MgYXJyYXkgd2lsbCBob2xkLgoKMjAwNC0wNy0wMiAwNToyNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBhcHBseSBwYXRjaCAjIDk4Mzg1MSBDaGVjayByZXR1cm4gdmFsdWUgZm9yIGNnZXRuZXh0KCkgYW5kIGZpeCAjaWZkZWYKCjIwMDQtMDctMDIgMDQ6NDcgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBSRUFETUUubWlicywgc21pc3RyaXA6CgogICBOb3RlcyBhbmQgdHdlYWtzIHRoYXQgc2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIGEgZnVsbCByZmMgbWliIGNvbXBsZW1lbnQKICAgdW5kZXIgU29sYXJpcwoKMjAwNC0wNy0wMiAwNDozNyAgbmJhCgogICAqIG1pYnMvOiByZmNsaXN0LCByZmNtaWJzLmRpZmY6CgogICBOZXcgdmVyc2lvbiBvZyBQcmludGVyLU1JQgoKMjAwNC0wNy0wMiAwMzoxOSAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgVXBkYXRlIHRwIGNvcnJlY3QgUkZDIGZvciBFdGhlcmxpa2UtTUlCCgoyMDA0LTA2LTMwIDIwOjA0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIGF2b2lkIHNvcnQgd2hlbiBvbmx5IG9uZSBwYXNzIG9yIHBhc3NfcGVyc2lzdCBkaXJlY3RpdmUgaXMgaW5zdGFudGlhdGVkLgogICBwcmV2ZW50IG92ZXJmbG93aW5nIGJpbjJhc2MncyBidWZmZXIsIGFuZCByZW1vdmUgYSBzZXQgYnV0IG5vdCB1c2VkICJpdG1wIiB2YXJpYWJsZS4KCjIwMDQtMDYtMzAgMTk6MzggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgZml4IGJ1ZyA5ODEyNzUgYnkgT0lEIHNvcnRpbmcgdGhlICJleGVjIiBhbmQgInNoIiBkaXJlY3RpdmVzLgoKMjAwNC0wNi0zMCAwNzozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZXMgdG8gdXNlIGNvcnJlY3QgZnVuY3Rpb24vdmFyIG5hbWVzCgoyMDA0LTA2LTMwIDA2OjM1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIGZpeCBidWcjIDUwMjIxNSAib2lkIG5vdCBpbmNyZWFzaW5nIiBidWdzIGZvciBJUHY2IFVEUC9UQ1Agb24gRnJlZUJTRAoKMjAwNC0wNi0zMCAwNjowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oLCBpZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYwosIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwgaWZYVGFibGUvaWZYVGFibGUuYwosIGlmWFRhYmxlL2lmWFRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jCiwgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDYtMjkgMTY6MDUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgZml4IG5hbWUgKHVkYnRhYmxlIC0tPiB0Y2J0YWJsZSkgaW4gVENQNiB2ZXJzaW9uIG9mIHZhcl90Y3A2LgoKMjAwNC0wNi0yOSAwNToxNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIGFwcGx5IHBhdGNoIDk3OTQzNiB0byBtYWtlIHN5cy9ka3N0YXQuaCBvYnNvbGV0ZSB3aGVuIGJ1aWxkaW5nIHJlY2VudCBGcmVlQlNENQoKMjAwNC0wNi0yOSAwNDo1NyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGFwcGx5IHBhdGNoIDk3OTQzNCB0byBTdXBwb3J0IEZyZWVCU0QgNS4wIGFuZCA1LjEgaW4gZGlza2lvLmMKCjIwMDQtMDYtMjkgMDQ6MDAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICBVc2UgdV9sb25nIGZvciBwaHlzX21lbSBpbiBtZW1vcnlfZnJlZWJzZDIuYyAocGF0Y2ggIzk3OTAzNCkKCjIwMDQtMDYtMjkgMDM6NDggIHNsaWYKCiAgICogcGVybC9PSUQvdGVzdC5wbCwgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgcGVyIEFsZXggQnVyZ2VyLCBhcHBseSBwYXRjaCAjOTgwMTE4IHRvIGZpeCBNU1ZDIFBlcmwgbW9kdWxlIGJ1aWxkIGFuZAogICBwcmV2ZW50IHRlc3QgZnJvbSBzdG9wcGluZyBpbiBXaW5kb3dzIGR1ZSB0byBhbiB1bi1pbml0aWFsaXplZCB2YXJpYWJsZS4KCjIwMDQtMDYtMjkgMDM6MzYgIHNsaWYKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgICBuZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCBuZXRzbm1wbWlicy9NYWtlZmlsZS5pbgosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBNU1ZDIGJ1aWxkcyB2YWNtX2NvbmYgb2JqZWN0IGluIG9yZGVyIHRvIGZpeCBidWcgIzk4MTM3Ny4gR29vZCBDYWxsLCBEYXZlLgoKMjAwNC0wNi0yOSAwMDowMyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICAgIFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcDoKCiAgIHVzZSBBVVRIVEVTVEFSR1MgdG8gZml4IGJ1ZyM5NzM2NzMKCjIwMDQtMDYtMjggMTc6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGZvciBuZXcgYWNjb25maWcuaAoKMjAwNC0wNi0yOCAxNjo1OSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICAtIGFkZCBORVRTTk1QX0VOQUJMRV9NRkRfUkVXUklURVMKICAgLSBhZGQgJyhpbmNvbXBsZXRlKScgdG8gY29tbWVudCBmb3IgTlNfUkVFTlRSQU5UCgoyMDA0LTA2LTI4IDE2OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA2LTI4IDE2OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgLSBuZXcgY29uZmlndXJlIGZsYWdlOiAtLWVuYWJsZS1tZmQtcmV3cml0ZXMgd2lsbCB0dXJuIG9uIHJld3JpdHRlbiBtb2R1bGVzLgogICAgIC0gY3VycmVudGx5IGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgZGlzYWJsaW5nIGRlcHJlY2F0ZWQgdGFibGVzCgoyMDA0LTA2LTI4IDE1OjE4ICByc3RvcnkKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIC0gdXBkYXRlIGZvciBhdXRvLWdlbiBmcm9tIG1pYjJjCgoyMDA0LTA2LTI4IDE1OjExICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gdXBkYXRlIG9pZCBjaGFuZ2VkIGluIGlldGYgZHJhZnQKCjIwMDQtMDYtMjggMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgY29uZmlnIGV4Y2x1ZGUgbWliSUkvaXAsIG5vdCBtaWJJSS92YXJfcm91dGUKCjIwMDQtMDYtMjggMTU6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgdW51c2VkIChkdWUgdG8gZGF0YSBzaGFyaW5nIHcvaWZUYWJsZSkgZnVuY3Rpb25zCgoyMDA0LTA2LTI4IDE1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmg6CgogICB1c2UgbG9jYWwsIG5vdCBzeXRlbSwgc3R5bGUgaW5jbHVkZSBmb3IgbWliZ3JvdXAgaGVhZGVyCgoyMDA0LTA2LTI4IDE1OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgbW92ZSB2YXIgZGVjbCBiZWZvcmUgZmlyc3Qgc3RhdGVtZW50CgoyMDA0LTA2LTI4IDExOjU0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggc2V0dGluZyBvZiBPU1RZUEUgZm9yIEZyZWVCU0QgYnVpbGQgcGxhdGZvcm1zIChjb25zaWRlciBhY2NvbmZpZy5oKS4KCjIwMDQtMDYtMjggMTE6NDQgIHNsaWYKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIGludCBmb3IgYXRvaSwgY2FzdCB0byB1bnNpZ25lZCBzaG9ydDsKICAgdGhpcyBmaXhlcyBidWcgOTgxNDM4IHRyYXBzaW5rIHBvcnQgcmFuZ2UgY2hlY2tzIGFyZSB3cm9uZwoKMjAwNC0wNi0yOCAwNTozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNi0yOCAwNTozMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbmV3IC0tZW5hYmxlLW1pYi1jb25maWctY2hlY2tpbmcgdG8gZmFpbCBvbiBtb2R1bGUgY29uZmxpY3RzCgoyMDA0LTA2LTI4IDA1OjIyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIC0gYWRkIG5hbWUgdG8gY29udGFpbmVyIHN0cnVjdHVyZQogICAtIG5ldyBtYWNybyB0byBmaW5kIG5hbWVkIGNvbnRhaW5lciBpbiBsaXN0CgoyMDA0LTA2LTI4IDA1OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICByZW1vdmUgY29uZGl0aW9uIGZvciBoZWFkZXIgZnVuY3Rpb24gcHJvdG90eXBlIGdlbmVyYXRpb24KCjIwMDQtMDYtMjggMDU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSByZW1vdmUgZGVwcmVjYXRlZCBsYWJlbCBmcm9tIGZ1bmMsIGFkZCBub3RlIG9uIHByZWZlcnJlZCBmdW5jIGluc3RlYWQKICAgLSBhZGQgc29tZSBuZXRzbm1wX2Fzc2VydHMgJiBkZWJ1ZyBvdXRwdXQKICAgLSByZWR1Y2UgZHVwbGljYXRlZCBjb2RlCiAgICAgLSBuZXRzbm1wX2RhdGFfbGlzdF9hZGRfZGF0YSBub3cgY2FsbHMgbmV0c25tcF9kYXRhX2xpc3RfYWRkX25vZGUKICAgLSBsb2cgd2FybmluZyBpZiBkdXBsaWNhdGUga2V5IGFkZGVkIHRvIGEgZGF0YSBsaXN0CiAgIC0gbmV0c25tcF9hZGRfbGlzdF9kYXRhIG5vdyBjYWxscyBwcmVmZXJyZWQgbmV0c25tcF9kYXRhX2xpc3RfYWRkX25vZGUKCjIwMDQtMDYtMjggMDU6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgbWlzc2luZyBkZWZhdWx0CgoyMDA0LTA2LTI4IDA1OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLm1pYjJjLXVwZGF0ZXJjOgoKICAgcmMgZmlsZSB1c2VkIGZvciBjb2RlIGdlbmVyYXRpb24KCjIwMDQtMDYtMjggMDU6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgbWliMmMtdXBkYXRlIGRpcnMKCjIwMDQtMDYtMjggMDU6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIEF1dG9tYXRpY2FsbHkgdW5yZWdpc3RlciBwcm94eSBzZXR0aW5ncyBvbiBhZ2VudCBzaHV0ZG93biBvciByZXN0YXJ0LgogICAoQnVnICM3NDg3MzMpCgoyMDA0LTA2LTI4IDA0OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICBVbnJlZ2lzdGVyIHByb3h5IHJlZ2lzdHJhdGlvbnMgd2hlbiBmcmVlaW5nIHRoZSBjb25maWcgc2V0dGluZ3MuCgoyMDA0LTA2LTI4IDA0OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBTa2lwIGVtcHR5IGNvbnRleHRzIHdoZW4gZHVtcGluZyB0aGUgaW50ZXJuYWwgTUlCIHJlZ2lzdHJ5LgogICAoUHJvYmFibHkgYXMgYSByZXN1bHQgb2YgcmVtb3ZpbmcgcmVnaXN0cmF0aW9ucykuCgoyMDA0LTA2LTI4IDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIERyb3Agc3BlY2lhbC1jYXNlIGhhbmRsaW5nIG9mICJsby9sbzAiIHNpbmNlIHRoaXMgZ2l2ZXMgYm9ndXMgcmVzdWx0cwogICAoQnVnICM0MjIzOTQpCgoyMDA0LTA2LTI4IDA0OjIxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgRG9uJ3QgdHJ5IHRvIHNldCB0aGUgT0lEIG9mIGEgdmFyaWFibGUgdGhhdCBpc24ndCB0aGVyZS4KICAgKFByb2JhYmx5IHRyaWdnZXJlZCBieSBydW5uaW5nIEdldEJ1bGsgb24gYSAibm9uLXNpbXBsZSIKICAgIHZpZXcgLSBzZWUgQnVnICM3MDYwODkpCgoyMDA0LTA2LTI3IDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIHJlbmFtZSBuZXRzbm1wX2NhY2hlX2V4dHJhY3RfZnJvbV9yZXFpbmZvIHRvIG5ldHNubXBfY2FjaGVfcmVxaW5mb19leHRyYWN0CgoyMDA0LTA2LTI3IDE4OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICAgIHVkcC5jOgoKICAgLSB1c2UgbmV0c25tcF9jYWNoZV9pc192YWxpZCBpbnN0ZWFkIG9mIG5ldHNubXBfaXNfY2FjaGVfdmFsaWQKCjIwMDQtMDYtMjcgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5hbWUgcGFyYW1ldGVyIHRvIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQKICAgLSBuZXcgbmV0c25tcF9jYWNoZV9yZXFpbmZvX2luc2VydCwgbmV0c25tcF9jYWNoZV9yZXFpbmZvX2V4dHJhY3QKICAgLSB1c2UgQ0FDSEVfTkFNRTpoYW5kbGVyTmFtZSBhcyBkYXRhX2xpc3Qga2V5IGZvciBjYWNoZQogICAgIC0gdGhpcyBmaXhlcyBCdWcgIzk3MzcyOCB0aGUgcmlnaHQgd2F5LiBzZWUgYnVnIHJlcG9ydCBmb3IgZGV0YWlscwoKMjAwNC0wNi0yNyAxNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5ldHNubXBfcmVxdWVzdF9yZW1vdmVfbGlzdF9kYXRhCgoyMDA0LTA2LTI3IDE3OjEwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICAtIGFkZCBuZXRzbm1wX2FnZW50X3JlbW92ZV9saXN0X2RhdGEKCjIwMDQtMDYtMjYgMTU6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIGFkZCBkZWJ1ZyBtc2cgd2hlbiBtb2R1bGUgcGF0aCBjaGFuZ2VzCiAgIC0gdHdlYWsgZGVidWcgbXNnIG91dHB1dCBpbmRlbnQKCjIwMDQtMDYtMjYgMTU6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG5ldHNubXBfc2V0X21pYl9kaXJlY3RvcnkgYW5kIGhhbmRsZV9taWJzX2NvbmYgY29uc2lzdGVudDoKICAgICAtICctL2RpcicgYWRkcyAvZGlyIGJlZm9yZSBleGlzdGluZyBkaXJzCiAgICAgLSAnKy9kaXInIGFkZHMgL2RpciBhZnRlciBleGlzdGluZyBkaXJzCiAgICAgICBOT1RFOiB0aGlzIHJlc3RvcmVzIG9yaWdpbmFsIGJlaGF2aW9yIG9mICcrJyB0byB0aGF0IG9mIDUuMC4xLiBBZnRlcgogICAgICAgICAgICAgNS4wLjIsIGlmIEkgcmVhZCB0aGUgY29kZSByaWdodCwgJysnIGJlaGF2aW91ciBvbiB0aGUgY21kIGxpbmUgYW5kCiAgICAgICAgICAgICBpbiBNSUJESVJTIHdhcyByZXZlcnNlZCBhbmQgbm90IGNvbnNpc3RlbnQgd2l0aCBoYW5kbGVfbWlic19jb25mLgoKMjAwNC0wNi0yNiAwNjo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1ha2UgbXVsdGlwbGUgbWliZGlycyBpbiBjb25mIGZpbGVzIHdvcmsgd2l0aCAnbGVhc3Qgc3VycHJpc2UnIChpZSBjb21wbGV0ZWx5CiAgICAgcmVwbGFjZSBtaWJkaXJzLCB1bmxlc3MgKyBzcGVjaWZpZWQKICAgLSBuZXcgbWliZGlyIGJlaGF2aW91cjogaWYgLSBzcGVjaWZpZWQsIGFkZCBzcGVjaWZpZWQgZGlycyBiZWZvcmUgZXhpc3RpbmcKICAgICBvbmVzIGluc3RlYWQgb2YgYWZ0ZXIKCjIwMDQtMDYtMjYgMDU6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgU3VwcG9ydCAibXVsdGktdG9rZW4iIG1hc2tzIC0gaS5lLiB1c2luZyBzcGFjZSAocmF0aGVyIHRoYW4KICAgJy4nIG9yICc6JykgdG8gc2VwYXJhdGUgdGhlIG1hc2sgb2N0ZXRzLiAgKFNlZSBidWcgIzcwNjA4OSkKCjIwMDQtMDYtMjYgMDU6MDUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgV29yayB3aXRoIHRoZSBzYW1lIGNhY2hlIHN0cnVjdHVyZSBjb25zaXN0ZW50bHksCiAgIHJhdGhlciB0aGFuIHJlLWV4dHJhY3RpbmcgaXQgZnJvbSB0aGUgcmVxaW5mbyBzdHJ1Y3R1cmUuCiAgIChTaG91bGQgZml4IEJ1ZyAjOTczNzI4KQoKMjAwNC0wNi0yNSAwNDo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4IHRoZSBjaGVjayBmb3IgYSB2YWxpZCBJQ01QIGNhY2hlCiAgIChTcG90dGVkIGJ5IE9sZWcgSXZhbm92KQoKMjAwNC0wNi0yNSAwMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIEEgbWlzc2luZyAnaXBPdXROb1JvdXRlcycgdmFsdWUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiAobm90IGFuIGVycm9yKQogICBhbmQgYWxsb3cgYW55IG90aGVyIElQLXJlbGF0ZWQgdmFyYmluZHMgaW4gdGhlIHNhbWUgcmVxdWVzdCB0byBiZSBwcm9jZXNzZWQuCgoyMDA0LTA2LTI0IDEzOjA0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2UgLUlyIGVmZmVjdGl2ZSBmb3IgYSBOZXR3b3JrQWRkcmVzcwoKMjAwNC0wNi0yNCAwOTowMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIC0gbWFrZSBjbG9uZV9oYW5kbGVyIHN0YXRpYywgcmVuYW1lIHRvIF9jbG9uZV9oYW5kbGVyCiAgIC0gZGVsZXRlIGhhbmRsZXIgJiByZXR1cm4gbnVsbCBvbiBjcmVhdGUgaWYgbmFtZSBzdHJkdXAgZmFpbHMKICAgLSBwb3NzaWJsZSBmaXggZm8gOTczNzI4IF0gbWFpbiBicmFuY2ggZmFpbHMgdG8gbG9hZCB0Y3BDb25uZWN0IGFuZCB1ZHAgVGFibGUKICAgICAtIGNvcHkgZmxhZ3MgaW4gX2Nsb25lX2hhbmRsZXIKICAgICAtIHVwZGF0ZSBuZXRzbm1wX2hhbmRsZXJfZHVwIHRvIHVzZSBfY2xvbmVfaGFuZGxlciwgbmV0c25tcF9oYW5kbGVyX2ZyZWUKCjIwMDQtMDYtMjQgMDQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggZGVidWcgc3RhdGVtZW50IHBhcmFtZXRlcgoKMjAwNC0wNi0yMyAxMTo1NyAgbmJhCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG94eWdlbiBpbnRlcm5hbCBkb2N1bWVudGF0aW9uIGNvbnRyaWJ1dGVkIGJ5IEN5cmlsIE1BUkdBUklBCgoyMDA0LTA2LTIzIDEwOjQ1ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBidWcgOTc4MDg3OiBiYWQgaW5kZXggY2hlY2sgZm9yIE5ldHdvcmtBZGRyZXNzCgoyMDA0LTA2LTIyIDE1OjU3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBjcHUtYnVybmluZyBieSBydW5uaW5nIGFsYXJtcy4gRGlhZ25vc2VkIGJ5IHJncmVhYkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKCjIwMDQtMDYtMjIgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIGNoZWNrIGZvciBudWxsIHBvaW50ZXIgYWZ0ZXIgYWxsb2NhdGlvbgoKMjAwNC0wNi0yMiAxNTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICAtIG1vdmUgZGF0YV9pbml0IGNhbGwgaW50byBpbnRlcmZhY2UgY29kZQogICAtIGNhbGwgZGF0YV9pbml0IGJlZm9yZSBjb250YWluZXJfaW5pdAoKMjAwNC0wNi0yMiAxNToxMyAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBdXRvZGV0ZWN0IC1sZGV2c3RhdCBmb3IgRnJlZUJTRCA1IChhcyB3YXMgZG9uZSBmb3IgNCkKCjIwMDQtMDYtMjIgMDY6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiB0YWJsZSByb3cgcmVnaXN0cmF0aW9uIGluIG9sZC1BUEkgKEJ1ZyAjNzAyNDU4KQoKMjAwNC0wNi0yMiAwMjowMyAgZHRzMTIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFBlcmwgQVBJIGZvciBzZXR0aW5nIE1JQiBwYXJzaW5nIG9wdGlvbnMgKEJ1ZyAjNTU0NzQ5KQoKMjAwNC0wNi0yMSAxMTo0MCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlcy5oCgoyMDA0LTA2LTIxIDEwOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gc2V0IHZhbGlkX2NvbHVtbnMKCjIwMDQtMDYtMjEgMDY6MzEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggZHVwbGljYXRlIGFsbG9jYXRpb24gb2YgbWVtb3J5IHdoZW4gZGVmaW5pbmcgZW51bWVyYXRpb24gbGlzdHMKICAgKEJ1ZyAjOTIzNzY2KQoKMjAwNC0wNi0yMSAwMzoxMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgQ29ycmVjdCBkZXNjcmlwdGlvbiBvZiByZXR1cm4gdmFsdWVzIHRvIHVzZSAoQnVnICM5NDc5MjYpCgoyMDA0LTA2LTIxIDAzOjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTZXQgdGhlIHNpemUgZm9yIHBhcnNpbmcgYW4gaW50ZWdlciBjb3JyZWN0bHkgKEJ1ZyAjOTQ3NDAzKQoKMjAwNC0wNi0xOSAxNjo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmg6CgogICBGaXggY29tbWVudCB0eXBvLgoKMjAwNC0wNi0xOSAwNjozNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIG1vZGlmeSBwYXRjaCA5NTYyNzIgdG8gbWFrZSBpdCBTb2xhcmlzMiBzcGVjaWZpYwoKMjAwNC0wNi0xOCAxMzozOCAgcnN0b3J5CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBpbnN0YWxsIG5ldyBtaWIyYy11cGRhdGUgYmFzaCBzY3JpcHQKICAgLSBpbnN0YWxsIHRvcCBsZXZlbCBtZmQgY29uZiBmaWxlCiAgIC0gbWFrZSBpbnN0YWxsIHRhcmdldCBkZXBlbmQgb24gJ21hZGUnIHBlcmwgc2NyaXB0cwoKMjAwNC0wNi0xOCAxMjo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNoYW5nZSB1X2ludDMyX3QgdG8gaW50MzIgdG8gbWFrZSBpdCBtb3JlIHBvcnRhYmxlCgoyMDA0LTA2LTE4IDExOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZW1vdmVkIGEgc2tpcF90b2tlbiB0aGF0IHdhcyBjYXVzaW5nIGEgZm9sbG93LW9uIHRva2VuIHRvIGJlIHNraXBwZWQuCgoyMDA0LTA2LTE4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIHJmYyBsaXN0IGZvciB1c20tYWVzCgoyMDA0LTA2LTE4IDExOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBGaXhlZCB1c2FnZSBvZiBmX2Zyc2l6ZSB1bmRlciBhcmNoaXRlY3R1cmVzIHRoYXQgaGFkIGl0IGZvciBzdGF0dmZzCiAgICAgYnV0IG5vdCBzdGF0ZnMuCgoyMDA0LTA2LTE4IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgbWlicy9NYWtlZmlsZS5pbgosIG1pYnMvU05NUC1VU00tQUVTLU1JQi50eHQsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSBVcGRhdGVkIHRoZSBBRVMgT0lEIHRvIG1hdGNoIHRoZSByZWNlbnRseSBwdWJsaXNoZWQgVVNNL0FFUyBkcmFmdAogICAtIEFkZGVkIHRoZSBVU00tQUVTIE1JQiB0byB0aGUgbGlzdCBvZiBtaWJzLgoKMjAwNC0wNi0xOCAwOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbmV3IG1pYjJjLWRhdGEgZGlyIHRvIHNlYXJjaCBwYXRoCgoyMDA0LTA2LTE4IDA5OjQxICByc3RvcnkKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIGFkZCBpbnN0YWxsL3VuaW5zdGFsbCBmb3IgbWZkIG1pYjJjIGZpbGVzCgoyMDA0LTA2LTE4IDA3OjMwICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU3VwcG9ydCBmb3IgaW50ZXJwcmV0aW5nIEluZXRBZGRyZXNzVHlwZS9JbmV0QWRkcmVzcyBpbmRleGVzIHdpdGhpbiBhbiBPSUQuCiAgIChQYXRjaCAjODQxNjI1IGZyb20gWWl4aW9uZyBab3UpCgoyMDA0LTA2LTE4IDA3OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBSZWNvZ25pc2UgSW5maW5pYmFuZCBpbnRlcmZhY2VzCiAgIChQYXRjaCAjOTcwNjE3IGZyb20gS2Fub2ogU2FyY2FyKQoKMjAwNC0wNi0xOCAwNjo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBGaXggaGFuZGxpbmcgb2YgLS1lbmFibGUtbG9jYWwtc211eCBvcHRpb24KICAgKFBhdGNoICM5NDk4MDggZnJvbSBFcmlrIMRuZ2flcmQpCgoyMDA0LTA2LTE4IDA2OjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBhY3RpdmF0aW5nIGFuZCBkZWFjdGl2YXRpbmcgdXNlcnMsCiAgIG5lY2Vzc2FyeSBmb3IgZnVsbCBjb21wbGlhbmNlIHdpdGggUkZDIDM0MTQuIChQYXRjaCAjOTQzNzYyKQoKMjAwNC0wNi0xOCAwNjozOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBVc2UgdHJhbnNwb3J0IHZhcmlhYmxlcyBmb3IgdGVzdGluZyByYXRoZXIgdGhhbiBoYXJkd2lyaW5nIHVkcDpsb2NhbGhvc3QKICAgKFBhdGNoICM5NDAzMDIgZnJvbSBNaWtlIFNsaWZjYWspCgoyMDA0LTA2LTE4IDA2OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBVc2UgL2Rldi9hcnAgcmF0aGVyIHRoYW4gL2Rldi9pcCwgc2luY2UgdGhpcyB3b3JrcyBwcm9wZXJseSB3aXRoIG11bHRpcGxlIHpvbmVzLgogICAoUGF0Y2ggIzk0MDAyNSBmcm9tIEJvYiBSb3dsYW5kcykKICAgW05vIGlkZWEgd2hhdCB0aGlzIG1lYW5zLCBidXQgaXQgc291bmRzIGltcHJlc3NpdmUuLi4uXQoKMjAwNC0wNi0xOCAwNjoyNSAgZHRzMTIKCiAgICogc25tcGxpYi9wa2NzLmM6CgogICBJbml0aWFsaXNlIHBTbG90TGlzdCB0byBndWFyZCBhZ2FpbnN0IGZyZWVpbmcgZ2FyYmFnZS4KICAgKFBhdGNoICM5MzgxMzkgZnJvbSBCb2IgUm93bGFuZHMpCgogICBJZiBnYXJiYWdlIGlzbid0IGtlcHQgc3RyaWN0bHkgY29udHJvbGxlZCwKICAgIHdobyBrbm93cyB3aGF0IHN0YXRlIHNvY2lldHkgbWlnaHQgZ2V0IGludG8uLi4uCiAgIChIb21lc3B1biBwaGlsb3NvcGhpY2FsIG11c2luZ3MgZnJvbSBEYXZlIFNoaWVsZCkKCjIwMDQtMDYtMTggMDY6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRG9uJ3Qgc2V0IHRoZSBpbmRleCB2YWx1ZSB1bnRpbCB3ZSd2ZSBjaGVja2VkIHRoaXMgaXMgYSB2YWxpZCByZXF1ZXN0LgogICAoUGF0Y2ggIzkzMDcxMiBmcm9tIEpvY2hlbi9DaHJpc3RvcGhlciBQcmljZSkKCjIwMDQtMDYtMTggMDY6MDkgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRG9uJ3QgaW5jbHVkZSB0aGUgdmlld1RyZWUgbGVuZ3RoIHdoZW4gc2F2aW5nIGEgcGVyc2lzdGVudCB2YWNtVmlldwogICAoUGF0Y2ggIzkyMTI3OSBmcm9tIEJvYiBSb3dsYW5kcykKCjIwMDQtMDYtMTggMDU6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICBQYXNzICpwb2ludGVycyogdG8gcmVsb2FkL2NvbXBhcmUgZnVuY3Rpb25zIGludG8gSW5pdGlhbGlzZV9UYWJsZQogICAoUGF0Y2ggIzkyMjUxOSBmcm9tIFJvYmVydCBXaWxjb3gpCgoyMDA0LTA2LTE3IDIwOjU3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgcGVyIEJydWNlIFNoYXcsIGluY2x1ZGUgdGhlIE9JRCBmb3IgQ1BVIGRldmljZSBpbiB0aGUgbWF0Y2ggc3RyaW5nLgoKMjAwNC0wNi0xNyAxOTo0MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IHBhdGNoIDk1NjI3MiAtIHVzZSBjb3JyZWN0IHN0cnVjdHVyZSBtZW1iZXIgZm9yIFNvbGFyaXMgaHJQYXJ0aXRpb25TaXplCgoyMDA0LTA2LTE3IDE5OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGRvY3VtZW50IG5vZGUuZGVzY3JpcHRpb24KCjIwMDQtMDYtMTcgMTk6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIGZpeCByZXR1cm4gY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKCjIwMDQtMDYtMTcgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgLSBjb252ZXJ0IGRlYnVnIGNvZGUgdGhhdCBzaG91bGQgaGF2ZSBuZXZlciBiZWVuIGNoZWNrZWQgaW4gdG8gbmV0c25tcF9hc3NlcnQKCjIwMDQtMDYtMTcgMTg6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtIGFkZCBsb3RzIG9mIGRlYnVnIGZvciB0cmFja2luZyBpbmRleCBwcm9jZXNzaW5nCiAgIC0gbWFrZSBjb2RlIGFuZCBjb21tZW50cyBjb25zaXN0ZW50IHdpdGggZWFjaCBvdGhlcgogICAtIGZpeCBhIDAtYmFzZWQgdnMgMS1iYXNlZCBwcm9ibGVtcyB3aGVuIHVzaW5nIHZhbGlkX2NvbHVtbiB2ZXJpZmljYXRpb24KICAgLSBmaXggY29tcGFyaXNvbiB0byB3cm9uZyB2YXJpYWJsZQogICAtIGR1ZSB0byBvdGhlciBmaXhlcywgaW5pdCB0YmxfcmVxX2luZm8tPmNvbG51bSBlYXJsaWVyCgoyMDA0LTA2LTE3IDE4OjUwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICAtIHVwZGF0ZSBmbG93IGNoYXJ0CiAgIC0gc3dhcCByb3cgY3JlYXRlIC8gY2hlY2sgdmFsdWVzOyBub3QgcXVpdGUgc3VyZSBpZiBJIHNob3VsZCwgdGhvdWdoCgoyMDA0LTA2LTE3IDE4OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpZmRlZiBvdXQgY29tbWl0IGNvZGUgKGNvbWluZyBzb29uKQoKMjAwNC0wNi0xNyAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA2LTE3IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBtYWtlIHN1cmUgdG8gc2V0IGRvbnQgaW52YWxpZGF0ZW9uIHNldCBjYWNoZSBmbGFnCgoyMDA0LTA2LTE3IDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpbXBsZW1lbnQgc2V0IG9mIGFkbWluIHN0YXR1cwoKMjAwNC0wNi0xNyAxODozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHNwZWNpYWwgY2FzZSBwcm9jZXNzaW5nIGZvciBpZmFkbWluIHN0YXR1cyAoYnlwYXNzIHNpemVvZiBjaGVjaykKCjIwMDQtMDYtMTcgMTg6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtdXNlIG5ldyBmdW5jdGlvbnMgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2ZsYWdzX3NldCwKICAgIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9tdHVfZ2V0CiAgIC1uZXcgZnVuY3Rpb24gbmV0c25tcF9hcmNoX3NldF9hZG1pbl9zdGF0dXMKCjIwMDQtMDYtMTcgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuYywKICAgICBpbnRlcmZhY2VfaW9jdGwuaDoKCiAgIC1uZXcgZnVuY3Rpb25zIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9mbGFnc19zZXQsCiAgICBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfbXR1X2dldAogICAtbW92ZSB3aG9sZSBmdW5jdGlvbnMgaW5zaWRlIGlmZGVmIGNvbmRpdGlvbmFsLCB0byBmb3JjZSBsaW5rIGVycm9ycyBpbnN0ZWFkCiAgICBvZiBhIGZhbHNlIHNlbnNlIG9mIHNlY3VyaXR5IHRoYXQgYW4gaW9jdGwgaXMgYXZhaWxhYmxlCgoyMDA0LTA2LTE3IDE4OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgZGVmaW5lIHByaXZhdGUgJ2FyY2gnIGZ1bmN0aW9uIHByb3RvdHlwZXMgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKCjIwMDQtMDYtMTcgMTg6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtcmVuYW1lIHN0YXRzIHN0cnVjdCBtZW1iZXJzIHRvIG5vdCBtYXRjaCBtYWNybyBuYW1lcwogICAtYWRkIHBvaW50ZXIgJiBtYWNyb3MgZm9yIG9sZCBzdGF0cyB0byBpbnRlcmZhY2UgZW50cnkKICAgLW1vdmUgY29uZiBvdmVycmlkZSBzdHJ1Y3Qvcm91dGluZXMgaGVyZQogICAtYWRkIGluaXQgcm91dGluZSBmb3IgY29uZmlndXJlIHRvIGRldGVjdCAmIGNhbGwKICAgLWFkZCBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2Vfc2V0X2FkbWluX3N0YXR1cwogICAtYWRkIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV91cGRhdGVfc3RhdHMgdG8gZGVhbCB3aXRoIDMyYml0IGNvdW50ZXIKICAgIHdyYXBzLCB1bmxlc3MgNjRiaXQgY291bnRlcnMgYXJlIGRldGVjdGVkCgoyMDA0LTA2LTE3IDE4OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvaW50NjQuYzoKCiAgIG5ldyBmdW5jdGlvbnMgdTY0SW5jciwgdTY0VXBkYXRlQ291bnRlciwgdTY0Q29weSwgbmV0c25tcF9jNjRfY2hlY2tfZm9yXzMyYml0X3dyYXAKCjIwMDQtMDYtMTcgMTc6MzYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdGVzdCBzZXNzaW9uIHB0ciBiZWZvcmUgdXNpbmcuIGZpeGVzIGJ1ZyAjOTc1MDYzIHNubXBfc2Vzc19jbG9zZSBOVUxMIGRlcmVmCgoyMDA0LTA2LTE3IDA5OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgVXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiB0byBtYWtlIGl0IG11Y2ggbW9yZSBleHRlbnNpdmUgYW5kIGNvbXBsZXRlLgoKMjAwNC0wNi0xNyAwNjozOSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgUGF0Y2ggIDk2ODgzOTogbmV0LXNubXAtY29uZmlnIGZhaWxzIHRvIHByaW50IC1sd3JhcAoKMjAwNC0wNi0xNyAwNjozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIFBhdGNoICM5NzM3MDI6IFBPRCBkb2N1bWVudGF0aW9uIHBhdGNoIGZyb20gVG9uaSBXaWxsYmVyZwoKMjAwNC0wNi0xNiAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBnZXR0YWJsZSBjaGFuZ2VzOgogICAgIC0gRG9uJ3QgcmV0cmlldmUgaW5kZXhlcyBzaW5jZSB3ZSBjYWxjdWxhdGUgdGhlbS4KICAgICAtIEJ1ZyBmaXggZm9yIHNlbGYtc3BlY2lmaWVkIGNvbHVtbiBsaXN0cy4KCjIwMDQtMDYtMTYgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBjb3B5X253b3JkIGZvciBhbGwgcmVhZF9jb25maWcgYXV0by1wYXJzaW5nIG9mIHRva2VucyB0byBoZWxwCiAgIHN0cmlwIHF1b3RlcyBpZiB0aGV5IHdlcmUgdXNlZCBldmVuIGZvciBpbnRlZ2Vycy4KCjIwMDQtMDYtMTUgMTk6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgIGZpeCBsaWJyYXJ5IHJlc291cmNlIGxvY2tzLCBhcyBub3RlZCBvbiBjb2RlcnMgYnkgWWluZyBIdQoKMjAwNC0wNi0xNSAxNzoyNyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENUFFUywgVDAyM3NubXB2M2dldE1ENURFUwo6CgogICBjb3JyZWN0IHZhciBQUklWVEVTVEFSR1MgKHdhcyBQUklWVEVTVEZMQUdTKQoKMjAwNC0wNi0xNSAxNTo0MCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBhcHBseSBwYXRjaCAjOTczNTcyIHBlciBBbGV4IEJ1cmdlciB0byBjbGFyaWZ5IG5hbWluZyBvZiB0aGUgcGFja2FnZSwgZXRjLgoKMjAwNC0wNi0xNSAwNzoyNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25zaXN0ZW5jeSB0d2Vha3MgdG8gdGhlIHVzYWdlIG91dHB1dCBtZXNzYWdlLgoKMjAwNC0wNi0xNSAwNjo0MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGFwcGx5IHVwZGF0ZWQgcGF0Y2ggYXR0YWNoZWQgdG8gYnVnIzc1ODQzNwogICB1c2UgU05NUF9GUkVFIHRvIG1hbmFnZSBidWZmZXIgcG9pbnRlcgogICBvcGVuIHNvY2tldCBiZWZvcmUgaW5jcmVhc2luZyBidWZmZXIgc2l6ZQoKMjAwNC0wNi0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgRGVmaW5lIHRoZSBleGFtcGxlIG5vdGlmaWNhdGlvbiBhcyBhIG5vdGlmaWNhdGlvbiAodXNpbmcgYW4gUkZDMjU3Ni1zYWZlCiAgIE9JRCksIHJhdGhlciB0aGFuIGEgTUlCIG9iamVjdCwgYW5kIGRlZmluZSBleGFtcGxlIGNvbXB1bHNvcnkgYW5kIG9wdGlvbmFsCiAgIHBheWxvYWQgb2JqZWN0cy4gVHdlYWsgdGhlIGV4YW1wbGUgY29kZSB0byB1c2UgdGhlc2UgbmV3IGRlZmluaXRpb25zLgoKMjAwNC0wNi0xNSAwNDoyOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmM6CgogICBhcHBseSBwYXRjaCBmcm9tIHRyb250b3IgdG8gZml4IGJ1ZyA5NDI0OTggTmV0QlNEIDIuMEQgYW5kIGFib3ZlIHVzZSBzdGF0dmZzCgoyMDA0LTA2LTE0IDEyOjAyICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGRpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBhcHBseSBwYXRjaCAjOTcyNzE1IFdpbjMyIGJ1aWxkOiBtYWtlZmlsZSwgcmVhZG1lIGFuZCAubnNpIHNjcmlwdCBjaGFuZ2VzCiAgIHRoZXNlIGJhY2sgb3V0IHR3byBwcmV2aW91cyBjaGFuZ2VzIGFuZCBmaXhlcyBhIHByb2JsZW0gY3JlYXRpbmcgc25tcGNvbmYuYmF0CgoyMDA0LTA2LTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQucG0sIGFnZW50LnhzLCB0ZXN0LnBsOgoKICAgSW1wbGVtZW50ZWQgJHJlcXVlc3QtPnNldEVycm9yKCkgdG8gc2V0IGVycm9yIGNvZGVzIGZvciByZXF1ZXN0cy4KCjIwMDQtMDYtMTQgMTA6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgcGF0Y2ggZnJvbSBNYXRoaWFzIFNjaGVsZXIgZml4ZXMgYnVnICM4MDU5NTYgYnkgYWx0ZXJpbmcgY29uZGl0aW9uYWwKICAgY2hlY2tzIGZvciBOZXRCU0QgYW5kIERhcndpbiBkZWZpbmVzLgoKMjAwNC0wNi0xMiAwODowNCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBkeXNsZXhpYyAgcy1NLW4tcCAgdG8gcy1uLU0tcAoKMjAwNC0wNi0xMiAwODowMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwYXRjaCA5NzEyNjMgV2luZG93cyBpbnN0YWxsZXIgc2NyaXB0IGNoYW5nZSBjb21wb25lbnQgbGFiZWwrZGVzY3IKCjIwMDQtMDYtMTIgMDc6NTUgIHNsaWYKCiAgICogd2luMzIvOiBidWlsZC5iYXQsIGluc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIG5tYWtlcGVybC5iYXQsIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwKICAgICBsb2NhbC9taWIyYy5iYXQsIGxvY2FsL3NubXBjb25mLmJhdCwKICAgICBsb2NhbC90cmFwdG9lbWFpbC5iYXQ6CgogICBjb252ZXJ0IC5iYXQgZmlsZXMgdG8gdXNlIERPUyBDUi1MRiBsaW5lIHRlcm1pbmF0aW9uLgogICBhcHBseSBwYXRjaCA5NzE0NzEgTlNJIGluc3RhbGxlciBzY3JpcHQgZml4ZXMgYWRkcmVzc2luZyBsaW5lLWVuZCBwcm9ibGVtcy4KCjIwMDQtMDYtMTEgMTc6MzggIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlICJlcmFzZSB3YXRjaGVyLm9iaiIsIGZvciBhIGZpbGUgdGhhdCBpcyBtYW5hZ2VkIGluIGxpYmhlbHBlcnMgcHJvamVjdC4KCjIwMDQtMDYtMTEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgZGVmYXVsdCBjYWNoZSB0byBub3QgaW52YWxpZGF0ZSBvbiBzZXQKCjIwMDQtMDYtMTEgMTU6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKICAgLSBmaXggbWlzYXNzaWduZWQgY2FsbGJhY2sgZnVuY3Rpb24KICAgLSBhZGQgbWlzc2luZyBicmFjZXMgZm9yIG11bHRpbGluZSBjb25kaXRpb25hbAoKMjAwNC0wNi0xMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gZGVmYXVsdCB0byBhbGxvY2F0ZWQgdW5kbyBjb250ZXh0LCBldmVuIGlmIGRhdGEgY29udGV4dCBpcyBlbWJlZGRlZAogICAtIGFkZCBjb2RlIHRvIGhhbmRsZSBwZXIgY29sdW1uIGJlaGF2aW9yIG9uIGNvbW1pdAogICAtIGFkZCBub3RlIG9uIHVuZG8gY29udGV4dCB3aGVuIGRhdGEgaW5pdCBpcyBzZXQKCjIwMDQtMDYtMTEgMTU6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgbWZkLXRvcC5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKCjIwMDQtMDYtMTEgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIC0gdHdlYWsgdG8gd29yayBldmVuIGZvciBnZW5lcmF0ZWQgZGF0YSBjb250ZXh0cwogICAtIGZpeCB2YXIgdHlwbywgY29tbWVudCB0eXBvCgoyMDA0LTA2LTExIDE1OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICAtIHJlbW92ZSBvdmVybHkgY29uZnVzaW5nIG1ldGhvZCBmb3IgY2hhbmdpbmcgZGVmYXVsdHMsIGJlY2F1c2UgaXQgd2FzCiAgICAgY29uZmxpY3Rpbmcgdy9jb21tYW5kIGxpbmUgdmVyc2lvbi4gbWF5YmUgcmV2aXNpdCBsYXRlcgogICAtIGRlZmF1bHQgKGZhbHNlKSBmb3IgbmV3IHVuZG9fZW1iZWQKCjIwMDQtMDYtMTEgMTM6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgUmV0dXJuIGFscmVhZHkgZ2F0aGVyZWQgcmVzdWx0cyBldmVuIGlmIGdldGJ1bGsgZmFpbHMgdG8gcmV0dXJuIHRoZQogICBleHBlY3RlZCBkYXRhICh0eXBpY2FsbHkgZHVlIHRvIGVuZC1vZi1taWIgY29uZGl0aW9ucykuCgoyMDA0LTA2LTExIDEzOjEzICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IHZlcnNpb24gbnVtYmVyIG5lZWRzIGNoYW5naW5nLgoKMjAwNC0wNi0xMSAxMDoxOCAgc2xpZgoKICAgKiB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIDk3MTExMyAibm1ha2UgY2xlYW4iIHZpc2l0cyBsaWJzbm1wIGFuZCBsaWJzbm1wX2RsbCBldmVyeSB0aW1lLgoKMjAwNC0wNi0xMCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gbmV3IG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV9ndWVzc19zcGVlZAogICAtIG5ldyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfb3ZlcnJpZGVzCiAgIC0gcmVzdG9yZSBpZl9hZG1pbl9zdGF0dXMKICAgLSBhZGQgcGxhdGZvcm0gc3BlY2lmaWMgaWZfZmxhZ3MsICYgZGVmaW5lIGZvciBmbGFncyB0byBpbmRpY2F0ZSBhdmFpbGFiaWxpdHkKICAgLSBzcGVjaWZ5IGFsbCA0IGhleCBieWVzIGZvciBmbGFnIGRlZmluZXMKCjIwMDQtMDYtMTAgMjE6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIC0gbGludXggcmVxdWlyZXMgbmV3IGlvY3RsIGludGVyZmFjZSBhY2Nlc3MKICAgLSB1c2UgaW9jdGwgZm9yIGh3YWRkciwgaWZfZmxhZ3MKICAgLSBndWVzcyBpZiB0eXBlIGJhc2VkIG9uIG5hbWUgaWYgbm90IGtub3duCiAgIC0gbW92ZSBnZXRJZlNwZWVkIGNvZGUgJiByZW5hbWUgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2xpbnV4X2dldF9pZl9zcGVlZAoKMjAwNC0wNi0xMCAyMDo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgLSBuZXcgaW9jdGwgaW50ZXJmYWNlIGFjY2VzcwoKMjAwNC0wNi0xMCAyMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICAtIG1vdmUgYWRtaW4gc3RhdHVzIGJhY2sgdG8gaW50ZXJmYWNlIGVudHJ5CiAgIC0gdXNlIGRlc2NyaXB0aW9uIGZyb20gaW50ZXJmYWNlIGVudHJ5CgoyMDA0LTA2LTEwIDEwOjU5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCAjOTcwNDgwIFdpbjMyIFJFQURNRS5idWlsZC53aW4zMi50eHQgdXBkYXRlCgoyMDA0LTA2LTA5IDIwOjI4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIGFwcGx5IGNoYW5nZXMgaWRlbnRpZmllZCBpbiBwYXRjaCAjOTY5MzM4IHBhdGNoZXMgZm9yIEZyZWVCU0QgNS54IHN1Y2Nlc3NmdWwgYnVpbGQKCjIwMDQtMDYtMDkgMTg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfY29uc3RhbnRzLmgsIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSByZW1vdmUgYWJpbGl0eSB0byBidWlsZCBpbmRlcGVuZGVudCBvZiBpZlRhYmxlCgoyMDA0LTA2LTA5IDE4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSB1c2UgbmV3IHBhcmFtIHRvIHNhdmUgaW50ZXJmYWNlIGVudHJ5IHcvZ2VuZXJhdGVkIGNvbnRleHQKICAgLSBmb3IgZGF0YSBmcm9tIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LCB1c2UgI2RlZmluZXMgc28gZ2VuZXJhdGVkIGNvZGUgZG9lc24ndAogICAgIGNoYW5nZSAoZWcgZGVmaW5lIGlmTmFtZSBpZmVudHJ5LmlmX25hbWUpLiB3b3JrcyBmb3IgbW9zdCBjYXNlcwogICAtIGFkZCBnZW5lcmF0ZWQgc3RvcmFnZS9kZWZpbmVzIGZvciBpZlhUYWJsZSBjb2x1bW5zIHRvIGRhdGEgY29udGV4dAogICAtIGNoYW5nZSBjYWNoZSB0aW1lb3V0IHRvIDMwIHNlY29uZHMKICAgLSB1c2UgbmV3IGNhY2hlIGZlYXR1cmVzIHRvIGF1dG8gbG9hZCBhbmQgYXV0byByZWZyZXNoIGNhY2hlCiAgIC0gdXNlIG5ldyBVTktOT1dOIGlmT3BlclN0YXR1cyBmb3IgaW50ZXJmYWNlcyB0aGF0IHZhbmlzaAogICAtIHVzZSBuZXcgaW50ZXJmYWNlIGNvcHkgZnVuY3Rpb24gd2hlbiB1cGRhdGluZyBjYWNoZQogICAtIG9ubHkgdXBkYXRlIExhc3RDaGFuZ2VkIG9uIGlmT3BlclN0YXR1cyBjaGFuZ2VzCgoyMDA0LTA2LTA5IDE4OjM3ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCM5Njg4MDAgU05NUENPTkZQQVRIIGZpeCBmb3IgV2luMzIgYmluYXJ5IGluc3RhbGxlcgogICBhbmQgcGF0Y2ggIzk3MDAxMiBSZW1vdmUgc25tcGNvbmYucGwgZnJvbSBXaW5kb3dzIGluc3RhbGxlcgoKMjAwNC0wNi0wOSAxODozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZDoKCiAgIC0gc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQKICAgICAtIGNoZyBkYXRhIGNvbnRleHQgdG8gZGVmYXVsdCBnZW5lcmF0ZWQKICAgICAtIGRvbid0IGFsbG9jYXRlIGRhdGEgY29udGV4dAogICAgIC0gZG8gcmVxdWVzdCBhIGluaXQgY2FsbCBmb3IgbmV3IGNvbnRleHRzCgoyMDA0LTA2LTA5IDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW1vdmUgbWliIHNwZWNpZmljIHN0dWZmIChpZl9hbGlhcywgaWZfYWRtaW5fc3RhdHVzLCBpZl9saW5rX3VwZG93bl90cmFwKQogICAgIChzdGlsbCBub3Qgc3VyZSBhYm91dCBsYXN0IGNoYW5nZWQgYW5kIGRpc2NvbnRpbnVpdHkpCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGNvcHkgaW50ZXJmYWNlIGVudHJ5IGRhdGEKICAgLSBtYWtlIGNhbGxiYWNrIGZ1bmN0aW9ucyBzdGF0aWMKCjIwMDQtMDYtMDkgMTc6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGlmIGRhdGFfaW5pdCBzZXQsIGFkZCB1c2VyIHZvaWQgcG9pbnRlciB0byBhbGxvY2F0ZV9yb3dyZXFfY3R4LCBhbmQgcGFzcyBpdAogICAgIHRvIHJvd3JlcV9jdHhfaW5pdAogICAtIGZpeCB0d28gdHlwb3MgaW4gY29kZSBvbmx5IGdlbmVyYXRlZCB3aGVuIGRhdGFfaW5pdCBpcyBzZXQKICAgLSByZWxlYXNlIHVuZG8gZGF0YSBpbiBmcmVlX3Jvd3JlcV9jdHgKICAgLSBkb24ndCBnZW5lcmF0ZSB1bmRvIHNldHVwIGNvZGUgZm9yIG5vbi1zZXR0YWJsZSBjb2x1bW5zCgoyMDA0LTA2LTA5IDE3OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtdG9wLm0yYzoKCiAgIC0gaWYgZGF0YV9pbml0IHNldCwgYWRkIHVzZXIgdm9pZCBwb2ludGVyIHRvIGFsbG9jYXRlX3Jvd3JlcV9jdHgsIGFuZCBwYXNzIGl0CiAgICAgdG8gcm93cmVxX2N0eF9pbml0CgoyMDA0LTA2LTA5IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gY29udmVydCBjb250YW50IHByZWZpeGVzIHRvIHVwcGVyY2FzZQogICAtIGFkZCAnX3ZhbCcgc3VmZml4IHRvIGFsbCBub2RlIHBhcmFtZXRlciBuYW1lcwoKMjAwNC0wNi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgYWRkIGRlc2NyaXB0aW9uCgoyMDA0LTA2LTA5IDAyOjM3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIHBlciBNaWtlIEhlaXNsZXIsIGZpeCBidWcgIzkzNjQ4MyAocmVzdG9yZSBzc2l6ZV90KS4KCjIwMDQtMDYtMDggMjE6NTUgIHNsaWYKCiAgICogYWNjb25maWcuaDoKCiAgIFVwZGF0ZSB0byB3aW4zMiBpZmRlZiB0byBpbmNsdWRlIG90aGVyIGVudmlyb25tZW50cwoKMjAwNC0wNi0wOCAxMzo1NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIga3BfY29tbSwgZXRjLikgZm9yIEZyZWVCU0QgNS54CgoyMDA0LTA2LTA4IDEzOjUzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIgeHRfdHApIGZvciBGcmVlQlNEIDQueCBhbmQgRnJlZUJTRCA1LngKCjIwMDQtMDYtMDggMTM6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBjb21waWxlIGZhaWx1cmUgKG5vIGlucF9uZXh0IGluIHN0cnVjdCBpbnBjYikgZm9yIEZyZWVCU0QgNC54IGFuZCA1LngKCjIwMDQtMDYtMDggMTM6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgZml4IGJ1ZyA4OTU2NzkgYnkgZW5zdXJpbmcgdXBwZXIgbGltaXQgdHJhY2tzIGJ1ZmZlciBhbGxvY2F0aW9uL2ZyZWUgYWN0aW9ucy4KCjIwMDQtMDYtMDggMTI6MDMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSB1bmRlZiBvZiBTVFJVQ1RfU1RBVEZTX0hBU19GX0ZBVkFJTCAobmV2ZXIgaXMgZGVmaW5lZCkuCgoyMDA0LTA2LTA4IDEwOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtc2V0Lm0yYywgcGFyZW50LXNldC5tMmkKOgoKICAgLSBjb21tZW50cyBhYm91dCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKICAgLSBtaXNzZWQgYSBmZXcgZXJyb3IgZGVmaW5lIHVwZGF0ZXMKCjIwMDQtMDYtMDggMTA6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGFkZCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKCjIwMDQtMDYtMDcgMTk6NTIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBzZXR0aW5nIG9mIE9TVFlQRSBmb3IgRnJlZUJTRCBidWlsZCBwbGF0Zm9ybXMuCgoyMDA0LTA2LTA3IDE5OjQ3ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBjcmVhdGUgc3lzdGVtIGluY2x1ZGUgZmlsZSBmb3IgRnJlZUJTRCA1LnggYnVpbGQgcGxhdGZvcm1zLgoKMjAwNC0wNi0wNyAxOTo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgY29kZSBpbiBzd2FwbW9kZQoKMjAwNC0wNi0wNyAxMjozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlY2hlY2sgcGVyc2lzdGVudCBwYXRoIGluIGxvb3AsIHNpbmNlIGl0IG1pZ2h0IGNoYW5nZQoKMjAwNC0wNi0wNyAxMjoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgc3BlY2lmeSBmdWxsIDMyIGJpdHMgZm9yIGhhbmRsZXIgZmxhZ3MKCjIwMDQtMDYtMDcgMTI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWx3YXlzIGNvbnNpZGVyIGNhY2hlIHcvdGltZW91dCBvZiAtMSBhcyBleHBpcmVkIChsb2FkIGNhY2hlIGV2ZXJ5IHJlcXVlc3QpCiAgIC0gYWRkIE5FVFNOTVBfQ0FDSEVfRE9OVF9GUkVFX0JFRk9SRV9MT0FEICYgTkVUU05NUF9DQUNIRV9BVVRPX1JFTE9BRCBmbGFncwogICAtIGFkZCBleGFtcGxlIHVzYWdlcyBzY2VuYXJpb3MgYW5kIHN1Z2dlc3RlZCBmbGFncwogICAtIGFkZCBuZXRzbm1wX2NhY2hlX3RpbWVyX3N0YXJ0ICYgbmV0c25tcF9jYWNoZV90aW1lcl9zdG9wCiAgIC0gY2xlYXIgZXhwaXJlZCBmbGFnIGFmdGVyIGNhY2hlX2xvYWQKICAgLSBhZGQgYW5vdGhlciBub3RlIGFib3V0IHBvdGVudGlhbCBjYWNoZSBpc3N1ZSB3L2RlbGVnYXRlZCByZXF1ZXN0cwogICAgIChzb21lIGxvY2tpbmcvcmVmZXJlbmNlIGNvdW50IG1lY2hhbmlzbSBpcyBuZWVkZWQpCgoyMDA0LTA2LTA3IDExOjUwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSBhY2NlcHQgYWJicmV2aWF0ZWQgdmVyc2lvbnMgb2Ygc29tZSBmbGFncwogICAtIHBvaW50IGluZGVudC1vcHRvaW5zIGF0IGEgcmVhbCBkaXJlY3RvcnkKICAgLSBkb24ndCBzdWJzdGl0dXRlIHByZWZpeCBtdWx0aXBsZSB0aW1lcwoKMjAwNC0wNi0wNyAxMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgZml4IGNvbW1lbnQgcmVmIGZvciBpbnRlZ2VyIGZyb20gTlVMTCB0byAwCgoyMDA0LTA2LTA3IDExOjM5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHNraXAgc2NwIGlmIGJhYyByYyBmcm9tIGN2cyBjb21tYW5kCgoyMDA0LTA2LTA3IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVhbWUgJGlfSURYMiB0byAkSV9DVVNUT01fU09SVCB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA0LTA2LTA3IDExOjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IHNpbXBsaWZpZWQgZXJyb3JzCiAgIC0gYWRkIG1pc3NpbmcgdW5kb19jb21taXQsIHVuZG9fY2xlYW51cCBzdGF0ZXMKICAgLSBtb3ZlIHByZS9wb3N0IHJlcXVlc3QgaW5pdCBvdXRzaWRlIG1pYjJjIGNvbmRpdGlvbmFsCiAgIC0gbW92ZSB1bmRvIGRhdGEgY29udGV4dCByZWxlYXNlIHRvIHVuZG9fY2xlYW51cAogICAtIHZhbGlkYXRlIHJjIGZyb20gbm9kZSBjaGVjayB2YWx1ZSByb3V0aW5lCgoyMDA0LTA2LTA3IDExOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gdXNlIG5ldyBzaW1wbGlmaWVkIGVycm9ycwogICAtIG1vcmUgaGVscCB0ZXh0IGZvciBkaXN0aW5jdGlvbiBiZXR3ZWVuIHdyb25nVmFsdWUvaW5jb25zaXN0ZW50VmFsdWUKCjIwMDQtMDYtMDcgMTE6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIHVzZSBuZXcgc2ltcGxpZmllZCBlcnJvcnMKICAgLSBtb3JlIGhlbHAgdGV4dCBmb3IgdmFsaWRhdGVfaW5kZXgKICAgLSBpbmNsdWRlIGJhYnktc3RlcHMgZmxvdy1jaGFydCBiZWZvcmUgc2V0IGZ1bmN0aW9ucwogICAtIGFkZCBtaXNzaW5nIHVuZG9fY29tbWl0LCB1bmRvX2NsZWFudXAgc3RhdGVzCgoyMDA0LTA2LTA3IDExOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICB1c2UgU05NUHYyIGVycm9ycyBpbnN0ZWFkIG9mIHYxIGVycm9ycwoKMjAwNC0wNi0wNyAxMToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gdHVybiBvZmYgaW5kZW50IGFyb3VuZCBjb25maWdfcmVxdWlyZSAoZG9lc24ndCBsaWtlICAnLycgb3IgJy0nIGNoYXJzKQogICAtIHNpbXBsaWZ5IHNvbWUgZXJyb3IgZGVmaW5lIG5hbWVzCgoyMDA0LTA2LTA3IDExOjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB1cGRhdGUgc29tZSBxdWVzdGlvbi9oZWxwIHRleHQKCjIwMDQtMDYtMDcgMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgcmVzdG9yZSBmb3JlYWNoIHRhYmxlCgoyMDA0LTA2LTA3IDExOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICByZXZlcnQgY2hhbmdlcyBmb3Igc2V0dGluZyBzb21lIG1pYjJjIGRlZmF1bHRzICh1c2UgbWliMmMgLVMgeHh4IGluc3RlYWQpCgoyMDA0LTA2LTA3IDExOjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgcGFzcyBleHRyYSBhcmdzIHRvIG1pYjJjCgoyMDA0LTA2LTA3IDExOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGNoYW5nZSBleGFtcGxlIGNvbW1lbnQgYmxvY2sgc28gaW5kZW50IHdpbGwgaW5kZW50IGl0CiAgIC0gc2tpcCBzdWJzdGl0dXRpb24gY2hlY2tzIGlmIHRoZXkgd29uJ3QgbWF0Y2gKICAgLSBhcHBseSBkYXZlJ3MgaGFjayBmb3IgOTM5MDQxOiAuLi4gYmFkIG1hY3JvIG5hbWUgaWZmIGVudW0gY29udGFpbnMgaHlwaGVuCgoyMDA0LTA2LTA3IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIEJhY2t3YXJkcy1jb21wYXRhYmlsaXR5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBVQ0QtU05NUC1NSUI6OmV4dFRhYmxlCiAgIChpZiB0aGUgdWNkLXNubXAvZXh0ZW5zaWJsZSBtb2R1bGUgaXNuJ3QgY29uZmlndXJlZCBpbikuCgoyMDA0LTA2LTA3IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLAogICAgIHVjZC1zbm1wL2V4dGVuc2libGUuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICAgIHVjZC1zbm1wL3Bhc3MuaCwgdWNkLXNubXAvcGFzc19wZXJzaXN0Lmg6CgogICBNb3ZlICdnZXRfZXh0ZW5faW5zdGFuY2UnIGludG8gdGhlIHV0aWxpdHkgZnVuY3Rpb24gZmlsZSwKICAgc28gdGhhdCB0aGUgdHdvIHBhc3MgaGFuZGxlcnMgYXJlbid0IGRlcGVuZGVudCBvbiAnZXh0ZW5zaWJsZScKCjIwMDQtMDYtMDYgMjM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggd2FybmluZ3MgYWJvdXQgbWlzc2luZyBtb2R1bGVzIHdoZW4gdGhlcmUgYXJlIHJlcGxhY2VtZW50cyBmb3IgdGhlbQoKMjAwNC0wNi0wNiAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGN2cyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKCjIwMDQtMDYtMDQgMTM6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIHJlbW92ZSByZWR1bmRhbnQgcmVmZXJlbmNlIHJvdyBmcm9tIG91dHB1dAoKMjAwNC0wNi0wNCAxMzozOSAgaGFyZGFrZXIKCiAgICogbWlicy9ub2RlbWFwOgoKICAgYWRkZWQgYSBub2RlbWFwIGZvciBodG1sIG91dHB1dCBnZW5lcmF0aW9uCgoyMDA0LTA2LTA0IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIGh0bWwgb3V0cHV0IGRpc3BsYXkgdGhlIHJlZmVyZW5jZSBpbiBpdGFsaWNzIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZHMuCgoyMDA0LTA2LTA0IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLmNvbmYuNToKCiAgIG1ha2UgJHgucmVmZXJlbmNlIGV4cGFuZCB0byBhIG9iamVjdHMgcmVmZXJlbmNlCgoyMDA0LTA2LTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBTTk1QOjpNSUIgb2JqZWN0cyBoYW5kbGUgYSAncmVmZXJlbmNlJyBrZXl3b3JkLgoKMjAwNC0wNi0wNCAxMzozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZWQgdGhlIHZhbHVlIG9mIHBhcnNlZCByZWZlcmVuY2UgY2xhdXNlcy4KCjIwMDQtMDYtMDQgMDU6NTEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQSBsaXR0bGUgZXJyb3ItY2hlY2tpbmcgd2hlbiBmb3J3YXJkaW5nLCBhbmQgY2hhbmdlIGZwcmludGYgdG8gc25tcF9sb2cKCjIwMDQtMDYtMDQgMDM6MTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUHJvcGVybHkgZnJlZSBwcmludGJ1ZmZlcgoKMjAwNC0wNi0wNCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIE1ha2Ugc3VyZSBhbGwgcmVnaXN0cmF0aW9uIGFyZSByZW1vdmVkIGZvciBleGVjJ3MKCjIwMDQtMDYtMDQgMDI6NDUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZ2FyYmxlZCBwYWNrZXRzIHdpdGggYmFkIHBhY2tldCB0eXBlcwoKMjAwNC0wNi0wNCAwMTo1NyAgbmJhCgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZjoKCiAgIFNpbXBsZSBzcGVsbGluZyBmaXgKCjIwMDQtMDYtMDQgMDE6MTUgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkdXAgaW5zdGFsbGF0aW9uIG9mIHNjcmlwdHMgYWZ0ZXIgYWRkaXRpb24gb2YgLS1kaXNhYmxlLXNjcmlwdHMKCjIwMDQtMDYtMDQgMDA6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICB1bmRvIHByZXZpb3VzIGNoYW5nZSwgc2luY2UgaW50cm9kdWN0aW9uIG9mIGZyZWVic2Q1LmggaGVhZGVyIGRlZmluZXMgZnJlZWJzZDQuCgoyMDA0LTA2LTAzIDEyOjU5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IGJ1ZyAjOTQzMzUxIGJ5IGNvbnNpZGVyaW5nIGZyZWVic2Q1IHdoZW4gZGVjbGFyaW5nICJoeiIuCgoyMDA0LTA2LTAyIDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1yZWFkbWUubTJjOgoKICAgZml4IGEgZmV3IG1pc3NlZCBwcm9jZXNzaW5nX3R5cGUgdHdlYWtzCgoyMDA0LTA2LTAyIDA1OjM3ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRSwgd2luMzIvQ29uZmlndXJlCiwgd2luMzIvYnVpbGQucGwsIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIHdpbjMyL25tYWtlcGVybC5iYXQsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvciB3aW4zMiBkb2MgYW5kIHNjcmlwdHMsIG1hdGNoIHRoZSBiYXNlIGRpcmVjdG9yeSB1c2VkIGFzIGN1cnJlbnQgZGVmYXVsdC4KCjIwMDQtMDYtMDEgMDI6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSGFuZGxlIHJvdyBkZWxldGlvbiAoYW5kIGZhaWxlZCByb3cgY3JlYXRpb24pIHByb3Blcmx5LgogICBNb3ZlIHJvdyBjcmVhdGlvbiBhbmQgbmV3IHZhbHVlIGFzc2lnbm1lbnRzIHRvIHRoZWlyIG5hdHVyYWwKICAgcGFzc2VzLCB3aXRoIGEgc2Vjb25kIChzZXBhcmF0ZSkgY2hlY2sgZm9yIHJvdyB2YWxpZGl0eS4KICAgKGZvbGxvd2luZyBSb2JlcnQncyBzdWdnZXN0aW9uKQoKMjAwNC0wNi0wMSAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgZm9sbG93aW5nIHRoZSBhZGRpdGlvbiBvZiAncmVsb2NhdGFiaWxpdHknLgogICBFbnN1cmUgdGhhdCB0aGUgInN0YW5kYXJkIiBsb2NhdGlvbiBpcyByZWdpc3RlcmVkIGF1dG9tYXRpY2FsbHkKICAgKHNvIHRoZSBudW1Sb3dzIG9iamVjdCBpcyBwcmVzZW50LCBldmVuIHdpdGggYW4gb3RoZXJ3aXNlIGVtcHR5IHRhYmxlKS4KCjIwMDQtMDUtMjcgMjA6MDYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdXBkYXRlIHN0YXR1cyB0byByZWZsZWN0IHNubXB0cmFwZCBjYW4gYmUgcnVuIGFzIGEgV2luZG93cyBzZXJ2aWNlLgoKMjAwNC0wNS0yNyAwNTozNyAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIENvcnJlY3QgdGhlIG51bWJlciBvZiBjb3B5cmlnaHQgbm90aWNlcwogICBsaXN0ZWQsIGFuZCB0aGUgdGV4dCBvZiB0aGUgU3BhcnRhIG9uZS4KICAgKEkgdHJ1c3QgdGhpcyBpcyBPSywgV2VzISkKCjIwMDQtMDUtMjYgMDE6MzkgIGR0czEyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBSZW1vdmUgd2FybmluZ3Mgb2YgQWdlbnRYICJiZXRhLXN0YXR1cyIuCiAgIChJIGtub3cgSSdtIGdvaW5nIHRvIHJlZ3JldCBkb2luZyB0aGlzLi4uLikKCjIwMDQtMDUtMjUgMDg6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBBY2NlcHQgdGhlIHNhbWUgc2VjdXJpdHkgbGV2ZWwgdG9rZW5zIGFzIHVzZWQgaW4gdGhlCiAgICJyW3dvXXVzZXIiIGFuZCAiYWNjZXNzIiBkaXJlY3RpdmVzLgoKMjAwNC0wNS0yNCAwMzozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgcmVsb2NhdGFibGUgZm9ybSBvZiBhZ2VudCBleHRlbnNpb24gdGFibGUuCgoyMDA0LTA1LTI0IDAzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEltcGxlbWVudCAncnVuLW9uLXdyaXRlJyBzdXBwb3J0LCBhbmQgdXNlIGl0IHRvIGhhbmRsZSBhCiAgIG5ldyAnZXhlY0ZpeCctc3R5bGUgZGlyZWN0aXZlLgoKMjAwNC0wNS0yMyAxMDo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aDogYXBwbHkgcGF0Y2ggWzk1Nzk0Ml0gV2luMzIgc2VydmljZSBpbnN0YWxsIHBhdXNlCgoyMDA0LTA1LTIxIDEwOjEwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yL3Byb2Nlc3MgZGVsZWdhdGVkIHJlcXVlc3RzIGluIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzCgoyMDA0LTA1LTIwIDIxOjA5ICBzbGlmCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSBmYWlsdXJlIHJlc3VsdCBzaG91bGQgY3ZzIGNoZWNrb3V0IGNvbmRpdGlvbiBub3QgYXBwbHkuCiAgIFRoaXMgcGVybWl0cyBidWlsZHMgb3V0c2lkZSBDVlMgdHJlZSB0byBzdWNjZWVkLgoKMjAwNC0wNS0yMCAxNjowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgTWlub3Igd29yZGluZzogYWRkZWQgdGFibGUgbmFtZSB0byAiaW5kZXgiIGFuZCAib3RoZXIgY29sdW1ucyIgbGluZS4KCjIwMDQtMDUtMjAgMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICByZW1vdmUgY2hhbmdlcyBhY2NpZGVudGlhbGx5IGFwcGxpZWQgdGhhdCB3ZXJlbid0IHJlYWR5CgoyMDA0LTA1LTIwIDE1OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IFZlcnNpb24tTXVuZ2UucGwsIG1pYjJjLmdlbmh0bWwuY29uZjoKCiAgIC0gYWRkZWQgc3VwcG9ydCBmb3Igbm90aWZpY2F0aW9uIGRlc2NyaXB0aW9ucwoKMjAwNC0wNS0xOSAxODowOSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBnZXRfdGNfZGVzY3JpcHRpb24gYW5kIGluaXRfdXNtX2NvbmYgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMgbGlzdC4KCjIwMDQtMDUtMTkgMTg6MDIgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBlcm1pdCBDeWd3aW4gYnVpbGQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgYmFja3NsYXNoIHBydW5pbmcgYW5kIHNpbmdsZSBsZXR0ZXIgdm9sdW1lIHNwZWNpZmllci4KCjIwMDQtMDUtMTkgMTc6NTQgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWw6CgogICBwZXIgQWxleCBCdXJnZXI6ICBzbm1wY29uZiBkYXNoIGxpdHRsZS1leWUKCjIwMDQtMDUtMTkgMTY6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGFyc2luZyBvZiBleHBsaWNpdCBoYW5kbGVyIHR5cGVzCgoyMDA0LTA1LTE5IDEzOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgdXBkYXRlIGFmdGVyIGEgbWliMmMgdXBkYXRlCgoyMDA0LTA1LTE5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICAtIHN1cHBvcnQgYSB0YWJsZSBvZiBjb250ZW50cwogICAtIG5hbWUgYWxsIG5vZGVzIHVzaW5nIGh0bWwgbmFtZXMKICAgLSBzdXBwb3J0IGEgdHJlZS12aWV3CiAgIC0gbWlzYyBidWcgZml4ZXMKCjIwMDQtMDUtMTkgMTM6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBzdXBwb3J0ICJmb3JlYWNoICRpIHN0dWZmIExJU1QiCiAgIC0gdXNlIHVuc2hpZnQgaW5zdGVhZCBvZiBwdXNoIGZvciBjYWxsZGVmaW5lIHRvIGVuc3VyZSBwcm9wZXIgcmVjdXJzaW9uCiAgIC0gcmVnZXhwIG11bmdpbmcKCjIwMDQtMDUtMTkgMTA6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIGxvYWQgdGhlIGNhY2hlIGZvciByZXNlcnZlMSAob3RoZXJ3aXNlIGEgZ2V0IGlzIHJlcXVpcmVkIGJlZm9yZSBzZXQgd29ya3MpCgoyMDA0LTA1LTE4IDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBhbGxvdyBmb3IgdXNlciBvdmVycmlkZSBvZiBtZmQgb3B0aW9uIGRlZmF1bHRzCgoyMDA0LTA1LTE4IDEzOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhbGxvdyBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgb2YgbWZkIG9wdGlvbnMKCjIwMDQtMDUtMTggMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGFsbG93IGZvciBpbnRlcmFjdGl2ZSBzZXR1cCBvZiBvcHRpb25zOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBzZXQgdmFyYmluZCBlcnJvciBvbiBjb2x1bW4gc2V0IGVycm9yOyBhbHdheXMgY2FsbCByb3dfcHJlcDsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dAogICBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMzo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgc2V0IHZhcmJpbmQgZXJyb3Igb24gY29sdW1uIHNldCBlcnJvcjsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mCiAgICR0YWJsZTsgc2VwYXJhdGUgbWZkX3Byb2Nlc3NpbmdfdHlwZXMgZnJvbSBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTA1LTE4IDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLXRvcC5tMmM6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBzZXBhcmF0ZSBtZmRfcHJvY2Vzc2luZ190eXBlcwogICBmcm9tIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDUtMTggMTM6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IHJlbW92ZSBkYXRhIHNldHVwIGZyb20gcm93X3ByZXAKCjIwMDQtMDUtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGRlZmF1bHQgdG8gc2V0dGluZyB1cCBkYXRhCiAgIGNvbnRleHQgaW4gY2FjaGVfbG9hZCwgaW5zdGVhZCBvZiByb3dfcHJlcAoKMjAwNC0wNS0xOCAxMToyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBhc3N1bWUgbWFwcGluZyBhbHJlYWR5IGRvbmU7IHNldCBsZW4gdG8gbWF4IHNpemUgYmVmb3JlCiAgIGNoZWNraW5nIGlmIGl0IGlzIGxhcmdlIGVub3VnaCB0byBob2xkIGEgdmFsdWUKCjIwMDQtMDUtMTggMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBsb2cgZXJyb3IgaWYgbm90IGVub3VnaCBzcGFjZSBmb3IgdmFyCgoyMDA0LTA1LTE4IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGNvbW1lbnQgdHdlYWtzCgoyMDA0LTA1LTE4IDExOjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGZpeCBjYXNlIG9mIHNvbWUgY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtZW51bXMubTJjLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBtYWtlIGdlbmVyaWMtdGFibGUtKGVudW1zfG9pZHMpIG9ubHkgcnVuIG9uIGN1cnJlbnQKICAgdGFibGU7IGFkZCB0YWJsZSBsb29wIGluIGdlbmVyaWMtdGFibGUtY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGFkZCBkZWJ1ZyB0cmFjaW5nIGZvciBzZXQgZnVuY3Rpb25zCgoyMDA0LTA1LTE4IDEwOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy10YWJsZS5tMmksCiAgICAgZ2VuZXJpYy1jdHgtY29weS5tMmksIGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaSwgbWZkLXJlYWRtZS5tMmMKOgoKICAgY29tbWVudCB0d2Vha3M7IGNoZyAkdGFibGUgdG8gJGNvbnRleHQKCjIwMDQtMDUtMTggMDI6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgV3JpdGUgc3VwcG9ydCwgaW5jbHVkaW5nIFJvd1N0YXR1cy1iYXNlZCBjcmVhdGlvbiBvZiBuZXcgKHZvbGF0aWxlKSByb3dzLgogICBUaGUgY29kZSBuZWVkcyBhIGJpdCBvZiB0aWR5aW5nIHVwLCBidXQgc2VlbXMgdG8gYmUgcmVhc29uYWJseSBmdW5jdGlvbmFsLgoKMjAwNC0wNS0xOCAwMjowMSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE1pbm9yIHR3ZWFrcy4KCjIwMDQtMDUtMTcgMjA6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGgsIGFwcGx5IHBhdGNoICMgOTU1NTc5IHRvIGNvbXBsZXRlIG1pbm9yIGNoYW5nZXMgdG8gaW5zdGFsbCB0YWJzLgoKMjAwNC0wNS0xNyAxOTo1OCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbCwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgIGh0bWxoZWxwL05ldC1TTk1QLmhocDoKCiAgIEFkanVzdCB1c2FnZSB0byBhY2NvdW50IGZvciByZW1vdmVkIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTk6NTIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9odG1saGVscC86IENvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbCwKICAgICBDb25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsIERldmVsb3BlciBGQVEuaHRtbCwKICAgICBEZXZlbG9wZXJfRkFRLmh0bWwsIEhlbHAgQ2F2ZWF0cy5odG1sLAogICAgIEhlbHBfQ2F2ZWF0cy5odG1sOgoKICAgcmVtb3ZlIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTU6NDUgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgcGVyIEFsZXggQnVyZ2VyLCBvbmUtbGluZSBjaGFuZ2UgKGxpbmUgMTU5LCBjaGFuZ2UgcGVyaW9kIHRvIGNvbG9uKS4KCjIwMDQtMDUtMTcgMDc6MTMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dAosIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sLAogICAgIHdpbjMyL2xvY2FsL01ha2VmaWxlLmluLCB3aW4zMi9sb2NhbC9taWIyYy5iYXQsCiAgICAgd2luMzIvbG9jYWwvc25tcGNvbmYuYmF0LCB3aW4zMi9sb2NhbC90cmFwdG9lbWFpbC5iYXQKOgoKICAgcGVyIEFsZXggQnVyZ2VyOiB0ZXN0IGV4aXN0ZW5jZSBvZiBwZXJsOyBwcm92aWRlIGFjY2VzcyB0byBtb3JlIFBlcmwgcHJvZ3JhbXMuCgoyMDA0LTA1LTE3IDA2OjQ0ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoOiBhcHBseSBwYXRjaCAjOTU1MjU1IHRvIGVuaGFuY2UgdGhlIE5TSVMgaW5zdGFsbGVyLgoKMjAwNC0wNS0xNyAwNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgdGhlIG11bHRpLXJvdyBvdXRwdXQgTUlCIHRhYmxlLgoKMjAwNC0wNS0xNCAwNDoyMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE9vcHMhICBDbG9zZSAtIGJ1dCBpdCdzIGEgZ29vZCBqb2IgSSBkb24ndCBzbW9rZS4uLi4KCjIwMDQtMDUtMTMgMjE6MjMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgcGVyIEFsZXhCOiBkZXNjcmliZSBmdXJ0aGVyIGRldGFpbHMgb2YgYnVpbGRpbmcgKGNyZWF0aW5nIGVtcHR5IGZpbGVzLCBldGMpLgoKMjAwNC0wNS0xMyAyMToxMyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBwZXIgQWxleEI6IGFkZGVkIHNlY3Rpb24gImNvLWV4aXN0aW5nIHdpdGggbSQgc2VydmljZXMiCgoyMDA0LTA1LTEzIDIwOjI5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLzogQWRkMlBhdGgubnNpLCBTZXRFblZhci5uc2ksCiAgICAgbmV0LXNubXAtaGVhZGVyMS5ibXAsIG5ldC1zbm1wLm5zaToKCiAgIFBlciBBbmR5IFNtaXRoOiBwYXRjaCBbOTUyNTA5XSB0byBmaXggbGluayBuYW1lcyBmb3IgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGJhdGNoIGZpbGVzLgoKMjAwNC0wNS0xMyAyMDoxMiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBQZXIgQWxleCBCdXJnZXIgYW5kIEFuZHkgU21pdGg6IHVwZGF0ZWQgaW5zdHJ1Y3Rpb25zIGZvciBjcmVhdGluZyBhIHdpbjMyIGluc3RhbGxhYmxlIHBhY2thZ2UuCgoyMDA0LTA1LTEzIDIwOjA0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlbW92ZSBORVRTTk1QX0NQUF9XUkFQIG1hY3JvcwoKMjAwNC0wNS0xMyAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBTcGxpdCBuZXcgZXh0ZW5zaW9uIHRhYmxlIGludG8gdHdvIChjb25maWd1cmF0aW9uIGFuZCBvdXRwdXQpLgogICBJbXBsZW1lbnQgc2NhbGFyIHRvIHRyYWNrIHRoZSBudW1iZXIgb2YgZW50cmllcy4KICAgUGFyc2UgbXVsdGktbGluZSBvdXRwdXQgdG8gaW1wbGVtZW50ICduc0V4dGVuZE91dHB1dDFMaW5lJyBvYmplY3QuCgoyMDA0LTA1LTEzIDA0OjA2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgU2VwYXJhdGUgY29uZmlndXJhdGlvbiBhbmQgb3V0cHV0IGludG8gc2VwYXJhdGUgdGFibGVzLCBhcyBzdWdnZXN0ZWQuCiAgIERyb3AgJ291dHB1dCBsZW5ndGgnIG9iamVjdCBhcyBwcm9iYWJseSB1bm5lY2Vzc2FyeS4KICAgTmV3IHNjYWxhciB0byB0cmFjayB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIHRhYmxlLgogICBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGlzIGdyb3VwIHdpbGwgbm90IGJlIGVtcHR5LAogICBldmVuIHdoZW4gbm8gZXh0ZW5zaW9ucyBhcmUgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBhZ2VudC4KICAgKEknbSBzdGlsbCBub3QgaGFwcHkgd2l0aCBzb21lIG9mIHRoZSBuYW1lcywgdGhvdWdoISkKCjIwMDQtMDUtMTEgMDM6NTkgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBjbGVhbnVwIGVycm9yIG1lc3NhZ2VzLiBjbGFyaWZ5IFNDTSBpbnRlcmFjdGlvbnMgd2l0aCB3b3JrZXIgdGhyZWFkIGluIGNvbW1lbnRzLgoKMjAwNC0wNS0xMSAwMzoxMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeCBzb21lIFNNSSBlcnJvcnMuCiAgIFdlcyBjYW4gYmUgYSBwaWNreSBiZWdnYXIgYXQgdGltZXMuLi4uCgoyMDA0LTA1LTEwIDE3OjUwICBzbGlmCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9uZXQtc25tcC1wZXJsLXRlc3QucGw6CgogICBwZXIgQWxleCBCdXJnZXIgLSBhZGQgbWlzc2luZyB0ZXN0IHNjcmlwdC4KCjIwMDQtMDUtMTAgMTM6NDkgIGhhcmRha2VyCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIEFub3RoZXIgZG9jIHVwZGF0ZSBmcm9tIEFsZXgKCjIwMDQtMDUtMTAgMDM6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtdGF0aW9uIG9mIG5ldyBuc0V4dGVuZFRhYmxlCgoyMDA0LTA1LTEwIDAzOjQ0ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgUmV2aXNlZCBNSUIgZm9yIHNjcmlwdGVkIGV4dGVuc2lvbnMuCiAgIChUbyByZXBsYWNlIFVDRC1TTk1QLU1JQjo6ZXh0VGFibGUpCgoyMDA0LTA1LTEwIDAzOjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEZWZlbnNpdmUgcHJvZ3JhbW1pbmcgLSBkb24ndCBjcmFzaCBvbiBOVUxMIHBhcmFtZXRlcnMuCgoyMDA0LTA1LTEwIDAzOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEV4dGVybmFsIEFQSSBmb3IgY2hlY2tpbmcgYW5kIHJlbG9hZGluZyBhIGNhY2hlZCB2YWx1ZS4KICAgV2Vha2VuIHRoZSBsaW5rcyBiZXR3ZWVuIHRoaXMgaGVscGVyIGFuZCAnbnNDYWNoZVRhYmxlJy4KCjIwMDQtMDUtMDcgMTU6NDEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZvciBGUk5FVFNFUlYtTUlCCgoyMDA0LTA1LTA3IDE1OjE5ICBuYmEKCiAgICogbWlicy86IEV0aGVyTGlrZS1NSUIudHh0LCBJQU5BaWZUeXBlLU1JQi50eHQsCiAgICAgcmZjbWlicy5kaWZmOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCIHZlcnNpb25zCgoyMDA0LTA1LTA3IDE1OjA0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBUaGUgd29yZCBQUkVGSVggaXMgbm90IGVuZGFuZ2VyZWQgZm9yIHN1YnN0aXR1dGlvbiwgc28gbWFrZSBpdCBsb29rIG5vcm1hbAoKMjAwNC0wNS0wNyAxNDozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggZm9yIHRydW5jYXRlZCBvaWQgd2hlbiB1c2luZyBPQkpFQ1QgSURFTlRJRklFUiBhcyBpbmRleAoKMjAwNC0wNS0wNyAxNDoxNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggdG8gYWxsb3cgc3BlY2lmeWluZyBudW1lcmljIG9pZCBmb3IgdGFibGUKCjIwMDQtMDUtMDYgMjA6MTUgIHNsaWYKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtOgoKICAgUGVyIEFsZXggQnVyZ2VyLCBhZGQgbmFtZXMgdG8gYWNrbm93bGVkZ2UgdGhlIGluZGl2aWR1YWwgY29udHJpYnV0b3JzLgoKMjAwNC0wNS0wNiAxOTo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICByZWZsZWN0IHRoYXQgUkVBRE1FLUZJUlNULnR4dCBhbmQgSW5zdGFsbGF0aW9uLmh0bWwgaGF2ZSBiZWVuIG1lcmdlZCBpbnRvIFJFQURNRS50eHQKCjIwMDQtMDUtMDYgMTk6MDIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUGVyIEFuZHkgU21pdGgsIHBhdGNoICM5NDI3NjYgY3JlYXRlcyBTTk1QQ09ORlBBVEggYW5kIFNOTVBTSEFSRVBBVEggYXMgc3lzdGVtIGVudiB2YXJzLgoKMjAwNC0wNS0wNiAxODo1NCAgc2xpZgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFBlciBBbmR5IFNtaXRoLCBkb24ndCBzaG93IG1lc3NhZ2UgZGlhbG9ncyB3aGVuIHJlZy91bnJlZyBPSyAocGF0Y2ggOTQ4OTI2IGZpeGVzIGJ1ZyA5NDgxNDYpLgoKMjAwNC0wNS0wNiAxODowMSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLUZJUlNULnR4dCwgUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIFJFQURNRS50eHQsIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbAosIGh0bWxoZWxwL0hlbHAgQ2F2ZWF0cy5odG1sLAogICAgIGh0bWxoZWxwL0luc3RhbGxhdGlvbi5odG1sLCBodG1saGVscC9OZXQtU05NUC5oaGMsCiAgICAgaHRtbGhlbHAvTmV0LVNOTVAuaGhwLCBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbDoKCiAgIHBhdGNoIHdpbmRvd3MgYnVpbGQgcGFja2FnaW5nIHBlciBBbGV4IEJ1cmdlcidzIHBhdGNoLXdpbjMyLTUuMS4yLWNsZWFudXAuZGlmZgoKMjAwNC0wNS0wNiAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGJsb2NrIHNjb3BlOyBhZGQgaGVhZGVyIHRvIHF1aWV0IHByb3RvdHlwZSB3YXJuaW5nCgoyMDA0LTA1LTA1IDE0OjQxICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIEFkZCBJQU5BLU1BTExPQy1NSUIKCjIwMDQtMDUtMDUgMTM6NDkgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgUHJvdGVjdCBvaWQgdGFibGUgYWdhaW5zdCBvdmVyZmxvdwoKMjAwNC0wNS0wNSAwNzozNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIHNob3VsZF9pbml0IGJlZm9yZSBpbml0aWFsaXppbmcgc211eAoKMjAwNC0wNS0wNCAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmY6CgogICBGaXggYSBoZWFkZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgoyMDA0LTA1LTA0IDA3OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX2NvbmYuYywKICAgICB2YWNtX2NvbmYuaCwgdmFjbV92YXJzLmg6CgogICBTcGxpdCBWQUNNIGhhbmRsaW5nIGludG8gdHdvIC0gb25lIGNvbmNlcm5lZCB3aXRoIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcwogICBhbmQgdmFsaWRhdGluZyBhY2Nlc3MsIHRoZSBvdGhlciB0byBoYW5kbGUgdGhlIE1JQiB0YWJsZSByZXByZXNlbnRhdGlvbi4KICAgVGhpcyBhbGxvdyB0aGUgYWdlbnQgdG8gc3VwcG9ydCBWQUNNLWJhc2VkIGFjY2VzcyBjb250cm9sIHdpdGhvdXQgbmVjZXNzYXJpbHkKICAgaW5jbHVkaW5nIHRoZSBWQUNNLXJlbGF0ZWQgdGFibGVzLgoKMjAwNC0wNS0wNCAwNzoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXB1c20uYwosIGFwcHMvc25tcHRyYXBkLmM6CgogICBNb3ZlIFVTTSBjb25maWcgaGFuZGxpbmcgaW50byB0aGUgbGlicmFyeSwgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuCiAgIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIuICAgVGhpcyBhbHNvIHBhdmVzIHRoZSB3YXkgZm9yIHNlcGFyYXRpbmcKICAgY29uZmlnLWJhc2VkIGhhbmRsaW5nIG9mIHNldHRpbmcgdXAgdXNlcnMgZnJvbSB0aGUgVVNNIE1JQiBoYW5kbGVyLgoKMjAwNC0wNS0wNCAwMToxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25maWd1cmUgaW5kZW50IHRvIHJlY29nbmlzZSAnc2l6ZV90JyBhcyBhIHR5cGUgbmFtZSAoQnVnICM5NDY5MzkpCgoyMDA0LTA1LTAzIDE1OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFNldCBubyByZXBlYXQtY291bnQgdG8gMSB3aGVuIG5vZ2V0YnVsayBpcyBzcGVjaWZpZWQgZm9yIG1hdGggcHVycG9zZXMuCgoyMDA0LTA1LTAzIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBTb2xhcmlzIENQVV9XQUlUIGxvb2tzIHN0cmFuZ2Ugb24gc29tZSBzZXJ2ZXJzLiBVcGRhdGUgdG8gc2FtZSBhbGdvcml0aCB0b3AgdXNlcwoKMjAwNC0wNC0zMCAxNzowMCAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIE1hbnkgbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgICAtIE5vdyB0YWtlcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBjaGFuZ2luZyBNSUJESVJzIGFuZCBvdXRwdXQgZGlycy4KICAgIC0gYWNjZXB0cyBhIG5vZGVtYXAgdG8gbWFwIE1JQnMgdG8gb3RoZXIgbm9kZXMuCgoyMDA0LTA0LTMwIDE1OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBBZGRlZCBhIHRvdWNoIG9mIGNvbG9yLgoKMjAwNC0wNC0zMCAxNTo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYjJjLmdlbmh0bWwuY29uZgoKMjAwNC0wNC0zMCAxMToxOSAgaGFyZGFrZXIKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBtYWtlaHRtbC5wbDoKCiAgIC0gQSBtYWtlIHJvdXRpbmUgdG8gZ2VuZXJhdGUgYSBIVE1MIGR1bXAgb2Ygb3VyIERpc3RyaWJ1dGVkIE1JQnMuCiAgICAgLSBJbnN0YWxsZWQgYXQgaHR0cDovL3d3dy5OZXQtU05NUC5vcmcvbWlicy8KCjIwMDQtMDQtMjggMTc6MjQgIGhhcmRha2VyCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICB1cGRhdGUgYWZ0ZXIgZXh0cmFjdGlvbgoKMjAwNC0wNC0yOCAxNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtYW55IG1vcmUgdXBkYXRlcyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgbWliMmMgY29tbWFuZHMuCgoyMDA0LTA0LTI4IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gZG9jdW1lbnQgbW9yZSBhbmQgY2xlYW4gdXAgJHZhci5YWFggY29tbWVudHMKCjIwMDQtMDQtMjggMTY6NDcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIE9ubHkgYnVpbGQgdGhlIG1pYjJjLmNvbmYgbWFuIHBhZ2UgaWYgY29taW5nIGZyb20gYSBjdnMgY2hlY2tvdXQKICAgICAtIGF2b2lkcyBwZXJsIGRlcGVuZGVuY2llcyBvbiBlbmQtdXNlciBtYWNoaW5lcy4KCjIwMDQtMDQtMjggMTY6NDUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mLjUsIG1pYjJjLmNvbmYuNS5pbgosIG1pYjJjLmV4dHJhY3QucGw6CgogICBOZXcgZG9jdW1lbnRhdGlvbiBmb3IgaG93IHRvIHdyaXRlIG1pYjJjLmNvbmYgZmlsZXMuCiAgICAgLSBub3RlLCBtdWNoIGlzIGF1dG8tZXh0cmFjdGVkIGZyb20gY29tbWVudHMgaW4gbWliMmMuCgoyMDA0LTA0LTI4IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNvbnN0cnVjdCBjb21tZW50cyBiZXR0ZXIgZm9yIGF1dG8tZXh0cmFjdGlvbiBpbnRvIGEgbWFudWFsIHBhZ2UuCgoyMDA0LTA0LTI4IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBOZXcgbWliMmMuZ2VuaHRtbC5jb25mIGNvZGUgdG8gZ2VuZXJhdGUgYSBIVE1MIGRvY3VtZW50IGZyb20gYSBNSUIKICAgZG9jdW1lbnQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhZC4KCjIwMDQtMDQtMjggMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBuZXcgQHN0YXJ0cGVybEAgLyBAZW5kcGVybEAgZGVmaW5pdGlvbnMgdG8gY29tcGxldGVseSBvdXRzb3VyY2Ugc29tZQogICAgIHRleHQgdG8gYSBsYXJnZSBibG9jayBvZiBwZXJsLgogICAtIGFkZGVkIG1pYjJjX291dHB1dCgpIHRvIG91dHB1dCBhIGxpbmUgb2YgdGV4dCB0byB0aGUgcmlnaHQgcGxhY2UKICAgICBmcm9tIGFueXdoZXJlIGluIHBlcmwgKGV2YWxlZCkgY29kZS4KCjIwMDQtMDQtMjggMTU6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBzdXBwb3J0IHRoZSBhYmlsaXR5IHRvIGdldCBUQyBkZXNjcmlwdGlvbnMgZnJvbSBwZXJsCgoyMDA0LTA0LTI4IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggb3V0cHV0IHRvIHJlc3BlY3QgdGhlIG91dHB1dCBsZW5ndGggcmV0dXJuZWQgYnkgdGhlIHZhcmlhYmxlCiAgIHByaW50aW5nIHJvdXRpbmVzLgoKMjAwNC0wNC0yOCAxNTozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZSB0ZXh0dWFsIGNvbnZlbnRpb24gZGVzY3JpcHRpb24ncwogICAtIEltcGxlbWVudCArY29uc3QgY2hhciAgICAgKmdldF90Y19kZXNjcmlwdGlvbihpbnQgdGNfaW5kZXgpCgoyMDA0LTA0LTI4IDE1OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY2hhbmdlIHZhcmlhYmxlIHRvIGNvbnN0IHZhciB0byBhdm9pZCB3YXJuaW5nLgoKMjAwNC0wNC0yNyAxMTo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggYXV0by1lbmFibGluZyBvZiAtLXdpdGgtcGVybC1tb2R1bGVzIHdoZW4gLS1lbmFibGUtZW1iZWRkZWQtcGVybCBpcyBzZWxlY3RlZAoKMjAwNC0wNC0yNiAwMzoyNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgUmVzdG9yZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiAnY2xvbmVGcm9tJyBhbmQgJ2NyZWF0ZScoK2Nsb25lKQogICBzdWJjb21tYW5kcy4gIEZpeCBoYW5kbGluZyBvZiBiYXJlICdjcmVhdGUnIHN1YmNvbW1hbmQgKHNpbmNlIGFuCiAgIHVuY2xvbmVkIHVzZXIgY2FuJ3QgYmUgbWFya2VkIGFzIEFDVElWRSB3aXRoIHRoZSBOZXQtU05NUCBhZ2VudCkKICAgRG9jdW1lbnQgdGhlIGJlaGF2aW91ciBtb3JlIGNsZWFybHkuCgoyMDA0LTA0LTIzIDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBQcm92aWRlIGFuIEFQSSBmb3IgcmV0cmlldmluZyB0aGUgdGFibGUgY29udGFpbmVyIChvciAndGFibGVfZGF0YScpCiAgIHN0cnVjdHVyZSBmcm9tIHdpdGhpbiBhIGhhbmRsZXIgcm91dGluZS4KICAgVGhpcyBhdm9pZHMgdGhlIG5lZWQgZm9yIHVzaW5nIGdsb2JhbCB2YXJpYWJsZXMuCgoyMDA0LTA0LTIzIDA0OjIwICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvdG9zb2NrMS5zaDoKCiAgIHNjcmlwdCB0aGF0IGNvbnZlcnRzIGJhY2sgdG8gd2luc29jayAxIGxpYnJhcnkuICBubyB1bmRvIGlzIGV4cGxhaW5lZC4KCjIwMDQtMDQtMjIgMTk6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaToKCiAgIGNoYW5nZSBhbGwgREVCVUdUUkFDRSB0byBERUJVR01TVEwoKCJ2ZXJib3NlOmZ1bmN0aW9uX25hbWUiLi4uCgoyMDA0LTA0LTIyIDA3OjEzICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIHBhdGNoIGZyb20gQW5keSBTbWl0aDogWzkzMTY3M10gUnVuIHNubXB0cmFwZCBhcyBhIFdpbmRvd3Mgc2VydmljZTsKICAgc2xpZiBkaWQgdGhlIG1ha2VmaWxlL3Byb2plY3QgZmlsZSB0b3VjaGVzLgoKMjAwNC0wNC0yMiAwNzoxMSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbWF0Y2ggYXBwbGljYXRpb24gbmFtZSB3aXRoIGRpc3BsYXkgbmFtZSB0byBpbXByb3ZlIGV2ZW50IGxvZyBsZWdpYmlsaXR5LgoKMjAwNC0wNC0yMiAwNzowOCAgc2xpZgoKICAgKiB3aW4zMi86IHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZSBpbmNsdWRlIHNlYXJjaCBwYXRoIGZvciBzbm1wbGliIHRvICIuLlwuLiIgW3dhcyBwb2ludGluZyBlbHNld2hlcmVdLgoKMjAwNC0wNC0yMSAxOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICByZW1vdmUgdW51c2VkIHZhcjsgdXBkYXRlIGhlbHAgbWVzc2FnZQoKMjAwNC0wNC0yMSAxOTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC10b3AubTJjCjoKCiAgIHVzZSAjIGluc3RlYWQgb2YgKiBmb3Igc3BlY2lhbCBjaGFyLCBzaW5jZSBwZXJsIGRvZXNuJ3QgbGlrZSB0aGUgKgoKMjAwNC0wNC0yMSAxOTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTIxIDE5OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBmaXggcXVvdGluZyBwcm9ibGVtCgoyMDA0LTA0LTIxIDE5OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUgZm9yIG5vbi1pbmRleCBtYXAgZnVuY3Rpb25zCgoyMDA0LTA0LTIxIDE5OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgZ2V0IHJpZCBvZiBsb29wX2luaXRfY29udGV4dCwgbW92aW5nIGl0J3Mgd29yayBpbnRvIGdldF9maXJzdDsgZml4IHRlc3QKICAgZm9yIGNvZGUgZ2VuIGZvciB0cmFuc2llbnQgZGF0YQoKMjAwNC0wNC0yMSAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICBkb24ndCB1c2UgdWMgZnVuY3Rpb24sIGFzIGl0IGJhcmZzIG9uIGVudW1zIHcvaHlwaGVucwoKMjAwNC0wNC0yMSAwNTo1MyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci86IEFkZDJQYXRoLm5zaSwgU2V0RW5WYXIubnNpLAogICAgIG5ldC1zbm1wLm5zaToKCiAgIGZyb20gQW5keSBTbWl0aDogaW5zdGFsbGVyIGNvbXBvbmVudHMKCjIwMDQtMDQtMjAgMjA6NDggIHNsaWYKCiAgICogaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICBmaXggWzgwNzM0OV0gdWNkLXNubXAvdmVyc2lvbi5oIHRyaWVzIHRvIHVzZSBhIG11dGFibGUgdmFyaWFibGUgWyNkZWZpbmVdCgoyMDA0LTA0LTIwIDIwOjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHVwZGF0ZSBzdGF0dXMsIGNoYW5nZSBidWlsZCBtZW51LCBhbmQgbWFudWFsIGJ1aWxkIGlwdjYgaW5zdHJ1Y3Rpb25zLgoKMjAwNC0wNC0yMCAxODo1NyAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgcGF0Y2gtYnVnLTkxOTQ2NS00IGFwcGxpZWQgdG8gZml4IFs5MTk0NjVdIGJ1ZyBpbiBzeXN0ZW0uYwoKMjAwNC0wNC0yMCAxNzoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQxMTBhZ2VudHhnZXQKLCBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbCwKICAgICBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIFVzZSBuZXcgZ2xvYmFsIFN2M2NvbmZpZyBtYXN0ZXIgcGFyYW0gc2V0dXAKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIzc25tcHYzZ2V0TUQ1QUVTLCBUMDI2c25tcHYzZ2V0U0hBQUVTCjoKCiAgIE5ldyB0ZXN0cyBmb3IgQUVTIHN1cHBvcnQKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTCiwgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVM6CgogICBVc2UgbmV3IGdsb2JhbCBTdjNjb25maWcgbWFzdGVyIHBhcmFtIHNldHVwCgoyMDA0LTA0LTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGRldGVybWluZSB0aGUgYmVzdCBhdXRoL2VuY3IgdHlwZSBhdmFpbGFibGUgYW5kIHVzZSBpdC4KCjIwMDQtMDQtMjAgMTc6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGZvciBkaXNhYmxlZCBzbm1wdjEvMmMgYW5kIG1kNS9kZXMKCjIwMDQtMDQtMjAgMTU6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IHVuYmFsYW5jZWQgaWYvZW5kaWYgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTA0LTIwIDEyOjA5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL2luZXRfbnRvcC5jCiwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBlcnJvcnMgYnVpbGRpbmcgSVB2NiBzdXBwb3J0IGZvciBNU1ZDKyssIE1pbkdXLCBhbmQgQ3lnd2luLgoKMjAwNC0wNC0yMCAwNzoxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggYnJva2VuIHVzYWdlIG9mIHF3KCkKCjIwMDQtMDQtMjAgMDY6MjAgIHNsaWYKCiAgICogd2luMzIvRVhBTVBMRS5jb25mLndpbjMyOgoKICAgYWRkIHNhbXBsZSBjb25maWcgZmlsZQoKMjAwNC0wNC0yMCAwNDozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNDYWNoZS5jLCBuc0RlYnVnLmMsCiAgICAgbnNMb2dnaW5nLmM6CgogICBGaXggaW50L2xvbmcgbWl4dXAgZm9yIDY0LWJpdCBTb2xhcmlzCgoyMDA0LTA0LTIwIDA0OjMzICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXAuYzoKCiAgIEVuc3VyZSBkaWFnbm9zdGljcyB3aXRoIEFTTi4xIGVuY29kaW5nIGVycm9ycwoKMjAwNC0wNC0yMCAwMzo1MSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNsZWFudXAgInJlYWRpbmcgTUlCIGZpbGUiIHZlcmJvc2UgbWVzc2FnZSAoY29tcGlsZWQgTUlCRElSUy9NSUJTIG5vdCB1c2VmdWwvZGlzY2VybmFibGUpLgoKMjAwNC0wNC0yMCAwMjo1MSAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHVuc2lnbmVkIGNvbXBhcmUgb2YgbGVuIHRvIGxpbmVfbGVuIGluIHNwcmludF9yZWFsbG9jX2hleHN0cmluZwoKMjAwNC0wNC0yMCAwMjo0OCAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBhZGRfbWliZGlyIHZhcmlhYmxlICd0b2tlbicgaXMgbm90IHVzZWQgb24gd2luMzIuICBtb3ZlIHRvIHVuZGVyIHRoZSBpZmRlZi4KCjIwMDQtMDQtMTkgMjM6NDAgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgo6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTI4ODcyXSBXaW4zMiBidWlsZC5iYXQgc25tcGNvbmYsbWliMmMsdHJhcHRvZW1haWwKCjIwMDQtMDQtMTkgMjM6MjAgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS1GSVJTVC50eHQsIFJFQURNRS5idWlsZC53aW4zMi50eHQKLCBSRUFETUUudHh0LCBodG1saGVscC9Db25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwKLCBodG1saGVscC9EZXZlbG9wZXIgRkFRLmh0bWwsIGh0bWxoZWxwL0ZBUS5odG1sCiwgaHRtbGhlbHAvSGVscCBDYXZlYXRzLmh0bWwsCiAgICAgaHRtbGhlbHAvSW5zdGFsbGF0aW9uLmh0bWwsIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sCiwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLCBodG1saGVscC9OZXQtU05NUC5oaHAsCiAgICAgaHRtbGhlbHAvbmV0LXNubXAtNC4yLTgwMC5qcGcsCiAgICAgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIHNjcmlwdHMvY3JlYXRlLXRvYwosIHNjcmlwdHMvbWFuZGlyMmh0bWwsIHNjcmlwdHMvcG9kZGlyMmh0bWwsCiAgICAgc2NyaXB0cy9yZWFkbWUyaHRtbCwgc2NyaXB0cy90eHQyaHRtbDoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MzgyMTRdIFdpbjMyIGRpc3QgZm9sZGVyIC0gYnVpbGRpbmcgYSBiaW5hcnkgcmVsZWFzZQoKMjAwNC0wNC0xOSAyMzowNSAgc2xpZgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MTg0MTBdIFNOTVBDT05GIGR5bmFtaWMgcGF0aHMKCjIwMDQtMDQtMTkgMjE6NTIgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBjb25kaXRpb25hbGx5IGNvbXBpbGUgZm9yIHBsYXRmb3JtcyB3aXRoIHN0YXRpYyBvYmplY3QgbGlzdHMgW25vIGNvbmZpZ3VyZV0uCgoyMDA0LTA0LTE5IDIxOjQ5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBuZXRzdGF0Lmg6CgogICByZWR1Y2Ugd2FybmluZ3MgZm9yIHVuZGVjbCdkIHN0cnVjdDsgZGVjbGFyZSBpbmV0NnByaW50IG9ubHkgd2hlcmUgaXQgaXMgbmVlZGVkLgoKMjAwNC0wNC0xOSAyMTo0MSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBkb24ndCBleHBvc2UgZ2V0YWRkcmluZm8gaWYgbm90IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0uCgoyMDA0LTA0LTE5IDIxOjM5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGZpeCB1bnNpZ25lZCBpbnQgY29tcGFyZQoKMjAwNC0wNC0xOSAyMTozOCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICB0cmFkZSBpbiBhIHNpbmdsZSB0eXBlZGVmIHVpbnQ4X3QgZm9yIHRoZSB3aWRlbHkgdXNlZCB1X2NoYXIuCgoyMDA0LTA0LTE5IDIxOjM2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNsZWFudXAgd2hlbiBmaW5pc2hlZCB3aXRoIGFkZHJpbmZvIHN0cnVjdHVyZS4KCjIwMDQtMDQtMTkgMjA6MDkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhZGQgaW5ldF9udG9wLGluZXRfcHRvbiB0byBzbm1wbGliIG9iamVjdHMgZm9yIHdpbjMyIGJ1aWxkcy4KCjIwMDQtMDQtMTkgMjA6MDggIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgbW9yZSByb2J1c3QgY2hhbmdlIGZvciBORVRTTk1QX1VTRV9ETEwuCgoyMDA0LTA0LTE5IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpeCAjaWZkZWYgYnVnCgoyMDA0LTA0LTE5IDE2OjQ3ICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGFkZCBjb21tZW50IGZyb20gTmllbHMgQi4gcmVhc29uIGZvciB3aW4zMiBpZmRlZnMgaW4gYWRkX21pYmRpci4KCjIwMDQtMDQtMTkgMTU6NTcgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIGJ1aWxkLnBsLCBtaWJfbW9kdWxlX2luaXRzLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBzZWxlY3RpdmUgYnVpbGQgb2YgSVB2NiB0cmFuc3BvcnQgZm9yIE1TVkMrKyBidWlsZAoKMjAwNC0wNC0xOSAxNTowOCAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB1c20uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLAogICAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBOZXcgY29uZmlndXJlIGZsYWdzOiAtLWRpc2FibGUtbWQ1IGFuZCAtLWRpc2FibGUtZGVzIHRvIGNvbXBsZXRlbHkgcmVtb3ZlIHN1cHBvcnQgZm9yIHRoZSBsZXNzIHRydXN0ZWQvc2VjdXJlIGFsZ29yaXRobXMKCjIwMDQtMDQtMTkgMTM6MDEgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW92ZSBkZWJ1ZyBzdGF0ZW1lbnQgYWZ0ZXIgdmFyaWFibGUgZGVmaW5pdGlvbi4KCjIwMDQtMDQtMTkgMTI6MzYgIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgdXNlIGEgbW9yZSByb2J1c3Qgc2VhcmNoIGZvciB1bmRlZiBVU0VfT1BFTlNTTC4KCjIwMDQtMDQtMTkgMDg6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL21pYi5jOgoKICAgTW9yZSBmbGV4aWJsZSBvdXRwdXQgb2YgaGV4IHN0cmluZ3MgLSBkb24ndCBoYXJkY29kZSAxNi1vY3RldHMtcGVyLWxpbmUKCjIwMDQtMDQtMTkgMDc6NTggIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICBjb21tZW50IG91dCB2YXJpYWJsZXMgd2hpY2ggYXJlIG5vdCB1c2VkLgoKMjAwNC0wNC0xOSAwNzo1OCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBhbGFybSB0byBhZ2UgYWRkciBjYWNoZSBldmVyeSA1IG1pbjsgYWRkIGRlYnVnIGZvciBhc3AtPnJlcWluZm8KCjIwMDQtMDQtMTkgMDc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlICdzY2hlZCd1bGVkIHRpbWVvdXQgcHJvY2Vzc2luZzsgbW92ZSBhZGRyIGNhY2hlIGFnaW5nIGludG8gYWxhcm07CiAgIGNoYW5nZSBkZWFmdWx0IHRpbWVvdXQgZnJvbSBUSU1FVElDSyB0byBMT05HX01BWAoKMjAwNC0wNC0xOSAwNzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyOyBhZGQgdGltZW91dCBkZWJ1Z2dpbmcKCjIwMDQtMDQtMTkgMDc6MzYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoIFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wNC0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeGVkIGEgdjEvdjJjIGV4Y2x1c2lvbiBidWcKCjIwMDQtMDQtMTYgMTY6NDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT3V0cHV0IG1lc3NhZ2Ugbm93IGNvbnRhaW5zIHZlcnNpb25zIHN1cHBvcnRlZAoKMjAwNC0wNC0xNiAxNjozNyAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldAosIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwKLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssCiAgICAgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAKOgoKICAgTmV3IGZsYWdzIGZvciBjb25maWd1cmU6IC0tZGlzYWJsZS1zbm1wdjEgLS1kaXNhYmxlLXNubXB2MmMKCjIwMDQtMDQtMTYgMTY6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgYW5kIGNvbmZsaWN0aW5nIFZBQ00gZW50cnkuICBJdCdzIGFtYXppbmcgdGhpcyBoYXNuJ3QKICAgY2F1c2VzIGZhbHNlIHByb2JsZW1zIGJlZm9yZSBub3cuCgoyMDA0LTA0LTE2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGFkZHJlc3MgaXNzdWVzIG5vdGVkIGJ5IGRhdmUgb24gY29kZXJzCgoyMDA0LTA0LTE2IDEyOjQyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgbmV3ICdubyBjaGVjaycgZGVidWcgbWFjcm8vZnVuY3Rpb25zCgoyMDA0LTA0LTE1IDE0OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIGhlYWRlciBmb3IgYXJwIGRhdGEgYWNjZXNzCgoyMDA0LTA0LTE1IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFZhcmlhYmxlcyB1c2VkIGZvciByZXR1cm5pbmcgdmFsdWVzIG5lZWQgdG8gYmUgJ3N0YXRpYycuICAgKG9vcHMhKQoKMjAwNC0wNC0xNSAwNTo0NyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIE1vdmUgdGhlIGRlZmluaXRpb24gb2YgJ2lwYWRkcl9yZXR1cm4nIHRvIHRoZSAob25seSkgcm91dGluZSB3aGVyZQogICBpdCdzIGFjdHVhbGx5IHVzZWQuICAoU2VlIEJ1ZyAjOTM0NDIyKQoKMjAwNC0wNC0xNSAwNToyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBSZW1vdmUgZXh0cmFuZW91cyAnOycgaW4gbm90aWZpY2F0aW9uIGdlbmVyYXRpb24gcm91dGluZSAoQnVnICM4OTU4MDApCgoyMDA0LTA0LTE1IDA1OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvZGUgKEJ1ZyAjOTM0NDExKQoKMjAwNC0wNC0xNCAyMTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpeGVkIGN1dC1uLXBhc3RlIHR5cG9zIHBvaW50ZWQgb3V0IHRvIG1lIGJ5IE1pa2UgUy4KCjIwMDQtMDQtMTQgMTc6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICAtIHN1cHBvcnQgbG9jYWwvbWFzdGVyIFNOTVB2MyBrZXkgc2V0dGluZ3MgZGlyZWN0bHkKICAgLSBoYXZlIGdldHRhYmxlKCkgcGFyc2UgaW5kZXhlcyBvdXQgb2YgdGhlIE9JRCB3aGVuIE5ldFNOTVA6Ok9JRCBpcyBhdmFpbGFibGUKICAgICAtIG5vdCBleHRlbnNpdmVseSB0ZXN0ZWQgeWV0LgoKMjAwNC0wNC0xNCAxNTo0MSAgc2xpZgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIFNwZWNpZnkgY29ycmVjdCBkZWZhdWx0IHZhbHVlIGZvciBNSUJESVJTLgoKMjAwNC0wNC0xNCAxNTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgU3VwcG9ydCBmb3IgTGludXggMi42IGluY2wgU29mdElSUSBDUFUgc3RhdGUKCjIwMDQtMDQtMTQgMTU6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIE92ZXJoYXVsIHRvIHJlbW92ZSBmaXhlZCB0YWJsZSBzaXplIGFuZCBzdXBwb3J0IExpbnV4IDIuNiBrZXJuZWwKCjIwMDQtMDQtMTQgMTU6MjEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9zb2xhcmlzMi5jCjoKCiAgIENsZWFuIHVwIGNvbW1lbnRzIG1pc2hhbmRsZWQgbnkgaW5kZW50CgoyMDA0LTA0LTE0IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgdG8gdGhlIGNyZWF0ZVVzZXIgZGlyZWN0aXZlIGZvciBzcGVjaWZ5aW5nIG1hbnVhbCBsb2NhbAogICBvciBtYXN0ZXIga2V5cyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHBhc3N3b3JkIGRlcml2YXRpb25zLgoKMjAwNC0wNC0xNCAxMzoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgbnVsbCBjaGVjayBiZWZvcmUgdXNpbmcgcG9pbnRlcgoKMjAwNC0wNC0xNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMTI6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMDk6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXB2My5jLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIGRpcmVjdGx5IHNwZWNpZnlpbmcgU05NUHYzIGhleCBrZXlzIHVzaW5nIG5ldyBmbGFncyAoLTNbbU1rS10pCgoyMDA0LTA0LTE0IDA4OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSBmb3IgY29uZmlndXJlLmluCgoyMDA0LTA0LTE0IDA4OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW9yZSBkZWJ1Zzsgc2ltcGxpZnkgdHdvIGNvbmZsaWN0IHRlc3RzIGludG8gb25lOyByZXZlcnQgY29uZmxpY3QgbWVzc2FnZXMKICAgYmFjayB0byB3YXJuaW5nLCBidXQgYWRkIG9ibm94aW91cyB3YXJuaW5nIHRvIHN1bW1hcnkgY2FjaGUKCjIwMDQtMDQtMTQgMDM6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBBIG5vbi16ZXJvIHJlcGVhdCBjb3VudCB3aXRoIG5vIG5vbi1yZXBlYXRpbmcgdmFyYmluZHMgY29uZnVzZXMgdGhlCiAgIHBlcmwgJ2J1bGt3YWxrJyByb3V0aW5lLiAgIFRoaXMgc2hvdWxkIHJlYWxseSBiZSBmaXhlZCBwcm9wZXJseSwKICAgYnV0IHRoaXMgYXQgbGVhc3QgYWxsb3dzIHRoZSByZXN0IG9mIHRoZSB0ZXN0cyB0byBydW4gc3VjY2Vzc2Z1bGx5LgoKMjAwNC0wNC0xNCAwMzoxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFN1cHBvcnQgcGVyLWxvZ2hhbmRsZXIgc2h1dGRvd24gcHJvY2Vzc2luZyBpbiAnc25tcF9kaXNhYmxlX2xvZycuCiAgIFRoaXMgc2hvdWxkIGFsbG93IGxvZ2ZpbGVzIHRvIGJlIHJvdGF0ZWQgcHJvcGVybHkuCgogICBIb3dldmVyLCBJJ20gbm90IGNvbnZpbmNlZCB0aGF0IHRoZSAnZW5hYmxlZCcgZmxhZyBpcyBiZWluZyB1c2VkCiAgIGNvbnNpc3RlbnRseSwgcGFydGljdWxhcmx5IGJ5IG90aGVyIHN0eWxlcyBvZiBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIFNvbWUgY2xlYW51cCB3b3JrIGlzIHByb2JhYmx5IG5lZWRlZC4KCjIwMDQtMDQtMTQgMDM6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgU3VwcG9ydCAiMDE6MDI6MDM6MDQ6MDU6MDYiIHN0eWxlIGhleCBvdXRwdXQgLSBpLmUuIGxlYWRpbmcgMCdzCiAgIG9uIHNpbmdsZS1kaWdpdCBoZXggdmFsdWVzLiAgKFN1Z2dlc3RlZCBieSBHbGVubiBBbmRyZXdzKQoKMjAwNC0wNC0xNCAwMzowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jOgoKICAgSWRlbnRpZnkgd2hpY2ggTUlCIG1vZHVsZXMgYXJlIHByZXNlbnQgaW4gdGhlIE1JQkZJTEVTIGxpc3QgYmVmb3JlCiAgIHN0YXJ0aW5nIHRvIGxvYWQgYW55dGhpbmcuICAgVGhpcyBhbGxvd3MgSU1QT1JUIHN0YXRlbWVudHMgdG8gd29yawogICBjb3JyZWN0bHksIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIGluIHdoaWNoIHN1Y2ggZmlsZXMgYXBwZWFyLgoKMjAwNC0wNC0xNCAwMjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgYnNkLmgsIGN5Z3dpbi5oCiwgZHluaXguaCwgaXJpeC5oLCBtaW5ndzMyLmgsIG9zZjUuaAosIHN1bm9zLmgsIHN2cjUuaCwgc3lzdi5oLCB1bHRyaXg0LmgKOgoKICAgSW5jbHVkZSAiZ2VuZXJpYy5oIiB1c2luZyB0aGUgZnVsbCBuYW1lLCByYXRoZXIgdGhhbgogICByZWx5aW5nIG9uIHRoZSBpbmNsdWRlIHBhdGggYmVpbmcgc2V0IGNvcnJlY3RseS4KICAgKFN1Z2dlc3RlZCBieSBOYWdhcmFqIE5hcmF5YW5hc3dhbXkpCgoyMDA0LTA0LTE0IDAyOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgQ2F0Y2ggU05NUHYyIGV4Y2VwdGlvbiB2YWx1ZXMuCgoyMDA0LTA0LTE0IDAyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQXZvaWQgY3Jhc2hpbmcgdGhlIGFnZW50IHdoZW4gYmFja2luZyBvdXQgb2YgYW4gaW52YWxpZCBTRVQgcmVxdWVzdC4KCjIwMDQtMDQtMTQgMDI6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEFsbG93ICdtb25pdG9yJyBkaXJlY3RpdmVzIHRvIHNwZWNpZnkgYSBzaW5nbGUgaW5zdGFuY2UgcmF0aGVyIHRoYW4KICAgYWx3YXlzIG1vbml0b3JpbmcgYWxsIHJvd3MuCgoyMDA0LTA0LTE0IDAyOjI4ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGUgbGlzdCBvZiBzdXBwb3J0ZWQgTUlCcywgYWR2aWNlIG9uIHJ1bm5pbmcgYXMgbm9uLXJvb3QKICAgYW5kIGJyaW5nIGludG8gbGluZSB3aXRoIDUuMS54IGJyYW5jaCB2ZXJzaW9uLgoKMjAwNC0wNC0xMyAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICB0d2VhayBhc3NlcnQgY29uZGl0aW9uIHRvIGFsbG93IGZvciB2YWxpZCBidXQgZXhwaXJlZCBjYWNoZQoKMjAwNC0wNC0xMyAxMzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIGZpeCBjb21tZW50IHR5cG8KCjIwMDQtMDQtMTMgMTI6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi5oLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9kZWZhdWx0LXRhYmxlLWluZXROZXRUb01lZGlhVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgbmV3IGluZXROZXRUb01lZGlhVGFibGUKCjIwMDQtMDQtMTMgMTI6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBhcnAuaCwgYXJwX2NvbW1vbi5jCiwgYXJwX2xpbnV4LmMsIGlwYWRkcmVzc19pb2N0bC5oOgoKICAgbmV3IGZpbGVzCgoyMDA0LTA0LTEzIDExOjQ0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTEzIDExOjQzICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgcm91dGUgZW50cmllcwoKMjAwNC0wNC0xMyAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgaW50ZXJmYWNlIGVudHJpZXMKCjIwMDQtMDQtMTMgMTE6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgZGVmYXVsdCBhZG1pbi9vcGVyIHN0YXR1cyB0byB1cAoKMjAwNC0wNC0xMyAxMTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGludmVydCBvcmRlciBmb3IgY2FjaGUgcmVmcmVzaDsgc2V0IG5ldyBwcmVsb2FkIGZsYWcgb24gY2FjaGUgdG8gaW5pdCBpZkluZGV4CiAgIGVudW0gbGlzdCAodXNlZCBieSBvdGhlciBtb2R1bGVzKTsgc2V0IG9wZXJfc3RhdHVzIGRvd24gaWYgaW50ZXJmYWNlIHZhbmlzaGVzOwogICBtb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBjb21wYXJpbmcvc3dpcGluZyBwb2ludGVycwoKMjAwNC0wNC0xMyAxMTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmg6CgogICByZW1vdmUgdW51c2VkIG1hcHBpbmcgZGVmaW5lcwoKMjAwNC0wNC0xMyAxMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgbWFwcGluZyBmdW5jdGlvbnMKCjIwMDQtMDQtMTMgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICByZXZlcnQgZXh0ZXJuYWwgZGVmaW50aW9uIGNoYW5nZQoKMjAwNC0wNC0xMyAxMToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgaXBhZGRyZXNzX2VudHJ5CgoyMDA0LTA0LTEzIDExOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGlwYWRkcmVzc19pb2N0bC5jLCBpcGFkZHJlc3NfbGludXguYzoKCiAgIHR3ZWFrIGludGVybmFsIGluZGV4IHVzYWdlOyB1c2UgbmV0LXNubXAgaWZJbmRleCBiYXNlZCBvbiBuYW1lIGluc3RlYWQgb2YgaW9jdGwKICAgaWZfaW5kZXg7IGFkZC90d2VhayBjb21tZW50cwoKMjAwNC0wNC0xMyAxMToyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgbmV3IGZsYWcgZm9yIHByZWxvYWRpbmcgY2FjaGU7IG1vdmUgY2FjaGUgbG9hZC9mcmVlIHRvIHN0YXRpYyBzdWJyb3V0aW5lcyBmb3IKICAgY29kZSByZXVzZTsgYWRkIHNvbWUgZGVidWcgbXNncwoKMjAwNC0wNC0xMyAxMToxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgZGVmaW5lcyBmb3IgYWRtaW4vb3BlciBzdGF0dXMgZW51bXMKCjIwMDQtMDQtMTMgMTA6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBlbnRyaWVzIGZvciBoYXZlX21rdGltZSBuYWQgaGF2ZV9zdGltZQoKMjAwNC0wNC0xMyAxMDozMSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdmVyc2lvbiBjaGFuZ2UuCgoyMDA0LTA0LTEwIDA1OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENsb25pbmcgYSB1c2VyIHJlcXVpcmVzIHVzaW5nIHRoZSB1c21Vc2VyU3RhdHVzIGNvbHVtbiBvYmplY3QuCgoyMDA0LTA0LTEwIDA1OjU3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZW50cnkgZnJvbSBsaXN0IG9mIGRlZmF1bHQgTUlCIG1vZHVsZXMuCgoyMDA0LTA0LTA5IDE4OjUwICBzbGlmCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCB0d28gU05NUF9GUkVFIGNhbmRpZGF0ZXMgaW4gdGRvbWFpbl91bnJlZ2lzdGVyLCBjbGVhcl90ZG9tYWluX2xpc3QuCgoyMDA0LTA0LTA5IDE4OjQ3ICBzbGlmCgogICAqIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBmaXggYSBzaWduIGNvbXBhcmUgd2FybmluZy4KCjIwMDQtMDQtMDkgMTg6MzcgIHNsaWYKCiAgICogd2luMzIvOiBsaWJzbm1wL01ha2VmaWxlLmluLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgSVB2NiB0cmFuc3BvcnRzIHRvIG1zdmMrKyBidWlsZHMuCgoyMDA0LTA0LTA5IDE4OjI3ICBzbGlmCgogICAqIHBlcmwvU05NUC90L2dldC50OgoKICAgZG9uJ3QgcmVxdWlyZSBpbnRlcmZhY2UgbGF5ZXIgb2YgYWdlbnQgaW4gb3JkZXIgdG8gcGFzcyB0aGVzZSB0ZXN0cy4KCjIwMDQtMDQtMDkgMTg6MjQgIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgdW5kbyBsYXN0IGNoYW5nZSB0byByZXN0b3JlIHByb3BlciBjb25zdHJ1Y3Rpb24gb2YgUGVybCBtb2R1bGVzLgoKMjAwNC0wNC0wOCAyMToxMSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBtYXRjaCBzbm1wc2V0IG91dHB1dCB0byBmaXggYnVnIFs5MTkyNjddIHRlc3RudW0gMzQgVDEyMnByb3h5c2V0ZmFpbCBmYWlsaW5nCgoyMDA0LTA0LTA4IDIwOjI1ICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBjaGFuZ2UgdXNhZ2UgY29tbWVudCBmb3IgIi1YTSIgdG8gbWF0Y2ggaXRzIGZ1bmN0aW9uCgoyMDA0LTA0LTA4IDIwOjE5ICBzbGlmCgogICAqIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIGRvIG5vdCBidWlsZCBzbm1wdHJhcGQub2JqIGFzIHBhcnQgb2YgbmV0c25tcHRyYXBkIGxpYnJhcnkgKE1TVkMrKyBidWlsZCkuCgoyMDA0LTA0LTA4IDIwOjE3ICBzbGlmCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvOiBNYWtlZmlsZS5pbiwgbGliaGVscGVycy5kc3A6CgogICBhZGQgdGFibGVfY29udGFpbmVyLm9iaiB0byBsaXN0IG9mIG9iamVjdHMgdG8gYmUgYnVpbHQgdXNpbmcgTVNWQysrCgoyMDA0LTA0LTA4IDIwOjEyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazogWyA5MTg5NDggXSBmaXggY3lnd2luIGNvbmZpZyBwcm9ibGVtCgoyMDA0LTA0LTA4IDIwOjA3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBhcHBseSBuYmEncyBGZWIuMjAwNCBwdXR1dGxpbmUgZml4ZXMgdG8gbWFpbiBicmFuY2guCgoyMDA0LTA0LTA4IDE1OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBVc2UgLUxmIGFuZCAtTGYgaW4gdGhlIG1haW4gdHJ1bmsgdG8gbWF0Y2ggdGhlIHByb3BlciBjb2RlIHVzZQoKMjAwNC0wNC0wOCAxMzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFN1cHBvcnQgZm9yIHRoZSAtcncgZmxhZyB0byB0aGUgb3ZlcnJpZGUgdG9rZW4gYWxsb3dpbmcgcmVhZC93cml0ZQogICBhY2Nlc3MgdG8gdGhlIGJvZ3VzIG1pYiBvYmplY3RzLgoKMjAwNC0wNC0wOCAxMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGVudW0gbGlzdHMgZm9yIHVuc2lnbmVkIGFuZCBiaXQgc3RyaW5ncyB0byByZW1vdmUgZHVwbGljYXRlIHR5cGVzCgoyMDA0LTA0LTA3IDE5OjUwICBzbGlmCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVEVTVENPTkYuc2g6CgogICBwYXRjaCBbOTE3NjQ2XSB0ZXN0IHVzaW5nIGluc3RhbGxlZCBNSUJzIGZpcnN0CgoyMDA0LTA0LTA3IDE1OjU3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWcuaW4KCjIwMDQtMDQtMDcgMTU6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbG90cyBvZiBkZWJ1ZyB0byBtb2R1bGUgcHJvY2Vzc2luZzsgdXNlIG5ldyB2YXIgZm9yIGV4Y2x1ZGVkIG1vZHVsZXM7IG1ha2UKICAgY29uZmxpY3RzIGVycm9ycyBpbnN0ZWFkIG9mIHdhcm5pbmdzOyBkb24ndCB0cnkgdG8gcmUtcHJvY2VzcyBhIHNyYyBvbmx5IG1vZHVsZQoKMjAwNC0wNC0wNyAxNTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIHR5cG8gaW4gY29tbWVudHMKCjIwMDQtMDQtMDcgMTU6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IGdlbiByZWxlYXNlIHVuZG8gY29kZSBpZiBzZXR0YWJsZQoKMjAwNC0wNC0wNyAxNTo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHR3ZWFrIGNvbW1lbnRzCgoyMDA0LTA0LTA3IDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmU6CgogICBmaWxlcyB0byBpZ25vcmUKCjIwMDQtMDQtMDcgMTU6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgdW51c2VkL3VuZGVmaW5lZCB2YXJzCgoyMDA0LTA0LTA3IDE1OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaDoKCiAgIGZpeCBjb25maWdfcmVxdWlyZSBwYXRocwoKMjAwNC0wNC0wNyAxNTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIGNvbmZpZ19leGNsdWRlIG1pYklJL2ludGVyZmFjZXM7IHR3ZWFrIGV4dGVybmFsIG9pZCBkZWYKCjIwMDQtMDQtMDcgMTU6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gaWZUYWJsZQoKMjAwNC0wNC0wNyAxNTozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlOgoKICAgZmlsZXMgdG8gaWdub3JlCgoyMDA0LTA0LTA3IDE1OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzoKICAgICBkZWZhdWx0LXRhYmxlLWlwQWRkcmVzc1RhYmxlLm0yZCwgaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICBuZXcgTUZEIGlwQWRkcmVzc1RhYmxlCgoyMDA0LTA0LTA3IDE1OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIGlwYWRkcmVzcyBkYXRhIGFjY2VzcyAodjQgJiB2NikKCjIwMDQtMDQtMDcgMTU6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi5oLCBpcC1taWIvaXBBZGRyZXNzVGFibGUuaDoKCiAgIG5ldyBjb25maWcgbW9kdWxlcwoKMjAwNC0wNC0wNyAwNjozOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIHRyYWlsaW5nIGNvbW1hIChidWcgIzkzMDcwOCkKCjIwMDQtMDQtMDcgMDM6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUm91dGluZXMgdG8gaW5kaWNhdGUgdGhlIG51bWJlciBvZiByb3dzIGluIGEgZGF0YS1oZWxwZXItYmFzZWQgdGFibGUKCjIwMDQtMDQtMDcgMDI6MTMgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ0FQVFVSRSByZXR1cm5zIGV4aXQgY29kZSBmcm9tIGNvbW1hbmQgdGhhdCB3YXMgcnVuLgoKMjAwNC0wNC0wNiAyMzozMyAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBwYXRjaCBbOTMwODgwXSBkb24ndCBidWlsZCBDTVUgY29tcGF0aWJsZSBmdW5jdGlvbnMgb24gd2luMzIKCjIwMDQtMDQtMDYgMjM6MTkgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9saWJzZGxsLmRzdwosIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJzZGsuZHN3LAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwKICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCjoKCiAgIHBhdGNoIFs5MTU2MTVdIFBlcmwgVHJhcFJlY2VpdmVyIGRvZXMgbm90IGNvbXBpbGUgb24gV2luMzIgTVNWQwogICBhbHNvIGZpeGVzIGJ1ZyBbODk2MDEyXSB3aW4zMiBQZXJsIGJ1aWxkIGRpZXMgYXQgVHJhcFJlY2VpdmVyCgoyMDA0LTA0LTA2IDIxOjU5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIGZpeCBbOTA3NzE2XSB3aW4zMiBhZ2VudCBzaG93cyB0Y3AsdWRwIGNvbm5lY3QgT0lEcyBpbiBob3N0IGJ5dGUgb3JkZXIKCjIwMDQtMDQtMDYgMTc6MzUgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTEyMl0gdGVzdCBzaG91bGQgYWxsb3cgdGltZSBmb3IgcHJvZ3JhbXMgdG8gc2V0dGxlCgoyMDA0LTA0LTA2IDE3OjM0ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMTRdIHByZXNlcnZlIHRlc3QgcmVzdWx0IHdoZW4gc3RvcHBpbmcKCjIwMDQtMDQtMDYgMTc6MzIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTEwNV0gYmV0dGVyIHBpZCBjaGVjawoKMjAwNC0wNC0wNiAxMDo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgc3RkaW50LCBpZiBhdmFpbGFibGUKCjIwMDQtMDQtMDYgMDk6NDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIFJlZ2lzdGVyIG5ldyBBUEkgbW9kdWxlcyB1c2luZyB0aGUgZGVmYXVsdCBwcmlvcml0eSAoMTI3KQogICBhbmQgcHJvdmlkZSBhbiBBUEkgZm9yIHVucmVnaXN0ZXJpbmcgdGhlbSBhZ2Fpbi4KCjIwMDQtMDQtMDUgMTY6MDQgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmV2ZXJzZSBwYXRjaC10ZXN0LWRlcHJlY2F0ZWQtb3B0aW9ucyB0byBwZXJtaXQgdGVzdGluZyB2ZXJzaW9ucyBiZWZvcmUgNS4xLgoKMjAwNC0wNC0wNCAxMToxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgZG9uJ3Qgc2hhcmUgY2FjaGUgdy9pbmV0Q2lkclJvdXRlLCB3aGljaCBjYW4ndCB3b3JrLCBzaW5jZSBpbmRleGVzIGRvbid0IG1hdGNoCgoyMDA0LTA0LTA0IDExOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuaCwKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHNoYXJlIGRhdGEgc3RydWN0dXJlcy9jYWNoZSB3L2lmVGFibGUgaWYgZW5hYmxlZAoKMjAwNC0wNC0wNCAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGRlZmF1bHQtdGFibGUtaWZYVGFibGUubTJkCiwgaWZYVGFibGUuYywgaWZYVGFibGUuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIHRvIHVzZSBuZXcgaW50ZXJmYWNlIGRhdGEgYWNjZXNzCgoyMDA0LTA0LTA0IDEwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICB1cGRhdGUgdG8gc3VwcG9ydCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDQtMDQtMDQgMTA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi5oOgoKICAgYWRkIGluZXRDaWRyUm91dGVUYWJsZQoKMjAwNC0wNC0wNCAxMDo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oLCAuY3ZzaWdub3JlLAogICAgIGRlZmF1bHQtdGFibGUtaW5ldENpZHJSb3V0ZVRhYmxlLm0yZDoKCiAgIG5ldyBpbmV0Q2lkclJvdXRlVGFibGUuIG9ubHkgZG9lcyBpcHY0IHNvIGZhci4KCjIwMDQtMDQtMDQgMDc6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHNoYXJlIGNhY2hlIHcvaW5ldENpZHJSb3V0ZVRhYmxlLCBpZiBpdCBpcyBlbmFibGVkCgoyMDA0LTA0LTA0IDA3OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgdXNlIHVudXNlZCB2YXIKCjIwMDQtMDQtMDQgMDc6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggbWlzc2VkIGNhc2UgZm9yIGFsbG9jYXRlIHBhcm07IHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTA0IDA3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgZml4IG1pc3NlZCBjYXNlIGZvciBhbGxvY2F0ZSBwYXJtCgoyMDA0LTA0LTA0IDA3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGFkZCBkZWJ1ZwoKMjAwNC0wNC0wMyAwNToxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgZml4IGJ1ZyA5Mjg0ODEgLSBjb25zaXN0ZW5jeSBpbiB2YWNtX3ZhcnMuYwoKMjAwNC0wNC0wMiAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgY29uZmlndXJlX3JlcXVpcmUgZmlsZXMgZm9yIGluZGl2aWR1YWwgbW9kdWxlcwoKMjAwNC0wNC0wMiAxMjo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBkZWZhdWx0IHRvIG5ldHNubXBfaW5kZXggY29tcGFyZSBpZiBubyBjb21wYXJlIHByb3ZpZGVkCgoyMDA0LTA0LTAyIDEyOjUxICByc3RvcnkKCiAgICogc25tcGxpYi86IGNtdV9jb21wYXQuYywgc25tcF92ZXJzaW9uLmM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA0LTA0LTAyIDEyOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgbmV3IHN0YXRpYyBsb2NrIHZhciB0byBkZXRlY3Qgd2hlbiBhIGNhbGxiYWNrIGlzIGFkZGVkL3JlbW92ZWQgZHVyaW5nIGNhbGxiYWNrCiAgIHByb2Nlc3Npbmc7IGRvbid0IGNhbGwgZnJlZSBvbiBjbGllbnQgYXJnIG9mIGNhbGxiYWNrIHcvTlVMTCBjYWxsYmFjayBwdHIKICAgKGkuZS4gb25lIHRoYXQgd2FzIHJlbW92ZWQgd2hpbGUgY2FsbGJhY2tzIHdlcmUgYmVpbmcgcHJvY2Vzc2VkKQoKMjAwNC0wNC0wMiAxMjozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIG1ha2UgdGVtcCBkaXIgbmFtZXMgY29uZmlndXJlYWJsZSwgdy9kZWZhdWx0cyBub3cgcHJlZml4ZWQgdy8nLic7IHR3ZWFrIGRpZmYKICAgZXhjbHVkZSBwYXR0ZXJuczsgb3RoZXIgbWlzYyB0d2Vha3MKCjIwMDQtMDQtMDIgMTI6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIGZpeCBtYWNyb3MgdG8gYmUgc2FmZWx5IHVzZWFibGUgYXMgYSBzaW5nbGUgc3RhdGVtZW50OyBuZXcgU05NUF9TV0lQRV9NRU0gbWFjcm8KCjIwMDQtMDQtMDIgMDg6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbmV3IGNvbmZpZy5oLmluIHRvIG1hdGNoIGFjY29uZmlnLmggKGF1dG9oZWFkZXIgaGFkbid0IGJlZW4gcnVuIGluIGEgd2hpbGUpOgogICAgICBwY2tzLCBjcm9wdHlraSwgY29uZmlnX2V4Y2x1ZGUsIGFnZW50eCBkb21haW4gc29ja2V0LCBjcHB3cmFwIG1hY3JvCgoyMDA0LTA0LTAyIDA4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICByZWR1Y2UgcmVkdW5kYW5jeQoKMjAwNC0wNC0wMiAwODowMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGFkZCBhc3NlcnRzIG9uIGlsbGVnYWwgaGFuZGxlciBjYWxscwoKMjAwNC0wNC0wMiAwNjo0NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeCBpbmNsdXNpb24gb2YgdXRpbGl0aWVzL2V4ZWN1dGUuaCwgc2luY2UgUm9iZXJ0J3MgTWFrZWZpbGUgY2hhbmdlcwogICBicm9rZSB0aGUgcGF0aCBsb29rdXBzLgoKMjAwNC0wNC0wMSAyMjowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtYWtlIGdldHRhYmxlIHVzZSBnZXRidWxrIHdoZW4gcG9zc2libGUKCjIwMDQtMDQtMDEgMTk6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDQtMDEgMTk6MzIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1vdmUgVlBBVEggdG8gaW5kaXZpZHVhbCBNYWtlZmlsZS5pbiBmaWxlczsgbmV3IG1ha2VmaWxlY2hlY2sgdGFyZ2V0IHRvIGNoZWNrCiAgIGZvciBnbnUgbWFrZSBjb25zdHJ1Y3RzOyBuZXcgJ2NoZWNrcycgdGFyZ2V0IHJ1bnMgY2hlY2tzIGZvciBjb21tZW50L21ha2VmaWxlCgoyMDA0LTA0LTAxIDE5OjI5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGVtcHR5IGRlZmluZSBmb3IgY29uZmlnX2V4Y2x1ZGU7IG5ldyBORVRTTk1QX0NQUF9XUkFQIG1hY3JvcwoKMjAwNC0wNC0wMSAxOToyNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG5ldyBjb25maWdfZXhjbHVkZTsgY29uZmlnX3JlcXVpcmUgdHdlYWtzOgogICAgICAgZG9uJ3QgcHJvY2VzcyB0aGUgc2FtZSBtb2R1bGUgdHdpY2U7IGFsbG93IGMgZmlsZSB3L25vIGhlYWRlcjsgbW92ZQogICAgICAgbW9kdWxlIGxpc3QgYWRkLCBjb25maWdfbG9hZF9taWIgY2hlY2sgaW5zaWRlIGhlYWRlciBjb25kaXRpb25hbAoKMjAwNC0wNC0wMSAxODozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIG5ldyBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCgoyMDA0LTA0LTAxIDE4OjM3ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbiwKICAgICBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHJld29yayBWUEFUSCBzbyBwZW9wbGUgd2l0aCBHTlUgbWFrZSBjYW4gc2hhcmUgYSBzb3VyY2UgZGlyZWN0b3J5IGZvciBtdWx0aXBsZQogICBidWlsZCAoaW5jbHVkaW5nIG9uZSBpbiB0aGUgc291cmNlIGRpcmVjdG9yeSk7IGNvbXBsZXRlbHkgcmV3b3JrIENQUEZMQUdTIGZvciBhCiAgIGNvbW1vbiwgY29uc2lzdGVudCBvcmRlciAodGhhdCBpcyBhbHNvIGNvcnJlY3QgZm9yIG5vbiBzb3VyY2VkaXIgYnVpbGRzKQoKMjAwNC0wNC0wMSAxODoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIG5ldyBmaWxlCgoyMDA0LTA0LTAxIDE4OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgZGVmYXVsdC10YWJsZS1pcENpZHJSb3V0ZVRhYmxlLm0yZCwgaXBDaWRyUm91dGVUYWJsZS5jCiwgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICB1cGRhdGUgZm9yIG1mZCBnZW5lcmF0ZWQgY29kZSBjaGFuZ2VzOyB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZjsKCjIwMDQtMDQtMDEgMTg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZjsgYWRkIHRvZG8gY29tbWVudHMKCjIwMDQtMDQtMDEgMTg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlCiwgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmU6CgogICBuZXcgY3ZzaW5nb3JlIGZpbGVzCgoyMDA0LTA0LTAxIDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmg6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZgoKMjAwNC0wNC0wMSAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIG5ldyBkYXRhIGFjY2VzcyBmaWxlcwoKMjAwNC0wNC0wMSAxODowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwgcm91dGUuaDoKCiAgIG1vdmUgY29uZmlnX3JlcXVpcmUgc3R1ZmYgYmFjayBpbnRvIG1pYmdyb3VwLCBzaW5jZSB0aGF0J3MgdGhlIG9ubHkgcGxhY2UKICAgY29uZmlndXJlIHdpbGwgbG9vayBmb3IgdGhlbQoKMjAwNC0wNC0wMSAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2xvaWQgc2V0dGluZyAod2FzIGRvbmUgYWJvdmUgYXMgd2VsbCkKCjIwMDQtMDQtMDEgMTY6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEFub3RoZXIgaXRlcmF0b3IgZml4OiBpbml0aWFsaXplIGEgdmFyaWFibGUgcHJvcGVybHkgZm9yIGV2ZXJ5IHJlcXVlc3QKCjIwMDQtMDQtMDEgMTY6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsIHJvdXRlLmg6CgogICBuZXcgZGF0YSBhY2Nlc3MgaGVhZGVycwoKMjAwNC0wNC0wMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQW5vdGhlciBpdGVyYXRvciBwcm9ibGVtIHdpdGggZ2V0YnVsaydzOiBtYWtlIGl0IG5vdCBzZXQgUkVUUlkgaWYgaXRzIGdvaW5nIHRvIGJlIG91dCBvZiBzY29wZSBuZXh0IHRpbWUgYXJvdW5kIHN0aWxsICg+IG1heGNvbCkKCjIwMDQtMDQtMDEgMDk6MTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gVmFyaW91cyBwYXRjaGVzIHRvIGZpeCBpdGVyYXRvciBwcm9ibGVtcyB3aXRoIG11bHRpcGxlIHZhcmJpbmRzLgoKMjAwNC0wMy0zMSAxMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBQcm9wZXJseSBzZXQgdGhlIGF1dG9fbmV4dCBmbGFnLgoKMjAwNC0wMy0zMCAyMToyMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBBIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBnZXR0YWJsZSB0aGF0IHVzZXMgYmV0dGVyIHN0cnVjdHVyZWQgR0VUTkVYVAogICBwYWNrZXRzIGZvciBmYXN0ZXIgcmV0cmlldmFsIGFjcm9zcyBzbG93IGxpbmtzLgogICAgIC0gZ2V0YnVsayBub3QgeWV0IHVzZWQsIGJ1dCBzaG91bGQgYmUuCgoyMDA0LTAzLTMwIDIxOjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgLSBtaW5vciBjaGFuZ2VzIHRvIHRoZSBjdnMyY2wgY29tbWFuZCBsaW5lIGZsYWdzCgoyMDA0LTAzLTMwIDIxOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3lzdGVtLmMsIGhyX3N5c3RlbS5oOgoKICAgY2hhbmdlIHNldF9zb2xhcmlzX3RpbWUgdG8gbnNfc2V0X3RpbWUgYW5kIGVuYWJsZSBpdCBvbiBhbnkKICAgYXJjaGl0ZWN0dXJlIHRoYXQgc3VwcG9ydHMgbWt0aW1lKCkgYW5kIHN0aW1lKCkKCjIwMDQtMDMtMzAgMjE6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIHN0aW1lIGZ1bmN0aW9ucwoKMjAwNC0wMy0zMCAyMToxNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gdW5kZWYgc3NpemVfdAoKMjAwNC0wMy0zMCAxNzowNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBhbmQgdW51c2VkIHZhcmlhYmxlcy4gZmxhZyBzdGF0aWMgdmFyaWFibGUgYXMgcHJvYmxlbSBmb3IgdGhyZWFkcy4KCjIwMDQtMDMtMzAgMTY6NTYgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBtaWxkbHkgZW5mb3JjZSBydW5uaW5nIGZyb20gYmFzZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAwNC0wMy0zMCAxNjo1MyAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmg6CgogICBpbml0IGV4YW1wbGVzIG1vZHVsZXMKCjIwMDQtMDMtMzAgMTA6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgaW5jbHVkZSBwcmV2aW91c2x5LWJyb2tlbiB0ZXN0cyBhZ2FpbgoKMjAwNC0wMy0zMCAxMDo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggYSByZWFsbHkgb2xkIGFuZCBhbm5veWluZyBidWc6IHVzZSBzZXRfYm9vbGVhbiBpbnN0ZWFkIG9mIHRvZ2dsZV9ib29sZWFuIGZvciB0ZWxsaW5nIHRoZSBsaWJyYXJ5IHdoZW4gdG8gcmVwbGFjZSBvbGQgTUlCcyB3aGlsZSBwYXJzaW5nLiAgQWZmZWN0ZWQgYSBidW5jaCBvZiBzdHVmZiBpbiBvZGQgd2F5cy4KCjIwMDQtMDMtMzAgMDU6MDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTmV3IGxvZ2dpbmcgb3B0aW9uICctTG4nIHRvIGV4cGxpY2l0bHkgdHVybiBvZmYgbG9nZ2luZwoKMjAwNC0wMy0yOSAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliLmgsIGlwLWZvcndhcmQtbWliLmg6CgogICBjb25maWctcmVxdWlyZSBoZWFkZXJzCgoyMDA0LTAzLTI5IDIwOjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9kZWZhdWx0LXRhYmxlLWlmVGFibGUubTJkLAogICAgIGlmVGFibGUvaWZUYWJsZS5jLCBpZlRhYmxlL2lmVGFibGUuaCwKICAgICBpZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgKLCBpZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZS5jLCBpZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIG5ldyBpbXBsZW1lbnRhdGlvbnMgb2YgaWZUYWJsZSBhbmQgaWZYVGFibGUsIGJhc2VkIG9uIGdlbmVyYXRlZCBjb2RlIGZyb20KICAgbWliMmMgTUZEICsgY29udGFpbmVyLWNhY2hlZCBjb25mIGZpbGVzCgoyMDA0LTAzLTI5IDE2OjI4ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZml4IHNwZWxsIEFja25vd2xlZGdlbWVudHMsIGFkZCBibGFuayBiZWZvcmUgPWN1dCBzbyB0aGF0IGl0IHdpbGwgYmUgcGFyc2VkIGNvcnJlY3RseS4KCjIwMDQtMDMtMjkgMTU6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgdW51c2VkIHZhcnMKCjIwMDQtMDMtMjkgMTU6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdHdlYWsgY29tbWVudAoKMjAwNC0wMy0yOSAxNTozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgc2xpZ2h0IHJlLW9yZzsgaW5jbHVkZSAoY29tbWVudGVkIG91dCkgZ251IG1ha2Ugc3R1ZmYKCjIwMDQtMDMtMjkgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKTsgdXNlIHVudXNlZCB2YXJzOyBhbGxvdyB1c2VyIHRvIHBhc3MgZXhpc3RpbmcgZGF0YQogICBwdHIgd2hlbiBjcmVhdGluZyByb3cgY29udGV4dDsgc2V0IHZhbF9sZW4gdG8gYnVmIHNpemUgaWZmIG5vdCBhbHJlYWR5IHNldAoKMjAwNC0wMy0yOSAxNTozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1kYXRhLWdldC5tMmMKOgoKICAgbW92ZSB0YWJsZSBpbmRleCBmdW5jdGlvbnMgdG8gZGF0YS1nZXQ7IGluY2x1ZGUgZGF0YV9hY2Nlc3MgaGVhZGVyCgoyMDA0LTAzLTI5IDE1OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpOyB0d2VhayBtMmNfcHJvY2VzaW5nIHR5cGU7IHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTAzLTI5IDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYzoKCiAgIHR3ZWFrIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDMtMjkgMTU6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKTsgaW5jbHVkZSBtaWJfbW9kdWxlcyBoZWFkZXI7IHR3ZWFrIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDMtMjkgMTU6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpCgoyMDA0LTAzLTI5IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbWFrZSBwYXJzZV9vbmVfb2lkX2luZGV4IHByb3Blcmx5IGRlY29kZSBJUCBhZGRyZXNzZXMgaW4gdGhlIHJpZ2h0IGJ5dGUgb3JkZXIuCgoyMDA0LTAzLTI5IDEyOjU4ICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGluaXQgZXhhbXBsZXMgbW9kdWxlcwoKMjAwNC0wMy0yOSAwOToxOSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwKICAgICBUMTEyYWdlbnR4c2V0ZmFpbCwgVDExM2FnZW50eHRyYXA6CgogICBwYXRjaCBbOTE4ODM4XSB0ZXN0IGFnZW50eCB1c2luZyBUQ1Agc29ja2V0cyAtIGlmZiB0cmFuc3BvcnQgbm90ICJ1bml4IgoKMjAwNC0wMy0yOSAwNzo1NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBzeW5jIHcvNS4xLjEgKG1vdmUgdmFyIGRlY2xzIHRvIHRvcCBvZiBmdW5jdGlvbmFsIGJsb2NrKQoKMjAwNC0wMy0yNiAwODo0MSAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaCAjOTIwMjM0IHRvIHN0YXJ0IHByb2dyYW1zIGluIG1pbmltaXplZCB3aW5kb3cgKG1pbmd3IG9ubHkpLgoKMjAwNC0wMy0yNiAwODowMyAgc2xpZgoKICAgKiB3aW4zMi9idWlsZC5wbDoKCiAgIHBhdGNoIHRvIGZpeCBbOTIxNDIzXSBpbnN0YWxsIHRlc3Qgc2VxdWVuY2Ugbm90IHJpZ2h0IGZvciBwZXJsIGJ1aWxkCgoyMDA0LTAzLTI2IDA3OjUzICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM5MDE0MzQgdG9zb2NrMi5zaCAtLSB1c2UgV2luc29jayAyLnggZm9yIFdpbmRvd3Mgc29ja2V0IGxpYnJhcnkKCjIwMDQtMDMtMjIgMTU6MzcgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgZml4IHBhdGggZm9yIGNsZWFudXAgb2YgdXBsb2FkZWQgdGFyYmFsbAoKMjAwNC0wMy0yMiAxMzo0NCAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG1ha2VfaW5kZXgucGwsIG1hbl9zZWN0aW9ucy50eHQKOgoKICAgbWFuL2luZGV4Lmh0bWwgZ2VuZXJhdGlvbiBzdHVmZgoKMjAwNC0wMy0yMCAyMTo0MyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbmV3ZXIgbWFuMmh0bWwgdXNhZ2UKCjIwMDQtMDMtMjAgMTA6MDIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaDoKCiAgIHBhdGNoIFs5MTkxMzJdIHRlc3Qgc3RvcCBiZWZvcmUgZmluaXNoIGlzIHN1cGVyZmx1b3VzCgoyMDA0LTAzLTE5IDE2OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBQYXJ0IG9mIHBhdGNoIDkxNzcyNiB0byBmaXggYSBmZXcgd2luZG93cyBjb25maWcgcHJvYmxlbXMuCgoyMDA0LTAzLTE5IDE2OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cDoKCiAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOiBbIDkxODgyOCBdIGNvbmRpdGlvbmFsIHNraXAgSFVQIHRlc3QKCjIwMDQtMDMtMTkgMTU6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazogWyA5MTg5NDggXSBmaXggY3lnd2luIGNvbmZpZyBwcm9ibGVtCgoyMDA0LTAzLTE5IDA4OjI5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIEFkZGVkIGEgbWlzc2luZyBwcm90b3R5cGU6IG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zcGlubG9jawoKMjAwNC0wMy0xOSAwODoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIE1pc3NlZCBhIEFFUzEyOCAtPiBBRVMgY29udmVyc2lvbi4KCjIwMDQtMDMtMTkgMDM6MDAgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEJyaWVmIGRlc2NyaXB0aW9uIG9mIGFkZGluZyBXaW4zMiBJUHY2IHRyYW5zcG9ydCBzdXBwb3J0LgoKMjAwNC0wMy0xOCAxODozMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTE2XSBtaW5vciBkaWZmIGluIGludm9rZWQgbG9nCgoyMDA0LTAzLTE4IDE1OjQ0ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoXzkxNTE3OC5yZWR1eCB0byBmaW5pc2ggdGhlIHNlY29uZCBwYXJ0IG9mIHRoYXQgcGF0Y2guCgoyMDA0LTAzLTE4IDA4OjUxICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgYXBwbHkgcGF0Y2ggWzkxODgyNF0gZml4IHByb3h5IHRlc3RzCgoyMDA0LTAzLTE4IDA3OjA1ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogY3lnd2luLmgsIG1pbmd3MzIuaDoKCiAgIHBhdGNoIFs5MTc2NDldIGZpbmQgdWludDMyX3QgaW4gd2luMzItZ2NjIGJ1aWxkIGVudmlyb25tZW50cwoKMjAwNC0wMy0xNiAxMzowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBtZXJnZSBjb25maWd1cmUgc3Vic3RpdHV0ZWQgc3JzL29icyBkZWYgdy9wcmV2aW91cyBsaW5lLCB0byBhdm9pZCBoYXZpbmcgYQogICBjb250aW51YXRpb24gbGluZSBmb2xsb3dlZCBieSBhIGJsYW5rIGxpbmU7CiAgIGZpeGVzIGZvciBidWlsZGluZyBvdXRzaWRlIG9mIHNvdXJjZSBkaXIgKHJlb3JkZXIgaW5jbHVkZSBpbiBDUFBGTEFHUyBzbyB0aGF0CiAgIHJlbGF0aXZlIGRpcnMgY29tZSBiZWZvcmUgc3JjZGlycykKCjIwMDQtMDMtMTYgMDc6NDkgIHNsaWYKCiAgICogd2luMzIvOiBidWlsZC5iYXQsIGJ1aWxkLnBsOgoKICAgc3luY2ggd2l0aCB3b3JraW5nIHZlcnNpb24sIGRlbHRhIGluc3RhbGwgYmFzZSwgb2YgY291cnNlLgoKMjAwNC0wMy0xNiAwNjo1MyAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBhZGQgdHlwZWRlZiBmb3IgdWludDMyX3QgLS0gYWJzZW50IGZyb20gTVNWUwoKMjAwNC0wMy0xNiAwNToxNSAgc2xpZgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLmluLCBpbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIHBhcnRpYWwgZml4IGZvciBidWcgOTE1MTc4OiBhZGp1c3QgdG8gYWNjb21tb2RhdGUgJ21ha2UgdGVzdCcgdmVyaWZpY2F0aW9uLgoKMjAwNC0wMy0xNSAxNjo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrOgoKICAgUGF0Y2ggZnJvbSBCcnVjZSBTaGF3OiBbIDg5NDcxMSBdIFNvbGFyaXMgZGlzayB0ZXN0IGZhaWxzIG9uIHNvbWUgT1MncyBbc2Vjb25kIGZpeCB0byBoaXMgcHJldmlvdXMgcGF0Y2ggZm9yIGV2ZW4gYmV0dGVyIHN1cHBvcnRdCgoyMDA0LTAzLTE1IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBCdWcvcGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODE1MzYxIF0gb3ZlcnJpZGUgdG9rZW4gaW4gc25tcGQuY29uZiBkb2VzIG5vdCBhbGxvdyBzbm1wc2V0IG9uIE9JRCBbcmVhbGx5LCB0aGlzIGp1c3QgcmV0dXJucyBwcm9wZXIgZXJyb3IgY29kZXMgZnJvbSBzeXN0ZW1fbWliIHZhcmlhYmxlc10KCjIwMDQtMDMtMTUgMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEJ1Zy9wYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MTUzMzMgXSBzbm1wdmFjbSBhcHAgbm90IHdvcmtpbmcgd2l0aCBTTk1QIHYxIFsgcmVhbGx5IGp1c3QgZml4aW5nIG1pYiBlcnJvciBjb2RlcyByZW1lbWJlcmVkIGluIHNubXBfYWdlbnQuY10KCjIwMDQtMDMtMTUgMTU6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jOgoKICAgQnVnL1BhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgwOTI4MiBdIG5ldHNubXBfbW9kZV9lbmRfY2FsbF9hZGRfbW9kZV9jYWxsYmFjayBjYWxsZWQgcmVwZWF0ZWRseQoKMjAwNC0wMy0xNSAxNTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBQYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MDg4ODEgXSBMb2cgYSBhdXRoZW50aWNhdGlvbiBmYWlsdXJlIG1lc3NhZ2Ugd2hlbiBhdXRoZW50aWNhdGlvbiBmYWlscy4KCjIwMDQtMDMtMTUgMTU6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODA3MzMzIF0gNjQgYml0IGFnZW50IHJldHVybnMgaW5jb3JyZWN0IHZhbHVlcyBmb3IgSXBBZGRyZXNzCgoyMDA0LTAzLTE1IDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgZGVmYXVsdC10YWJsZS1pcENpZHJSb3V0ZVRhYmxlLm0yZCwgaXBDaWRyUm91dGVUYWJsZS5jCiwgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlLWltcGxlbWVudCBleGlzdGluZyBpcENpZHJSb3V0ZVRhYmxlIGZ1bmN0aW9uYWxpdHkgdy9NRkQgaGVscGVyCiAgIChpLmUuIHJlYWQtb25seSBzdXBwb3J0OyB1c2UgdmFyX3JvdXRlIGZ1bmN0aW9uIHRvIGdldCBkYXRhKQoKMjAwNC0wMy0xNSAxMjoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHR3ZWFrcyBmb3Igcm93LWNyZWF0aW9uIGNhc2UKCjIwMDQtMDMtMTUgMTI6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBkZWZhdWx0IHRvIGluY29uc2lzdGVudE5hbWUgaW5zdGVhZCBvZiBub0NyZWF0aW9uCgoyMDA0LTAzLTE1IDA2OjI3ICBkdHMxMgoKICAgKiB3aW4zMi9idWlsZC5wbDoKCiAgIFR3ZWFrIHRoZSBvcHRpb24gcHJvbXB0IHNsaWdodGx5LgogICAoRGF2ZSdzIGJlaW5nIHBpY2t5IGFnYWluISkKCjIwMDQtMDMtMTUgMDY6MjAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBMaXN0ZW4gb24gcG9ydCAxNjIgKHJhdGhlciB0aGFuIDE2MSkgaWYgYSAoYmFyZSkgaW50ZXJmYWNlCiAgIGFkZHJlc3MgaXMgc3BlY2lmaWVkLgoKMjAwNC0wMy0xMyAyMjowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIG51bGwgZnJlZSdkIHBvaW50ZXIgKGJldHRlciBzYWZlIHRoYW4gc29ycnkpCgoyMDA0LTAzLTEzIDIxOjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcGx1ZyBtZW1vcnkgbGVhawoKMjAwNC0wMy0xMyAxOToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oOgoKICAgZml4IGZvciBjb21waWxpbmcgdy9kbWFsbG9jCgoyMDA0LTAzLTEzIDA2OjQwICBzbGlmCgogICAqIHdpbjMyL2J1aWxkLmJhdDoKCiAgIHNldCB0ZW1wIHZhciBlbXB0eSB0byByZW1vdmUgZnJvbSBlbnYKCjIwMDQtMDMtMTIgMTU6NTIgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjbGVhbiB1cCBiYXNlIHBvb3AuCgoyMDA0LTAzLTEyIDEzOjA3ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvYnVpbGQuYmF0OgoKICAgZG9jIGNoYW5nZSBmb3IgcGF0Y2ggOTEyNDQ3CgoyMDA0LTAzLTEyIDEyOjEzICBzbGlmCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoWzkxNTE3OF0gdG8gZml4IE1pbkdXIChNU1lTKSBtYWtlIHRlc3QgZnJlZXplcwoKMjAwNC0wMy0xMiAxMToyOSAgc2xpZgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLWFwcHMuaW4sIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLAogICAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wZC9NYWtlZmlsZS5pbiwKICAgICBzbm1wZHNkay9NYWtlZmlsZS5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgICAgc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgbW9kaWZ5IHBhdGNoWzkxMjQ0N10gdG8gdXNlIGNvcnJlY3Qgd2luc29jayBsaWJyYXJ5CgoyMDA0LTAzLTEyIDExOjE2ICBzbGlmCgogICAqIHdpbjMyLzogQ29uZmlndXJlLCBNYWtlZmlsZS1hcHBzLmluLCBNYWtlZmlsZS5pbgosIGJ1aWxkLmJhdCwgYnVpbGQucGwsIGxpYmFnZW50L01ha2VmaWxlLmluCiwgbGliaGVscGVycy9NYWtlZmlsZS5pbiwgbGlic25tcC9NYWtlZmlsZS5pbiwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBuZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4KLCBzbm1wZC9NYWtlZmlsZS5pbiwgc25tcGRzZGsvTWFrZWZpbGUuaW4sCiAgICAgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIGFwcGx5IHBhdGNoIFs5MTI0NDddIFdpbjMyIE1TVkMgTWFrZWZpbGUgc3lzdGVtCgoyMDA0LTAzLTEwIDE5OjI0ICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBhZ2dyZXNzaXZlIHNlYXJjaCBmb3IgZXhlY3V0YWJsZXMgYmVsb3cgdGhlIGJhc2UgZGlyZWN0b3J5LgoKMjAwNC0wMy0xMCAxOToxNSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZG9uJ3Qgc2V0IGdsb2JhbCBzbm1wX2Vycm5vOyBkbyBwcm92aWRlIHVuZGVmIFVTRV9PUEVOU1NMOwogICAgcmVwbGFjZSBORVRTTk1QX05PX0RMTCB3aXRoIE5FVFNOTVBfVVNFX0RMTDsKICAgIGRvY3VtZW50IHRoZSBjaGFuZ2UuCgoyMDA0LTAzLTEwIDE5OjA5ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludm9rZSBzbm1wZCwgc25tcHRyYXBkIHdpdGggbm9uLWRlcHJlY2F0ZWQgcGFyYW1ldGVycyBmb3IgUElEIGFuZCBsb2dmaWxlLgoKMjAwNC0wMy0xMCAxNTowOSAgc2xpZgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBmaXggc2lnbmVkIG1pc21hdGNoIHdoZW4gdGVzdGluZyBwcm9wZXIgbGVuZ3RoIG9mIGtleWVkIGhhc2guCgoyMDA0LTAzLTEwIDE1OjAzICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBtb2RzIGZvciBidWlsZGluZyB3aW4zMiB3aXRoIE9wZW5TU0wgc3VwcG9ydC4KCjIwMDQtMDMtMTAgMDg6MjMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgcGVyIEFsZXhCIC0gY2hhbmdlIGluc3RydWN0aW9ucyB0byB1c2UgTWluR1cgZGV2ZWxvcGVyJ3MgcmVjb21tZW5kZWQgT3BlblNTTC4KCjIwMDQtMDMtMTAgMDc6MjEgIGR0czEyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBVc2UgdGhlIHNhbWUgdGVzdGluZyBwb3J0cyBhcyB0aGUgbWFpbiBhZ2VudCB0ZXN0IHN1aXRlCiAgIChzb21ld2hhdCBsZXNzIGxpa2VseSB0byBjbGFzaCB3aXRoIG90aGVyIHNlcnZpY2VzKQoKMjAwNC0wMy0xMCAwNzowOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgRG9jdW1lbnQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgIm9wdGlvbmFsIiBjb25maWcgZmlsZXMgdmlhIC1jCgoyMDA0LTAzLTEwIDA1OjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXRyeSB1bmZ1bGZpbGxlZCBHRVRORVhUIHJlcXVlc3RzIHRoYXQgc2ltcGx5IGhhdmVuJ3QgYmVlbiBhdHRlbXB0ZWQKICAgKGUuZy4gZHVlIHRvIGEgbWlzc2luZyBjb2x1bW4gb2JqZWN0KSwgYnV0IG5vdCBvbmVzIHRoYXQgaGF2ZSBiZWVuCiAgIGV4cGxpY2l0bHkgbWFya2VkIGFzIGZhaWxlZCAoZS5nLiBhdCB0aGUgZW5kIG9mIHRoZSB0YWJsZSkuCgogICBJJ20gbm90IDEwMCUgY29udmluY2VkIHRoaXMgaXMgY29ycmVjdCwgYnV0IGl0IHNlZW1zIHRvIGhhdmUgdGhlCiAgIHJpZ2h0IGVmZmVjdCBmb3IgYm90aCAndGFibGVfZGF0YScgYW5kICd0YWJsZV9kYXRhc2V0JyBiYXNlZCBtb2R1bGVzLgoKMjAwNC0wMy0xMCAwNDo1MiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBDaGVjayBmb3IgcHJvYmxlbXMgd2l0aCBhbGwgb2YgdGhlIHJlcXVlc3RlZCB2YXJiaW5kcwogICAobm90IGp1c3QgdGhlIGZpcnN0IG9uZSksIGFuZCBoYW5kbGUgJ25vU3VjaE9iamVjdCcgZXhjZXB0aW9ucy4KICAgW1Rob3VnaCBpbiBmYWN0LCB0aGlzIGNvZGUgaXNuJ3QgYWN0dWFsbHkgdXNlZF0KCjIwMDQtMDMtMDkgMTI6NTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgdG8gbWF0Y2ggbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wMy0wOSAxMTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgZGVidWdnaW5nIGlzbid0IHBsYXRmb3JtIHNwZWNpZmljCgoyMDA0LTAzLTA5IDA3OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgc2VwYXJhdGUgdHJhcGxpYnMgZnJvbSBhZ2VudCBsaWJzIGZvciBkZXBlbmRlbmNpZXMKCjIwMDQtMDMtMDkgMDc6MTIgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBtYWtlIFNOTVBDT05GUEFUSCBjb25zaXN0ZW50IHdpdGggb3RoZXIgcGxhdGZvcm1zICgiJHByZWZpeC9ldGMvc25tcCIpCgoyMDA0LTAzLTA5IDA3OjA5ICBzbGlmCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgYWRkIGNvbW1lbnQgTVRDUklUSUNBTF9SRVNPVVJDRSB0byB1c2Ugb2Ygc25tcF9lcnJubyBpbiB0aHJlZSBwbGFjZXMuCgoyMDA0LTAzLTA5IDA1OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBIYW5kbGUgbXVsdGlwbGUgIm9wdGlvbmFsIGNvbmZpZyIgZmlsZXMuCgoyMDA0LTAzLTA5IDA0OjI0ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbWFrZSBTTk1QQ09ORlBBVEggY29uc2lzdGVudCB3aXRoIG90aGVyIHBsYXRmb3JtcyAoIiRwcmVmaXgvZXRjL3NubXAiKQoKMjAwNC0wMy0wOCAyMDoyNiAgcnN0b3J5CgogICAqIFJFQURNRS5haXg6CgogICBuZXcgZmlsZQoKMjAwNC0wMy0wOCAxNzo1MyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvU05NUC9SRUFETUU6CgogICBwYXRjaCBbOTExNDM5XSBVcGRhdGVzIHRvIHRoZSBSRUFETUUud2luMzIgYW5kIFNOTVAgUkVBRE1FIGZvciBXaW4zMgoKMjAwNC0wMy0wOCAxNjoxNCAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBpZmRlZiBvdXQgcm91dGluZXMgdGhhdCBvbmx5IGF2YWlsYWJsZSB3aGVuIGFnZW50eCBpcyBnb2luZyB0byBiZSB1c2VkLgoKMjAwNC0wMy0wOCAxNjowOSAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICB1c2UgYXBwIGxpYnMgZm9yIHNubXB0cmFwZCB3aGVuIGFnZW50IGRpc2FibGVkOyBtb3ZlIHdyYXBsaWIgc3Vic3RpdHV0aW9uIHRvCiAgIGEgbW9yZSByZWFzb25hYmxlIHBsYWNlLiBzbm1wdHJhcGQgc3RpbGwgZG9lc24ndCBsaW5rLCBidXQgaXQncyBjbG9zZXIuLi4KCjIwMDQtMDMtMDggMTQ6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBuZXcgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTAzLTA4IDE0OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIGNvbW1lbnRzIGluIGhhaXJ5IGFnZW50IG1vZHVsZSBwcm9jZXNzaW5nOyBkb24ndCBtdW5nZSBkZWZhdWx0IG1pYnMgdW50aWwKICAgd2UgYXJlIGRvbid0IGJ1aWxkaW5nIGl0OyB0d2Vha3MgZm9yIC0tZGlzYWJsZS1hZ2VudDogdXNlIHNhbWUgZGVmYXVsdCBtaWJzZXQKICAgYXMgLS1lbmFibGUtbWluaS1hZ2VudCwgZG9uJ3QgdG8gaGFpcnkgYWdlbnQgbW9kdWxlIHByb2Nlc3NpbmcKCjIwMDQtMDMtMDggMTM6MjQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IHN5bnRheCBlcnJvcnMuCgoyMDA0LTAzLTA4IDEyOjQyICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgcmVtb3ZlIHVudXNlZCBsb2NhbCB2YXIgY2FjaGVfdGltZW91dAoKMjAwNC0wMy0wOCAxMjo0MSAgc2xpZgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICB1c2UgcXVvdGVzIHRvIHNlYXJjaCBsb2NhbCBpbmNsdWRlIHBhdGhzIGZvciBwZXJsX3NubXB0cmFwZC5oCgoyMDA0LTAzLTA4IDExOjQzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHBhdGNoIFs5MTA5MDNdIFVwZGF0ZXMgdG8gdGhlIFJFQURNRS53aW4zMiBmb3IgR0NDCgoyMDA0LTAzLTA4IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBQYXRjaCBmcm9tIEFuZHJldyBIb29kIHRvIGluY2x1ZGUgcHJvcGVyIGhlYWRlcnMgYW5kIHt9IHdyYXAgcGVybCBzcGVjaWFsIGRlY2xycwoKMjAwNC0wMy0wOCAwODo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIHVzZSBkZWZhdWx0IGxpYnJhcnkgdmFsdWVzIGluc3RlYWQgb2YgaGFyZC1jb2RlZCBkZWZhdWx0cyBmb3IgYXV0aC9wcml2IHByb3RvY29scwoKMjAwNC0wMy0wNiAxOToyMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgcHJvdG90eXBlCgoyMDA0LTAzLTA2IDE5OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgdHdlYWsgcGF0dGVybiBmb3IgbmV3IGRveHlnZW4gY29uZiBmaWxlcwoKMjAwNC0wMy0wNiAxOToxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIGFkZCBwcm90b3R5cGUgdG8gZ2V0IHNwYXJzZSB0YWJsZSBtaWIgaGFuZGxlciwgbmV0c25tcF90YWJsZV9uZXh0X2NvbHVtbjsKICAgcmVuYW1lIG5ldHNubXBfcmVnaXN0ZXJfc3BhcnNlX3RhYmxlIHRvIG5ldHNubXBfc3BhcnNlX3RhYmxlX3JlZ2lzdGVyOyBhZGQKICAgbmV0c25tcF9zcGFyc2VfdGFibGVfaGFuZGxlcl9nZXQKCjIwMDQtMDMtMDYgMTk6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtYWtlIHNwYXJzZSB0YWJsZSBoZWxwZXIgc3RhdGljOyBhZGQgbWV0aG9kIHRvIGdldCBzcGFyc2UgdGFibGUgbWliIGhhbmRsZXI7CiAgIHdhcm4gaWYgc3BhcnNlIHRhYmxlIGhhbmRsZXIgaGFzIGEgbmV4dCBwb2ludGVyLiB1c2UgbmV3IGhhbmRsZXIgY3VzdG9tIGJpdAogICB0byBvbmx5IGxvZyBvbmNlLCBpZiBwb3NzaWJsZS4KCjIwMDQtMDMtMDYgMTg6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHJlc2VydmVyIGxhc3QgNCBiaXRzIG9mIGZsYWcgZm9yIGhhbmRsZXIgdXNlCgoyMDA0LTAzLTA2IDE3OjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRveHlnZW4ubTJjLCBtZmQtdG9wLm0yYzoKCiAgIGdlbmVyYXRlIHNpbXBseSBkb3h5Z2VuLmNvbmYgZmlsZQoKMjAwNC0wMy0wNSAyMTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGaXhlZCB0aGUgYWRkX3JvdyB0b2tlbiBieSBzb3J0aW5nIGluY29taW5nIGNvbHVtbnMgZnJvbSB0aGUgcGFyc2VyCgoyMDA0LTAzLTA1IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgdXBkYXRlcyBmcm9tIG9sZGVyIGNoYW5nZXM7IHN0aWxsIHNsaWdodGx5IG91dCBvZiBkYXRlCgoyMDA0LTAzLTA1IDE3OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgZG9uJ3QgcmVjdXJzZSBvbiBkaWZmOyBjcCBkZWZhdWx0cyBpbnN0ZWFkIG9mIG1vdmluZwoKMjAwNC0wMy0wNSAxNzowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBuZXcgdmFyIGZvciBwYXJhbSBjYWxscyBieSB2YWwKCjIwMDQtMDMtMDUgMTc6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGZpeCBldmFsdWF0aW9uIHByb2JsZW0gaW4gZ2VuZXJhdGVkIGRlZmF1bHQgZmlsZQoKMjAwNC0wMy0wNSAxNjo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgbW92ZSBpbmRleGVzX3NldCwgaW5pdF9kYXRhIGludG8gZGF0YV9hY2Nlc3MubTJjCgoyMDA0LTAzLTA1IDE2OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgYWRkIGV4YW1wbGUgY29kZTsgbW92ZSBhcyBtdWNoIGNhY2hlIHN0dWZmIGFzCiAgIHBvc3NpYmxlIGludG8gaW50ZXJmYWNlCgoyMDA0LTAzLTA1IDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBicmVhayBzZXRfaW5kZXhlcyBpbnRvIDIgcGllY2VzCgoyMDA0LTAzLTA1IDE2OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyByZS1hZGQgcHJlL3Bvc3Q7IGRlZmluZSBNRkQgcmV0dXJuIGNvZGUgaGVyZSwgc2luY2UKICAgdGFibGVfbWZkIG5vIGxvbmdlciBleGlzdHM7CgoyMDA0LTAzLTA1IDE2OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBmaXggc3ludGF4IGVycm9yCgoyMDA0LTAzLTA1IDE2OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyByZS1hZGQgcHJlL3Bvc3Qgd3JhcHBlcjsgY2FsbCBuZXcgcm93X3ByZXAKCjIwMDQtMDMtMDUgMTY6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1nZXQubTJjLCBtZmQtZGF0YS1zZXQubTJjCjoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZQoKMjAwNC0wMy0wNSAxNjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBtb3YgaW5pdF9kYXRhIGhlcmU7IGFkZCByb3dfcHJlcAoKMjAwNC0wMy0wNSAxNjo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksIG5vZGUtZ2V0Lm0yaSwKICAgICBub2RlLXNldC5tMmksIHBhcmVudC1zZXQubTJpOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VjZSBpbiBzYW1lIGluY2x1ZGUKCjIwMDQtMDMtMDUgMTY6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIGFkZCBmbGFnczsgYWRkIGV4cGlyZWQ7IG9ubHkgdXNlIGRlZmF1bHQgdGltZW91dCB3aGVuIGNhY2hlIGNyZWF0ZWQ7CgoyMDA0LTAzLTA1IDE2OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgaGF2ZSBtaWJfdG9fYXNuX3R5cGUgcmV0dXJuIEFTTl9VTlNJR05FRCBpbnN0ZWFkIG9mIEFTTl9VSU5URUdFUiwKICAgd2hpY2ggaXMgdGhlIHByb3BlciBkYXRhIHR5cGUuCgoyMDA0LTAzLTA1IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFJlbW92ZSB0aGUgc3BhcnNlIHRhYmxlIHJlZ2lzdHJhdGlvbiBhbmQgcmVnaXN0ZXIgaXQgYXMgYSBub3JtYWwgdGFibGUuCiAgICAgMSkgdGhlIGhpZ2hlciB0YWJsZSBoYW5kbGVyIGFsd2F5cyBjYWxscyB0aGUgc3BhcnNlIHRhYmxlIGhhbmRsZXIKICAgICAgICBhbnl3YXksIHNvIGl0IHdvdWxkIGJlIHJlZHVuZGFudCBldmVuIGlmIGl0IGRpZCB3b3JrLgogICAgIDIpIFRoZSBzcGFyc2UgdGFibGUgaGFuZGxlciBkb2Vzbid0IGNhbGwgYW55IGNoaWxkcmVuLCBhbmQgZG9lc24ndAogICAgICAgIHNldCB0aGUgYXV0b25leHQgZmxhZyBzbyBpdHMgYWx3YXkgdGhlIGVuZCBvZiB0aGUgbGluZSAodGhpcyB0b29rCiAgICAgICAgbWUgYW4gaG91ciB0byBmaW5kKS4KCjIwMDQtMDMtMDUgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2hhbmdlIHRoZSBoZWxwIGluZm9ybWF0aW9uIGZvciBhZGRfcm93IHRvIG1lbnRpb24gdGhhdCB5b3UgbmVlZCB0aGUKICAgdGFibGUgbmFtZSB5b3Ugd2FudCB0byBhZGQgdGhlIGRhdGEgdG8uCgoyMDA0LTAzLTA1IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfYWdlbnQuYzoKCiAgIEZpeCB0aGUgb2lkIHJlZ2lzdHJhdGlvbiBjYWNoZSBub3QgYmVpbmcgaW52YWxpZGF0ZWQgcHJvcGVybHkuICBCdWcgIzkwMDk2NwoKMjAwNC0wMy0wNSAxMToyOSAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IFs3MDYwOTNdIGJ5IG5vdCBkZWZpbmluZyB2YXJpYWJsZXMgYSBzZWNvbmQgdGltZS4KCjIwMDQtMDMtMDUgMTA6MDMgIHNsaWYKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTUFOSUZFU1Q6CgogICBxdWVsbCBtYW5pZmVzdCBjaGVjayBlcnJvcnMgKG1ha2VmaWxlLCBwbV90b19ibGliLCAuYyBmaWxlKS4KCjIwMDQtMDMtMDUgMTA6MDMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oOgoKICAgdXNlIG9mIFNFVF9TTk1QX0VSUk5PIHJlcXVpcmVzIC0tIGVuYWJsZSBETEwgZGVjb3JhdGlvbiBmb3Igc25tcF9lcnJubwoKMjAwNC0wMy0wNSAxMDowMiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBhZGQgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IgbmV0c25tcF90YWJsZV9uZXh0X2NvbHVtbgoKMjAwNC0wMy0wNSAxMDowMCAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBzeW1ib2wgdXNtQUVTUHJpdlByb3RvY29sCgoyMDA0LTAzLTA1IDA4OjIzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaDoKCiAgIGZpeCBtYWNybyBuYW1lLCBhcyBub3RlZCBvbiB1c2VycwoKMjAwNC0wMy0wNSAwNTo1MSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmM6CgogICByZW1vdmUgdW51c2VkIHZhciAnc3BhY2UnCgoyMDA0LTAzLTA1IDA1OjMwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zeXN0ZW0uYywKICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcAosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLAogICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAosIGNvbmZpZ3VyZToKCiAgIHBhdGNoIFs5MDE0MzRdIGFwcGx5IHVzZVdpbnNvY2syLnNoIFt1bmRvIGJ5IHVzaW5nIHVzZVdpbnNvY2sxLnNoXQoKMjAwNC0wMy0wNCAyMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgaW5pdGlhbGl6ZSB0aGUgdGFibGVfZGF0YXNldCBoZWxwZXIgKGFnYWluLi4uICBJICprbm93KiBpdCB3YXMgaW5pdGlhbGl6ZWQgaW4gdGhlIHBhc3QuICBXaGF0IGhhcHBlbmVkPykKCjIwMDQtMDMtMDQgMjI6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0dXJuIG9mZiBjYWNoaW5nIHVudGlsIHJlYWwgZml4IGZvdW5kIGZvciBidWcgOTAwOTY3OiBhZ2VudHgsIGNhY2hpbmcKCjIwMDQtMDMtMDQgMjA6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICpmaW5hbGx5KiBmaXggYWdlbnR4IGhhbmcgd2hlbiBtYXN0ZXIgZGlzYXBwZWFycwoKMjAwNC0wMy0wNCAxNTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGZpeCBleGVjZml4IGZvciByZWxvY2F0YWJsZSBleGVjczsgYWRkIGZpeCBjbWQgdG8gcmVsb2NhdGFibGUgdHJlZQoKMjAwNC0wMy0wNCAwOTo0NSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlcyBhYm91dCB2ZXJzaW9uIG51bWJlciBjaGFuZ2luZwoKMjAwNC0wMy0wNCAwOTo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIGZpeCBidWlsZGluZyB0cmFwZCB3aGVuIHRoZSBhZ2VudCBpc24ndCBiZWluZyBidWlsdAoKMjAwNC0wMy0wNCAwOToxMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEw6CgogICB1cGRhdGUgdG8gdGhlIHdheSB3ZSBub3JtYWxseSBkbyBwZXJsIE1ha2VmaWxlcywgd2hpY2ggaXMgbm90IG5vcm1hbC4KCjIwMDQtMDMtMDQgMDg6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnhzLCBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLAogICAgIGFnZW50L2FnZW50LnhzOgoKICAgLSBjb252ZXJ0IGZwcmludGYoc3RkZXJyIHRvIHNubXBfbG9nKExPR19FUlIKCjIwMDQtMDMtMDQgMDg6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIGZpeCBzeW50YXggZXJyb3JzCgoyMDA0LTAzLTA0IDA1OjM5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwgY29uZmlndXJlCjoKCiAgIHBhdGNoIFs5MDk0NTldIENvbmZpZ3VyZSBwYXRjaCB0byBhbGxvdyBmb3IgV2luMzIgb2JqZWN0cy4KCjIwMDQtMDMtMDMgMjI6MTEgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBjaGFuZ2UgInByb2dyYX4xIiB0byAiUHJvZ3JhbSBGaWxlcyIgdG8gYXZvaWQgcHJvYmxlbSB3aXRoIERPUyBuYW1lIHdhcnBpbmcuCgoyMDA0LTAzLTAzIDIxOjIyICBzbGlmCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFNOTVAvUkVBRE1FLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIHBhdGNoIFs5MDYyNzRdIFdpbjMyIFBlcmwgY29tcGlsZSB3aXRoIHJlbGVhc2UvZGVidWcgcGF0aCBjaGFuZ2VzCgoyMDA0LTAzLTAzIDE0OjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBzcGVjaWZ5IG1vZGUgaW4gcmVnaW5mbwoKMjAwNC0wMy0wMyAxMzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gbWFrZSB0aGUgZmlsZSB0b2tlbiBhY2NlcHQgYSBkZWZhdWx0IHNpemUgbGlrZSB0aGUgZG9jcyBzYXkgaXQgd2lsbC4KCjIwMDQtMDMtMDMgMTI6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb21tZW50IG91dCBwZHUgZG91YmxlIGZyZWUgY2hlY2sgdGlsIGJldHRlciAobm9uLWxlYWtpbmcpIHNvbHV0aW9uIGZvdW5kCgoyMDA0LTAzLTAzIDA4OjU2ICByc3RvcnkKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMzoKCiAgIHJlbW92ZSBtYW4gcGFnZSBmb3IgcmVtb3ZlZCBzdHJ1Y3R1cmUKCjIwMDQtMDMtMDMgMDg6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBuZXcgdXRpbGl0eSB0byByZWdlbmVyYXRlIG1pYjJjIGNvZGUsIHByZXNlcnZpbmcgZXhpc3RpbmcgY3VzdG9taXphdGlvbnMKCjIwMDQtMDMtMDMgMDc6NTIgIHNsaWYKCiAgICogd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIHRhYmxlX21mZCByZW1vdmVkIC0tIGRvbnQgYnVpbGQgaXQuCgoyMDA0LTAzLTAzIDA3OjQ2ICBzbGlmCgogICAqIHdpbjMyLzogaW5zdGFsbC1uZXQtc25tcC5iYXQsIG5tYWtlcGVybC5iYXQ6CgogICBwZXIgQWxleEIgLSBhZGQgIi1oZWxwIiBkZXNjcmlwdGlvbnMuIGNyZWF0ZSBCQVNFL3RlbXAgc3ViZGlyLgoKMjAwNC0wMy0wMiAxMzo0NSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcGF0Y2ggWzc1Mzg5NF0gIGNhdGNoIFNJR1hGU1ogdy9vIHN0cnNpZ25hbAoKMjAwNC0wMy0wMiAxMjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgdG9wIGxldmVsIG1mZCBjb25mIGZpbGUKCjIwMDQtMDMtMDIgMDQ6MTggIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHBhdGNoIFs3NTM4OTRdICBjYXRjaCBTSUdYRlNaLCBsb2cgbWVzc2FnZSBhbmQgZXhpdCwgZG8gbm90IGNvcmVkdW1wCgoyMDA0LTAzLTAyIDA0OjA2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGZpeCBbNzcxMzE1XSBBZ2VudCBjb3JlZHVtcHMgZHVyaW5nIHNodXRkb3duCgoyMDA0LTAzLTAxIDIxOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUEMgcG9saWNlIC0gdG9uZSBkb3duIGVycm9yIG1lc3NhZ2UKCjIwMDQtMDMtMDEgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmM6CgogICBjaGFuZ2UgZ2xvYmFscyB0byB1c2UgZnVuY3Rpb25zIHRvIGFjY2VzcyBjYWNoZV9oYW5kbGVyIHZhcnMsIG9yIHVzZSBuZXcKICAgZGF0YXN0b3JlIHZhbHVlcwoKMjAwNC0wMy0wMSAyMTowMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5Lmg6CgogICBmaXggdHlwbyBpbiBjb21tZW50OyByZW1vdmUgbm9hbGxvYyBwcm90b3R5cGUKCjIwMDQtMDMtMDEgMjE6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBmaXggdHlwbyBpbiBjb21tZW50OyBhZGQgTk9fQ0FDSElORyBhbmQgQ0FDSEVfVElNRU9VVAoKMjAwNC0wMy0wMSAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgbmV3IGJhYnlfc3RlcHMgYWNjZXNzIG11bHRpcGxleGVyIGhhbmRsZXI7IG1ha2UgYWN0dWFsIGhlbHBlciByb3V0aW5lcyBzdGF0aWM7CiAgIHJlbmFtZSBmdW5jdGlvbnMsIGRlZmluZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5CgoyMDA0LTAzLTAxIDIwOjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgY2FsbHMgdG8gaW5pdF9hZ2VudAoKMjAwNC0wMy0wMSAyMDo1MiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzZXQgZGVmYXVsdCBhZ2VudCBjYWNoZSB0aW1lb3V0OyBkZWJ1ZyBtc2cgZm9yIGVycm5vIG9uIHNlbGVjdCBlcnJvcgoKMjAwNC0wMy0wMSAyMDo1MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1lcmdlIGNvbW1vbiBjYXNlIGluIHN3aXRjaAoKMjAwNC0wMy0wMSAyMDo1MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgcmVwbGFjZSBnbG9iYWxzIHcvbG9jYWwgc3RhdGljICsgYWNjZXNzIGZ1bmN0aW9uOyB1c2UgZGF0YXN0b3JlIGZvciBjYWNoaW5nCiAgIGVuYWJsZWQsIGNhY2hlIHRpbWVvdXQ7IHRlc3QgY2FjaGVfZnJlZSBmb3IgTlVMTCBiZWZvcmUgY2FsbGluZyBpdDsgZG9uJ3QKICAgdXNlIGdvdG87IHVzZSBuZXcgYXV0by1uZXh0IGZ1bmN0aW9uYWxpdHkgdG8gY2FsbCBjaGlsZCBoYW5kbGVyczsgbmV3CiAgIGNhY2hlX2NyZWF0ZSwgY2FjaGVfaGFuZGxlcl9yZWdpc3RlciwgY2FjaGVfZmluZF9ieV9vaWQ7IGRvbid0IHJlbG9hZCBjYWNoZQogICBtb3JlIHRoYW4gb25jZSBwZXIgcmVxdWVzdDsgbm90ZSBwb3NzaWJpbGl0eSBvZiBjYWNoZSBiZWluZyBmcmVlJ2QgbWlkLQogICByZXF1ZXN0IGZvciBkZWxlZ2F0ZWQgcmVxdWVzdHMsIHcvcHJvcG9zZWQgc29sdXRpb24KCjIwMDQtMDMtMDEgMjA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGUuYywgaWZUYWJsZS5oOgoKICAgc3dpdGNoIGZyb20gaXRlcmF0b3IgdG8gbmV3IHRhYmxlX2NvbnRhaW5lciBoYW5kbGVyLgoKMjAwNC0wMy0wMSAxOTo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIHJ1biB0aHJvdWdoIGluZGVudAoKMjAwNC0wMy0wMSAwNjowNiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgdW5kbyBwYXRjaCBhdCByNS4zIC0tIHJlc3RvcmUgKDE2KSBpbiB0ZXN0IHRvIGdldCBvbmx5IG5vbi1yZXBlYXRlcnMKCjIwMDQtMDItMjkgMjE6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgbW92ZSBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3cgaGVyZSBmcm9tIHRhYmxlLmMKCjIwMDQtMDItMjkgMjE6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBhZGQgdGFibGVfY29udGFpbmVyOyByZW1vdmUgdGFibGVfbWZkCgoyMDA0LTAyLTI5IDIxOjA3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBtZmQgZGVwZW5kZW5jaWVzCgoyMDA0LTAyLTI5IDIwOjU0ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgYWRkIGZsYWdzIGZpZWxkIHRvIG1pYiBoYW5kbGVyIHN0cnVjdHVyZTsgbmV3IGhhbmRsZXIgQVVUT19ORVhUIGZsYWdzIGZvcgogICBoYW5kbGVycyB0aGF0IGRvbid0IHdhbnQgdG8gYm90aGVyIHdpdGggY2FsbGluZyBzdWItaGFuZGxlcnMgKGFsc28gcmVkdWNlcwogICBzdGFjayBkZXB0aCk7IG5ldyBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NyZWF0ZSB3aGljaCByZXNpZ2VycyBleGlzdGluZwogICBoYW5kbGVyOyBsb2cgd2FybmluZyBmb3IgaGFuZGxlcnMgcmVnaXN0ZXJpbmcgdy9ubyBtb2RlczsgaGFuZGxlIGluamVjdGlvbiB0byBhCiAgIHJlZ2lzdHJhdGlvbiB3L291dCBhIGhhbmRsZXI7IG5ldyBtb2RlcyBIQU5ETEVSX0NBTl9OT1RfQ1JFQVRFLAogICBIQU5ETEVSX0NBTl9TRVRfT05MWTsgb3IgaW4gSEFORExFUl9DQU5fTk9UX0NSRUFURSB3LyBERUZBVUxUOyBhZGQgdm9pZCBwb2ludGVyCiAgIHRvIGhhbmRsZXIgcmVnaXN0cmF0aW9uCgoyMDA0LTAyLTI5IDIwOjM5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgdGFibGVfbWZkLmggZGVwZW5kZW5jaWVzCgoyMDA0LTAyLTI5IDIwOjI0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgc3luYyBjbG9zZXN0X2NvbHVtbiB3L2ZpeGVzIGluIDUtMS1wYXRjaGVzOyBjaGVjayBmb3IgZXhpc3RpbmcgdGJsX3JlcV9pbmZvIGluCiAgIHJlcXVlc3RzOyBjYWxsIHNwYXJzZSB0YWJsZSBoYW5kbGVyIGFmdGVyIG5vcm1hbCB0YWJsZSBwcm9jZXNzaW5nOyBtb3ZlCiAgIG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdyB0byB0YWJsZV9jb250YWluZXIuYwoKMjAwNC0wMi0yOSAxNzoxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBwcm90b3R5cGUgZm9yIGhhbmRsZXIgZ2V0OyBtYWtlIGlubGluZSBmdW5jIHN0YXRpYyBpbmxpbmUKCjIwMDQtMDItMjkgMTc6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgb3V0IHcvdGhlIG9sZCwgaW4gdy90aGUgbmV3IChyZW1vdmUgbWZkIGhlbHBlciwgYWRkIHRhYmxlX2NvbnRhaW5lcikKCjIwMDQtMDItMjkgMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICByZW1vdmUgbWZkIGhlbHBlcjsgbWZkIGNvbmYgZmlsZXMgbm93IHVzZXIgbmV3IHRhYmxlX2NvbnRhaW5lciBoZWxwZXIKCjIwMDQtMDItMjkgMTc6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIGdyb3VwaW5nIG9wdGlvbiAodXNlciBjYW4gdXNlIHJvd19tZXJnZSBpbnN0ZWFkKTsgbmV3IGZ1bmN0aW9uIGdvIGdldAogICBoYW5kbGVyIHcvb3V0IHJlZ2lzdGVyOyBicmVhayBjb21wbGV4IGNvbmRpdGlvbiBpbnRvIHNpbXBsZXIgY29uZGl0aW9uYWxzIHNvCiAgIGJyZWFrcG9pbnRzIGNhbiBiZSBzZXQgb24gY29uZGl0aW9uOyBkb24ndCBjYWxsIGxvd2VyIGhhbmRsZXJzIGlmIG5vIHJlcXVlc3RzCiAgIG5lZWQgcHJvY2Vzc2luZwoKMjAwNC0wMi0yOSAxNzowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfaXRlcmF0b3IuYywgY29udGFpbmVyX2xpc3Rfc3NsbC5jCiwgY29udGFpbmVyX251bGwuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciBjb250YWluZXIgY2xlYXIKCjIwMDQtMDItMjkgMTY6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgZW5hYmxlIGRsbW9kIHN1cHBvcnQgaWYgSEFWRV9MSUJETAoKMjAwNC0wMi0yOSAxNjoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNhdGNoIGJhZCBzaXplIGZvciBmaXhlZCBzaXplIHR5cGVzCgoyMDA0LTAyLTI5IDE2OjIwICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBuZXcgZnVuY3Rpb24gdG8gc3VwcG9ydCBDT05UQUlORVJfQ0xFQVI7IG1ha2Ugc29tZSBmdW5jdGlvbnMgc3RhdGljIGlubGluZQoKMjAwNC0wMi0yOSAxNjoxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBmaXggaW5zZXJ0L3JlbW92ZS9mcmVlIGlubGluZXMgdG8gcHJvcGVybHkgZGVhbCB3aXRoIG11bHRpcGxlIGluZGV4ZXM7IGFkZCBuZXcKICAgQ09OVEFJTkVSX0NMRUFSIG1hY3JvL2NhbGxiYWNrOyBhZGQgbm90ZXMgb24gZnJlZWluZyByZXR1cm5lZCBhcnJheSBmcm9tCiAgIGdldF9zdWJzZXQKCjIwMDQtMDItMjkgMTY6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXNlIG1mZCBlcnJvciBpbnN0ZWFkIG9mIHNubXAgZXJyb3IKCjIwMDQtMDItMjkgMTY6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgc2V0dXAgc2l6ZSBuYW1lcyBiZWZvcmUgaW5jbHVkaW5nIGdlbmVyaWMgZmlsZQoKMjAwNC0wMi0yOSAxNjowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHJlbW92ZSBleHRyYW5lb3VzIGVuZDsgYWRkIGNvbW1lbnRzCgoyMDA0LTAyLTI5IDE2OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGFkZCBleGl0KCkgY2FsbAoKMjAwNC0wMi0yOSAxNjowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWcKCjIwMDQtMDItMjkgMTU6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZzsgdXNlIGdsb2FibCB0YWJsZSBvaWQvc2l6ZSB2YXI7CiAgIHN3aXRjaCBtZmQgd3JhcHBlciBmdW5jdGlvbnMgdG8gdXNlIHN0YW5kYXJkIG5ldyBhcGkgcGFyYW1ldGVyczsgbmV3IG9wdGlvbmFsCiAgIGNhY2hlOyB1c2UgdHdvIG5ldyBoZWxwZXJzOiBuZXRzbm1wX2JhYnlfc3RlcHNfYWNjZXNzX211bHRpcGxleGVyIGFuZAogICBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9oYW5kbGVyOyBsb29rIGZvciBkYXRhL3B1dCBjcmVhdGVkIHJvdyBkYXRhIGluIHJlcXVlc3QKICAgYWxhIGNvbnRhaW5lciB0YWJsZSBoYW5kbGVyIGZvciBsb3dlciBoYW5kbGVyczsgdHdlYWtzIGZvciB1c2luZyBuZXcgc2luZ2xlCiAgIGZpbGUgYWNjZXNzIG1ldGhvZHMKCjIwMDQtMDItMjkgMTU6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZzsgbWFrZSB0YWJsZSBvaWQvc2l6ZSBhIGdsb2JhbAogICB2YXI7IHN3aXRjaCBtZmQgd3JhcHBlciBmdW5jdGlvbnMgdG8gdXNlIHN0YW5kYXJkIG5ldyBhcGkgcGFyYW1ldGVycwoKMjAwNC0wMi0yOSAxNTo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC1kYXRhLXNldC5tMmMKOgoKICAgdXNlIHJlcG9ydCBwcm9ncmVzcyBmbGFnOyB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZwoKMjAwNC0wMi0yOSAxNTozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgdHdlYWtzIHRvIHVzZSBuZXcgc2luZ2xlIGZpbGUgYWNjZXNzIG1ldGhvZHMgKHByb2Nlc3NpbmcgdHlwZSBmbGFnKQoKMjAwNC0wMi0yOSAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgdGVzdCBuZXcgZmxhZyBmb3IgbGVzcyB2ZXJib3NlIG91dHB1dDsgZG9jdW1lbnQgdHJhbnNpZW50IHZhbHVlcyBpbiBjb21tZW50cwogICBhbmQgZ2VuZXJhdGVkIHRhYmxlIGRlZmF1bHQgZmlsZTsgbWFrZSBzdXJlIG1mZCBkZWZhdWx0cyBoYXZlIGJlZW4gcHJvY2Vzc2VkCgoyMDA0LTAyLTI5IDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGRlZmF1bHQgdG8gbm8gbWFwcGluZywgZXhjZXB0IGZvciBub2RlcyB3L2VudW1zOyB1c2UgcGFyYW0gbmFtZXMgZm9yIG5vZGUKICAgbmFtZXM7IHByb3Blcmx5IGVzY2FwZSBsZW4gdmFyIG5hbWUKCjIwMDQtMDItMjkgMTU6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgdHdlYWsgb3JkZXIgb2YgdGVzdGluZyBjb25kaXRpb25hbHMKCjIwMDQtMDItMjkgMTU6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgbWFrZSBzdXJlIHRvIGNsZWFyIHRtcCB2YXIgYmVmb3JlIHVzZQoKMjAwNC0wMi0yOSAxNTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtZW51bXMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICB0d2Vha3MgdG8gc3VwcG9ydCBnZW5lcmF0aW5nIGZld2VyIGZpbGVzCgoyMDA0LTAyLTI5IDE1OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYzoKCiAgIG5ldyBmaWxlIHRvIGdlbmVyYXRlIGNvbWJpbmVkIG9pZC9lbnVtIGhlYWRlcgoKMjAwNC0wMi0yOSAxNDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgaW5pdCBuZXcgZmxhZyBmb3IgY3JlYXRpbmcgZmV3ZXIgZmlsZXM7IGluaXQgbmV3IGZsYWcgZm9yIHByb2Nlc3NpbmcgcGFydHMKICAgb2YgZmlsZXMgKHVudGlsIEkgY2FuIGZpZ3VyZSBvdXQgaWYgSSBjYW4gY29udmVydCB0byBuZXcgZGVmaW5lL2NhbGxkZWZpbmUpCgoyMDA0LTAyLTI5IDE0OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIG5ldyBhY2Nlc3MgbWV0aG9kIGRlZmluZXMKCjIwMDQtMDItMjkgMTQ6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1zZXR1cC5tMmk6CgogICByZW1vdmUgZmlsZXMgIChtZXJnZWQgaW50IG1mZC1hY2Nlc3MtdW5kb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkpCgoyMDA0LTAyLTI5IDE0OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgbWVyZ2UgbXVsdGlwbGUgYWNjZXNzIGZpbGVzIGludG8gb25lIGZpbGUKCjIwMDQtMDItMjcgMjI6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gZml4IHRoZSBjYXNlIHdoZXJlIGluY29taW5nIGdldGJ1bGtzIHdpdGggbm8gcmVwZWF0aW5nIHZhcmJpbmRzIGlzIHJlY2VpdmVkLgoKMjAwNC0wMi0yNyAxNTowNCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHBlcmwvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvT0lEL01ha2VmaWxlLlBMLAogICAgIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgcGF0Y2ggWyA5MDU0NjUgXSBNaW5HVyBQZXJsIG1vZHVsZSBjb21waWxpbmcgd2l0aCBBY3RpdmVTdGF0ZSBQZXJsCgoyMDA0LTAyLTI3IDA3OjE4ICBzbGlmCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNvbnN0cnVjdCBpbnN0YWxsIHRyZWUgc2ltaWxhciB0byBpbnN0YWxsIHRyZWUgdGhhdCBnY2MgYnVpbGRzIHVzZS4KCjIwMDQtMDItMjcgMDY6MDUgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBidWlsZCBNU1ZTIHJlbGVhc2UgYW5kIGRlYnVnIHZlcnNpb25zIGhhdmluZyB0aGUgc2FtZSBuYW1lLgoKMjAwNC0wMi0yNyAwNTo0MiAgc2xpZgoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGJ1aWxkIE1TVlMgcmVsZWFzZSBhbmQgZGVidWcgdmVyc2lvbnMgaGF2aW5nIHRoZSBzYW1lIG5hbWUuCgoyMDA0LTAyLTI3IDA1OjExICBzbGlmCgogICAqIHdpbjMyLzogaW5zdGFsbC1uZXQtc25tcC5iYXQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIGNvbnN0cnVjdCBpbnN0YWxsIHRyZWUgc2ltaWxhciB0byBpbnN0YWxsIHRyZWUgdGhhdCBnY2MgYnVpbGRzIHVzZS4KCjIwMDQtMDItMjcgMDQ6NTAgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGVuYWJsZSBnY2MgYnVpbGRzIG9mIFdpbmRvd3Mgc2VydmljZSBjb2RlIGZvciB0aGUgYWdlbnQuCgoyMDA0LTAyLTI2IDE3OjIwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBzZXR0aW5nIG9mIE5FVFNOTVBfRFNfTElCX0FQUFRZUEUuCgoyMDA0LTAyLTI2IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNvbW1vbi1pemUgbG9vcCBhbmQgc2F2aW5nIG9mIHN0YXRlIHZhcmlhYmxlcyB0aHJvdWdoIGEgY3JlYXRpdmUgdXNlCiAgIG9mIHJlZmVyZW5jZXMuCgoyMDA0LTAyLTI2IDE2OjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgZm9yIEBkZWZpbmUgc2VjdGlvbnMgd2hpY2ggY2FuIGJlIGxhdGVyIHJlZmVycmVkIHRvIGJ5IEBjYWxsZGVmaW5lCgoyMDA0LTAyLTI2IDE2OjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgLSBkb3h5Z2VuIGNvbmZpZyBmaWxlLgogICAtIFRyYXBSZWNldmllciBwZXJsIG1vZC4KCjIwMDQtMDItMjYgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgRG9uJ3QgY2FsbCAnVENQX0NvdW50X0Nvbm5lY3Rpb25zJyBpZiB0aGUgdGNwVGFibGUgbW9kdWxlIGlzbid0IGluY2x1ZGVkLgoKMjAwNC0wMi0yNiAwNjozMiAgZHRzMTIKCiAgICogRkFROgoKICAgTWlub3Igd29yZHNtaXRoaW5nIHR3ZWFrcyB0byBCcnVjZSdzIEZBUSBjaGFuZ2VzLgogICBHb3NoLCBidXQgRGF2ZSdzIGEgcGlja3kgYnVnZ2VyIGF0IHRpbWVzLgogICBOZXZlciBtaW5kLCBwZXJoYXBzIGlmIHlvdSBsZXQgaGltIGFtdXNlIGhpbXNlbGYgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiwKICAgeW91IG1pZ2h0IGJlIGFibGUgdG8ga2VlcCBoaW0gYXdheSBmcm9tIG1vcmUgY3JpdGljYWwgYml0cyBvZiB0aGUgcHJvamVjdC4uLi4KCjIwMDQtMDItMjUgMjM6NDcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmM6CgogICByZW1vdmUgQ1IgYWNjaWRlbnRhbGx5IGluc2VydGVkIHByZXZpb3VzbHkuCgoyMDA0LTAyLTI1IDIxOjQyICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICB1c2UgUkZDIDMzMzAgcGVybWl0dGVkIGFkZHJlc3MgZm9yIHRoaXMgaG9zdCB3aGVuIGxvb2tpbmcgaW4gZ2V0X215YWRkcgoKMjAwNC0wMi0yNSAxNjo1OSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBFbmFibGUgQUVTIHN1cHBvcnQgZm9yIHRoZSBTTk1QIG1vZHVsZSAoY2FuJ3QgYmVsaWV2ZSBpdCdzIGJlZW4gbWlzc2luZykKCjIwMDQtMDItMjUgMTQ6NDYgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgdW5uZWVkZWQgd29ya2Fyb3VuZCBwYXRjaCBbIDg0MDgzMCBdIFNOTVAueHMgRnJlZSB0byB3cm9uZyBwb29sIGNyYXNoIG9uIFdpbmRvd3MKCjIwMDQtMDItMjUgMTM6MDYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgcGF0Y2ggWzkwMTk0NF0gd2luMzIgZG9jIHVwZGF0ZXMgZnJvbSBBbGV4IEJ1cmdlcgoKMjAwNC0wMi0yNCAxMDozOSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICB1c2Ugd2luc29jayBnZXRob3N0YnluYW1lLCBnZXRzZXJ2YnluYW1lIG9uIG1pbmd3MzIuCgoyMDA0LTAyLTI0IDA5OjU4ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgcGVyIEJlcm5oYXJkIFBlbno6IGRlZXAgY29weSBvZiBpbmNsdWRlIHRyZWUKCjIwMDQtMDItMjQgMDY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgYnVnIDkwMjcyMiBdIEFibGUgdG8gZGVsZXRlIHZpZXcgZXZlbiB3aGVuIHN0b3JhZ2UgdHlwZSA9IHBlcm1hbmVudAoKMjAwNC0wMi0yNCAwNTo0MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgcGF0Y2ggWzkwMzQyNF0gcGVyIEFuZHkgU21pdGg6IGlmZGVmIHdpbjMyIGZpeCBmb3IgdGNwVGFibGUuYyAoY3lnd2luKQoKMjAwNC0wMi0yMyAxNjozMiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgUGF0Y2ggIzkwMTQ2MCBmcm9tIEJydWNlIFNoYXc6IHVwZGF0aW5nIG1pc2MgRkFRIGluZm9ybWF0aW9uCgoyMDA0LTAyLTIzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgdXBkYXRlZCBwZXJsIGJ1aWxkIGluZm8KCjIwMDQtMDItMjMgMTY6MTMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICBwYXRjaCAjOTAxMzc1IGZyb20gQnJ1Y2UgU2hhdzogc29tZSBpbmZvcm1hdGlvbiBvbiBJTlNUQUxMIGlzIHN0YWxlCgoyMDA0LTAyLTIzIDEzOjI5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdW5kbyBwcmV2aW91cyBwYXRjaCAtLSBubyBzZW1pLWNvbG9ucyBpbiBERUZBVUxUX01JQntGSUxFUyxESVJTfQoKMjAwNC0wMi0yMyAxMDo1NyAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGNvbnZlcnQgb3RoZXIgbGlzdC1vcmllbnRlZCBzZXR0aW5ncyB0byBjb25zaWRlciBzZW1pLWNvbG9uIGRlbGltaXRlciBmb3IgbWluZ3czMgoKMjAwNC0wMi0yMiAwOTo0OCAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIHBlciBBbGV4QjogYWxzbyBpbnN0YWxsIHNubXBjb25mIGZpbGVzCgoyMDA0LTAyLTIxIDEzOjU2ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgYWNjb25maWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgc25tcGxpYi90b29scy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCB3aW4zMi9saWJzZGxsLmRzdzoKCiAgIEFwcGx5IHBhdGNoICM4OTg0NjQgdG8gZml4IGJ1Z3MgIzg5NjAzMCBhbmQgIzc3MzQxMgoKMjAwNC0wMi0yMCAwNzoxOCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBjb25maWd1cmU6CgogICBwZXIgQWxleEI6IGZpeCBERUZBVUxUX01JQlMgdG8gdXNlICc7JyBzZXBhcmF0b3Igb24gV2luMzIuCgoyMDA0LTAyLTE5IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFdob29wcy4gIFRoYXQgd291bGQgbm90IGhhdmUgd29ya2VkLiAgU2lsbHkgbWUuCgoyMDA0LTAyLTE5IDIwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIGNoZWNrIG51bWJlciBvZiBzdXBwb3J0IHByb2Nlc3NvcnMgcHJvcGVybHkKCjIwMDQtMDItMTkgMjA6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgWyA5MDAyNDQgXSBzdXBwb3J0IHVwIHRvIDMyIENQVXMgb24gbGludXggZnJvbSBNaWNoYWwgTHVjemFrCgoyMDA0LTAyLTE5IDE5OjQxICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgIHNubXBOb3RpZnlUYWJsZS5oOgoKICAgZml4IGJ1ZyA4OTg1MDkgZnVuY3Rpb24gcG9pbnRlciBwcm90b3R5cGVzIGRlZmluZWQgdHdpY2UKCjIwMDQtMDItMTkgMTg6NTAgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhbGxvdyBET1Mgdm9sdW1lIG5hbWUgW0EtWl06IHRvIGJlZ2luIHRoZSBwYXRoIHNwZWMgZm9yIHByZWZpeGVzCgoyMDA0LTAyLTE5IDA5OjQxICBzbGlmCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBzcGVsbCBOU0NfRVhFQ19QUkVGSVgKCjIwMDQtMDItMTggMjM6MzUgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvbWlibG9hZC50OgoKICAgcGVyIEFsZXhCOiAtd2luMzIgc3VwcG9ydAoKMjAwNC0wMi0xOCAyMzozNSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgcGVyIEFsZXhCOgogICAtYWRkIFdpbjMyIHN1cHBvcnQgZm9yIHN0YXJ0aW5nIC8gc3RvcHBpbmcgc25tcGQgYW5kIHNubXB0cmFwZAogICAtYWxsb3cgc3BhY2VzIGluIHNubXB0ZXN0LmNtZCBmaWxlCgoyMDA0LTAyLTE4IDIzOjM0ICBzbGlmCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIC1tYWtlICRteSBvcHRzIGdsb2JhbCBzbyBpdCdzIHZpc2libGUgdG8gR2V0VGVzdEluZm8oKQogICAtcmUtd3JpdGUgd2luMzIgY29kZSBjcmVhdGUgc25tcHRlc3QuY21kIGZpbGUKCjIwMDQtMDItMTggMjM6MjcgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBub3RpZnkudDoKCiAgIHBlciBBbGV4QjogdGVzdCB0aGF0IHZhcmlhYmxlcyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcgdGhlbS4KCjIwMDQtMDItMTggMjM6MTcgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBidWxrd2Fsay50OgoKICAgcGVyIEFsZXhCOiBkaXNhYmxlIGFzeW5jaCB0ZXN0cyB3aGVuIHJ1biBvbiB3aW4zMiBwbGF0Zm9ybS4KCjIwMDQtMDItMTggMjM6MDAgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBtaWJsb2FkLnQ6CgogICBwZXIgQWxleEI6IGFkZCBtaXNzaW5nIHNubXB0ZXN0X2NsZWFudXAgY2FsbAoKMjAwNC0wMi0xOCAyMjo0NSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9jb25mLnQ6CgogICBwZXIgQWxleEI6IHR5cG8gZml4ICJjb21waWxlZCB0aGUiCgoyMDA0LTAyLTE4IDIyOjQwICBzbGlmCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIGFnZW50L01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgZnJvbSBBbGV4IEJ1cmdlcjogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgLU5FVC1TTk1QLUlOLVNPVVJDRSBjb21tYW5kIHBhcmFtLgoKMjAwNC0wMi0xOCAxMjozNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYSB2My1zZWN1cml0eSBhdXRvLWJ1aWx0IGhlYWRlciBkdXJpbmcgZGlzdGNsZWFuCgoyMDA0LTAyLTE4IDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGRvY3VtZW50IC1DIG9wdGlvbiBpbiB1c2FnZQoKMjAwNC0wMi0xOCAxMTo1NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBmaXggcGF0aCBpbiB1c2FnZTsgdXNlIG5ldyBuc2ctc3VmZmljIGluIHVwbG9hZCBwYXRoCgoyMDA0LTAyLTE4IDExOjQwICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXNlIElOU1RBTExfQkFTRSAtcmVsYXRpdmUgbWt0ZW1wIGZpbGUgcGF0dGVybi4KCjIwMDQtMDItMTggMDk6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtYWtlICMgZXJyIGxpbmVzIHJlcG9ydGVkIGNvbmZpZ3VyYWJsZS4gZGVmYXVsdCB0byAyNQoKMjAwNC0wMi0xOCAwNjoxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gZm9yICdpbjZhZGRyX2FueScgdW5kZXIgV2luZG93cwogICAoQWx0aG91Z2ggdGhlcmUncyBhbiBleHRlcm5hbCBkZWNsYXJhdGlvbiBtZW50aW9uZWQgaW4KICAgIDx3czJ0Y3BpcC5oPiwgdGhlcmUgbm8gYWN0dWFsIHZhcmlhYmxlIGluIHRoZSBsaWJyYXJ5KQoKMjAwNC0wMi0xNyAxMDozMyAgaGFyZGFrZXIKCiAgICogbWFrZW5vc3lzZGVwZW5kLnBsOgoKICAgcmVnZXhwIHRvdWNodXBzCgoyMDA0LTAyLTE3IDA3OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgYnVtcCBNQVhUQyB1cCB0byA0MDk2CgoyMDA0LTAyLTE3IDA3OjI1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBhcHBlbmQgc3VmZmljIHRvIGJ1aWxkIGRpciB3aGVuIGJ1aWxkaW5nIGRlZmF1bHQgYnVpbGQgZGlyOyByZW1vdmUKICAgc3lzdGVtIHNwZWNpZmljIHR3ZWFrcyBmb3Igc2YgY2YsIHRoZXkgc2hvdWxkIGdvIGluIH4vLnNubXAvbnNiLXJjCgoyMDA0LTAyLTE3IDA1OjU0ICBzbGlmCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggZXJyb3IgYWZ0ZXIgY2hhbmdlIGZvciBGaXggWzgwMTkyOF0KCjIwMDQtMDItMTcgMDQ6MzkgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBbODAxOTI4XSB3cm9uZyBjYWxsIG9mIHN0cmxjcHkgaW4gdXB0aW1lX3N0cmluZwoKMjAwNC0wMi0xNyAwMzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBUd2VhayBJUHY2IHRyYW5zcG9ydHMgc28gdGhhdCB0aGV5IGNvbXBpbGUgdW5kZXIgV2luZG93cy4KCjIwMDQtMDItMTcgMDI6NDIgIGR0czEyCgogICAqIHNubXBsaWIvOiBpbmV0X250b3AuYywgaW5ldF9wdG9uLmM6CgogICBQcm92aWRlIGltcGxlbWVudGF0aW9ucyBvZiAnaW5ldF9udG9wJyBhbmQgJ2luZXRfcHRvbicgZm9yCiAgIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0gbmF0aXZlbHkuCgoyMDA0LTAyLTE3IDAyOjI5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEZpeCBbODk2NzkzXSBsb2FkYXZlLmMgaW5jbHVkZXMgc3lzL3N0YXQuaCB0d2ljZQoKMjAwNC0wMi0xNyAwMDo0NSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oOgoKICAgZml4IGJ1ZyA4OTg1MDkgZnVuY3Rpb24gcG9pbnRlciBwcm90b3R5cGVzIGRlZmluZWQgdHdpY2UKCjIwMDQtMDItMTYgMjE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlbW92ZWQgdW51c2VkIGZ1bmN0aW9uIGZyb20gbGFzdCBwYXRjaAoKMjAwNC0wMi0xNiAyMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsCiAgICAgdWNkLXNubXAvcHJvYy5jOgoKICAgcGF0Y2ggWyA4MzYzOTMgXSBNb3JlIHByb2MgaW1wcm92ZW1lbnRzIGZvciBMaW51eCBmcm9tIEhvd2FyZCBXaWxraW5zb24KCjIwMDQtMDItMTYgMTg6MjggIHNsaWYKCiAgICogd2luMzIvbm1ha2VwZXJsLmJhdDoKCiAgIG5vdGUgc3ViLWRpcmVjdG9yeSB3aGVyZSAibm1ha2UiIG91dHB1dCBmaWxlcyBhcmUgd3JpdHRlbi4KCjIwMDQtMDItMTYgMTU6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSRUFETUUsIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwKICAgICBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9TdmFjbWNvbmZpZywgdGVzdHMvU3Zhbnljb25maWcKLCB0ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0cy9UMDE0c25tcHYyY2dldCwKICAgICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIHRlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsCiAgICAgdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCB0ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsCiwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICB0ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdHMvVDAyMHNubXB2M2dldCwKICAgICB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LAogICAgIHRlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsIHRlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24KLCB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCB0ZXN0cy9UMDUwc25tcHYzdHJhcCwKICAgICB0ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICAgIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdHMvVDA1NGFnZW50djJjdHJhcCwKICAgICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RzL1QxMDBhZ2VudGh1cCwKICAgICB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0LAogICAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgICB0ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RzL1QxMjFwcm94eXNldCwKICAgICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwKICAgICB0ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsIHRlc3RzL1QxMzJzbm1wdjN2YWNtZ2V0LAogICAgIHRlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbAosIHRlc3RzL1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbDoKCiAgIFBhdGNoICM3MDI4MzUgKHBsdXMgdHdlYWtzKTogcGF0Y2ggdG8gZW5hYmxlIHRlc3QgY2FzZXMgcnVuIG9uIGRpZmZlcmVudCB0cmFuc3BvcnQgZG9tYWluIGZyb20gWGlhb2ZlbmcgTGluZwoKMjAwNC0wMi0xNiAxNDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYzoKCiAgIEZpeCBidWcgWyA4OTY3NzcgXSBlcnJvcm1pYi5jIGluY2x1ZGVzIHN5cy9zdGF0L2ggdHdpY2UKCjIwMDQtMDItMTYgMTQ6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNC0wMi0xNiAxNDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBCdWcgWyA4OTc1NTAgXSBQZXJsIFNOTVAucG0gbWlzc2luZyBkb2N1bWVudGF0aW9uIGFuZCBhdHRhY2hlZCBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyCgoyMDA0LTAyLTE2IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBQYXRjaDogWyA4MTkyNDEgXSBBZGQgdG8gdGhlIEFQSSBkb2N1bWVudGF0aW9uIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTE2IDExOjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUGF0Y2ggWyA4OTgxNjAgXSBTbm1wdGFibGUgbG9vcHMgaWYgdGFibGUgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbWliIGZyb20gQ3Jpc3BpbiBGbG93ZXJkYXkKCjIwMDQtMDItMTYgMTA6MzAgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgbWFrZSBtZW51IHBhdGggdG8gcmVnaXN0ZXIgUFNESyBtb3JlIGNvbXBsZXRlLgoKMjAwNC0wMi0xNiAxMDowMSAgc2xpZgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICByZW1vdmUgcGxhdGZvcm0gU0RLIGhlYWRlciBTbm1wLmggZnJvbSBTT1VSQ0VTIGxpc3QuCgoyMDA0LTAyLTE2IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIEZpeCBhIG1pc3NpbmcgdmFyaWFibGUgZnJvbSB0aGUgcHJldmlvdXMgcGF0Y2guCgoyMDA0LTAyLTE1IDE4OjE5ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgY29weSBkbGwgdG8gc3lzdGVtMzIgY2FjaGUKCjIwMDQtMDItMTUgMTU6NDcgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIHRoZSBwcm9qZWN0IGRlcGVuZGVuY2llcyBhcmUgbm90IHJlbGlhYmxlLiAgcmVtb3ZlIHRoZW0uCgoyMDA0LTAyLTE1IDEyOjAwICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIFhZWCBjb21tZW50czsgbm90ZSB0aGF0IHNubXBfaW5pdF9taWJfaW50ZXJuYWxzIGRvZXMgbm90aGluZy4KCjIwMDQtMDItMTUgMTA6MzkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggc3ludGF4IGVycm9yCgoyMDA0LTAyLTE1IDEwOjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIGFuZCBzb3VyY2UgbmV3IGNvbW1vbiBjb25maWcgZmlsZQoKMjAwNC0wMi0xNCAwOTo0MSAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBmb3IgbGlic25tcCBwcm9qZWN0CgoyMDA0LTAyLTE0IDA2OjIwICBzbGlmCgogICAqIFJFQURNRToKCiAgIEFkZCBOb2FoIEZyaWVkbWFuLCBmaXhpbmcgYnVnIDg4NzI5MQoKMjAwNC0wMi0xNCAwMjo1MSAgc2xpZgoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBSZW1vdmUgZ2xvYmFsIGRlcGVuZGVuY3kgZm9yIGxpYnNubXAgcHJvamVjdCAobm90IG5lY2Vzc2FyeSkuCgoyMDA0LTAyLTEzIDE2OjAyICBzbGlmCgogICAqIHdpbjMyL25tYWtlcGVybC5iYXQ6CgogICBiZXR0ZXIgZXhwbGFuYXRvcnkgbWVzc2FnZXMsIGFuZCBpbXByb3ZlZCB0ZXN0IHJlc3VsdHMgY29sbGVjdGVkLgoKMjAwNC0wMi0xMyAxMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhdGNoIFsgODEyMDM0IF0gaXBBZEVudFJlYXNtTWF4U2l6ZSBkb2VzIG5vdCByZXR1cm4gZGF0YSBvbiBzbm1wZ2V0IGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEzIDEyOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBBRVMgbm90ZSBvdXRwdXQgYnJva2VuIGJ5IGxhc3QgcGF0Y2gKCjIwMDQtMDItMTMgMTI6MTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvcGtjcy5jLAogICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIFBhdGNoIFsgODA3Mzc1IF0gYWRkIHN0YW5kYXJkIFBLQ1MjMTEgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIHVzbTogYWx0ZXJuYXRpdmUgc2VjdXJpdHkgbGlicmFyeSAob3BlbnNzbCBubyBsb25nZXIgbmVlZGVkIG9uIGZ1dHVyZSBzb2xhcmlzKSBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMyAxMTo1OSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFBhcnQgb2YgcGF0Y2ggKHNvbWUgaGFkIGJlZW4gZG9uZSkgZm9yIFsgNzY3MzE2IF0gZml4IGhhbmRsaW5nIG9mIGF1Z21lbnRlZCB0YWJsZXMgaW4gcGVybCBtb2R1bGUgZnJvbSBSYW5keSBDb3VleQoKMjAwNC0wMi0xMyAxMTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBTZWNvbmQgcGFydCBvZiBkaXNraW8gbG9hZCBhdmVyYWdlIHBhdGNoCgoyMDA0LTAyLTEzIDExOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQKOgoKICAgcGF0Y2ggWyA3OTU0MjQgXSBkaXNraW9MQSAtIGRpc2sgbG9hZCBhdmVyYWdlIGZvciBGcmVlQlNEIChkZXZzdGF0KSBmcm9tIFJvamVyCgoyMDA0LTAyLTEzIDExOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHBhdGNoIFsgNzk5MDUwIF0gQUlYIHBhdGNoZXMgLSB1Y2Qtc25tcC9kaXNraW8gZnJvbSBNaWNoYWVsIEt1a2F0CgoyMDA0LTAyLTEzIDExOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaXNzZWQgYSBwb3J0aW9uIG9mIHBhdGNoICM4MTU0MzkgZml4aW5nIGF1dGggZmFpbHVyZSB0cmFwcy4gIHBhdGNoIGdvdCBjb25mdXNlZCBieSBwcmV2aW91c2x5IGV4aXN0aW5nIGNvZGUgYmVmb3JlLgoKMjAwNC0wMi0xMyAxMDo0OCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9uZSBsaW5lIGNoYW5nZSB0byBwcm9wZXJseSB0ZXJtaW5hdGUgYSBjb21tZW50IGluamVjdGVkIGJ5IHRoZSBwcmV2aW91cyBwYXRjaC4KCjIwMDQtMDItMTMgMTA6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIE5pY2sgQmFya2FzIHRvIHRoZSBSRUFETUUKCjIwMDQtMDItMTMgMTA6MzYgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBSZXBsYWNlIGdldF90cmVlX2hlYWQoKSBmb3IgcmVmZXJlbmNlcyB0byB2YXJpYWJsZXMgTWliIGFuZCB0cmVlX2hlYWQuCiAgIFJlbW92ZSBETExfSU1QT1JUIGxpbmVzLCBhbmQgQk9PVCBzZWN0aW9uLCBhcyB0aGV5IGFyZSBub3QgbmVlZGVkLgogICBNYXJrIHF1ZXN0aW9uYWJsZSBjb21tZW50ZWQgY29kZSB3aXRoIFhZWCBmb3IgcG9zc2libGUgcmVtb3ZhbC4KCjIwMDQtMDItMTMgMTA6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUGF0Y2ggWyA4OTU1MDkgXSBtZW1vcnkgaW5mbyBmcm9tIHVjZC1zbm1wIG1pYiBvbiBsaW51eCAyLjYgZnJvbSBOaWNrIEJhcmthcwoKMjAwNC0wMi0xMyAxMDoyMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrOgoKICAgUGF0Y2ggWyA4OTQ3MTEgXSBTb2xhcmlzIGRpc2sgdGVzdCBmYWlscyBvbiBzb21lIE9TJ3MgZnJvbSBCcnVjZSBTaGF3CgoyMDA0LTAyLTEzIDEwOjA1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvYXNuMS5jLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCBzbm1wbGliL2ludDY0LmM6CgogICBbIDg0OTE1OCBdIDUuMTogL2NvbnN0LyBmaXhlcyBmb3IgdGhlIEFQSSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsCgoyMDA0LTAyLTEyIDIwOjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBkZWZpbmVzCgoyMDA0LTAyLTEyIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBbIDgxNTQzOSBdIHNubWFnZW50IGRvZXMgbm90IHNlbmQgYXV0aCBmYWlsdXJlIHRyYXBzIGZvciB2MyBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMiAxNzowNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIHJlbW92ZSBjb3B5cmlnaHQgY29tbWVudCBhY2NpZGVudGljYWxseSBwbGFjZWQKCjIwMDQtMDItMTIgMTc6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBbIDgxMjAwNSBdIHNlZ21lbnRhdGlvbiBmYXVsdCBpbiBzbm1wdGFibGUKCjIwMDQtMDItMTIgMTY6NTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHBhdGNoIFsgODExMjc4IF0gbWFrZSBhZ2VudHggdWRwL3RjcCB0cmFuc3BvcnRzIGNvbmZpZ3VyYWJsZSBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFBhdGNoIFsgODA5NDM4IF0gRml4IHNldmVyYWwgcHJvYmxlbXMgd2l0aCBob3N0IHJlc291cmNlcyBNSUIgZnJvbSBCb2IgUm93bGFuZHMgKGZpeGVzIG11bHRpcGxlIGJ1Z3MpCgoyMDA0LTAyLTEyIDE1OjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbm90ZSBhYm91dCBzbm1wdHJhcGQgcGVybAoKMjAwNC0wMi0xMiAxNDo0MSAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGQgYSBzZWN0aW9uICJCdWlsZGluZyB3aXRoIE1pbkdXIgoKMjAwNC0wMi0xMiAxMTozNSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL25tYWtlcGVybC5iYXQ6CgogICBBZGQgaG93IHRvICh3aXRoIHNjcmlwdCkgZm9yIGJ1aWxkaW5nIFBlcmwgU05NUCBtb2R1bGVzIHVzaW5nIE1TVkMuCgoyMDA0LTAyLTEyIDA4OjM2ICBzbGlmCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBjcmVhdGUgc25tcGxpYnNkaXIgZm9yIHNubXBfcGVybF90cmFwZC5wbCwgYmVmb3JlIGluc3RhbGxpbmcgdGhlcmUuCgoyMDA0LTAyLTEyIDA4OjMxICBzbGlmCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwCiwgbGlic25tcC9saWJzbm1wLmRzcCwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwCiwgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AKLCBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgcmVtb3ZlIHVudXNlZCBjb21waWxlIGNvbnN0YW50IHRoYXQgU2xpZiBjcmVhdGVkIGR1cmluZyBoaXMgRExMIGV4cGVyaW1lbnRzLgoKMjAwNC0wMi0xMiAwNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIG5ldyB0YWJsZSBjb250YWluZXIgaGVscGVyCgoyMDA0LTAyLTEyIDA1OjMyICBzbGlmCgogICAqIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsCiAgICAgcGVybC9hZ2VudC9hZ2VudC54cywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgY2xlYW51cCBQZXJsIFNOTVAgbW9kdWxlIGJ1aWxkIHRocm91Z2ggdHlwZSBjYXN0aW5nIGFuZAogICByZW1vdmluZyB1bnVzZWQgdmFyaWFibGVzLgogICBGb3IgU05NUC54cywgdGhlcmUgd2FzIGEgbmFtZWQgdmFyaWFibGUgJ2Jlc3RfZ3Vlc3MnIHRoYXQgYmxvY2tlZAogICB0aGUgY2FsbGluZyBwYXJhbSBvZiAic25tcF9nZXRfdHlwZSIsIHJlbW92ZWQgd2l0aCB0aGlzIHVwZGF0ZS4KICAgVGhlIHdpbjMyIGNvbmZpZy5oIG5vIGxvbmdlciB0cmllcyB0byBkZWZpbmUgYmNvcHksYnplcm8sYmNtcCxzdHJjYXNlY21wLgoKMjAwNC0wMi0xMiAwMToyMiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgdXNlIGEgcmVhc29uYWJsZSB2YWx1ZSAoMSkgZm9yIG5vbi1yZXBlYXRlciBpbiBmaXJzdCBidWxrd2Fsay4KCjIwMDQtMDItMTIgMDA6MzIgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oIGJlZm9yZSB1c2luZyBIQVZFX1JFR0VYX0guCiAgIHJlcGxhY2UgY29tcHV0ZV9tYXRjaCB3aXRoIHRoZSBub24tcmVnZXggc2F2dnkgdmVyc2lvbiBmcm9tIHNubXBsaWIvcGFyc2UuYy4KICAgRmluYWxseSwgZGlzYWJsZSBXaW4zMiBETEwgZGVjb3JhdGlvbiwgYXMgRExMIGJ1aWxkIGlzIG5vdCBzdXBwb3J0ZWQuCgoyMDA0LTAyLTExIDIwOjU0ICBzbGlmCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIHNubXB0cmFwZCBidWlsZHMgdXNpbmcgdGhlIHNhbWUgcHJvamVjdCBmaWxlIGZvciBQU0RLIG9yIG5vbi1QU0RLCgoyMDA0LTAyLTExIDE4OjI2ICBzbGlmCgogICAqIHBlcmwvOiBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsCiAgICAgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgWyA4OTUzNjcgXSBXaW4zMiBQZXJsIGJ1aWxkIC1ORVQtU05NUC1QQVRIIGFuZCBwYXRocyB3aXRoIHNwYWNlcwoKMjAwNC0wMi0xMSAxNzo0MiAgc2xpZgoKICAgKiB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgbmV0c25tcG1pYnNzZGsubGliIHJlbmFtZWQgdG8gbmV0c25tcG1pYnMubGliCgoyMDA0LTAyLTExIDE3OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIERvIG5vdCBoYXZlIGdldHRhYmxlIHJldHVybiBoZXggZW5jb2RlZCBzdHJpbmdzIGlmIG5vdCBwcmludGFibGUuICBObwogICBvdGhlciBmdW5jdGlvbiBkb2VzIHRoaXMsIHNvIHdoeSB3b3VsZCBnZXR0YWJsZSBiZSBhbnkgZGlmZmVyZW50LgoKMjAwNC0wMi0xMSAxNzoxMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBNU1ZDIGJ1aWxkIHJlcXVpcmVzIHVzaW5nIGJ1dCBvbmUgd29ya3NwYWNlLgoKMjAwNC0wMi0xMSAxMTowNyAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvOiAuY3ZzaWdub3JlLCBDaGFuZ2VzLCBNQU5JRkVTVAosIE1ha2VmaWxlLlBMLCBSRUFETUUsIFRyYXBSZWNlaXZlci5wbSwKICAgICBUcmFwUmVjZWl2ZXIueHMsIGNvbnN0LWMuaW5jLCBjb25zdC14cy5pbmMsCiAgICAgcGVybF9zbm1wdHJhcGQuaCwgcHBwb3J0LmgsIHR5cGVtYXAsCiAgICAgZmFsbGJhY2svY29uc3QtYy5pbmMsIGZhbGxiYWNrL2NvbnN0LXhzLmluYywgdC8xLnQKOgoKICAgSW5pdGlhbCBwYXNzIGF0IGFuIGVtYmVkZGVkIHBlcmwgbW9kdWxlIGZvciBzbm1wdHJhcGQuCiAgICAgV2hhdHMgb2RkIGZvciB0eXBpY2FsIGluaXRpYWwgY29kZSBmcm9tIG1lIGlzIHRoYXQgaXQncyBmdWxseQogICAgIGZ1bmN0aW9uYWwgYW5kIGRvY3VtZW50ZWQgZXZlbiEKCjIwMDQtMDItMTEgMTA6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvTWFrZWZpbGUuUEw6CgogICBBZGQgdGhlIFRyYXBSZWNlaXZlciBtb2R1bGUgdG8gdGhlIGxpc3Qgb2YgZGVmYXVsdHMuCgoyMDA0LTAyLTExIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGVybF90cmFwZC5wbDoKCiAgIEEgcGVybCBib290c3RyYXBwaW5nIHN0YXJ0dXAgZmlsZS4KCjIwMDQtMDItMTEgMTA6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBwZXJsIHN0YXJ0dXAgZmlsZS4KCjIwMDQtMDItMTEgMTA6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBJbml0aWFsaXplIHBlcmwKCjIwMDQtMDItMTEgMTA6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBjcmVhdGUgYSBoYW5kbGVyX2RhdGEgZmllbGQuCgoyMDA0LTAyLTExIDA3OjI4ICBzbGlmCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgU2hvdyBBRVMgb25seSB0byByZWZsZWN0IHByZXZpb3VzIGNoYW5nZXMgLS0gVXNlIEFFUyBpbnN0ZWFkIG9mIEFFUzEyOCwxOTIsMjU2CgoyMDA0LTAyLTExIDA2OjA4ICBzbGlmCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBhbm5vdW5jZSBjb3JyZWN0IG51bWJlciBvZiB0ZXN0cyAod2FzIDM2LCBub3cgMzgpCgoyMDA0LTAyLTExIDA2OjA2ICBzbGlmCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgdXBkYXRlIHRvIHJlZmxlY3QgY2hhbmdlIGluIHZhbHVlIG9mIE5FVFNOTVBfRFNfTUFYX1NVQklEUwoKMjAwNC0wMi0xMCAxNzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBhbHdheXMgZmFsc2UgdGVzdAoKMjAwNC0wMi0xMCAxNjoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG5ldyBuZXRzbm1wX3RhYmxlX25leHRfY29sdW1uCgoyMDA0LTAyLTEwIDE0OjM2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgcmVtb3ZlIGNvZGUgYmVmb3JlIHZhcmlhYmxlIGRlY2xhcmF0aW9ucwoKMjAwNC0wMi0xMCAxMzoyMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICB0b3VjaCB1cCBpbnN0cnVjdGlvbnMgZm9yIE1TVkMgYnVpbGRzIHRoYXQgdXNlIE9wZW5TU0wKCjIwMDQtMDItMTAgMDk6MDkgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIG1lcmdlIHVwZGF0ZSBmcm9tIEJydWNlIGZyb20gNS0xLXBhdGNoZXMKCjIwMDQtMDItMTAgMDg6MzMgIHNsaWYKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBhcHBseSBzbm1wY29uZjMgb2YgcGF0Y2ggODM3OTY3OyBhZGQgY2xvc2UgdG8gcmVhZF9jb25maWcKCjIwMDQtMDItMTAgMDM6NTAgIHNsaWYKCiAgICogcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgODkyNjE2CgoyMDA0LTAyLTA5IDE1OjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBFbmFibGUgc3RkZXJybG9nIGlmIG5vIG90aGVyIGxvZ2dpbmcgaXMgZW5hYmxlZCAtIHRvIGF2b2lkIHdhcm5pbmcKCjIwMDQtMDItMDkgMTQ6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBleHBvcnQgQ1BQPWNwcCBvbiBEYXJ3aW4gc28gQXBwbGUncyBnY2MgZG9lc24ndCBicmVhayBjb25maWdfcmVxdWlyZQoKMjAwNC0wMi0wOSAwODo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIGZpeCBjb2x1bW4gbmFtZXMKCjIwMDQtMDItMDkgMDg6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGVfY29sdW1ucy5oLAogICAgIGlmWFRhYmxlX2NvbHVtbnMuaDoKCiAgIGFkZCBtaXNzaW5nIGZpbGVzCgoyMDA0LTAyLTA5IDA4OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oCjoKCiAgIEltcGxlbWVudCBhIG5ldyBoZWxwZXIgdG8gY29wZSB3aXRoIHNraXBwaW5nICJob2xlcyIgaW4gYSB0YWJsZQogICAoYW5kIHR3ZWFrIHRoZSAndGFibGVfZGF0YScgaGVscGVyIHRvIG1ha2UgdXNlIG9mIGl0KS4KICAgTm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMgdGhlIF9yZXF1ZXN0X3NldF9lcnJvcigpIHJvdXRpbmUgdG8gYmUKICAgYSBiaXQgZmxleGlibGUgaW4gYWNjZXB0aW5nIGV4Y2VwdGlvbnMgdGhhdCBhcmVuJ3Qgc3RyaWN0bHkgdmFsaWQuCgoyMDA0LTAyLTA5IDA3OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIEVuc3VyZSBvbmUgb2JqZWN0J3MgJ3dyaXRlX21ldGhvZCcgaXNuJ3QgcGlja2VkIHVwIGJ5IGFueXRoaW5nIGVsc2UuCgoyMDA0LTAyLTA5IDA3OjM0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEd1YXJkIGFnYWluc3QgcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMgdG8gc3RyY21wL3N0cmxlbi4KICAgUHJvYmFibHkgc2hvdWxkbid0IGV2ZXIgaGFwcGVuLCBidXQgRGF2ZSdzIGluIGEgc3VzcGljaW91cyBtb29kLgogICBRbjogU2hvdWxkIHRoZXNlIGNoYW5nZXMgYmUgYXBwbGllZCB0byB0aGUgNS4xLnggKD8mIDUuMC54KSBsaW5lPwoKMjAwNC0wMi0wOSAwNDowNSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYnVpbGQgYWdlbnQgb24gbWluZ3csIHdpdGhvdXQgd2luMzIgU0NNIGdsdWUuCgoyMDA0LTAyLTA5IDAzOjI2ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICBhZGQgZGVwZW5kZW5jeSBmb3IgbGlic25tcCB0byBidWlsZCBzbm1wZC4KCjIwMDQtMDItMDggMTk6NTAgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBjbGVhbmVkIHVwLCByZWFkeSBmb3IgbWFpbnN0cmVhbS4gIEhvd2V2ZXIsIG5vdCBnY2MtZnJpZW5kbHksIGp1c3QgeWV0LgoKMjAwNC0wMi0wOCAxODo1NSAgc2xpZgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlZ2VuIGNvbmZpZ3VyZSBmcm9tIGNvcnJlY3QgY29uZmlndXJlLmluCgoyMDA0LTAyLTA4IDE4OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmg6CgogICBuZXcgZGVmaW5lIFVUTVBfSEFTX05PX1BJRAoKMjAwNC0wMi0wOCAxODoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICB1c2UgbmV3IGRlZmluZSBVVE1QX0hBU19OT19QSUQ7IHNpbXBsaWZ5IGxvb3AgbG9naWMKCjIwMDQtMDItMDggMTc6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgZG9uJ3QgcHV0IG9wZW4gYnJhY2UgaW4gaWZkZWYgaWYgY2xvc2UgYnJhY2UgaGFzIG5vIGlmZGVmCgoyMDA0LTAyLTA4IDE2OjIxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZXh0cmEgdHJhbnNwb3J0cyBzaG91bGQgYmUgZW1wdHk7IENhbGxiYWNrIHNob3VsZCBiZSBpbiBkaXN0IHRyYW5zcG9ydHMKCjIwMDQtMDItMDggMTU6NTAgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgSW5jbHVkZSBzYW1wbGUgZGlzcGxheSBmcm9tIHJ1bm5pbmcgaW5zdGFsbC1uZXQtc25tcC5iYXQKCjIwMDQtMDItMDggMTA6MTYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIFdpdGggaW5wdXQgZnJvbSBBbGV4IFNtaXRoLCBhcHBseSBjaGFuZ2VzIHRvIGltcHJvdmUgbWluZ3cgYnVpbGRzLgoKMjAwNC0wMi0wOCAxMDoxMiAgc2xpZgoKICAgKiB3aW4zMi86IGluc3RhbGwtbmV0LXNubXAuYmF0LCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBNb3ZlIHRoZSBkaXJlY3RvcnkgZnJvbSAvdXNyIHRvIEM6XFByb2dyYW0gRmlsZXNcTmV0LVNOTVAuCgoyMDA0LTAyLTA4IDEwOjExICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBNU1ZDIGJ1aWxkIGluc3RydWN0aW9ucyBhcmUgc2ltcGxlciwgdGhhbmtzIHRvIEFsZXggQnVyZ2VyJ3MgcHJvamVjdC93b3Jrc3BhY2UgY2hhbmdlcy4KICAgQWxzbywgaW50cm9kdWNlZCBhIGJhdGNoIGNvbW1hbmQgZmlsZSB0byBzaW1wbGlmeSBpbnN0YWxsYXRpb24gYWZ0ZXIgYnVpbGRpbmcuCgoyMDA0LTAyLTA4IDA5OjM0ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICBBcHBseSBjaGFuZ2VzIG9mZmVyZWQgYnkgQWxleCBCdXJnZXIgdG8gY2xlYW4gdXAgcHJvamVjdHMgYW5kIHdvcmtzcGFjZXMKICAgYW5kIHRvIGJ1aWxkIHNubXB0cmFwZCB1c2luZyB0aGUgUGxhdGZvcm0tU0RLIHdvcmtzcGFjZSAod2luMzJzZGspLgoKMjAwNC0wMi0wNiAxNTo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgY29uZmlnIHcvbGlid3JhcCBpZiB3ZSBjYW4gZmluZCB0aGUgaGVhZGVyCgoyMDA0LTAyLTA2IDExOjIxICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgWWVhciB1cGRhdGUgZm9yIFNwYXJ0YQoKMjAwNC0wMi0wNiAxMDoxMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgcGF0Y2ggODQzOTI0IHJ1bl9zaGVsbF9jb21tYW5kIHRvIHF1b3RlIHJlZGlyZWN0ZWQgcGFyYW1ldGVycy4KCjIwMDQtMDItMDYgMDg6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgUmUtaW5zdGF0ZSB0aGUgJ2h6JyB2YXJpYWJsZSBmb3IgRnJlZUJTRCAoYnV0ICpvbmx5KiBGcmVlQlNEKQoKMjAwNC0wMi0wNiAwNTo1OCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIGFnZW50X2FkZHJlc3Mvc25tcFRyYXBBZGRyZXNzIGluZm9ybWF0aW9uCiAgIChCdWdzICM4NjUxNzggJiAjODc3NTg3IGFuZCBQYXRjaCAjODgzMDI4KQoKMjAwNC0wMi0wNSAwODowNCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICByZXZpc2VkIHBlciBwZWVyIHJldmlldy4KCjIwMDQtMDItMDUgMDU6NDUgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQ3VycmVudCBzdGF0dXMgYXBwZWFycyBpbW1lZGlhdGVseSBhZnRlciB0aGUgaW50cm9kdWN0aW9uCiAgIFJlbW92ZWQgcmVmZXJlbmNlcyB0byBidWlsZGluZy91c2luZy9pbnN0YWxsaW5nIG5ldHNubXAuRExMCiAgIEFkZGVkIHJlZ2lzdGVyaW5nIGFzIHdpbmRvd3Mgc2VydmljZQogICBOb3RlZCBuZXcgZGVwZW5kZW5jeSBvZiBzbm1wdHJhcGQgb24gbmV0c25tcG1pYnMKICAgTm90ZWQgc25tcHRyYXBkIGJ1aWxkcyBvbmx5IHVzaW5nIHdpbjMyLmRzdyB3b3Jrc3BhY2UKICAgQWRkZWQgSG93IHRvIGNoYW5nZSBleHRlcm5hbCBwcm9qZWN0IHNldHRpbmdzIHRvIG1hdGNoCiAgIENsYXJpZmllZCB3aGF0IG90aGVyIHByb2plY3Qgc2V0dGluZ3Mgc2hvdWxkIGJlIHVubW9kaWZpZWQuCgoyMDA0LTAyLTA1IDA1OjI3ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICB1bnJlZ2lzdGVyIERMTCBsaWJyYXJ5IHByb2plY3QgZnJvbSB3b3Jrc3BhY2VzLgoKMjAwNC0wMi0wNSAwNToxNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgbWFuL3NubXAuY29uZi41LmRlZgosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbHkgcGF0Y2ggODQzOTE5IC0gbmV3IHRlbXBGaWxlUGF0dGVybiBzbm1wLmNvbmYgb3B0aW9uCgoyMDA0LTAyLTA1IDA0OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5oOgoKICAgQWRkIHRoZSBORVQtU05NUC1FWEFNUExFUy1NSUIgdG8gdGhlIGxvYWQgbGlzdAogICAoUGF0Y2ggIzg5MDgzOSBmcm9tIFlpeGlvbmcgWm91KQoKMjAwNC0wMi0wNSAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ29ycmVjdCB0aGUgdXNlIG9mIGEgd3JvbmcgZGVidWcgdG9rZW4gKFBhdGNoICM4ODk3NzcgYnkgRGlyayBCYWxjZXJjemFrKQoKMjAwNC0wMi0wNSAwNDozOCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBBcHBseSBwYXRjaCA4NTA3ODUgLSBpbnN0cnVjdGlvbnMgdG8gY29weSBoZWFkZXIgZmlsZXMgZm9sbG93aW5nIGJ1aWxkLgoKMjAwNC0wMi0wNSAwMzo0MSAgc2xpZgoKICAgKiB3aW4zMi86IG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIERvbid0IGJ1aWxkIHRoZSBSbW9uIG1vZHVsZXMuCgoyMDA0LTAyLTA1IDAxOjQ5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEFwcGx5IHBhdGNoIDg0MzY3OQoKMjAwNC0wMi0wNCAyMDoxMSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgZXhwb3NlIG9uZSBsZXNzIHN0YXRpYyBkYXRhIHZhcmlhYmxlIChsb2doX2hlYWQpOyBsaXN0IHR3byBvdGhlcnMgZm9yIERMTC4KCjIwMDQtMDItMDQgMjA6MDcgIHNsaWYKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AKLCBsaWJzbm1wL2xpYnNubXAuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AKLCBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkL3NubXBkLmRzcAosIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBjbGVhbiB1cCBCQVNFIENQUCBzZXR0aW5ncy4KCjIwMDQtMDItMDQgMTQ6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRG9uJ3Qgb3BlcmF0ZSBvbiBhIG51bGwgcG9pbnRlciBmb3IgaW5kZXhlcyB0aGF0IGRvbid0IGV4aXN0LgoKMjAwNC0wMi0wNCAxNDoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIE1lbnRpb24gdGhhdCBSb2JlcnQgaGFzIHRoZSBhYmlsaXR5IHRvIHNpZ24gcGFja2FnZXMgbm93LgoKMjAwNC0wMi0wNCAxNDoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHVzbS5jCiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFVzZSBBRVMgaW5zdGVhZCBvZiBBRVMxMjgsMTkyLDI1NgoKMjAwNC0wMi0wNCAxNDoxMyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgY3JlYXRlIHRoZSBwZXJzaXN0ZW50IGRpcmVjdG9yeSBpZiBpdCBoYXNuJ3QgYmVlbiBjcmVhdGVkIHlldC4KCjIwMDQtMDItMDQgMTM6MDEgIHNsaWYKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgY2FzdCB0byBxdWlldCBtc3ZjIGNvbXBpbGVyLgoKMjAwNC0wMi0wNCAwNTozMSAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jCjoKCiAgIHVzZSBOaWVscycgY2hvaWNlcyBmb3IgbmFtZXMgc3Vic3RpdHV0aW5nIF9fRlVOQ1RJT05fXwoKMjAwNC0wMi0wNCAwNToyOSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhdm9pZCB2b2lkIGNhc3RpbmcgaW4gZnJlZSB0byBrZWVwIGdjYyBoYXBweS4KCjIwMDQtMDItMDMgMTc6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1lcmdlIHBhdGNoIGZyb20gNS4wLXBhdGNoZXMKCjIwMDQtMDItMDMgMTY6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHN0cmR1cCB2YWx1ZSBmcm9tIG5ldHNubXBfZHNfZ2V0X3N0cmluZywgc2luY2UgaXQgaXMgZnJlZSdkIGxhdGVyCgoyMDA0LTAyLTAzIDE0OjMwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MgdXNpbmcgYXBwcm9wcmlhdGUgdHlwZSBjYXN0aW5nLgoKMjAwNC0wMi0wMyAxNDoyOSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogdHlwZXMuaCwgc3lzdGVtL21pbmd3MzIuaDoKCiAgIG1vdmUgaWZuZGVmIEhBVkVfU1NJWkVfVCBmcm9tIE1pbkdXIHNwZWNpZmljIGhlYWRlciB0byB0eXBlcyBoZWFkZXIsCiAgIHRvIGJlbmVmaXQgb3RoZXIgcGxhdGZvcm1zIHRoYXQgZG8gbm90IGRlZmluZSBzc2l6ZV90IChlLmcuLCBtc3ZjKS4KCjIwMDQtMDItMDMgMTQ6MjUgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBleHBvcnQgc3ltYm9scyBmb3IgZnVuY3Rpb25zIHdoZW4gU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIGlzIGRlZmluZWQuCgoyMDA0LTAyLTAzIDE0OjI0ICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGRvbnQgaW5pdGlhbGl6ZSB1Y2Qtc25tcCBpbml0X2Rpc2sgZm9yIG1zdmMgYnVpbGRzLgoKMjAwNC0wMi0wMyAxNDoyMSAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgZW5hYmxlIEFnZW50WCwgUm1vbiwgZGlzbWFuLWV2ZW50LW1pYiwgYW5kIHVjZC1zbm1wIG1vZHVsZSBncm91cHMuCgoyMDA0LTAyLTAzIDE0OjE5ICBzbGlmCgogICAqIHdpbjMyLzogbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIGRvbid0IGJ1aWxkIHRoZSB1Y2Qtc25tcCBkaXNrIG1vZHVsZSAobm90IGltcGxlbWVudGVkIGZvciBtJCBidWlsZHMpCgoyMDA0LTAyLTAzIDA5OjE2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5waXBlLmgsIHNubXBsaWIvd2lucGlwZS5jCjoKCiAgIEZpbmlzaCBhcHBseWluZyBwYXRjaCA4NTI2ODIgZm9yIGNhbGxiYWNrIHRyYW5zcG9ydCBzdXBwb3J0IHVuZGVyIFdpbjMyCgoyMDA0LTAyLTAzIDA4OjAwICBzbGlmCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBBcHBsaWVkIHBhdGNoIDg1MjY4MiBmb3IgY2FsbGJhY2sgdHJhbnNwb3J0IG9uIFdpbjMyOyB0b3VjaGVkIHVwIE1TVkMgcHJvamVjdCBmaWxlcywgdG9vLgoKMjAwNC0wMi0wMyAwNzoxNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgbW92ZSAjaWYgSEFWRV9FWEVDViB0byBoZWFkIG9mIHJ1bl9leGVjX2NvbW1hbmQgIGZvciBxdWlldGVyIE1TVkMgYnVpbGRzLgoKMjAwNC0wMi0wMyAwMzoyNSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgUmVtb3ZlIHBvc2l0aW9uYWwgY29tbXVuaXR5IGZyb20gdXNhZ2UKCjIwMDQtMDItMDMgMDI6MDkgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGJ1ZyByZXR1cm5pbmcgb25seSBmb3VyIGNoYXJhY3RlcnMgZm9yIHVwdGltZSBzdHJpbmcKCjIwMDQtMDItMDMgMDI6MDcgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBVcGRhdGUgZm9yIHJlLWlzc3VlZCBBVE0gYW5kIEV0aGVyTGlrZSBSRkNzCgoyMDA0LTAyLTAzIDAyOjA2ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBGaXggcmVmZXJlbmNlIHRvIC1MZSB0byAtTEUKCjIwMDQtMDItMDMgMDI6MDUgIG5iYQoKICAgKiBsb2NhbC90cmFwdG9lbWFpbDoKCiAgIEZpeCBzdHVwaWQgYnVnIGZldGNoaW5nIHRoZSB0cmFwIG9pZAoKMjAwNC0wMi0wMyAwMjowNCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgQSBiaXQgb2YgY2xlYW51cCBhbmQgcHJvcGVybHkgZGVmYXVsdCBjb21tdW5pdHkgZnJvbSBjb25mIGZpbGUKCjIwMDQtMDItMDMgMDI6MDEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYywgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEFsbG93ICVWIHRvIHRha2UgbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIKCjIwMDQtMDItMDMgMDE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgQXBwbHkgKG1vZGlmaWVkKSBwYXRjaCA4NjA0NDMgd2hpY2ggYWxzbyBmaXhlcyBidWcgODQ4Mjg0IGJ5IHByb3Blcmx5CiAgIHRlcm1pbmF0aW5nIHRoZSBpbnB1dCBidWZmZXIuCgoyMDA0LTAyLTAzIDAxOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGRpc2suaDoKCiAgIFRyeSB0byB1bnRhbmdsZSBhbiAjaWZkZWYgbWVzcyB0aGF0IGhpbmRlcnMgY29tcGlsYXRpb24gb24gT1MvWAoKMjAwNC0wMi0wMyAwMTo1NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUmVtb3ZlIGEgYnVuY2ggb2Ygc3VwZXJmbHVvdXMgbmV3bGluZXMgaW4gbWVzc2FnZXMKCjIwMDQtMDItMDMgMDE6NTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jLCBhdC5jOgoKICAgRml4IHJldHVybiBvZiBJUHY0IGFkZHJlc3Mgb24gNjQtYml0IFNvbGFyaXMKCjIwMDQtMDItMDIgMjM6NDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBpZmRlZiBhIGxpbnV4IHNwZWNpZmljIHZhcmlhYmxlCgoyMDA0LTAyLTAyIDIzOjM4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbHkgcGF0Y2ggODQxNzA1IHRvIGZpeCBidWcgODE3Mzg2CgoyMDA0LTAyLTAyIDIzOjM3ICBuYmEKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBBcHBseSBwYXRjaCA4MzY1NjggdG8gZml4IGJ1ZyA4MjkxMTkKCjIwMDQtMDItMDIgMjM6MzYgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEFwcGx5IHBhdGNoIDg0NTc5OCB0byBmaXggYnVnIDgzMTI5OQoKMjAwNC0wMi0wMiAyMzozMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBQcm9wZXJseSByZXNldCB3aWxkY2FyZG1hdGNoZXIgYmV0d2VlbiBjYWxscwoKMjAwNC0wMi0wMiAyMzoyMyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBcHBsaWVkIHBhdGNoIGZyb20gYnVnIDg0OTE1MwoKMjAwNC0wMi0wMiAyMzoyMSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEdpdmUgZXJyb3IgbWVzc2FnZSB3aGVuIG1vZHVsZSBub3QgYXZhaWxhYmxlCgoyMDA0LTAyLTAyIDIzOjE4ICBuYmEKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBEbyBub3QgY2FzdCB1bnNpZ25lZCB0byBzaWduZWQKCjIwMDQtMDItMDIgMjM6MTcgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgVXNlIHN5c3RlbSBnZXRvcHQuaCB3aGVuIGF2YWlsYWJsZQoKMjAwNC0wMi0wMiAyMzoxNiAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBQcm90ZWN0IGFnYWluc3QgYnVmZmVyIG92ZXJydW4gZm9yIGV4dHJhbWUgZGlzayBuYW1lcwoKMjAwNC0wMi0wMiAyMzoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBBcHBseSBwYXRjaCA4NTA3MTYgdG8gZml4IGJ1ZyA4NTAxODUKCjIwMDQtMDItMDIgMTY6MTAgIG5iYQoKICAgKiBhcHBzLzogc25tcHRlc3QuYywgc25tcHRyYXBkX2xvZy5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTY6MDUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNTo1OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgQmV0dGVyIGVycm9yIG1lc3NhZ2UKCjIwMDQtMDItMDIgMTU6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENvcnJlY3RseSBsb29wIGFyb3VuZCBtaXNzaW5nIGVudHJpZXMKCjIwMDQtMDItMDIgMTU6NTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEJldHRlciBmaWxlIHN5c3RlbSB0eXBlcwoKMjAwNC0wMi0wMiAxNTo1MiAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBzZXR0aW5nIG9mIGNvbW11bml0eSBsZW4KCjIwMDQtMDItMDIgMTU6NDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTU6MzYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgUHJvcGVyIE9JRCBmb3IgVENQNAoKMjAwNC0wMi0wMiAxNTozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGSXggbmV3bGluZSBoYW5kbGluZyBpbiBmaWxlIGxvZ2dlcgoKMjAwNC0wMi0wMiAxNTozNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEZpeCBzb21lIHdhcm5pbmdzLCBhbmQgbWFrZSBzb21lIGJldHRlciBlcnJvciBtZXNzYWdlcwoKMjAwNC0wMi0wMiAxNTozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIEZpeCBhIGZpbGUgZGVzY3JpcHRvciBsZWFrCgoyMDA0LTAyLTAyIDE1OjMyICBuYmEKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgc25tcGxpYi9hc24xLmMKLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDExOjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICByZXF1aXJlIGFsbCBhcmd1bWVudCBiZWZvcmUgbWliTm9kZTsgYmFpbCBvbiB1bmtub3duIG9wdGlvbjsgd2FybiBpZiBtdWx0aXBsZQogICBtaWJOb2RlcyBzcGVjaWZpZWQ7IG5ldyAnYmFsYW5jZWQnIGZsYWcgZm9yIHByb2Nlc3M7IGRlZmluZS91c2UgbmV3IG0yY19kaWUKICAgdGhhdCBzcGl0cyBvdXQgY3VycmVudCBsaW5lIGluIGNvbmYgZmlsZTsgcmVwbGFjZSAnYnJlYWsnIHdpdGggJ25leHQnOyBiYWlsCiAgIG9uIGVsc2VpZjsgYmFpbCBvbiB1bmJhbGFuY2VkIGNvbmYgZmlsZSAobWFueSB0d2Vha3MgdG8gbWFrZSB0aGF0IHdvcmspOwogICByZW1vdmUgdW51c2VkIHNraXBpZjsgZml4IGN1cnJlbnRsaW5lIHVwZGF0ZXMgaW4gZm9yZWFjaCBsb29wczsgZXhpdCB3L2Vycm9yCiAgIGlmIGNvbmYgZmlsZSBub3QgZm91bmQKCjIwMDQtMDItMDIgMTE6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC86IG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZgo6CgogICBhZGQgZXhwbGljaXQgZW5kcyBmb3IgZWFjaCBmb3JlYWNoCgoyMDA0LTAyLTAyIDEwOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGZpeCB1cCBtMmNfbm9kZV9wYXJhbV8qIGRlZmF1bHRzOyByZW5hbWUgbm9kZSBkZWZhdWx0IGZpbGU7IHNldCBkZWZhdWx0cyBmb3IgbTJjX2N0eF9bbGh8cmhdOwogICBzZXQgdXAgbm9kZSBtYXAgZnVuYyBkZWZhdWx0cwoKMjAwNC0wMi0wMiAxMDoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgdXNlIG5ldyBpbmRleGVzX3NldCBmdW5jdGlvbiBpbiBleGFtcGxlOyBtb3ZlIHNvbWUgY29kZSBvdXRzaWRlIG9mIGV4YW1wbGUKICAgY29uZGl0aW9uOyB1c2UgdmFsdWUgbWFwIHRvIGNvcHkgZGF0YQoKMjAwNC0wMi0wMiAxMDoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgbmV3IGluZGV4ZXNfc2V0IGZ1bmN0aW9uCgoyMDA0LTAyLTAyIDEwOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICB1c2UgbWliMmMgbmV4dCBpbnN0ZWFkIG9mIGJyZWFrCgoyMDA0LTAyLTAyIDEwOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGFkZCBtaXNzaW5nIHZhciBkZWNsCgoyMDA0LTAyLTAyIDA4OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIHVzZSBuZXcgZnVuY3Rpb24gdG8gbWFwIGJldHdlZW4gbWliL25hdGl2ZSBkYXRhCgoyMDA0LTAyLTAyIDA4OjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgbmV3IGZ1bmN0aW9uIHRvIG1hcCBiZXR3ZWVuIG1pYi9uYXRpdmUgZGF0YQoKMjAwNC0wMi0wMiAwNzo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIG5ldyBmdW5jdGlvbiB0byBzZXQgaW5kZXhlcyBmcm9tIEMgdHlwZXMKCjIwMDQtMDItMDIgMDc6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIGdlbmVyaWMtY3R4LWNvcHkubTJpLCBnZW5lcmljLWN0eC1nZXQubTJpLAogICAgIGdlbmVyaWMtZ2V0LWNoYXIubTJpLCBnZW5lcmljLWdldC1kZWNsLWJvdC5tMmksCiAgICAgZ2VuZXJpYy1nZXQtZGVjbC5tMmksIG1mZC1kYXRhLWdldC5tMmMsCiAgICAgbWZkLWludGVyZmFjZS5tMmMsIG5vZGUtZ2V0Lm0yaSwgbm9kZS1zZXQubTJpLAogICAgIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIG1vcmUgY29uc2lzdGVudCB1c2Ugb2YgbTJjX2N0eF9bbGh8cmh8bGhzfHJoc10gYW5kIG0yY19ub2RlX3BhcmFtKiB2YXJzOyBuZXcKICAgbTJjX2NvZGVfdmVyYm9zZSBmbGFnIGZvciB2ZXJib3NlIGNvbW1lbnRzIGluIGNvZGU7IG5ldyB2YWx1ZSBtYXBwaW5nIGZ1bmMgZm9yCiAgIGVhY2ggbm9kZSBpbnN0ZWFkIG9mIGR1cGxpY2F0ZWQgY29kZSBpbiBtdWxpdHBsZSBmdW5jczsgdXNlIG1pYjJjIG5leHQgaW5zdGVhZAogICBvZiBicmVhazsKCjIwMDQtMDItMDIgMDQ6MTUgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYywKICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcAosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLAogICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAo6CgogICBSZXN0b3JlIHdpbnNvY2sgMS4xIGxpYnJhcnkgdXNhZ2UuCgoyMDA0LTAxLTMwIDExOjM3ICBzbGlmCgogICAqIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgbW92ZSBuZXRzbm1wLmxpYiB0byB0aGUgZnJvbnQgb2YgdGhlICJBZGRpdGlvbmFsIExpYnJhcmllcyIgbGlzdHMuCgoyMDA0LTAxLTMwIDExOjMxICBzbGlmCgogICAqIHdpbjMyLzogc25tcGQvc25tcGQuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBtb3ZlIG5ldHNubXAubGliIHRvIHRoZSBmcm9udCBvZiB0aGUgQWRkaXRpb25hbCBMaWJyYXJpZXMgbGlzdC4KCjIwMDQtMDEtMzAgMTA6MjkgIHNsaWYKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGVuYWJsZSBzZWxlY3Rpb24gdGhhdCB3aWxsIGdlbmVyYXRlIHNvdXJjZSBicm93c2luZyBpbmZvcm1hdGlvbi4KCjIwMDQtMDEtMzAgMTA6MDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgbW92ZSBleHRlcm4gbG9naF9oZWFkIGludG8gdGhlIGxvZ2dpbmcgbW9kdWxlJ3MgaGVhZGVyIGZpbGUuCgoyMDA0LTAxLTMwIDA3OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBSZW1vdmUgYW4gdW53YW50ZWQgJ2Vsc2UnIGNsYXVzZSB0aGF0IGNsYXNoZXMgd2l0aCB0aGUgImNvbW1vbiIgJ2Vsc2UnCiAgIGNsYXVzZSBsYXRlciBpbiB0aGlzIHRhbmdsZSBvZiB1bnJlYWRhYmxlIGNvZGUuICAoQnVnICM4NTcyNTcpCgoyMDA0LTAxLTMwIDA3OjAxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgcmVzdG9yZSB0aGUgREFUQSBoaW50cyB0aGF0IHdlcmUgYWNjaWRlbnRhbGx5IHJlbW92ZWQuCgoyMDA0LTAxLTMwIDA2OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV2hpdGVzcGFjZSAoQy9SICYgTC9GKSBzaG91bGRuJ3QgdHJpZ2dlciBoZXggc3RyaW5nIGJlaGF2aW91ciAoQnVnICM4NjQzNjcpCgoyMDA0LTAxLTMwIDA2OjMzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIERlZmluZSBhICJkdW1teSIgbG9nIGhhbmRsZXIgdGhhdCBzaW1wbHkgZGlzY2FyZHMgYWxsIG1lc3NhZ2VzLgogICBOb3QgcmVhbGx5IGEgc2Vuc2libGUgdGhpbmcgdG8gZG8sIGJ1dCBjb3VsZCBiZSB1c2VkIHRvIHByZXZlbnQKICAgdHVybmluZyBvbiB0aGUgImxhc3QgZGl0Y2giIGxvZ2dpbmcgdG8gc3RkZXJyIChzZWUgQnVnICM4Njc1NzQpCgoyMDA0LTAxLTMwIDA2OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSXNzdWUgYSB3YXJuaW5nIHdoZW4gdHVybmluZyBvbiAibGFzdCBkaXRjaCIgbG9nZ2luZyAoQnVnICM4Njc1NzQpCgoyMDA0LTAxLTMwIDAzOjIyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgY29tcGxldGVseSBlbXB0eSBHZXRCdWxrIHJlcXVlc3RzIHByb3Blcmx5IChCdWcgIzg3NzQxOSkKCjIwMDQtMDEtMzAgMDI6NTAgIHNsaWYKCiAgICogd2luMzIvOiAuY3ZzaWdub3JlLCB3aW4zMi5vcHQ6CgogICBmaXggYnVnICM4ODcxNDAKCjIwMDQtMDEtMzAgMDE6MzkgIGR0czEyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIFVzZSAnc25wcmludF9oZXhzdHJpbmcnIGluIHRoZSBlbmdpbmUgdGVzdGluZyBjb2RlLCByYXRoZXIKICAgdGhhbiB0aGUgKG5vbi1leGlzdGVudCkgJ3NwcmludF9oZXhzdHJpbmcnICAoQnVnICM4ODYxMTApCgoyMDA0LTAxLTI5IDEzOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIGZpeCBjb3VudHMgZm9yIGNlcnRhaW4gdXNlcyBvZiBzdHJuY2FzZWNtcCAoaSBtdXN0IGJlIGJvcmVkISkuCgoyMDA0LTAxLTI5IDEyOjMyICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBmb3Igd2luZG93cyBzZXJ2aWNlLCBtYXRjaCBkaXNwbGF5IG5hbWUgdG8gc2VydmljZSBuYW1lLgogICBmb3Igd2luZG93cyBzZXJ2aWNlIGRlc2NyaXB0aW9uLCBtZW50aW9uIG1pYklJIG9iamVjdHMgaWYgYnVpbHQgdXNpbmcgU0RLLgoKMjAwNC0wMS0yOSAxMjoxNCAgc2xpZgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmM6CgogICB1c2UgY29ycmVjdCBjb25zdGFudCB0aGF0IHByZXZpb3VzbHkgYXBwbGllZCBwYXRjaCByZWZlcnMgdG8uCgoyMDA0LTAxLTI5IDA2OjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEJyaW5nIHZlcnNpb24gaGFuZGxpbmcgaW50byBsaW5lIHdpdGggdGhlICdzbm1wX3BhcnNlX2FyZ3MnIGxlZ2VyZGVtYWluCgoyMDA0LTAxLTI5IDA2OjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgVmFsaWRhdGUgdGhlIHJlcXVlc3QgYWdhaW5zdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdmFyYmluZHMgc3VwcG9ydGVkCiAgIChQYXRjaCAjODI2NzE0IGZyb20gSmVyZW15IFB1aGxtYW4pCgoyMDA0LTAxLTI5IDA2OjEzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsCiAgICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9ORVQtU05NUC1UQy50eHQsCiAgICAgbWlicy9UUkFOU1BPUlQtQUREUkVTUy1NSUIudHh0LCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBVc2UgdGhlIG9mZmljaWFsbHkgZGVmaW5lZCB0cmFuc3BvcnQgT0lEcwogICAoUGF0Y2ggIzgyODc2NiBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcikKCjIwMDQtMDEtMjkgMDU6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9kZXZpY2UuYywgaG9zdC9ocl9kaXNrLmMsCiAgICAgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfbmV0d29yay5jLAogICAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfc3RvcmFnZS5jLAogICAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywKICAgICB1Y2Qtc25tcC9sb2dtYXRjaC5jLCB1Y2Qtc25tcC9tZW1vcnkuYywKICAgICB1Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCB1Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgICB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgdWNkLXNubXAvbWVtb3J5X2hwdXguYywKICAgICB1Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYwo6CgogICBJbmNyZWFzZSBhc3NvcnRlZCBmaXhlZCBidWZmZXIgc2l6ZXMuICAoUGF0Y2ggIzgzNjM5NSBmcm9tIEhvd2FyZCBXaWxraW5zb24pCgoyMDA0LTAxLTI5IDA1OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlamVjdCBhdHRlbXB0cyB0byBkZWxldGUgYSAncGVybWFuZW50JyByb3cKICAgKFBhdGNoICM4Mzc0MjcgZnJvbSBCb2IgUm93bGFuZHMpCgoyMDA0LTAxLTI5IDA0OjIzICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFByb3RlY3QgYWdhaW5zdCBmcmVlaW5nIGFuIGVtcHR5IGNvbnRleHRFbmdpbmVJRAogICAoV2hpY2ggc2hvdWxkbid0IGhhcHBlbiwgYnV0IHNlZW1zIHRvIG9jY3VyIHVuZGVyIFdpbmRvd3MpCiAgIChQYXRjaCAjODQwODMwIGZyb20gQWxleCBCdXJnZXIpCgoyMDA0LTAxLTI5IDAzOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1lY2hhbmlzbSB0byBjb21wbGV0ZWx5IGRpc2FibGUgdGhlIGhhbmRsaW5nIG9mIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgd291bGQgYnJlYWsgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gU05NUHYzIGFnZW50LgogICAoUGF0Y2ggIzg0OTE1OSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsKQoKMjAwNC0wMS0yOSAwMzozOSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfZW51bS5jOgoKICAgUHJvcGVybHkgcmVsZWFzZSB2YXJpb3VzIHJlc291cmNlcyB3aGVuIHNodXR0aW5nIGRvd24gdGhlIGxpYnJhcnkuCiAgIChQYXRjaCAjODQ5MTU0IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTAxLTI5IDAxOjQ0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUHJvdmlkZSBtaXNzaW5nIGNvbmZpZyBkZWZpbml0aW9uIHRlbXBsYXRlIGZvciAnc3NpemVfdCcgZmxhZwogICAoUGF0Y2ggIzg4NjY1NSBmcm9tIEFuZHkgU21pdGgpCgoyMDA0LTAxLTI4IDIwOjM5ICBzbGlmCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AKLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRmL3NubXBkZi5kc3AsCiAgICAgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIG5vIGluY3JlbWVudGFsIGxpbmsgb24gRGVidWcgKHByZXZlbnRzIGdlbmVyYXRpb24gb2YgLmlsayBmaWxlKQoKMjAwNC0wMS0yOCAxODo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBpZmRlZiBhcm91bmQgdmFyaWFibGVzIHVzZWQgb25seSB3aGVuIFVOSVggdHJhbnNwb3J0cyBhcmUgc3VwcG9ydGVkLgoKMjAwNC0wMS0yOCAxNzo1NyAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgaW52b2tlIHdpbnNvY2sgdmVyIDIuMgoKMjAwNC0wMS0yOCAxNzozNCAgc2xpZgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICAgIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICBuZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBkc2RrL3NubXBkLmRzcCwKICAgICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgY29uc2lzdGVudCBwcm9qZWN0IHNldHRpbmdzOyBubyBDIHJ1bnRpbWUgY29uZmxpY3RzOyBsaW5rIHdpdGggd2luc29jayB2ZXIgMi4yCgoyMDA0LTAxLTI4IDE3OjI4ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IGhhY2sgZm9yIGNob3duLgoKMjAwNC0wMS0yOCAxNDo1NiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZGVyZWZlcmVuY2UgcHJpX21heCB0byB0ZXN0IHJldHVybiBmcm9tIGRlY29kZV9wcmlvcml0eQoKMjAwNC0wMS0yOCAxNDo1NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWd1dGlsLmMsIGFsYXJtLmMsIGV2ZW50LmMKLCBoaXN0b3J5LmMsIHJvd3MuYywgc3RhdGlzdGljcy5jOgoKICAgZmluZCBwbGF0Zm9ybS1hcHByb3ByaWF0ZSBzdWJzdGl0dXRlIGZvciBzeXMvdGltZS5oCiAgIGZpeCBtaW5vciB0eXBlIGNhc3Qgd2FybmluZ3MuICByZW1vdmUgb25lIHVudXNlZCB2YXJpYWJsZS4KCjIwMDQtMDEtMjggMDg6NDAgIGR0czEyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBJbXBvcnQgU05NUF9TTEVFUCB0aW1lIGZyb20gZW52aXJvbm1lbnQsIGlmIGF2YWlsYWJsZQogICAoUGF0Y2ggIzg1MDk1NyBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciwKICAgIG1lcmdpbmcgYSBjaGFuZ2UgZnJvbSB0aGUgNS4wLnggYnJhbmNoKQoKMjAwNC0wMS0yOCAwODowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRW5zdXJlIHRoZSBzaXplIG9mIHRoZSBleGVjLWNhY2hlIGlzIGhhbmRsZWQgY29ycmVjdGx5IG9uIDY0LWJpdCBzeXN0ZW1zCiAgIChQYXRjaCAjODYwNTc1IGJ5IEJvYiBSb3dsYW5kcykKCjIwMDQtMDEtMjggMDc6NTUgIGR0czEyCgogICAqIHBlcmwvOiBPSUQvT0lELnhzLCBTTk1QL1NOTVAueHMsIGFnZW50L2FnZW50LnhzCjoKCiAgIEJlIG1vcmUgY2F1dGlvdXMgYWJvdXQgdGhlIG1heGltdW0gbGVuZ3RoIG9mIE9JRHMgKFBhdGNoIDg2MjE4MyBieSBBdXN0aW4gU2NodXR6KQoKMjAwNC0wMS0yOCAwNzo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEd1YXJkIGFnYWluc3QgYSBtaXNzaW5nIElQIGFkZHJlc3Mgc3RydWN0dXJlIChQYXRjaCAjODYxOTM5IGJ5IERhbiBNb25ncmFpbikKCjIwMDQtMDEtMjggMDc6MzggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBNZXJnZSBOZWlscycgNS4xLnggY2hhbmdlcyBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IHRyZWUuCiAgIChTZWVtcyB0byBpbmNsdWRlIHBhdGNoZXMgIzg1NTE3MCBhbmQgIzg1ODUxOSkKCjIwMDQtMDEtMjggMDY6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBkb24ndCBjaG93bi9jaG1vZCBpZiB1bml4IGRvbWFpbiBzdXBwb3J0IG5vdCBlbmFibGVkCgoyMDA0LTAxLTI4IDA2OjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENoZWNrIGZvciBwZXJsIDUuOCBlbnRyeSBwb2ludC4gIChQYXRjaCAjODU0Mzk1KQoKMjAwNC0wMS0yOCAwNjoyMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IGluc3RhbGwgc28gdGhhdCBzdWJkaXIgbGlicyBhcmUgaW5zdGFsbGVkIGJlZm9yZSBiaW5zLCBub3RlZCBieSB0aGUKICAgZXZlci1zby1oZWxwZnVsIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KCjIwMDQtMDEtMjggMDQ6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgSW5jcmVhc2UgdGhlIChmaXhlZCkgbnVtYmVyIG9mIGRpc2tzIGhhbmRsZWQgKHBhdGNoICM4ODQ4NTkpCgoyMDA0LTAxLTI4IDA0OjE4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1pbmd3MzIuaCBzeXN0ZW0gaGVhZGVyIGZpbGUgKHBhdGNoICM4ODQxMDApCgoyMDA0LTAxLTI4IDA0OjEzICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBzc2l6ZV90LCBhbmQgZG9uJ3QgcmVkZWZpbmUgaXQgd2hlbgogICB1c2luZyB0aGUgV2luR1cgY29tcGlsZXIuICAgKFBhdGNoICM4ODE3NTIpCgoyMDA0LTAxLTI4IDAzOjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgUmVtb3ZlIHR3byByZWR1bmRlbnQgZm9yd2FyZCBkZWNsYXJhdGlvbnMgIChwYXRjaCAjODczMzI2KQoKMjAwNC0wMS0yOCAwMjowNyAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIGluZXRwcmludCBhbGxvdHMgbWF4IDIyIGNoYXJzIGZvciBhZGRyZXNzICsgOCBjaGFycyBmb3IgcG9ydC4KICAgY2hhbmdlIHRvIDE4IGFkZHJlc3MgKyAxMiBwb3J0LCBzbyB0aGF0IG1vcmUgb2YgdGhlIHBvcnQgaXMgZGlzcGxheWVkLgoKMjAwNC0wMS0yNyAyMjo0MiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGluZGljYXRlIFdpbjMyIGhhcyBsb2NhbGUuaCBtYWxsb2MuaCBtZW1vcnkuaC4KICAgZG8gbm90IHNldCBic2RsaWtlIG9yIFVTRXh4TUlCIG9yIFNFQ1VSSVRZRVhDRVBUSU9OUwogICByZS1mb3JtYXQgbGlrZSB0aGUgTmV0LVNOTVAgY29uZmlndXJlZCBuZXQtc25tcC1jb25maWcuaC4KCjIwMDQtMDEtMjcgMjI6MzQgIHNsaWYKCiAgICogYWNjb25maWcuaCwgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4KOgoKICAgdXBkYXRlIHN1cHBvcnQgZm9yIE9wZW5CU0QsIEhQLVVYLzExLCBhbmQgV2luMzIgc3lzT2JqZWN0SUQgLgoKMjAwNC0wMS0yNyAyMTo0OSAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jCjoKCiAgIHByb3ZpZGUgZnVuY3Rpb24gaGludHMgaW4gbGlldSBvZiBfX0ZVTkNUSU9OX18KCjIwMDQtMDEtMjcgMTM6NDYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBBZGQgZGVjbGFyYXRpb25zIGZvciBmdW5jdGlvbnMgdXNlZCBpbiBhcHBzL3NubXB0cmFwZF9oYW5kbGVyLmMKCjIwMDQtMDEtMjcgMTM6MTUgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBubyBjaG93bigpIG9uIFdpbjMyIC0tIGNvbXBpbGVzIHRvIG5vdGhpbmcuCgoyMDA0LTAxLTI3IDEwOjU1ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICBidWlsZCBpbmRlcGVuZGVudCBwcm9qZWN0cyAobGlicmFyaWVzKSBiZWZvcmUgZGVwZW5kZW50IHByb2plY3RzLgogICByZW1vdmUgaW5jb21wbGV0ZSBkZXBlbmRlbmN5IHNwZWNpZmljYXRpb24gdG8gYnVpbGQgYWxsIGZhc3Rlci4KCjIwMDQtMDEtMjcgMTA6MTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUmUtYXJyYW5nZWQgdGhlIGRlY2xhcmF0aW9ucyBvZiB2YXJpYWJsZXMgYW5kL29yIGNvbXBpbGUgY29uc3RhbnRzLAogICBzbyB0aGF0IHRoZSB2YXJpYWJsZXMgYXJlIGRlY2xhcmVkIG9ubHkgaWYgbmVlZGVkLgoKMjAwNC0wMS0yNyAxMDoxMSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBTdXBwbGllZCAicmV0dXJuIDAiIHRvIGV4dGVuc2libGVfdW5yZWdpc3RlcigpLCBhIGZ1bmN0aW9uIHJldHVybmluZyBpbnQuCgoyMDA0LTAxLTI3IDA5OjU5ICBzbGlmCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBjYXN0IHRvIHZvaWQgdGhlIGFyZ3VtZW50IHRvIGZyZWUoKS4KCjIwMDQtMDEtMjcgMDk6NTcgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHVzZSB1X2NoYXIgdHlwZSBjYXN0IGluc3RlYWQgb2YgbWFza2luZyB3aXRoIDB4RkYuCgoyMDA0LTAxLTI3IDA5OjUyICBzbGlmCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgbW92ZSBjb25kaXRpb25hbCBleHByZXNzaW9uIHdpdGhpbiB0eXBlIGNhc3Qgc2NvcGUsCiAgIGZvciB0aGUgYmVuZWZpdCBvZiBzb21lIGNvbXBpbGVycy4KCjIwMDQtMDEtMjcgMDk6NTAgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgc3BlbGxjaGVjazogbmV0c25tcF9jb250YWluZXJfZnJlZV9saXN0CgoyMDA0LTAxLTI3IDA5OjQ2ICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsYXJlIGluaXRfc3ViYWdlbnQgbmVhciBpdHMgb25seSByZWZlcmVuY2UuCgoyMDA0LTAxLTI3IDA5OjQ1ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gV2luMzIgY29kZS4KCjIwMDQtMDEtMjcgMDk6NDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIG1vdmUgSEFWRV9FWEVDViBjb21waWxlIHRlc3QgZWFybGllciBpbiB0aGUgZnVuY3Rpb24gdG8gbm90IGludHJvZHVjZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwNC0wMS0yNyAwOTo0MSAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9zbm1wdmFjbS5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncyB1c2luZyBhcHByb3ByaWF0ZSB0eXBlIGNhc3RpbmcuCgoyMDA0LTAxLTI3IDA5OjI0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBSZWZlciB0byB0aGUgbmV0c25tcCBsaWJyYXJ5IHZlcnNpb24gc3RyaW5nIHZpYSBuZXRzbm1wX2dldF92ZXJzaW9uOwogICBLZWVwIGRpcmVjdCBzdHJpbmcgcmVmZXJlbmNlIGlmZiBVQ0RfQ09NUEFUSUJMRSBpcyBkZWZpbmVkLgoKMjAwNC0wMS0yNyAwOTowNyAgc2xpZgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBBdm9pZCBjb252ZXJzaW9uIG1hY3JvcyB3aGVuIGZvcm1pbmcgaG9zdCBjb3B5IG9mIDE2LWJpdCBwb3J0IHZhbHVlCgoyMDA0LTAxLTI3IDA5OjA3ICBzbGlmCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgRG9udCBmb3JjZSB1bnNpZ25lZCBzaG9ydCBvbnRvIHR3byB1bnNpZ25lZCBjaGFycy4KICAgQmUgbW9yZSBleHBsaWNpdCBpbiB0aGUgdHJlYXRtZW50IG9mIHRoZSB5ZWFyIGNvbXBvbmVudC4KCjIwMDQtMDEtMjcgMDk6MDIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgV2luMzIgYWxsb2NhdGVzIFRDUCBhbmQgVURQIGNvbm5lY3Rpb24gc3RydWN0dXJlcyB0aGF0IGNvbnNpc3Qgb2YKICAgIGEgMzItYml0IGNvdW50IGZvbGxvd2VkIGJ5IGEgcGVyIGNvbm5lY3Rpb24gdGFibGUuICBXaGVuIGZyZWVpbmcgdGhlIHRhYmxlLAogICAgZmluZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJ1Y3R1cmUuICBUaGUgVENQIHRhYmxlIGluY29ycmVjdGx5IGNvdW50ZWQKICAgIGVzdGFibGlzaGVkIFRDUCBjb25uZWN0aW9ucywgZml4ZWQgd2l0aCB0aGlzIGNoYW5nZS4KCjIwMDQtMDEtMjcgMDg6NTggIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBzdXBwb3J0IFdpbjMyIGluIE9TVFlQRSBkZWZpbml0aW9uLgoKMjAwNC0wMS0yNyAwODo1NCAgc2xpZgoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGluY2x1ZGUgaW8uaCBmb3IgV2luMzIgdG8gaW50cm9kdWNlIHRoZSBjbG9zZSgpIGZ1bmN0aW9uCgoyMDA0LTAxLTI3IDA3OjQ4ICBzbGlmCgogICAqIHdpbjMyLzogbGliaGVscGVycy8uY3ZzaWdub3JlLCBuZXQtc25tcC8uY3ZzaWdub3JlLAogICAgIG5ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsIG5ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZQosIG5ldHNubXBtaWJzLy5jdnNpZ25vcmUsIG5ldHNubXBtaWJzc2RrLy5jdnNpZ25vcmUKLCBzbm1wZHNkay8uY3ZzaWdub3JlOgoKICAgcHJvdmlkZSBhIENWUyBmaWx0ZXIgdG8gZXZlcnkgc3ViZGlyIHVuZGVyIHdpbjMyLgoKMjAwNC0wMS0yNyAwNzozNCAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmFnZW50L2xpYmFnZW50LmRlZiwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZgo6CgogICBjb252ZXJ0IHRvIERPUyBmb3JtYXQgdG8ga2VlcCBjZXJ0YWluIElERSBoYXBweS4KCjIwMDQtMDEtMjcgMDc6MjcgIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIHRoaXMgZmlsZSBpcyBzdXBlcnNlZGVkIGJ5IHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmguCgoyMDA0LTAxLTI3IDA3OjIzICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIGNoYW5nZXMgYXBwcm92ZWQgYnkgYXV0aG9yIHByb3ZpZGUgbW9yZSByZWFkYWJsZSBmb3JtYXR0aW5nIGFuZCBjb21tZW50cy4KCjIwMDQtMDEtMjcgMDc6MjIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgcmVtb3ZlIENSIGNoYXJhY3RlcnMgZnJvbSB0aGVzZSBzb3VyY2VzLgoKMjAwNC0wMS0yNyAwNzoxOSAgc2xpZgoKICAgKiBSRUFETUUuUGFuYXNvbmljX0FNM1gudHh0OgoKICAgY29udmVydCBDUkxGIHRvIG5ld2xpbmUKCjIwMDQtMDEtMjcgMDc6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGb3J3YXJkIHRyYXBzIHRvIHBvcnQgMTYyIGJ5IGRlZmF1bHQuCgoyMDA0LTAxLTI2IDE1OjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmcKCjIwMDQtMDEtMjYgMTU6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGRvbid0IGhhcmRjb2RlIHBvaW50ZXIgc2l6ZTsgbm90ZWQgb24gY29kZXJzIGJ5IHJhamVzaCBhcnVtdWdhbQoKMjAwNC0wMS0yNiAwNDoxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeCB0aGUgb3JkZXJpbmcgb2YgaG9zdG5hbWUgYW5kIElQIGFkZHJlc3MgYXMgcGFzc2VkIHRvIHRyYXAgaGFuZGxlcgogICAoQnVnICM4ODIwNzEgYW5kIG90aGVycykKCjIwMDQtMDEtMjYgMDQ6MTUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDb252ZXJ0IHYxIHRyYXBzIHRvIHYyIGZvcm1hdCBiZWZvcmUgcGFzc2luZyBpdCB0byB0aGUgdHJhcCBoYW5kbGVyCiAgIChwbHVzIG1lcmdpbmcgdGhlIG90aGVyIDUuMS54IHBhdGNoZXMgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCB0cmVlKQoKMjAwNC0wMS0yNiAwMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBFbnN1cmUgdGhhdCBockZTVGFibGUgaW5kZXhlcyBhcmUgY29uc2lzdGVudCBhY3Jvc3MgdGhlIGxpZmV0aW1lIG9mCiAgIHRoZSBhZ2VudC4KCjIwMDQtMDEtMjYgMDI6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQWxpZ24gaHJGU1N0b3JhZ2VJbmRleCB2YWx1ZXMgd2l0aCBoclN0b3JhZ2VUYWJsZSAoYnVnICM4ODI5ODcpCgoyMDA0LTAxLTIwIDA1OjQ4ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgQWRkIEFuZHkgU21pdGggdG8gY29udHJpYnV0b3JzCgoyMDA0LTAxLTIwIDA1OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZml1cmUuaW4KCjIwMDQtMDEtMjAgMDU6MjggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBwYXJ0aWFsIGFwcGxpY2F0aW9uIG9mIDg2MDk4MDogRml4IGZvciBtaW5ndzMyLmgKCjIwMDQtMDEtMjAgMDU6MTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhcHBseSBwYXRjaCA4NDM2Nzk6IENvbmZpZ3VyZSBwYXRjaCBmb3IgTWluR1cKCjIwMDQtMDEtMTQgMDY6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiA2NC1iaXQgY291bnRlcnMsIGFuZCB1c2UgdGhlIGNvcnJlY3QgL3Byb2MgaW50ZXJmYWNlIGZpbGUKICAgKG5vdCB0aGUgdGVtcG9yYXJ5IGRlYnVnZ2luZyB2ZXJzaW9uISkKCjIwMDQtMDEtMTQgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICBQcm92aXNpb25hbCByZS1pbXBsZW1lbnRhdGlvbiBvZiBJRi1NSUI6OmlmVGFibGUgYW5kIElGLU1JQjo6aWZYVGFibGUKICAgTGludXggc3VwcG9ydCBvbmx5IChhbmQgc29tZSBvYmplY3RzIGFyZSBtaXNzaW5nKSwKICAgYnV0IGl0IHNob3VsZCBnaXZlIHRoZSBnZW5lcmFsIGZsYXZvdXIuCgoyMDA0LTAxLTE0IDA1OjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvc25tcF9lbnVtLmMKOgoKICAgTmV3IGludGVyZmFjZXMgdG8gZmluZCBhbiB1bnVzZWQgdmFsdWUgd2l0aGluIGFuIGVudW1lcmF0aW9uIGxpc3QuCgoyMDA0LTAxLTEzIDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMjA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogY2FjaGVfaGFuZGxlci5jLCByb3dfbWVyZ2UuYywKICAgICB0YWJsZV9pdGVyYXRvci5jOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDIwOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDIwOjAzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfdmFycy5jOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDEwOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMSAxNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggdHlwbywgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTAxLTExIDE2OjQzICByc3RvcnkKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0LCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsCiAgICAgbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsIE1ha2VmaWxlLmluOgoKICAgZml4IHJhbmdlIGNoZWNraW5nIGNvZGUsIG5vdGVkIG9uIGNvZGVycyBieSBPbGVnIEl2YW5vdgoKMjAwNC0wMS0wNyAwOTo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF9ub2RlLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwgbWZkLWRhdGEtc2V0Lm0yYwosIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYywKICAgICBzdWJhZ2VudC5tMmM6CgogICBpZiBuZWVkbGVuZ3RoIG5vdCBzZXQsIHNldCB2YXJiaW5kIHZhbF9sZW4gZm9yIEdFVHMsIHZhbGlkYXRlIHZhbF9sZW4gb24gc2V0OwogICBkb24ndCBkZWNsYXJlcyBmdW5jdGlvbnMgd2hpY2ggY2FuJ3QgYmUgaW5saW5lZCBhcyBpbmxpbmU7IGNvbW1lbnQgdHdlYWtzCgoyMDA0LTAxLTA2IDE0OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSB0cmFuc2xhdGUgYSBNSUIgdHlwZSBvZiBJUEFERFIgdG8gSVBBRERSRVNTIGluc3RlYWQgb2YgT0NURVRfU1RSSU5HLgogICAtIHNtYWxsIG90aGVyIGJ1ZyBmaXgKCjIwMDQtMDEtMDYgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY2hhbmdlIHRoZSBtYW51YWwgc28gaXQgZG9lc24ndCByZWZlcmVuY2UgVUNELVNOTVAgdjMgKGFoZW0pCgoyMDA0LTAxLTA2IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHByb3BlciBzb3J0aW5nIHdoZW4gTmV0U05NUDo6T0lEIGlzIGF2YWlsYWJsZS4KCjIwMDQtMDEtMDEgMTY6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG9ubHkgc2V0IGRlZmF1bHRzIGlmIG5vdCBhbHJlYWR5IHNldAoKMjAwMy0xMi0zMCAyMDozNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQueHMsIHRlc3QucGw6CgogICBoYW5kbGUgaW1wbGllZCBpbmRleGVzCgoyMDAzLTEyLTMwIDE5OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgQSBuZXcgLT5nZXRfaW5kZXhlcygpIG1ldGhvZCB0byByZXR1cm4gdGhlIGV4dHJhY3RlZCBpbmRleGVzIGZyb20gYSBPSUQuCgoyMDAzLTEyLTMwIDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhbGxvdzogc2VwYXJhdGVkIHBhdGhzIGluIE1JQjJDX0RJUiBlbnYgdmFyCgoyMDAzLTEyLTMwIDE1OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX2VudW0ubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmkKOgoKICAgdW5xdW90ZSB1YyBjYWxscywgc2luY2UgZXZhbCB3aXRoIGludGVycHJldCBhcyBhIGxpdGVyYWwgYW5kIEkgY2FuJ3QKICAgcmVwcm9kdWNlIHRoZSAnYmFyZXdvcmQnIHByb2JsZW0gdGhhdCBtYWRlIG1lIHF1b3RlIGluIHRoZSBmaXJzdCBwbGFjZQoKMjAwMy0xMi0yOSAxMjowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICByZW1vdmUgdW51c2VkIHJlcXVlc3RfbW9kZQoKMjAwMy0xMi0yNiAxMjo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmVuYW1lIHZhcnMgZm9yIGNsYXJpZmljYXRpb246ICR7dGFibGV9X2N0eCogLT4gJHt0YWJsZX1fcm93cmVxX2N0eCo7IGFkZAogICB2YXJzIGZvciBtZmRfZGVmYXVsdHM7IHVzZSBuZXcgbWliMmMgcHVzaC9wb3AgdG8gZ2VuZXJhdGUgcGVyIHRhYmxlIGRlZmF1bHRzCiAgIGZpbGUgZGVmYXVsdC10YWJsZS0kdGFibGUubTJkIGNvbnRhaW5pbmcgY3VycmVudCB2YWx1ZXMgb2Ygc29tZSBtMmMgdmFycwoKMjAwMy0xMi0yNiAxMjo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmksIG1mZC1kYXRhLWdldC5tMmMKLCBtZmQtZGF0YS1zZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywKICAgICBtZmQtcmVhZG1lLm0yYywgbWZkLXRvcC5tMmMsIG5vZGUtZ2V0Lm0yaSwKICAgICBub2RlLXNldC5tMmksIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLCBwYXJlbnQtc2V0Lm0yaQosIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLAogICAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaToKCiAgIHJlbmFtZSB2YXJzIGZvciBjbGFyaWZpY2F0aW9uOiBpdHJfY3R4KiAtPiBsb29wX2N0eCosIGxvb3AqIC0+IGxvb3BfY3R4KiwKICAgJHt0YWJsZX1fY3R4KiAtPiAke3RhYmxlfV9yb3dyZXFfY3R4KgoKMjAwMy0xMi0yNiAxMjozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBxdW90ZSBhc3NpZ25tZW50IG9mIHVwcGVyY2FzZWQgbmFtZSwgc28gdmFsdWVzIHRoYXQgc3RhcnQgd2l0aCBhIGRpZ2l0IGRvbid0CiAgIGdldCBpbnRlcnByZXRlZCBhcyBhIGJhcmUgd29yZDsgY2hnIGRlYnVnIHByaW50IHRvIGNvbW1lbnQKCjIwMDMtMTItMjYgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICAgIG0yY19zZXR1cF9lbnVtLm0yaToKCiAgIHF1b3RlIGFzc2lnbm1lbnQgb2YgdXBwZXJjYXNlZCBuYW1lLCBzbyB2YWx1ZXMgdGhhdCBzdGFydCB3aXRoIGEgZGlnaXQgZG9uJ3QKICAgZ2V0IGludGVycHJldGVkIGFzIGEgYmFyZSB3b3JkOyBjb25zb2xpZGF0ZSAkbTJjX2VuYW1leS8kbTJjX2luYW1lIHByb2Nlc3NpbmcKICAgaW50byBtMmNfc2V0dXBfZW51bS5tMmkKCjIwMDMtMTItMjMgMDc6MTkgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgcmVtb3ZlIGRlcHJlY2F0ZWQgb3B0aW9uIGZyb20gZXhhbXBsZQoKMjAwMy0xMi0yMyAwNzoxOCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjaGFuZ2UgZGVmYXVsdCBycG0gYnVpbGQgaW5zdHJ1Y3Rpb25zIHRvIGVtYmVkIHBlcmwKCjIwMDMtMTItMjMgMDc6MTcgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICByZS13b3JrIHBlcmwgb3B0aW9ucyB0byBmaXggcHJvYmxlbSB3L2NvbmZpZ3VyZSBhcmd1bWVudCBxdW90aW5nCgoyMDAzLTEyLTIzIDAyOjAwICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBOb3RlIHRoYXQgQ3lnd2luIG5vIGxvbmdlciBuZWVkcyBhIHNlcGFyYXRlIHJlZ2V4IGxpYnJhcnkKICAgUmVwb3J0ZWQgYnkgSm9obiBNY0Nhc2gKCjIwMDMtMTItMjIgMTY6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBwdXNoL3BvcDsgcmUtd29yayBpbmRleC9pbnRlcm5hbGluZGV4L2V4dGVybmFsaW5kZXgvbm9uaW5kZXggc2V0dXAKCjIwMDMtMTItMTkgMjA6MzggIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgICBtaWIyYy5hcnJheS11c2VyLmNvbmYsIG1pYjJjLmNoZWNrX3ZhbHVlcy5jb25mLAogICAgIG1pYjJjLmNvbmY6CgogICBQYXRjaCBmcm9tIEJyaWFuIEJ1ZXNrZXIgdG8gZml4IG1pc2MgcHJvYmxlbXMgKHZhcmlhYmxlIHt9aW5nLCAuLi4pCgoyMDAzLTEyLTE4IDAxOjU4ICBkdHMxMgoKICAgKiBtYW4vc25tcG5ldHN0YXQuMToKCiAgIEZpeCBtb3JlIG1hcmt1cCBlcnJvcnMsIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZC4KCjIwMDMtMTItMTYgMDI6MDAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBCZSBjb25zaXN0ZW50IGluIHVzZSBvZiBmb3J3YXJkIGRlZmluaXRpb25zIChleHBsaWNpdCB2cyBpbXBsaWNpdCBzdHJ1Y3QpCiAgIFJlcG9ydGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUKCjIwMDMtMTItMTEgMTg6NTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIHJwbSBidWlsZCBpbnN0cnVjdGlvbnMKCjIwMDMtMTItMTEgMTg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZml4IHVwZGF0ZWQgcGVybCBvcHRpb25zIGZvciBuZXcgcnBtIG1ldGhvZAoKMjAwMy0xMi0xMSAxODo0MSAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICByZW1vdmUgVkVSL1JFTCwgdXNlIFZFUlNJT04vUkVMRUFTRTsgdXBkYXRlIHBlcmwgb3B0aW9ucyBmb3IgbmV3IHJwbSBtZXRob2Q7CiAgIGFkZCB0YXJnZXQgdG8gYnVpbGQgcnBtIHRyZWU7IGRvbid0IGhhcmRjb2RlIGFyY2hpdGVjdHVyZQoKMjAwMy0xMi0xMSAxODozOCAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBkb2N1bWVudCAtRCBvcHRpb247IGFkZCBNYWtlZmlsZSB0eXBlCgoyMDAzLTEyLTExIDE4OjIyICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgZG9uJ3QgcmVxdWlyZSBwZXJsOyBhZGQgbm90ZSBvbiB2ZW5kb3IgcmVsZWFzZXMKCjIwMDMtMTItMTEgMDg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIHJ1biBpbmRlbnQKCjIwMDMtMTItMTEgMDg6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIG1vdmUgbG9naWMgdG8gc2tpcCB3aGVuIGNhY2hpbmcgZGlzYWJsZSwgbm8gY2FjaGUgZm91bmQgb3IgY2FjaGUgZGlzYWJsZWQKCjIwMDMtMTItMTAgMDY6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZGVsYXkgc291cmNpbmcgb2YgbnNiLWZ1bmN0aW9uczsgbXYgcmMgZmlsZSBpbnRvIH4vLnNubXA7IHJlbW92ZSBidWlsZCBkaXIKICAgb24gc3VjY2VzcwoKMjAwMy0xMi0xMCAwNjo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBkZWxheSBzb3VyY2luZyBvZiBuc2ItZnVuY3Rpb25zOyBtdiByYyBmaWxlIGludG8gfi8uc25tcAoKMjAwMy0xMi0xMCAwNjoxNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG5ldyB2YXJzOiBOU0JfVkVSU0lPTiBOU0JfQlVJTERfU1VGRklYOyBkb24ndCB1c2UgaG9zdG5hbWUgLXMsIHNpbmNlIHN1bgogICBkb2Vzbid0IHN1cHBvcnQgaXQ7IHR3ZWFrIGRlZmF1bHQgcGF0aHMKCjIwMDMtMTItMTAgMDI6NDEgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMy5kZWYsIHNubXAuY29uZi41LmRlZiwKICAgICBzbm1wX2NvbmZpZy41LmRlZjoKCiAgIEZpeCBhc3NvcnRlZCBtYXJrdXAgZXJyb3JzLCByZXBvcnRlZCBieSBFcmljIFJheW1vbmQuCgoyMDAzLTExLTMwIDE0OjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgZml4IHNjb3BlIG9mIGhhdmVfZGlyZW50IGlmZGVmCgoyMDAzLTExLTMwIDE0OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIGFkZCBjb21tZW50czsgcmVtb3ZlIGFzc2VydCBvbiB2YWxpZCBjb25kaXRpb24KCjIwMDMtMTEtMzAgMTQ6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkZWJ1ZyBtc2cgd2hlbiBza2lwcGluZyB2YiB3aXRoIGJvZ3VzIGluZGV4CgoyMDAzLTExLTMwIDE0OjE5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICByZWFkYWJpbGl0eSBmaXggLSB1c2UgbWFjcm8gaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUKCjIwMDMtMTEtMjggMDU6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgSWYgYSByb3cgaXMgY3JlYXRlZCB2aWEgYSBTRVQgcmVxdWVzdCwgdGhlbiBpdCBuZWVkcyB0byBiZSBtYWRlIGF2YWlsYWJsZQogICB0byB0aGUgb3RoZXIgY29sdW1ucyBhbmQgcGFzc2VzLiAgUHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgaW5zZXJ0aW5nIHRoaXMKICAgaW50byB0aGUgcmVxdWVzdCBsaXN0LgogICAoVGhpcyBsb29rcyBzdXNwaWNpb3VzbHkgc2ltaWxhciB0byBhbm90aGVyIHJlY2VudCBwYXRjaDotKSAgIERvZXMKICAgdGhpcyBmdW5jdGlvbmFsaXR5IHBlcmhhcHMgYmVsb25nIHdpdGhpbiB0aGUgdG9wLWxldmVsICd0YWJsZScgaGFuZGxlcj8pCgoyMDAzLTExLTI1IDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gc3VwcG9ydCAkbm9kZS5kZXNjcmlwdGlvbgogICAtIHN1cHBvcnQgQHByaW50ZiAuLi5ACgoyMDAzLTExLTI1IDEyOjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZGVmYXVsdCBidWlsZCBkaXJzOyBkZWZhdWx0IHRvIGhvc3QvdmVyc2lvbiBpbnN0ZWFkIG9mIHBsYXRmb3JtL3ZlcnNpb24KICAgKHNpbmNlIHNmIGJ1aWxkIGhvc3RzIGtlZXAgY2hhbmdpbmcgcGxhdGZvcm1zKQoKMjAwMy0xMS0yNSAxMjo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBtb3ZlIGRpciBtdW5naW5nIGluIG5zYi1mdW5jdGlvbnMKCjIwMDMtMTEtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICB2ZXJzaW9uIHN0YW1wIHRoZSAuc3BlYyBmaWxlCgoyMDAzLTExLTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICB2ZXJzaW9uIG51bWJlciBjaGFuZ2UKCjIwMDMtMTEtMjQgMDk6MzggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZCBhIGdyZWVjZSBtaXJyb3IKCjIwMDMtMTEtMjQgMDY6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgSGFuZGxlIGludmFsaWQgKDY0LWJpdCkgdmFsdWVzIGZvciBlbmdpbmUgYm9vdHMgJiB0aW1lCiAgIFBhdGNoICM4MjcwNDQgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDkyNTAKCjIwMDMtMTEtMjQgMDY6MjMgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ29ycmVjdCB1c2FnZSBpbmZvcm1hdGlvbiBmb3IgLUN4IG9wdGlvbnMKICAgUGF0Y2ggIzgxODc2NiBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgxODYzNAoKMjAwMy0xMS0yNCAwNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKCiAgIEhhbmRsZSBHRVRORVhUIHJlcXVlc3RzIG9uIHRoZSBockRldmljZVRhYmxlIHdpdGggYSAidG9vIGxhcmdlIiBpbmRleC4KICAgUGF0Y2ggIzgxMTcxNyBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwNzMxNQoKMjAwMy0xMS0yMSAwOToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBkaXNraW8gdmFsdWVzIG9uIDY0LWJpdCBTb2xhcmlzLgogICBQYXRjaCAjODA5MjU1IGJ5IEJvYiBSb3dsYW5kcywgdG8gZml4IGJ1ZyAjODA4OTc1CgoyMDAzLTExLTIxIDA5OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBGaXggU29sYXJpcyBpbXBsZW1lbnRhdGlvbiBvZiBpZkluTlVjYXN0UGt0cyAmIGlmT3V0TlVjYXN0UGt0cwogICBQYXRjaCAjODA4ODA3IGJ5IEJvYiBSb3dsYW5kcywgdG8gZml4IGJ1Z3MgIzgwODM5OSAmICM4MDg0MTcKCjIwMDMtMTEtMjEgMDg6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEltcGxlbWVudCBpZlNwZWNpZmljIG9iamVjdCBvbiBTb2xhcmlzLgogICBQYXRjaCAjODA4NzQ2IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA4NDMwCgoyMDAzLTExLTIxIDA3OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgRW5zdXJlIDMyLWJpdCB0aW1ldGlja3MgdmFsdWUgcmV0dXJuZWQgb24gU29sYXJpcyBraXQuCiAgIFBhdGNoICM4MDgwNzQgYnkgQm9iIFJvd2xhbmRzLCB0byBmaXggYnVnICM4MDc3OTYKCjIwMDMtMTEtMjEgMDc6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgUmV0dXJuIGFuIGVycm9yIG9uIGZhaWxlZCBvdmVycnJpZGUgd3JpdGUuCiAgIFBhdGNoICM4MDgwNTQgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDUyNTQKCjIwMDMtMTEtMjEgMDY6MzAgIGR0czEyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wdXNtLjEuZGVmOgoKICAgTWlub3IgY2xhcmlmaWNhdGlvbnMgdG8gYSBmZXcgbWFuIHBhZ2VzLgogICBQYXRjaCAjODA3OTM3IGZyb20gQm9iIFJvd2xhbmRzCgoyMDAzLTExLTIxIDA2OjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgSGFuZGxlIHN0b3JhZ2UgdW5pdHMgPDEwMjQgYnl0ZXMKICAgKFBhdGNoICM4MDEzNDEgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM3NTc0NDgpCgoyMDAzLTExLTIxIDA1OjIxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBXaGVuIHdlIHJlYWNoIHRoZSBlbmQgb2YgdGhlIGxhc3QgdGFibGUsIG1ha2Ugc3VyZSB0aGF0IHRoZSBoaWdoZXIgbGV2ZWwKICAgaGFuZGxlcnMgd2lsbCByZWFsaXNlIHRoaXMsIGFuZCBtb3ZlIG9uIHRvIHRoZSBuZXh0IHJlZ2lzdGVyZWQgbW9kdWxlLgogICBBbHNvIGNhdGNoIG1pc3NpbmcgY29sdW1ucyB3aGVuIHByb2Nlc3NpbmcgR0VUTkVYVCByZXF1ZXN0cy4KCjIwMDMtMTEtMjEgMDQ6MTkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFN1cHBvcnQgYWNrbm93bGVkZ2VkIG5vdGlmaWNhdGlvbnMgKEluZm9ybSBhbmQgQWdlbnRYIE5vdGlmeSkgYXMKICAgd2VsbCBhcyB1bmFja25vd2xlZGdlZCBvbmVzLiAgIEZpcnN0IHJlcG9ydGVkIGJ5IGRhdmlkQGdyYW5jYW5hcmlhCiAgIFByb2JhYmx5IGRvZXNuJ3QgcmVzZW5kIGlmIG5vIHJlc3BvbnNlIGlzIHJlY2VpdmVkLgoKMjAwMy0xMS0yMCAwNzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYzoKCiAgIE1vdmUgc3VmZml4IHByb2Nlc3Npbmcgd2l0aGluIHRoZSByZXF1ZXN0IGxvb3AsIHNpbmNlIHY1LjEgaXRlcmF0b3IKICAgaGFuZGxlcnMgbWF5IHJlY2VpdmUgbXVsdGlwbGUgcmVxdWVzdCB2YXJiaW5kcy4gIEZpeCBwcm92aWRlZCBieSBCYXJiIFJvZXNjaAoKMjAwMy0xMS0yMCAwNjozNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFByb3RlY3QgJ3VucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uJyBmcm9tIGJlaW5nIGNhbGxlZCB3aXRoIGEgTlVMTAogICBzZXNzaW9uIHBvaW50ZXIuICAoVXNlZCB3aGVuIHVucmVnaXN0ZXJpbmcgImludGVybmFsIiBNSUIgbW9kdWxlcykKCjIwMDMtMTEtMjAgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgQmUgY29uc2lzdGVudCBpbiB1c2Ugb2YgcmV0dXJuIHZhcmlhYmxlIG5hbWUgZm9yIEhQLVVYIDExCiAgIChGaXhlZCBidWcgIzg0NTQ2MCkKCjIwMDMtMTEtMTkgMTY6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZ3VyZS5pbgoKMjAwMy0xMS0xOSAxNjoyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGRvbid0IHVzZSBub24tcG9ydGFibGUgLmM9Lm8gdHlwZSBzdWJzdGl0dXRpb25zIGluIG1ha2VmaWxlOyB0aHVzIHB1dCBvYmovbG9iagogICBnZW5lcmF0aW9uIGJhY2sgaW4gY29uZmlndXJlCgoyMDAzLTExLTE5IDA3OjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBFbmFibGUgcmV0cmllcyBvbiBHZXROZXh0IG5vU3VjaEluc3RhbmNlIGV4Y2VwdGlvbnMuIEZpeGVzIGJ1ZyAjODQzODQyCgoyMDAzLTExLTE5IDA3OjMyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwgYWdlbnQvaGVscGVycy93YXRjaGVyLmMKOgoKICAgRml4IHdhdGNoZWQgdGltZXN0YW1wIHJlZ2lzdHJhdGlvbi4gJ21hcmtlcl90JyBpcyBhbHJlYWR5IGEgcG9pbnRlciwKICAgc28gZG9lc24ndCBuZWVkIGZ1cnRoZXIgZGVyZWZlcmVuY2luZyEKCjIwMDMtMTEtMTcgMDk6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jOgoKICAgRml4IGNyZWF0aW9uIG9mIG5ldyBsb2dnaW5nIGVudHJpZXMuCgoyMDAzLTExLTE3IDA5OjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgSWYgYSByb3cgaXMgY3JlYXRlZCB2aWEgYSBTRVQgcmVxdWVzdCwgdGhlbiBpdCBuZWVkcyB0byBiZSBpbnNlcnRlZCBpbnRvCiAgIHRoZSBpdGVyYXRpb24gZGF0YSBzdHJ1Y3R1cmVzLCBzbyB0aGF0IGl0J3MgYXZhaWxhYmxlIHRvIG90aGVyIGNvbHVtbnMgJiBwYXNzZXMuCgoyMDAzLTExLTE3IDA5OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgUmVsZWFzZSB0aGUgZGF0YSBzdHJ1Y3R1cmUgb25jZSBpdCdzIG5vIGxvbmdlciBuZWVkZWQuCgoyMDAzLTExLTE3IDAyOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL3RjcC5jLCB1Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEF2b2lkIHVzaW5nIHRoZSB2YXJpYWJsZSBuYW1lICdoeicgKHdoaWNoIGdldHMgY29ycnVwdGVkIG9uIEFJWCBhbmQgSFBVWAogICBieSBzeXN0ZW0gcmVkZWZpbml0aW9ucykuICBTZWUgYnVnICM4NDI0NzUgJiAjODQyNDgzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjkgLT4gVjUuMQoKMjAwMy0xMS0xMyAxODo0NiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJldmVyc2UgNS54IGFuZCA0LnggbGlzdGluZyBzaW5jZSwgdW0sIHRoaXMgaXMgNS54IChhZ2FpbikKICAgCjIwMDMtMTEtMTMgMTg6NDQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZXZlcnNlIDUueCBhbmQgNC54IGxpc3Rpbmcgc2luY2UsIHVtLCB0aGlzIGlzIDUueAogICAKMjAwMy0xMS0xMyAxODo0MiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9kZXByZWNhdGVkLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMKLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4xCiAgIAoyMDAzLTExLTEzIDE4OjIxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjEKICAgCjIwMDMtMTEtMTMgMTg6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgcGF0Y2ggIzgzODExMiB0byBmaXggd2luZG93cyBwZXJsIGJ1aWxkaW5nCiAgIAoyMDAzLTExLTEzIDE3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggcmVnZXhwIGZvciBkdXBsaWNhdGUgaW5kZXggZXhjbHVzaW9uIHRvIG9ubHkgbWF0Y2ggd2hvbGUgd29yZHMKICAgCjIwMDMtMTEtMTMgMTU6MDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgc3Rhc2hfY2FjaGUKICAgCjIwMDMtMTEtMTMgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNDYWNoZS5jLCBuc0RlYnVnLmMsCiAgIG5zTG9nZ2luZy5jOgoKICAgLSBwcm9wZXJseSBjaGVjayBmb3IgdGhlIC0+cHJvY2Vzc2VkIGZsYWcuCiAgICAgLSAoZml4ZXMgYSBidWcgcG9pbnRlZCBvdXQgYnkgQnJ1Y2Ugd2hlcmUgYSBnZXRuZXh0IHJldHVybmVkIG5vU3VjaEluc3RhbmNlKQogICAKMjAwMy0xMS0xMyAxMjoxMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRvbid0IGNhbGwgaGFuZGxlcnMgZm9yIGVycm9yIHJlY292ZXJ5IGlmIHRoZXkgaGFkbid0IGJlZW4gY2FsbGVkIGZvciBhdCBsZWFzdAogICByZXNlcnZlMSAoZS5nLiBzZXQgdy9pbnZhbGlkIGluZGV4ZXMpCiAgIAoyMDAzLTExLTEzIDExOjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBmaXggdm9pZCBkZWZpbml0aW9uIGZvciBuZXRzbm1wX2Fzc2VydCB3aGVuIGRlYnVnZ2luZyBkaXNhYmxlZCwgbm90ZWQgb24gY29kZXJzCiAgIAoyMDAzLTExLTEzIDExOjMyICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYXBwbHkgcGF0Y2ggWyA4NDE0NjMgXSA1LjFyYzEgUkVBRE1FLndpbjMyIGNoYW5nZXMKICAgCjIwMDMtMTEtMTIgMDk6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgUHJvdmlkZWUgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IgUm91dGVfU2Nhbl9SZWxvYWQKICAgSFAtVVggMTEgb25seS4gIExhdGVzdCBpbiB0aGUgc2FnYSBvZiBidWcgIyA4NDA2MTUKICAgCjIwMDMtMTEtMTIgMDQ6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3BUYWJsZS5jCjoKCiAgIEZpeCBtb3JlIEhQLVVYIDExIHNwZWNpZmljIGJvZ3VzIGNvZGUuCiAgIFRyYWNraW5nIEJ1ZyAjODQwNjE1CiAgIAoyMDAzLTExLTEyIDAyOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIFVzZSBjb3JyZWN0IHZhcmlhYmxlIGZvciBkZXRlY3Rpbmcgd2hpY2ggb2JqZWN0IGlzIGJlaW5nIHByb2Nlc3NlZC4KICAgKEhQVVgtMTEgb25seSAtIGZpeGVzIGJ1ZyAjODQwNjE1KQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0xMS0xMCAwODo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBkb24ndCBkb3VibGUgY3JlYXRlIHRlbXAgZGlyZWN0b3J5CiAgIAoyMDAzLTExLTEwIDA4OjQ2ICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBhbHdheXMgdXNlIGlubGluZSwgbm93IHRoYXQgaXQgd29ya3MgKG5lZWRlZCBleHRlcm4pCiAgIAoyMDAzLTExLTA3IDE2OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwgbWZkLWludGVyZmFjZS5tMmMKLCBtZmQtdG9wLm0yYywgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaQo6CgogICB1c2UgREVCVUdUUkFDRSBpbnN0ZWFkIG9mIGhhcmRjb2RlZCBfX0ZVTkNUSU9OX18KICAgCjIwMDMtMTEtMDcgMTA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgbXVjaCBiZXR0ZXIgZXJyb3IgbWVzc2FnZSB3aGVuIGEgTUlCIG5vZGUgY2FuJ3QgYmUgZm91bmQgaW4gdGhlCiAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKICAgCjIwMDMtMTEtMDcgMTA6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICAtIGZpeCBzZWQgc2NyaXB0IHJlZ2V4cCBmb3Igb2RkIHZlcnNpb25zIChwcmUyYiwgZWcpLgogICAtIG1ha2UgLWggYWN0dWFsbHkgcHJpbnQgaGVscC4KICAgCjIwMDMtMTEtMDcgMDk6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBicmFjZXMgYXJvdW5kIHZhciBuYW1lCiAgIAoyMDAzLTExLTA2IDIwOjQ2ICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1c2UgaW5saW5lIHRvIF9faW5saW5lIGZyb20gbWFpbiBuZXQtc25tcC1jb25maWcgZmlsZTsgYWRkIGV4dGVybiB0byBiYXNpYwogICBORVRTTk1QX0lOTElORSBkZWYsIHBlciBNUyB0ZWNoIG5vdGUgMTIzNzY4CiAgIAoyMDAzLTExLTA2IDIwOjQyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBseSBwYXRjaCBbIDgyODM2MiBdIEZpcnN0IHBhc3MgYXQgTWluR1czMgogICAKMjAwMy0xMS0wNiAyMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzeXN0ZW0uYyAoVjUtMC1wYXRjaGVzLjIpLCBzeXN0ZW0uYzoKCiAgIGFwcGx5IHBhdGNoIFsgODM2MTYyIF0gNS4xcHJlMyB3aW4zMiBta2RpcmhpZXIoKQogICAKMjAwMy0xMS0wNiAyMDowMCAgcnN0b3J5CgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBhcHBseSBwYXRjaCBbIDgzNzYzMyBdIDUuMXByZTMgd2luMzIgbGliIHJlbmFtZQogICAKMjAwMy0xMS0wNiAxNjowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICByZXN0b3JlIGFjY2lkZW50YWxseSBkZWxldGVkIFxuIGluIHRyYWNlIG1hY3JvCiAgIAoyMDAzLTExLTA1IDE5OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgY29tbWVudCBmb3IgcG9zc2libGUgZnV0dXJlIG9wdGltaXphdGlvbgogICAKMjAwMy0xMS0wNSAxOToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGFwcGx5IHNwaXJpdCBvZiBwYXRjaCA4MzY3MjE6IHVzZSBuZXcgdG1wIGZpbGUgcGF0dGVybiBtYWNybzsgdXNlIF9vcGVuIG9uCiAgIHdpbmRvd3M7IGFkZCBlcnIgbG9nICYgZGVidWcgbXNnOyBpbmNsdWRlIHN5cy9zdGF0LmggaWZmIGV4aXN0cwogICAKMjAwMy0xMS0wNSAxOTowNSAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgYXBwbHkgc3Bpcml0IG9mIHBhdGNoIDgzNjcyMTogZGVmaW5lIEhBVkVfU1lTVEVNOyBhZGQgbmV3IHRtcCBmaWxlIHBhdHRlcm4gbWFjcm8KICAgCjIwMDMtMTEtMDUgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgYXBwbHkgc3Bpcml0IG9mIHBhdGNoIDgzNjcyMSBmb3IgcnVuX3NoZWxsX2NvbW1hbmQ6IHRlc3QgZm9yIGJhZCByZXR1cm4gY29kZXMKICAgZnJvbSBmdW5jdGlvbnM7IGRvbid0IHRvdWNoIG91dF9sZW4gaWYgb3V0cHV0IG5vdCBzZXQgb3Igb3V0X2xlbiBpcyBudWxsCiAgIAoyMDAzLTExLTA1IDE4OjU1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlZ2VuZXJhdGUgZnJvbSBhY2xvY2FsLmgsIHdoaWNoIHJldmVhbHMgdGhhdCB3ZSBjYW4ndCBkbyBhbiBpZmRlZiB0ZXN0CiAgIHRvIHByZXZlbnQgcmVkZWZpbmluZyBQQUNLQUdFXyogdW5sZXNzIGl0IGlzIG1hbnVhbGx5IHJlLWFkZGVkIGVhY2ggdGltZQogICB0aGlzIGZpbGUgaXMgcmVnZW5lcmF0ZWQgZnJvbSBhY2NvbmZpZy5oLiBCbGVjaC4KICAgCjIwMDMtMTEtMDUgMTg6NTAgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIG1hY3JvIGZvciB0ZW1wIGZpbGUgbmFtZSAoY29uZmlndXJlIG9wdGlvbiB0YmQpCiAgIAoyMDAzLTExLTA1IDE4OjE0ICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzMyMTYgXSA1LjEucHJlMyBXaW4zMiBjb21waWxlIHBhdGNoCiAgIAoyMDAzLTExLTA1IDE4OjEzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWcuaW4KICAgCjIwMDMtMTEtMDUgMTg6MTEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBpbmNsdWRlIG1pYmdyb3VwIHV0aWxpdGllcyBmb3IgbWluaS1hZ2VudCAocnVuX3NoZWxsX2NvbW1hbmQgZm9yIHNubXB0cmFwZCkKICAgCjIwMDMtMTEtMDUgMDk6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1jb3B5Lm0yaSwKICAgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpCiwgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksIG1mZC1pbnRlcmZhY2UubTJjCjoKCiAgIGFsd2F5cyBjb252ZXJ0IGdlbmVyYXRlZCBhcnJheSBsZW4gdG8gYXJyYXkgZWxlbWVudCBjb3VudCAobm90IGJ5dGVzKQogICAKMjAwMy0xMS0wNSAwMjo1MiAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0YWJsZS5jIChWNS0wLXBhdGNoZXMuMSksIHNubXB0YWJsZS5jOgoKICAgRG9uJ3QgdHJ5IHNlYXJjaGluZyBmb3IgY29sdW1uIG9iamVjdHMgaWYgdGhlcmUgaXNuJ3QgYW55dGhpbmcgdG8gc2VhcmNoLgogICBSZXBvcnQgcHJvYmxlbXMgdXNpbmcgdGhlIG9iamVjdCBuYW1lIG9yaWdpbmFsbHkgc3BlY2lmaWVkLCByYXRoZXIgdGhhbgogICBhIHRlbXBvcmFyeSBpbnRlcm5hbCBidWZmZXIuCiAgIAoyMDAzLTExLTA0IDE1OjA2ICByc3RvcnkKCiAgICogd2luMzIvOiBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgSU5MSU5FIGNoYW5nZXMgLSBkb24ndCB1c2UgaW5saW5lIGZvciB0aGUgRExMIHZlcnNpb24sIGFzIGl0J3MgcmVwb3J0ZWQgdG8KICAgY2F1c2UgZXJyb3JzCiAgIAoyMDAzLTExLTA0IDE0OjQ1ICByc3RvcnkKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdywKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIGFwcGx5IHBhdGNoIFsgODMzMjE2IF0gNS4xLnByZTMgV2luMzIgY29tcGlsZSBwYXRjaAogICAKMjAwMy0xMS0wNCAwODo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkb24ndCBkZWZpbmUgY29uZmlndXJlIFBBQ0tBR0VfKiBtYWNyb3MgaWYgYWxyZWFkeSBkZWZpbmVzLgogICAKMjAwMy0xMS0wNCAwODowNCAgZHRzMTIKCiAgICogRkFROgoKICAgQSBuZXcgZW50cnkgZGlzY3Vzc2luZyB0YWJsZXMgd2l0aCA+MjU2IGNvbHVtbnMuCiAgIAoyMDAzLTExLTA0IDA3OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LXNldC5tMmk6CgogICBhbHdheXMgZ2VuZXJhdGUgY29kZSB3aGVuIGRhdGEgY29udGV4dCBpcyBnZW5lcmF0ZWQKICAgCjIwMDMtMTEtMDQgMDc6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmk6CgogICBjbGFyaWZ5IGNvbW1lbnRzCiAgIAoyMDAzLTExLTA0IDA3OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaToKCiAgIGNsYXJpZnkgY29tbWVudHM7IHVzZSBnZW5lcmljLXNldCBpbnN0ZWFkIG9mIGdldAogICAKMjAwMy0xMS0wNCAwNzoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGNsYXJpZnkgY29tbWVudHMKICAgCjIwMDMtMTEtMDQgMDc6MTkgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBzeW5jIGNvbnRyaWJ1dG9ycyB3LzUuMC54CiAgIAoyMDAzLTExLTA0IDAxOjI4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBEb2N1bWVudCB0aGUgZWZmZWN0IG9mIC1DIG9uIHBlcnNpc3RlbnQgY29uZmlnIGZpbGVzLgogICAKMjAwMy0xMS0wMyAxNDoyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBmaXggZ2VuZXJhdGVkIGNvZGUgZm9yIHVuZG9fc2V0dXAKICAgCjIwMDMtMTEtMDMgMTI6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIGNsYXJpZnkgY29tbWVudHM7IHJlbW92ZSBib2d1cyBhc3NlcnRzCiAgIAoyMDAzLTExLTAzIDEwOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWNoYXIubTJpOgoKICAgbWFrZSBJU19TRVQgbWFjcm9zIHVuaXF1ZSBwZXIgbm9kZQogICAKMjAwMy0xMS0wMyAxMDozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpOgoKICAgZml4IHZhciBuYW1lIHR5cG8KICAgCjIwMDMtMTEtMDMgMTA6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmk6CgogICBtdXN0IHVzZSBhZGRyIG9mIGxvY2FsIHZhciB0byBnZXQgcHRyCiAgIAoyMDAzLTExLTAzIDEwOjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaToKCiAgIG11c3QgdXNlIGFkZHIgb2YgbG9jYWwgdmFyIHRvIGdldCBwdHIKICAgCjIwMDMtMTEtMDMgMTA6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIHNldCB1cCBkZWZhdWx0cyBmb3IgbWZkIHRhYmxlcwogICAKMjAwMy0xMS0wMyAwNzo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVjb2duaXplIFNOTVBfTVNHX1NFVCBpcyBub3QgYSB2YWxpZCBHRVQgbW9kZTsgY29tbWVudCB0d2Vha3MKICAgCjIwMDMtMTEtMDMgMDc6MjYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgUmVjb2duaXNlIFNOTVBfTVNHX1NFVCBhcyBhIHZhbGlkIFNFVCBtb2RlCiAgIChzbyB0aGF0IHRoZSB2YXJiaW5kIGNhY2hpbmcgZG9lc24ndCBsb3NlIHRoZSBhc3NpZ25lZCB2YWx1ZXMhKQogICAKMjAwMy0xMS0wMiAwOTo1MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIHJlc3RvcmUgYWNjaWRlbnRhbHkgZGVsZXRlZCBocHV4IGRlZmluZTsgYWRkIGNvbW1lbnQKICAgCjIwMDMtMTEtMDIgMDQ6NTUgIG5iYQoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzOiBjb25zdC1uZXNzLCBjYXN0cywgbWlzc2luZyBwcm90b3lwZXMsCiAgIHVudXNlZCB2YXJpYWJsZXMsIGN2cyBpZ25vcmUgaWdub3JhYmxlIGZpbGVzCiAgIAoyMDAzLTExLTAyIDA0OjUwICBuYmEKCiAgICogLmN2c2lnbm9yZSwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYXBwcy8uY3ZzaWdub3JlLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3M6IGNvbnN0LW5lc3MsIGNhc3RzLCBtaXNzaW5nIHByb3RveXBlcywKICAgdW51c2VkIHZhcmlhYmxlcywgY3ZzIGlnbm9yZSBpZ25vcmFibGUgZmlsZXMKICAgCjIwMDMtMTEtMDIgMDQ6NDQgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEZpeCBhIGJhZCBzeW50YXggd2hlbiB0ZXN0aW5nIGZvciBwZXJsIG1vZHVsZXMKICAgCjIwMDMtMTEtMDIgMDQ6NDIgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgbWFuL3NubXBuZXRzdGF0LjE6CgogICBBbm90aGVyIGxlZnQgb3ZlciAtcCBvcHRpb24KICAgCjIwMDMtMTEtMDEgMTY6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgYWx3YXlzIHF1b3RlIGJvdGggc2lkZXMgb2YgcGVybCBuZS9lcSB0ZXN0czsgYWxsb3cgb3ZlcnJpZGUgb2YgdmFyYmluZCB2YXJpYWJsZQogICBuYW1lOyBhZGQgc3ViaWQgdG8gbm9kZSBzdW1tYXJ5CiAgIAoyMDAzLTExLTAxIDE2OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBtb3ZlIGV4YW1wbGUgYW5kIHRyYW5zaWVudCBkZWZhdWx0cyB0byB0YWJsZSBzZXR1cAogICAKMjAwMy0xMS0wMSAxNjowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnIGN0eCBmcm9tIHZvaWQqIHRvIG5ldHNubXBfZGF0YV9saXN0ICo7IG1vdmUgZXhhbXBsZQogICBhbmQgdHJhbnNpZW50IGRlZmF1bHRzIGhlcmUgKGZyb20gdG9wKQogICAKMjAwMy0xMS0wMSAxNTo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICBhZGQgJ1RPRE8nIGNvbW1lbnQ7IGRvbid0IGdlbmVyYXRlIGNvZGUgaWYgZXhhbXBsZSBub3Qgc2V0ICYgbm90IGdlbmVyYXRlZCBkYXRhCiAgIGNvbnRleHQ7IGRlZmF1bHQgdG8gcmV0dXJuaW5nIG5vIGRhdGEgZm9yIG5vZGU7CiAgIAoyMDAzLTExLTAxIDE1OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHVzZSBxdW90ZXMgb24gYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzOyBmaXggcmVnIHB0ciBkY2wKICAgCjIwMDMtMTEtMDEgMTU6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGFkZCB1c2VycyB0YXJnZXQgdG8gb25seSBidWlsZCB1c2VyIGNvZGUKICAgCjIwMDMtMTEtMDEgMTU6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgcXVvdGVzIG9uIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0czsgY2hlY2tfaW5kZXhzIGlzIG9ubHkgZm9yIHJvdwogICBjcmVhdGlvbjsgZGF0YSBub3QgZm91bmQgb25seSBvayBmb3Igcm93IGNyZWF0aW9uLCBub3Qgc2V0dGFibGU7IHNhbml0eQogICBjaGVjayBmb3IgYm9ndXMgaW5kZXggb2lkIHNpemUgYmVmb3JlIG1lbWNweTsgc2V0IEFTTl9QUklWX1JFVFJZIGZvciBubyBkYXRhLAogICBzbyBzcGFyc2UgdGFibGVzIHdvcmsKICAgCjIwMDMtMTEtMDEgMTU6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHNldCBvaWQgc2l6ZSB0byBtYXggYmVmb3JlIHRyeWluZyB0byBwYXJzZSBvaWQKICAgCjIwMDMtMTEtMDEgMTU6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICByZW5hbWUgcmVmIHRvIGxvb3BfcmVmOyBtb3JlIGFzc2VydHM7IG1vdmUgVE9ETyBvdXRzaWRlIG9mIGNvbmRpdGlvbmFsOyBtb3ZlCiAgIGl0cl9jdHIgZnJlZSBvdXRzaWRlIG9mIGV4YW1wbGUgY29uZGl0aW9uYWwKICAgCjIwMDMtMTEtMDEgMTU6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC5tMmk6CgogICB0d2VhayBpbmRlbnRpb24KICAgCjIwMDMtMTEtMDEgMTU6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtc2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBtb3ZlIFRPRE8gb3V0c2lkZSBvZiBjb25kaXRpb25hbDsgZG9uJ3QgaW5jbHVkZSBjb2RlIGlmIGV4YW1wbGVzIG5vdCBzZXQKICAgCjIwMDMtMTEtMDEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBxdW90ZSBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHM7IGRvY3VtZW50IGluY2x1ZGUgaW4gY29tbWVudHMKICAgCjIwMDMtMTEtMDEgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtY29weS5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgbW92ZSBUT0RPIG91dHNpZGUgb2YgY29uZGl0aW9uYWw7IHR3ZWFrIGNvbmRpdGlvbmFsCiAgIAoyMDAzLTExLTAxIDE1OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBtb3ZlIGNvbmRpdGlvbmFsIGluc2lkZSBpbmNsdWRlCiAgIAoyMDAzLTExLTAxIDE1OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLXJlYWRtZS5tMmMKLCBwYXJlbnQtc2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBxdW90ZSBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHMKICAgCjIwMDMtMTEtMDEgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cykKICAgCjIwMDMtMTEtMDEgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBzeW50YXgtQ09VTlRFUjY0LWdldC5tMmksCiAgIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpLCBzeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaQo6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgZGVmYXVsdCB0byByZXR1cm5pbmcgbm8gZGF0YSBmb3Igbm9kZXMKICAgCjIwMDMtMTEtMDEgMTU6MjEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLCBtZmQtZGF0YS1zZXQubTJjCiwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKQogICAKMjAwMy0xMS0wMSAxNToxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmk6CgogICBuZXcgY29kZSBmb3IgaW5kZXhlcyBhbmQgb2lkIGNvbnZlcnNpb25zCiAgIAoyMDAzLTExLTAxIDEwOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIHVzZSBlbmRvZm1pYnZpZXcgaW5zdGVhZCBvZiBub192YXJzCiAgIAoyMDAzLTEwLTMwIDE3OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKOgoKICAgYWRkIGNvbW1lbnRzCiAgIAoyMDAzLTEwLTMwIDE3OjM3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmdW5jIHBhcmFtZXRlciwgbm90IHZhcmlhYmxlIHdlJ3JlIGFib3V0IHRvIG92ZXJ3cml0ZQogICAKMjAwMy0xMC0zMCAxNzozNiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZGVjbGFyZSAgY2FsbGJhY2tfbWFzdGVyX251bSBldmVuIGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBpcyBub3QKICAgZGVmaW5lZCAoc28gSSBkb24ndCBuZWVkIHRvIGFkZCBtb3JlIGlmZGVmJ3MgaW4gb3RoZXIgY29kZSkKICAgCjIwMDMtMTAtMzAgMTc6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBsb2cgd2FybmluZyBhbmQgZG9uJ3Qgb3BlbiBjYWxsYmFjayB0cmFuc3BvcnQgaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiAgIGlzIG5vdCBkZWZpbmVkCiAgIAoyMDAzLTEwLTMwIDE3OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBsb2cgd2FybmluZyBhbmQgZG9uJ3Qgb3BlbiBjYWxsYmFjayB0cmFuc3BvcnQgaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiAgIGlzIG5vdCBkZWZpbmVkOyBmaXggdGVzdCBmb3IgYWdlbnR4X29wZW5fc2Vzc2lvbgogICAKMjAwMy0xMC0zMCAxNzoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBkb24ndCBjb21waWxlIGNvZGUgaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIG5vdCBkZWZpbmVkCiAgIAoyMDAzLTEwLTMwIDE2OjUxICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBtZXJnZSB0cmFuc3BvcnQgY29tbWVudHMgZnJvbSBub24td2luIG5ldC1zbm1wLWNvbmZpZy5oOyB1bmRlZiBjYWxsYmFjawogICB0cmFuc3BvcnQgaW5zdGVhZCBvZiBkZWYgb2YgMCwgc28gaXQgYWN0dWFsbHkgdHVybnMgb2ZmIGNvZGU7IHVuZGVmIGlubGluZQogICBtYWNyb3MgYmVmb3JlIHJlZGVmaW5pbmcgdGhlbQogICAKMjAwMy0xMC0zMCAxNjo0OSAgcnN0b3J5CgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgcmVwbGFjZSBjb250ZW50cyB3L2luY2x1ZGUgb2YgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc28gb25seSBvbmUgaGVhZGVyCiAgIG5lZWRzIHRvIGJlIG1haW50YWluZWQuIEV2ZXJ5b25lIHNob3VsZCBiZSB1c2luZyB0aGUgbmV3IG9uZSBhbnl3YXksIHJpZ2h0PwogICAKMjAwMy0xMC0zMCAwMTozMSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEb24ndCBjb25maWd1cmUgdGhlIEhvc3QtUmVzb3VyY2VzIHN1cHBvcnQgYnkgZGVmYXVsdC4KICAgSXQncyBhIGdvb2QgaWRlYSwgYnV0IHdlJ3JlIHRvbyBjbG9zZSB0byA1LjEgZm9yIHRoaXMgdG8gYmUgc2FmZS4KICAgCjIwMDMtMTAtMjkgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGlubGluZSAtPiBORVRTTk1QX0lOTElORQogICAKMjAwMy0xMC0yOSAwMzoxMCAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xLmRlZiwgc25tcGQuOC5kZWYsIHNubXB0cmFwZC44LmRlZgo6CgogICBEb2N1bWVudCBuZXcgLUx4IGxvZ2dpbmcgb3B0aW9uIGJsb2NrLCBhbmQgYXNzb3J0ZWQgZGVwcmVjYXRlZCBvcHRpb25zLgogICAKMjAwMy0xMC0yOSAwMjo1OSAgZHRzMTIKCiAgICogRkFROgoKICAgVmFyaW91cyB1cGRhdGVzIHRvIHRoZSBGQVEuCiAgICAgSGlnaGxpZ2h0cyBpbmNsdWRlIGJldHRlciBleHBsYW5hdGlvbiBvZiBhY2Nlc3MgY29udHJvbCBhbmQgdGltZW91dAogICBwcm9ibGVtcywgZGlzY3Vzc2lvbiBvZiB3aGF0IHRyYXBzIGFyZSBzZW50IGFuZCB3aGVyZSB0byAoaW5jbHVkaW5nCiAgIERpc21hbiBFdmVudC1NSUIgc3VwcG9ydCkgYW5kIG1vcmUgb24gbWliMmMgdXNhZ2UgKGluY2x1ZGluZyB0aGUKICAgZGlmZmVyZW5jZXMgYmV0d2VlbiBjb25maWdzLCBhbmQgcG9pbnRlcnMgdG8gZXhhbXBsZXMpLgogICAgIFNlcGFyYXRlIHNlY3Rpb25zIGZvciBjb21waWxhdGlvbiBhbmQgY29kaW5nIG5ldyBtb2R1bGVzCiAgIChyZXN0cnVjdHVyaW5nIGV4aXN0aW5nIGVudHJpZXMpCiAgICAgUmVmZXIgdG8gcHJvamVjdCBhcyAnTmV0LVNOTVAnIHJhdGhlciB0aGFuICdVQ0QnIHRocm91Z2hvdXQKICAgKGV4Y2VwdCB3aGVyZSBzcGVjaWZpY2FsbHkgdjQgb3IgVUNELVNOTVAtTUlCIGFyZSBtZWFudCkKICAgCjIwMDMtMTAtMjkgMDI6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5oIChWNS0wLXBhdGNoZXMuMSksCiAgIHN5c09SVGFibGUuaCAoVjQtMi1wYXRjaGVzLlsxLDJdKSwgc3lzT1JUYWJsZS5oOgoKICAgRml4IG51bGwgZGVmaW5pdGlvbiBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSAod2hlbiBub3QgdXNpbmcgdGhpcyB0YWJsZSkuCiAgIFJlcG9ydGVkIGJ5IE1hcmsgSG9wa2lucwogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTUgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZiwgbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsCiAgIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMwosIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywKICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLAogICBtYW4vbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMKLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMKLCBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLAogICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMKLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMKLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMywgbWFuL25ldHNubXBfdXRpbC4zLAogICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIGZvciA1LjEucHJlMwogICAKMjAwMy0xMC0yOCAxODowNSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMTAtMjggMTc6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGZpeCB2ZXJzaW9uIGZvciA1LjEgcmVsZWFzZQogICAKMjAwMy0xMC0yOCAxMjo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZWdlbmVyYXRlIGZyb20gbmV3IGFjY29uZmlnLmgKICAgCjIwMDMtMTAtMjggMTI6NDUgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZml4IGJ1ZyBbIDgzMDg1MiBdIEJ1aWxkIGRvZXNuJ3Qgd29yayBvbiBIUC1VWCAxMWkKICAgdW5kZWYgbWFjcm8gYmVmb3JlIHJlZGVmaW5pbmcgaXQKICAgCjIwMDMtMTAtMjggMTA6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHJvdXRlX3dyaXRlLmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAgcm91dGVfd3JpdGUuYzoKCiAgIGFwcGx5IHBhdGNoIFsgODEyMDE5IF0gc25tcHNldCBvbiBpcFJvdXRlRGVzdC4xMjcuMC4wLjEga2lsbCBhZ2VudCBkdW1wcyBjb3JlCiAgIGZpeGVzIGJ1ZyBbIDgwODk1OCBdIE9TU3VuIHNubXBzZXQgb24gaXBSb3V0ZURlc3QuMTI3LjAuMC4xIGtpbGwgYWdlbnQgZHVtcHMgLi4uCiAgIAoyMDAzLTEwLTI4IDEwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGRlYnVnX2hhbmRsZXIuYyAoVjUtMC1wYXRjaGVzLjEpLCBkZWJ1Z19oYW5kbGVyLmMKOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzExNjEgXSBuZXRzbm1wX2dldF9kZWJ1Z19oZWxwZXIgY3Jhc2hlcyBzbm1wZAogICBmaXhlcyBidWcgWyA4MjY5NjMgXSBuZXRzbm1wX2dldF9kZWJ1Z19oZWxwZXIgY3Jhc2hlcyBzbm1wZAogICAKMjAwMy0xMC0yOCAxMDowNSAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYXBwbHkgcGF0Y2ggWyA4Mjk2MzMgXSA1LjFwcmUxIFBlcmwgdHJhbnNsYXRlT2JqIGZpeAogICAKMjAwMy0xMC0yOCAwNzozMiAgcnN0b3J5CgogICAqIGRpc3QvOiBuZXQtc25tcC5zcGVjIChWNS0wLXBhdGNoZXMuMyksIG5ldC1zbm1wLnNwZWM6CgogICBhcHBhcmVudGx5IG5lc3RlZCAlaWYncyBhcmUgYSBuby1ubwogICAKMjAwMy0xMC0yOCAwNzoyMiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGZpeCBwZXJsIGNvbmRpdGlvbmFsIGJ1aWxkcyBhZnRlciByZWFkIHJwbSBkb2NzCiAgIAoyMDAzLTEwLTI2IDAwOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgaW5saW5lIC0+IE5FVFNOTVBfSU5MSU5FIGFzIHBvaW50ZWQgb3V0IGJ5IEFsZXggQnVyZ2VyCiAgIAoyMDAzLTEwLTI0IDE2OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIHJlbmFtZSBsb29wX2N0eCBsb29wX2NvbnRleHQ7IHByZWZpeCBhbGwgbG9vcCBmdW5jdGlvbnMgdy9sb29wCiAgIAoyMDAzLTEwLTI0IDE2OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgbW92ZSBkZWZhdWx0cyB0byBhbiBlYXNpZXIgdG8gc3BvdCBwbGFjZQogICAKMjAwMy0xMC0yNCAxNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLCBtZmQtdG9wLm0yYwo6CgogICByZW5hbWUgdGFibGVfaWR4IHRhYmxlX21pYl9pbmRleDsgcmVuYW1lIGxvb3BfY3R4IGxvb3BfY29udGV4dDsgcHJlZml4IGFsbAogICBsb29wIGZ1bmN0aW9ucyB3L2xvb3A7IHJlbW92ZSBpbmRleDJvaWQKICAgCjIwMDMtMTAtMjQgMDY6MDIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIEhvc3QtUmVzb3VyY2VzIHN1cHBvcnQgdG8gdGhlIGxpc3Qgb2YgZGVmYXVsdCBNSUIgbW9kdWxlcy4KICAgV2UndmUgdGFsa2VkIGFib3V0IHRoaXMgZm9yIHllYXJzIC0gaXQncyBhYm91dCB0aW1lIHdlIGRpZCBzbyEKICAgCjIwMDMtMTAtMjQgMDU6NDkgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBOZXcgY2hvaWNlcyBmb3Igc29tZSBjb21tYW5kLWxpbmUgb3B0aW9ucywgdG8gaW1wcm92ZSBjb25zaXN0ZW5jeQogICBiZXR3ZWVuIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIgdXNhZ2UuICBUaGUgcHJldmlvdXMgb3B0aW9ucyBzdGlsbAogICB3b3JrIGJ1dCBhcmUgbm93IG1hcmtlZCBhcyAiZGVwcmVjYXRlZCIuICBUaGVzZSBzaG91bGQgcHJvYmFibHkKICAgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5IGluIGEgZnV0dXJlIHJlbGVhc2UgKGUuZy4gNS4yKS4KICAgCjIwMDMtMTAtMjMgMTU6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBmaXggYnVnIDgyODY3MTogVGhlIGxpYiBpc24ndCBDKysgY29tcGF0aWJsZTsgcmVtb3ZlICdzdHJ1Y3QnIGJlZm9yZSB0eXBkZWYKICAgCjIwMDMtMTAtMjMgMTU6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaXggYnVnIDgyODY3MTogVGhlIGxpYiBpc24ndCBDKysgY29tcGF0aWJsZTsgcmVuYW1lIHN0cnVjdHVyZQogICByZW1vdmUgdW51c2VkIG5vYWxsb2MgZnVuY3Rpb24KICAgCjIwMDMtMTAtMjMgMTU6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGJ1ZyA4Mjg2NzE6IFRoZSBsaWIgaXNuJ3QgQysrIGNvbXBhdGlibGU7IHJlbmFtZSBzdHJ1Y3R1cmUKICAgCjIwMDMtMTAtMjMgMTU6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogcGFyc2UuYyAoVjUtMC1wYXRjaGVzLjMpLCBwYXJzZS5jOgoKICAgZml4IGJ1ZyA3Njc3NTM6IHNubXB3YWxrIGNyYXNoIChhZG9wdF9vcnBoYW5zKQogICAKMjAwMy0xMC0yMyAxMDozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCiAgIAoyMDAzLTEwLTIzIDEwOjMyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYXBwYXJlbnRseSBjb25maWd1cmUgdHJhbnNsYXRlcyAnXycgdG8gJy0nIGluIGFyZ3VtZW50cy9lbmFibGVzLCBzbyB1c2UgLQogICBjb25zaXN0ZW50bHk7IG1vdmUgY29tbW9uIG1vZHVsZSBhcmcgbWlzdGFrZSBjaGVja3Mgd2l0aCBvdGhlciBtb2R1bGUKICAgY2hlY2tzLCBhbmQgYWRkIGEgZmV3IG1vcmU7IGFkZCBjaGVjayBmb3IgZW5hYmxlIHBlcmwtbW9kdWxlcyB0b28KICAgCjIwMDMtMTAtMjMgMTA6MjQgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbW92ZSBjb21tZW50IGZpeGVzIHRvIGFjY29uZmlnLmggYW5kIHJlZ2VuZXJhdGUgbmV0LXNubXAtY29uZmlnLmguaW4KICAgCjIwMDMtMTAtMjMgMDg6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIG5vbnN0ZCBOREVCVUcgaWZkZWYgdHN0OyB1c2UgREJHTVNHU1VCT0lEIGluc3RlYWQgb2YgREJHTVNET0lEOyBhZGQKICAgZGVidWcgZm9yIGNvbXBhcmlzb24gcmVzdWx0CiAgIAoyMDAzLTEwLTIzIDA4OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGFkZCBjb21tZW50czsgZml4IGdldF9uZXh0IHcvbnVsbCBrZXkgKGdldC1maXJzdCk7IHJlbW92ZSByZWR1bmRhbnQgZGVidWdzCiAgIAoyMDAzLTEwLTIyIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXB1c20uYyAoVjUtMC1wYXRjaGVzLjIpLCBzbm1wdXNtLmM6CgogICBmaXggYnVnIDgyMjg3MCAodXNtU3RhdHNEZWNyeXB0aW9uRXJyb3JzIGRpZCBub3QgaW5jcmVtZW50IG9uIGZhaWxlZCBnZXQgcmVxKQogICB3aXRoIHBhdGNoIDgyNzA1NiBmcm9tIGJyb3dsYW5kcwogICAKMjAwMy0xMC0yMiAwOTo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIF9fU1RSSU5HIGlmIG5vdCBkZWZpbmVkCiAgIAoyMDAzLTEwLTIyIDA2OjE0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgaW5jcmVtZW50IGxpYnRvb2wgcmV2aXNpb24KICAgCjIwMDMtMTAtMjIgMDY6MTMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBjb21tZW50Y2hlY2sgcGF0dGVybiB0byBleGNsdWRlIGZ0cCBhbmQgaHR0cCB1cmxzCiAgIAoyMDAzLTEwLTIyIDAyOjA4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBUaGUgdmFyaWFibGVzICdkb19oaW50JyBhbmQgJ2NoZWNrJyBhcmUgb25seSBkZWNsYXJlZAogICBvciBuZWVkZWQgd2hlbiAnRElTQUJMRV9NSUJfTE9BRElORycgaXMgbm90IGRlZmluZWQuCiAgIFRoZXJlJ3Mgbm8gcG9pbnQgaW4gZ2l2aW5nIHRoZW0gZHVtbXkgdmFsdWVzIG90aGVyd2lzZS4KICAgCjIwMDMtMTAtMjEgMTI6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlbW92ZSBjKysgc3R5bGUgY29tbWVudAogICAKMjAwMy0xMC0yMSAxMjoxMiAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZW1vdmUgYysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgbW92ZSB1c2FnZSBzdWIgdG8gdG9wIHNvIGl0IGFjdHVhbGx5IGRvZXMgc29tZXRoaW5nOyBwcmludCB1c2FnZSBmb3IgcGFyYW0KICAgZXJyb3JzLCBpbnN0ZWFkIG9mIGp1c3QgZHlpbmcKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NDIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIHJlbW92ZSBib2d1cyBpbnN0YWxsIHRhcmdldAogICAKMjAwMy0xMC0yMSAxMToxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZy5pbgogICAKMjAwMy0xMC0yMSAxMToxNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBwZXJsIHVuaW5zdGFsbCBzdXBwb3J0OyB1cGRhdGUgdmVyc2lvbiBpbiBpbml0CiAgIAoyMDAzLTEwLTIxIDAxOjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSW5jbHVkZSA8ZmNudGwuaD4gZm9yIGRlZmluaXRpb24gb2YgT19SRFdSLiBSZXBvcnRlZCBieSBTZWJOb2IuCiAgIAoyMDAzLTEwLTIxIDAxOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRW5zdXJlIHRoYXQgbXVsdGktbGluZSBjb21tZW50cyBhcmVuJ3QgYnJva2VuIHdoZW4gdGhlIGFjdGl2ZQogICBuZXQtc25tcC1jb25maWcuaCBmaWxlIGlzIGdlbmVyYXRlZC4gIFJlcG9ydGVkIGJ5IFNlYk5vYi4KICAgKFBvc3NpYmx5IGJlaW5nIGEgYml0IG92ZXItY2F1dGlvdXMgaGVyZSwgYnV0IHlvdSBjYW4ndCBiZSB0b28gY2FyZWZ1bCEpCiAgIAoyMDAzLTEwLTE3IDIyOjUyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbW9yZSB1cGRhdGVzCiAgIAoyMDAzLTEwLTE3IDIyOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0dXJuIG9uIHRoZSBsb29rdXAgY2FjaGUuCiAgIAoyMDAzLTEwLTE3IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywKICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RlcHJlY2F0ZWQuMywKICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgIG5ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICBuZXRzbm1wX3V0aWxpdGllcy4zOgoKICAgbW9yZSAobmV3KSB1cGRhdGVzIGZyb20gZG94eWdlbgogICAKMjAwMy0xMC0xNyAxNjozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIHVwZGF0ZXMgZnJvbSBkb3h5Z2VuCiAgIAoyMDAzLTEwLTE3IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE1OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgYWRkZWQgYW55ZGF0YSBtb2R1bGVzCiAgIAoyMDAzLTEwLTE3IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1ha2UgZ2V0dGFibGUgcmV0dXJuIGEgaGFzaCBpbnN0ZWFkLgogICAKMjAwMy0xMC0xNyAxNTowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGFkZCBvaWQvZGVmYXVsdCBwb3J0aW9uIHRvIGhlbHAgdGV4dCBmb3IgdGhlIGZvcndhcmQgdG9rZW4KICAgCjIwMDMtMTAtMTcgMTU6MDIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBBZGQgc3BhcnRhCiAgIAoyMDAzLTEwLTE3IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZm9yd2FyZCB0b2tlbgogICAKMjAwMy0xMC0xNyAxNDo0MSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICB1c2UgbmV3IHZlcnNpb24gbW9kaWZpY2F0aW9uIHNjcmlwdAogICAKMjAwMy0xMC0xNyAxNDo0MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIG5ldyB2ZXJzaW9uIG1lc3Npbmctd2l0aCBzY3JpcHQKICAgCjIwMDMtMTAtMTcgMTQ6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZW1vdmUgcG9ydGlvbnMgb2xkIHNjcmlwdCByZXBsYWNlZCBieSBuZXdlciBWZXJzaW9uLU11bmdlLnBsCiAgIAoyMDAzLTEwLTE3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNSAwOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgcmVtb3ZlIGhhcmRjb2RlZCBjb250ZXh0IG5hbWUKICAgCjIwMDMtMTAtMTQgMTY6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgYWRkIG5vdGUgdGhhdCBleGFtcGxlIGNvZGUgaXMgYmFzZSBvbiBhIGRhdGEgZmlsZQogICAKMjAwMy0xMC0xNCAxNjozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIGFkZCBub3QgdGhhdCBpdGVyYXRvciBnZXQvZ2V0LW5leHQgZG9uJ3QgY29ycmVzcG9uZCB0byBwZHUgdHlwZXMsIGFuZCB0aGV5CiAgIHNob3VsZG4ndCBiZSBvcmRlcmluZyB0aGVpciBkYXRhCiAgIAoyMDAzLTEwLTE0IDE2OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIHN5bmMgY29tbWVudHMgdy9yZWFkbWUKICAgCjIwMDMtMTAtMTQgMTY6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGFzIGxvbmcgYXMgd2UncmUgdXNpbmcgZ251LW1ha2Ugc3BlY2lmaWNzLCBvbmx5IHByb2Nlc3MgY29uZmlnIHZhcnMgb25jZSAoYWxzbwogICBsZXRzIG1ha2Ugb3V0cHV0IHJlcHJlc2VudCBhY3R1YWwgdmFsdWVzLCBpbnN0ZWFkIG9mIHNjcmlwdCkKICAgCjIwMDMtMTAtMTQgMTY6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgYmlnIG9ibm94aW91cyB3YXJuaW5nOyBzZXQgZXJyb3IgZm9yIG5vIGNvbnRleHQgaWYgdGFibGUgbm90IHNldHRhYmxlCiAgIAoyMDAzLTEwLTE0IDE2OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yYy1pbnRlcm5hbC13YXJuaW5nLm0yaToKCiAgIGJpZyBvYm5veGlvdXMgd2FybmluZyBmb3IgdG9wIG9mIGltcGxlbWVudGF0aW9uIGZpbGVzCiAgIAoyMDAzLTEwLTE0IDE2OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgc3luYyBmdW5jdGlvbiBoZWFkZXIgc3VtbWFyeSBjb21tZW50cyB3L3JlYWRtZSBzdW1tYXJ5IGhlYWRlciBjb21tZW50czsKICAgcHJlc2VudCBmdW5jdGlvbiBpbiBzYW1lIG9yZGVyIGluIGJvdGggZmlsZXMKICAgCjIwMDMtMTAtMTQgMTY6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGluaXQgbTJjX2RhdGFfaW5pdAogICAKMjAwMy0xMC0xNCAxMzozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgdXNlIG5ldyBjb21tb24gc2V0dXA7IHdyYXBwZXJzIGZvciBhbGwgY29udGFpbmVyIGZ1bmN0aW9ucywgdG8gY29udmVydAogICBiZXR3ZWVuIGludGVyZmFjZSBjb250ZXh0IGFuZCB1c2VyIGNvbnRleHQ7IHNvbWUgcGFyYW0gdHdlYWtzOyByZW1vdmUKICAgdW51c2VkIHByb3RvdHlwZTsga2VlcCBwdHIgdG8gdGFibGUgY29udGV4dCBpbiBleGFtcGxlOyByZW5hbWUgc29tZSB2YXJzCiAgIHVzZSBuZXcgTUZEXyogZXJyb3IgY29kZXM7IHJlbmFtZSBleGFtcGxlIGZ1bmN0aW9uOyBkb2N1bWVuYXRpb24gdXBkYXRlczsKICAgCjIwMDMtMTAtMTQgMTM6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgdXNlIG5ldyBjb21tb24gc2V0dXA7IHdyYXBwZXJzIGZvciBhbGwgY29udGFpbmVyIGZ1bmN0aW9ucywgdG8gY29udmVydAogICBiZXR3ZWVuIGludGVyZmFjZSBjb250ZXh0IGFuZCB1c2VyIGNvbnRleHQ7IHNvbWUgcGFyYW0gdHdlYWtzOyByZW1vdmUKICAgdW51c2VkIHByb3RvdHlwZTsga2VlcCBwdHIgdG8gdGFibGUgY29udGV4dCBpbiBleGFtcGxlOyByZW5hbWUgc29tZSB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICB1c2UgbmV3IGNvbW1vbiBzZXR1cDsgd3JhcHBlcnMgZm9yIGFsbCBjb250YWluZXIgZnVuY3Rpb25zLCB0byBjb252ZXJ0CiAgIGJldHdlZW4gaW50ZXJmYWNlIGNvbnRleHQgYW5kIHVzZXIgY29udGV4dDsgc29tZSBwYXJhbSB0d2Vha3M7IGRvbid0IGF1dG8KICAgYWxsb2NhdGUgY29udGV4dCBmb3IgZ2V0IGRhdGEsIHNvIHVzZXIgY291bGQgdXNlIG9uZSB0aGV5J3ZlIGFsbG9jYXRlZAogICAKMjAwMy0xMC0xNCAxMzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXNldHVwLm0yaToKCiAgIGNvbW1vbiBzZXR1cCBmb3IgdW5zb3J0ZWQgZXh0ZXJuYWwsIHdoaWNoIGhhcyAzIHBhcnRzIGluY2x1ZGVkIGF0IGRpZmZlcmVudAogICB0aW1lcwogICAKMjAwMy0xMC0xNCAxMzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBpbnZlcnQgdmVyYm9zZSBsb2dpYyB0ZXN0OyBhZGQgcXVpY2sgb3ZlcnZpZXcgb2YgaXRlcmF0aW9uIGxvb3A7IHJlb3JkZXIKICAgc29tZSB0ZXh0L2JsYW5rIGxpbmVzOyB1cGRhdGUgZm9yIHJlbmFtZWQgdmFycwogICAKMjAwMy0xMC0xNCAxMzoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtQ09VTlRFUjY0LWdldC5tMmk6CgogICBoYW5kbGUgY291bnRlcjY0IHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXNlIG5ldyBNRkRfKiBlcnJvciBjb2RlczsgdXBkYXRlIGZvciBtMmMgcGFyYW0gcmVuYW1lOyBoYW5kbGUgY291bnRlcjY0IHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIG5hbWUgZGVwcyBmaWxlcyBleHBsaWNpdHksIHNpbmNlIC5jPS5kZXBzIGlzbid0IHBvcnRhYmxlCiAgIAoyMDAzLTEwLTE0IDEzOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdXBkYXRlIGJhc2UgcGFyYW0gZnJvbSBtZmQgcmVnIHRvIG1mZCBwZHUgY3R4OyB1cGRhdGUgZm9yIHJlbmFtZWQgbWZkL20yYyB2YXJzOwogICByZW5hbWUgdXNlciByZWcgdHlwZWRlZjsgbm8gdW5kbyBpbiB0YWJsZSBjdHggaWYgdGFibGUgbm90IHNldHRhYmxlOyBhZGQgdXNlcgogICByZWcgcHRyLCByZXF1ZXN0IG1vZGUgYW5kIGRhdGEgbGlzdCB0byB0YWJsZSBjb250ZXh0OyBtdiBjb250YWluZXIgaW5pdCBwcm90bwogICBhbmQgb3RoZXIgaW50ZXJmYWNlIHByb3RvdHlwZXMgdG8gdGhlaXIgb3duIGhlYWRlcjsgYWRkIHByb3RvcyBmb3IgcHJlL3Bvc3QKICAgcmVxdWVzdHMsIHRhYmxlIGNvbnRleHQgaW5pdC9jbGVhbnVwOyBhZGQgc2V0IHByb3RvdHlwZXM7IGluY2x1ZGUgbmV3IGhlYWRlcnMKICAgYXQgYm90dG9tIG9mIG1haW4gaGVhZGVyOyBtb3ZlIGFzIG11c2ggb2YgaW5pdCByb3V0aW5lIGFzIHBvc3NpYmxlIGludG8KICAgaW50ZXJmYWNlIGNvZGU7IHVzZSBuZXcgTUZEXyogcmV0dXJuIGNvZGVzOyBkb24ndCBydW4gbWFrZWZpbGUvc3ViYWdlbnQKICAgY29uZiBmaWxlcyBpZiB0aGV5J3ZlIGFscmVhZHkgYmVlbiBydW4KICAgCjIwMDMtMTAtMTQgMTI6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBhZGQgbWZkIG92ZXJ2aWV3IG9mIFNOTVAgYW5kIG1mZCBkYXRhIHN0cnVjdHVyZXM7IGRvY3VtZW50IG0yYyBjb25maWd1cmF0aW9uCiAgIHZhcmlhYmxlczsgaW5kZW50IHNvbWUgY29tbWVudHMgdG8gYmUgbW9yZSBjb25zaXN0ZW50OyBkb2NzIGZvciBzZXQgc3VwcG9ydAogICAKMjAwMy0xMC0xNCAxMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHJlcGxhY2UgaGFyZGNvZGVkIGhlYWRlciBuYW1lIHcvJG5hbWUuaDsgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyB1c2UgTUZEXyoKICAgcmV0dXJuIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyAgdXBkYXRlIHJlbmFtZWQgbTJjIHBhcmFtczsgcmVtb3ZlIGxvY2FsIHN0YXRpYwogICBwcm90b3R5cGVzIGZyb20gaGVhZGVyczsgbmV3IHBlciB0YWJsZSBpbnRlcmZhY2UgY29udGV4dDsgcmVuYW1lIGludGVyZmFjZSBpbml0OwogICB1c2UgdGFibGUgcmVnIGluIGxvY2FsIHRhYmxlIGNvbnRleHQgaW5zdGVhZCBvZiBtYWxsb2M7IHJlbW92ZSBfIHByZWZpeCBmcm9tCiAgIHB1YmxpYyB0YWJsZSBhbGxvY2F0ZSAmIHJlbGVhc2UgY3R4IGZ1bmNzOyBpbml0IHZhcnMgaW4gYWxsb2NhdGVfY3R4OyBjYWxsCiAgIHRhYmxlIGN0eCBpbml0IGZ1bmMgaW4gYWxsb2NhdGUsIGlmIGRlZmluZWQ7IHdyYXBwZXJzIGZvciBhbGwgbWZkIGZ1bmN0aW9ucywgdG8KICAgY29udmVydCBmcm9tIG91ciB0YWJsZSBjb250ZXh0IHRvIHRoZSB1c2VycyByZWdpc3RyYXRpb24gcG9pbnRlcjsgYWZ0ZXIgb2JqZWN0CiAgIGxvb2t1cCBzZXQgdXNlcnMgaW5kZXhlcyBiYWNrIHRvIHRoZSB2YXJiaW5kIG9pZCBhbmQgc2V0IGNvbnRleHQgdmFyczsgb25seQogICBkbyBnZXQgcm91dGluZXMgZm9yIGFjY2Vzc2FibGUgaW50ZXJuYWwgaW5kZXhlczsgcHJlZml4IHdyYXBwZXJzIHcvbWZkXzsKICAgZGV0ZWN0IGlmIHVzZXIgZ2V0IHJvdXRpbmVzIG11bmdlcyB2YiB2YWx1ZSBwb2ludGVyOyBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlCiAgIGZyZWU7IG1lcmdlIGNoZWNrX2luZGV4IGludG8gY2hlY2tfaW5kZXhlczsgYWRkIHNldCB2YWx1ZXMsIGNvbW1pdCwgdW5kbwogICBhbmQgaXJyZXZlcnNpYmxlIGNvbW1pdCB3cmFwcGVyczsgdXBkYXRlIGZvciByZW5hbWVkIGNvbW1pdCBtb2RlIG5hbWVzOwogICBzaW1wbGlmeSBwYXJhbSBmb3IgaW50ZXJuYWwgaW5kZXggY2hlY2sgZnVuY3MKICAgCjIwMDMtMTAtMTQgMTI6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIHB1dCBwcm90b3R5cGVzIGluICRuYW1lX2RhdGFfZ2V0LmgKICAgCjIwMDMtMTAtMTQgMTI6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgdXBkYXRlIG0yYyBub2RlIHBhcmFtcyB0byBiZSBiYXNlZCBvbiB2YXIvdmFsL3JlZiBpbnN0ZWFkIG9mIGZ1bmN0aW9uIG5hbWUKICAgCjIwMDMtMTAtMTQgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC5tMmk6CgogICB1cGRhdGUgZm9yIHJlbmFtZSBtMmMgdmFyIG5hbWVzCiAgIAoyMDAzLTEwLTE0IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgdXNlIG0yY19ub2RlX3N1bW1hcnkgaW4gY29tbWVudAogICAKMjAwMy0xMC0xNCAxMjozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyB1c2UgTUZEXyogcmV0dXJuIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyBwdXQgcHJvdG90eXBlcwogICBpbiAkbmFtZV9kYXRhX3NldC5oOyB1cGRhdGUgcmVuYW1lZCBtMmMgcGFyYW1zOyBhZGQgZXh0ZXJuYWwgaW5kZXggY2hlY2sgZnVuYwogICBpZiB0YWJsZSBoYXMgZXh0ZXJuYWwgaW5kZXg7IHNpbXBsaWZ5IHBhcmFtIGZvciBpbnRlcm5hbCBpbmRleCBjaGVjayBmdW5jcwogICAKMjAwMy0xMC0xNCAxMjoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHJlbW92ZSBtZmQgcmVnIHBhcmFtICYmIGFzc2VydAogICAKMjAwMy0xMC0xNCAxMjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IHVzZSBNRkRfKiByZXR1cm4gY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7IGFkZCBwZXIgbm9kZQogICB1bmRvX3NldHVwIDsgdXBkYXRlIGZvciByZW5hbWVkIGNvbW1pdCBtb2RlIG5hbWVzOyB1cGRhdGUgcmVuYW1lZCBtZmQgcGFyYW1zCiAgIAoyMDAzLTEwLTE0IDEyOjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyBjaGcgbWZkX3JlZyBwYXJhbXMgdG8gdGFibGVfcmVnOyB1c2UgTUZEXyogcmV0dXJuCiAgIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyBubyBwZXIgbm9kZSBjb2RlIGluIHRhYmxlIHVuZG9fc2V0dXAgKHdpbGwgYmUgaW4KICAgbmV3IHBlciBub2RlIHVuZG9fc2V0dXApOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29tbWl0IG1vZGUgbmFtZXMKICAgCjIwMDMtMTAtMTQgMTI6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLXJlYWRtZS5tMmk6CgogICBpbmRlbnQgdG8gbWF0Y2ggb3RoZXIgcmVhZG1lcwogICAKMjAwMy0xMC0xNCAxMjoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmVuYW1lIG0yY190YWJsZV93cml0YWJsZSB0byBtMmNfdGFibGVfc2V0dGFibGUgKGNvbnNpc3RlbnQgdy9ub2RlLnNldHRhYmxlKTsKICAgYmFzZSBtMmNfdGFibGVfcm93X2NyZWF0aW9uIG9uIG5ldyBmdW5jdGlvbiB0YWJsZV9oYXNfY3JlYXRlOyBuZXcKICAgbTJjX3RhYmxlX2V4dGVybmFsX2luZGV4ZXMgYmFzZSBvbiBuZXcgZnVuY3Rpb24gY291bnRfZXh0ZXJuYWxfaW5kZXhlcwogICAKMjAwMy0xMC0xNCAxMjoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIHJlbW92ZSB1bnVzZWQgbGluZXM7IGFkZCBvaWQgbGVuZ3RoIGluIG91dHB1dAogICAKMjAwMy0xMC0xNCAxMjoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgb25seSBzZXQgZGVmYXVsdHMgaWYgdmFsdWUgaXMgZW1wdHkKICAgCjIwMDMtMTAtMTQgMTE6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgaWYgc29ydGVkLCBza2lwIGl0ZXJhdGlvbiBvbiBmaW5kIGZpcnN0OyBhZGQgbmV3IHJldXNlIHBhcmFtIHRvIHNhdmVfcG9zCiAgIAoyMDAzLTEwLTE0IDExOjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIGxvZyBlYWNoIGFnZW50eHBlcm1zIHBhcnQgc2VwYXJ0ZWx5LCBzbyBhcyBub3QgdG8gY3Jhc2ggaWYgYW55IG9mIHRoZSBvcHRpb25hbAogICBpdGVtcyBhcmUgbGVmdCBvdXQ7IHVwZGF0ZSBoZWxwIHRvIHNob3cgdGhhdCBvcHRpb25hbCBwYXJtcyBtdXN0IGJlIGluIG9yZGVyCiAgIAoyMDAzLTEwLTE0IDExOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjaGFuZ2UgY291bnRlciA2NCB0eXBlIGZyb20gJ2NvdW50ZXI2NCcgdG8gJ1U2NCcsIHNpbmNlIHRoZSBmb3JtZXIgY2FuJ3QgYmUKICAgdXNlZCBhcyBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHR5cGU7IHByb2Nlc3MgJEhPTUUvLnNubXAvbWliMmMuY29uZiwgaWYgaXQKICAgZXhpc3RzOyBuZXcgZm9yZWFjaCBpbnRlcm5hbGluZGV4IGFuZCBleHRlcm5hbGluZGV4OyBuZXcgc3ViIHRhYmxlX2hhc19jcmVhdGUKICAgYW5kIGNvdW50X2V4dGVybmFsX2luZGV4ZXMKICAgCjIwMDMtMTAtMTQgMDk6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRvbid0IHJlcXVpcmUgREVCVUcgZGZpbmUgZm9yIGFzc2VydHM7IG5ldyBsb2dpYzogdXNlIGFzc2VydCBpZgogICBORVRTTk1QX1VTRV9BU1NFUlQgZGVmaW5lcy4gb3RoZXJ3aXNlLCBmYWlsZWQgYXNzZXJ0cyB3aWxsIHVzZSBzbm1wX2xvZwogICB0byBsb2cgYSBtZXNzYWdlICh1bmxlc3MgU05NUF9OT19ERUJVR0dJTkcgaXMgZGVmaW5lZCkuCiAgIAoyMDAzLTEwLTE0IDA5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBtb2RlczsgY2hnIGNhbGxiYWNrIHBhcmFtIHRvIHVzZSBuZXcgbWZkX3BkdV9jdHg7IGRvbid0CiAgIHNwbGl0IGNhbGxiYWNrcyBpbnRvIHR3byBzdHJ1Y3R1cmVzOyBkZWZpbmUgbWZkIHNwZWNpZmljIGVycm9yIGNvZGVzIGFzIGEKICAgc3Vic2V0IG9mIGV4aXN0aW5nIGVycm9yIGNvZGVzOyBhZGQgZG9jdW1lbnRhdGlvbjsgcmVtb3ZlIHRhYmxlIHJlZ2lzdHJhdGlvbgogICBmcm9tIHJlZ2lzdHJhdGlvbiBwYXJhbSBsaXN0LCBzaW5jZSBpdCdzIGluIHRoZSBtZmQgcmVnIG9iajsgaGFuZGxlIGdldCByZXF1ZXN0CiAgIHNwbGl0IGludG8gb2JqZWN0X2xvb2t1cCBhbmQgZ2V0IHZhbHVlczsgb25seSBjYWxsIG5leHQgaGFuZGxlciBpZiBuZXh0IGhhbmRsZXIKICAgaGFzIGFjY2VzcyBtZXRob2Q7IHR3ZWFrIGxvb2t1cCBwYXJhbXM6IHJldHVybiBlcnJvciBjb2RlIGFuZCBzZXQgZm91bmQgcm93CiAgIGluIG5ldyBwZHUgY3R4IHBhcmFtCiAgIAoyMDAzLTEwLTE0IDA5OjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oOgoKICAgYWRkIHJldXNlIGZsYWcgdG8gY3R4IGR1cCBwYXJhbXMKICAgCjIwMDMtMTAtMTQgMDk6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBtb2RlIG1zZyBkZWZpbmVzIGZvciBiYWJ5IHN0ZXAgbW9kZXM7IHNpbXBsaWZ5IG1vZGUgdGVzdCBtYWNyb3M7IGFkZAogICBuZXh0X21vZGUgdG8gYWdlbnRfcmVxdWVzdF9pbmZvCiAgIAoyMDAzLTEwLTE0IDA5OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIGFkZCBpbnRlcm5hbCBtc2cgZGVmaW5lcyBmb3IgYmFieSBzdGVwIG1vZGVzOyByZW51bWJlciBnZXQgc3Rhc2ggbW9kZTsgZml4IHR5cG8KICAgaW4gY29tbWVudDsgcmVzZXJ2ZSAgbW9kZXMgPCAxMjggZm9yIHNldCBwcm9jZXNzaW5nIHRvIHNpbXBsaWZ5IG1vZGUgdGVzdHMKICAgCjIwMDMtMTAtMTQgMDk6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIHJlbmFtZSBhIGZldyBtb2RlcwogICAKMjAwMy0xMC0xNCAwOToyMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIG1vZGVzOyBhZGQgbW9kZSBtYXAgZm9yIGdldC1yZXF1ZXN0cyBhcyB3ZWxsCiAgIAoyMDAzLTEwLTE0IDA5OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNvbnN0IGNvcnJlY3RuZXNzCiAgIAoyMDAzLTEwLTE0IDA5OjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIGlmZGVmJ2QgY29kZSBhZnRlciByZXN0b3Jpbmcgc29tZSBvZiBpdDsgdXBkYXRlIG5ldyByZXFpbmZvIHB0ciBpbgogICByZXF1ZXN0czsgZml4IGVubGVzcyBsb29wOyBmaXggdHlwb3MgaW4gYXNzZXJ0cwogICAKMjAwMy0xMC0xNCAwOToxNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGNoZWNrIGZvciByZWxhdGl2ZSBwYXRoIHRvIHNyYyBkaXIgZm9yIGJ1aWxkLWRpciBjaGVja3MKICAgCjIwMDMtMTAtMTQgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluIChWNS0wLXBhdGNoZXMuMyksIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgbGVhdmUgcG9zc2libHkgZW1wdHkgY29uZmlndXJlIEB2YXJAIG9uIGNvbnRpbnVhdGlvbiBsaW5lIGJ5IGl0c2VsZgogICAKMjAwMy0xMC0wOCAyMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjUtMC1wYXRjaGVzLjIpLCB2YXJfcm91dGUuYwo6CgogICBwYXRjaCBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciB0byBmaXggSFBVWCAxMQogICAKMjAwMy0xMC0wOCAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFkZCBkZXRhaWwgb24gaW1wcm9wZXJ5bHkgcmVnaXN0ZXJlZCB0YWJsZSBtZXNzYWdlLCBhbmQgY2hnIHRvIEVSUiAoZnJvbSBJTkZPKTsKICAgZml4IHZhbGlkIGNvbHVtbiBzZWFyY2ggZm9yIHJhbmdlczsgZ28gc3RyYWlnaHQgdG8gZmlyc3Qgcm93IGlmIG5vIGluZGV4ZXMKICAgCjIwMDMtMTAtMDcgMTU6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgbW9yZSB1c2VmdWwgaGVscCB0ZXh0IGZvciBhZ2VudHhwZXJtcwogICAKMjAwMy0xMC0wNyAxNDo0MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggbG9naWMgY2hlY2sgb2YgRFNfQUdFTlRfUVVJVF9JTU1FRElBVEVMWSBzbyB0aGF0IHBhcmVudCBhbmQgY2hpbGQgZG9uJ3QKICAgYm90aCB0cnkgdG8gYmVjb21lIHRoZSBtYXN0ZXIgYWdlbnQuIExvZ2ljIHNlZW1zIGJhY2t3YXJkcyB0byBtZSAtIGRvIHdlIGhhdmUKICAgYWxsIHRoZXNlIERTIHZhcnMgZG9jdW1lbnQgc29tZXdoZXJlPwogICAKMjAwMy0xMC0wNyAxNDozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBuZXRzbm1wX2RhZW1vbml6ZTogaW5pdCBsb2NhbCB2YXI7IGNoZyByZXR1cm4gY29kZSB0byBiZSBmb3JrIHJlc3VsdDsgYWRkIGRvY3MKICAgCjIwMDMtMTAtMDcgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMgKFY1LTAtcGF0Y2hlcy4zKSwgbWliMmM6CgogICBDaGVjayBmb3IgXi1TIGluc3RlYWQgb2YgLVMsIGFzIHJlcG9ydGVkIGJ5IEplYW4tTWFyYyBSYW5nZXIgb24gLXVzZXJzCiAgIAoyMDAzLTEwLTA3IDAzOjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFRoZXJlIGFyZSBubyBzdGF0aXN0aWNzIHByaW50ZWQsIHNvIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gaGF2aW5nCiAgIGEgZmxhZyB0byB0dXJuIHRoZW0gb2ZmLgogICAKMjAwMy0xMC0wNCAxMTowMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1lcmdlIGNoYW5nZXMgZnJvbSA1LjAgcGF0Y2hlcyBicmFuY2g7IGZpeCB0byBidWlsZCB3aXRob3V0IHJlcXVpcmluZyBhcmd1bWVudHM7CiAgIHNlcGFyYXRlIGVtYmVkZGVkIHBlcmwgYW5kIHBlcmwgbW9kdWxlcyBvcHRpb25zOyBmaXggZml4IGZvciBpbml0LmQgc2NyaXB0CiAgIGZvciBub24tL3Vzci9sb2NhbCBpbnN0YWxsYXRpb24KICAgCjIwMDMtMTAtMDMgMDc6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBjaGFuZ2UgdjEgZGVtbyBjb21tdW5pdHkgdG8gbWF0Y2ggd2hhdCBpcyBhY3R1YWx0IGNvbmZpZ3VyZWQgb24gdGhlCiAgIHNvb24tdG8tYmUtcmVvcGVuZWQgdGVzdC5uZXQtc25tcC5vcmcKICAgCjIwMDMtMTAtMDIgMTk6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBhZGQgZXhwbGFuYXRvcnkgdGV4dCBhbmQgbGluZXMvYXJyb3dzIHNob3dpbmcgcmVsYXRpb25zaGlwIGJldHdlZW4gZW50cmllczsKICAgYWRkIGNyZWF0ZVVzZXIgbGluZXMsIHcvbm90ZSBleHBsYWluaW5nIHRoZXkgbWlnaHQgYmUgYmV0dGVyIHN1aXRlZCBmb3IKICAgdGhlIHBlcnNpc3RlbnRkaXIgc25tcGQuY29uZiBmb3Igc2VjdXJpdHkgcHVycG9zZXMuCiAgIAoyMDAzLTEwLTAyIDExOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgLUkgc3dpdGNoCiAgIAoyMDAzLTEwLTAyIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBORVdTLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluCiwgbWlicy9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIFJvYmVydCB0b2xkIG1lIHRvIGtlZXAgZ29pbmcsIHNvIEkgYWRkZWQgc3VwcG9ydCBmb3IgYSAtLXdpdGgtaW5zdGFsbC1wcmVmaXgKICAgZmxhZyB0byBjb25maWd1cmUgKGFuZCB0aHVzIGEgSU5TVEFMTF9QUkVGSVggbWFrZSB2YXJpYWJsZSBhcyB3ZWxsKS4KICAgCjIwMDMtMTAtMDEgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLAogICBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluCiwgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgU3VwcG9ydCBmb3IgIm1ha2UgdW5pbnN0YWxsIgogICAKMjAwMy0xMC0wMSAxNDo1MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBBZGRlZCAtTCBzdXBwb3J0IGZvciBvdXRwdXQgbG9nZ2luZy4KICAgCjIwMDMtMTAtMDEgMTQ6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmg6CgogICB1cGRhdGVkIHByb3RvdHlwZXMgdG8gbWF0Y2ggZWFybGllciB0cmFwIC0+IG5vdGlmaWNhdGlvbiBzdHJpbmcgcmVwbGFjZW1lbnRzLgogICAKMjAwMy0wOS0zMCAxNzoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgc3ludGF4IHNwZWNpZmljIHZhcmJpbmQgdmFsaWRhdGlvbgogICAKMjAwMy0wOS0zMCAxNzoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHN5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaSwKICAgc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmk6CgogICBzeW50YXggc3BlY2lmaWMgZGVwZW5kZW5jeSBjaGVja3MKICAgCjIwMDMtMDktMzAgMTc6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgZml4IHR5cG9zCiAgIAoyMDAzLTA5LTMwIDE3OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksCiAgIHN5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpOgoKICAgc2V0IGVtYWdzIHRhZyBmb3IgYzsgdXBkYXRlIHZhcmlhYmxlIG5hbWUKICAgCjIwMDMtMDktMzAgMTc6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBzZXQgZW1hZ3MgdGFnIGZvciBjOyBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3M7IG5ldyB2YWxpZGF0ZV9pbmRleCwKICAgdW5kb19zZXR1cCwgcmV2ZXJzaWJsZV9jb21taXQsIGZpbmFsX2NvbW1pdAogICAKMjAwMy0wOS0zMCAxNzoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHNldCBlbWFncyB0YWcgZm9yIGM7IGluIGNoZWNrX2RlcGVuZGVuY2llcywgcmVtb3ZlIG5vbi1leGlzdGFudCBwYXJhbSBhbmQKICAgaW5jbHVkZSBhbnkgbm9kZSBzcGVjaWZpYyBzeW50YXggZGVwZW5kZW5jaWVzCiAgIAoyMDAzLTA5LTMwIDE3OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBuZXcgaW5jbHVkZSB0byBkbyBiYXNpY3kgc3ludGF4IHZhbGlkYXRpb24gYWdhaW5zdCBhbiBpbmNvbWluZyB2YXJiaW5kCiAgIAoyMDAzLTA5LTMwIDE3OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHM7IGNoYW5nZSBleGFtcGxlIGZyb20gbGlua2VkIGxpc3QKICAgdG8gZmxhdCBmaWxlOyB1c2UgdmFyIGZvciBmdW5jIHBhcmFtcyBzbyBpdCdzIGVhc3kgdG8gY2hhbmdlOyBjaGVjayBuZXcKICAgbTJjX2luY2x1ZGVfZXhhbXBsZXMgYmVmb3JlIGluY2x1ZGluZyBleGFtcGxlIGNvZGU7CiAgIAoyMDAzLTA5LTMwIDE3OjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50czsgY2hhbmdlIGV4YW1wbGUgZnJvbSBsaW5rZWQgbGlzdAogICB0byBmbGF0IGZpbGU7IHVzZSB2YXIgZm9yIGZ1bmMgcGFyYW1zIHNvIGl0J3MgZWFzeSB0byBjaGFuZ2UKICAgCjIwMDMtMDktMzAgMTc6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHNldCBlbWFjcyB0YWcgdG8gYzsgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzOyB1c2UgbG9jYWwKICAgc3RhdGljIHZhcmlhYmxlX2xpc3QgZm9yIGluZGV4IHRvIG9pZCBjb252ZXJzaW9uOyBmcmVlIG1lbW9yeSB1c2VkIGluIHRoYXQKICAgY29udmVyc2lvbiwgZXZlbnR1YWxseTsgZG9uJ3QgaWdub3JlIHJjIGZyb20gYnVpbGRfb2lkX25vYWxsb2MgaGVyZSAocmV0dXJuCiAgIGl0IGFuZCBsZXQgc29tZW9uZSBlbHNlIGlnbm9yZSBpdCk7IHByZWZpeCBzb21lIGludGVybmFsIGZ1bmN0aW9ucyBuYW1lcyB3LydfJzsKICAgd3JhcHBlciBhcm91bmQgZ2V0X2RhdGEgdG8gYWxsb2NhdGUgbmV3IGNvbnRleHQKICAgCjIwMDMtMDktMzAgMTc6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBub2RlLWdldC5tMmksIG5vZGUtc2V0Lm0yaToKCiAgIHNldCBlbWFjcyB0YWcgdG8gYzsgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzCiAgIAoyMDAzLTA5LTMwIDE3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgbmV3IG1mZF9iYXNlX3BhcmFtcyB2YXIgc28gaXQncyBlYXN5IHRvIGNoYW5nZSBwYXJhbXM7IGNoZyBjb21tZW50cyBzbyB0aGF0CiAgIGluZGVudCB3b24ndCBub3QgaW5kZW50OyBkb24ndCBpbmNsdWRlIHNvbWUgcHJvdG90eXBlcyBoZXJlIGlmIHRoZSBmdW5jdGlvbgogICBpcyBpbiAqX2ludGVyZmFjZXM7IG5ldyBwcmUvcG9zdCByZXF1ZXN0IGZ1bmN0aW9uczsgbW92ZWQgYnVsayBvZiB0YWJsZQogICBpbml0IGludG8gaW50ZXJmYWNlcywganVzdCBhIGxpdHRsZSBmdW5jdGlvbiBzZXR1cCBoZXJlCiAgIAoyMDAzLTA5LTMwIDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBzZXQgZW1hY3MgbW9kZSB0byBNYWtlZmlsZTsgdHVybiBvZmYgc3RyaWN0IHRva2VuIGNoZWNrcyB0aWwgd2VzIGdldHMgQCBlc2NhcGU7CiAgIGV4cGFuZCBkZXBzIGluY2x1ZGVzIHNpbmNlICQoeDouYz0uZGVwcykgaXNuJ3QgcG9ydGFibGUKICAgCjIwMDMtMDktMzAgMTY6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG9ubHkgcHV0IE1JQjJDX0RJUiBlbnYgdmFyIGluIHNlYXJjaCBwYXRoIGlmIGl0IGlzbid0IGVtcHR5CiAgIAoyMDAzLTA5LTMwIDE2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgY3JlYXRlIG5ldyAkbmFtZV9pbnRlcmZhY2UuaCBoZWFkZXI7IG1vdmUgdGFibGUgaW5pdGlhbGl6YXRpb24gaGVyZTsgcHJlZml4IGEKICAgYnVuY2ggb2YgaW50ZXJmYWNlIGZ1bmN0aW9ucyB3LydfJzsgdXNlIG5ldyBtMmNfbm9kZV9zdW1tYXJ5OyB1c2UgbmV3CiAgIG0yY19ub2RlX3Zhcl8qIHZhcmlhYmxlczsgY2hhbmdlIHNvbWUgYWNjZXNzaWJsZSB0ZXN0cyB0byBzZXR0YWJsZSB0ZXN0czsgdXNlCiAgIG5ldyBub2RlLXZhcmJpbmQtdmFsaWRhdGUgaW5jbHVkZTsgYWx3YXlzIGNhbGwgdXNlciAkbm9kZV9jaGVja192YWx1ZTsgbmV3CiAgIGZ1bmN0aW9ucyB0byBjaGVjayBuZXcgaW5kZXggc3ludGF4OyBuZXcgX3NldF92YWx1ZXMsIF91bmRvX3NldHVwIGFuZAogICBfdW5kb192YWx1ZXMgdG8gY2FsbCB1c2VyIGZ1bmN0aW9ucwogICAKMjAwMy0wOS0zMCAxNjozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgdHdlYWsgcHJvY2Vzc2luZyBtc2dzOyBhbHdheXMgaW5jbHVkZSBwYXJlbnQtc2V0OyBtb3ZlCiAgIHBhcmVudCBkZXBlbmRlbmNpZXMgdG8gYm90dG9tIG9mIGZpbGU7IGFkZCAkbm9kZV9jaGVja19pbmRleAogICAKMjAwMy0wOS0zMCAxNjoyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgdHdlYWsgcHJvY2Vzc2luZyBtc2dzCiAgIAoyMDAzLTA5LTMwIDE2OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IGFkZCBzb21lIHNhbml0eSBjaGVja3M7IHNldCB1cCBuZXcgJG0yY19lbnVtX21hc2ssCiAgICRtMmNfbm9kZV92YXJfdmFsLCAkbTJjX25vZGVfdmFyX3JlZiwgJG0yY19ub2RlX3Zhcl92YWxfcHRyLCAkbTJjX25vZGVfc3VtbWFyeQogICAKMjAwMy0wOS0zMCAxNjoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgcmVtb3ZlIHVudXNlZCBjcmVhdGVfdW5kb19jb250ZXh0CiAgIAoyMDAzLTA5LTMwIDE2OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgIGdlbmVyaWMtY3R4LWdldC5tMmksIGdlbmVyaWMtY3R4LXNldC5tMmksCiAgIG0yY19zZXR1cF90YWJsZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBzdWNrICdjdHgtPicgb3IgJ2N0eC4nIGludG8gJG0yY19kYXRhX2l0ZW0KICAgCjIwMDMtMDktMzAgMTY6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjCiAgIAoyMDAzLTA5LTMwIDE2OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgZ2VuZXJhdGUgZGVmaW5lIGZvciBtYXNrIG9mIGFsbCBiaXRzCiAgIAoyMDAzLTA5LTMwIDE0OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICB4eHggdGFnZ2luZy4KICAgCjIwMDMtMDktMzAgMTQ6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgY3JlYXRlIHRoZSBNYWtlZmlsZSB0byBlaXRoZXIgcmVmZXJlbmNlIGEgTmV0LVNOTVAgc291cmNlIGRpciBvciBub3QKICAgICAoYW5kIHJlcXVpcmUgZ251LW1ha2Ugb3Igbm90KS4KICAgCjIwMDMtMDktMzAgMDY6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG5ldyBmbGFnL3Rva2VuIHN0cmljdF91bmtfdG9rZW4gd2lsbCBhYm9ydCBvbiB1bmtub3cgQHRva2VuCiAgIAoyMDAzLTA5LTMwIDA2OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaDoKCiAgIGFkZCBuZXRzbm1wX2NoZWNrX3ZiX3NpemUsIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZQogICBhbmQgbmV0c25tcF9jaGVja192Yl9yb3dzdGF0dXNfdmFsdWUKICAgCjIwMDMtMDktMzAgMDY6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIG1vcmUgbnVsbCBwdHIgY2hlY2tzOyBhZGQgbmV0c25tcF9jaGVja192Yl9zaXplLCBuZXRzbm1wX2NoZWNrX3ZiX3NpemVfcmFuZ2UKICAgYW5kIG5ldHNubXBfY2hlY2tfdmJfcm93c3RhdHVzX3ZhbHVlCiAgIAoyMDAzLTA5LTMwIDA2OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLAogICBnZW5lcmljLWdldC1kZWNsLm0yaSwgZ2VuZXJpYy1nZXQtbG9uZy5tMmksCiAgIGdlbmVyaWMtZ2V0LW9pZC5tMmksIGdlbmVyaWMtaGVhZGVyLWJvdHRvbS5tMmksCiAgIGdlbmVyaWMtaGVhZGVyLXRvcC5tMmksIGdlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmkKLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksIG0yY19zZXR1cF9lbnVtLm0yaSwKICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbm9kZS1zdG9yYWdlLm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzcy1zZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpCiwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjCiAgIAoyMDAzLTA5LTMwIDA2OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBmaXggZ2VuZXJhdGVkIGNvbW1lbnQKICAgCjIwMDMtMDktMzAgMDY6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG5ldyBmbGFnIGZvciBpbmNsdWRpbmcgZXhhbXBsZSBjb2RlCiAgIAoyMDAzLTA5LTI5IDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmkKLCBtZmQtcmVhZG1lLm0yYzoKCiAgIE1pc2MgdXBkYXRlcyBmb3IgcmVhZGFiaWxpdHksIGV0Yy4KICAgCjIwMDMtMDktMjkgMTY6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIEluaXRpYWwgd29yZCBzbWl0aGluZyBvZiB0aGUgZ2xvYmFsIFJFQURNRS4KICAgCjIwMDMtMDktMjkgMTU6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgU3VwcG9ydCBhIC1JIHN3aXRjaCB0byBzcGVjaWZ5IGNvbmZpZyBmaWxlIHNlYXJjaCBwYXRocy4KICAgCjIwMDMtMDktMjkgMTU6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBtaXNzaW5nIHNvbWUgZW5kIHN0YXRlbWVudHMKICAgCjIwMDMtMDktMjkgMTQ6MjcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICByZWZlcmVuY2UgbmV3IGRpc21hbiBmZWF0dXJlcwogICAKMjAwMy0wOS0yOSAxNDoyNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCAocG9vcmx5IG9mIGNvdXJzZSkgbmV3IG1vbml0b3JpbmcgZmVhdHVyZXMuCiAgIAoyMDAzLTA5LTI5IDE0OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgLSB0cmFwRXZlbnQgLT4gbm90aWZpY2F0aW9uRXZlbnQKICAgCjIwMDMtMDktMjkgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICAtIGxpbmtVcERvd25UcmFwcyAtPiBsaW5rVXBEb3duTm90aWZpY2F0aW9ucwogICAKMjAwMy0wOS0yOSAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlRXZlbnRUYWJsZS5jLCBtdGVFdmVudFRhYmxlLmgKLCBtdGVUcmlnZ2VyVGFibGUuYzoKCiAgIC0gQSBuZXcgc25tcGQuY29uZiB0b2tlbiAodHJhcEV2ZW50KSBmb3IgZ2VuZXJhdGluZyB0cmFwcyBvZiBhbnkga2luZAogICAgIG9uIGEgbW9uaXRvcmluZyBldmVudCBhbmQgYSAtZSBzd2l0Y2ggdG8gbW9uaXRvciB0b2tlbiB0byByZWZlcmVuY2UgaXQuCiAgIC0gQSBuZXcgc25tcGQuY29uZiB0b2tlbiBsaW5rVXBEb3duVHJhcHMgdG8gZW5hYmxlIGxpbmtVcC9saW5rRG93bgogICAgIHRyYXBzIHVzaW5nIHRoZSBhYm92ZSBwaWVjZS4KICAgCjIwMDMtMDktMjkgMDc6MDAgIGhhcmRha2VyCgogICAqIGRpc3Qvc25tcGQtaW5pdC5kOgoKICAgL2V0Yy9pbml0LmQgLT4gL2V0Yy9yYy5kL2luaXQuZAogICAKMjAwMy0wOS0yOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgY29tbWVudCBpbiBjb21tZW50IHByb2JsZW0uCiAgIAoyMDAzLTA5LTI4IDE5OjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIEFkZGVkIERhdmUncyByZWFsbHkgY29sbCBhc2NpaSBkaWFncmFtIGZyb20gLXVzZXJzIGV4cGxhaW5pbmcgaG93CiAgIHRyYXBzIGFyZSBzZW50IHRvIHRoZWlyIGRlc3RpbmF0aW9ucyBvdmVyIGFueSBTTk1QIHZlcnNpb24uCiAgIAoyMDAzLTA5LTI4IDE5OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIEFkZGVkIERhdmUncyByZWFsbHkgY29sbCBhc2NpaSBkaWFncmFtIGZyb20gLXVzZXJzIGV4cGxhaW5pbmcgaG93CiAgIHRyYXBzIGFyZSBzZW50IHRvIHRoZWlyIGRlc3RpbmF0aW9ucyBvdmVyIGFueSBTTk1QIHZlcnNpb24uCiAgIAoyMDAzLTA5LTI2IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBwcm9wZXJseSBtYWxsb2MgdGhlIGVudGVycHJpc2UgcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCiAgIAoyMDAzLTA5LTI2IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNS0wLXBhdGNoZXMuNCksIFNOTVAueHM6CgogICBjb3JyZWN0IGxlbmd0aCBpbiBzdHJpbmcgZml4ZWQgc3RyaW5nIGNvbXBhcmlzb24KICAgCjIwMDMtMDktMjYgMTY6MTkgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1pc2MgaW5zdGFsbCBmaXhlcyAobW9zdGx5IHBlcmwpIGFuZCBvbmUgcGVybCBwYXRjaC4KICAgCjIwMDMtMDktMjYgMTA6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY1LTAtcGF0Y2hlcy4zKSwgU05NUC54czoKCiAgIGZpeCB1c2VOdW1lcmljIG9uY2UgYW5kIGZvciBhbGwgKG1heWJlKQogICAKMjAwMy0wOS0yMCAyMjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY1LTAtcGF0Y2hlcy4xKSwgaHJfc3dydW4uYwo6CgogICBQYXRjaCAjODA5MjQzIGZvciBidWcgIzgwODkyMCBmcm9tIEJvYiBSLiBmb3IgZml4aW5nIHByb2Nlc3MgbmFtZSBkaXNjcmVwZW5jeSAocHMgdnMgU05NUCkKICAgCjIwMDMtMDktMjAgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBpbnN0YW5jZS5jIChWNS0wLXBhdGNoZXMuMSksIGluc3RhbmNlLmM6CgogICBwYXRjaCAjODA3NDE0IGZvciBidWcgIzc1NzkyMyBieSBCb2IgUm93bGFuZHMgdG8gZml4IGludCB3YXRjaGluZyBvbiA2NCBiaXQgc3lzdGVtcwogICAKMjAwMy0wOS0xNyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICB1c2UgbmV0IGRhdGFfbGlzdF9hZGRfZGF0YQogICAKMjAwMy0wOS0xNyAxNzo0OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBjaGFuZ2UgbWZkIGFwaSBwYXJhbWV0ZXJzCiAgIAoyMDAzLTA5LTE3IDE3OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBhbHdheXMgY3JlYXRlIGFnZW50X3JlcV9pbmZvIHdoZW4gY3JlYXRpbmcgYXNwOyBtb3ZlCiAgIGdldGJ1bGsgcmVvcmRlciBjb2RlIGludG8gYW4gaW5saW5lIGZ1bmN0aW9uIGZvciBjb2RlIHJlYWRhYmlsaXR5OyBkZXByZWNhdGUKICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvciBhbmQgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0X2Vycm9yIGluIGZhdm9yCiAgIG9mIG5ldyBuZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yOyBkZXByZWNhdGUgbmV0c25tcF9zZXRfYWxsX3JlcXVlc3RzX2Vycm9yIGluCiAgIGZhdm9yIG9mIG5ldyBuZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yX2FsbDsgdHJ5IGFuZCByZXR1cm4gdXNlZnVsIGVycm9yIGNvZGVzCiAgIAoyMDAzLTA5LTE3IDE3OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaDoKCiAgIG1ha2Ugc3VyZSBwYXJhbXMgYXJlIHVuaXF1ZQogICAKMjAwMy0wOS0xNyAxNzoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhdXRvaGVhZGVyIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKICAgCjIwMDMtMDktMTcgMTc6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgc2V0dXAgZm9yIGVudW0gdmFycwogICAKMjAwMy0wOS0xNyAxNzowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHJlbW92ZSBjcmVhdGVfdW5kb19jb250ZXh0IChhc3N1bWluZyB1bmRvX2NvbnRleHQgPT0gZGF0YV9jb250ZXh0IGZvciBub3cpOwogICBmaXggbG9nIGxldmVsIG1hY3JvOyBhbGxvY2F0ZV9kYXRhX2NvbnRleHQgbW92ZWQgZWxzZXdoZXJlCiAgIAoyMDAzLTA5LTE3IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgZml4IHBhcmFtYXRlciB0eXBlOwogICAKMjAwMy0wOS0xNyAxNjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgZG9uJ3QgbmVlZCBzb3VyY2UgZGlyIGlmIHdlIHVzZSBuZXcgbmV0LXNubXAtY29uZmlnIC0tYnVpbGQtaW5jbHVkZXM7IGFkZAogICBidWlsZC9zcmMgZGlyIC1JIHBhdGhzIGJlZm9yZSBiYXNlIGNmbGFncwogICAKMjAwMy0wOS0xNyAxNjo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgYWRkIG9iamVjdF9zeW50YXhfY2hlY2sgcHJvY2Vzc2luZzsKICAgCjIwMDMtMDktMTcgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIG9ubHkgaW5jbHVkZSBwYXJlbnQtc2V0IGlmIGRhdGEgY29udGV4dCBpcyBnZW5lcmF0ZWQgJiBhbGxvY2F0ZWQKICAgCjIwMDMtMDktMTcgMTY6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgcGVyIG5vZGUgc2V0dXAgZm9yIGVudW1zCiAgIAoyMDAzLTA5LTE3IDE2OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgIGdlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIG5ldyBmaWxlIHRvIHNldHVwIGVudW1zIHZhcnMKICAgCjIwMDMtMDktMTcgMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmM6CgogICBuZXcgZmlsZSB0byBnZW5lcmF0ZSBlbnVtcyBoZWFkZXIgZmlsZQogICAKMjAwMy0wOS0xNyAxNjo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksCiAgIGdlbmVyaWMtY3R4LXNldC5tMmksIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgbTJjX3NldHVwX3RhYmxlLm0yaSwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaQo6CgogICBuZXcgbTJjX2RhdGFfaXRlbSBmb3IgZ2V0dGluZyB0byBkYXRhIGl0ZW1zLCBzbyBpbmNsdWRlcyBkb24ndCBuZWVkIHRvIGtub3cKICAgd2hldGhlciBvciBub3QgdG8gdXNlIGRhdGEtPml0ZW0gb3IgZGF0YS5pdGVtLgogICAKMjAwMy0wOS0xNyAxNjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIG1vdmUgc29tZSBzZXR1cCBmb3IgZW51bXMgdG8gbTJjX3NldHVwX25vZGUgYW5kIG5ldyBtMmNfc2V0dXBfZW51bTsgYWRkIHNvbWUKICAgY29tbWVudHMgYW5kIGV4YW1wbGVzIHRvIGRvY3VtZW50IHByb2Nlc3MgZmxvdzsgbW92ZSBzb21lIGNvbW1lbnRzIHRvIHRoZQogICB0b3Agb2YgdGhlIGhlYWRlciBpbnN0ZWFkIGZvciBlYWNoIG5vZGU7IG1ha2Ugc3VyZSBpbnRlcm5hbCBtYXBwaW5nCiAgIGRlZmluZXMgYXJlIHVuaXF1ZSBwZXIgbm9kZQogICAKMjAwMy0wOS0xNyAxNjozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICB1c2UgZG94eWdlbiBkZXByZWNhdGVkIHRhZyBpbnN0ZWFkIG9mIHNpbXBsZSBjb21tZW50cwogICAKMjAwMy0wOS0xNyAxNjoyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBjaGFuZ2UgRklSU1QgdG8gdXNlIGZpbmRfbmV4dCBpbnN0ZWFkIG9mIGZpbmQ7IGFkZAogICBmdW5jIHBvaW50ZXIgZm9yIGl0ZW0gbWVtb3J5IGZyZWUKICAgCjIwMDMtMDktMTcgMTY6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oOgoKICAgcHJvdG90eXBlIGZvciBuZXcgY2hlY2tfdmJfdHlwZQogICAKMjAwMy0wOS0xNyAxMzowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIGNvbW1lbnRzOyBhZGQgYWdlbnRfcmVxdWVzdF9pbmZvIHB0ciB0byByZXF1ZXN0X2luZm87IGFkZAogICBuZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yOyBkZXByZWNhdGUgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvciBhbmQKICAgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0X2Vycm9yOyB1c2UgbmV3IGlubGluZSBtYWNyb3M7IHJlbW92ZSB1bnVzZWQgcGR1CiAgIHBvaW50ZXIgZnJvbSBhZ2VudF9yZXF1ZXN0X2luZm8KICAgCjIwMDMtMDktMTcgMTM6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgZm9yIHNldCwgc2F2ZSByb3cgaW4gZmlyc3QgcmVxdWVzdDsgY2hnIG1mZCBwYXJhbSBsaXN0OyBkb24ndCBjYWxsIGxhdGVyCiAgIG1vZGVzIHVubGVzcyByb3cgZXhpc3RzOyBjYWxsIGxvd2VyIGhhbmRsZXJzOwogICAKMjAwMy0wOS0xNyAxMjozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgc25tcGxpYi9kYXRhX2xpc3QuYwo6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGFkZCBkYXRhX2xpc3RfYWRkX25vZGUsIGRhdGFfbGlzdF9hZGRfZGF0YQogICAKMjAwMy0wOS0xNyAxMjowOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3MKICAgCjIwMDMtMDktMTcgMTI6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oOgoKICAgbmV3IG5ldHNubXBfZGF0ZWFuZHRpbWVfc2V0X2J1Zl9mcm9tX3ZhcnMKICAgCjIwMDMtMDktMTcgMTE6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIG5ldyBuZXRzbm1wX2RhdGVhbmR0aW1lX3NldF9idWZfZnJvbV92YXJzCiAgIAoyMDAzLTA5LTE3IDA5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvCiAgIAoyMDAzLTA5LTE3IDA5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IG5ldyBjaGVja192Yl90eXBlCiAgIAoyMDAzLTA5LTE3IDA5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGJpbmFyeSBhcnJheSB0ZXN0IGJpbmFyeQogICAKMjAwMy0wOS0xNyAwOTo0NiAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXBkYXRlIGZvciBuZXcgaW5saW5lIG1hY3JvcyAoSSB0aGluayBtaWNyb3Nsb3RoIHN1cHBvcnRzIGlubGluZSkKICAgCjIwMDMtMDktMTcgMDk6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGFpeC5oLCBocHV4LmgsIGlyaXguaAosIG9zZjUuaDoKCiAgIHR1cm4gb2ZmIG5ldC1zbm1wIHVzZSBvZiBpbmxpbmUgZm9yIG5vbi1nY2MgY29tcGlsZXJzIChkb24ndCB1bmRlZiBpbmxpbmUpCiAgIAoyMDAzLTA5LTE3IDA5OjM4ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGRlZmluZSAoYW5kIGNvbW1lbnQpIG1hY3JvcyBmb3IgaGFuZGxpbmcgaW5saW5lIHVzZSBpbiBuZXQtc25tcAogICAKMjAwMy0wOS0xNyAwOTozNyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIG12IGJ1aWxkIGRpciBjaGVjayB0byBzdWJyb3V0aW5lOyBhZGQgbWlzc2luZyBOU0NfU1JDX0xJQkRJUlM7IGFkZCBuZXcKICAgLS1idWlsZC1pbmNsdWRlcwogICAKMjAwMy0wOS0xNyAwOTozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCAtV2lubGluZSB0byBkZXYgZmxhZ3MKICAgCjIwMDMtMDktMTcgMDk6MzMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGdpdmUgcmVhc29uIHdoZW4gcmUtcnVubmluZyBjb25maWcuc3RhdHVzCiAgIAoyMDAzLTA5LTE2IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBwZXRlciBoaWNrcwogICAKMjAwMy0wOS0xNiAxNzoyNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBQYXRjaCBmcm9tIFBldGVyIEhpY2tzIGZvciBhIG5ldyBnZXRfdGFibGUgZnVuY3Rpb24KICAgCjIwMDMtMDktMTYgMTc6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jIChWNS0wLXBhdGNoZXMuMSksCiAgIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBQYXRjaCBmcm9tIEthdHN1aGlzYSBBQkUgZnJvbSAtdXNlcnMgdG8gZml4IGEgbWFza2luZyBwcm9ibGVtCiAgIAoyMDAzLTA5LTEyIDEyOjQzICBoYXJkYWtlcgoKICAgKiBkaXN0LzogUkVMRUFTRS1JTlNUUlVDVElPTlMsIG5ldC1zbm1wLnNwZWM6CgogICAtIG1pbm9yIGNoYW5nZXMgZm9yIGltcHJvdmVkIHBlcmwgTWFrZWZpbGUuUEwgYXJndW1lbnQgc3VwcG9ydCAoPj0gNS4wLjkpCiAgIAoyMDAzLTA5LTEyIDExOjAzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAoVjUtMC1wYXRjaGVzLjIpLCBNYWtlZmlsZS5pbjoKCiAgIFBhdGNoIGZvciAtLXdpdGgtcGVybC1tb2R1bGVzIGV4dHJhIGFyZ3VtZW50IHN1cHBvcnQKICAgCjIwMDMtMDktMTIgMDY6MjggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlnLmluCiAgIAoyMDAzLTA5LTEyIDA2OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IG1pcy1tYXRjaGVkIHBhcmVucwogICAKMjAwMy0wOS0xMSAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICB1c2UgbmV3IG5ldHNubXBfZGFlbW9uaXplIGxpYnJhcnkgY2FsbAogICAKMjAwMy0wOS0xMSAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIG1vdmUgY29tbWVudHMgYWJvdXQgcm91dGluZXMgY2xvc2VyIHRvIHJvdXRpbmVzIHRvIHJlZHVjZSBjb25mdXNpb24KICAgCjIwMDMtMDktMTEgMTU6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBAZGVidWdAIHRva2VuIHRvIHR1cm4gZGVidWcgb24vb2ZmOyBwcmludCBsb2NhdGlvbnMgZm9yIG1vcmUgd2FybmluZ3MvZXJyb3JzCiAgIAoyMDAzLTA5LTExIDE1OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBkZWZhdWx0cyBmb3IgdHdvIG5ldyBmbGFnczogcmVhZG1lX3ZlcmJvc2UgYW5kIGRhdGFfdHJhbnNpZW50CiAgIAoyMDAzLTA5LTExIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpOgoKICAgcmVhZG1lIGZvciBEYXRlQW5kVGltZQogICAKMjAwMy0wOS0xMSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaToKCiAgIGFkZCBidWYgbGVuIHBhcmFtIHRvIG5ldHNubXBfZGF0ZWFuZHRpbWVfc2V0CiAgIAoyMDAzLTA5LTExIDE1OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdW4tY29tbWVudCBpbmNsdWRlIG9mIGVudW1zIGhlYWRlcjsgbW92ZSBhbGwgZGF0YSBjb250ZXh0IHByb2Nlc3NpbmcgaW50bwogICBpbmNsdWRlOyBkb24ndCBhc3N1bWUgcG9pbnRlcnMgdG8gZGF0YS91bmRvIGNvbnRleHRzOyBvbmx5IGRlZmluZSBwcm90b3R5cGUKICAgZm9yIGFsbG9jYXRlX2RhdGEgaWYgbmVlZGVkOyBydW4gZW51bSBoZWFkZXIgY29uZiBmaWxlOyBydW4gbmV3IHJlYWRtZSBjb25mIGZpbGUKICAgCjIwMDMtMDktMTEgMTQ6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgYnVpbGQtbGliLWRlcHMKICAgCjIwMDMtMDktMTEgMTQ6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIG9wZW4gZmlsZSBlYXJsaWVyOyB1c2UgbmV3IHZhciBmb3IgZGVmYXVsdCBORVRTTk1QRElSOyBkb24ndCBhc3N1bWUgTkVUU05NUERJUgogICBpcyBzb3VyY2VkaXI7IHVzZSBuZXcgbmV0LXNubXAtY29uZmlnIG9wdGlvbnMgZm9yIGdldCBsaWIgZGlycy9kZXBzCiAgIAoyMDAzLTA5LTExIDEzOjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgaW5jbHVkZSBuZXcgZ2VuZXJpYy1kYXRhLWFsbG9jYXRlIGlmIGRhdGFfYWxsb2NhdGUgc2V0IGFuZCBkYXRhX2NvbnRleHQgaXMKICAgZ2VuZXJhdGVkOyBtb3ZlIHRhYmxlXyhhbGxvY2F0ZXxyZWxlYXNlKV9jdHggaGVyZQogICAKMjAwMy0wOS0xMSAxMzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpOgoKICAgbmV3IGZpbGUgZm9yIGFsbG9jYXRlL3JlbGVhc2Ugb2YgZGF0YSBjb250ZXh0CiAgIAoyMDAzLTA5LTExIDEzOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBtb3ZlIGRhdGEgYWxsb2NhdGUvcmVsZWFzZSB0byBpdCdzIG93biBpbmNsdWRlOyBvbmx5IGluY2x1ZGUgaXQgaWYgZGF0YV9hbGxvY2F0ZQogICBzZXQgYW5kIGRhdGFfY29udGV4dCBpc24ndCBnZW5lcmF0ZWQKICAgCjIwMDMtMDktMTEgMTM6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmkKLCBtZmQtcmVhZG1lLm0yYzoKCiAgIG5ldyByZWFkbWUgZ2VuZXJhdGlvbgogICAKMjAwMy0wOS0xMSAxMzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgd3JhcCBnZXRfZmlyc3QvZ2V0X25leHQgc28gd2UgY2FuIG1vdmUgaW5kZXgyb2lkIGhlcmUgYW5kIG1ha2UgaXQgc3RhdGljCiAgIAoyMDAzLTA5LTExIDEzOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICBvbmx5IGdlbmVyYXRlIHRhYmVfZ2V0X2RhdGEgZm9yIHRyYW5zaWVudCBkYXRhOyBtb3ZlIGluZGV4Mm9pZCBpbnRvIGludGVyZmFjZQogICBjb2RlOyBnZW4gZGlmZmVyZW50IGNvZGUgYmFzZWQgb24gZGF0YSB0cmFuc2llbnQgc2V0dGluZwogICAKMjAwMy0wOS0xMSAxMzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgZGVmYXVsdCB0byBnZW5lcmF0ZWQsIG5vbi1hbGxvY2F0ZWQgZGF0YV9jb250ZXh0CiAgIAoyMDAzLTA5LTExIDEzOjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgZml4IHJlbmFtZWQgdmFyCiAgIAoyMDAzLTA5LTExIDEzOjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBkb24ndCBpbmNsdWRlIGVudW0gc3R1ZmYgaW4gb2lkIGhlYWRlcgogICAKMjAwMy0wOS0xMSAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgcmVtb3ZlIHVudXNlZCBvd25lciBwdHIKICAgCjIwMDMtMDktMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpOgoKICAgZml4IGxlbl9wdHIgdmFyaWFibGUgbmFtZQogICAKMjAwMy0wOS0xMSAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1jaGFyLm0yaToKCiAgIGRlZmluZSBJU19TRVRfKiBtYWNyb3MgaGVyZSBpbnN0ZWFkIG9mIGluIGhlYWRlcgogICAKMjAwMy0wOS0xMSAxMzozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtY29udGV4dC5tMmk6CgogICBtZXJnZSBkYXRhIHN0cnVjdCBiYWNrIGludG8gc2luZ2xlIHR5cGVkZWY7IGRvbid0IGdlbmVyYXRlIHN0cnVjdCBpZiB1c2VyCiAgIHNwZWNpZmllZCBleGlzdGluZyBzdHJ1Y3Q7IGFkZCAqIGluIHR5cGVkZWYgaWYgZGF0YV9hbGxvY2F0ZSBzZXQKICAgCjIwMDMtMDktMTEgMTM6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtY29weS5tMmk6CgogICByZW1vdmUgZXhhbXBsZSBzdGFydC9lbmQgKHBhcmVudCBkZWNpZGVzIHRoYXQpCiAgIAoyMDAzLTA5LTExIDEzOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgbW9yZSBkaXN0aW5jdGl2ZSBzZXBhcmF0b3IgYmVmb3JlIHRhYmxlcwogICAKMjAwMy0wOS0xMSAxMzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIHJlbW92ZSBJU19TRVRfKiBtYWNyb3M7IHR3ZWFrIGNvbmRpdGlvbnMgZm9yIGdlbmVyYXRpbmcgZW51bXMgYW5kIG1hcHBpbmcKICAgbWFjcm9zCiAgIAoyMDAzLTA5LTExIDEzOjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG5ldyBuZXRzbm1wX2RhZW1vbml6ZQogICAKMjAwMy0wOS0xMSAxMzowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIHJlZHVjZSBzY29wZSBvZiBzdW4ncyBjb3B5cmlnaHQgY2xhaW07IGJhaWwgaWYgbmV0LXNubXAtY29uZmlnIG5vdCBpbmNsdWRlZDsKICAgcHJvdG90eXBlIGZvciBuZXcgbmV0c25tcF9kYWVtb25pemUKICAgCjIwMDMtMDktMTEgMTI6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYzoKCiAgIGZpeCBjb21tZW50IHR5cG87IGRvY3VtZW50IHBvc3NpYmxlIHJhY2UgY29uZGl0aW9uIGFuZCBtb3ZlIG9uZSBsaW5lIHRvCiAgIG1ha2Ugd2luZG93IHNtYWxsZXIKICAgCjIwMDMtMDktMTEgMTI6NTUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICB1c2UgdmFycyB0byBtYWtlIGl0IGVhc2llciB0byB1bmRlcnN0YW5kIHdoYXQgZmxhZ3MgYXJlIHdoYXQgaW4gZ2VuZXJhdGVkCiAgIHZlcnNpb247IGdyb3VwIHNpbWlsYXIgb3B0aW9ucyB0b2dldGhlcjsgYWRkIG9wdGlvbnMgdG8gdG8gZ2V0IHNvdXJjZQogICBkaXJlY3RvcnkgYW5kIGxpYiBwYXRoIGluIGJ1aWxkIGRpcjsgYWRkIC0tYmFzZS1zdWJhZ2VudC1saWJzIChubyBsaWIgcGF0aCksCiAgIC0tbGliZGlyCiAgIAoyMDAzLTA5LTExIDA4OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZy5pbgogICAKMjAwMy0wOS0xMSAwODoyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHRyYXAgYmFkIG9wdGlvbnMgLS13aXRoLW1vZHVsZXMgb3IgLS13aXRoLW91dC1tb2R1bGVzCiAgIAoyMDAzLTA5LTA1IDIzOjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgKFY1LTAtcGF0Y2hlcy43KSwgUkVBRE1FOgoKICAgYWRkZWQgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA5LTA1IDIyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYyAoVjUtMC1wYXRjaGVzLlsyLDJdKSwKICAgdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM4MDA1NjEgZnJvbSBCb2IgUm93bGFuZHMgdG8gZml4IDY0Yml0IHByb2JsZW1zICgtPiBzaXplX3QpCiAgIAoyMDAzLTA5LTA1IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBwcm90b2NvbC5jIChWNS0wLXBhdGNoZXMuMSksIHByb3RvY29sLmMKOgoKICAgUGF0Y2ggIzgwMDQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgNjQgYml0IGFnZW50eCBwcm9ibGVtcwogICAKMjAwMy0wOS0wNSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB1c20uYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wdXNtLmM6CgogICBQYXRjaCAjNzkyMDA4IGZyb20gVGhvbWFzPyB0byBhbGxvdyB1c21Vc2VyIHRva2VucyB0byBvdmVycmlkZSBwcmV2aW91cyBlbnRyaWVzCiAgIAoyMDAzLTA5LTA1IDIyOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBkZi4xLAogICBzbm1wbmV0c3RhdC4xLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wdHJhbnNsYXRlLjEuZGVmIChWNS0wLXBhdGNoZXMuWzIsMiwxLDEsMSwxLDEsMSwxXSksIG1pYjJjLjEuZGVmCiwgbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCiwgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBkZi4xLAogICBzbm1wbmV0c3RhdC4xLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsCiAgIHNubXB0ZXN0LjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmOgoKICAgUGF0Y2ggIzc4OTQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgYSBsb25nIG5lZWRlZCBvdmVyaGF1bCBvZiB0aGUgbWFudWFsIHBhZ2VzLgogICAKMjAwMy0wOS0wNSAyMToyMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNS0wLXBhdGNoZXMuWzksOSw5XSksCiAgIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBvcHRpb25hbCBhcmd1bWVudHMgdG8gdGhlIC0td2l0aC1wZXJsLW1vZHVsZXMgZmxhZyBmb3IgcGFzc2luZyBkb3duCiAgIAoyMDAzLTA5LTA1IDE2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAgIChWNS0wLXBhdGNoZXMuWzQsMl0pLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggYSBnZXRidWxrIGJ1ZyBwb2ludGVkIG91dCBieSBKdXJpaiBTbWFrb3YuCiAgIAoyMDAzLTA5LTA1IDA2OjI1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwgYWdlbnQvYWdlbnRfdHJhcC5jCjoKCiAgIFJlLXdyaXR0ZW4gaW50ZXJuYWxzIG9mIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KICAgV29yayB3aXRoIHNlcGFyYXRlIHYxIGFuZCB2MiB0ZW1wbGF0ZSBQRFVzLCBhbmQgc2VwYXJhdGUKICAgKHN0YW5kYWxvbmUpIHJvdXRpbmVzIHRvIGNvbnZlcnQgYmV0d2VlbiB0aGVtLCBmb2xsb3dpbmcgUkZDIDI1NzYsCiAgIEhvcGVmdWxseSBhIHNvbWV3aGF0IGNsZWFuZXIgYXBwcm9hY2ggdGhhbiBiZWZvcmUsCiAgIAoyMDAzLTA5LTAyIDIzOjA5ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIG5ldyBzcGVjIHRvIGluY2x1ZGUgYnVpbGRpbmcgdGhlIHBlcmwgbW9kdWxlcy4KICAgICAtIGRvbmUgaW4gc29ydCBvZiBhIHRlbXBvcmFyeSBoYWNreSB3YXkgdGlsbCBwcm9wZXIgc3VwcG9ydCBpcyBwdXQKICAgICAgIGRpcmVjdGx5IGludG8gdGhlIG1hc3RlciBNYWtlZmlsZSB0byBzdXBwb3J0IG9wdGlvbmFsIGFyZ3VtZW50cwogICAgICAgYmVpbmcgcGFzc2VkIHRvIHRoZSBNYWtlZmlsZS5QTCBzY3JpcHQuCiAgIAoyMDAzLTA5LTAyIDIzOjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIHRvIGluY2x1ZGUgUlBNIGJ1aWxkaW5nIGluc3RydWN0aW9ucy4KICAgCjIwMDMtMDktMDIgMjM6MDcgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBNb2RpZmljYXRpb25zIHRvIHN1cHBvcnQgcGVybCBhbmQgYnVpbGRpbmcgc291cmNlIGFuZCBiaW5hcnkgYXQgb25jZS4KICAgCjIwMDMtMDktMDIgMTQ6NTMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiB0byBub3Qgc291cmNlIH4vLm5zYi1uaWdodGx5OyBkb24ndCByZW1vYmUgYnVpbGQgZGlyIG9uIHN1Y2Nlc3MgaGVyZQogICAKMjAwMy0wOS0wMiAxNDo1MiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFsbG93IGVudiB2YXJzIHRvIG92ZXJyaWRlIGRlZmF1bHRzIGZvciBtb3JlIG9wdGlvbnM7IHJlbmFtZSBEQVRFIHRvCiAgIE5TQl9EQVRFOyBvbmx5IHNjcCBtYWtlIGZpbGVzIGZyb20gdGhpcyBydW47IGFkZCB1bmFtZSB0byBvdXRwdXQKICAgCjIwMDMtMDktMDEgMTY6NDUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcHJ1bmUgZGlzdC9ycG0gZnJvbSBldGFncyByZXN1bHRzCiAgIAoyMDAzLTA4LTI4IDAyOjAyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQSBjb25maWd1cmUgdG9rZW4gdG8gY29udHJvbCB0aGUgYWRkcmVzc2VzL3BvcnRzIHRoYXQgdHJhcGQgbGlzdGVucyBvbi4KICAgCjIwMDMtMDgtMjIgMDI6MzggIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgRG9jdW1lbnQgdGhlIGRlZmF1bHQgdmVyc2lvbiBjaGFuZ2UuCiAgIAoyMDAzLTA4LTIxIDE0OjI4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIG1ha2UgdXBsb2FkIHRhcmJhbGwgbmFtZSBiYXNlZCBvbiBkYXRlCiAgIAoyMDAzLTA4LTIxIDAxOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJZiBhIEdFVEJVTEsgaGl0cyB0aGUgZW5kIG9mIHRoZSBNSUIgdHJlZSwgbWFrZSBzdXJlIGFueSBlbXB0eSB2YXJiaW5kcwogICBhcmUgcmV0dXJuZWQgYXMgJ2VuZE9mTWliVmlldycgZXhjZXB0aW9ucywgcmF0aGVyIHRoYW4gKC4wLjAgPSBOVUxMKQogICAKICAgSWYgKmFsbCogdGhlIHJlcGVhdGluZyB2YXJiaW5kcyBoaXQgdGhlIGVuZCBvZiB0aGUgTUlCIHRyZWUsIHRydW5jYXRlCiAgIGFmdGVyIHRoZSBmaXJzdCBmdWxsIGVtcHR5IHJvdy4KICAgCjIwMDMtMDgtMjEgMDE6NTAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIElmIHRoZXJlJ3MgYSBtaXh0dXJlIG9mICJzdGlsbCBhY3RpdmUiIHJlcGV0aXRpb25zLCBhbmQgb25lcyB0aGF0IGhhdmUKICAgYWxyZWFkeSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIE9JRCB0cmVlLCB0aGVuIHNvbWUgb2YgdGhlIHZhcmJpbmQgc3RydWN0dXJlcwogICBtYXkgd2VsbCBiZSBOVUxMLgogICAgIEl0J3MgcHJlZmVyYWJsZSB0byBza2lwIHRoZXNlLCBhbmQgY29udGludWUgcHJvY2Vzc2luZyBldmVyeXRoaW5nIGVsc2UsCiAgIHJhdGhlciB0aGFuIGNyYXNoIHRoZSBzZXJ2ZXI6LSkKICAgCjIwMDMtMDgtMjEgMDE6MjkgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIERlZmF1bHQgdG8gZ2xvYmFsIFNNVVggYWNjZXNzIChhcyBjdXJyZW50bHkpLCBidXQgc3VwcGx5IGEgY29uZmlndXJlCiAgIG9wdGlvbiB0byBzZXQgZGVmYXVsdCBTTVVYIGFjY2VzcyB0byBiZSBsb2NhbGhvc3Qgb25seS4KICAgSGFwcHkgbm93PwogICAKMjAwMy0wOC0yMSAwMToyNCAgZHRzMTIKCiAgICogYWNjb25maWcuaDoKCiAgIEVuc3VyZSB0aGF0IHRoZSBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gdG9rZW4gcmVtYWlucyBhdmFpbGFibGUKICAgd2hlbiBjb25maWd1cmUgc3lzdGVtIGZpbGVzIGFyZSByZWNyZWF0ZWQuCiAgIAoyMDAzLTA4LTIwIDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFeHBhbmQgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBwb3N0LUJVTEsgcmUtb3JnYW5pc2F0aW9uLCBzbyBpdCdzIHNvbWV3aGF0CiAgIGNsZWFyZXIgd2hhdCdzIGhhcHBlbmluZy4gIEl0IHRvb2sgbWUgYmVzdCBwYXJ0IG9mIGFuIGhvdXIgKHBsdXMgaW5zZXJ0aW5nCiAgIGFzc29ydGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzKSB0byBtYWtlIHNlbnNlIG9mIHRoaXMhCiAgIAoyMDAzLTA4LTIwIDAyOjM2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBSZWdpc3RlciBNSUJzIHVzaW5nIHRoZSBsb3dlc3QtbGV2ZWwgYXZhaWxhYmxlIG5hbWUsIHJhdGhlciB0aGFuIHRoZQogICBmaXJzdCBoYW5kbGVyIGluIHRoZSBjaGFpbi4gICBUaGlzIG5vIGxvbmdlciByZXN1bHRzIGluIHRoZSB3aG9sZSBNSUIKICAgcmVnaXN0cnkgYmVpbmcgaWRlbnRpZmllZCBhcyAiYnVsa190b19nZXQiIQogICAKMjAwMy0wOC0yMCAwMjoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaDoKCiAgIFVucmVnaXN0ZXIgKHJlbG9jYXRhYmxlKSBleHRlbnNpb25zIHdoZW4gcmUtcmVhZGluZyB0aGUgY29uZmlndXJhdGlvbiBmaWxlLgogICBUaGlzIGFsbG93cyAiZXhlYyIgbGluZXMgdG8gYmUgcmUtbG9hZGVkIHdpdGhvdXQgY2F1c2luZyB0aGUgYWdlbnQgdG8gY3Jhc2ghCiAgIAoyMDAzLTA4LTE5IDA4OjEyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEJldHRlciBmaXggZm9yIEJ1ZyAjNjMwMzQ4LiAgVHJlYXQgYWxsIERCUFJUIGNhbGxzIGNvbnNpc3RlbnRseSwgYW5kCiAgIG1ha2Ugc3VyZSB0aGUgUGVybElPX3ByaW50ZiBjYWxsIGlzIHBhc3NlZCB0aGUgY29ycmVjdCBwYXJhbWV0ZXIgbGlzdC4KICAgCjIwMDMtMDgtMTkgMDc6MzEgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgV2hhdGV2ZXIgdGhlIGNhdXNlIG9mIGJ1ZyAjNjMwMzQ4IHdhcywgdGhpcyBpc24ndCB0aGUgYW5zd2VyLgogICBXaXRoICdQZXJsSU9fZnByaW50ZicsIGl0IGRvZXNuJ3QgY29tcGlsZSEgIE1vcmUgaW52ZXN0aWdhdGlvbiBuZWVkZWQuCiAgIAoyMDAzLTA4LTE5IDAxOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEFsbG93IHRoZSAoY29tcGlsZS10aW1lKSBvcHRpb24gb2YgcmVzdG9yaW5nIGdsb2JhbCBhY2Nlc3MgdG8gU01VWCBzZXJ2aWNlcy4KICAgSWYgdGhlIGNvbnNlbnN1cyBpcyB0aGF0IHRoaXMgc2hvdWxkIGJlIHRoZSBkZWZhdWx0IChhcyBjdXJyZW50bHkpLCB0aGVuCiAgIEkndmUgbm8gc3Ryb25nIGZlZWxpbmdzIGVpdGhlciB3YXkuICBGZWVsIGZyZWUgdG8gYWRqdXN0IGFjY29yZGluZ2x5LgogICAKMjAwMy0wOC0xOSAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBBdXRvbWF0aWNhbGx5IHJlbGVhc2UgZXhwaXJlZCBjYWNoZSByZXNvdXJjZXMuCiAgIAoyMDAzLTA4LTE5IDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEludmFsaWRhdGUgdGhlIGNhY2hlIG9uIChzdWNjZXNzZnVsKSBTRVQgcmVxdWVzdHMuCiAgIFRoaXMgaXMgY3VycmVudGx5IGRvbmUgcmVnYXJkbGVzcyAtIGl0IHdvdWxkIGJlIHNlbnNpYmxlIHRvIG1ha2UgaXQKICAgY29uZmlndXJhYmxlIG9uIGEgcGVyLWNhY2hlIGJhc2lzLgogICAKMjAwMy0wOC0xOCAxNToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBjb21tZW50IG91dCBjb2RlIHRoYXQgc2hvdWxkbid0IGhhdmUgYmVlbiBjaGVja2VkIGluIHlldAogICAKMjAwMy0wOC0xOCAxNToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1cGRhdGUgZm9yIGNvcnJlY3QgbWV0aG9kIHRvIGNsZWFudXAgY29udGFpbmVyIGZhY3RvcnkgbGlzdDsgcmVtb3ZlCiAgIHJlbGVhc2VfaWZfdG9wIGFuZCBfYmFfKiBmdW5jdGlvbnMKICAgCjIwMDMtMDgtMTggMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1cGRhdGUgcHJvdG90eXBlIGZvciBjb3JyZWN0IGZ1bmN0aW9uIHRvIGNsZWFudXAgY29udGFpbmVyIGZhY3RvcnkgbGlzdDsgZml4CiAgIGNvbW1lbnQgdHlwb3M7IHJlbW92ZSByZWxlYXNlX2lmX3RvcCBwcm90b3R5cGUgYW5kIGNhbGwgaW4gQ09OVEFJTkVSX0ZSRUUKICAgCjIwMDMtMDgtMTggMTU6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNhbGwgY29ycmVjdCBmdW5jdGlvbiB0byBjbGVhbnVwIGNvbnRhaW5lciBmYWN0b3J5IGxpc3QKICAgCjIwMDMtMDgtMTggMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBkb2N1bWVudCBzZWdmYXVsdCBsb2NhdGlvbiBmb3IgZnV0dXJlIGZpeGluZwogICAKMjAwMy0wOC0xOCAwOToxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jOgoKICAgQnJpbmcgaW50byBsaW5lIHdpdGggbmV3IGNhY2hlIHJlbGVhc2UgQVBJIGRlZmluaXRpb24uCiAgIAoyMDAzLTA4LTE4IDA4OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIHNvdXJjZSBmb3IgdGFibGVfbWZkCiAgIAoyMDAzLTA4LTE4IDA4OjMwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg6CgogICBvcHBzLiAgbWlzc2VkIHRoZSBoZWFkZXIKICAgCjIwMDMtMDgtMTggMDg6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgZG9uJ3QgcmVmZXJlbmNlIG5vbi1leGlzdGVudCBmaWxlCiAgIAoyMDAzLTA4LTE4IDA4OjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIGhlYWRlciBmb3IgdGFibGVfbWZkCiAgIAoyMDAzLTA4LTE4IDA2OjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oOgoKICAgaGVhZGVyIGZvciBjb250YWluZXIgaXRlcmF0b3IKICAgCjIwMDMtMDgtMTggMDU6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmM6CgogICBOZXcgdjUtc3R5bGUgaGFuZGxlcnMgc2hvdWxkIG9ubHkgZXZlciByZWNlaXZlIE1PREVfR0VUIHJlcXVlc3RzLgogICBMb2cgYSB3YXJuaW5nIGZvciBvdGhlciB1bmV4cGVjdGVkIChvciB1bnJlY29nbmlzZWQpIHJlcXVlc3QgbW9kZXMuCiAgIAoyMDAzLTA4LTE4IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwLmMsCiAgIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jOgoKICAgVXNlIHRoZSBuZXcgKGludGVybmFsKSBjYWNoZSB2YWxpZGl0eSBjaGVja2luZy4KICAgUW46IEhvdyBjYW4gd2UgYWNjZXNzIHRoZSByZXF1ZXN0LWluZm9ybWF0aW9uIHN0cnVjdHVyZSAob3Igc2ltaWxhcikKICAgICAgIGZyb20gd2l0aGluIGl0ZXJhdG9yIGRhdGFfcG9pbnQgcm91dGluZXM/CiAgIAoyMDAzLTA4LTE4IDAzOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBQcm92aWRlIGFuIEFQSSBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNhY2hlIGlzIGN1cnJlbnRseSB2YWxpZC4KICAgUmVsZWFzZSBvbGQgY2FjaGUgcmVzb3VyY2VzIGJlZm9yZSBsb2FkaW5nIHRoZSBuZXcgdmFsdWVzLgogICBOQjogVGhpcyBpbnZvbHZlcyBhIGNoYW5nZSBpbiB0aGUgJ2ZyZWUnIGhvb2sgQVBJLgogICAKMjAwMy0wOC0xOCAwMzoxNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgVGhlIG1hY3JvIGZ1bmN0aW9uIGRlZmluaXRpb25zIHJlbHkgb24gbG9nZ2luZyByb3V0aW5lcyBmcm9tICdzbm1wX2xvZ2dpbmcuYycKICAgc28gdGhlIGFwcHJvcHJpYXRlIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5lZCBjb25zdGFudHMgbmVlZCB0byBiZSBhdmFpbGFibGUuCiAgIAoyMDAzLTA4LTE4IDAzOjEyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIFN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiB0aGUgc29ja2V0IGFkZHJlc3MgdG8gbGlzdGVuIGZvciBTTVVYIGNvbm5lY3Rpb25zIG9uLgogICAKICAgTm90ZTogQ2hhbmdlIG9mIGJlaGF2aW91ciAtIHRoaXMgcGF0Y2ggZGVmYXVsdHMgdG8gbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucwogICBmcm9tIHRoZSBsb2NhbGhvc3Qgb25seS4KICAgCjIwMDMtMDgtMTggMDI6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm92aXNpb25hbCBzdXBwb3J0IGZvciBzZW5kaW5nIGNsaWVudCByZXF1ZXN0cyBmcm9tIGEgc3BlY2lmaWVkIGludGVyZmFjZQogICBvciBzb2NrZXQgYWRkcmVzcy4KICAgUW46IFNob3VsZCB0aGlzIGJlIGFwcGxpZWQgdG8gVENQIGNvbm5lY3Rpb25zIHRvbz8KICAgICAgIFdoYXQgYWJvdXQgb3RoZXIgdHJhbnNwb3J0cz8KICAgCjIwMDMtMDgtMTggMDI6NTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgIEltcGxlbWVudCAnc25wcmludGZfZGVzY3JpcHRpb24nIHJvdXRpbmVzLAogICB0byBvdXRwdXQgTUlCIGRlZmluaXRpb25zIHRvIGEgc3RyaW5nIHJhdGhlciB0aGFuIGEgZmlsZS4KICAgCjIwMDMtMDgtMTcgMTY6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgZml4IGhhcmRjb2RlZCB2YXIgbmFtZXMvY29uc3RhbnRzIChlZWshKQogICAKMjAwMy0wOC0xNyAxNjo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJlbmFtZSBzb21lIHR5cGVkZWZzOyBhZGQgKl9yZWZfKiB0eXBlZGVmczsgbWFrZSBuZXRzbm1wX2luZGV4IGZpcnN0IGl0ZW0KICAgaW4gY3R4OyBtYWtlIGluZGV4IGxvY2FsIGluc3RlYWQgb2YgcHRyOyBydW4gbmV3IG1mZC1hY2Nlc3MtKi1oZWFkZXI7IGFkZAogICBzb21lIHByb3RvdHlwZXMsIGRlYnVnIG1zZ3M7IHVwZGF0ZSBpbml0IHRvIHNldCB1cCBtZmRfcmVnaXN0cmF0aW9uLCBjb250YWluZXIsCiAgICpfZ2V0X3ZhbHVlczsgZml4IHJlbmFtZXMgbWZkIHJlZ2lzdHJhdGlvbiByb3V0aW5lOyBydW4gbmV3IG1ha2VmaWxlIGFuZAogICBzdWJhZ2VudCBjb25mIGZpbGVzCiAgIAoyMDAzLTA4LTE3IDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgaW5jbHVkZSBtZmQgaGVhZGVyOyBuZXcgKl9nZXRfdmFsdWVzOyB0d2VhayAqX2dldF9jb2x1bW46IGluY2x1ZGUgYWNjZXNzaWJsZQogICBpbmRleGVzLCBwdXNoIHZhciBtZW1vcnkgY2hlY2sgdXAgYSBsZXZlbCAqX2dldF92YWx1ZXMgKHNob3VsZCBnbyB1cCBvbmUKICAgbW9yZSwgaW50byBoZWxwZXIgaW5zdGVhZCBvZiBnZW5lcmF0ZWQgY29kZSk7IHJ1biBuZXcgbWZkX2FjY2Vzc18qX2ludGVyZmFjZQogICAKMjAwMy0wOC0xNyAxNjo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgbW92ZSBwcm9jZXNzIHByaW50IGFmdGVyIG5vYWNjZXNzIHRlc3QKICAgCjIwMDMtMDgtMTcgMTY6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIG5ldyAqXyhhbGxvY2F0ZXxyZWxlYXNlKV8oZGF0YXxjdHgpOyBtb3ZlIHByb2Nlc3MgcHJpbnQgYWZ0ZXIgbm9hY2Nlc3MgdGVzdAogICAKMjAwMy0wOC0xNyAxNjozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgcmVuYW1lIGFjY2Vzcy0qIHRvIG1mZC1hY2Nlc3MtKgogICAKMjAwMy0wOC0xNyAxNjozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgYWRkIGhlYWRlcjsgaW5jbHVkZSBlbnVtcyB0b28KICAgCjIwMDMtMDgtMTcgMTY6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwgbWZkLW1ha2VmaWxlLm0ybQosIHN1YmFnZW50Lm0yYzoKCiAgIG5ldyBtZmQgZGF0YSBhY2Nlc3MgY29uZiBmaWxlcyAod3JhcCBhcm91bmQgbmV3IGNvbnRhaW5lciBpdGVyYXRvcik7IG5ldyBtZmQKICAgY29uZiBmaWxlcyB0byBnZW5lcmF0ZSBtYWtlZmlsZS9zdWJhZ2VudCBtYWluCiAgIAoyMDAzLTA4LTE3IDE2OjMxICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1c2UgY29uZmlnLmggZGVmaW5lIHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgd2luIGNhbGxiYWNrIHRyYW5zcG9ydCwgaW5zdGVhZAogICBvZiB3aW4gc3BlY2lmaWMgaWZkZWZzIGluIGNvZGUKICAgCjIwMDMtMDgtMTcgMTY6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIG5ldyBkZWJ1Z21zZ19zdWJvaWQKICAgCjIwMDMtMDgtMTcgMTY6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBjaGVjayBmb3IgbnVsbCBwdHIKICAgCjIwMDMtMDgtMTcgMTY6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIHJlbW92ZSBub2FsbG9jIGZ1bmN0aW9uczsgcmVuYW1lIHR5cGVkZWYKICAgCjIwMDMtMDgtMTcgMTY6MTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHJlbW92ZSBub2FsbG9jIGZ1bmN0aW9ucwogICAKMjAwMy0wOC0xNyAxNjoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgdW51c2VkIHZhciBhbmQgbm9hbGxvYyBmdW5jdGlvbnMKICAgCjIwMDMtMDgtMTcgMTY6MTcgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgYWRkIG9wdGlvbmFsIHVwbG9hZCBvZiBzcmMgdGFyYmFsbCBhZnRlciB1cGRhdGUKICAgCjIwMDMtMDgtMTcgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV3IG5ldHNubXBfc3ByaW50X3JlYWxsb2Nfb2JqaWQgKGRvZXNuJ3QgdXNlIG1pYnMpOyByZXdvcmsgaWZkZWZzIGZvcgogICBuZXRzbm1wX3NwcmludF9yZWFsbG9jX29iamlkX3RyZWUgJiBESVNBQkxFX01JQl9MT0FESU5HCiAgIAoyMDAzLTA4LTE3IDE1OjIwICByc3RvcnkKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBjb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGFkZCBuZXcgY29udGFpbmVyIGl0ZXJhdG9yCiAgIAoyMDAzLTA4LTE3IDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBkb24ndCBydW4gaW5kZW50IG9uIGZpbGVzIHVubGVzcyB0aGV5IGVuZCB3LyAuYyBvciAuaDsgcHJpbnQgbW9yZSBpbmZvIHdoZW4KICAgZGllIG9mIHVuZXhwZWN0ZWQgZWxzZQogICAKMjAwMy0wOC0xNyAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBuZXcgREVCVUdNU0dTVUJPSUQgJiBzdXBwb3J0aW5nIGNhc3QKICAgCjIwMDMtMDgtMTcgMTU6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgZml4IGNvbW1lbnRzIHdoaWNoIGV4Y2VlZCA4MCBjaGFycwogICAKMjAwMy0wOC0xNyAxNToxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgIG5ldyBuZXRzbm1wX3NwcmludF9yZWFsbG9jX29iamlkIHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIG5ldyBuZXRzbm1wX3RhYmxlX2ZpbmRfbmV4dF9yb3cgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIG5ldyBuZXRzbm1wX2VuYWJsZV9zdWJhZ2VudCBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIG5ldyBuZXRzbm1wX2NoZWNrX3JlcXVlc3RzX2Vycm9yIHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIG5ldyAodGVtcG9yYXJ5PykgYmFieSBzdGVwcyBoZWxwZXIKICAgCjIwMDMtMDgtMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBhZGQgYmFieV9zdGVwcy5oLCByb3dfbWVyZ2UuaCwgdGFibGVfbWZkLmgKICAgCjIwMDMtMDgtMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGRlZmluZSBuZXcgY2FuIGJhYnkgc3RlcCBtb2RlIGZsYWcKICAgCjIwMDMtMDgtMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBuZXcgbmV0c25tcF9yZWZfdm9pZCwgbmV0c25tcF9yZWZfc2l6ZV90IHR5cGVkZWZzCiAgIAoyMDAzLTA4LTE3IDE1OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGJhaWwgaWYgbmV0LXNubXAtY29uZmlnIGhhc24ndCBiZWVuIGluY2x1ZGVkOyBhZGQgY29udGFpbmVyL2Fzc2VydCBoZWFkZXJzCiAgIAoyMDAzLTA4LTE3IDE1OjA4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgYmFpbCBpZiBuZXQtc25tcC1jb25maWcgaGFzbid0IGJlZW4gaW5jbHVkZWQ7IGRvbid0IGlubGN1ZGUgdXRpbGl0aWVzIHR3aWNlCiAgIAoyMDAzLTA4LTE3IDE1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBuZXcgbmV0c25tcF9lbmFibGVfc3ViYWdlbnQsIG9ubHkgZGVmaW5lZCBpZiBVU0lOR19BR0VOVFhfU1VCQUdFTlRfTU9EVUxFLCBzbwogICBhIGxpbmsgZXJyb3Igd2lsbCBvY2N1ciBpZiBhZ2VudHggc3VwcG9ydCBub3QgY29tcGlsZWQgaW4KICAgCjIwMDMtMDgtMTcgMTU6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgZmluZF9uZXh0X3JvdywgdXNlIG5ldyBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3c7IGZpeCB0eXBvCiAgIAoyMDAzLTA4LTE3IDE1OjAzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbm90ZXMgZm9yIGZ1dHVyZSBlbmhhbmNlbWVudHM7IGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWs7IG5ldwogICBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3cKICAgCjIwMDMtMDgtMTcgMTU6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgc2tpcCBncm91cGluZyBpZiBvbmx5IDEgdmFyYmluZDsgbm90ZSBmb3IgZnV0dXJlIGVuaGFuY2VtZW50cwogICAKMjAwMy0wOC0xNyAxNTowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBhZGQgbmV3IGJhYnlfc3RlcHMsIHRhYmxlX21mZCBoZWxwZXJzOyBidWlsZCBvYmpzL2xvYmpzIGZyb20gc3JjcwogICAKMjAwMy0wOC0xNyAxNDo1OSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG5ldyBuZXRzbXBfY2hlY2tfcmVxdWVzdHNfZXJyb3JzCiAgIAoyMDAzLTA4LTE3IDE0OjU4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgY29kZSByZXVzZSAoY2FsbF9oYW5kbGVycyB1c2VzIGNhbGxfaGFuZGxlcik7IGFkZCBuZXcgbW9kZSB0ZXh0IGZvcgogICBoYW5kbGVyX2Nhbl9tb2RlIHNsaXN0CiAgIAoyMDAzLTA4LTE2IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIG1vdmUgc29tZSBwb2ludGVyIHNhdmluZyBmb3IgU1RBU0ggcmVsYXRlZCBzdHVmZiBvdXRzaWRlIHRoZSBtb3JlCiAgICAgZnJlcXVlbnRseSBjYWxsZWQgbG9vcC4KICAgCjIwMDMtMDgtMTUgMDQ6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNb3ZlIHByZWZpeC9zdWZmaXggb3B0aW9ucyB1bmRlciAtSQogICAKMjAwMy0wOC0xNSAwMzozMyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvbid0IGFkZCBhIHRyYWlsaW5nIGRvdCBpZiB3ZSdyZSBzZXR0aW5nIGEgcHJlZml4LCBidXQgbm90IGEgc3VmZml4LgogICAKMjAwMy0wOC0xNCAwMToxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGFsbF9oZWxwZXJzLmMsIGJ1bGtfdG9fbmV4dC5jLAogICBjYWNoZV9oYW5kbGVyLmMsIGRlYnVnX2hhbmRsZXIuYywgaW5zdGFuY2UuYywKICAgbW9kZV9lbmRfY2FsbC5jLCBtdWx0aXBsZXhlci5jLCByZWFkX29ubHkuYywKICAgcm93X21lcmdlLmMsIHNjYWxhci5jLCBzY2FsYXJfZ3JvdXAuYywKICAgc2VyaWFsaXplLmMsIHdhdGNoZXIuYzoKCiAgIFJlb3JnYW5pc2UgdGhlIGFnZW50IGhlbHBlciAnZG94eWdlbicgc3RydWN0dXJlLCB0byBtYWtlIGl0IGxlc3MgImZsYXQiLgogICBHcm91cCAibGVhZi1vYmplY3QiIGhlbHBlcnMgdG9nZXRoZXIsIGFuZCBpbnRlcm5hbCAidXRpbGl0eSIgaGVscGVycyBzaW1pbGFybHkuCiAgIAoyMDAzLTA4LTE0IDAxOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBUcnkgdG8gY2F0Y2ggKHNvbWUpIFBEVSBkdWFsLWZyZWUncy4KICAgCjIwMDMtMDgtMTQgMDA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIDEgb2YgMiBtZW1vcnkgbGVha3MgZm91bmQgKG9rLCBJIHNhaWQgSSB3YXNuJ3QgZ29pbmcgdG8gZmluZCBpdCBidXQuLi4pCiAgIAoyMDAzLTA4LTEzIDIzOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogTWFrZWZpbGUuaW4sIGFsbF9oZWxwZXJzLmMsCiAgIHN0YXNoX2NhY2hlLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICAtIGFkZGVkIGEgbmV3IGhlbHBlciB0byBhdXRvLWNhY2hlIGRhdGEuICBDdXJyZW50bHkgdGhlIG9ubHkKICAgICBzdWItbW9kdWxlIHN1cHBvcnRlZCBieSB0aGlzIGlzIHRoZSB0YWJsZV9pdGVyYXRvciwgYnV0IHNpZ25pZmljYW50CiAgICAgc3BlZWQgaW1wcm92ZW1lbnRzIGNhbiBiZSBzZWVuIHdoZW4gY2FjaGluZyBvZiBpdGVyYXRvciBkYXRhIGlzCiAgICAgdHVybmVkIG9uLgogICAgIC0gdG8gdGVzdCBhZGQgdG8gc25tcGQuY29uZjoKICAgICAgICAgaW5qZWN0SGFuZGxlciBzdGFzaF9jYWNoZSBNT0RVTEUgdGFibGVfaXRlcmF0b3IKICAgICAgIChhIGdvb2QgdGVzdCBtb2R1bGUgaXMgdGhlIG5zTW9kdWxlVGFibGUgd2hpY2ggaGFzIGEgbG90IG9mIHJvd3MpCiAgICAgLSB3YXJuaW5nOiBub3QgaGVhdmlseSB0ZXN0ZWQuICBTZWVtcyBvayBmb3IgYXQgbGVhc3QgdGhlIHNpbXBsZSBjYXNlcy4KICAgCjIwMDMtMDgtMTMgMjM6MzYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhZ2VudC9zbm1wX2FnZW50LmgsIGxpYnJhcnkvc25tcC5oCjoKCiAgIC0gZGVmaW5lIGEgbmV3IGludGVybmFsLXVzZSBtb2RlOiAgTU9ERV9HRVRfQ0FDSEUKICAgCjIwMDMtMDgtMTMgMjM6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICB1c2UgY2FsbG9jIHRvIGluaXRpYWxpemUgYW5kIHplcm8gbWVtb3J5IChmaXhlcyBhbiBlcnJvciBzcG90dGVkIGJ5IHZhbGdyaW5kKS4KICAgCjIwMDMtMDgtMTMgMjM6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBzcG90dGVkIG9uZSBtZW1vcnkgbGVhay4KICAgCjIwMDMtMDgtMTMgMjM6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgLSBhZGRlZCBhIC1DdCBvcHRpb24gdG8gc25tcHdhbGsgdG8gZGlzcGxheSB3YWxrIGNsb2NrIHRpbWVyIHJlc3VsdHMKICAgCjIwMDMtMDgtMTMgMjI6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICAtIGFkZGVkIGEgcGFyZW50IG5vZGUgZm9yIHVwd2FyZCB0cmF2ZXJzYWwuCiAgIC0gYSBnZXRuZXh0IGltcGxlbWVudGF0aW9uIHRoYXQgYWN0dWFsbHkgd29ya3MgKGZhaXJseSBoZWF2aWx5IHRlc3RlZCkuCiAgIAoyMDAzLTA4LTEzIDIyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gbW9kaWZpZWQgdGhlIGZyZWUgZnVuY3Rpb24gcG9pbnRlciB0byB0YWtlIGEgY2FjaGUgYXJndW1lbnQgZm9yCiAgICAgZ2VuZXJhbGl6aW5nIGl0IGEgYml0IG1vcmUuCiAgIAoyMDAzLTA4LTEzIDIyOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgLSBJbXBsZW1lbnQgbmV0c25tcF9pbmplY3RfaGFuZGxlcl9iZWZvcmUoKSB3aGljaCB0YWtlcyBhbiBhcmd1bWVudCB0bwogICAgIGRldGVybWluZSB3aGVyZSBpbiB0aGUgaGFuZGxlciBjaGFpbiBpdCBzaG91bGQgaW5qZWN0IHNvbWV0aGluZy4KICAgLSBNb2RpZnkgdGhlIGluamVjdEhhbmRsZXIgLmNvbmYgdG9rZW4gdG8gdGFrZW4gYW4gb3B0aW9uYWwgZmluYWwKICAgICBCRUZPUkUgYXJndW1lbnQuCiAgIAoyMDAzLTA4LTEwIDExOjM5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBtaXNjIGhpZ2ggbGV2ZWwgY29weXJpZ2h0IG5vdGVzIGFkZGVkIChJRSwgc2VlIHRoZSBDT1BZSU5HIGZpbGUsIC4uLikuCiAgIAoyMDAzLTA4LTEwIDExOjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIG1pc2MgY29weXJpZ2h0IG5vdGVzIGFkZGVkLgogICAKMjAwMy0wOC0wNSAwMTo0MiAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ2F0Y2ggbWlzc2luZyBwYXJhbWV0ZXJzIGluIGNvbXBpbGUtc3ViYWdlbnQgaGFuZGxpbmcgdG9vCiAgIAoyMDAzLTA4LTA1IDAxOjM4ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDYXRjaCBtaXNzaW5nIHBhcmFtZXRlcnMgaW4gY3JlYXRlLXNubXB2My11c2VyIGhhbmRsaW5nCiAgIAoyMDAzLTA4LTA1IDAxOjMyICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBVc2UgJDEgcGFyYW1ldGVyIGRpcmVjdGx5IGluIGNyZWF0ZS1zbm1wdjMtdXNlciBwcm9jZXNzaW5nLgogICBTb21ld2hhdCBsZXNzIGNvbmZ1c2luZyB0aGFuIHdpdGggdGhlIGFkZGl0aW9uYWwgJGFyZyBwYXJhbWV0ZXIsCiAgIGFuZCBsZXNzIGNoYW5jZSBvZiBzaGlmdGluZyBhIG5vbi1leGlzdGVudCB2YWx1ZS4KICAgKFJlbGV2YW50IHRvIGJ1ZyAjNzU1NTcxKQogICAKMjAwMy0wOC0wMiAwNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJlb2cvdXBkYXRlIGNvZGUgZ2VuZXJhdGlvbjsgcnVuIG1mZC1kYXRhLWFjY2Vzczsgc2V0IGhhbmRsZXIgUldSSVRFIGlmIHRhYmxlCiAgIHdyaXRhYmxlOyBjaGcgdGFibGUgcmVnaXN0cmF0aW9uIHR5cGU7IGluY2x1ZGUgbmV3IHRhYmxlIHNldHVwCiAgIAoyMDAzLTA4LTAyIDA2OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgc2ltcGxpZnkgcGFyYW0gbGlzdHM7IHVwZGF0ZSBjb2RlIGdlbmVyYXRpb24KICAgCjIwMDMtMDgtMDIgMDY6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgc2V0dXAgbm9kZSBzcmggaW5kZXBlbmRlbnQgb2YgZ2V0IHRlbXAgdXNlCiAgIAoyMDAzLTA4LTAyIDA2OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBiZSBtb3JlIHBhcmFub2lkIGFib3V0IHRlbXBvcmFyeSBvdmVycmlkZSBvZiAkbmFtZQogICAKMjAwMy0wOC0wMiAwNjozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgY2hnIGluZGVudGlvbiBvbiBzb21lIGNvbW1lbnQgYmxvY2tzOyB1c2UgbmV3IG5vZGUtc3RvcmFnZS5tMmk7IHJtdiBkYXRhIHB0cgogICAKMjAwMy0wOC0wMiAwNjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF90YWJsZS5tMmksCiAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG5vZGUtc3RvcmFnZS5tMmk6CgogICBuZXcgY29kZSB0ZW1wbGF0ZXMKICAgCjIwMDMtMDgtMDIgMDY6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLAogICBnZW5lcmljLWN0eC1zZXQubTJpLCBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIGdlbmVyaWMtZ2V0LW9pZC5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwKICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWRhdGEtc2V0Lm0yYywgbm9kZS1nZXQubTJpLAogICBub2RlLXNldC5tMmksIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJkOgoKICAgZGF0YSBhdCBjdHgtPmRhdGEsIG5vdCBjdHg7IGNoZyBpbmRlbnRpb24gb24gYmxvY2sgY29tbWVudHM7IGZpeCBzb21lIG1pc3NlZAogICBuYW1lIGNoYW5nZXM7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb25mIGZpbGVzOyBzaW1wbGlmeSBzb21lIHBhcmFtIGxpc3RzOwogICBhZGQgc29tZSBhc3NlcnRzCiAgIAoyMDAzLTA3LTMxIDA3OjIzICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBEb24ndCBzaGlmdCBhd2F5IGNvbW1hbmQtbGluZSBwYXJhbWV0ZXJzIHRoYXQgcHJvYmFibHkgYXJlbid0IHRoZXJlCiAgIChhbmQgY2VydGFpbmx5IGFyZW4ndCByZWxldmFudCB0byB0aGUgYWN0aW9uIGJlaW5nIGhhbmRsZWQpCiAgIFJlcG9ydGVkIGJ5IFZpbm9kIEpvaG5zb24KICAgCjIwMDMtMDctMzEgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBIYW5kbGUgcHJveGllZCBTRVRzIGluIHRoZSBBQ1RJT04gcGFzcywgcmF0aGVyIHRoYW4gdGhlIGNvbW1pdCBwYXNzLgogICBUaGlzIGFsbG93cyBmYWlsdXJlcyBoZXJlIHRvIGJhY2sgb3V0IGFzc2lnbm1lbnRzIGluIG90aGVyIG1vZHVsZXMuCiAgIFdlIGNhbid0IHByb2Nlc3MgVU5ETyByZXF1ZXN0cyBzdWNjZXNzZnVsbHksIGJ1dCB3ZSBjYW4gYXQgbGVhc3QgcmVwb3J0CiAgIHRoaXMgZmFjdC4gIFdoaWNoIGlzIHByZWZlcmFibGUgdG8gY2xhaW1pbmcgZmFpbHVyZSBidXQgKHNpbGVudGx5KQogICBhY3Rpbmcgb24gc29tZSBhc3NpZ25tZW50cy4KICAgCjIwMDMtMDctMzEgMDM6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBEb24ndCBsb2cgd2FybmluZ3MgZm9yIGRlbGliZXJhdGVseSB1bnVzZWQgU0VUIHBhc3Nlcy4KICAgCjIwMDMtMDctMzEgMDM6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBIYW5kbGUgU05NUCBlcnJvcnMgZnJvbSBwcm94aWVkIHNlcnZlcnMgY29ycmVjdGx5LgogICBQYXNzaW5nIHRoZSBlcnJvciBiYWNrIHVwIHRoZSBjaGFpbiBzZWVtcyB0byBEbyBUaGUgUmlnaHQgVGhpbmcuCiAgIAoyMDAzLTA3LTMxIDAzOjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcm9ibGVtcyBpbiBNSUIgcHJvY2Vzc2luZyBhcmUgaW5kaWNhdGVkIHZpYSB0aGUgJ2FzcC0+c3RhdHVzJyBmaWVsZCwKICAgcmF0aGVyIHRoYW4gdGhlIHJldHVybiB2YWx1ZS4gIFNvIHVzZSB0aGF0IHdoZW4gZG93bmdyYWRpbmcgdjItc3R5bGUKICAgZXJyb3JzIGZvciB2MSByZXNwb25zZXMuCiAgIAoyMDAzLTA3LTMwIDEwOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1kYXRhLXNldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICBuZXcgTUlCcyBGb3IgRHVtbWllcyAobWZkKSBjb25mIGZpbGVzCiAgIAoyMDAzLTA3LTMwIDEwOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgZXhhbXBsZV8oc3RhcnQvZW5kKTsgZml4ICR4LnJhbmdlczsgYWxsb3cgbGl0ZXJhbCB2YXIgbmFtZXMgaW4gdXNlciBjb2RlCiAgIHZpYSAkQHZhcjsgYWRkIHRhYmxlX2lzX3dyaXRhYmxlIGZ1bmN0aW9uCiAgIAoyMDAzLTA3LTMwIDEwOjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgIGdlbmVyaWMtY3R4LWdldC5tMmksIGdlbmVyaWMtY3R4LXNldC5tMmksCiAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgIGdlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaSwgZ2VuZXJpYy1nZXQtZGVjbC5tMmksCiAgIGdlbmVyaWMtZ2V0LWxvbmcubTJpLCBnZW5lcmljLWdldC1vaWQubTJpLAogICBnZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLCBnZW5lcmljLWhlYWRlci10b3AubTJpLAogICBnZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmksIGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksCiAgIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMsIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLAogICBnZW5lcmljLXZhbHVlLW1hcC5tMmksIG0yY19zZXR1cF9ub2RlLm0yaSwgbm9kZS1nZXQubTJpCiwgbm9kZS1zZXQubTJpLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwKICAgcGFyZW50LXNldC5tMmksIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJkLAogICBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzcy1zZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmkKLCBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmksCiAgIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaSwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmk6CgogICBsb3RzIG9mIG5ldyBtaWIyYyBoZWxwZXJzIChpbmNsdWRlcykKICAgCjIwMDMtMDctMzAgMTA6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwgZGV0YWlscy1ub2RlLm0yaQosIGRldGFpbHMtdGFibGUubTJpOgoKICAgbW9zdGx5IHZhcmlhYmxlIHJlbmFtZXM7IHNvbWUgcmVvcmcKICAgCjIwMDMtMDctMzAgMDY6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBEaXNjYXJkIHZhbHVlcyByZWNlaXZlZCBmcm9tIHRoZSBwcm94eSBpZiB0aGUgT0lEIGlzIGludmFsaWQuCiAgIChUeXBpY2FsbHkgd2hlbiBhIEdldE5leHQgd2Fsa3MgcGFzdCB0aGUgZW5kIG9mIHRoZSBwcm94aWVkIHN1YnRyZWUpLgogICBBbHNvIHVwZGF0ZSB0aGUgY29tbWVudHMgdG8gZGVzY3JpYmUgdGhlIGJlaGF2aW91ciBpbiBhIGJpdCBtb3JlIGRldGFpbC4KICAgCjIwMDMtMDctMzAgMDY6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBSZXNwb25kIHRvIFNOTVAgZXJyb3JzIGZyb20gdGhlIHByb3hpZWQgYWdlbnQuCiAgIChUaGUgcmVzcG9uc2UgaXMgbXVjaCB0b28gc2ltcGxpc3RpYywgYW5kIGlzIGxpa2VseSB0byBwcm92ZSBhbgogICBvdmVyLXJlYWN0aW9uIGluIG1hbnkgY2FzZXMuICAgQnV0IGl0J3MgYSBzdGFydCkKICAgTm90ZSB0aGF0IHRoZSBpbmRlbnRhdGlvbiBoYXMgbm90IGJlZW4gYWRqdXN0ZWQgLSB3YWl0IHVudGlsIHRoaW5ncwogICBzZXR0bGUgZG93biBmaXJzdC4KICAgCjIwMDMtMDctMjkgMDg6MTMgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGYuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wZGYuYzoKCiAgIEZpeCBhIHR5cG8gaW4gYW4gZXJyb3IgbWVzc2FnZSAoUGF0Y2ggIzc2OTIyMSkKICAgCjIwMDMtMDctMjkgMDU6MDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBDb3JyZWN0IHRoZSBjb21tZW50cyBpZGVudGlmeWluZyBoZXgvYXNjaWkgdmFsdWVzIGZvciBQRFUgdHlwZXMuCiAgIFJlcG9ydGVkIGJ5IE9sZWcgSXZhbm92LgogICAKMjAwMy0wNy0yOSAwMjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsIHV0aWxpdGllcy9leGVjdXRlLmMKOgoKICAgU3VwcG9ydCBmb3IgbXVsdGktY29tbWFuZCBkaXJlY3RpdmVzIGZvciAnc2gnIGV4dGVuc2liaWxpdHkuCiAgICAgICAoaS5lLiBydW5uaW5nICJ0aGlzOyB0aGF0OyB0aGUgb3RoZXIiKQogICBSZXRhaW5lZCB0aGUgb3JpZ2luYWwgYmVoYXZpb3VyIG9mIHRydW5jYXRpbmcgYXQgdGhlIGZpcnN0ICc7JyBmb3IKICAgJ2V4ZWMnIGRpcmVjdGl2ZXMgIChmb2xsb3dpbmcgdGhlIFByaW5jaXBsZSBvZiBMZWFzdCBBc3RvbmlzaG1lbnQpCiAgIAoyMDAzLTA3LTI5IDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgTG9nIGZhaWx1cmUgdG8gc2V0IHVwIHByb3h5IGNvbW1hbmQgKHJhdGhlciB0aGFuIHBsb3VnaGluZyBvbiByZWdhcmRsZXNzISkKICAgCjIwMDMtMDctMjkgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIEZpeCBzdXBwb3J0IGZvciBtdWx0aS1saW5lIChyZWxvY2F0YWJsZSkgb3V0cHV0LgogICAKMjAwMy0wNy0yNyAxNjo1NCAgcnN0b3J5CgogICAqIGxvY2FsLzogbWliMmMgKFY1LTAtcGF0Y2hlcy4yKSwgbWliMmM6CgogICBmaXggZmlsZW5hbWUgaW4gZXJyb3IgbXNnLCBhcyBub3RlZCBpbiBjb2RlcnMKICAgCjIwMDMtMDctMjQgMTk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBvaWRsZW5ndGggZnVuY3Rpb24KICAgCjIwMDMtMDctMjQgMTc6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBjdnMgaWQgdGFnOyBhZGQgY29tbWVudCBkb2N1bWVudGluZyBub25pbmRleDsgaW5kZXhlcyBsb29wIHdpbGwgbm93CiAgIGluY2x1ZGUgaW5kZXggZm9yIHRhYmxlcyB1c2luZyBhdWdtZW50cwogICAKMjAwMy0wNy0yNCAxNzo1MiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIGFjY2VzcyB0byB0aGUgQVVHTUVOVFMgYXR0cmlidXRlCiAgIAoyMDAzLTA3LTIzIDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgd2FybmluZyBmb3IgdW5rbm93biAkdmFyLnRhZyB0YWdzIHRvIGNhdGNoIHR5cG9zOyB3YXRjaCBmb3IgdW5tYXRjaGVkCiAgIEAgaW4gc2tpcHZhcnM7IGRvbid0IG9wZW4gbmV3IGZpbGUgaXQgaXQncyBhbHJlYWR5IG9wZW47IGFkZCBmbGFnIHRvCiAgIHByb2Nlc3NfZmlsZSBmb3Igc2F2ZS9yZXN0b3JlIG9mIHZhcnM7IGZpeCBwcm9jZXNzIGFnYWluIHNvIGl0IHdpbGwgY2F0Y2gKICAgdW5tYXRjaGVzIEBAOyBhZGQgbmV3IEBmb3JlYWNoIG5vbmluZGV4QAogICAKMjAwMy0wNy0yMiAwOTowNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gemVybyBvdXQgc2Vuc2l0aXZlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgKGNvbW11bml0eSBzdHJpbmcsIHVzZXIgbmFtZSwKICAgICAgIGF1dGhlbnRpY2F0aW9uIHBhc3NwaHJhc2UsIHByaXZhY3kgcGFzc3BocmFzZSkuCiAgIAogICAgICAgTk9URTogdGhpcyBkb2VzIG5vdCB3b3JrIGZvciBhbGwgcGxhZm9ybXMgLS0gY2VydGFpbmx5IGl0IGRvZXNuJ3QKICAgICAgICAgICAgIHdvcmsgZm9yIFNvbGFyaXMuICBBIGRpZmZlcmVudCwgbW9yZSBncm9zcyBtZXRob2QgaXMgbmVlZGVkCiAgICAgICAgICAgICBmb3IgdGhlc2UgcGxhdGZvcm1zIChzZWUgc2VuZG1haWwgY29kZSBmb3IgZGV0YWlscyAtLSAgbmVlZAogICAgICAgICAgICAgSSBzYXkgbW9yZT8pLgogICAKMjAwMy0wNy0yMiAwODo0NSAgZHRzMTIKCiAgICogbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgSW1wcm92ZWQgZGVzY3JpcHRpb25zIG9mIHRoZSB2YXJpb3VzIHN1YmNvbW1hbmRzLgogICBCYXNlZCBvbiBtYXRlcmlhbCBzdXBwbGllZCBieSBOaWNrIERpUmljby4KICAgCjIwMDMtMDctMjIgMDg6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBWYXJpb3VzIGZpeGVzIHRvIHRoZSByZWNlbnQgVENQIHRhYmxlIHJlZGVzaWduLCBzdXBwbGllZCBieSBLYXRzdWhpc2EgQUJFLgogICAoU29tZSBvdGhlcnMgc3RpbGwgb3V0c3RhbmRpbmcsIGF3YWl0aW5nIGRpc2N1c3Npb24uICBCdXQgdGhlc2UgYXJlIGNsZWFyCiAgIG1pc3Rha2VzLCB3aGljaCBuZWVkIGZpeGluZykuCiAgIAoyMDAzLTA3LTIyIDA4OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBVc2UgdGhlIHRhYmxlIGluZm9ybWF0aW9uICdjb2xudW0nIGZpZWxkIHRvIGlkZW50aWZ5IHRoZSByZXF1ZXN0ZWQgY29sdW1uCiAgIG9iamVjdChzKSByYXRoZXIgdGhhbiBwdWxsaW5nIHN0dWZmIG91dCBvZiB0aGUgT0lELiAgU3VnZ2VzdGVkIGJ5IE9sZWcgSXZhbm92LgogICAKMjAwMy0wNy0yMiAwNzo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgTWFrZSB0aGUgY3JlYXRlVmlldyBtYXNrIHBhcmFtZXRlciBvcHRpb25hbAogICAoYXMgd2l0aCB0aGUgJ3ZpZXcnIGNvbmZpZyBkaXJlY3RpdmUpCiAgIAoyMDAzLTA3LTIyIDA3OjU3ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBDb3JyZWN0IHRoZSBsYXlvdXQgb2YgdGhlIHVzYWdlIG1lc3NhZ2UuCiAgIAoyMDAzLTA3LTIyIDA3OjU2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBVc2UgdGhlIG1vcmUgZmxleGlibGUgQVBJIGNhbGwgZm9yIGhhbmRsaW5nIHZpZXcgT0lEcwogICAKMjAwMy0wNy0xOSAxMDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLCBkZXRhaWxzLW5vZGUubTJpCiwgZGV0YWlscy10YWJsZS5tMmk6CgogICBtaWIyYyBpbmNsdWRlIGZpbGVzIHRvIGdlbmVyYXRlIG5vZGUgZGV0YWlscwogICAKMjAwMy0wNy0xOSAxMDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgdHJhY2sgY3VycmVudCBsaW5lIGFuZCBmaWxlIG5hbWU7IG5ldyBmaW5kX2NvbmYsIHByb2Nlc3NfZmlsZSBzdWJzOyByZW1vdmUKICAgQHNraXAgTkAgYWJpbGl0eTsgc2tpcCBAdG9rZW5AIHNlYXJjaCBpZiBsaW5lIGRvZXNuJ3QgYmVnaW4gd2l0aCBAOwogICBhZGQgQHNraXBpZkAsIEBicmVha0A7IGRvbnQgcmVxdWlyZSBzcGFjZXMgZm9yIEBjbG9zZUA7IGFkZCAtaWZleGlzdHMgcGFyYW0gdG8KICAgQGluY2x1ZGVAOyBuZXcgQGlmY29uZkAgKyByZXdvcmsgY29kZSB0byBtYWtlIG90aGVyIEBpZlhYWEAgdG9rZW5zIGVhc3k7IG1lcmdlCiAgIGVsc2UvZWxzaWYgaW4gcHJvY2VzcyBsb29wCiAgIAoyMDAzLTA3LTE4IDEzOjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgcGFyc2luZyBvZiBpbml0aWFsIGRlZmF1bHQgZmlsZTsgZGVsYXkgcHJvY2Vzc2luZyBvZiBjbWQgbGluZSB2YXJzIHRpbAogICBhZnRlciBwcm9jZXNzaW5nIGRlZmF1bHQgZmlsZTsgYWRkIG5ldyAkYy5uZWVkc2xlbmd0aCwgJGMuaGFzZGVmdmFsLCAkYy5kZWZ2YWwsCiAgICRjLm1vZHVsZSwgJGMuYWNjZXNzaWJsZSwgJGMuY2hpbGRyZW4gKG5lZWRzIHdvcmspLCAkYy5oYXNoaW50LCAkYy5oaW50LAogICAkYy5yYW5nZXMsJGMuZW51bXJhbmdlIChuZWVkcyB3b3JrKSBhbmQgdmFyaW91cyBjb2RlIHRvIHN1cHBvcnQgdGhlbTsgYWRkCiAgIHBhcmFtZXRlciB0byBza2lwIHRvIGFsbG93IG9uZSB0byBicmVhayBvdXQgb2YgbXVsdGlwbGUgbGV2ZWxzIChuZWVkcyB3b3JrKTsKICAgYWxsb3cgc3BhY2VzIGFmdGVyIEBjbWRAIHRvIGFsbG93IGZvciBiZXR0ZXIgY29udHJvbCBvZiBpbmRlbnRpb247IG1vdmUgZmlsZQogICBvcGVuL2Nsb3NlIHRvIHN1YnJvdXRpbmVzOyBuZXcgQGFwcGVuZCBmaWxlQCwgQGNsb3NlIGZpbGVALCBAaW5jbHVkZSBmaWxlQDsKICAgYWxsb3cgd3JpdGluZyB0byBtdWx0aXBsZSBmaWxlcyBhdCBvbmNlOyBuZXcgQHByaW50IHRleHRAICh0byBzdGRvdXQpOwogICB3aGV3ISBtb3JlIHRvIGNvbWUuLi4KICAgCjIwMDMtMDctMTYgMDM6MjkgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN1cHBvcnQgcHJvY2Vzc2luZyBvZiBjb21waWxlLXN1YmFnZW50IHN1Yi1vcHRpb25zIGluIGFueSBvcmRlcgogICAKMjAwMy0wNy0xNiAwMzoyOCAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgSGFuZGxlIGNvbXBpbGUtc3ViYWdlbnQgY2FsbGVkIHdpdGggbm8gcGFyYW1ldGVycwogICAKMjAwMy0wNy0xNiAwMzoyNCAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRml4IGluY29uc2lzdGVudCB1c2FnZSB3aXRoaW4gY29tcGlsZS1zdWJhZ2VudAogICAKMjAwMy0wNy0xNiAwMzoyMSAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgSGFuZGxlIC0tY3JlYXRlLXNubXB2My11c2VyIGNhbGxlZCB3aXRoIG5vIHBhcmFtZXRlcnMKICAgCjIwMDMtMDctMTYgMDI6MDcgIGR0czEyCgogICAqIFJFQURNRToKCiAgIENsYXJpZnkgdGhlIHJvbGVzIG9mIHRoZSB2YXJpb3VzIG1haWxpbmcgbGlzdHMsIGFuZCB3aGljaCBvbmVzIHRvIHVzZQogICAob3Igbm90IHVzZSkuICBBbHNvIHVwZGF0ZWQgdGhlIHByb2plY3Qgd2ViIHBhZ2UgYWxvbmcgdGhlIHNhbWUgbGluZXMuCiAgIAoyMDAzLTA3LTE1IDIxOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICByZW5hbWUgaXN0YWJsZSB0byBpc2NvbHVtbjsgYWRkIGVudW1zOyBhZGQgY3VycmVudHZhcjsgZml4IGVudW0gZHVtcCB0byB3b3JrCiAgIGZvciBzY2FsYXJzCiAgIAoyMDAzLTA3LTE1IDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBGaXggYSB2YXJhcmdzIHR5cGUgc3BlY2lmaWNhdGlvbi4gIFNwb3R0ZWQgYnkgT2xlZyBJdmFub3YuCiAgIAoyMDAzLTA3LTE1IDA3OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBBdm9pZCByZWZlcmVuY2luZyBmcmVlZCBtZW1vcnkuICAoUmVwb3J0ZWQgYnkgU3RldmUgQmVubmV0dCkKICAgCjIwMDMtMDctMTUgMDc6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFJ1biBwYXNzLXRocm91Z2ggc2NyaXB0cyBpbiB0aGUgQUNUSU9OIHBhc3MsIG5vdCBDT01NSVQsIHNvIGFueSBlcnJvcnMKICAgY2FuIGJlIHJlcG9ydGVkIGJhY2sgcHJvcGVybHkuCiAgIEFsc28gdHdlYWsgdGhlIGVycm9yLWNoZWNraW5nIGNvZGUgdG8gcmVjb2duaXNlIHRoZSBlcnJvciBzdHJpbmdzIHByb3Blcmx5LgogICAKMjAwMy0wNy0xNCAxNzowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYWNoIGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wNy0xNCAxNjo1MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGx5IHBhdGNoIGZyb20gU3RldmUgQmVubmV0dCA8c3RldmViQHNuYXBnZWFyLmNvbT4gdG8gYWxsb3cgb25lIHRvIGRpc2FibGUKICAgdGhlIGNhbGxiYWNrIHRyYW5zcG9ydCBhbmQgcmVkdWNlIGFnZW50IHNpemUuIFR3ZWFrZWQgYnkgbWUgYSBiaXQuIGRpc2FibGUKICAgYWdlbnR4IGlmIGNhbGxiYWNrcyBkaXNhYmxlZAogICAKICAgcmVtb3ZlICh0cmFuc3BvcnR8c2VjdXJpdHkpX1tsXW9ial9saXN0LCBhcyBbbF1vYmogbGlzdHMgYXJlIG5vdyBnZW5lcmF0ZWQKICAgZnJvbSBzcmNzOyByZW1vdmUgQWdlbnRYIGJldGEgY29kZSB3YXJuaW5nIGZyb20gaGVscAogICAKMjAwMy0wNy0xNCAxNjo1MCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBTdGV2ZSBCZW5uZXR0IDxzdGV2ZWJAc25hcGdlYXIuY29tPiB0byBhbGxvdyBvbmUgdG8gZGlzYWJsZQogICB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0IGFuZCByZWR1Y2UgYWdlbnQgc2l6ZS4gVHdlYWtlZCBieSBtZSBhIGJpdC4gZGlzYWJsZQogICBhZ2VudHggaWYgY2FsbGJhY2tzIGRpc2FibGVkLgogICAKMjAwMy0wNy0xMyAxMToxOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMKOgoKICAgYWRkIHByaW9yaXR5IHRvIGNhbGxiYWNrIHNvIHVzZXIgY2FuIGRldGVybWluZSBjYWxsYmFjayBvcmRlcgogICAKMjAwMy0wNy0xMyAwOTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmg6CgogICByZXN0b3JlIGlucGNiIHN0cnVjdCBmb3IgbGludXggKHVudGlsIGl0IHNob3dzIHVwIHNvbWV3aGVyZSBlbHNlIGluIGN2cykKICAgCjIwMDMtMDctMTEgMDU6MDggIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEZpeCBlcnJvcnMgaW4gdGhlIGV4YW1wbGVzLCBzcG90dGVkIGJ5IE5pY2sgRGlSaWNvCiAgIAoyMDAzLTA3LTEwIDA2OjExICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZQo6CgogICBzeW5jIHcvcGF0Y2hlcwogICAKMjAwMy0wNy0xMCAwNTo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3AuYywgdGNwLmgsIHRjcFRhYmxlLmMKLCB0Y3BUYWJsZS5oLCB1ZHAuYywgdWRwLmgsIHVkcFRhYmxlLmMKLCB1ZHBUYWJsZS5oOgoKICAgTmV3LUFQSSBpbXBsZW1lbnRhdGlvbiBvZiBVRFAgYW5kIFRDUCB0YWJsZXMsIHVzaW5nIGNhY2hlIGFuZCBpdGVyYXRvciBoZWxwZXJzLgogICBXb3JrcyBvbiBMaW51eCBhbmQgSFAtVVggMTAsIGNvbXBpbGVzIChidXQgdW50ZXN0ZWQpIG9uIFNvbGFyaXMgJiBXaW5kb3dzLgogICAKMjAwMy0wNy0xMCAwMzo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaDoKCiAgIENvbG9uPyBzZW1pY29sb24/ICBXaGF0J3MgYSBwaXhlbCBvciB0d28gYmV0d2VlbiBmcmllbmRzLi4uLgogICAKMjAwMy0wNy0xMCAwMjoxMiAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMnNkay5kc3csIGxpYmFnZW50L2xpYmFnZW50LmRlZiwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBWaXN1YWwgQysrIHR3ZWFrcywgdG8gZ2V0IGV2ZXJ5dGhpbmcgdG8gY29tcGlsZSBjbGVhbmx5LgogICAKMjAwMy0wNy0wOSAwODo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgTWlzc2luZyBoZWFkZXIgcHJvdGVjdGlvbiBjaGVja3MKICAgCjIwMDMtMDctMDkgMDg6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBIYW5kbGUgc3lzdGVtcyB3aXRob3V0IGdldHB3bmFtIG9yIGdldGdybmFtCiAgIAoyMDAzLTA3LTA5IDA4OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgUHJvdmlkZSBkZWZhdWx0IGRlZmluaXRpb25zIG9mIHN5c2xvZyBjb25zdGFudHMgaWYgbm90IGFscmVhZHkgcHJlc2VudC4KICAgCjIwMDMtMDctMDkgMDg6MDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBQcm92aWRlIG1pc3NpbmcgZm9yd2FyZCBkZWNsYXJhdGlvbnMKICAgCjIwMDMtMDctMDkgMDU6MjUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTdXBwb3J0IGZvciB0aGUgb2xkICctTCcgb3B0aW9uLgogICAoSW5jcmVkaWJseSBjbHVua3ksIGJ1dCBuZWNlc3NhcnkpCiAgIAoyMDAzLTA3LTA5IDA1OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBTdXBwb3J0IGZvciAicGVyc2lzdGVudCBlbnVtZXJhdGlvbnMiLgogICAKMjAwMy0wNy0wOCAwNjowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICB1ZHAuYzoKCiAgIEltcHJvdmVkIGRlYnVnZ2luZyBmb3IgbmV3IHNjYWxhcl9ncm91cCBpbXBsZW1lbnRhdGlvbnMuCiAgIAoyMDAzLTA3LTA3IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFBhdGNoIGZyb20gQ2h1Y2sgWWVya2VzIHRvIG1ha2UgdGhlIE1UQS1NSUIgd29yayB3aXRoIG5ld2VyIHNlbmRtYWlsIHZlcnNpb25zLCBpbmNsdWRpbmcgRkZSX1FVQVJBTlRJTkUgc3VwcG9ydAogICAKMjAwMy0wNy0wNyAwNjowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgRXhwb3J0IHRoZSAnbWFrZV90ZW1wZmlsZScgcm91dGluZS4KICAgCjIwMDMtMDctMDYgMjA6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCB0eXBvcwogICAKMjAwMy0wNy0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGFkZGVkIHN5cy90eXBlcwogICAKMjAwMy0wNy0wMyAyMToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZnJlZSBjb250YWluZXIgb24gZnJlZTsgc29ydCBiZWZvcmUgZm9yX2VhY2ggZXhlY3V0ZXM7IGFkZCBpbml0IHRvIHJlZ2lzdGVyCiAgIAoyMDAzLTA3LTAzIDIxOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXcgY29udGFpbmVycwogICAKMjAwMy0wNy0wMyAyMToyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVwZGF0ZSBDT05UQUlORVJfRlJFRSBmb3IgbmV3IHJlcXVpcmVtZW50IHRoYXQgY29udGFpbmVycyBmcmVlIHRoZW1zZWx2ZXMKICAgCjIwMDMtMDctMDMgMjE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgYWRkIGluaXQgZm9yIGxpc3Rfc3NsbCBhbmQgbnVsbCBjb250YWluZXJzOyBhZGQgYWxpYXNlcyBmb3IgbGlzdCBhbmQKICAgYmluYXJ5IGNvbnRhaW5lcnM7IHVwZGF0ZSBDT05UQUlORVJfRlJFRSBmb3IgbmV3IHJlcXVpcmVtZW50IHRoYXQKICAgY29udGFpbmVycyBmcmVlIHRoZW1zZWx2ZXMKICAgCjIwMDMtMDctMDMgMjA6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmg6CgogICBuZXcgZmlsZXMKICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX2xpc3Rfc3NsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9udWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjVzbm1wdjNnZXRTSEFERVMKOgoKICAgVXNlIGEgU0tJUElGTk9UIGZvciByZWFsIHRva2VucyAodHlwbykuCiAgIAoyMDAzLTA3LTAyIDE0OjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUxc29sYXJpc2hvc3RkaXNrCiwgVDE1Mmhvc3R1cHRpbWUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIGZpeCBuZXcgdGVzdHMgaW4gdmFyaW91cyB3YXlzCiAgIAoyMDAzLTA3LTAyIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZnJlZSB0aGUgcm9vdCBwb2ludGVyLgogICAKMjAwMy0wNy0wMiAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZyZWUgdGhlIGVuZ2luZWlkIGF0ICpzaHV0ZG93biogbm90ICpzdGFydHVwKjotLwogICAKMjAwMy0wNy0wMiAxNDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGRvbid0IGNhbGwgdGhlIGNsZWFudXAgcm91dGluZXMgYXQgc2h1dGRvd24gc2luY2UgdGhleSdyZSBmaWxsZWQgd2l0aAogICBkb3VibGUgZnJlZXMoKQogICAKMjAwMy0wNy0wMiAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaDoKCiAgIHJlcXVpcmUgbmVlZHMgZXhhbXBsZXMvIHByZWZpeAogICAKMjAwMy0wNy0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFVzZSBhIGZvciBsb29wIGluc3RlYWQgb2YgYSByZWN1cnNpdmUgZnVuY3Rpb24uCiAgIAoyMDAzLTA3LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBwcm90ZWN0IGFnYWluc3QgZW1wdHkgcm93cy4KICAgCjIwMDMtMDctMDIgMTM6NTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBmaXggY29udGFpbmVyIGNvZGUgZnJvbSB0aGUgbGFzdCBwYXRjaAogICAKMjAwMy0wNy0wMiAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFBhdGNoOiA3NTYyODY6IEEgZ2xvYmFsIGZyZWUgLT4gU05NUF9GUkVFIHJlcGxhY2VtZW50CiAgIAoyMDAzLTA3LTAyIDEzOjIwICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgUGF0Y2ggIzcyNDkyNSBmcm9tIFBldGVyIFdhcmFzaW4gdG8gZnJlZSBsb3RzIG9mIG1lbW9yeSBmb3IgYSByZWFsbHkgY2xlYW4gc2h1dGRvd24KICAgCjIwMDMtMDctMDIgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjUtMC1wYXRjaGVzLjIpLCBhZ2VudF9yZWdpc3RyeS5jCjoKCiAgIFBhdGNoICM3MjQ5MjUgZnJvbSBQZXRlciBXYXJhc2luIHRvIGZpeCBuZXRzbm1wX3N1YnRyZWVfdW5sb2FkKCkgdG8gdXBkYXRlIHRoZSByb290IHBvaW50ZXIKICAgCjIwMDMtMDctMDIgMTI6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTFzb2xhcmlzaG9zdGRpc2sKLCBUMTUyaG9zdHVwdGltZSwgVDE1M3NvbGFyaXNzd2FwOgoKICAgUGF0Y2g6IDc1NjI4NjogTmV3IHNvbGFyaXMgc3BlY2lmaWMgSFIgdGVzdHMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAzLTA3LTAyIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIHNubXBsaWIvcGFyc2UuYwogICAoVjUtMC1wYXRjaGVzLlsxLDIsMV0pLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIFBhdGNoICM3NjA0NDggZnJvbSBCb2IgUm93bGFuZHMvU3VuIHRvIGZpeCBidWcgIzc1MTkxMyB0byBwcm90ZWN0IGEgZmV3IG1pbm9yIHNlY3VyaXR5IHZpb2xhdGlvbnMKICAgCjIwMDMtMDctMDIgMTA6NTggIGhhcmRha2VyCgogICAqIENPUFlJTkcsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIFBhdGNoICM3NjA0MTcgZnJvbSBCb2IgUm93bGFuZHMvU3VuIGZvciBmaXhpbmcgQnVnICM3NTE5MjAgZm9yIG1pbm9yIHNlY3VyaXR5IHByb2JsZW1zIChQSUQgZmlsZSB1bmxpa2VkIGZpcnN0LCBhbmQgdXNlIHN0cmxjcHkgaW5zdGVhZCBvZiBzdHJjcHkuICBBIG5ldyBzdHJsY3B5IGZpbGUgd2FzIGRlZmluZWQgaWYgbm90IGRlZmluZWQgZm9yIGEgc3lzdGVtLgogICAKMjAwMy0wNy0wMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zdHJsY3B5LmM6CgogICBmaWxlIHN0cmxjcHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAyIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wX2RlYnVnLmggKFY1LTAtcGF0Y2hlcy4xKSwKICAgc25tcF9kZWJ1Zy5oOgoKICAgUGF0Y2ggIzc2NDA0NyBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9uIGZyb20gc25tcF9kZWJ1Zy5oIGFuZCBmaXggYSBmZXcgY29tbWVudHMKICAgCjIwMDMtMDctMDIgMTA6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNS0wLXBhdGNoZXMuWzcsN10pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM3NTkzMDkgZnJvbSBTdGVwaGVuIEZyaWVkbCB0byBhZGQgcHJvbXB0IG92ZXItcmlkZSBmbGFnIGRlc2NyaXB0aW9ucyB0byBwcm9tcHQgb3V0cHV0CiAgIAoyMDAzLTA3LTAyIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM3NTkyOTg6IGZpeCBzcGVsbGluZyBlcnJvcgogICAKMjAwMy0wNy0wMSAwNTozMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXIxLmM6CgogICBSZW1vdmUgcmVkdW5kZW50IGZpbGUuCiAgIAoyMDAzLTA3LTAxIDAzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaWNtcC5oLCBpcC5jLAogICBpcC5oLCBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgsCiAgIG1pYklJX2NvbW1vbi5oLCB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaAo6CgogICBSZS1pbXBsZW1lbnQgdGhlIHNjYWxhciBuZXR3b3JrIHN0YXRpc3RpY3MgdXNpbmcgbmV3IEFQSSBmZWF0dXJlcy4KICAgVGhpcyBzZXJ2ZXMgYXMgYW4gZXhhbXBsZSBvZiB0aGUgJ3NjYWxhcl9ncm91cCcgYW5kICdjYWNoZV9oYW5kbGVyJwogICBoZWxwZXJzLCBhcyB3ZWxsIGFzIChob3BlZnVsbHkpIHNpbXBsaWZ5aW5nIHRoZSBjb2RlIHNvbWV3aGF0LgogICAKMjAwMy0wNy0wMSAwMjo1NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHNjYWxhci5jLCBzY2FsYXJfZ3JvdXAuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBoYW5kbGUgd2Fsa2luZyBmcm9tIG9uZSBzY2FsYXIgdG8gYW5vdGhlciBjb3JyZWN0bHksCiAgIGFuZCBkZWFsIHdpdGggaW50ZXJuYWwgbWlzc2luZyBvYmplY3RzIHdpdGhpbiBhIHNjYWxhciBncm91cC4KICAgCjIwMDMtMDYtMzAgMjI6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5oOgoKICAgdXBkYXRlIGZvciByb3cgZGVsZXRpb24KICAgCjIwMDMtMDYtMzAgMTc6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgdXBkYXRlIHRvIHN1cHBvcnQgcm93IGNyZWF0aW9uLiAgRGVsZXRpb24gc3VwcG9ydCBzdGlsbCBjb21pbmcsIGFzIGlzCiAgIGEgc2VwYXJhdGUgaGFuZGxlci4KICAgCjIwMDMtMDYtMzAgMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSBtb3JlICJub3Qgc2VyaWFsaXplZCIgY29kZS4KICAgCjIwMDMtMDYtMzAgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogbmV0U25tcEhvc3RzVGFibGUuYywKICAgbmV0U25tcEhvc3RzVGFibGUuaCwgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oOgoKICAgVXBkYXRlZCBmb3Igcm93IGNyZWF0aW9uLgogICAKMjAwMy0wNi0zMCAxMDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jOgoKICAgcGF0Y2ggZnJvbSBGb25nIFRzdWkgZm9yIGZpeGluZyBOVUxMIHJlZmVyZW5jZXMKICAgCjIwMDMtMDYtMzAgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBtYWtlIHRoZSBkZWZhdWx0IGFnZW50eCBwaW5nIGludGVydmFsIGJlIDE1IHNlY29uZHMuCiAgIAoyMDAzLTA2LTMwIDA5OjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICB1dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgTWFrZSBzdXJlIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBuZXcgYXBwcm9hY2ggdG8gc3ViLWNvbW1hbmQKICAgaW52b2NhdGlvbiBhcmUgcHJvcGVybHkgYWNrbm93bGVkZ2VkLgogICAKMjAwMy0wNi0zMCAwNzo0MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2hlY2sgZm9yIHZhbGlkaXR5IG9mIHBhcmFtZXRlcnMgYmVmb3JlIHVzaW5nIHRoZW0uICAoUGFyYW5vaWQ/IFdobywgbWU/KQogICAKMjAwMy0wNi0zMCAwNjo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ2FjaGluZyBvZiBpbnRlcmZhY2UgZGF0YSBpcyBhY3R1YWxseSBMaW51eC1zcGVjaWZpYy4KICAgCjIwMDMtMDYtMzAgMDU6MDUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgcmVjZW50IGhlbHBlciBtb2R1bGVzIGluIHRoZSBoZWxwZXIgbGlicmFyeSBhbmQgbWV0YS1pbmNsdWRlIGZpbGUuCiAgIAoyMDAzLTA2LTI3IDA0OjQzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgU2ltcGxpZnkgdGhlIHByb2Nlc3Npbmcgb2YgInRyYXBoYW5kbGUiIGRpcmVjdGl2ZXMKICAgKHVzaW5nIHRoZSBuZXcgZ2VuZXJpYyBzdWItY29tbWFuZCBleGVjdXRpb24gdXRpbGl0eSByb3V0aW5lcywKICAgYW5kIHRoZSBpbXByb3ZlZCB2YXJsaXN0IGxvZ2dpbmcgY29uZmlndXJhdGlvbikKICAgCjIwMDMtMDYtMjcgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFVzZSB0aGUgbmV3IGdlbmVyaWMgc3ViLWNvbW1hbmQgZXhlY3V0aW9uIHV0aWxpdHkgcm91dGluZXMgaW5zdGVhZAogICBvZiB0aGUgZXh0ZW5zaWJsZS1zcGVjaWZpYyBvbmVzLgogICAKMjAwMy0wNi0yNyAwNDozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgSW5jbHVkZSBhIGdlbmVyYWwgJ21hZ2ljJyBwYXJhbWV0ZXIgaW4gYm90aCBjYWNoZSBkYXRhIHN0cnVjdHVyZQogICBhbmQgY2FjaGUgbG9hZGluZyByb3V0aW5lLiAgIEp1c3QgSW4gQ2FzZSBJdCBNaWdodCBDb21lIEluIFVzZWZ1bC4KICAgSGFwcHksIFdlcz8KICAgCjIwMDMtMDYtMjcgMDQ6MDkgIGR0czEyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgIG1pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBHZW5lcmFsaXNlZCBzdWItY29tbWFuZCBleGVjdXRpb24gdXRpbGl0eSByb3V0aW5lcy4KICAgKFRoZSBjdXJyZW50ICdleGVjX2NvbW1hbmQnIGFuZCAnc2hlbGxfY29tbWFuZCcgcm91dGluZXMgYXJlIHZlcnkgc3BlY2lmaWMKICAgIHRvIHRoZSBkZXRhaWxzIG9mIHRoZSAnc3RydWN0IGV4dGVuc2libGUnIGRhdGEgc3RydWN0dXJlKS4KICAgVGhlc2Ugcm91dGluZXMgY2FuIGJlIHVzZWQgbW9yZSB3aWRlbHksIHdoZXJldmVyIGEgc3ViLXByb2Nlc3MgaXMgbmVlZGVkLgogICAKICAgUXVlc3Rpb25zOgogICAgIGEpICBTaG91bGQgdGhlc2UgdXRpbGlzZSB0aGUgInJlYWxsb2MiIG1lY2hhbmlzbSwgcmF0aGVyIHRoYW4KICAgICAgICAgZW5mb3JjZSBhIGZpeGVkIHNpemUgb3V0cHV0IGJ1ZmZlcj8KICAgICBiKSAgRG8gdGhleSBiZWxvbmcgaW4gdGhlIG1haW4gbGlicmFyeSAob3IgcG9zc2libHkgdGhlIGFnZW50IGxpYnJhcnkpCiAgICAgICAgIHJhdGhlciB0aGFuIGEgbWliZ3JvdXA/CiAgIAoyMDAzLTA2LTI3IDAxOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIE1vcmUgZmxleGlibGUgaGFuZGxpbmcgb2YgZm9ybWF0dGluZyB2YXJiaW5kIGxpc3RzLgogICAiJVYiIGNvbmZpZ3VyZXMgdGhlIHZhcmJpbmQgc2VwYXJhdG9yIGNoYXJhY3RlciAoYWx0X2Zvcm1hdCA9PiBhZGRlZCBzcGFjZSkKICAgIiV2IiB1c2VzIHRoaXMgc2VwYXJhdG9yIChhbHRfZm9ybWF0ID0+IHNlcGFyYXRvciBhbHNvIHByaW50ZWQgYmVmb3JlIHRoZSBsaXN0KQogICBEZWZhdWx0cyB0byB1c2luZyB0aGUgZWFybGllciAnXHQnIG9yICIsICIgaWYgbm8gc2VwYXJhdG9yIGlzIHNwZWNpZmllZC4KICAgCjIwMDMtMDYtMjYgMDI6MjcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgVXNlIHRoZSBuZXcgZmVhdHVyZXMgb2YgbWliMmMgdG8gdGlkeSB1cCB0aGUgb3V0cHV0IGEgYml0LgogICAKMjAwMy0wNi0yNiAwMjoyNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBFeHRlbmQgbWliMmMncyBuZXcgY291bnRlciByb3V0aW5lcyB0byBjb3ZlciAic3VibG9vcHMiIGFzIHdlbGwKICAgKGkuZS4gdGhlIG51bWJlciBvZiBjb2x1bW5zL2luZGV4ZXMgaW4gYSBwYXJ0aWN1bGFyIHRhYmxlLAogICAgYW5kIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyB0byBiZSBpbmNsdWRlZCB3aXRoIGEgZ2l2ZW4gbm90aWZpY2F0aW9uKQogICAKMjAwMy0wNi0yNSAyMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gcHJvbXB0IHN1cHBvcnQgZm9yIG1pYjJjIHRvIGFzayBxdWVzdGlvbnMgdG8gdGhlIHVzZXIuCiAgIC0gQSBuZXcgdG9wLWxldmVsIHdyYXBwZXIgYXJvdW5kIGFsbCB0aGUgb3RoZXIgbWliMmMgZmlsZXMgdGhhdCB3YWxrcwogICAgIHlvdSB0aHJvdWdoIHNlbGVjdGluZyB0aGUgcmlnaHQgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlIHlvdSB3aXNoIHRvCiAgICAgdXNlIGFuZCB0aGVuIHNvdXJjZXMgaXQgZm9yIHlvdS4KICAgICAtIHRvZG86IGdlbmVyYXRlIHVuaXF1ZSBmaWxlIG5hbWVzIGlmIGJvdGggc2NhbGFyIGFuZCB0YWJsZSBjcmVhdGlvbgogICAgICAgaXMgZG9uZSwgZWcuCiAgIAoyMDAzLTA2LTI1IDIzOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgYm95IGlzIHRoYXQgbm90IG5lZWRlZCBhbnkgbW9yZQogICAKMjAwMy0wNi0yNSAxNDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBEYXZlIGFza3MsIGRhdmUgZ2V0czoKICAgICAtIG5ldyBmdW5jdGlvbnMgcmV0dXJuaW5nIDEgb3IgMjogICR2YXIuaXNzY2FsYXIsICR2YXIuaXNjb2x1bW4KICAgICAtICR2YXIucGFyZW50IHJldHVybnMgdGhlIHBhcmVudCBsYWJlbCBzdHJpbmcgb2YgdGhlIG5vZGUuCiAgIAoyMDAzLTA2LTI1IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IHJlcXVlc3QgLT4gcmVxdWVzdHMgYXMgcG9pbnRlZCBvdXQgYnkgU3RldmUgQmVuZXR0CiAgIAoyMDAzLTA2LTI1IDA3OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFN0YW1wIG9uIGEgdHJhaWxpbmcgJy4nIHdoZW4gc3BlY2lmeWluZyBWQUNNIE9JRHMuCiAgIAoyMDAzLTA2LTI1IDA3OjMwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgQ2FsbHMgdG8gcmVsZWFzZSBlbnVtZXJhdGlvbiBsaXN0cyB3aGVuIG5vIGxvbmdlciByZXF1aXJlZC4KICAgTm9ybWFsbHkgdGhpcyB3b3VsZCBiZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhbiBhcHBsaWNhdGlvbgogICBleGlzdHMsIGJ1dCBpdCBtaWdodCBiZSB1c2VmdWwgdG8gcmVsZWFzZSByZXNvdXJjZXMgZWFybGllci4KICAgCjIwMDMtMDYtMjUgMDc6MjQgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgJ2RsbW9kLmgnIGhlYWRlciBmaWxlCiAgIAoyMDAzLTA2LTI0IDA2OjIwICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5ub3RpZnkuY29uZjoKCiAgIEluaXRpYWwgc3VwcG9ydCBmb3IgY29kZSB0byBzZW5kIG91dCB0cmFwcyBhbmQgaW5mb3Jtcy4KICAgVGhpcyBzdGlsbCBkb2Vzbid0IGFkZHJlc3MgKndoZW4qIHN1Y2ggbm90aWZpY2F0aW9ucyBzaG91bGQKICAgYmUgZ2VuZXJhdGVkLCBidXQgaXQgYXQgbGVhc3QgaGVscHMgd2l0aCBkb2luZyBzby4KICAgCjIwMDMtMDYtMjMgMjI6MzAgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVtb3ZlIHRvbyBtdWNoIG1lbWR1cCdpbmcgaW4gaW5mb3JtIHJlcGx5CiAgIAoyMDAzLTA2LTIzIDE0OjMzICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkIEFQUy1NSUIgYW5kIE1BTExPQy1NSUIKICAgCjIwMDMtMDYtMjMgMTQ6MzEgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSBmcm9tIElBTkEKICAgCjIwMDMtMDYtMjMgMTQ6MzAgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVtb3ZlIG5vdyB1bnVzZWQgc25tcF9jbG9uZV9wZHUyCiAgIAoyMDAzLTA2LTIzIDEyOjM3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGluY2x1ZGUgd2FpdC5oIGZvciB3YWl0cGlkLCBhbmQgcmUtaW5zdGF0ZSB0aGUgY29kZSB0aGF0IHJlc3BvbmRzIHRvIGFuIGluZm9ybQogICAKMjAwMy0wNi0yMyAwNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaAo6CgogICBVdGlsaXR5IHJvdXRpbmUgdG8gY29udmVydCB2MSB0cmFwcyB0byB2Mi1ub3RpZmljYXRpb24tc3R5bGUgdmFyYmluZCBsaXN0LgogICAKMjAwMy0wNi0yMyAwNjozNSAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENvbnN0cnVjdCBhIGxpYnJhcnkgY29udGFpbmluZyB0aGUgY29yZSB0cmFwZCBoYW5kbGluZyBmdW5jdGlvbmFsaXR5LgogICAKMjAwMy0wNi0yMyAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgVGhlIHN5c09SVGFibGUgbW9kdWxlIGlzIGRlcGVuZGVudCBvbiBzeXN0ZW1fbWliLCBzbyBlbnN1cmUgdGhpcyBpcyBhdmFpbGFibGUuCiAgIAoyMDAzLTA2LTIzIDA2OjEzICBkdHMxMgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIENvbnNvbGlkYXRlIHRoZSBub3RpZmljYXRpb24gaGFuZGxlciBpbiB3aXRoIHRoZSByZXN0IG9mIHRoZQogICBOT1RJRklDQVRJT04tTUlCIHJlbGF0ZWQgY29kZS4KICAgCjIwMDMtMDYtMjMgMDY6MDEgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgU2h1ZmZsZSBjb2RlIGFyb3VuZCBhIGJpdC4gIFRoZSB0aHJlZSBmaWxlcyAnc25tcHRyYXBkX2hhbmRsZXJzLmMnLAogICAnc25tcHRyYXBkX2xvZy5jJyBhbmQgJ25vdGlmaWNhdGlvbi5jJyBub3cgY29udGFpbiBhbGwgdGhlIGNvZGUKICAgbmVlZGVkIHRvIHByb2Nlc3MgYW4gaW5jb21pbmcgdHJhcC4KICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGVtYmVkIHRoaXMgZnVuY3Rpb25hbGl0eSB3aXRoaW4gYW4gbGFyZ2VyCiAgIGFwcGxpY2F0aW9uLCByYXRoZXIgdGhhbiBoYXZpbmcgdG8gdXNlIHRoZSAnc25tcHRyYXBkLmMnIHdyYXBwZXIuCiAgIAoyMDAzLTA2LTIyIDE2OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgaWdub3JlICouYyBhbmQgKi5oIGZpbGVzLgogICAKMjAwMy0wNi0yMiAxNjoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBuZXRTbm1wSG9zdHNUYWJsZS5jLAogICBuZXRTbm1wSG9zdHNUYWJsZS5oLCBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywKICAgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmgsIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMKLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oLAogICBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5jLAogICBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5oLAogICBuZXRTbm1wSG9zdHNUYWJsZV9jb2x1bW5zLmgsIG5ldFNubXBIb3N0c1RhYmxlX2VudW1zLmg6CgogICAtIEEgbmV0U25tcEhvc3RzVGFibGUgaW1wbGVtZW50YXRpb24gdGhhdCBpbXBsZW1lbnRzIGEgdGFibGVfaXRlcmF0b3IKICAgICB3cmFwcGVyIGFyb3VuZCAvZXRjL2hvc3RzLiAgTm90ZSB0aGF0IGFsdGhvdWdoIHRoaXMgaXMgdGhlIGZpcnN0IGNoZWNrCiAgICAgaW4sIGl0IGlzIG5vdCBlbnRpcmVseSBjb21wbGV0ZSB5ZXQuICBTcGVjaWZpY2FsbHk6CiAgICAgLSBJdCBkb2Vzbid0IHN1cHBvcnQgcm93IGNyZWF0aW9uIHlldCAobXkgbmV4dCB0YXJnZXQpIGFuZCBkZWxldGlvbiB5ZXQuCiAgICAgLSBJdCBpbXBsZW1lbnRzIGEgYnVuY2ggb2Ygc3R1ZmYgaXRzZWxmIGluIG5ldFNubXBIb3N0c1RhYmxlLmMgdGhhdAogICAgICAgd2lsbCBldmVudHVhbGx5IGdvIGludG8gYSBtb3JlIGdlbmVyaWMgaGVscGVyLgogICAgIC0gSXQgZG9lc24ndCBzdXBwb3J0IGFueXRoaW5nIGJ1dCBpcHY0IHlldCBidXQgZG9lc24ndCBpZ25vcmUgaXQgaW4KICAgICAgIHRoZSBob3N0cyBmaWxlIChpbmV0X2F0b24gcmV0dXJucyBhIC0xIHRodXMgYWxsIGlwdjYgYWRkcmVzcyBnZXQKICAgICAgIG1hcHBlZCB0byAyNTUuMjU1LjI1NS4yNTUpLgogICAtIEl0IGlzIHN0aWxsIHVzZWZ1bCBqdXN0IHRvIHNob3cgaG93IFNFVCBvcGVyYXRpb25zIGNhbiBiZSBwZXJmb3JtZWQKICAgICB1c2luZyBhIHRhYmxlX2l0ZXJhdG9yLgogICAtIFBsdXMgSSBuZWVkZWQgdG8gY2hlY2sgaXQgaW4gYmVmb3JlIEkgc3RhcnQgbWVzc2luZyB3aXRoIGl0IGFnYWluCiAgICAganVzdCBmb3IgYXJjaGl2YWwgcHVycG9zZXMuCiAgIAoyMDAzLTA2LTIyIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBDcmVhdGUgYW4gZXhhbXBsZSB0YWJsZSB0aGF0IGlzIGEgd3JhcHBlciBhcm91bmQgL2V0Yy9ob3N0cyBkYXRhLgogICAKMjAwMy0wNi0yMiAxMjo1MyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJTkZPIGlzIG5vdCBhIGZhY2lsaXR5IC0gVVNFUiBjb3VsZCBiZQogICAKMjAwMy0wNi0yMiAxMjo1MCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBBZGQgdGhlIG5ldyAtTCBvcHRpb24gdG8gdGhlIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDMtMDYtMjIgMTI6NDkgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQWRkIHNvbWUgbWlzc2luZyBwcm90b3R5cGVzLCBhbmQgdXNlIHRoZW0KICAgCjIwMDMtMDYtMjIgMTI6NDYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRG8gYXdheSB3aXRoIHNvbWUgd2FybmluZ3MKICAgCjIwMDMtMDYtMjIgMTI6NDQgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBjb25zdGlmeSBhIGZldyBhcmd1bWVudHMsIG1ha2Ugc3VyZSB0aGF0IHdlIGRlZmFsdCBvdXRwdXQgdG8gc3RkZXJyCiAgIAoyMDAzLTA2LTIyIDEyOjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRG8gYXdheSB3aXRoIHNvbWUgd2FybmluZ3MKICAgCjIwMDMtMDYtMjIgMTI6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFVudGFuZ2xlIGEgbW9zdCBleHRyb3JkaW5hcnkgd2ViIG9nIEZyZWVCU0QgYW5kIExpbnV4CiAgIAoyMDAzLTA2LTIyIDA3OjIyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBmaXggaGVscCB1c2FnZSBmb3IgZmxhZyBvcmRlcmluZy4KICAgCjIwMDMtMDYtMjIgMDc6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBhZGQgLXMgU1VGRklYIGFuZCAtUyBQUkVGSVggZmxhZ3MKICAgLSBkb3h5Z2VuIGRvY3VtZW50IHNubXBfcGFyc2Vfb2lkCiAgIC0gQWRkIGEgcHJvcGVyIEw6IHRva2VuIHRvIGdldG9wdCBmb3IgYSBtaXNzaW5nIGFjY2VwdGVkIGZsYWcKICAgCjIwMDMtMDYtMjAgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCB0aGUgbG9vcCBmcmVlIGJlZm9yZSBjYWxsLXN1Yi1ob29rIG9yZGVyaW5nIHByb2JsZW0gRGF2ZSBwb2ludGVkIG91dAogICAKMjAwMy0wNi0yMCAxMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBTdXBwb3J0IHRoZSBvcHRpb24gZm9yIHNvcnRlZCBpdGVyYXRvci1iYXNlZCB0YWJsZXMsIHRvby4KICAgCjIwMDMtMDYtMjAgMTE6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFN0b3Agc2VhcmNoaW5nIG9uY2Ugd2UndmUgZm91bmQgYWxsICJleGFjdCIgcmVxdWVzdGVkIHJvd3MuCiAgIAoyMDAzLTA2LTE5IDAxOjU0ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wc2V0LjEuZGVmLCBzbm1wdHJhcC4xLmRlZjoKCiAgIENsYXJpZnkgdGhlIEFTTi4xIHR5cGUgbWFwcGluZ3MgZm9yIGNvbW1hbmQtbGluZSB0eXBlIHNwZWNpZmljYXRpb25zLgogICAKMjAwMy0wNi0xNyAwNTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFN0YXJ0IHVzaW5nIHRoZSBuZXcgLUx4IHN0eWxlIGxvZ2dpbmcgb3V0cHV0LgogICBVbmZvcnR1bmF0ZWx5LCB0aGlzIGRvZXNuJ3Qgc2VlbSB0byBzdXBwb3J0IHRoZSBvbGQgLUwgZm9ybWF0CiAgIChzZWUgY29tbWVudHMgaW4gc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyBmb3IgZGV0YWlscykuCiAgIAogICBJdCBtYXkgcHJvdmUgbmVjZXNzYXJ5IHRvIHJldmVyc2UgdGhpcyBwYXRjaDotKAogICBCdXQgSSdtIGNvbW1pdHRpbmcgaXQgYW55d2F5LCBpbiBjYXNlIGFueW9uZSBjYW4gc3BvdCBhIHN1aXRhYmxlIHdvcmthcm91bmQuCiAgIAoyMDAzLTA2LTE3IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTWlub3IgdHdlYWsgdG8gc3Rkb3V0L3N0ZGVyciBoYW5kbGluZywgdG8gaW1wcm92ZSB0aGUgYXBwZWFyYW5jZSBvZgogICBNSUIgZ3JvdXAgb3V0cHV0LgogICAKMjAwMy0wNi0xNyAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmgsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dAo6CgogICBNSUIgZ3JvdXAgdG8gbWFuYWdlIGFnZW50IGxvZ2dpbmcgY29uZmlndXJhdGlvbi4KICAgCjIwMDMtMDYtMTYgMTQ6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUyAoVjUtMC1wYXRjaGVzLjQpLCBSVU5URVNUUzoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGNvbW1lbnQgYWJvdXQgaXQgYmVpbmcgYnJva2VuLCBhcyBwb2ludGVkIG91dAogICBieSBCcnVjZS4KICAgCjIwMDMtMDYtMTYgMTQ6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUyAoVjUtMC1wYXRjaGVzLjMpLCBSVU5URVNUUzoKCiAgIHN1cHBvcnQgLCBzZXBhcmF0ZWQgYXJndW1lbnRzIHRvIC1UIGxpa2UgLWggc2F5cyBpdCB3aWxsLgogICAKMjAwMy0wNi0xNiAxNDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFBhdGNoIGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggb3V0cHV0IG51bWJlcmluZyB3aGVuIHVzaW5nIC1UIG9yCiAgIGludGVyYWN0aXZlbHkgcGlja2VkIHN1Yi1zZXJpZXMgb2YgdGVzdHMuCiAgIAoyMDAzLTA2LTE2IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjUtMC1wYXRjaGVzLjIpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzU1NTQwIGZyb20gQnJ1Y2UgU2hhdyBhbmQgSVJDOlNlYk5vYiB0byBmaXggYnVnICM3MDE0MzkgZm9yIDY0IGJpdCBzb2xhcmlzIHN5c3RlbXMgYW5kIDY0IGJpdCBpbnRlZ2VycyByZXR1cm5lZCBieSBnZXRLc3RhdAogICAKMjAwMy0wNi0xNiAxMzoxNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBQYXRjaCAjNzU0MTA1IGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggc29tZSBzcGVsbGluZyBlcnJvcnMKICAgCjIwMDMtMDYtMTYgMDc6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICB5ZXQgbW9yZSBpbXByb3ZlbWVudHMgd29ya2luZyB0b3dhcmQgdGhlIGVuZC1nb2FsLgogICAKMjAwMy0wNi0xNiAwNzoxNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dCwgUkVBRE1FLk1hdHN1c2hpdGEudHh0OgoKICAgcmVuYW1lZCB0byBQYW5hc29uaWNfQU0zWCBieSByZXF1ZXN0CiAgIAoyMDAzLTA2LTEzIDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBPaywgdGhlcmUgd2FzIDEgbWVtb3J5IGxlYWsuICBCdXQgaXRzIGdvbmUgbm93LgogICAKMjAwMy0wNi0xMyAyMjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBpdGVyYXRvciBmcm9tIHNjcmF0Y2guCiAgICAgLSA2MCBsaW5lcyBvciBzbyBsZXNzIGNvZGUuCiAgICAgLSBubyBsb25nZXIgZm9yY2VkLXNlcmlhbGl6ZWQKICAgICAtIG1lbW9yeS1sZWFrIGZyZWUKICAgICAtIGJldHRlciBjb21tZW50ZWQgKHRob3VnaCBtb3JlIGNvdWxkIGFsd2F5cyBiZSB1c2VmdWwpLgogICAgIC0gc2lnbmlmaWNhbnRseSBzaW1wbGVyIGluIGRlc2lnbi4KICAgICAtIGRlbW9uc3RyYXRpb24gZXhhbXBsZSBtaWIgbW9kdWxlIGNvZGUgdG8gYmUgY2hlY2tlZCBpbiBlYXJseSBuZXh0IHdlZWsuCiAgIAoyMDAzLTA2LTEzIDExOjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIGZpeCByYW5nZSBjaGVja3Mgbm93IHRoYXQgaXRzIG5vIGxvbmdlciB0aGUgbGFzdCB0aGluZyBjYWxsZWQuCiAgIAoyMDAzLTA2LTEzIDExOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmY6CgogICBtaXNjIG1pbm9yIGZpeGVzLgogICAKMjAwMy0wNi0xMyAxMToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggZWxzZSBjbGF1c2VzIHdpdGhpbiBpZiBzdGF0ZW1lbnRzLgogICAKMjAwMy0wNi0xMyAwODozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgSGFuZGxlIHByb2JsZW1zIHdpdGggcmVhZGluZyBwcm9jZXNzIGluZm9ybWF0aW9uIG9uIFNvbGFyaXMga2l0LCBjb25zaXN0ZW50bHkgYW5kIGNsZWFubHkuCiAgIAoyMDAzLTA2LTEzIDA2OjI4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBJbXBsZW1lbnQgJy1MeCcgY29tbWFuZC1saW5lIG1ldGEtb3B0aW9uIGZvciBjb25maWd1cmluZyBsb2dnaW5nIHNldHRpbmdzLgogICBOb3QgMTAwJSBjb252aW5jZWQgdGhpcyBpcyBmdWxseSB3b3JraW5nLCBidXQgZG9lcyBzZWVtIHRvIHN1cHBvcnQKICAgbXVsdGlwbGUgb3V0cHV0IGxvY2F0aW9ucy4KICAgCjIwMDMtMDYtMTAgMTU6NDggIG5iYQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjUtMC1wYXRjaGVzLjcpLCBzbm1wX2FwaS5jOgoKICAgQmV3YXJlIG9mIGRlcmVmZXJlbmNpbmcgYSBOVUxMIHBvaW50ZXIKICAgCjIwMDMtMDYtMTAgMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBhZGQgY2FjaGluZyBoYW5kbGVyIGZpbGUKICAgCjIwMDMtMDYtMTAgMDg6NDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEluaXRpYWwgYmFzaCBhdCBhIG1vZHVsYXIgImxvZ19oYW5kbGVyIiBpbXBsZW1lbnRhdGlvbi4KICAgTGF5aW5nIHRoZSBmb3VuZGF0aW9ucyBmb3IgbW9yZSBmbGV4aWJsZSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIAoyMDAzLTA2LTEwIDA4OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIHVudXNlZCBmdW5jdGlvbiBhcyBwb2ludGVkIG91dCBieSBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDYtMDkgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jCiAgIChWNS0wLXBhdGNoZXMuWzEsMywxLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBMb25nIG92ZXJkdWUgcGF0Y2ggIzY5NTE5MiBmcm9tIFJvbiBUYWJvciB0byBmaXggdGhlIFZBQ00gc3Bpbm5pbmcgcHJvYmxlbSB0aGF0IEkgZGlkbid0IHF1aXRlIGZpeCBiZWZvcmUKICAgCjIwMDMtMDYtMDkgMTU6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsIGNvbmZpZ3VyZToKCiAgIGZpeCBidWcgIzcwNjcxMCB0byBzaG93IHdoZW4gcHJpdmFjeSBoYXMgYmVlbiBkaXNhYmxlZAogICAKMjAwMy0wNi0wOSAxNTo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIGZpeCBidWcgIzcwNjc0MSBmcm9tIFNlYW4gQnVya2U6IGNoZWNrIGZvciB3b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gYQogICBwcm9wZXIgc2l6ZSAoc2l6ZW9mKGxvbmcpKS4KICAgCjIwMDMtMDYtMDkgMTU6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgYnVnICM3NDg0MzEgZnJvbSBKb2huIFNoaXZlcjogZml4IHRocmVhZC1zYWZlIHByb2JsZW1zIHdpdGggc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24gKHdoaWNoIHdhcyBtaXNzaW5nIGluIHRoZSA1LnggbGluZSBhbnl3YXkpLiAgQWxzbyBzZXBhcmF0ZSBvdXQgdW5pb24gc3RydWN0dXJlIGludG8gYSBzZXBhcmF0ZSB0eXBlZGVmIHJhdGhlciB0aGFuIHVzZSBpdCBpbmxpbmUgaW4gdGhlIHZhcmlhYmxlIGxpc3Qgc3RydWN0dXJlCiAgIAoyMDAzLTA2LTA5IDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGJ1ZyAjIDc1MTE5NyBwb2ludGVkIG91dCBieSBUb20gRXZhbnMgd2hlcmUgaXNzcGFjZSBpcyB1c2VkIHRvIGNoZWNrIGZvciBoZXggY2hhcmFjdGVycyB3aGVuIGlzcHJpbnQoKSBpcyBhbGwgdGhhdCBpcyBuZWVkZWQKICAgCjIwMDMtMDYtMDkgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuaCwgYWNjb25maWcuaCwKICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGF0Y2ggIzc0OTU1MiBmcm9tIHZheHBvd2VyICh3aXRoIG1vZGlmaWNhdGlvbnMgYnkgV2VzKTogbXVjaCBpbXByb3ZlZCBBSVggc3VwcG9ydAogICAKMjAwMy0wNi0wOSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLk1hdHN1c2hpdGEudHh0IChWNS0wLXBhdGNoZXMuMSksIFJFQURNRS5NYXRzdXNoaXRhLnR4dAo6CgogICBQYXRjaCAjNzQ4MzA1IGZyb20gc3Jpbml2YXNhIHJhbyBndXJ1c3UgZGVzY3JpYmluZyBob3cgdG8gYnVpbGQgbmV0LXNubXAgb24gTWF0c3VzaGl0YSBlbWJlZGRlZCBzeXN0ZW1zCiAgIAoyMDAzLTA2LTA5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNS0wLXBhdGNoZXMuMyksIGlwQWRkci5jOgoKICAgUGF0Y2ggNzQ2MzM5OiBPdHRvIFNvbGFyZXMgZml4ZXMgYSBmaWxlIGRlc2NyaXB0b3IgbGVhayBvbiBsaW51eAogICAKMjAwMy0wNi0wOSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc0OTA2MiB0byBmaXggY2FjaGluZyBjcmFzaGluZyBhbmQgY2xhc2hpbmcgdW5kZXIgU29sYXJpcwogICAKMjAwMy0wNi0wOSAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jIChWNS0wLXBhdGNoZXMuMiksIHByb3h5LmMKOgoKICAgcGF0Y2ggIzc0OTEwMyBmcm9tIEdhcnJ5IEMgTWFyc2hhbGwgdG8gZml4IHRoZSBwcm94eSB3aGVuIGEgdGltZW91dCBvY2N1cnMgZnJvbSB0aGUgdGFyZ2V0CiAgIAoyMDAzLTA2LTA5IDA0OjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5oLCBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQKOgoKICAgTUlCIG9iamVjdHMgdG8gbWFuYWdlIGNvbmZpZ3VyYXRpb24gb2YgTUlCIGRhdGEgY2FjaGluZy4KICAgCjIwMDMtMDYtMDkgMDM6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5oLCBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQKLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIFJld29yayBuc0RlYnVnVG9rZW5UYWJsZSB0byBiZSBpbmRleGVkIGJ5IHRoZSBkZWJ1ZyB0b2tlbiBzdHJpbmcgdmFsdWVzLgogICAKMjAwMy0wNi0wNiAwODo0NSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBJbXBsZW1lbnQgdmFyaW91cyBzZXBhcmF0ZSBsaXN0cyBvZiAiZ2xvYmFsIiBoYW5kbGVycywgdG8gc3VwcG9ydAogICBwcmUtIGFuZCBwb3N0LXNwZWNpZmljIGdsb2JhbCBwcm9jZXNzaW5nLCBhcyB3ZWxsIGFzICJhdXRoZW50aWNhdGlvbiIKICAgaGFuZGxlcnMsIHdoaWNoIGFyZSBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBmaXJzdC4KICAgQWxzbyBzdXBwb3J0IGZvciB0ZXJtaW5hdGluZyB0cmFwIHByb2Nlc3NpbmcgZWFybHkuCiAgIAogICBEb24ndCBsZXQgbWUgaGVhciB5b3Ugc2F5IHRoYXQgSSBuZXZlciBsaXN0ZW4gdG8geW91LCBXZXMhCiAgIAoyMDAzLTA2LTA2IDA2OjQyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBtaXNzaW5nIGxlbmd0aCBieXRlIHdoZW4gc2V0dGluZyBpbmRleCB3aXRoIGNoZWNrcyBkaXNhYmxlZAogICAKMjAwMy0wNi0wNiAwMTozMiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCjoKCiAgIENsYXJpZnkgd2hpY2ggInJbb3dde3VzZXIsY29tbXVuaXR5fSIgcGFyYW1ldGVycyBhcmUgb3B0aW9uYWwsIGFuZCAgaW4gd2hpY2ggY29tYmluYXRpb25zLgogICAKMjAwMy0wNi0wNCAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgRmlyc3QgcGFzcyBhdCBhIGRhdGEtY2FjaGluZyBoZWxwZXIgLSBpbmRlcGVuZGVudCBvZiBpbmRpdmlkdWFsIE1JQiBtb2R1bGVzLgogICAoaS5lLiBpdCdzIHVwIHRvIGVhY2ggTUlCIG1vZHVsZSB0byBwcm92aWRlICJsb2FkIGRhdGEiIGFuZCAiZnJlZSBkYXRhIgogICAgcm91dGluZXMsIGJ1dCB0aGUgaGFuZGxpbmcgb2Ygd2hlbiB0byBsb2FkIHRoZXNlIGNhY2hlcyBpcyBkb25lIGhlcmUpLgogICAKICAgVGhlIGludGVudGlvbiBpcyB0aGF0IHRoaXMgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIFNOTVAtbWFuYWdlYWJsZSAoaW5jbHVkaW5nCiAgIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRpdHkgdGltZW91dHMsIGludmFsaWRhdGlvbiBvZiBjYWNoZWQgdmFsdWVzLCBldGMpLgogICBCdXQgZm9yIG5vdywgdGhpcyBpcyBqdXN0IHRoZSBiYXNpYyBoYW5kbGVyLgogICAKMjAwMy0wNi0wNCAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXJfZ3JvdXAuaDoKCiAgIFNpbmdsZSBoZWxwZXIgdG8gaW1wbGVtZW50IGEgZ3JvdXAgb2Ygc2NhbGFyIG9iamVjdHMgaW4gb25lIGdvLgogICAoQ2xvc2VyIHRvIHRoZSBtb2RlbCBvZiB0aGUgZWFybGllciB2NCBBUEkpCiAgIAoyMDAzLTA2LTAzIDE3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtZW50aW9uIHdoZXJlICJsYXRlciIgYWN0dWFsbHkgaXMuCiAgIAoyMDAzLTA2LTAyIDA1OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaDoKCiAgIERlY2xhcmF0aW9ucyBmb3IgaW1wcm92ZWQgU29sYXJpcyBDUFUgc3VwcG9ydCBmcm9tIHBhdGNoICM3Mzg0NjUpCiAgIChPb3BzISkKICAgCjIwMDMtMDYtMDIgMDU6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgZm9yd2FyZGluZyB0cmFwcyB0byBhbm90aGVyIGRlc3RpbmF0aW9uLgogICAoSSd2ZSBnb3QgYSBudW1iZXIgb2YgaWRlYXMgb2YgaG93IHRoaXMgY291bGQgYmUgZG9uZSBtb3JlIGZsZXhpYmx5LAogICAgYnV0IHRoaXMgc2VydmVzIGFzIGEgYmFzaWMgcHJvb2Ytb2YtY29uY2VwdCwgZm9yIGZlZWRiYWNrICYgY29tbWVudCkKICAgCjIwMDMtMDYtMDIgMDU6MzMgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgTW9kdWxhcmlzZWQgYXBwcm9hY2ggdG8gZGlmZmVyZW50IHN0eWxlcyBvZiBoYW5kbGluZyBpbmNvbWluZyB0cmFwcy4KICAgVGhpcyBzZWVtcyB0byByZXRhaW4gdGhlIHNhbWUgYmVoYXZpb3VyIGFuZCBvdXRwdXQgZm9ybWF0cyBhcyB0aGUKICAgZWFybGllciBjb2RlLCBidXQgc2hvdWxkIGJlIG11Y2ggbW9yZSBmbGV4aWJsZSB0byBleHRlbmQgYW5kIGFkYXB0LgogICAKMjAwMy0wNS0zMCAxNzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jOgoKICAgbWFrZSB1c2Ugb2YgbmV3IGV4cG9ydGVkIGl0ZW1zIGZyb20gc25tcF9kZWJ1Zy4KICAgCjIwMDMtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICBtaWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIG1vcmUgY2xlYW51cHMKICAgCjIwMDMtMDUtMzAgMTY6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsIG1pYjJjLmNoZWNrX3ZhbHVlc19sb2NhbC5jb25mLAogICBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBVcGRhdGUgdG8gbWliMmMgY29kZSBmb3IgcHJvZHVjaW5nIHdoYXQgSSB0aGluayBzaG91bGQgYmUgYW4gZWFzaWVyIHRvCiAgIHVzZSBBUEkgc2V0ICh0aGF0IGlzIG5vdCBhbGwgd3JhcHBlZCBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uKS4KICAgCjIwMDMtMDUtMzAgMTY6NTEgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGZpeCBtaWIgdHlwbwogICAKMjAwMy0wNS0zMCAxNjo1MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIGRlZmluZSBhIG5vb3AgZnJlZSBmdW5jdGlvbi4KICAgCjIwMDMtMDUtMzAgMTY6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCjoKCiAgIGV4cG9ydCBpbmZvcm1hdGlvbiBuZWVkZWQgYnkgdGhlIG5ldyBkZWJ1ZyBtb2R1bGVzLgogICAKMjAwMy0wNS0zMCAxNDo0OCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkZWQgYSBjb21waWxpbmcgc2VjdGlvbiB3aXRoIG9uZSBuZXcgcXVlc3Rpb24gYWJvdXQgbGliZWxmLiAgT3RoZXIgcXVlc3Rpb25zIHByb2JhYmx5IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgbmV3IHNlY3Rpb24KICAgCjIwMDMtMDUtMzAgMDU6MTQgIGR0czEyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wdmFjbS4xLmRlZjoKCiAgIFByZWxpbWluYXJ5IG1hbiBwYWdlIGZvciBzbm1wdmFjbQogICAKMjAwMy0wNS0zMCAwMzo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgSGFuZGxlIGJsb2NrIHNpemVzIDwxSyB3aGVuIGNvbnZlcnRpbmcgYmxvY2sgY291bnRzIHRvIEtiLgogICBSZXBvcnRlZCBieSBFdWdlbmUgVi4gQ2h1cHJpeWFub3YgKHdheSBiYWNrIGluIE9jdG9iZXIhKS4KICAgRmxhd3Mgd2l0aCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBwYXRjaCBhcmUgbXkgcmVzcG9uc2liaWxpdHkuCiAgIChJJ20gbm90IHRvdGFsbHkgaGFwcHkgYWJvdXQgY2FzdGluZyB0byBmbG9hdCBpbiB0aGlzIHdheSwKICAgIGJ1dCBpdCBzZWVtZWQgdGhlIGJlc3Qgb2YgYSBiYWQgbG90KS4KICAgCjIwMDMtMDUtMzAgMDM6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgU2lnbmlmaWNhbnRseSBpbXByb3ZlZCBzdXBwb3J0IGZvciBTb2xhcmlzIENQVSBpbmZvcm1hdGlvbgogICAoaW5jbHVkaW5nIGRlc2NyaXB0aW9uLCBzdGF0dXMgYW5kIG11bHRpLUNQVSBzdXBwb3J0KS4KICAgVGhhbmtzIHRvIEphbWVzIElyd2luIGZvciBpbXBsZW1lbnRpbmcgaXQgKHNlZSBwYXRjaCAjNzM4NDY1KQogICBObyB0aGFua3MgdG8gRGF2ZSBTaGllbGQgZm9yIHNpdHRpbmcgb24gaXQgZm9yIGEgY291cGxlIG9mIHdlZWtzLgogICBCYWQgRGF2ZSEgQmFkIERhdmUhCiAgIAoyMDAzLTA1LTI4IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogb2xkX2FwaS5jIChWNS0wLXBhdGNoZXMuMSksIG9sZF9hcGkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgY29kZSBhcyBwb2ludGVkIG91dCBieSBQZXRlciBXYXJhc2luCiAgIAoyMDAzLTA1LTI4IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IGdldGJ1bGsgb3BlcmF0aW9ucyAoaG9wZWZ1bGx5KSwgYXMgcG9pbnRlZCBvdXQgYnkgUm9uIFRhYm9yLgogICAKMjAwMy0wNS0yOCAwNjoxMiAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIENsZWFyIHRoZSBvdXRwdXQgYnVmZmVyIGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBzZWNvbmQgKG9yIHN1YnNlcXVlbnQpCiAgIHZhcmJpbmQgaW4gYSBtdWx0aS12YWx1ZSB0YWJsZSBmb3JtYXQuICBCdWcgc3BvdHRlZCBieSBTdGVmYW5vIEJvZHJhdG8uCiAgIAoyMDAzLTA1LTI4IDA1OjE0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgSGVscGVyIHRvIGdyb3VwIHJlbGF0ZWQgcmVxdWVzdHMgZm9yIHRoZSBzYW1lIHJvdyB0b2dldGhlci4gIFN1Yi1oYW5kbGVycwogICBjYW4gdGhlcmVmb3JlIHdvcmsgd2l0aCBtdWx0aXBsZSB2YXJiaW5kcywgYWxsIHJlbGF0aW5nIHRvIHRoZSBzYW1lIHJvdy4KICAgCiAgIFRoaXMgd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIHRoZSBpdGVyYXRvciBoZWxwZXIsIGJ1dAogICB0aGF0IGhlbHBlciBpcyBhcHBhcmVudGx5IGJlaW5nIHJld29ya2VkIGF0IHRoZSBtb21lbnQuICBCdXQgdGhpcyBzZWVtcwogICBhIHBvdGVudGlhbGx5IHVzZWZ1bCBmZWF0dXJlIGFueXdheSwgc28gSSdtIGNvbW1pdHRpbmcgaXQgcmVnYXJkbGVzcyEKICAgCjIwMDMtMDUtMjggMDQ6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgc3RyYXkgXk0gbGluZSBlbmRpbmdzCiAgIAoyMDAzLTA1LTI4IDAyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogZGxtb2QuYywgZGxtb2QuaDoKCiAgIFJlbW92ZSByZWR1bmRlbnQgdmVyc2lvbiBvZiAnZGxtb2QnLiAgIFRoaXMgd2FzIG1vdmVkIHRvICd1Y2Qtc25tcCcKICAgaW4gMjAwMCwgYW5kIHRoaXMgJ21pc2MnIHZlcnNpb24gaGFzIGJlZW4gZWZmZWN0aXZlbHkgdW50b3VjaGVkIHNpbmNlLgogICBMZWF2aW5nIGl0IGFyb3VuZCBpcyBqdXN0IGFza2luZyBmb3IgcGVvcGxlIHRvIGdldCBjb25mdXNlZC4KICAgCjIwMDMtMDUtMjcgMDg6NTYgIGR0czEyCgogICAqIEFHRU5ULnR4dDoKCiAgIE1lbnRpb24gdGhhdCB0aGlzIGRlc2NyaWJlcyB0aGUgdjQgQVBJLCByYXRoZXIgdGhhbiB0aGUgdjUgaGVscGVyIG1lY2hhbmlzbS4KICAgCjIwMDMtMDUtMjEgMTA6NTggIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBycG0gZml4ZXMKICAgCjIwMDMtMDUtMjEgMTA6NTggIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGluc3RhbGwgdGhlIHNwZWMgZmlsZQogICAKMjAwMy0wNS0yMSAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBGaXggZm9yIHByb3BlciBub24tc2VyaWFsaXplZCBpdGVyYXRvciB1c2FnZS4KICAgCjIwMDMtMDUtMjEgMDY6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5oLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBOZXcgTUlCIGdyb3VwIHRvIG1vbml0b3IgYW5kIGNvbnRyb2wgZGVidWdnaW5nIG91dHB1dCBmcm9tIHRoZSBhZ2VudC4KICAgTm90ZSB0aGF0IHRoaXMgaXMgYSBwcm92aXNpb25hbCBpbXBsZW1lbnRhdGlvbiwgYW5kIHRoZSBNSUIgZGVmaW5pdGlvbnMKICAgYXJlIGN1cnJlbnRseSBzdWJqZWN0IHRvIGNoYW5nZSAoYXQgbGVhc3QgdW50aWwgd2UgbWFrZSBhIGZ1bGwgcmVsZWFzZQogICBpbmNsdWRpbmcgdGhpcyBncm91cCkKICAgCjIwMDMtMDUtMjEgMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNyksIHBhc3MuYzoKCiAgIEZpeCBwYXNzaW5nIG9mICJzZXQiIHBhcmFtZXRlcnMgdG8gYSBwYXNzLXRocm91Z2ggc2NyaXB0CiAgIChCdWcgIzY4OTkzNiwgZml4ZWQgYnkgRXJpYyBCb3dsZXMpCiAgIAoyMDAzLTA1LTIwIDA3OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIE1hbnUgU2hhcm1hJ3MgZHluYW1pY2FsbHktY29uZmlndXJhYmxlIGRlYnVnIHRva2VuIGhhbmRsaW5nLgogICAKMjAwMy0wNS0yMCAwNToxNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIEltcGxlbWVudCBhICJ3YXRjaGVkIHNwaW5sb2NrIiBoZWxwZXIuCiAgIAoyMDAzLTA1LTIwIDA0OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBGaXggbG9hZCBhdmVyYWdlIHN1cHBvcnQgZm9yIEFJWDUgKEJ1ZyAjNTYzOTc4IHJlcG9ydGVkIGJ5IEplZmYgQ3VubmluZ2hhbSkKICAgCjIwMDMtMDUtMjAgMDM6MjkgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEluY29ycG9yYXRlIE5pa29sYWkgRGV2ZXJlYXV4J3Mgb3ZlcnZpZXcgb2YgdGhlIFZpc3VhbCBDKysgb3JnYW5pc2F0aW9uLAogICBwbHVzIHNvbWUgbWlub3IgcmVhcnJhbmdlbWVudCBvZiBzZWN0aW9ucywgYW5kIHRvbmUgZG93biBhIHNvbWV3aGF0CiAgIG92ZXJseSBlbnRodXNpYXN0aWMgY29tbWVudC4KICAgCjIwMDMtMDUtMTUgMjI6NDIgIGhhcmRha2VyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgb3NmNSBwYXRjaCB0aGF0IG5ldmVyIGdvdCBhZGRlZC4KICAgCjIwMDMtMDUtMTUgMjI6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBNaW5vciBmaXguCiAgIAoyMDAzLTA1LTE0IDE4OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBvb3BzaWUgZG9vc2llIGZsb29zaWUgd29vemllCiAgIAoyMDAzLTA1LTE0IDE4OjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBvcHBzCiAgIAoyMDAzLTA1LTE0IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc29tZSBvdGhlciAuY29uZiBmaWxlcwogICAKMjAwMy0wNS0xNCAxNToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICByZW1vdmUgdW5uZWVkZWQgdmFyCiAgIAoyMDAzLTA1LTE0IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG1pc2MgbWlub3IgY2hhbmdlcwogICAKMjAwMy0wNS0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY2FjaGluZyBzdXBwb3J0IGZyb20gYSBwYXRjaCAjNzI2NDE4IGZyb20gTGFycnkgU2ltbW9ucy4KICAgCjIwMDMtMDUtMTQgMTU6MDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdGFibGUuMS5kZWY6CgogICAybmQgUGF0Y2ggNzAyNzExIGJ5IFJvbiBUYWJvciBkb2N1bWVudGluZyBuZXcgc25tcHRhYmxlIG9wdGlvbnMKICAgCjIwMDMtMDUtMTQgMTU6MDcgIGhhcmRha2VyCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBQYXRjaCAjNzEzMDcyIGZyb20gWGlhb2ZlbmcgTGluZyBmb3IgY29tMnNlYyBtYXBwaW5ncyBvbiB1bml4IHNvY2tldHMKICAgd2l0aCBwZXItc29ja2V0IG1hcHBpbmdzLgogICAKMjAwMy0wNS0xNCAxNDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jOgoKICAgUGF0Y2ggIzczNTQ4MCBmcm9tIEJydWNlIFNoYXc6IGFzc3VtZSBubyBjby1wcm9jZXNzb3IgZm9yIFN1bnMsIGFzIGlzIHRoZSBtb3JlIGNvbW1vbiBjYXNlCiAgIAoyMDAzLTA1LTE0IDA4OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBVc2UgL2V0Yy9wcmludGNhcCB0byBkZXRlY3QgcHJpbnRlcnMgaW4gcHJlZmVyZW5jZSB0byBydW5uaW5nIGxwc3RhdAogICAob3IgdGhlIGNnZXRuZXh0KCkgQVBJKS4gICBUaGlzIHNlZW1zIG1vcmUgaW4ga2VlcGluZyBvZiBvdXIgZ2VuZXJhbAogICBwcmluY2lwbGUgb2YgdHJ5aW5nIHRvIGF2b2lkIGludm9raW5nIHN1Yi1wcm9jZXNzZXMgd2hlcmV2ZXIgcG9zc2libGUuCiAgIAoyMDAzLTA1LTEyIDIzOjExICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgUm9uIFRhYm9yCiAgIAoyMDAzLTA1LTEyIDIzOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgbmV3IHNubXB0YWJsZSBvcHRpb25zCiAgIAoyMDAzLTA1LTEyIDIzOjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgcGF0Y2ggIzcwMjcxMSBmcm9tIFJvbiBUYWJvcjogQWRkIG5ldyBjb21tYW5kIGxpbmUgZmxhZ3MgdG8gc25tcHRhYmxlIGZvciB2YXJpb3VzIG5ldyBmZWF0dXJlcwogICAKMjAwMy0wNS0xMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jIChWNS0wLXBhdGNoZXMuNSksIHNubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzczNTUxMSBmcm9tIEFsZXggQnVyZ2VyOiBmaXggc25tcHRyYXBkIHRvIGVuc3VyZSB0aGVyZSBhcmUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHZhcmJpbmRzCiAgIAoyMDAzLTA1LTEyIDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMgKFY1LTAtcGF0Y2hlcy4xKSwgcHJveHkuYwo6CgogICBQYXRjaCAjNzM2Nzg0IGZyb20gUm9uIFRhYm9yOiBmaXggcHJveGllcyBmb3IgcmVzdGFydGVkIE5TTVB2MyBzdWItYWdlbnRzCiAgIAoyMDAzLTA1LTA5IDA4OjQ3ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFkZCB2YXJpb3VzIG1pc3NpbmcgZnVuY3Rpb24gbmFtZXMsIHN1cHBsaWVkIGJ5IEFsZXggQnVyZ2VyCiAgIAoyMDAzLTA1LTA5IDA4OjQxICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzIub3B0LCB3aW4zMnNkay5kc3csCiAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgQXBwbHkgTmlrb2xhaSBEZXZlcmVhdXgncyBWQysrIGNsZWFudXAgcGF0Y2ggKCM2OTQ3NjYpCiAgIEl0IGFwcGVhcnMgdG8gd29yayBPSyAtIEkganVzdCBob3BlIHRoZSBsaW5lIHRlcm1pbmF0aW9ucwogICBkb24ndCBzY3JldyB0aGluZ3MgdXAhCiAgIAoyMDAzLTA1LTA4IDE2OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFBhdGNoICM3MzM4ODAgZnJvbSBBbGV4IEJ1cmdlciB0byBmaXggdXNlTnVtZXJpYwogICAKMjAwMy0wNS0wOCAxNjoyMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFBhdGNoICM3MzQ3NzQgZnJvbSBBbmRyZXcgRmluZGxheTogZml4IHRoZSB0ZXN0IGVudmlyb25tZW50IGZvciBzbm1wZCB0byBnaXZlIGl0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG5hbWVzIGZvciBjb25maWd1cmF0aW9uIGZpbGVzIHNpbmNlIHNubXBkIG5vdyBjaGRpcidzIHRvIC8KICAgCjIwMDMtMDUtMDggMTY6MTUgIGhhcmRha2VyCgogICAqIFJFQURNRSAoVjUtMC1wYXRjaGVzLjYpLCBSRUFETUU6CgogICBtZW50aW9uIEFuZHJldyBGaW5kbGF5CiAgIAoyMDAzLTA1LTA4IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQueHMgKFY1LTAtcGF0Y2hlcy4xKSwgYWdlbnQueHM6CgogICAoZXhjZWxsZW50KSBwYXRjaCAjNzA1NTY2IGZyb20gQW5kcmV3IEZpbmRsYXkgb24gcGVybCBhZ2VudCBzdXBwb3J0OgogICAKICAgMSkgQWdlbnQgY2Fubm90IHJldHVybiBNQUMgYWRkcmVzc2VzIGNvbnRhaW5pbmcgemVybyBvY3RldC4KICAgCiAgIDIpIEFnZW50IGNvcmVkdW1wcyB3aGVuIHRyeWluZyB0byByZXR1cm4gSVAgYWRkcmVzc2VzCiAgIGlmIHRoZXNlIGFyZSBzdXBwbGllZCBhcyBkb3R0ZWQtcXVhZCBvciBhcyBhIGhvc3RuYW1lCiAgIHRoYXQgZmFpbHMgdG8gcmVzb2x2ZS4KICAgCiAgIDMpIEFnZW50IGNvcnJ1cHRzIE9JRCB2YWx1ZXMuCiAgIAogICA0KSBBZ2VudCB0cnVuY2F0ZXMgYW55IE9DVEVUX1NUUklORyBvciBCSVRfU1RSSU5HIHRoYXQKICAgY29udGFpbnMgYSB6ZXJvIG9jdGV0ICh0aGlzIGlzIHRoZSByb290IGNhdXNlIG9mICgxKSBhYm92ZSkKICAgCiAgIEFQSSBjaGFuZ2VzIGludHJvZHVjZWQ6CiAgIAogICBhKSBJUCBhZGRyZXNzZXMgbm93IHBhc3NlZCBhcyBiaW5hcnkgc3RyaW5ncyAoNCBvY3RldHMKICAgZm9yIElQdjQpIHJhdGhlciB0aGFuIGRvdHRlZC1xdWFkIG9yIG5hbWUuIFRoaXMKICAgc2lkZXN0ZXBzIHRoZSBJUHY0L0lQdjYgcHJvYmxlbSBhbmQgbGVhdmVzIHRoZSBjYWxsaW5nCiAgIHNjcmlwdCB0byBkZWFsIHdpdGggbmFtZS0+YWRkcmVzcyByZXNvbHV0aW9uIGFuZAogICBhc3NvY2lhdGVkIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMy0wNS0wOCAwOTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAoVjUtMC1wYXRjaGVzLlsxLDEsMSwxLDMsNCwxXSksIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaAosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgcGF0Y2ggIzcxMDI3NSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBjb25zdCBmaXhlcyBmb3IgQVBJcyB0aGF0IGRvbid0IG1vZGlmeSB0aGVpciBhcmd1bWVudHMKICAgCjIwMDMtMDUtMDggMDk6MjggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHN5c3RlbS5oIChWNS0wLXBhdGNoZXMuMSksIHN5c3RlbS5oCjoKCiAgIG1pc3NlZCBhIGNvbW1pdCBmb3IgYSBwZXJsIHBhdGNoCiAgIAoyMDAzLTA1LTA4IDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNS0wLXBhdGNoZXMuMiksIGlwQWRkci5jOgoKICAgQXBwbGllZCBwYXRjaCAjNzEyMTAxOiBtaW5vciBpcml4IGZpeAogICAKMjAwMy0wNS0wOCAwOToxMiAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvUkVBRE1FCiwgU05NUC9TTk1QLnhzLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBwYXRjaCAjNzE1NjAzOiBmaXggcGVybCBtb2R1bGUgYnVpbGRzIHVuZGVyIHdpbmRvd3MKICAgCjIwMDMtMDUtMDggMDg6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYXBwbHkgcGF0Y2ggWyA3MjQ5MjcgXSB0byBmaXggbG9nIG1zZzsgYWRkIFxuIHRvIGxvZyBtc2dzCiAgIAoyMDAzLTA1LTA4IDA4OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBjaGcgTkVUX1NOTVBfVVNFX0FTU0VSVCBkZWZpbmUgdG8gTkVUU05NUF9VU0VfQVNTRVJUIHRvIGJlIGNvbnNpc3RlbnQKICAgCjIwMDMtMDUtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbW92ZSBpbiBhZ2VudHggZG9jdW1lbnRhdGlvbiBzb21lb25lIG9ubHkgYWRkZWQgdG8gdGhlIHBhdGNoZXMgYnJhbmNoIChiYWQgc29tZW9uZSkKICAgCjIwMDMtMDUtMDUgMTU6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgKFY1LTAtcGF0Y2hlcy40KSwgc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGFnZW50eFBpbmdJbnRlcnZhbAogICAKMjAwMy0wNC0yOSAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBSZWFsbHkgZml4IHNvbGFyaXMgYnkgcmVtb3Zpbmcgc3VwcG9ydCBmb3IgdGhlIGNpZHIgdGFibGUgZnVuY3Rpb24uCiAgIAoyMDAzLTA0LTI5IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jLCB2YXJfcm91dGUuaDoKCiAgIGF0dGVtcHQgdG8gZml4IHNvbGFyaXMgYnkgcmVtb3Zpbmcgc3VwcG9ydCBmb3IgdGhlIGNpZHIgdGFibGUgZnVuY3Rpb24uCiAgIAoyMDAzLTA0LTI5IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIExpbnV4IE11bHRpLUNQVSBkZXRlY3Rpb24gKGhvcGVmdWxseSEpLgogICBEb25lIGF0IGluaXRpYWxpc2F0aW9uLCBzbyB3b24ndCBkZXRlY3QgY2hhbmdlcyBkdXJpbmcgcnVuIHRpbWUuCiAgIChwcm9iYWJseSBmYWlybHkgdW5saWtlbHkhKS4KICAgQWxzbyBjaGFuZ2VzIGRldmljZSBpbmRleCB2YWx1ZSBmb3Igc2luZ2xlIENQVSBkZXZpY2Ugb24gb3RoZXIgYXJjaHMuCiAgIAoyMDAzLTA0LTI5IDAxOjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEZpcnN0IGRyYWZ0IG9mIExpbnV4IENQVSBkZXRlY3Rpb24gKHN0aWxsIG9ubHkgc3VwcG9ydHMgb25lIENQVSkuCiAgIAoyMDAzLTA0LTI5IDAxOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfcHJvYy5jLCBocl9vdGhlci5jOgoKICAgQ29uc29saWRhdGUgYWxsIGhyUHJvY2Vzc29yVGFibGUgaW1wbGVtZW50YXRpb24gaW50byBvbmUgcGxhY2UuCiAgIChCYXNpY2FsbHkganVzdCBtb3ZpbmcgY29kZSBmcm9tIGhyX290aGVyLmMgdG8gaHJfcHJvYy5jKQogICAKMjAwMy0wNC0yOCAyMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gZG94eWdlbiBkb2N1bWVudGF0aW9uIGZvciBldmVyeXRoaW5nIChnYXNwKQogICAtIFN1cHBvcnQgZm9yIHNhdmluZy9yZXN0b3Jpbmcgb2YgZW50aXJlIGRhdGFfbGlzdHMuCiAgIAoyMDAzLTA0LTI4IDIzOjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgbWFrZSBkb2NzLgogICAKMjAwMy0wNC0yOCAyMzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oOgoKICAgYWRkZWQgcHJvdG90eXBlcyBmb3Igc2F2ZS9yZXN0b3JlIG9mIGRhdGEgbGlzdHMuCiAgIAoyMDAzLTA0LTI4IDIzOjM2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgcHV0IGRhdGFfbGlzdC5oIGJlbG93IGNhbGxiYWNrLmgKICAgCjIwMDMtMDQtMjggMjM6MzUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBzbm1wdHJhcGQgLXQgYW5kIGRpc2tpbyBvbiBsaW51eAogICAKMjAwMy0wNC0yNSAxMToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgb3BwcwogICAKMjAwMy0wNC0yNSAwODowMSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBGaXggdHlwbyBpbiAnV3JpdGVPbmx5JyAoc2VlIGJ1ZyAjNzExMzI0KQogICAKMjAwMy0wNC0yNSAwNzoxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkZWQgcGVvcGxlCiAgIAoyMDAzLTA0LTI1IDA3OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvY3VtZW50IGRpc2tpbyBzdXBwb3J0IGZvciBsaW51eAogICAKMjAwMy0wNC0yNSAwNzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjNzEyMjU5IGZyb20gSmFtZXMgS25pdHRlcjogZGlza2lvIHN1cHBvcnQgZm9yIGxpbnV4CiAgIAoyMDAzLTA0LTI1IDA3OjAyICBoYXJkYWtlcgoKICAgKiBtYW4vcmVhZF9jb25maWcuMy5kZWY6CgogICBwYXRjaCAjNzEwNjg3OiBmaXggZm9ybWF0dGluZyBidWcKICAgCjIwMDMtMDQtMjUgMDY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1Lmg6CgogICBwYXRjaCAjNzAyMzUxIGZyb20gSmFtZXMgSXJ3aW46IGEgbmV3IGdldEtzdGF0U3RyaW5nKCkgZnVuY3Rpb24uCiAgIAoyMDAzLTA0LTI1IDA2OjAwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gdGhlIC1lIEVOR0lORUlEIGZsYWcgZm9yIGNyZWF0ZVVzZXIuCiAgICAgLSBwb2ludGVkIG91dCBieSBEYW5hIENvb2sKICAgCjIwMDMtMDQtMjQgMDg6MTkgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdXNtLmMsIHNubXB2YWNtLmM6CgogICBGaXggYSB0eXBvIGluIG91dHB1dCBtZXNzYWdlcy4gIChTZWUgQnVnICM3MjY5NDMpCiAgIAoyMDAzLTA0LTI0IDA2OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgUmVwb3J0IGJhY2sgZmFpbHVyZXMgaW4gbmV0c25tcF9jYWxsYmFja19jbG9zZSBjb3JyZWN0bHkuCiAgIFBhdGNoICM3MjQ5MjggYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNC0yMyAwNzozOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFBhdGNoICM3MjUxNDEgYnkgUGV0ZXIgV2FyYXNpbjogRml4IHNlZ21lbnRhdGlvbiBmYXVsdCBvbiBzbm1wdGFibGUKICAgCjIwMDMtMDQtMjMgMDY6NTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBjb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXB1c20uYzoKCiAgIFBhdGNoICM3MjQ5MTMgYnkgUGV0ZXIgV2FyYXNpbiAtIHJlbW92ZXMgMiBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMy0wNC0yMyAwNjo0NiAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBTdWJzdGl0dXRlIHN5c2NvbmZkaXIgY29ycmVjdGx5IHdoZW4gYnVpbGRpbmcgc2Vkc2NyaXB0LgogICBQYXRjaCAjNzEwNjg5IGJ5IFBldGVyIEJyZWl0ZW5sb2huZXIKICAgCjIwMDMtMDQtMjMgMDY6MzEgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBtYW4vTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGhlYWRlciBmaWxlcyBhbmQgbWFuIHBhZ2VzIHdpdGggYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgIEZyb20gcGF0Y2ggIzcxMDY4NSBieSBQZXRlciBCcmVpdGVubG9obmVyCiAgIAoyMDAzLTA0LTIzIDA2OjIyICBkdHMxMgoKICAgKiBGQVE6CgogICBGaXggcmVmZXJlbmNlcyB0byBpbmNvcnJlY3QgQVBJIGNhbGxzCiAgIAoyMDAzLTA0LTIzIDAzOjA2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEFkZCBhbiBleHBsaWNpdCBleGFtcGxlIGZvciBjb20yc2VjIGFkZHJlc3MgbWFza2luZywgYXMgc3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDMtMDQtMjIgMDY6NDggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlc3RvcmUgdGhlIG9yaWdpbmFsIGRlYnVnIGluZGVudGF0aW9uIGxldmVsIHdoZW4gZHVtcGluZyBhbiBTTk1QdjEvdjJjCiAgIHJlcXVlc3QgUERVLiAgIFJlcG9ydGVkIGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDQtMTcgMDc6MjMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByb3BhZ2F0ZSBlcnJvciBzdGF0dXMgdmFsdWVzIGJhY2sgdXAgdG8gdGhlIG1haW4gYWdlbnQgcHJvY2Vzc2luZwogICAoc28gdGhhdCBlLmcuIGZhaWxlZCBTTk1QdjIgc2V0IHJlcXVlc3RzIHVzaW5nIGEgcmVhZC1vbmx5IGNvbW11bml0eQogICAgcmVwb3J0IGEgZmFpbHVyZSwgcmF0aGVyIHRoYW4gYXBwZWFyaW5nIHRvIHN1Y2NlZWQhKQogICAKMjAwMy0wNC0xNiAwNjozNyAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1NSUIudHh0OgoKICAgRGVmaW5lIGEgInByaXZhdGUgZXhwZXJpbWVudGF0aW9uIiBhcmVhIG9mIHRoZSBPSUQgdHJlZSwKICAgZm9yIHRob3NlIHdobyB3aXNoIHRvIGhhdmUgYSBwbGF5IHdpdGggdGhpbmdzLCBhbmQgZG9uJ3QKICAgeWV0IGhhdmUgYW4gZW50ZXJwcmlzZSBPSUQgb2YgdGhlaXIgb3duLgogICAKICAgU2VlIHRoZSBuZXQtc25tcC11c2VycyB0aHJlYWQgJ09JRCByZWdpc3RyYXRpb24nLCBmcm9tIE1hcmNoL0FwcmlsIDIwMDMuCiAgIAoyMDAzLTA0LTE2IDA2OjMyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFR3YWVrIHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgdG8gYmUgYmFyZSB0aGUgc3VmZml4IGZvcm0KICAgKGFzIGV4cGVjdGVkIGJ5IFNOTVA6Ok9JRCB0ZXN0IGhhcm5lc3MpLgogICBXZSBzaG91bGQgcHJvYmFibHkgZGVmYXVsdCB0byBNSUI6OnZhcmlhYmxlIGZvcm0sIHRvIG1hdGNoCiAgIHRoZSBDIGxpYnJhcnksIGFuZCBwcm92aWRlIGEgZmxhZyBmb3IgdGhlIGJhcmUgc3VmZml4LgogICAKMjAwMy0wNC0xNiAwMjo0NiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggaGFuZGxpbmcgb2YgJ1VzZU51bWVyaWMnIGFuZCAnVXNlTG9uZ05hbWVzJyBmb3IgZ2V0L2dldG5leHQvZ2V0YnVsayBtZXRob2RzLgogICAKICAgRml4aW5nICdnZXRuZXh0Jy8nZ2V0YnVsaycgbW9zdGx5IGludm9sdmVkIHVwZGF0aW5nIHRoZSBjb25zb2xpZGF0ZWQKICAgTkVUU05NUF9EU19MSUJfT0lEX09VVFBVVF9GT1JNQVQnIHNldHRpbmcsIHJhdGhlciB0aGFuIHRoZSBpbmRpdmlkdWFsIGJvb2xlYW5zLgogICBGaXhpbmcgJ2dldCcgcmVxdWlyZWQgbW9yZSBzaWduaWZpY2FudCBjaGFuZ2VzIHRvIHRoZSBvdXRwdXQgY29kZSwgc28gSSBzaW1wbHkKICAgY29waWVkIHRoZSAnZ2V0bmV4dCcgcm91dGluZSBlbi1tYXNzZSwgYW5kIHR3ZWFrZWQgaXQgYXBwcm9wcmlhdGVseS4KICAgVGhlcmUgaXMgYSBsYXJnZSBhbW91bnQgb2Ygb3ZlcmxhcCBiZXR3ZWVuIHRoZXNlIHRocmVlIHJvdXRpbmVzLCBhbmQgaXQgbWlnaHQKICAgYmUgd29ydGggbG9va2luZyBhdCBjb25zb2xpZGF0aW5nIHRoZSBjb21tb24gY29kZSBpbiBzb21lIHdheS4KICAgCjIwMDMtMDQtMTYgMDI6NDIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54cwo6CgogICBBcHBseSBBbGV4IEJ1cmdlcidzIHBlcmwgJ3RyYW5zbGF0ZU9iaicgaGFuZGxpbmcgcGF0Y2ggKCM3MjIwNzUpCiAgIAoyMDAzLTA0LTE1IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCBmcm9tIEtpcmlsbCBTZW1lbmtvdiBmb3Igb25lIG1vcmUgZml4IHRvIGxpbnV4IGludGVyZmFjZSBzcGVlZAogICBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wNC0xMCAwODoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suYywgaHJfZGlzay5oLAogICBocl9wYXJ0aXRpb24uYzoKCiAgIEZpeCBoYW5kbGluZyBvZiBoclBhcnRpdGlvblRhYmxlLCBicm9rZW4gZHVyaW5nCiAgIFRoZSBHcmVhdCBTVVNFICdwcmludGYnIEh1bnQuCiAgIFRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgZm9yIHRoaXMgcGF0Y2guCiAgIAoyMDAzLTA0LTA5IDAxOjUyICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBJbXBvcnQgU25tcEFkbWluU3RyaW5nLCBhcyBzdWdnZXN0ZWQgYnkgVmFkaW0gVGFyYXNzb3YuCiAgIAoyMDAzLTA0LTA4IDA3OjU3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIEZpeCB0aGUgZXJyb3IgY29kZSB1c2VkIGZvciB1bmF2YWlsYWJsZSByZXNvdXJjZXMuCiAgIFNwb3R0ZWQgYnkgY2hpY2hpZW4uCiAgIAoyMDAzLTA0LTAyIDA5OjIzICBzcmFkbWFuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGltcHJvdmUgbG1TZW5zb3JzIHN1cHBvcnQKICAgLSBjaGVjayBmb3IgaGVhZGVycwogICAtIGNoZWNrIGZvciBsaWJzCiAgIAoyMDAzLTA0LTAyIDA2OjMxICBzcmFkbWFuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oOgoKICAgYWRkIExNLVNFTlNPUlMtTUlCIHdoZW4gbW9kdWxlIGlzIGluY2x1ZGVkCiAgIAoyMDAzLTAzLTI4IDA2OjQ4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUua3JiNSAoVjUtMC1wYXRjaGVzLjEpLCBSRUFETUUua3JiNToKCiAgIEtlbiBIb3Juc3RlaW4gbm90ZWQgdGhhdCB0aGUgcnd1c2VyIC1zIGZsYWcgd2FzIG1pc3NpbmcgaXQncyBhcmd1bWVudAogICAKMjAwMy0wMy0yOCAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBrc20uYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wa3NtLmM6CgogICBQYXRjaCBmcm9tIEtlbiBmb3IgbWlzYyBrcmI1IGZpeGVzIChlbmNyeXB0aW9uIHR5cGVzLCBOZXcgY3J5cHRvIHN1cHBvcnQsLi4uCiAgIAoyMDAzLTAzLTIwIDExOjE4ICBzcmFkbWFuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBidWcgIzY3MjQ2NDogaWZBZG1pblN0YXR1cyBtdXN0IGNoYW5nZSB0byBkb3duCiAgIC0gaWZBZG1pblN0YXR1cyB1cCBpZiBpbnRlcmZhY2UgaXMgVVAKICAgLSBpZk9wZXJTdGF0dXMgdXAgaWYgaW50ZXJmYWNlIGlzIFVQIGFuZCBSVU5OSU5HCiAgIC0gYWRkZWQgc3VwcG9ydCBmb3IgdGhlICJsaW5rX3VwIiBrc3RhdAogICAtIGFkZGVkIENhc3NpbmkgR2lnYWJpdC1FdGhlcm5ldCAoY2UpIHN1cHBvcnQKICAgCjIwMDMtMDMtMTkgMTE6NDUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSB0cmFpbGluZyBcIGZyb20gbGFzdCBsaW5lIG9mIHBlcmwgcnVsZXMKICAgCjIwMDMtMDMtMTMgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNS0wLXBhdGNoZXMuMSksIHNubXBfYWdlbnQuYzoKCiAgIHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4gdG8gZml4IHNvbWUgQWdlbnRYIChtb3N0bHkpIG1lbW9yeSBsZWFrcwogICAKMjAwMy0wMy0xMiAxMDozOSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluIChWNS0wLXBhdGNoZXMuMyksIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHBhdGNoICM2OTkzODA6IEZyb20gQ2hyaXN0b3BoZSBLYWx0OiBtYWtlIG5ldC1zbm1wLWNvbmZpZyBkbyB3aGF0IGl0J3MgZG9jdW1lbnQgdG8gZG8gKGFkZCAtTEBsaWJkaXJAKQogICAKMjAwMy0wMy0xMiAwODo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY1LTAtcGF0Y2hlcy4zKSwgc25tcF9hcGkuYzoKCiAgIHBhdGNoICM3MDA2NzI6IHJlc2V0IGl0bXAgdG8gdGhlIG5ldyB2YWx1ZSBsZW5ndGggYWZ0ZXIgZGVjb2RpbmcgYSBoZXggc3RyaW5nCiAgIAoyMDAzLTAzLTEyIDA4OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJldHVybiBpbmRleGVzIGZvciBhdWdtZW50ZWQgdGFibGVzCiAgIAoyMDAzLTAzLTEyIDA4OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgUkVBRE1FOgoKICAgUGF0Y2ggIzcwMTM5ODogY29tMnNlY3VuaXggdG9rZW4gZnJvbSBYaWFvZmVuZyBMaW5nIGZvciB1bml4IHNvY2tldHMKICAgCjIwMDMtMDMtMTIgMDc6NTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSRUFETUUsIFJVTlRFU1RTOgoKICAgdXBkYXRlIHRvIHJlYWwgd29ybGQgYW5kIGFkZCBiZXR0ZXIgLWggb3V0cHV0CiAgIAoyMDAzLTAzLTEwIDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBhdHRlbXB0IHRvIGNvcnJlY3QgZm9yIGR5bmFtaWMgbG9hZGluZyBvZiBhIG9sZGVyIG9wZW5zc2wgbGlicmFyeSwgd2hpY2ggaXMgY29tbW9uIGlmIHlvdSBoYXZlIHRoZSBtb2Rfc3NsIHJwbSBpbnN0YWxsZWQgYW5kIGEgbmV3ZXIgbGliY3J5cHRvIGxpYnJhcnkgYXQgdGhlIHNhbWUgdGltZQogICAKMjAwMy0wMy0xMCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgYXR0ZW1wdCB0byBmaXggdGhlIG9wZW5zc2wgZnJlZSBidWcgZm9yIHRoZSBsYXN0IHRpbWUKICAgCjIwMDMtMDMtMDUgMjI6NDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUgKFY1LTAtcGF0Y2hlcy4yKSwgY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCiAgIAoyMDAzLTAzLTA1IDIyOjM2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IGZvciBsaWJ3cmFwIHcvbnNsCiAgIAoyMDAzLTAzLTA0IDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IG5zTW9kdWxlVGFibGUuYyAoVjUtMC1wYXRjaGVzLjEpLAogICBuc01vZHVsZVRhYmxlLmM6CgogICB3cm9uZyB0eXBlIHJldHVybmVkIGZvciBuc01vZHVsZU1vZGVzIGFzIHJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbQogICAKMjAwMy0wMy0wNCAwMTo1NCAgZHRzMTIKCiAgICogSU5TVEFMTDoKCiAgIE1lbnRpb24gdGhlIG5lZWQgdG8gY29uZmlndXJlIHRoZSBhZ2VudC4KICAgCjIwMDMtMDMtMDEgMDc6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBzdWJhZ2VudC5jIChWNS0wLXBhdGNoZXMuMSksIHN1YmFnZW50LmMKOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGJldHRlciBlcnJvciBjaGVja2luZwogICAKMjAwMy0wMy0wMSAwNjo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jIChWNS0wLXBhdGNoZXMuMSksIG1hc3Rlci5jCjoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBkb24ndCBjcmVhdGUgZGVsZWdhdGVkIGNhY2hlIGZvciBDTEVBTlVQU0VUCiAgIAoyMDAzLTAyLTI4IDIwOjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCAoVjUtMC1wYXRjaGVzLjMpLCBNYWtlZmlsZS5QTDoKCiAgIHR5cG8KICAgCjIwMDMtMDItMjggMjA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBQYXRjaCAjNTUxOTA5IGZyb20gR2FyeSBFZHdhcmRzOiBkZXRlY3Qgem9tYmllIHByb2Nlc3NlcyBhbmQgcHJldmVudAogICB0aGVtIGZyb20gYmVpbmcgY291bnRlZCBhcyB2YWxpZCB1c2Vycy4KICAgCjIwMDMtMDItMjggMjA6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMIChWNS0wLXBhdGNoZXMuMiksIE1ha2VmaWxlLlBMOgoKICAgUGF0Y2ggIzU5NzYyOSBmcm9tIE1hdHQgU2Vsc2t5IHRvIGZpeCBtYW4gcGFnZSBpbnN0YWxsYXRpb24KICAgCjIwMDMtMDItMjggMjA6MDIgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC86IERFVkVOViwgZWxmZGVwZW5kLnNoLAogICBuZXQtc25tcC01LjAuNi1idWlsZDoKCiAgIHBhdGNoICM2NTQ1ODEgZnJvbSBTdGVmYW4gUmFkbWFuOiBTb2xhcmlzIFBhY2thZ2luZyBidWlsZCBzY3JpcHRzCiAgIAoyMDAzLTAyLTI4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzY5NTMxMiBmcm9tIEFsZXggQnVyZ2VyOiBhZGQgLXQgc3dpdGNoIHRvIGRpc2FibGUgc3lzbG9nLgogICAKMjAwMy0wMi0yOCAxOTozOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIGRvY3VtZW50IC10CiAgIAoyMDAzLTAyLTI4IDAyOjA4ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBTaW1wbGUgcGF0Y2ggdG8gY2F0Y2ggcmUtZGVjbGFyYXRpb25zIG9mIHRoZSAidG9wLWxldmVsIiBvYmplY3RzLgogICBTdXBwbGllZCBieSBTZWFuIEJ1cmtlCiAgIAoyMDAzLTAyLTI4IDAxOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBSZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWVzIGZvciBpcHY2Rm9yd2FyZGluZy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgWWl4aW9uZyBab3UgKEJ1ZyAjNjk0NzQ1KQogICAKMjAwMy0wMi0yNiAyMTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGRlZmF1bHQgb2N0ZXQgc3RyaW5ncyB0byB1bnNpZ25lZCBjaGFyIGFycmF5czsgZml4IGV4YW1wbGU7IGZpeCBsb2dpYyBvZgogICBjb25kaXRpb25hbDsgbWFrZSBjb2RlIHJlZmVyZW5jaW5nIGNhbl8oZGUpYWN0aXZhdGUgY29uZGl0aW9uYWwgd2l0aCBzYW1lIGxvZ2ljCiAgIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGZ1bmN0aW9ucyB0aGVtc2VsdmVzCiAgIAoyMDAzLTAyLTI2IDEwOjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdmFjbWNvbmZpZywgU3ZhY21jb25maWcsCiAgIFQxMzBzbm1wdjF2YWNtZ2V0LCBUMTMxc25tcHYyY3ZhY21nZXQsCiAgIFQxMzJzbm1wdjN2YWNtZ2V0LCBUMTQwc25tcHYxdmFjbWdldGZhaWwsCiAgIFQxNDFzbm1wdjJjdmFjbWdldGZhaWwsIFQxNDJzbm1wdjN2YWNtZ2V0ZmFpbDoKCiAgIFBhdGNoICM2ODc4MzcgZnJvbSBYaWFvZmVuZyBMaW5nIGZvciBWQUNNIHRlc3QgY2FzZXMKICAgCjIwMDMtMDItMjYgMTA6MTkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIFJFQURNRSwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgcGF0Y2ggIzY5MDM1MyBmcm9tIEtldmluIEdyYWhhbTogcG9ydCB0byBUcnU2NCB2NSAvIG9zZjUKICAgCjIwMDMtMDItMjYgMTA6MTAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggIzY5MjgzNCBmcm9tIERhdmlkIFZyYWJlbDogYWRkIC0td2l0aG91dC1ycG0gZm9yIGRpc2FibGluZyBycG0gY2hlY2tzCiAgIAoyMDAzLTAyLTI2IDA4OjI4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBPb3BzIC0gbWlzc2VkIHRoZSBkZWZpbml0aW9uIG9mICdJTlNUQUxMX0RBVEEnIGZyb20gUGV0ZXIncyBvcmlnaW5hbCBwYXRjaC4KICAgU29ycnkhCiAgIAoyMDAzLTAyLTI2IDA3OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBUaGFua3MgdG8gU3Jpa2FudGggUGluZGlwcm9saQogICAKMjAwMy0wMi0yNiAwNzoxMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICB1cGRhdGUgdG8gcGF0Y2ggIzY1NTQ0NDogZG9jdW1lbnQgaW5jbHVkZUFsbERpc2tzIGZyb20gU3Jpa2FudGggUGluZGlwcm9saQogICAKMjAwMy0wMi0yNiAwNDo0NSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU3RvbXAgb24gdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiBjb25maWcgbGluZXMuCiAgIFRoaXMgYWxsb3dzIHRva2VuIGNvbXBhcmlzb25zIHRvIHdvcmsgYXMgZXhwZWN0ZWQuCiAgIChTZWUgYnVnICM2OTA3NzApCiAgIAoyMDAzLTAyLTI2IDA0OjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGdldG9wdCBoYW5kbGluZyBvZiAtUyAoc2VlIGJ1ZyAjNjkzMTY3KQogICAKMjAwMy0wMi0yNSAxMTo0NiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICBkb24ndCB0cnkgYW5kIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyIGlmIG5vdCBpbnN0YWxsZWQKICAgCjIwMDMtMDItMjUgMDY6NDggIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIG5ldC1zbm1wLWNvbmZpZyBwYXRjaCAoIzY5MjM3MykKICAgCjIwMDMtMDItMjUgMDY6NDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBSZWNvZ25pc2UgImRlZlZlcnNpb24gdjMiIGFzIHdlbGwgYXMgImRlZlZlcnNpb24gMyIgYXMgZG9jdW1lbnRlZAogICBpbiB0aGUgbWFuIHBhZ2VzIChwcmlvciB0byBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29ycmVjdGlvbikKICAgW1dlIG1pZ2h0IGFzIHdlbGwgc3VwcG9ydCBib3RoIHN0eWxlcy4uLi5dCiAgIAoyMDAzLTAyLTI1IDA2OjA2ICBkdHMxMgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZgosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wY21kLjEuZGVmLAogICBzbm1wY29uZi4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjguZGVmCiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDA2OjA0ICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNlZHNjcmlwdC5pbiwKICAgbG9jYWwvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbgosIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLjguZGVmOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvbmZpZ3VyYXRpb24tcmVsYXRlZCBkb2N1bWVudGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gY2hhbmdlcy4KICAgKHBhdGNoZXMgIzY5MjM3MiwgIDY5MjM3NywgIDY5MjM3OSBhbmQgNjkyMzg2KQogICAKMjAwMy0wMi0yNSAwNToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oOgoKICAgTGlzdCAiZml4ZWQgdHlwZSIgc3RvcmFnZSBlbnRyaWVzIGZpcnN0LCBzbyB0aGF0IHRoZXJlIGlzbid0IGFuCiAgIGFyYml0cmFyeSBsaW1pdCBvZiAxMDAgZGlzay1iYXNlZCBzdG9yYWdlIGVudHJpZXMuCiAgIAoyMDAzLTAyLTI1IDA1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgSGFuZGxlIHVzZXIvZ3JvdXAgbmFtZXMgd2hlbiBzZXR0aW5nIEFnZW50WCBzb2NrZXQgb3duZXJzaGlwLgogICAKMjAwMy0wMi0yNSAwMzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBQcmVsaW1pbmFyeSBwYXRjaCB0byBzdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2YgQWdlbnRYIHNvY2tldCBwZXJtaXNzaW9ucy4KICAgCiAgIFBlcnNvbmFsbHksIEknbSBub3QgY29udmluY2VkIHRoYXQgdGhpcyBpcyByZWFkeSBmb3IgY29tbWl0dGluZyB0byB0aGUKICAgQ1ZTIHRyZWUgeWV0LCBidXQgTXkgTWFzdGVyIEhhcyBTcG9rZW4sIGFuZCBJIE11c3QgT2JleS4uLi4uLi4KICAgCjIwMDMtMDItMjEgMjA6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBDaWRyUm91dGVUYWJsZS5jLAogICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsCiAgIGlwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmgsIGlwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuYywKICAgaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5oLCBpcENpZHJSb3V0ZVRhYmxlX2NvbHVtbnMuaAosIGlwQ2lkclJvdXRlVGFibGVfZW51bXMuaDoKCiAgIEEgYmVnaW5uaW5nIGltcGxlbWVudGF0aW9uIG9mIHRoZSBJUC1GT1JXQVJELU1JQjo6aXBDaWRyUm91dGVUYWJsZS4KICAgICAtIHRoaXMgdGFibGUgaXMgYSByZXBsYWNlbWVudCBmb3IgdGhlIG9ic29sZXRlIGlwUm91dGVUYWJsZSwgd2hpY2gKICAgICAgIGlzbid0IGV2ZW4gaW1wbGVtZW50ZWQgYnkgbW9zdCB2ZW5kb3JzIGFueSBtb3JlLgogICAgIC0gbm90IGNvbXBsZXRlLiAgV3JpdGUgc3VwcG9ydCBub3QgaW1wbGVtZW50ZWQgeWV0LiAgUmVhZC1zdXBwb3J0CiAgICAgICB3b3JraW5nIHRob3VnaC4KICAgICAtIFNob3VsZCB3b3JrIG9uIGV2ZXJ5dGhpbmcgYnV0IGhwdXgxMT8gIHRlc3RpbmcgbmVlZGVkLgogICAgIC0gdGhpcyBpcyBhbm90aGVyIGV4YW1wbGUgb2YgYSB0YWJsZV9pdGVyYXRvciBhcHBsaWNhdGlvbiAoZGlmZmVyZW50CiAgICAgICB0aGFuIHRoZSByZXN0IHVzaW5nIGFjY2Vzc29ycykuCiAgIAoyMDAzLTAyLTIxIDIwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHJvdXRlX2hlYWRlcnMuaCwgdmFyX3JvdXRlLmM6CgogICBtb3ZlZCBoZWFkZXJzIHRvIGEgc2VwYXJhdGUgZmlsZSB1c2FibGUgYnkgb3RoZXIgbW9kdWxlcy4KICAgZXhwb3J0ZWQgdGhlIGNvbGxlY3RlZCByb3V0ZSB0YWJsZS4KICAgCjIwMDMtMDItMjEgMjA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgbW92ZWQgaGVhZGVycyB0byBhIHNlcGFyYXRlIGZpbGUgdXNhYmxlIGJ5IG90aGVyIG1vZHVsZXMKICAgCjIwMDMtMDItMjEgMjA6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBBbiBhbHRlcm5hdGUgdGFibGVfaXRlcmF0b3IgLmNvbmYgZmlsZSAodGhhdCBtYXkgZXZlbnR1YWxseSBiZWNvbWUgdGhlCiAgIGRlZmF1bHQpLiAgVGhpcyBvbmUgdXNlcyBhY2Nlc3NvciBmdW5jdGlvbnMgdG8gZ2V0L3NldCBkYXRhIGFuZCBzaG91bGQKICAgdGFrZSBjYXJlIG9mIG1vc3Qgb3RoZXIgU05NUCBzcGVjaWZpYyBzdHVmZiBmb3IgeW91LiAgTm90IGNvbXBsZXRlLAogICBhbmQgYSBnb29kIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvZGUgcmVwZXRpdGlvbiB3aWxsIGxpa2VseSBtb3ZlIGludG8KICAgYW5vdGhlciBzdWItaXRlcmF0b3IgaGFuZGxlciBpbiB0aGUgZnV0dXJlLiAgVGhlIGlwQ2lkclJvdXRlVGFibGUgaXMKICAgYW4gZXhhbXBsZSBvZiB0aGlzIG91dHB1dC4KICAgCjIwMDMtMDItMjEgMjA6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIC0gY29tbWVudCBhZGRpdGlvbnMgYW5kIGNsZWFudXBzLgogICAtIHB1dCB0aGUgZnJlZS9ldGMgZnVuY3Rpb24gcG9pbnRlcnMgaW4gYW4gI2lmZGVmIGNsYXVzZQogICAKMjAwMy0wMi0yMSAyMDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29sdW1uX2VudW1zLmNvbmY6CgogICBjb21tZW50IG1vdmUgZm9yIGJldHRlciBmb3JtYXR0aW5nLgogICAKMjAwMy0wMi0yMSAyMDowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICAtIGdlbmVyYXRlIGFuZCB1c2UgdGhlIGVudW1zIGhlYWRlciBmaWxlLgogICAtIGdlbmVyYXRlIGEgLmggZmlsZS4KICAgLSBtaXNjIGZpeGVzLgogICAKMjAwMy0wMi0yMSAyMDowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgQSAuY29uZiBmaWxlIHRvIGdlbmVyYXRlIGdldF8vc2V0XyBhY2Nlc3MgZnVuY3Rpb25zIGZvciBlYWNoIGNvbHVtbi4KICAgICAtIGl0ZXJhdG9yIHNwZWNpZmljLgogICAKMjAwMy0wMi0yMSAyMDowNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGVudW0gZml4LgogICAtIGRvbid0IHNvdXJjZSAocnVuKSAuY29uZiBmaWxlcyB0d2ljZS4KICAgCjIwMDMtMDItMjEgMjA6MDYgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgLSBkb3h5Z2VuIHVwZGF0ZS4KICAgLSBpbmNsdWRlcyBuZXcgbmV0c25tcF9vaWRfc3Rhc2ggbWFuIHBhZ2UuCiAgIAoyMDAzLTAyLTIxIDIwOjA2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgLSBkb3h5Z2VuIGNvbW1lbnQgZXZlcnl0aGluZwogICAtIHN0YXJ0ZWQgKG5vdCBjb21wbGV0ZSkgYSBnZXRuZXh0IGZ1bmN0aW9uLgogICAtIGltcGxlbWVudGVkIGEgImZyZWUgdGhlIHRyZWUiIGZ1bmN0aW9uLgogICAKMjAwMy0wMi0yMSAyMDowNCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGFkZGVkIGF1dG9tNHRlLmNhY2hlCiAgIAoyMDAzLTAyLTIxIDIwOjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCB0aGUgaW5jbHVkZSBkaXJlY3RvcnkgdG8gdGhlIG1vZHVsZSBlZ3JlcCBjcHAgLUkgbGlzdC4KICAgCjIwMDMtMDItMjEgMDE6NTAgIGR0czEyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgSFRNTC1lc2NhcGUgJzwnIGFuZCAnPicgY2hhcmFjdGVycyBpbiBGQVEgZW50cmllcwogICAKMjAwMy0wMi0yMCAwODoxNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBVc2UgJ25ldHNubXBfcmVnaXN0ZXJfc2NhbGFyJyBpbnN0ZWFkIG9mICduZXRzbm1wX3JlZ2lzdGVyX2luc3RhbmNlJwogICBmb3IgaGFuZGxpbmcgc2NhbGFyIG9iamVjdHMuCiAgIAoyMDAzLTAyLTE5IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcGF0Y2ggIzY1NzgwODogY2FsY3VsYXRlIGEgcHJvcGVyIGlmU3BlZWQgdW5kZXIgbGludXggd2hlbiBwb3NzaWJsZQogICBhbmQgZG8gbW9yZSBwcm9wZXIgaWZPcGVyU3RhdHVzIHN0YXRlIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTAyLTE5IDIxOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBwYXRjaCAjNjU3ODA4OiBjYWxjdWxhdGUgYSBwcm9wZXIgaWZTcGVlZCB1bmRlciBsaW51eCB3aGVuIHBvc3NpYmxlCiAgIGFuZCBkbyBtb3JlIHByb3BlciBpZk9wZXJTdGF0dXMgc3RhdGUgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDItMTkgMTY6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgdG9wIGxldmVsIGRveHlnZW4gd2ViIHBhZ2UgdGV4dAogICAKMjAwMy0wMi0xOSAxNjo1MiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vbGRfYXBpLjMKLCBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NldF9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgZG94eWdlbiB1cGRhdGUuCiAgIAoyMDAzLTAyLTE5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBydW4gdGhlIGNvbHVtbl9lbnVtIGFuZCBjb2x1bW5fZGVmaW5lIC5jb25mIGZpbGVzIGFuZCBpbmNsdWRlIHRob3NlIGhlYWRlcnMuCiAgIAoyMDAzLTAyLTE5IDE2OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEFkZCBhIEBydW5AIHRhZyB0byBydW4gb3RoZXIgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIHRoZQogICBjdXJyZW50IG9uZS4KICAgCjIwMDMtMDItMTkgMTY6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgbW9yZSAoYmFkKSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaXRlcmF0b3IgKGdhc3ApCiAgIAoyMDAzLTAyLTE5IDE2OjUwICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBhZGQgaW5jbHVkZSBkaXJlY3RvcmllcyBmb3IgcHJvY2Vzc2luZy4KICAgCjIwMDMtMDItMTkgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgcmVtb3ZlIG9sZCB1bnVzZWQgY29tbWVudC4KICAgCjIwMDMtMDItMTkgMTM6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIGNvbnZlcnRlZCBhIGJ1bmNoIG9mIG5vbi1kb3h5Z2VuIGRvY3MgdG8gZG94eWdlbiBkb2NzLgogICAKMjAwMy0wMi0xOSAxMzowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBkb3h5Z2VuaXplIGEgZmV3IGRlZmluZXMuCiAgIAoyMDAzLTAyLTE4IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gY29uZmlndXJlCiAgIAoyMDAzLTAyLTE3IDExOjIwICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIHNtdXggdG8gbGlzdCBvZiBtb2R1bGVzIGZvciBkaXN0cmlidXRpb247IG1vdmUgdGVzdCBmb3IgbWFrZSBpbnNpZGUgb2YKICAgbnNiLW1ha2U7IGFkZCBibGFuayBsaW5lIGFib3ZlIEFCT1JUOyByZW1vdmUgdGVlIHRvIGxvZ2ZpbGUsIGFzIGl0IGVhdHMKICAgcmMgZnJvbSBjb21tYW5kOyBhZGQgTk9BVVRPREVQUz15IHRvIGFsbCBtYWtlIHN0ZXBzOyBkbyBtYWtlIHRvdWNoaXQgd2hlbgogICB0YXJnZXQgPSBhbGw7IHVzZSBuc2ItbWFrZSBmb3IgZGlzdGNsZWFuCiAgIAoyMDAzLTAyLTE3IDExOjE4ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCBkbyBhbnkgb2YgdGhlIGF1dG9jb25mL2F1dG9oZWFkZXIgZGVwcyBpZiBOT0FVVE9ERVA9KiBzcGVjaWZpZWQKICAgCjIwMDMtMDItMTcgMTE6MTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBhbm90aGVyIGRpciBsZXZlbCBmb3IgbWFrZSBkZXBlbmRzIChwZXIgRFMsIGZyb20gYSB3aGlsZSBiYWNrIC0gdGhvdWdodAogICB0aGlzIHdhcyBhbHJlYWR5IGNoZWNrZWQgaW4pCiAgIAoyMDAzLTAyLTE3IDA3OjMwICBuYmEKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBOb3RlIGFib3V0IGJhZCAvdXNyL3hwZzQvYmluL3NlZAogICAKMjAwMy0wMi0xNyAwNjozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBUaGUgaW5jbHVkZSBmb3IgZG1hbGxvYyBiZXR0ZXIgY29tZSBhZnRlciB0aGUgc3RkIGluY2x1ZGVzCiAgIAoyMDAzLTAyLTE3IDA1OjM2ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRG9udCBzZWFyY2ggL3Vzci9sb2NhbCBmb3IgZG1hbGxvYyB1bmxlc3MgdXNlciBleHBsaWNpdGx5IGFza3MgZm9yIGl0CiAgIAoyMDAzLTAyLTE3IDA1OjM0ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgQnJpbmcgYmFjayB0aGUgZGV2ZWxvcGVyIHdhcm5pbmdzCiAgIAoyMDAzLTAyLTE3IDA1OjMzICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHRleHQgZm9yIHNvY2tsZW5fdAogICAKMjAwMy0wMi0xNyAwNTozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIFNvbWUgZXJyb3IgbWVzc2FnZXMgZm9yIFNvbGFyaXMKICAgCjIwMDMtMDItMTcgMDQ6MjMgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBORVQtU05NUC1UQyBtaWIKICAgCjIwMDMtMDItMTQgMDc6NDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBpbmNsdWRlQWxsRGlza3MKICAgCjIwMDMtMDItMTQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBkaXNrLmg6CgogICBQYXRjaCAjNjU1NDQ0IGZyb20gU3Jpa2FudGggUGluZGlwcm9saToKICAgICBJbXBsZW1lbnQgYSBuZXcgaW5jbHVkZUFsbERpc2tzIHNubXBkLmNvbmYgdG9rZW4gdG8gcGxhY2UgYWxsIGZvdW5kCiAgICAgZGlza3MgaW50byB0aGUgZHNrVGFibGUgbGlzdGluZy4KICAgCjIwMDMtMDItMTMgMTc6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFY1LTAtcGF0Y2hlcy4xKSwgdmFyX3JvdXRlLmMKOgoKICAgUGF0Y2ggIzY1NDMyOTogZG91YmxlIGNoZWNrIGxlbmd0aHMgd2hlbiBjb3B5aW5nCiAgIAoyMDAzLTAyLTEzIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYwosIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLS1kaXNhYmxlLW1pYi1sb2RhaW5nIHJlbW92ZXMgdGhlIG1pYiBsb2FkaW5nIGNvZGUgZnJvbSBidWlsZHMuCiAgICAgKG9pZCBwcmludGluZyBhcmUgZm9yY2VkIG51bWVyaWMpCiAgICAgVGhpcyBzYXZlcyBhYm91dCBhYm91dCAyMDBrIGluIGJpbmFyeSBzaXplIG9uIGEgbGludXggYm94LgogICAgIFRoaXMgc2F2ZXMgYWJvdXQgYWJvdXQgMTAwayBpbiBydW5uaW5nIHNpemUgb24gYSBsaW51eCBib3ggKGFzc3VtaW5nCiAgICAgICB0aGUgd2l0aC1taWItbG9hZGluZyBpcyBhY3R1YWxseSBub3QgbG9hZGluZyBhbnl0aGluZyBqdXN0IHRvIGJlCiAgICAgICBmYWlyLCBvdGhlcndpc2UgaXRzIGFib3V0ID41MDBrKS4KICAgCjIwMDMtMDItMTMgMDg6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBORVdTLCBhY2xvY2FsLm00LCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgLSBNaXNjIGNvbmZpZ3VyZSBjaGFuZ2VzL2ZpeGVzIChlZywgb3V0cHV0IHRoZSBkaXNhYmxlZCBzdGF0ZXMgZm9yIHBlcmwpCiAgIC0gQSBidW5jaCBvZiBuZXcgY29uZmlndXJlIG9wdGlvbnM6CiAgICAgLS1kaXNhYmxlLWFwcGxpY2F0aW9ucyAgICAgICAgICBEbyBub3QgYnVpbGQgdGhlIGFwcHMgKHNubXBnZXQsIC4uLikuCiAgICAgLS1kaXNhYmxlLWFnZW50ICAgICAgICAgICAgICAgICBEbyBub3QgYnVpbGQgdGhlIGFnZW50IChzbm1wZCkuCiAgICAgLS1kaXNhYmxlLW1hbnVhbHMgICAgICAgICAgICAgICBEbyBub3QgaW5zdGFsbCB0aGUgbWFudWFscy4KICAgICAtLWRpc2FibGUtc2NyaXB0cyAgICAgICAgICAgICAgIERvIG5vdCBpbnN0YWxsIHRoZSBzY3JpcHRzIChtaWIyYywgLi4uKS4KICAgICAtLWRpc2FibGUtbWlicyAgICAgICAgICAgICAgICAgIERvIG5vdCBpbnN0YWxsIHRoZSBtaWIgZmlsZXMuCiAgIAoyMDAzLTAyLTEzIDA2OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGNoZWNrIGVudHJ5IG5vZGUgYXMgc3VnZ2VzdGVkIGJ5IElyZmFuIFNoZXJpZmYKICAgCjIwMDMtMDItMTMgMDU6NTkgIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlbW92ZSBpbnZhbGlkICd0ZXN0aW5nJyBjb25maWdfZmlsZSB0YXJnZXQuCiAgIFNpbmNlIHRoaXMgaXMgYSBkaXJlY3RvcnksICdjb25maWcuc3RhdHVzJyBmYWlscyB0byBjcmVhdGUgaXQuCiAgIAogICBJJ20gbm90IHF1aXRlIHN1cmUgd2hlcmUgdGhpcyBhcHBlYXJlZCBmcm9tLiAgSXQncyBub3QgcGFydCBvZgogICB0aGUgY29uZmlndXJlIHNjcmlwdCBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYgMi41MywgYnV0IGl0IG1pZ2h0CiAgIGhhdmUgYmVlbiBpbnRyb2R1Y2VkIGJldHdlZW4gdGhlcmUgYW5kIDIuNTcuCiAgIAoyMDAzLTAyLTEzIDAyOjEwICBkdHMxMgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgTWVjaGFuaXNtIGZvciBwYXNzaW5nIGFkZGl0aW9uYWwgb3B0aW9ucyB0byB0aGUgdGVzdCBydW4uCiAgIFN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAzLTAyLTEyIDExOjMwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBpbmNsdWRlIGFnZW50L21pYmdyb3VwIGhlYWRlcnMgZnJvbSAke3NyY2Rpcn0KICAgCjIwMDMtMDItMTIgMDk6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSB1cGdyYWRlIGNvbmZpZ3VyZSB0byBhdXRvY29uZiAyLjU3CiAgIC0gVGhpcyBpcyBmdW5jdGlvbmFsIG5vdywgYnV0IG5vdCBhbGwgZmxhZ3MsIGZlYXR1cmVzIGFuZCB0ZXN0cyBoYXZlCiAgICAgYmVlbiB0ZXN0ZWQuICBQbGVhc2UgcmVwb3J0IGVycm9ycyEgIFRoZXJlIGFyZSBtb3JlIHRoaW5ncyB0byBkbywKICAgICBsaWtlIGNvbnZlcnNpb24gb2YgbG9jYWwgbWFjcm9zIChlZywgU1RSVUNUX0ZPUikgdG8gYXV0b2NvbmYKICAgICBuZXdlciBzdGFuZGFyZCBtYWNyb3MuCiAgIAoyMDAzLTAyLTEyIDA2OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvOiB0dW5uZWwuaCAoVjUtMC1wYXRjaGVzLjEpLCB0dW5uZWwuaAogICAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgdHVubmVsLmg6CgogICB1cGRhdGUKICAgCjIwMDMtMDItMTEgMTg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBvbmx5IGRlZmluZSBzdHVmZiBpZiBoYXZlX3JlZ2V4IGlzIGRlZmluZWQKICAgCjIwMDMtMDItMTEgMTg6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcnVuIGNvbmZpZ19yZXF1aXJlIGNoZWNrcyB0aHJvdWdoIGNwcAogICAKMjAwMy0wMi0xMSAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBJcmZhbiBTaGVyaWZmIHBvaW50ZWQgb3V0IGEgYnVnIHdpdGggZ2V0bmV4dCByZXF1ZXN0cyBkaXJlY3RseSB0bwogICBhIGNvbHVtbi4KICAgCjIwMDMtMDItMTEgMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHBhdGNoIGZyb20gQ2hyaXN0b3BoZSBWYXJvcXVpIHRvIGZpeCBkcm9wcGluZyBzdGF0ZSBjaGFuZ2UgZm9yIHRocmVzaG9sZHMuCiAgIAoyMDAzLTAyLTExIDA4OjI2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc3lzdGVtLmMgKFY0LTItcGF0Y2hlcy41KSwgc3lzdGVtLmM6CgogICBSZW1vdmUgbGFzdCByZW1haW5pbmcgdXNlIG9mICdubGlzdCcgdW5kZXIgSFAtVVggMTAgJiAxMS4KICAgQXMgcGVyIHBhdGNoICM2NTY3NzMgZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDMtMDItMTEgMDg6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgQ2hlY2tpbmcgdGhlIGxlbmd0aCBvZiBhIHN0cmluZyBidWZmZXIgb25jZSBpcyBzdWZmaWNpZW50LgogICBVc2luZyAnc3Rybm5jcHknIFtzaWNdIHRvIGNoZWNrIHRoaXMgbGVuZ3RoIHR3aWNlIGlzIHVubmVjZXNzYXJ5Li4uCiAgIAoyMDAzLTAyLTExIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgaWZkZWYgb3V0IHVubGlrZWx5LWNvcnJlY3QtY29kZSBvbiB3aW4zMgogICAKMjAwMy0wMi0xMSAwNzo1NSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBNZXNzIHdpdGggb3V0cHV0IG9mIGRveHlnZW4gdG8gYWRkIHNmIGxvZ29zLCBldGMsIHRvIHRoZSBib3R0b20gb2YgdGhlCiAgIGdlbmVyYXRlZCBodG1sIGZpbGVzLgogICAKMjAwMy0wMi0xMSAwNzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoICM2NTUxNTQgZnJvbSBKb2VsIFJvc2RhaGw6IG1vcmUgcHJvcGVyIGRlbW9uaXphdGlvbjoKICAgICAtIGNsb3NlIHN0ZGluL3N0ZG91dC9zdGRlcnIgaWYgYXBwcm9wcmlhdGUuCiAgICAgLSBkb3VibGUgZm9yay4KICAgICAtIGNoZGlyIC8gICBbSSdtIG5vdCBjb252aW5jZWQgdGhpcyBpcyBjb3JyZWN0IHVuZGVyIHdpbmRvd3M/ICBBbnlvbmU/XQogICAKMjAwMy0wMi0xMSAwNzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgcGF0Y2ggIzY2NzY5NCAoYW5vbikgdG8gYWRkIGJhY2sgbmV3bGluZXMgdG8gcGFzcyBjb2RlCiAgIAoyMDAzLTAyLTExIDA3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICM2NjIxNjkgZnJvbSBKYW4gV2lsbGVtIEx1aXRlbjogZGlza2lvIHN1cHBvcnQgZm9yIERhcndpbgogICAKMjAwMy0wMi0xMSAwNjoxNCAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBzZXQudDoKCiAgIEZpeCB0ZXN0cyBmb3IgYnVsa3dhbGsgKGR1cGxpY2F0ZSBoZWFkZXIpIGFuZCBzZXQgKGludmFsaWQgT0lEIGNvbnN0YW50KQogICAKMjAwMy0wMi0xMSAwNDo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBBY2NvbW1vZGF0ZSBhIGZ1c3N5IElSSVggZW52aXJvbm1lbnQsIHdoaWNoIGlzIHBpY2t5IGFib3V0IDx1bmlzdGQuaD4KICAgU2VlIGJ1ZyAjNjY3NzI2CiAgIAoyMDAzLTAyLTEwIDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgZml4IGluZGVudCBjb21tZW50IGRhbWFnZS4KICAgCjIwMDMtMDItMTAgMTY6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBFWFRFTlNJQkxFIC0+IFVDREFWSVNfTUlCCiAgIAoyMDAzLTAyLTEwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQnJ1Y2UgU2hhdyBwb2ludGVkIG91dCBhIGNvbW1lbnQgdHlwbwogICAKMjAwMy0wMi0xMCAxNTozOCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBhZ2VudC9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBteSBkZWNsYXJhdGlvbnMgYXMgcG9pbnRlZCBvdXQgYnkgQW5kcmV3IFBhZ2UKICAgCjIwMDMtMDItMTAgMDk6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBmaWxlIG5hbWUgdHlwbwogICAKMjAwMy0wMi0xMCAwNzo1NyAgbmJhCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBsdG1haW4uc2gsCiAgIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmU6CgogICBVcGRhdGUgbGlidG9vbCB0byAxLjQuMwogICAKMjAwMy0wMi0xMCAwNzowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIHR1cm4gb24gbG9nX21hdGNoIGJ5IGRlZmF1bHQKICAgCjIwMDMtMDItMTAgMDY6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIENocmlzdG9waGUgVmFyb3F1aSB0byB0aGUgdGhhbmtzIGZvciBoaXMgRElTTUFOIHBhdGNoZXMKICAgCjIwMDMtMDItMDkgMTA6MDIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQW4gYWRkaXRpb25hbCBjaGFuZ2UgdG8gc3VwcG9ydCAndCcgaGludHMKICAgCjIwMDMtMDItMDYgMjE6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaDoKCiAgIEZvciBsaW51eCwgdXNlIC9wcm9jL1gvc3RhdHVzIGluc3RlYWQuICBJdCBoYXMgdGhlIG5hbWUgb2YgcHJvY2Vzc2VzCiAgIHdoZW4gL3Byb2MvY21kbGluZSBkb2VzIG5vdC4gIEEgZGVmaW5lIChjb21tZW50ZWQgb3V0KSB3YXMgcHV0IGluCiAgIHN5c3RlbS9saW51eC5oIHRvIHJldmVydCB0byBwcmV2aW91cyBiZWhhdmlvciBpZiBkZXNpcmVkLiAgSSdtIG5vdAogICBzdXJlIGF0IHdoaWNoIGtlcm5lbCByZWxlYXNlIHRoZSBzdGF0dXMgZmlsZSB3YXMgYWRkZWQuCiAgIAoyMDAzLTAyLTA2IDIwOjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBBZGQgYSBkZWJ1Z2dpbmcgdGFnICJwcm9jIiB3aGljaCBwcmludHMgcHJvY2VzcyBuYW1lcyBhcyBmb3VuZCBpbiBzb2xhcmlzLgogICAodGhpcyBzaG91bGQgYmUgbmljZSB3aGVuIHNlYXJjaGluZyBmb3IgdW5rbm93biBleGFjdCBwcm9jZXNzIG5hbWVzKQogICAKMjAwMy0wMi0wNiAxMTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIHBhdGNoICM2NzQyMTg6IHJlb3BlbiBsb2cgZmlsZXMgb24gSFVQLgogICAKMjAwMy0wMi0wNiAxMDo0MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAKMjAwMy0wMi0wNiAxMDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgUGF0Y2ggZnJvbSBDaHJpc3RvcGhlIHRvIHN1cHBvcnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgCjIwMDMtMDItMDUgMjI6MDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgQSBtaWIyYyBmaWxlIHRoYXQgZ2VuZXJhdGVzIGEgYnVuY2ggb2YgZnVuY3Rpb25zIHRvIGNoZWNrIHRoZSB2YWx1ZSBvZgogICBpbmNvbWluZyBTRVQgcmVxdWVzdHMuCiAgICAgKG5vdCBjb21wbGV0ZSB5ZXQuICBOZWVkcyBzdXBwb3J0IGZvciBCSVRTIGVudW1zIGFuZCBhIGhlYWRlciBmaWxlCiAgICAgd2l0aCBwcm90b3R5cGVzKQogICAKICAgSGFwcHkgQmlydGhkYXkgKGxhdGUpIHRvIFJvYmVydC4KICAgCjIwMDMtMDItMDUgMjI6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgU3VwcG9ydCBmb3IgZm9yZWFjaCBvbiByYW5nZXMuCiAgIAoyMDAzLTAyLTA1IDAzOjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBsb2NhbC1vbmx5IGFjY2VzcyBmb3Igbm9uLXN0YW5kYXJkIHBvcnQgQWdlbnRYIGNvbm5lY3Rpb25zLgogICAKMjAwMy0wMi0wNSAwMToxMyAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRG9uJ3QgcHJvbXB0IGZvciBhbiBhdXRoZW50aWNhdGlvbiBwYXNzLXBocmFzZSwgaWYgb25lIGhhcyBhbHJlYWR5CiAgIGJlZW4gc3VwcGxpZWQuICBSZXBvcnRlZCBieSBEYXJyZW4gR2FtYmxlLgogICAKMjAwMy0wMi0wNCAwNjoyNSAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGFuIGVudHJ5IGRlc2NyaWJpbmcgY29uZmlndXJpbmcgQWdlbnRYIG9uIGEgbm9uLXN0YW5kYXJkIHBvcnQuCiAgIAoyMDAzLTAyLTAzIDA3OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjUtMC1wYXRjaGVzLjIpLCBzbm1wX2FwaS5jOgoKICAgRnJvbSBSaWNoYXJkIExhaW5nOiBjaGFuZ2UgdmFsdWUgY2hlY2sgb2YgYSBzdHJpbmcgdG8gdXNlIGEgcHJvcGVyIGxlbmd0aC4KICAgCjIwMDMtMDEtMjkgMDc6MTkgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIHBlcmwvU05NUC9SRUFETUU6CgogICBwZXJsIGRvY3VtZW50YXRpb24gdXBkYXRlcyBmcm9tIEhhcnJpZQogICAKMjAwMy0wMS0yNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBwYXRjaCAjNjcyMDIxIGZyb20gSm9zaHVhIEdpbGVzOiBsYXJnZSBzZXQgcmVxdWVzdCBmaXhlcwogICAKMjAwMy0wMS0yMiAxNDo0NSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBIYXZpbmcgZm91bmQgYSBuZXcgcm93IHRvIHdvcmsgd2l0aCwgdXBkYXRlIHRoZSBpbmRleCB2YWx1ZXMgYXMgd2VsbC4KICAgVGhpcyBzZWVtcyB0byBmaXggdGhlIG1pc21hdGNoIGJldHdlZW4gdGhlIE9JRCBiZWluZyBwcm9jZXNzZWQKICAgYW5kIHRoZSBpbmRleCB2YXJiaW5kcy4KICAgCjIwMDMtMDEtMjAgMTk6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgc3RyaW5nIHRlc3QgY2FzZSBmb3IgYmluYXJ5IGFycmF5IHRlc3RpbmcKICAgCjIwMDMtMDEtMjAgMTk6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeGVzIGZvciBhcnJheV9xc29ydCAtIG5vdCBxdWl0ZSBzdXJlIHdoeS9ob3cgaXQgd29ya2VkIGJlZm9yZS4uOi0vCiAgIAoyMDAzLTAxLTIwIDE5OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIG5ldyBuZXRzbm1wX2NvbXBhcmVfbWVtOyBmaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCiAgIAoyMDAzLTAxLTIwIDE5OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNyZWF0ZSBtZDVzdW1zIGFmdGVyIGNyZWF0aW5nIGd6aXBwZWQgdGFyYmFsbAogICAKMjAwMy0wMS0xNCAwNjoxNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIDE2LWJpdCByZXF1ZXN0SURzLCBldGMgLSBmb3IgdGFsa2luZyB0byBicm9rZW4gYWdlbnRzLgogICAoQXMgcGVyIGEgc3VnZ2VzdGlvbiBvZiBOaWVscywgaW4gZGlzY3Vzc2lvbiB3aXRoIEhlbnJpayBPc3RlcmdhYXJkIE1hZHNlbikKICAgCjIwMDMtMDEtMTQgMDU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGRveHlnZW4uY29uZiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jCiwgZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRveHlnZW4gY2hhbmdlcwogICAKMjAwMy0wMS0xMyAxODo0OSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMC43CiAgIAoyMDAzLTAxLTEzIDE3OjMwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlY29nbml6ZSBuZXcgJ3QnIGNvZGUgaW4gZGlzcGxheSBoaW50cwogICAKMjAwMy0wMS0xMyAxNzowNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHBhdGNoIGZvciBtZW1vcnkgbGVha3Mgc2VudCB0byBjb2RlcnMgYnkgSmF5IFBhcmxhcgogICAKMjAwMy0wMS0xMCAyMjoyNyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNyApCiAgIAoyMDAzLTAxLTEwIDIyOjI2ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNwogICAKMjAwMy0wMS0xMCAyMjoxNSAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgY29uZmlndXJlLXN1bW1hcnkKICAgCjIwMDMtMDEtMTAgMjI6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTAxLTEwIDIyOjA4ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSB2YXJpYXRpb25zIG9mIGNoYW5nZWxvZy5hZGQKICAgCjIwMDMtMDEtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIGRveHlnZW4gb3V0cHV0IHRhZ3MgdG8gcHV0IHRoZSByZWNlbnRseSBkZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIGdyb3Vwcy4KICAgCjIwMDMtMDEtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX2FnZW50LjMsCiAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG94eWdlbiB1cGRhdGVzCiAgIAoyMDAzLTAxLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG9wcHMKICAgCjIwMDMtMDEtMTAgMTQ6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGRvdWJsZSBjaGVja2luZyBvdXRwdXQKICAgCjIwMDMtMDEtMTAgMTE6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldDoKCiAgIGZpeCBwb3NpdGlvbmFsIGFyZ3VtZW50cwogICAKMjAwMy0wMS0xMCAwNjowNCAgZHRzMTIKCiAgICogRkFROgoKICAgUmVmZXJlbmNlIEJydWNlIFNoYXcncyBkaXNjdXNzaW9uIG9mIHRoZSBwZXJsIGNvbXBpbGF0aW9uIHByb2JsZW1zCiAgIChzZWUgUkVBRE1FLnNvbGFyaXMpCiAgIAoyMDAzLTAxLTEwIDA1OjMxICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIEFnZW50WCB1bmRlciB3aW5kb3dzLCBhbmQgYmVlZiB1cCB0aGUgcGVybCBzdHVmZiBhIGJpdC4KICAgQWRkIGEgbWlzc2luZyBlbnRyeSBpbiB0aGUgY29udGVudHMgbGlzdC4KICAgKFRoaXMgbWF5IHByb3ZlIHRvbyBsYXRlIGZvciA1LjAuOCwgYnV0IGF0IGxlYXN0IGl0J2xsIGJlIHJlYWR5IGZvciBuZXh0IHRpbWUhKQogICAKMjAwMy0wMS0wOSAxNTo0MSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxNTozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxNTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbW9kZV9lbmRfY2FsbC5oOgoKICAgZW5kLW9mLW1vZGUgaGVscGVyIHRvIGNhbGwgbW9yZSBoYW5kbGVycyBhZnRlciBwcm9jZXNzaW5nIHRoZSBtYWluCiAgIGxpbmUuICBGdW5jdGlvbmFsbHkgYWxsb3dzIHBhcmFsbGVsIGhhbmRsZXIgdHJlZXMgYW5kIGNhbGxiYWNrcyBhZnRlcgogICBhIHBhcnRpY3VsYXIgbW9kZSBpcyBjb21wbGV0ZWQgKHVzZWZ1bCBmb3IgdGhpbmdzIHJlZ2lzdGVyZWQgdW5kZXIgYQogICBzZXJpYWxpemUgaGFuZGxlciB3aGVuIHlvdSBkb24ndCBrbm93IHdoZW4gdGhlIG1vZGUgaXMgb3ZlcikuCiAgICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBwcm9kdWN0aW9uIGNvZGUgeWV0LikuCiAgIAoyMDAzLTAxLTA5IDA4OjU1ICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIHRoZSBwZXJsIHNoYXJlZC9zdGF0aWMgbGlicmFyeSBwcm9ibGVtLAogICB0aGUgdW5yZXNwb25zaXZlIGFnZW50IHByb2JsZW0gKGFuZCBmaXgpLCBhbmQKICAgZGlzY2xhaW0gYWxsIGtub3dsZWRnZSBvZiBEYXZpZCBUb3duJ3MgTmV0OjpTTk1QIG1vZHVsZSwKICAgCjIwMDMtMDEtMDkgMDc6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2MHNubXB2MmNidWxrZ2V0LCBUMDIyMHNubXB2M2J1bGtnZXQKOgoKICAgR2V0QnVsayB0ZXN0aW5nIHN1cHBsaWVkIGJ5IFhpYW9mZW5nIExpbmcKICAgCjIwMDMtMDEtMDkgMDc6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBBZGQgLXggZmxhZyBmb3IgY2FsbGluZyBzdWJ0ZXN0cyB3aXRoICJzaCAteCIuCiAgIEZpeCBudW1iZXIgY291bnRpbmcgZm9yIGludGVyYWN0aXZlIG91dHB1dC4KICAgCjIwMDMtMDEtMDcgMTU6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy44KSwgQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCiAgIAoyMDAzLTAxLTA3IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgaXJjIHNlcnZlciBuYW1lIGNoYW5nZQogICAKMjAwMy0wMS0wNyAwODowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGJ1ZyAjNjYzNjI4IGFuZCBwYXRjaDogZml4IGlwIGFkZHJlc3MgaW5kZXggcGFyc2luZyBmcm9tIE9JRHMKICAgCjIwMDMtMDEtMDcgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgY29kZSB0byBmcmVlICdjYWxsYmFja19kYXRhX2tlZXAnIGRhdGEuCiAgIFRoaXMgYnJhbmNoIHdvdWxkIG5ldmVyIGJlIGludm9rZWQsIGFuZCBpcyBpbiB0aGUgd3JvbmcKICAgcGxhY2UgYW55d2F5LiAgUGF0Y2ggc3VwcGxpZWQgYnkgSmF5IFBhcmxhcgogICAKMjAwMy0wMS0wNiAwODoxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBTb2xhcmlzIDkgaGVhZGVyCiAgIAoyMDAzLTAxLTA1IDE1OjE0ICBuYmEKCiAgICogd2luMzIvd2luMzIub3B0OgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxNDoyOCAgbmJhCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgd2luMzIub3B0CiwgbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDEyOjQ1ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwKICAgU05NUC1NUEQtTUlCLnR4dCwgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwKICAgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0CiwgU05NUHYyLU1JQi50eHQsIFNOTVB2Mi1UTS50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbnMKICAgCjIwMDMtMDEtMDMgMTI6NTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGNhbGwgQUNfRElTQUJMRV9TSEFSRUQsIGFzIHNldHMgdGhlIGRlZmF1bHQgdG8gZGlzYWJsZWQgKGl0J3MgdmVyeQogICBwcmVzZW5jZSBpbiBjb25maWd1cmUuaW4gZ2VuZXJhdGVzIGEgY29uZmlndXJlIHdpdGggc2hhcmVkIGRpc2FibGVkLCBldmVuCiAgIGlmIGl0IHdhcyBpbiBhbiBpZiBibG9jazsgZm9yIGRldmVsb3BlciBkZWZhdWx0LCBzZXQgZW5hYmxlX3NoYXJlZCBkaXJlY3RseQogICB1bmxlc3MgaXQgd2FzIHByZXZpb3VzbHkgc2V0OyB0ZXN0IHRoYXQgZW5hYmxlX3NoYXJlZD15ZXMgZm9yIGVtYmVkZGVkLXBlcmwKICAgCjIwMDMtMDEtMDMgMDU6MDIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBNZW50aW9uIHRoZSBTdHJhdHVzIFZPUyBwb3J0LiAoVGhhbmtzIHRvIEJyYW5kb24gSGFsbCkKICAgCjIwMDMtMDEtMDIgMTU6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBwYXJlbnMgYXJvdW5kIHggaW4gbWFjcm8gaW4gY2FzZSB4IGlzIG11bHRpcGxlIEMgdG9rZW5zCiAgIAoyMDAyLTEyLTIyIDA5OjMyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIFJFQURNRSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMiApCiAgIAoyMDAyLTEyLTIyIDA5OjMxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUyCiAgIAoyMDAyLTEyLTIyIDA5OjIwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0yMCAwNDo1OCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2xlYW4gYXdheSBuZXQtc25tcC1jb25maWcgb24gbWFrZSBjbGVhbgogICAKMjAwMi0xMi0yMCAwNDo1NyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc3Rhc2ggdGhlIG9pZF9zdGFzaCAuLi4KICAgCjIwMDItMTItMjAgMDE6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBIHBhdGNoIGZyb20gVjQgdGhhdCBkaWRuJ3QgbWFrZSBpdCAuLi4gYWxsb3cgbGlzdCBvZiBudW1lcmljIGJpdHMgc2V0dGluZyBCSVRTCiAgIAoyMDAyLTEyLTE5IDIzOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgYWRkIGEgZ2xvYmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciByZWdpc3RlcmluZyBkaXJlY3RseSB2aWEgYSBjYWxsYmFjay4KICAgCjIwMDItMTItMTkgMjM6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBhZGQgY2FsbGJhY2suaAogICAKMjAwMi0xMi0xOSAyMzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlIHJlbmFtaW5nLiAgKHNucHJpbnRmIGNoYW5nZSBtaXN0YWtlKQogICAKMjAwMi0xMi0xOSAyMzoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHNvbWUgbmV3IHJvdXRpbmVzIGZvciBzYXZpbmcgb2lkIHN0YXNoIGRhdGEgdG8gcGVyc2lzdGVudCBzdG9yYWdlLgogICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBjdXJyZW50IHByb2R1Y3Rpb24gY29kZSkKICAgCjIwMDItMTItMTkgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSB3YXRjaCBmb3IgdW5kZWZzIHBhc3NlZCBpbiBhcyBhIHZhbHVlIHRvIGEgU0VUIGNsYXVzZS4KICAgLSBjaGFuZ2UgQklUUyB0byBhIE9jdGV0IFN0cmluZyBhcyBpdCBzaG91bGQgYmUuCiAgICAgLSBvbiBhIHNpZGUgbm90ZSwgZG8geW91IGtub3cgdGhhdCB0aGUgTmV0LVNOTVAgcGFyc2VyIGRvZXNuJ3QKICAgICAgIGRpc3Rpbmd1aXNoIGJldHdlZW4gQklUUyBhbmQgQklUIFNUUklORyBpbiBpdCdzIGxpc3Qgb2YgdHlwZXM/ICBJCiAgICAgICBkb24ndCB0aGluayBpdCdzIHBvc3NpYmxlIHRvIHVzZSBib3RoIHR5cGVzIGluIHRoZSBjb2RlIHRvZGF5CiAgICAgICAod2hpY2ggaXMgZmluZSwgc2luY2UgQklUIFNUUklORyBpcyBub3QgdXNlZCBpbiBTTk1QdjIgYW5kIGJleW9uZCkuCiAgIAoyMDAyLTEyLTE5IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBwcmludCBhIHdhcm5pbmcgd2hlbiB5b3UgY2FuJ3QgcGFyc2UgYW4gT0lEIChlcnIsIG5vdCBpZGVhbCkKICAgCjIwMDItMTItMTkgMTQ6NDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIHNraXAgU0VUaW5nIGNvbHVtbnMgd2l0aCBubyB2YWx1ZSBwYXNzZWQgaW4uCiAgIAoyMDAyLTEyLTE5IDExOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy9leGFtcGxlLmMsIGhvc3QvaHJfbmV0d29yay5jCiwgaG9zdC9ocl9zd2luc3QuYzoKCiAgIEJlaW5nIGEgYml0IHF1aWNrLCBlaCwgRGF2ZSAuLi4KICAgCjIwMDItMTItMTkgMDg6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMi1wYXRjaGVzLjIpLCBhdC5jOgoKICAgRW5zdXJlIHRoZSBpZm5hbWUgYnVmZmVyIGlzIGJpZyBlbm91Z2ggdG8gcmVhZCBpbiBhIGZ1bGwtbGVuZ3RoIG5hbWUuCiAgIChGcm9tIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDA4OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jCiAgIChWNC0yLXBhdGNoZXMuWzgsOSwzLDMsMF0pLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYzoKCiAgIERldGVjdCB3aGVuIG1lbW9yeSBhbGxvY2F0aW9ucyBmYWlsLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MuCiAgIChCYXNlZCBvbiBjaGFuZ2VzIHdpdGhpbiB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgVGhlIEdyZWF0IFNVU0UgJ3NwcmludGYnIEh1bnQuLi4uLgogICAKMjAwMi0xMi0xOSAwMzowMiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgICAtIGNvZGUgd2l0aCBCU0RpNAogICAKMjAwMi0xMi0xOSAwMjo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hhbmdlIGEgY29tbWVudCB0aGF0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIHRyYW5zcG9ydCBzdHVmZgogICAgIC0gZml4IHNvbWUgcGFydGljdWxhcmx5IGJhZCBmb3JtYXR0aW5nIGluIHNubXBfb3Blbl9leAogICAKMjAwMi0xMi0xOCAxMDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgcmVtb3ZlIG1lbS1sZWFrIGNvbW1lbnQuICBPdXQgb2YgZGF0ZSBhbmQgd2FzIGZpeGVkCiAgIAoyMDAyLTEyLTE4IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBkZWxldGUgZXhwZXJpbWVudGFsIHdhcm5pbmcgYWJvdXQgYWdlbnR4CiAgIAoyMDAyLTEyLTE4IDEwOjQwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBmaXggYnVnIzY1NTQ4ODogZGVzY3JpcHRpb25zIG9mIHNzSU9SYXdSZWNlaXZlZCBhbmQgc3NSYXdJbnRlcnJ1cHRzIHdlcmUgcmV2ZXJzZWQKICAgCjIwMDItMTItMTggMDU6MTkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHN0ZGVyciBsb2dnaW5nIG9uIEhVUCAoaWYgLUwgd2FzIGdpdmVuIG9uIGNvbW1hbmQgbGluZSkKICAgCjIwMDItMTItMTcgMTY6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgJzsnIGZyb20gZGVmaW5lOyBpZiB0YWJsZSBoYXMgYSBzdG9yYWdlIHR5cGUsIGNoZWNrIHRoYXQgaXQncyBub3QKICAgcmVhZCBvbmx5IGJlZm9yZSBhbGxvd2luZyBzZXRzCiAgIAoyMDAyLTEyLTE3IDE2OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgbmV2ZXIgbWluZAogICAKMjAwMi0xMi0xNyAxNjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERvbid0IGNoZWNrIGZvciBwcmVmaXhlcyBpbiB0ZXN0LiAgVGhleSBkb24ndCBleGlzdC4gIEhvd2V2ZXIsIGRvIHNldCBTTk1QQ09ORlBBVEggaW4gdGVzdCBpbml0aWFsaXphdGlvbiB0byBhIGJvZ3VzIHZhbHVlCiAgIAoyMDAyLTEyLTE3IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZW1vdmUgZGlyZWN0IGNhbGwgdG8gaW5pdF9zbm1wKCkuICBUaGlzIGlzIGFscmVhZHkgY2FsbGVkIGJ5IHRoZSAucG0gZmlsZQogICAKMjAwMi0xMi0xNyAwNzoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIHBlcnNpc3RlbmNlIGZvciBhcnJheS10YWJsZXMKICAgCjIwMDItMTItMTcgMDc6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYWRkIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4OyBhZGQgQVNOX1RJTUVUSUNLUyB3L0FTTl9VTlNJR05FRCBjYXNlcwogICAKMjAwMi0xMi0xNyAwNjo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZG9uJ3QgdXNlIFNPX1JFVVNFX0FERFIgc28gYWdlbnQgcG9ydCBjYW4ndCBiZSBoaWphY2tlZAogICAKMjAwMi0xMi0xNyAwNjo0MyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHVzZSBsb2NhbCB2YXIgZm9yIGJhc2UgYWdlbnQgbGliczsgcmVvcmRlciBiYXNlIGFnZW50IGxpYnMgc28gc3RhdGljIGxpbmtpbmcKICAgd29ya3MKICAgCjIwMDItMTItMTYgMTU6MzIgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaDoKCiAgIFlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcgLi4uCiAgIAoyMDAyLTEyLTE2IDE0OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICByZW1vdmUgYm9ndXMgY29tbWVudCByZWZlcmVuY2UgdG8gdGFibGVfZGF0YXNldCBoZWxwZXIuCiAgIAoyMDAyLTEyLTE2IDE0OjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIGFwcHMvc25tcHRyYXBkLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jCjoKCiAgIFNwcmVhZCBzb21lIG1hZ2ljIGR1c3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MgKHdoeSBpc24ndCAtLWVuYWJsZS1zbGllbnQtbGlidG9vbCB0aGUgZGVmYXVsdCAuLi4pCiAgIAoyMDAyLTEyLTE2IDA4OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsgKHBlZXJuYW1lIGlzIGNvcGllZCBieSBzbm1wX29wZW5fZXgpCiAgIAoyMDAyLTEyLTE2IDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDA4OjE5ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMDc6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlIChjYXVzZWQgcHJvYmxlbXMgb24gU3VuIDUuNywgcmVwb3J0ZWQgYnkgamJwbikKICAgCjIwMDItMTItMTYgMDU6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjb25maWd1cmUgdy9vdXQgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDA1OjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBERVZGTEFHUz0iIiBpZiBub3QgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE1IDIzOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG9pZF9zdGFzaC5jLCBzY2FwaS5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5jCiwgc25tcElQWERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTE1IDIzOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQb3NzaWJsZSBsZWFrIG9mIGZkIG9uIGVycm9yIHJldHVybgogICAKMjAwMi0xMi0xNCAwNzoyMiAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUxICkKICAgCjIwMDItMTItMTQgMDc6MjEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCjIwMDItMTItMTQgMDY6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgYWdlbnQvbWliZ3JvdXA7IGZpeCBtb2R1bGVzIGZvciBjb25maWdfZGlzdAogICAKMjAwMi0xMi0xNCAwNjo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKMjAwMi0xMi0xNCAwNjo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgcmV2IHRvIDUuMC43CiAgIAoyMDAyLTEyLTE0IDA2OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLW4gdG8gZ3JlcCBmb3IgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA2OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMTQgMDY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDY6MzAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBjb21tZW50cyB0byBzb21lIHN0cnVjdHVyZSBtZW1iZXJzCiAgIAoyMDAyLTEyLTE0IDA2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZXJyb3JzIGR1cmluZyBjb21taXQgdW5kbyBzaG91bGQgYmUgeHhGQUlMRUQ7IHVzZSBzZXRfcmVxdWVzdF9lcnJvciBpbnN0ZWFkIG9mCiAgIHNldF9tb2RlX3JlcXVlc3RfZXJyb3I7IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudDsgbW9yZSBkZWJ1Z2dpbmc7IGNoZWNrIGZvcgogICBhbmQgY2FsbCBsb3dlciBoYW5kbGVycwogICAKMjAwMi0xMi0xNCAwNjoyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFsd2F5cyBwcm9jZXNzIGxhdGVyIHBhc3NlcyBvZiBhIHNldCByZXF1ZXN0CiAgIAoyMDAyLTEyLTEzIDEzOjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDEyOjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDEyOjQwICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IGluY29tcGxldGUgemVyb2luZyBvZiBzZWN1cml0eSBkYXRhCiAgIAoyMDAyLTEyLTEzIDEyOjM5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IGEgcG9zc2libGUgZnJlZWluZyBvZiBhIE5VTEwgcG9pbnRlcgogICAKMjAwMi0xMi0xMyAxMjozOCAgbmJhCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAwODozOCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2xlYXIgdGhlICdwcm9jZXNzZWQnIGZsYWcgYmV0d2VlbiBwYXNzZXMsIHNvIHRoYXQgaGFuZGxlcnMKICAgY2FuIGNvcnJlY3RseSBjbGVhbiB1cCBhZnRlciBlcnJvcnMgaGF2ZSBiZWVuIGRldGVjdGVkLgogICAKMjAwMi0xMi0xMyAwODowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWRkIGFzc2VyIHRvIHRyeSBhbmQgY2F0aCBpbnRlcm1pdHRlbnQgY3Jhc2ggaSd2ZSBiZWVuIHNlZWluZwogICAKMjAwMi0xMi0xMyAwODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGxvZyB1bmtub3duIGFnZW50eCBvcGVyYXRpb24KICAgCjIwMDItMTItMTMgMDc6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZiBubyByb3cgY3JlYXRlIGNhbGxiYWNrIG9uIHNldCwgdXNlIE5PVFdSSVRBQkxFIGluc3RlYWQgb2YgTk9TVUNISU5TVEFOQ0UKICAgCjIwMDItMTItMTMgMDc6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBzbyBkZWxlZ2F0ZWQgZmxhZyBkaXNwbGF5ZWQgcHJvcGVybHkKICAgCjIwMDItMTItMTMgMDc6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGxvZyB0ZXh0IChBUFB8TElCfFRPSykgaW5zdGVhZCBvZiBzdG9yZSBpZCBpbiBkZWJ1ZyBtc2dzCiAgIAoyMDAyLTEyLTEzIDA2OjUzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIC0td2l0aC1saWJ3cmFwCiAgIAoyMDAyLTEyLTEzIDA2OjQ5ICByc3RvcnkKCiAgICogRkFROgoKICAgZ3JhbW1hci9pbmRlbnRpb24gdHdlYWsgKyBtZW50aW9uIHN0cmlwIGZvciBtZW1vcnkgZm9vdHByaW50IHF1ZXN0aW9uCiAgIAoyMDAyLTEyLTEzIDA2OjMyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgZXhwbGljaXQgbWVudGlvbiBvZiBTTk1QIG1vZHVsZSBkb2N1bWVudGF0aW9uLgogICBUaGlzIHNldHRpbmcgZG9lc24ndCBzZWVtIHRvIGJlIG5lY2Vzc2FyeSwgYW5kIHdpdGhvdXQgaXQsCiAgIHRoZSBtYW4gcGFnZSBpcyBpbnN0YWxsZWQgYXV0b21hdGljYWxseS4KICAgCjIwMDItMTItMTMgMDQ6NDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIC1TIGRvIHRoZSBzYW1lIGFzIHNubXBkIC1TIChzZXQgdGhlIHN5c2xvZyBmYWNpbGl0eSkKICAgICAtIG1ha2UgLWwgcHJpbnQgYSB3YXJuaW5nIHNheWluZyB0aGF0IGl0IGlzIGRlcHJlY2F0ZWQgYW5kIC1TIHNob3VsZAogICAgICAgYmUgdXNlZCBpbnN0ZWFkCiAgIAoyMDAyLTEyLTEzIDA0OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBpbmNyZWFzZSB3aWR0aCBvZiB0b2tlbiBmaWVsZCB0byBpbXByb3ZlIGxlZ2liaWxpdHkgb2YKICAgICAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlIGhlbHAgb3V0cHV0CiAgIAoyMDAyLTEyLTEyIDE0OjQ2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmtub3duIC1PIG9wdGlvbnMKICAgCjIwMDItMTItMTIgMTI6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBzb21lIHNpemVfdCB0aGF0IHJlYWxseSBzaG91bGQgYmUgaW50CiAgIAoyMDAyLTEyLTEyIDExOjE4ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIEEgbG9uZyBvdmVyZHVlIHBhdGNoICgjNDE1MjUyKSBmcm9tIFJvYmVydCBIYXN0aW5ncyB0aGF0IGltcGxlbWVudHMKICAgcmV2ZXJzZSBESVNQTEFZLUhJTlQgcHJvY2Vzc2luZywgaS5lLiBpdCBhbGxvd3MgeW91IHRvIGlucHV0IGRhdGEKICAgZm9ybWF0dGVkIGxpa2UgdGhlIERJU1BMQVktSElOVCBwcmVzY3JpYmVzLiBFbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dAogICBjYW4gYmUgZGlzYWJsZWQgd2l0aCB0aGUgLUloIG9wdGlvbiBvciBub0Rpc3BsYXlIaW50IGluIHNubXAuY29uZgogICAKMjAwMi0xMi0xMiAxMDo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcGFyc2Ugb2lkcyBpbiB2aWV3IHN0YXRlbWVudHMgdGhlIHNhbWUgd2F5IHRoZSBhcHBzIGRvIGl0IChjb25zaXN0ZW5jeSwgaGUgc2FpZCkKICAgCjIwMDItMTItMTIgMTA6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBBZGQgYSBnZXRSb290T0lEIGZ1bmN0aW9uIHRvIHRoZSByZWdpbmZvIHBvaW50ZXIgcGFzc2VkIGludG8gaGFuZGxlcnMuCiAgIAoyMDAyLTEyLTEyIDEwOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY2hhbmdlIGNyZWF0ZSBhbmQgZHVwbGljYXRlIHJvdyB0byByZXR1cm4gc3BlY2lmaWMgY29udGV4dCBpbnN0ZWFkIG9mIGdlbmVyaWMKICAgbmV0c25tcF9pbmRleDsgY2F0Y2ggZXJyb3IgZnJvbSBwYXJzZV9vaWRfaW5kZXhlcyBvbiByb3cgY3JlYXRpb24KICAgCjIwMDItMTItMTIgMTA6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgUHJpbnQgZXJyb3JzIHRvIFNUREVSUiBpbnN0ZWFkLgogICAgIChhY3R1YWxseSBkb24ndCBiZWNhdXNlIHRoZXNlIHN0YXRlbWVudHMgYXJlIGNvbW1lbnRlZCBvdXQgaW4gdGhlCiAgICAgZmlyc3QgcGxhY2UpCiAgIAoyMDAyLTEyLTEyIDEwOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmV2ZXJzZSB0aGUgY29udGV4dCBvZiBhIGNvbnRleHQgaWYgc3RhdGVtZW50IHNvIGlmIG5vdCB0aGUgY29udGV4dAogICB0aGVuIGRvbid0IHVzZSB0aGUgY29udGV4dCBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KICAgCjIwMDItMTItMTIgMDk6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIGxvbmctZGVwcmVjYXRlZCAtcSBhbmQgLVMgb3B0aW9ucwogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0xMi0xMiAwOTozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIG1lc3NhZ2UgaW4gdXNhZ2UKICAgCjIwMDItMTItMTIgMDg6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC4xLmRlZiwgYWdlbnQvc25tcGQuYzoKCiAgIEltcGxlbWVudCBhIGNvbW1hbmQtbGluZSBvcHRpb24gKC1TKSB0byBzZXQgdGhlIGZhY2lsaXR5IHRvIHVzZSB3aGVuCiAgIGxvZ2dpbmcgdmlhIHN5c2xvZy4gICBCYXNlZCBvbiBhbiBpZGVhIGJ5IEpvZWwgUm9zZGFobCAoUGF0Y2ggIzYyNzcwMSkKICAgTm90ZSB0aGF0IC1sIGFuZCAtTCBhcmUgYWxyZWFkeSB0YWtlbjotKAogICAKICAgVG9EbzoKICAgICBQcm92aWRlIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBmb3IgYm90aCB0aGlzLCBhbmQgdGhlIHN5c2xvZyB0b2tlbiAoJ3NubXBkJykuCiAgIAoyMDAyLTEyLTEyIDA4OjE4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIFN1cHBvcnQgc2V0dGluZyBvZiBzeXNEZXNjciBhbmQgc3lzT2JqZWN0SUQgdmlhIHNubXBkLmNvbmYKICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzICh0aG91Z2ggbm90IHZpYSBTTk1QIFNFVCByZXFlc3RzKS4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc3MDIgYW5kICM2MjgwMTEpCiAgIAoyMDAyLTEyLTEyIDA3OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogYWxsX2hlbHBlcnMuYywgdGFibGUuYzoKCiAgIFN1cHByZXNzIHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zICgjNjQ0MDQxKQogICAKMjAwMi0xMi0xMiAwNzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIFVzZSAnc3lzY29uZicgdG8gcmVwb3J0IG9uIFNvbGFyaXMgbWVtb3J5IHVzYWdlLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBCZW4gU3Rlcm4gKCM2NTExODIpCiAgIAoyMDAyLTEyLTEyIDA3OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBCYXNpYyBzdXBwb3J0IGZvciBtdWx0aXBsZSBBZ2VudFggc29ja2V0cyAob24gdGhlIG1hc3RlciBzaWRlIGF0IGxlYXN0KS4KICAgU2VlIEZlYXR1cmUgUmVxdWVzdCAjNjMyNTU2CiAgIAoyMDAyLTEyLTEyIDA1OjU3ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGNyZWF0ZSB2ZXJzaW9uIHRhZyBmcm9tIHZlcnNpb24gc28gY3ZzIGV4cG9ydCB3b3JrczsgZml4IFJFTDsgYWRkIHRhci5negogICBvZiBzb3VyY2UgYXMgZGVwZW5kZW5jeSBmb3IgcnBtZmlsZXMKICAgCjIwMDItMTItMTIgMDU6MDQgIG5iYQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfZW51bS5jLCBzbm1wX3NlY21vZC5jLCBzbm1wX3RyYW5zcG9ydC5jCjoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xMiAwNDoxOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvY3VtZW50IHRoZSAtT1Ugb3B0aW9uLCBhbmQgYWxwaGFiZXRpc2UgdGhlIGhhbmRsaW5nIG9mIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEyIDAzOjI1ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCAnc25tcGluZm9ybScgYXMgYSByZWxhdGl2ZSBsaW5rLCByYXRoZXIgdGhhbiBhbiBhYnNvbHV0ZSBvbmUuCiAgIEZpeCBwcm92aWRlZCBieSB0aGUgaW5kZWZhdGlnYWJsZSBTdGVmYW4gUmFkbWFuIChCdWcgIzY1MjU4NykKICAgCjIwMDItMTItMTIgMDI6NTYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVvdGUgY29uZmlndXJlIG9wdGlvbnMgd2hlbiBjb250cnVjdGluZyBuZXQtc25tcC1jb25maWd1cmUgYW5kIG5ldC1zbm1wLWNvbmZpZ3VyZS5oCiAgIFRoaXMgYWxsb3dzIG9wdGlvbnMgY29udGFpbmluZyBzcGFjZXMsIGV0YywgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHkuCiAgIChTZWUgRmVhdHVyZSBSZXF1ZXN0ICM1NDcxNTIpCiAgIAoyMDAyLTEyLTExIDEzOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBQYXRjaCBmb3IgRnJlZUJTRC4gVGhhbmtzIHRvIEp1biBLdXJpeWFtYQogICAKMjAwMi0xMi0xMSAwOToxNiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0yLXBhdGNoZXMuNCksIHNubXBfbG9nZ2luZy5jOgoKICAgVHJ5IGRpc2FibGluZyBsaW5lLWJ1ZmZlcmluZyBvbiBXaW5kb3dzIHN5c3RlbXMgKHNpbmNlIGl0CiAgIGFwcGFyZW50bHkgZW5hYmxlcyBmdWxsLWJ1ZmZlcmluZyBpbnN0ZWFkKS4gIFNlZSBCdWcgIzU1ODgzNy4KICAgCjIwMDItMTItMTEgMDg6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgZ2V0LnQsIGdldG5leHQudCwKICAgbm90aWZ5LnQsIHNldC50OgoKICAgRXhwbGljaXRseSBzZXQgU05NUCB2ZXJzaW9uID0gMSAodGhlIG9yaWdpbmFsIGRlZmF1bHQgYXMgZXhwZWN0ZWQgYnkgdGhlIHRlc3RzKQogICBUaGlzIHNob3VsZCBub3cgcGFzcyBhbGwgdGVzdHMgYXBhcnQgZnJvbSBjb25mLnQgIzMKICAgCjIwMDItMTItMTEgMDM6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgQmUgbW9yZSBzZWxlY3RpdmUgaW4gdXNpbmcgdGhlIDY0LWJpdCB2ZXJzaW9uIG9mIG5saXN0LiAoQnVnICM2MTE2NTUpCiAgIAoyMDAyLTEyLTExIDAzOjI3ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIG5vbi1mdW5jdGlvbmFsaXR5IG9mIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIGFwcHJvYWNoZXMuCiAgIChCdWcgIzYxNzExOSkuICAgUmVwb3J0ZWQgYnkgUXVhbmFoIEdpYnNvbi1Nb3VudAogICAKMjAwMi0xMi0xMSAwMzoyMCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhhdCB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyB0aGUKICAgZW1iZWRkZWQgcGVybCBzY3JpcHQuICAoQnVnICM2MTc4OTEpIEZpeCBwcm92aWRlZCBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMi0xMi0xMSAwMjo1NiAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MyAoVjQtMi1wYXRjaGVzLjQpLCBSRUFETUUuc25tcHYzOgoKICAgRG9jdW1lbnQgdGhlIGxvY2F0aW9uIGFzc3VtcHRpb25zIGJlaW5nIG1hZGUgaW4gdGhpcyBkZXNjcmlwdGlvbi4KICAgCjIwMDItMTItMTEgMDE6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBmb3JjaW5nIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVkIGluIGVpdGhlcgogICBBU0NJSSBvciBIZXggZm9ybWF0LCBieXBhc3NpbmcgdGhlICJndWVzcyIgbWVjaGFuaXNtIGFzIHRvIHdoaWNoCiAgIGlzIG1vcmUgYXBwcm9wcmlhdGUuICAgU3VnZ2VzdGVkIGJ5IE5pY2sgS2FuYWtha29ybi4KICAgICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhZmZlY3Qgb2JqZWN0cyB3aXRoIGEgRGlzcGxheS1IaW50IGluCiAgIHRoZWlyIE1JQiBkZWZpbml0aW9uLgogICAKMjAwMi0xMi0xMSAwMTozMCAgZHRzMTIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoCiAgIChWNC0yLXBhdGNoZXMuWzIsNiw2XSksIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ29tbWFuZC1saW5lIG9wdGlvbiB0byBjb250cm9sIHdoZXRoZXIgdG8gdW5saW5rIHRoZSBQSUQgZmlsZSBvciBub3QuCiAgIE5lY2Vzc2FyeSBmb3IgY29ycmVjdCB0ZXN0IG9wZXJhdGlvbi4KICAgCjIwMDItMTItMTEgMDE6MjEgIGR0czEyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBUaGUgbGF0ZXN0IGxpYnJhcnkgZGVmYXVsdHMgdG8gTU9EVUxFOjpuYW1lIHN0eWxlIG91dHB1dCwKICAgc28gYWRqdXN0IHRoZSBleHBlY3RlZCBvdXRwdXQgY2hlY2tzIGFjY29yZGluZ2x5LgogICBBbHNvLCB0aGVyZSBhcmUgYWN0dWFsbHkgMzYgdGVzdHMsIG5vdCAzNSEKICAgCjIwMDItMTItMTEgMDE6MTcgIGR0czEyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIEluaXRpYWxpc2UgdGhlIFNOTVAgbGlicmFyaWVzLCB0byBzZXQgdXAgdGhlIE9JRCB0cmVlLgogICBBZGRyZXNzZXMgYnVncyAjNjM4MDI0IGFuZCAjNjI3NjQzCiAgICAgW1FuOiBEbyB3ZSBuZWVkIHRvIHN1cHBseSBhbiAnYXBwbmFtZScgKGMuZCB0aGUgU05NUCBtb2R1bGUpID9dCiAgIAoyMDAyLTEyLTEwIDE2OjI5ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBBbGxvdyBydW50aW1lIGNvbmZpZ3VyYXRpb24gb2YgcGVyc2lzdGVudCBkaXJlY3RvcnkKICAgCjIwMDItMTItMTAgMTY6MjQgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXBvcnQgZXJyb3JzIGhhbmRsaW5nIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcwogICAKMjAwMi0xMi0xMCAxNjoyMyAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQYXNzIHVwIGVycm9yIG9uIGRpcmVjdG9yeSBjcmVhdGlvbgogICAKMjAwMi0xMi0xMCAxNDoyNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCZXR0ZXIgcmVzcGVjdCBmb3IgdGhlIG1heCB3aWR0aCBvcHRpb24gKHNubXB0cmFuc2xhdGUgLVRkKQogICAKMjAwMi0xMi0xMCAxNDoyNiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgb2lkT3V0cHV0Rm9ybWF0IG9wdGlvbgogICAKMjAwMi0xMi0xMCAxNDoyNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDbGVhbiB1cC4gUmVtb3ZlIGNhbGxzIHRvIG9ic29sZXRlIGZ1bmN0aW9ucyBzbm1wX3NldF9xdWlja19wcmludCwKICAgc25tcF9nZXRfZHVtcF9wYWNrZXQsIHNubXBfZ2V0X3N1ZmZpeF9vbmx5LiBSZW1vdmUgbGFzdCB0cmFjZXMgb2YgdGhlCiAgIG5vbl9zZXF1ZW50aWFsIGJhY2t3YXJkcyBoYWNrLiBNYWtlIHN1cmUgaXQgd29ya3MgZm9yIGFsbCAtTyBvcHRpb25zLgogICAKMjAwMi0xMi0xMCAwODo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgaW50ZXJmYWNlcy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGVtcHR5IGxpbmVzIGluIC9wcm9jL25ldC9kZXYgIChCdWcgIzYyNTQyNikKICAgCjIwMDItMTItMTAgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdjMuYzoKCiAgIEZyZWUgZGVzdGluYXRpb24gbWVtb3J5IGJlZm9yZSBjbG9uaW5nIFNOTVAgRW5naW5lIElELgogICBGaXggcHJvdmlkZWQgYnkgTWFydGluIENhcmxzc29uLiAgKEJ1ZyAjODM1NDgxKQogICAKMjAwMi0xMi0xMCAwODowNyAgZHRzMTIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBBZGQgIiRDb25maWd7Y2NmbGFnc30iIHRvIENDRkxBR1MuICAgKFNlZSBidWcgIzY0MDg5OSkKICAgCjIwMDItMTItMTAgMDc6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY0LTItcGF0Y2hlcy44KSwgaXBBZGRyLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgTGludXggdmlydHVhbCBpbnRlcmZhY2VzIGluIHRoZSBpcEFkZHJlc3NUYWJsZS4KICAgKE5vdGUgdGhpcyBkb2VzICpub3QqIGluY2x1ZGUgc2VwYXJhdGUgcGVyLXYtaW50ZXJmYWNlIHN0YXRpc3RpY3MKICAgIGluIHRoZSBpbnRlcmZhY2VzIHRhYmxlKS4KICAgCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEplbnMgU2l0dG5lciAoIzYyMTI3NCkKICAgCjIwMDItMTItMTAgMDE6NTkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiBleHRyYW5lb3VzIF5NIGNoYXJhY3RlcnMuCiAgIAoyMDAyLTEyLTA5IDIzOjM2ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdoZW4gdXNpbmcgLU9xdiBhbmQgcHJpbnRpbmcgYW4gZW1wdHkgc3RyaW5nIHlvdSBjb3VsZCBlbmQgdXAgd2l0aAogICBhIE5VTEwgc3RyaW5nIGFuZCBub3QgYW4gZW1wdHkgc3RyaW5nIGxlYWRpbmcgdG8gc29tZSB2ZXJ5IG9ic2N1cmUKICAgcHJvYmxlbXMgaW4gc25tcHRhYmxlIGFuZCBvdGhlciBhcHBsaWNhdGlvbnMuCiAgIAoyMDAyLTEyLTA5IDA4OjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBIYW5kbGUgbWlzc2luZyBpbnRlZ2VyIHZhbHVlcyAod2hldGhlciAzMi0gb3IgNjQtYml0ISkuICAgT29wcyEKICAgCjIwMDItMTItMDkgMDc6MTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmM6CgogICBIYW5kbGUgaW50ZWdlci1iYXNlZCB2YWx1ZXMgY29ycmVjdGx5IG9uIGEgNjQtYml0IHBsYXRmb3JtLgogICBQYXRjaCBzdXBwbGllZCBieSBUaG9tYXMgV2ViZXIgKCM1NjEwNzEpCiAgIAoyMDAyLTEyLTA5IDA2OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBUYWtlIG5vdGUgb2Ygc3ViYWdlbnQtcmVxdWVzdGVkIGJ5dGUgb3JkZXJpbmcgaW4gc3Vic2VxdWVudCBjb21tdW5pY2F0aW9ucy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVXJiYW4gKCM2MzIyODQpCiAgIAoyMDAyLTEyLTA5IDA2OjMyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcGQuYzoKCiAgIFJlbW92ZSB0aGUgUElEIGZpbGUgb24gYWdlbnQgc2h1dGRvd24uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5OSkKICAgCjIwMDItMTItMDkgMDY6MjUgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBIYW5kbGUgJ3N0cnVjdCBzb2NrYWRkcicgdGhhdCBjb250YWluICdzYV9sZW4nIGZpZWxkcyBkaWZmZXJlbnRseQogICB0byB0aG9zZSB0aGF0IGRvbid0IChjLmYgaWZpbHRlcl9pb2N0bC5jIGluIEJJTkQgOS4yLjEgc291cmNlcykKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk2KQogICAKMjAwMi0xMi0wOSAwNDoxMiAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZWNvZ25pc2UgQlNEaTQsIGFuZCB0d2VhayB0aGUgcmVjb2duaXRpb24gb2YgJ2Rsb3BlbicuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsLgogICAKMjAwMi0xMi0wOSAwMzoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKOgoKICAgUmVtb3ZlIHNvbWUgd2FybmluZ3MsIGFuZCB0cnkgdG8gY29wZSB3aXRoICdzeXNjdGwnIGZhaWx1cmVzLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zLgogICAKMjAwMi0xMi0wOSAwMToyMCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBsaW1pdGF0aW9ucyBvbiAvdXNyL3VjYi9zZWQsCiAgIGFuZCBwb2ludCBwZW9wbGUgdG93YXJkcyAvdXNyL2Jpbi9zZWQgaW5zdGVhZC4KICAgCjIwMDItMTItMDcgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgSW5zZXJ0IG5ld2x5LWNyZWF0ZWQgcm93cyBpbnRvIHRoZSBwZXItcmVxdWVzdCBsaXN0cywgc28gdGhhdCBsb3dlcgogICBsZXZlbCBoYW5kbGVycyBjYW4gYWNjZXNzIHRoZW0uCiAgICAgW1FuOiBTaG91bGQgd2UgZG8gc29tZXRoaW5nIHNpbWlsYXIgd2l0aCB1cGRhdGVkIGxpc3RzIGFzIHdlbGw/XQogICAKMjAwMi0xMi0wNyAwNTozNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZXBvcnQgYmFjayB0aGUgY29ycmVjdCBlcnJvciBmb3Igcm93cyB0aGF0IGNvdWxkbid0IGJlIGNyZWF0ZWQuCiAgIAoyMDAyLTEyLTA3IDA1OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmcmVlaW5nIGEgcm93IHRoYXQgbmV2ZXIgZ290IGNyZWF0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgogICAKMjAwMi0xMi0wNiAxNTowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgU2tpcCBvbiBub24tb3BlbnNzbCBtYWNoaW5lcy4gIFRIaXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8ganVzdCBub3QgdXNpbmcgZW5jcnlwdGlvbiBvbiB0aG9zZSBtYWNoaW5lcywgYnV0IEkgZG8gbm90IGhhdmUgdGhlIHRpbWUgYXQgdGhlIG1vbWVudAogICAKMjAwMi0xMi0wNiAxMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMDk6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgZGVsZXRlIHRoZSAib2xkIiAobm9uLWV4aXN0ZW50KSByb3csIHdoZW4gdGlkeWluZyB1cCBhZnRlcgogICBjcmVhdGluZyBhIG5ldyByb3cuCiAgIAoyMDAyLTEyLTA2IDA4OjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFR3ZWFrIGhhbmRsaW5nIG9mIChpbnZhbGlkKSBSb3dTdGF0dXMgY3JlYXRpb24gcmVxdWVzdHMgaW4gYW4KICAgImF1dG9tYXRpYyBjcmVhdGlvbiIgdGFibGUuICAgVGhlc2Ugc2hvdWxkIHJldHVybiB3cm9uZ1ZhbHVlIG9yCiAgIGluY29uc2lzdGVudFZhbHVlLCByYXRoZXIgdGhhbiBub3RXcml0YWJsZS4KICAgCjIwMDItMTItMDUgMDI6NDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3VwcG9ydCB1c2Ugb2YgUm93U3RhdHVzIG9iamVjdCB0byBjb250cm9sIGNyZWF0aW9uIG9mIG5ldyByb3dzCiAgIChpLmUuIHdoZW4gdGhlICdhbGxvd19jcmVhdGlvbicgZmxhZyBpcyBub3Qgc2V0KS4KICAgVGhpcyBzaG91bGQgZGVhbCB3aXRoIGV2ZXJ5dGhpbmcgZXhjZXB0IGRldGVybWluaW5nIHdoZXRoZXIgYQogICByb3cgaXMgcmVhZHkgdG8gZ28gJ2FjdGl2ZScgKGUuZy4gdmlhICdjcmVhdGVBbmRHbycpLiAgU3VjaCBhCiAgIGRlY2lzaW9uIGlzIGluaGVyZW50bHkgc3BlY2lmaWMgdG8gZWFjaCBpbmRpdmlkdWFsIE1JQiwgc28gbXVzdAogICByZWFsbHkgYmUgZG9uZSBpbiB0aGUgbG93ZXItbGV2ZWwgaGFuZGxlci4KICAgCjIwMDItMTItMDUgMDI6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3RvcCBwcm9jZXNzaW5nIHdoZW4gYSAnbm9uLXdyaXRhYmxlIGNyZWF0ZScgaXMgZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTA0IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAtIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgLSBydW4gZXZlbnRUYWJsZSBlbnRyaWVzLgogICAKMjAwMi0xMi0wNCAxNjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jOgoKICAgQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAKMjAwMi0xMi0wNCAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYzoKCiAgIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCB0byBnZXQgcmVhbCBzdHJpbmdzIGZyb20gbWliIGRhdGEuCiAgIAoyMDAyLTEyLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCwKICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgKLCBtdGVFdmVudFRhYmxlLmMsIG10ZUV2ZW50VGFibGUuaDoKCiAgIC0gaW1wbGVtZW50ZWQgdGhlIG10ZUV2ZW50VGFibGUgYW5kIHRoZSBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlCiAgICAgLSBGWUksIHRvdGFsIGltcGxlbWVudGF0aW9uIHRpbWU6IGFib3V0IDQgaG91cnMKICAgICAtIG5vIGVhc3ktdG8tdXNlIC5jb25mIHdyYXBwZXJzIHlldCB0aG91Z2guICBzbm1wc2V0IHN1cHBvcnQgb25seS4KICAgCjIwMDItMTItMDQgMTY6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICAtIHVzZSB0aGUgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24gd2hpY2ggYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTEyLTA0IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICAtIGNyZWF0ZSBhIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uLgogICAtIEFsbG93IHJvdyBjcmVhdGlvbiB1c2luZyByb3dTdGF0dXMgd2hlbiB0aGUgZGF0YSBjb2x1bW4gZXhpc3RzLCBidXQKICAgICB0aGVyZSBpcyBubyBhc3NpZ25lZCB2YWx1ZSAoaWUsIGlzIE5VTEwpLgogICAtIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCBpbnN0ZWFkIG9mIG1lbWR1cCB0byBtYWtlIHN1cmUgYW4KICAgICBpbXBsaWNpdCBOVUxMIGlzIGluIHBsYWNlIGZvciB0aGluZ3MgdGhhdCB1c2UgdGhlIGRhdGEgYW5kIG5lZWQgaXQKICAgICBhcyBhIHJlYWwgc3RyaW5nLgogICAKMjAwMi0xMi0wNCAxNjoyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZG9jdW1lbnQgLS1wcmVmaXgKICAgCjIwMDItMTItMDQgMTA6MTYgIGhhcmRha2VyCgogICAqIE5FV1MgKFY0LTItcGF0Y2hlcy45KSwgTkVXUzoKCiAgIGRvY3VtZW50IDQuMi42CiAgIAoyMDAyLTEyLTAzIDAxOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBDbG9zZSBwcmludGVyIGZpbGUgaGFuZGxlIHdpdGggJ2ZjbG9zZScgcmF0aGVyIHRoYW4gJ3BjbG9zZScgdG8gYXZvaWQKICAgYSBtZW1vcnkgbGVhayBvbiBTb2xhcmlzIDIuNi4gICBGaXggcHJvdmlkZWQgYnkgSmFjb2JvIE1hdHV0ZS4KICAgCjIwMDItMTItMDMgMDE6MzMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIFRyYW5zbGF0ZSBHZXROZXh0IChhbmQgR2V0QnVsaykgcmVxdWVzdHMgaW50byBzaW1wbGUgR2V0IHJlcXVlc3RzLAogICB3aGVuIHBhc3NpbmcgdGhlbSBmcm9tIHRoZSB0YWJsZV9kYXRhIGhhbmRsZXIgdG8gdGFibGVfZGF0YXNldC4KICAgICBUaGlzIGlzIGFuYWxvZ291cyB0byBob3cgdGhlIGl0ZXJhdGUgaGFuZGxlciB3b3JrcywgYW5kIGFsbG93cwogICBsb3dlciBsZXZlbCBoYW5kbGVycyB0byBvdmVycmlkZSB0aGUgYmFzaWMgYmVoYXZpb3VyICh3aXRob3V0CiAgIGhhdmluZyB0byBkdXBsaWNhdGUgYWxsIG9mIHRoZSAiZmluZCBuZXh0IHJvdyIgY29kZSBldmVyeSB0aW1lKS4KICAgCjIwMDItMTItMDIgMDE6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFJldHVybiBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucywgcmF0aGVyIHRoYW4gdGhlIFNOTVB2MSAnbm9TdWNoTmFtZScgZXJyb3IuCiAgIFRoaXMgdXNlZCB0byBicmVhayBBZ2VudFggc3ViYWdlbnRzLCBidXQgdGhlIGxhdGVzdCBjaGFuZ2UgdG8gc25tcF9hZ2VudC5jCiAgICh0byBjYXRjaCBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zKSBzZWVtcyB0byBoYXZlIGZpeGVkIHRoYXQgcHJvYmxlbS4KICAgCjIwMDItMTItMDIgMDE6NDAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEV4cGxpY2l0bHkgcGFyZW50aGVzaXNlIGEgY29tcGFyaXNvbiwgdG8ga2VlcCB0aGUgY29tcGlsZXIgaGFwcHkuCiAgIAoyMDAyLTEyLTAyIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdXNpdmUtcmFuZ2UgR2V0TmV4dCByZXF1ZXN0cyBhcmUgdHJhbnNtaXR0ZWQgYXMgR2V0IHJlcXVlc3RzLCBzbyBtYXkKICAgd2VsbCByZXR1cm4gbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucy4gIENhdGNoIHRoZXNlIGFzIHdlbGwuCiAgIAoyMDAyLTEyLTAyIDAxOjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIENhdGNoIChhbmQgcmVqZWN0KSBhdHRlbXB0cyB0byBjcmVhdGUgYSBuZXcgcm93IHZpYSBhIG5vbi13cml0YWJsZSBvYmplY3QuCiAgIAoyMDAyLTExLTI4IDAxOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBOdWxsIG91dCBvbmUgZmluYWwgbG9vcF9jb250ZXh0IHBvaW50ZXIgYWZ0ZXIgYmVpbmcgZnJlZWQuCiAgIChQYXRjaCBwcm92aWRlZCBieSBSb2dlciBNY0NhbG1hbikKICAgCjIwMDItMTEtMjYgMTQ6NTkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBEaXNjYXJkIHRoZSBzZWNvbmRhcnkgKEdST1VQKSBERVNDUklQVElPTiBpbnNpemUgYSBNT0RVTEUtQ09NUExJQU5DRQogICB0byBhdm9pZCBsZWFraW5nIG1lbW9yeS4gVGhhbmtzIHRvIEV1Z2VuZV9CcnVrQGJtYy5jb20KICAgCjIwMDItMTEtMjYgMTQ6NTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIFJlaW5zdGF0ZSB0aGUgLXcgb3B0aW9ucyB0aGF0IHdhcyBsb3N0IGluIHRoZSBpbmRlbnQgZnVyeQogICAKMjAwMi0xMS0yNiAwNzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBUaGUgbm90aWZpY2F0aW9uIHZhcmlhYmxlIHNob3VsZG4ndCBiZSBzdGF0aWMuICBBIGJ1ZyBmb3VuZCB3aGlsZQogICB0cmFja2luZyBkb3duIGEgcHJvYmxlbSBwb2ludGVkIG91dCBieSBWZW5pY2Ugb24gSVJDLgogICAKMjAwMi0xMS0yNiAwMToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIEZpeCBpbmNvcnJlY3QgdXNhZ2Ugb2YgU0VfTUFYX0lEUyB2cyBTRV9NQVhfU1VCSURTLgogICBSZXBvcnRlZCBieSAnc2hpbmVwZWFrJwogICAKMjAwMi0xMS0yNSAxOTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBoYWNrIG9mIGEgaGFjayBvZiBhIGhhY2ssIG9yOiBmaXggbXVsdGktbGluZSBGQVEgcXVlc3Rpb25zCiAgIAoyMDAyLTExLTI1IDA3OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDItMTEtMTggMTg6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgYXBwbGllZCBwYXRjaCAjNTI3NjUwCiAgIAoyMDAyLTExLTExIDE0OjEwICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlc3BlY3QgdGhlIG1pYmRpcnMgY29uZiBkaXJlY3RpdmUuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0xMSAxMzo1NyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGEgbWlzc2luZyBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMTEgMTE6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgIGZpeCB0YWRkciBnZW5lcmF0aW9uL3BhcnNpbmcgZm9yIHBvcnQgYmFzZWQgdHJhbnNwb3J0cyB0byBwcm9wZXJseSB1c2UKICAgbmV0d29yayBieXRlIG9yZGVyaW5nLgogICAKMjAwMi0xMS0xMSAxMToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIGZpeCB3cml0ZSBzdXBwb3J0IGZvciB0aGUgdGltZW91dCBjb2x1bW4KICAgCjIwMDItMTEtMDkgMDc6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgRG8gYXdheSB3aXRoIGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTEtMDkgMDY6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcHJvYy5jLCBob3N0L2hyX3ByaW50LmMKOgoKICAgWmVybyBpcyBhbiBPSyBmaWxlIGRlc2NyaXB0b3IuIC0xIGlzIHRoZSBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMDkgMDY6NTQgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgTW9yZSB0byB0aGUgcG9pbnQgbWVzc2FnZSBmb3IgdW5kZWZpbmVkIGlkZW50aWZpZXJzLiBCcm91Z2h0IGZvcndhcmQgZnJvbSA0LjIKICAgCjIwMDItMTEtMDkgMDY6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBQcmludCB0aGUgZXJyb3IgaW5mb3JtYXRpb24gaW4gY2FzZSBvZiBlcnJvcgogICAKMjAwMi0xMS0wOSAwNjo1MSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB2MiBleGNlcHRpb24gcmVzdWx0cwogICAKMjAwMi0xMS0wOSAwNjo0OSAgbmJhCgogICAqIHNlZHNjcmlwdC5pbiwgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm90ZWN0IFBSRUZJWCB3aGVuIGl0IGlzIHRoZSBlbnYgdmFyLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMDkgMDY6NDcgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGQgUkZDIDMzNzEgTDJUUC1NSUIKICAgCjIwMDItMTEtMDkgMDY6NDYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgZnJvbSBJQU5BCiAgIAoyMDAyLTExLTA3IDAyOjU1ICBqYnBuCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAgIC0gZml4IC1DZiBhbmQgLUN3IG9wdGlvbiBwcm9jZXNzaW5nIChwcmV2aW91c2x5IHdvdWxkIGNvcmUgZHVtcCBpZgogICAgICAgbm8gb3B0aW9uIHBhc3NlZCksIGFzIHBvaW50ZWQgb3V0IGJ5IGhhbXBhIG9uICNuZXQtc25tcAogICAKMjAwMi0xMS0wNiAxMjozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBjdXQvcGFzdGUKICAgCjIwMDItMTEtMDYgMTI6MDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluICYgbWFrZWZpbGVzCiAgIAoyMDAyLTExLTA2IDExOjA4ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG1pc3NpbmcgZW5kIHF1b3RlCiAgIAoyMDAyLTExLTA2IDEwOjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIEBERVZGTEFHU0Agd2VoZXJ2ZXIgdGhlcmUgaXMgYSBAQ0ZMQUdTQCwgZXhjZXB0IGZvciB0aGUgbmV3IC0tYmFzZS1jZmxhZ3MKICAgCjIwMDItMTEtMDYgMTA6MjIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBhZGQgQERFVkZMQUdTQCB0byBDRkxBR1MKICAgCjIwMDItMTEtMDYgMTA6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBzZXBlcmF0ZSBkZXZlbG9wZXIgY2ZsYWdzIGZyb20gbm9ybWFsIGNmbGFncwogICAKMjAwMi0xMS0wNiAwOTo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGNoYW5nZSBzdHJ1Y3QuaCBpbmNsdWRlIHRvIHVzZSAiIiBpbnN0ZWFkIG9mIDxuZXQtc25tcC8+LCBzaW5jZSBpdCBpdCBhIGxvY2FsCiAgIGluY2x1ZGUsIG5vdCBhIHN5c3RlbSBpbmNsdWRlCiAgIAoyMDAyLTExLTA2IDA5OjM5ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBwdXJnZSBJTl9VQ0RfU05NUF9TT1VSQ0UKICAgCjIwMDItMTEtMDUgMDk6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgYWRkZWQgYSB4bWxzaG9ydCBkZWxpbWl0ZXIgYXMgcmVxdWVzdGVkIGJ5IGxhbmRzIG9uIElSQwogICAKMjAwMi0xMS0wNSAwODo1OSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICB0YWJzIC0+IHNwYWNlcyBvbmx5IHRyeSB0byBjaG1vZCBSTyBzcmMgZGlyIGlmIG93bmVyIG9mIGRpcnMKICAgCjIwMDItMTEtMDUgMDg6NTYgIHJzdG9yeQoKICAgKiBta2luc3RhbGxkaXJzOgoKICAgbWFraW5nIGEgZGlyZWN0b3J5IGlzIG5vdCBhbiBlcnJvciwgc28gZG9uJ3Qgc2VuZCBvdXRwdXQgdG8gc3RkZXJyCiAgIAoyMDAyLTExLTA0IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBhbGxvdyB1bnJlZ2lzdGVyZWQgc2VjdXJpdHkgbW9kZWxzIDw9IDIKICAgCjIwMDItMTEtMDQgMDg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gdG8gYmUgYmV0dGVyIHN1cHBvcnRlZCAocm93c3RhdHVzIG5vIGxvbmdlciBoYXMgdG8KICAgYmUgZmlyc3QgaW4gdGhlIGxpc3QsIC4uLikKICAgCjIwMDItMTEtMDQgMDg6MTMgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBjcHBmbGFncyB0byAtLWNmbGFncwogICAKMjAwMi0xMS0wNCAwODoxMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZCBzdHVmZiBmb3IgNS4wLjcgKG9yIHdoYXRldmVyKSBtZW50aW9uaW5nIGEgZmV3IG5ldyBmZWF0dXJlcy4KICAgCjIwMDItMTEtMDEgMDk6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIGJ1ZyAjNjMyMDk0IHVzaW5nIHRoZSBzdWdnZXN0ZWQgbWV0aG9kOiB3YXRjaCBmb3IgTlVMTCBzdHJlcnJvcigpIHJldHVybgogICAKMjAwMi0xMS0wMSAwNzowOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdW5kbyBteSBjaGFuZ2VzIGZyb20gciA1LjE3LCBhdHRlbXB0aW5nIHRvIHJlZHVjZSBydW5zIG9mIGNvbmZpZy5zdGF0dXMKICAgYnkgdXNpbmcgZXhwbGljaXQgcGF0aHMgdG8gc3JjZGlyLCBhbmQgbGV0IFZQQVRIIGRvIGl0J3MgdGhpbmcKICAgCjIwMDItMTAtMjkgMTE6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdGFyZ2V0IHRvIGJ1aWxkIGJpbmFyeSBhcnJheSB0ZXN0IGFwcDsgdHdlYWsgdG8gcGFyc2UgdGVzdCB0YXJnZXQgKHJlZHVjZXMgbW9zdAogICBidXQgbm90IGFsbCBleHRlcm5hbCByZWZlcmVuY2VzKQogICAKMjAwMi0xMC0yOSAxMToyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGZvciBiaW5hcnkgc2VhcmNoIHByb2JsZW0gbm90ZWQgYnkgUm9teSBDaHJpc3RlbnNlbiBvbiBjb2RlcnM7IHBhcnRpYWwKICAgKGlmZGVmJ2Qgb3V0KSBjb2RlIGZvciBhIGJpbmFyeSBhcnJheSBpdGVyYXRvcgogICAKMjAwMi0xMC0yOSAxMToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIHNpbXBsZSB0ZXN0IHByb2dyYW0gZm9yIGJpbmFyeSBhcnJheQogICAKMjAwMi0xMC0yOSAwNjoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggZGVidWdnaW5nIGFzIG5vdGVkIGluIGJ1ZyAjNjMwMzQ4CiAgIAoyMDAyLTEwLTI4IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZWQgLjEuNi4zIHRvIDEuMy42IGFzIG5vdGVkIGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgCjIwMDItMTAtMjggMTI6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGNoYW5nZWQgcGFzc3dvcmQKICAgCjIwMDItMTAtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIG1pc2MgdmFjbSBmaXhlcwogICAKMjAwMi0xMC0yOCAwNTo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIGVycm9uZW91cyBmcmVlKCkgb2YgcnhidWYKICAgCjIwMDItMTAtMjUgMDk6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeGVkIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCAtPiBORVRTTk1QX09QX0NBTExCQUNLX0RJU0NPTk5FQ1QgYXMgbm90ZWQgYnkgVHJvZ0wgb24gSVJDCiAgIAoyMDAyLTEwLTI1IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwZXJmb3JtIGEgTkVUU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHR5cGUgY2FsbGJhY2sgaWYgd2UKICAgICAgIGRlY2lkZSB0byBzaHV0ZG93biBhIHN0cmVhbSB0eXBlIGNvbm5lY3Rpb24gYmVjYXVzZSB3ZSByZWNlaXZlZAogICAgICAgYW4gZXhjZXNzaXZlbHkgbGFyZ2UgcGFja2V0LgogICAKMjAwMi0xMC0yNCAwNzo0MSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgdGhlIHN1cGVyLWJ1Zy1wYXRjaCBnZW5lcmF0b3IgU3RlZmFuIFJhZG1hbiB0byB0aGUgVEhBTktTIGxpc3QKICAgCjIwMDItMTAtMjQgMDc6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJ1ZyAjNjE3NTA4OiBhZGRlZCB0aGUgbXRhX3NlbmRtYWlsIG1vZHVsZSB0byAtLWhlbHAKICAgCjIwMDItMTAtMjQgMDc6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgdXBkYXRlIGluc3RhbGwgbGlzdCBmb3IgbWliMmMgY29uZiBmaWxlcyBhbmQgcmVtb3ZlIG9sZCBvbmUKICAgCjIwMDItMTAtMjMgMTc6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGluY29ycmVjdCB2YXJpYWJsZSBuYW1lIEkgbm90aWNlZCB3aGVuIGNvcHlpbmcgdG8gYSBkaWZmZXJlbnQgY29uZmlndXJlIHNjcmlwdCBpbiBhbm90aGVyIHBhY2thZ2UKICAgCjIwMDItMTAtMjMgMTc6MjggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4ZWQgYnVnIzYxNzgzODogdmVyc2lvbnRhZyBpc24ndCBkaXN0cmlidXRlZCBhbmQgc2hvdWxkbid0IGJlIGFsd2F5cwogICB1c2VkIGluIHRoZSBtYWtlIGRpc3RjbGVhbiBjYWxscy4KICAgCjIwMDItMTAtMjMgMTc6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGluY29uc2VxdWVuY2lhbCBtZW1vcnkgbGVha3MgZml4ZWQgKGluaXQgdGltZSBsZWFrcykuCiAgIAoyMDAyLTEwLTIzIDE3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBGaXhlZCB2YXJpb3VzIG1lbW9yeSBsZWFrcyBpbiB0aGUgdGFibGVfaXRlcmF0b3IgYXMgcG9pbnRlZCBvdXQgYnkKICAgUm9nZXIgTWNDYWxtYW4gYW5kIEpheSBQYXJsYXIgb24gdGhlIC1jb2RlcnMgbGlzdCAoaW5jbHVkaW5nIHRoZWlyIHBhdGNoZXMpCiAgIAoyMDAyLTEwLTIzIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBzbm1wTm90aWZ5VGFibGUuYwogICAKMjAwMi0xMC0yMyAxNTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZnJlZSBhIHByZXZpb3VzbHkgbWFsbG9jZWQgcG9pbnRlciB0byB0aGUgd2F0Y2ggdmFyaWFibGUgYmVmb3JlIHJlcGxhY2luZyBpdC4KICAgCjIwMDItMTAtMjMgMTU6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYzoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdW51c2VkIG1hbGxvYy4KICAgCjIwMDItMTAtMjEgMDk6NDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOS5oOgoKICAgICAtIGFkZCBzeXN0ZW0gZmlsZSBmb3IgU29sYXJpcyA5CiAgIAoyMDAyLTEwLTE3IDE5OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIE9wdGltaXplZCB0aGUgVkFDTSBjaGVja3MgaW4gdGhlIGNhc2Ugb2YgZ2V0bmV4dC9nZXRidWxrIHNvIHRoYXQgd2hlbgogICBsYXJnZSBwb3J0aW9ucyBvZiB0aGUgbWliIHRyZWUgYXJlIGV4Y2x1ZGVkLCB0aGUgc3ViLW1pYiBhY2Nlc3MgY29kZQogICB3b24ndCBiZSBjYWxsZWQgYXQgYWxsIChmaW5hbGx5IGltcGxlbWVudGluZyBhIHZlcnkgbG9uZyBuZWVkZWQgb3B0aW1pemF0aW9uKS4KICAgCjIwMDItMTAtMTcgMTk6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGNvbW1vbmFsaXR5IGJldHdlZW4gdHdvIG9pZHM6IG5ldHNubXBfb2lkX2ZpbmRfcHJlZml4CiAgIAoyMDAyLTEwLTE3IDE5OjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQcmludCBvdXQgYSAic3VtbWFyeSIgYXQgdGhlIGVuZCBvZiBhIHJ1bgogICAKMjAwMi0xMC0xNyAwMjo0MCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUHJvcGVybHkgdGVybWluYXRlIGEgbG9vcCBjb25zdHJ1Y3QgKG1pc3NpbmcgJ0BlbmRAJykKICAgU3BvdHRlZCBieSBLYXJsIENvb3Blci4gICAgT29wcyEKICAgCjIwMDItMTAtMTYgMTQ6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVzdG9yZSBjb250aW51ZSBhZnRlciBFSU5UUiBjYXVzZWQgYnkgc2lnbmFsIHdlIGhhbmRsZWQgKGluc3RlYWQgb2YgZmFsbGluZwogICB0aG9yb3VnaCB0byBleGl0ISkKICAgCjIwMDItMTAtMTYgMTQ6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY2hlY2sgZm9yIG91ciBzaWduYWwgZmxhZ3Mgb24gRUlOVFIsIGFuZCBvbmx5IHJlbGVzZWN0IGlmIG5vdCBjaGFuZ2VkOwogICBkZWJ1ZyBtc2cgd2hlbiBzaWduYWxzIHJlZ2lzdGVyZWQgYW5kIGZvciBzZWxlY3QvZmRzZXRzOwogICAKMjAwMi0xMC0xNiAxMjo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG1vdmUgQ1BQRkxBR1MgYmVmb3JlIHVzZXIgY29uZmlndXJlIENGTEFHUy4uIHNvIGlmIGEgdXNlciBhZGRzIHNvbWV0aGluZwogICBsaWtlIC91c3IvbG9jYWwvaW5jbHVkZSB0byBDRkxBR1MsIHdlIHdpbGwgcGljayB1cCBvdXIgbG9jYWwgaW5jbHVkZXMgZmlyc3QsCiAgIGluc3RlYWQgb2YgaW5jbHVkZXMgZnJvbSBhIHByZXZpb3VzIHJlbGVhc2UuLgogICAKMjAwMi0xMC0xNSAyMTowNiAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmgKOgoKICAgbWFrZSBzdXJlIHNubXB0cmFwZCBhbHdheXMgaG9ub3JzIERTX0FQUF9OVU1FUklDX0lQIGZvciBsb2dnaW5nCiAgIAoyMDAyLTEwLTE1IDE0OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldHNubXBfZ2V0X2Jvb2xlYW4gLT4gbmV0c25tcF9kc19nZXRfYm9vbGVhbgogICAKMjAwMi0xMC0xNSAxMTowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpeCBjb25zdGFudCB1c2VkIGluIGFzc2VydCwgbm90ZWQgb24gY29kZXJzCiAgIAoyMDAyLTEwLTE1IDExOjA3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgaW5jbHVkZSBzeXNsb2cgZm9yIGxpYndyYXAgbG9nIGxldmVscwogICAKMjAwMi0xMC0xNSAwNzozOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBBZGQgeWV0IGFub3RoZXIgd2F5IHRvIHNwZWNpZnkgdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTE0IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGZpeCBpcHY2IHRyYW5zcG9ydCBhZGRyZXNzIHNwZWNzCiAgIAoyMDAyLTEwLTExIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuY211LCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBSZW1vdmUgdGhlIFJFQURNRS5jbXUgZmlsZSAoZW50aXJlbHkgb3V0IG9mIGRhdGUgYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTEwLTExIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGF0Y2ggIzYwMDkzMyBmcm9tIERvbmFsIERpYW1vbmQ6IGRza1BlcmNlbnROb2RlIGZvciBGcmVlQlNENAogICAKMjAwMi0xMC0xMSAxMzo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICM1OTgyODAgZnJvbSBKZWZmIFdhdHNvbjogbWFrZSAtT1Egbm90IHByaW50IHR5cGUgd2FybmluZ3MuCiAgIAoyMDAyLTEwLTExIDEzOjQzICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZml4IGluY2x1ZGUgZGlyZWN0b3J5CiAgIAoyMDAyLTEwLTExIDEzOjQyICBoYXJkYWtlcgoKICAgKiBkaXN0Ly5jdnNpZ25vcmU6CgogICBpZ25vcmUgcnBtIHN1YmRpcgogICAKMjAwMi0xMC0xMSAxMzozMiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGJldHRlciBkb2NzIGFib3V0IGF1dG8tZXh0cmFjdGVkIFNGIG5ld3MKICAgCjIwMDItMTAtMTEgMTM6MDQgIGhhcmRha2VyCgogICAqIGRpc3QvOiBNYWtlZmlsZSwgbmV0LXNubXAuc3BlYzoKCiAgIG1lcmdlIGluIHBhdGNoICM1OTg4Njk6IE1hcmsgSGFyaWcncyBiZXR0ZXIgcnBtIHN0dWZmCiAgIAoyMDAyLTEwLTExIDEyOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCjoKCiAgIEFsdGVybmF0aXZlIHRvIGEgcGF0Y2ggc3VnZ2VzdGlvbjogYWRkIC1PVSB0byBub3QgcHJpbnQgVU5JVFMgc3VmZml4ZXMuCiAgIAoyMDAyLTEwLTExIDEyOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIC4uL2FnZW50L3NubXBfYWdlbnQuYwogICAKMjAwMi0xMC0xMSAxMjoxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGRvbnRQcmludFVuaXRzCiAgIAoyMDAyLTEwLTExIDExOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCAjNjE3MTUxIGZyb20gQW5kcmV3IFJ1Y2tlciBKb25lczogZml4IGxpYndyYXAgaGVhZGVycy4KICAgICAtIEknbSBzdGlsbCB1bmhhcHB5IHdpdGggaG93IGxpYndyYXAgZnVuY3Rpb25zLi4uICBuZWVkcyB0aGlua2luZyBhYm91dC4KICAgCjIwMDItMTAtMTEgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzMxMjY5NCBmcm9tIEpvaG4gU3VydmV5b3I6IGZpeCBkaXNraW8gb24gc29sYXJpcy4KICAgCjIwMDItMTAtMTEgMTA6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBBcHBsaWVkIHBhdGNoICM2MjEzOTggZnJvbSBNYXR0aGV3IEtyZW56ZXIgdG8gZml4IGxpbnV4IGFycCB0YWJsZS4KICAgCjIwMDItMTAtMTEgMDY6NDcgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBjaGcgbmV0c25tcG1pYnMgLT4gbmV0c25tcG1pYnNza2QgKG5vdGVkIG9uIGNvZGVycyBieSBKZWQgV2hpdHRlbikKICAgCjIwMDItMTAtMTEgMDY6NDUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gbm90ZSBzcXVhcmUgYnJhY2tldHMgZm9yIElQdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTExIDA2OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzZWxlY3QoKSBtb3JlIHF1aWNrbHkgaWYgYW4gRUlOVFIgaGFwcGVucwogICAKMjAwMi0xMC0xMCAyMjo1MSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYXBwbGllZCBIYXJyaWUncyBwYXRjaCBkZXNjcmliaW5nIGxvdyBtZW1vcnkgZm9vdHByaW50cwogICAKMjAwMi0xMC0xMCAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBQYXRjaCBmcm9tIEtlbiBIb3JzdGVpbiB0byBmaXggS1NNIG1vZHVsZQogICAKMjAwMi0xMC0xMCAwMzoyMiAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAgIC0gcmVtb3ZlIGJhZCBpbmxpbmVzIHdoaWNoIGNhdXNlIGZpbGUgbm90IHRvIGNvbXBpbGUgd2l0aCBTdW4gQ0MuCiAgICAgICBTZWUgYnVnICM2MjA4MjcuCiAgIAoyMDAyLTEwLTA5IDIzOjAzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBhZGQgLmxhIGZpbGVzCiAgIAoyMDAyLTEwLTA5IDIzOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtYWtlIHRoZSAuc3BlYyBmaWxlIGFsbW9zdCB1c2FibGUuCiAgIAoyMDAyLTEwLTA4IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBGQVEgdXBkYXRlcyBmb3IgZG93bmxvYWQgc2l0ZXMuCiAgIAoyMDAyLTEwLTA4IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBQYXRjaCBmcm9tIEpvc2h1YSBLZXJvZXMgZm9yIHN0cmluZyBjb21wYXJpc29ucwogICAKMjAwMi0xMC0wNyAxMDo1NyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkZWQgYSBzdGF0ZW1lbnQgYWJvdXQgdGhlIENPUFlJTkcgZmlsZSAoc3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMTAtMDYgMTE6MzIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgbnNiLSogbGlrZXMgZnVsbCBwYXRocywgdXBkYXRlIGV4YW1wbGVzOyBmaXggc291cmNlZm9yZ2UgdXBsb2FkIHNpdGUKICAgCjIwMDItMTAtMDUgMTQ6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jCiwgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNiApCiAgIAoyMDAyLTEwLTA1IDE0OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2NzCiAgIAoyMDAyLTEwLTA1IDE0OjQxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC42CiAgIAoyMDAyLTEwLTA1IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlzYyB1cGRhdGVzCiAgIAoyMDAyLTEwLTA1IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTAtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgNS4wLjYKICAgCjIwMDItMTAtMDUgMTQ6MDggIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZW1vdmUgaWxsZWdhbCBmbGFnIGZyb20gbnNiLWNvbmZpZwogICAKMjAwMi0xMC0wNSAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgYWxsb2NhdGUgMCBieXRlcwogICAKMjAwMi0xMC0wNSAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCByZWZlcmVuY2UgcHRyIGFmdGVyIGlzIGhhcyBiZWVuIGZyZWUnZC4KICAgCjIwMDItMTAtMDQgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBzZWNvbmRhcnkgZWZmZWN0IG9mIGJ1ZyA2MTM5ODMgYW5kIHJlYWxseSBmaXggaXQgdGhpcyB0aW1lLgogICAKMjAwMi0xMC0wMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLzogdHVubmVsLmMgKFY0LTItcGF0Y2hlcy4yKSwgdHVubmVsLmMKOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIGZpeCBzb21lIGNvZGluZyBlcnJvcnMKICAgCjIwMDItMTAtMDEgMDc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG9mZmljYWwgcGF0Y2ggNjE3MDQ5OiBpbml0aWFsaXplIGNvbnRhaW5lciBsaXN0IGVhcmxpZXIgKGluIGluaXRfYWdlbnQpCiAgIAoyMDAyLTEwLTAxIDA3OjM1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycyAoZGFtbiB3aW5kb3dzIGVkaXRvcnMpCiAgIAoyMDAyLTA5LTMwIDE1OjE3ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC41ICkKICAgCjIwMDItMDktMzAgMTU6MTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIGluZm8gb24gbWQ1c3VtcyBhbmQgZ3BnIHNpZ25pbmcKICAgCjIwMDItMDktMzAgMTU6MTUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgZml4IGNobW9kIHRvIGRvIHdoYXQgSSB3YW50ZWQsIG5vdCB3aGF0IEkgdG9sZCBpdAogICAKMjAwMi0wOS0zMCAxNToxNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTWFrZWZpbGUudG9wLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNQogICAKMjAwMi0wOS0zMCAxNDoyNyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIG1lcmdlIHByZSBjaGFuZ2VzIGludG8gNS4wLjQgY29tbWVudHMKICAgCjIwMDItMDktMzAgMTQ6MjUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIE5FV1MgdXBkYXRlcyBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgbXkgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNAogICAKMjAwMi0wOS0zMCAxMzowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1ha2UgbGVuIGEgc2l6ZV90IHRvIGZpeCBwcm9ibGVtIG9uIDY0IGJpdCBzeXN0ZW0sIHJlcG9ydGVkIGJ5IHNlYm5vZGAgaW4gSVJDCiAgIAoyMDAyLTA5LTMwIDEzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZG9uJ3QgdXNlIHN0YXRpYyBsb2NhbCB2YXJzLCBhcyB0aGV5IGFyZSBsaWtlbHkgdG8gY2F1c2UgcHJvYmxlbXMgd2l0aCB0aHJlYWRzCiAgIAoyMDAyLTA5LTMwIDEyOjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIG1ha2Ugc3VyZSBpbnN0YWxsIGRpciBpcyByZWxhdGl2ZSB0byBidWlsZCBkaXIKICAgCjIwMDItMDktMzAgMTI6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gZGVidWcKICAgCjIwMDItMDktMzAgMTI6MTkgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKICAgCjIwMDItMDktMzAgMTI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhdm9pZCBpbmZpbml0ZSBsb29wCiAgIAoyMDAyLTA5LTMwIDExOjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgYXNzdW1lIG1ha2UgaXMgR05VIG1ha2UsIGFuZCBzZWFyY2ggZm9yIGl0LiByZXF1aXJlIHVzZXIgdG8gc2V0IGFuCiAgIGVudiB2YXIgaWYgbm8gR05VIG1ha2UgaXMgZm91bmQgaW4gUEFUSAogICAKMjAwMi0wOS0zMCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBpZiBDVlMgZGlyIGlzIHJvLCBhdXRvbWFnaWNhbGx5IG1ha2UgaXQgcncgYmVmb3JlIHVwZGF0ZSBhbmQgcm8gYWZ0ZXIgdXBkYXRlCiAgIAoyMDAyLTA5LTI3IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtYWtlIGdldF9zZXRfY2FjaGUoKSByZXR1cm4gYW4gZXJyb3IgaWYgbm8gcHJldmlvdXMgU0VUIGhhcyBiZWVuIHN0YXJ0ZWQuCiAgIAoyMDAyLTA5LTI3IDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZG91YmxlIGNoZWNrIGFnYWluc3Qgc29tZSBudWxsIHBvaW50ZXJzIGJlZm9yZSB1c2luZyB0aGVtIGluIHRoZSBjYWNoZSBjb2RlLgogICAKMjAwMi0wOS0yNyAxMDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IHRyZWVjYWNoZV9udW0gdG8gLTEgYXQgaW5pdCBvZiBtZW1vcnksIHRvIGJlIGV4dHJhIHNhZmUuCiAgIAoyMDAyLTA5LTI2IDExOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIG1vdmUgbGlid3JhcCB2YXJpYWJsZXMKICAgCjIwMDItMDktMjYgMTE6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBvaywgcmVtb3ZlIHRjcHdyYXBwZXJzIHZhcnMKICAgCjIwMDItMDktMjYgMTA6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBkZWZpbmUgc3R1cGlkIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGNwd3JhcHBlcnMgYmVjYXVzZSB0aGV5IGRvbid0IGdldAogICBjb25jZXB0cyBvZiBlbmNhcHN1bGF0aW9uLiAgYXJnLgogICAKMjAwMi0wOS0yNiAwODoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGNoYW5nZSBjYWxsX3B2IHRvIHBlcmxfY2FsbF9wdiBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgcGVybC4KICAgCjIwMDItMDktMjYgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBydW4gc3RyZHVwKCkgb24gZ2V0X21pYl9kaXIoKSByZXN1bHRzIHRvIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgRXVnZW5lIEJydWsuCiAgIAoyMDAyLTA5LTIzIDEwOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWVudGlvbiBmcmVzaG1lYXQKICAgCjIwMDItMDktMjMgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIGltcGxlbWVudCBhIChsb25nIG5lZWRlZCkgc2V0dGFibGUgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGN1cnJlbnQKICAgICBwZXJzaXN0ZW50IGluZm9ybWF0aW9uLgogICAKMjAwMi0wOS0yMyAwOTo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBtYWtlIG5vdCBpbiB0aW1lIHdpbmRvdyByZXBvcnRzIHRyaWdnZXIgYSByZXNlbmQgb2YgaW5mb3Jtcy4KICAgICAoc3VnZ2VzdGlvbiBmcm9tIEVyaWsgQW5nZ2FyZCkKICAgCjIwMDItMDktMjAgMDg6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmg6CgogICAgIC0gcmVtb3ZlIGZ1bmN0aW9ucyB2YWNtX3BhcnNlX3NlY3VyaXR5IGFuZCB2YWNtX2ZyZWVfc2VjdXJpdHkgd2hpY2gKICAgICAgIGRvbid0IGV4aXN0CiAgIAoyMDAyLTA5LTE5IDE0OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgLSBzdXBwb3J0IGFnZW50IHNodXRkb3ducyAod2VsbCwgb2sgaXQncyBqdXN0IGFuIGFwaSBzaW5jZSBpdCBkb2Vzbid0IHdvcmspLgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAKMjAwMi0wOS0xOSAxMzozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnhzLCBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIGZpeCBhZ2VudCByZXF1ZXN0X2luZm9QdHIgcHJvYmxlbXMuCiAgIAoyMDAyLTA5LTE5IDA5OjA0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgQ29tcGlsZSBhbmQgbGluayB3aXRoICdnZXRvcHQuYycgZXhwbGljaXRseS4KICAgCiAgIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBmb3Igc29tZSByZWFzb24KICAgKHRoYXQgY29tcGxldGVseSBlc2NhcGVzIG1lISksIHVzaW5nIGNvbW1hbmQtbGluZSBvcHRpb25zCiAgIChzdWNoIGFzIC1JUikgd2l0aCB0aGUgUmVsZWFzZSB2ZXJzaW9uIG9mIHNubXB0cmFuc2xhdGUKICAgY2F1c2VzIGEgcnVuLXRpbWUgRExMIGVycm9yLiAgKFRoZSBEZWJ1ZyB2ZXJzaW9uIGlzIGZpbmUpLgogICBUaGUgb3RoZXIgYXBwbGljYXRpb25zIHNlZW0gdG8gYmUgT0sgLSB0aGlzIHByb2JsZW0gb25seQogICBzZWVtcyB0byBoaXQgc25tcHRyYW5zbGF0ZS4gIFNvIGFzIGEgc3RpY2tpbmctcGxhc3RlciwKICAgY29tcGlsaWluZyBnZXRvcHQuYyBpbiBhcyBwYXJ0IG9mIHRoZSBwcm9qZWN0LCBrZWVwcyBib3RoCiAgIHZlcnNpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiBoYXBweS4KICAgICBTb21lb25lIHdpdGggYmV0dGVyIFdpbmRvd3Mga25vd2xlZGdlIHRoYW4gbWUgbmVlZHMgdG8KICAgbG9vayBhdCB0aGlzIGFuZCBmaXggaXQgcHJvcGVybHkuCiAgIAoyMDAyLTA5LTE5IDAzOjE0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHVuZG8gd29yc3Qgb2YgaW5kZW50IGRhbWFnZQogICAKMjAwMi0wOS0xOSAwMzowMyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgX2RwYXJzZSBmdW5jdGlvbnMgKHdoaWNoIGRvbid0IGV4aXN0KQogICAKMjAwMi0wOS0xOCAwNzo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVzZXQgU05NUF9TTEVFUCBhZnRlciBsb29wCiAgIAoyMDAyLTA5LTE4IDA3OjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSByZW1vdmUgdmVyeSBvYnNvbGV0ZSAoYW5kIG5vdCB1c2VkIGFueXdoZXJlKSAjZGVmaW5pdGlvbnMgb2YKICAgICAgIFBBUlRZX01JQl9CQVNFIGFuZCBDT05URVhUX01JQl9CQVNFCiAgIAoyMDAyLTA5LTE3IDIzOjU5ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdHdlYWsgZm9yIDUuMC40IGxhc3QgbWludXRlIHVwZGF0ZQogICAKMjAwMi0wOS0xNyAyMzo0OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGNoZyA+IHRvIC1ndCB0byBhY2hpZXZlIGludGVuZGVkIHJlc3VsdAogICAKMjAwMi0wOS0xNyAyMjozOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE3IDIyOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40ICkKICAgCjIwMDItMDktMTcgMjI6MzIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE3IDIxOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgJChzcmNkaXIpIHRvIGEgZmV3IGRlcGVuZGVuY2llcyB0byB0cnkgYW5kIHJlZHVjZSB0aGUgIyBvZiB0aW1lcyB0aGF0CiAgIGNvbmZpZy5zdGF0dXMgaXMgcnVuIHdoZW4gYnVpbGRpbmcgb3V0c2lkZSB0aGUgc3JjIGRpcgogICAKMjAwMi0wOS0xNyAyMTo1NCAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIHZpc3VhbGx5IHByb3ZvY2F0aXZlIHNlY3Rpb24gaGVhZGVyczsgYWRkIHJlY2VudCBzdGF0dXMgKGFsbCBiYWQgbmV3cyk7CiAgIG5vdCB0byB1c2UgbmV3IHdpbjMyc2RrLmRzdyB0byBnZXQgYWRkaXRvbmFsIGZ1bmN0aW9uYWxpdHkgd2l0aCBwbGF0Zm9ybSBzZGs7CiAgIHJlbW92ZSBpbmZvIG9uIHJlbW92aW5nIGFnZW50eCwgYXMgaXQncyBiZWVuIGFyb3VuZCBub3cgZm9yIGEgd2hpbGU7IGFkZAogICBzZWN0aW9uIG9uIHdoYXQgZmlsZXMgdG8gZWRpdCB0byBhZGQgbWliMmMgZ2VuZXJhdGVkIGNvZGUgdG8gYWdlbnQ7IHJlbW92ZQogICByZWZlcmVuY2UgdG8gc3BlY2lmaWMgcmVsZWFzZSBudW1iZXIgaW4gZXhhbXBsZQogICAKMjAwMi0wOS0xNyAyMToyNSAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIHRha2UgJ3Nkaycgb3V0IG9mIGV4ZSBuYW1lCiAgIAoyMDAyLTA5LTE3IDIxOjI1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgc3dhcCBzbm1wZHNkayBmb3Igc25tcGQKICAgCjIwMDItMDktMTcgMjE6MTQgIHJzdG9yeQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZ2V0IGFsbCBvdXIgZHVja3MgaW4gYSByb3c6IGFkZCBhZHZhcGkzMi5saWIgdG8gbGluayBsaW5lcywgbWFrZSBzdXJlIGFsbAogICBSZWxlYXNlIGFuZCBEZWJ1ZyBsaWJzL2FwcHMgYXJlIGNvbXBpbGUgd2l0aCBzYW1lIEMrKyBzZXR0aW5ncwogICAKMjAwMi0wOS0xNyAyMToxMiAgcnN0b3J5CgogICAqIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIHJlbW92ZSBzZGsgZGVwZW5kZW50IG1vZHVsZXMKICAgCjIwMDItMDktMTcgMjE6MTAgIHJzdG9yeQoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBncm91cCBtb2R1bGVzIHRoYXQgZGVwZW5kIG9uIHdpbjMyIHNkayB0b2dldGhlciwgd2l0aCBpZmRlZgogICAKMjAwMi0wOS0xNyAyMTowOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgbm8gY2FsbGJhY2sgZm9yIHdpbjMyIHVudGlsIHBpcGUgZmQgcHJvYmxlbSBpcyBmaXhlZAogICAKMjAwMi0wOS0xNyAyMTowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBuZXcgdmVyc2lvbnMgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xNyAyMTowNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIG5ldyB3b3Jrc3BhY2UgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xNiAxMzoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtaWIgbW9kdWxlIGxvYWRpbmcgZml4ZXMgYnkgY2FsbGluZyBpbml0X3NubXAgZmlyc3QKICAgCjIwMDItMDktMTMgMTI6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdHdlYWsgZXhhbXBsZSBuc2ItY29uZmlnIGNvbW1hbmQ7IGFkZCAtYiBiYWNrIHRvIGN2czJjbCwgb3RoZXJ3aXNlIHlvdQogICBnZXQgY2hhbmdlbG9nIG1zZ3MgZnJvbSBvdGhlciBicmFuY2hlcyBhbmQgaGF2ZSB0byB3ZWVkIHRoZW0gb3V0CiAgIAoyMDAyLTA5LTEzIDA5OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgZml4IGlsbGVnYWwgb2lkcyB0byBub3QgcmV0dXJuIGEgcG9pbnRlci4KICAgCjIwMDItMDktMTMgMDc6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gbWlub3Igb3B0aW1pc2F0aW9uOyB3ZSBkb24ndCBuZWVkIGEgemVyby10ZXJtaW5hdGVkIGNvbW11bml0eQogICAgICAgc3RyaW5nIGV4Y2VwdCBmb3IgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDItMDktMTMgMDc6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkZWQgLWkgb3B0aW9uIHRvIHJlcXVlc3QgaW5kZW50IG5vdCBiZSBydW4KICAgCjIwMDItMDktMTMgMDc6MDYgIGpicG4KCiAgICogQ09QWUlORzoKCiAgICAgLSBhZGQgbWlzc2luZyB2ZXJiIGluIGludHJvZHVjdGlvbgogICAKMjAwMi0wOS0xMiAxMjo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwcm90ZWN0IGNhbGxpbmcgc29tZSBTdklWIGRlcmVmZXJlbmNlIGZ1bmN0aW9ucyBpZiBpdCdzIG5vdCBhbiBJVi4KICAgICAtIGVsaW1pbmF0ZXMgdGhlIHJlbWFpbmluZyBwZXJsIHdhcm5pbmdzLgogICAKMjAwMi0wOS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgaW5jbHVkZSBsZGZsYWdzIHdoZXJlIGFwcHJvcHJpYXRlICgtLWxpYnMsIC0tYWdlbnQtbGlicywgLi4uKQogICAKMjAwMi0wOS0xMSAyMjo0OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBhZGQvdXNlIG5ldyBvcHRpb24gdG8gcmVtb3ZlIGJ1aWxkIGRpciBhZnRlciBzdWNjZXNzZnVsIGJ1aWxkCiAgIAoyMDAyLTA5LTExIDIyOjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcHJpbnQgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTExIDIyOjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgbXVjaCBtb3JlIGNvbXBsZXggdGVzdHMgb2YgVVNNIHVzZXIgY3JlYXRpb24vbW9kaWZpY2F0aW9uLgogICAKMjAwMi0wOS0xMSAyMjowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwMDFzbm1wdjFnZXQsCiAgIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LCB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwKICAgdGVzdHMvVDAwNHNubXB2MW5vc3VjaDoKCiAgIC0gc3VwcG9ydCBmb3IgbXVsdGlwbGUgdGVzdHMgYXQgb25jZS4KICAgLSBtZXJnZSB2MSB0ZXN0cyBpbnRvIGEgc2luZ2xlIChmYXN0ZXIpIHRlc3QuCiAgIAoyMDAyLTA5LTExIDIxOjM0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgbW9ua2V5IGFyb3VuZCB3aXRoIHJldHVybmluZyBlcnJvciBjb2RlcywganVzdCBleGl0OyBtb3JlIHJlZ2V4cCB0d2Vha3MKICAgCjIwMDItMDktMTEgMTY6MzYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gdXNlIHN1Yi1zZWNvbmQgc2xlZXBzIGlmIGF2YWlsYWJsZQogICAtIHNsZWVwIDEgKHN1Yi0pc2Vjb25kIGF0IGEgdGltZSB3aGVuIHdhaXRpbmcgZm9yIHBhcnRpY3VsYXIgdGVzdHMKICAgICByYXRoZXIgdGhhbiB0aGUgZnVsbCBTTk1QX1NMRUVQIGR1cmF0aW9uLgogICAKMjAwMi0wOS0xMSAxNjoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHVzZSBzbm1wX2xvZyBpbnN0ZWFkIG9mIHByaW50ZiBmb3Igc2h1dGRvd24gbWVzc2FnZS4KICAgCjIwMDItMDktMTEgMTU6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc3NpbmcgdmFyaWFibGUgZGVjbCBwb2ludGVkIG91dCBieSBpcmM6ZGYKICAgCjIwMDItMDktMTAgMTM6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBlcnJvciByZWdleHBzICYgZXJyb3IgbWVzc2FnZXMKICAgCjIwMDItMDktMTAgMTI6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjb21waWxlciB3YXJuaW5ncyBhcmUgeW91ciBmcmllbmQhOyBmaXggZW1iZWRlZCBjb21tZW50czsgZml4IG5vbi12b2lkCiAgIGZ1bmN0aW9ucyB3L25vIHJ0biB2YWx1ZXM7IGNvZGUgcmVvcmcgdG8gZml4IGVtYWNzIGluZGVudCBjb21wbGFpbnRzCiAgIAoyMDAyLTA5LTEwIDEyOjI2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyB0YXJnZXRzIHRvIGhlbHAgbmlnaHRseSBidWlsZCBzY3JpcHQgZGV0ZXJtaW5lCiAgIGlmIGEgbWFrZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiAgIAoyMDAyLTA5LTEwIDEyOjEyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWtzIGZvciBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHM7IGFkIG5zYi1hYm9ydCwgbnNiLWZsb3c7CiAgIGRpcmVjdCBzb21lIG1lc3NhZ2VzIHRvIHN0ZGVycjsgdXNlIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIG1ha2UgdGFyZ2V0czsKICAgdXBkYXRlIGVycm9yIGdyZXAgdG8gaW5jbHVkZSAnKioqJzsgY2hlY2sgZm9yIG5ldyB2YWx1ZSB0byBybSAtZlIgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEwIDEyOjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkcwogICAKMjAwMi0wOS0xMCAxMjowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBhZGQgb3B0aW9uIHRvIHJtIC1mUiBidWlsZCBkaXIgYXQgc3RhcnQ7IGNoZWNrIHNjcmlwIHBhdGggZm9yIG5zYi1mdW5jdGlvbnM7CiAgIHByZWZpeCBkZWZhdWx0IGJ1aWxkIGRpciB3L3ZlcnNpb247IGV4aXQgdy9yYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOS0xMCAxMjowNSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItcGxhdGZvcm06CgogICBhZGQgY3VycmVudCBwYXRoIHRvIHNjcmlwdCB0byBuc2ItZnVuY3Rpb24gc2VhcmNoIHBhdGgKICAgCjIwMDItMDktMDkgMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgSmFyZWQgU21pdGgtTWlja2Vsc29uIChidWcgIzYwNTE0NykKICAgICAgIHdoZXJlYnkgcGFzc2luZyBhbiB1bmtub3duIHR5cGUgY2hhcmFjdGVyIHRvIHNubXBfYWRkX3ZhciB3b3VsZAogICAgICAgY2F1c2UgYSBzZWdmYXVsdC4KICAgCjIwMDItMDktMDkgMDY6MDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciB2YWx1ZSBiZWZvcmUgdXNpbmcgaXQuCiAgIAoyMDAyLTA5LTA5IDA2OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEN1cnJlbnQgaGVhZGVyIHVwZGF0ZSBwYXRjaCBmb3IgbmV0YnNkIGZyb20gUGF0cmljayBXZWxjaGUuCiAgIAoyMDAyLTA5LTA2IDE1OjMwICBkcmllaHVpcwoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBNYXJrIHRoZSBub24tcmF3IHZhcmlhbnRzIG9mIG9iamVjdHMgdGhhdCBhcmUgYWNjZXNzYWJsZSBhcyByYXcgY291bnRlcnMKICAgYXMgZGVwcmVjYXRlZCwgdG8gKGhvcGVmdWxseSEpIGN1dCBkb3duIG9uIHRoZSBudW1iZXIgb2YgdXNlcnMgdGhhdCBnZXQKICAgYml0dGVuIGJ5IGl0Li4KICAgCjIwMDItMDktMDQgMTE6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgYWRkZWQgQnJ1Y2UncyBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTA0IDExOjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggcGVybGNsZWFuCiAgIAoyMDAyLTA5LTA0IDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IHByb2Nlc3MgZ3JvdXBpbmcgYnkgY2FsbGluZyBzZXRzaWQoKSAocmVwb3J0ZWQgYnkgaXJjOlRyb2dMKQogICAKMjAwMi0wOS0wNCAxMTowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc2V0c2lkKCkuCiAgIAoyMDAyLTA5LTAzIDEwOjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYXNlcyB3aGVyZSB0aGVyZSBlaXRoZXIgYXJlIG5vIHRhYmxlcyBvciBubyBzY2FsYXJzLgogICAKMjAwMi0wOS0wMyAxMDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBkb24ndCB1c2UgTlVMTCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA5LTAyIDE5OjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTIgKQogICAKMjAwMi0wOS0wMiAxOTozMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUyCiAgIAoyMDAyLTA5LTAyIDE5OjIyICByc3RvcnkKCiAgICogbWFuL25ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlZCBkb2NzCiAgIAoyMDAyLTA5LTAyIDE5OjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA5LTAyIDE5OjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnOgoKICAgdHJ5IGFuZCBndWVzcyBhdCBzcmMgZGlyIGlmIG5vdCBzcGVjaWZpZWQKICAgCjIwMDItMDktMDIgMTk6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgYWRkIG5vdGUgYWJvdXQgZXJyIHdoZW4gYnVpbGRpbmcgaW4gYW5kIG91dCBvZiBzb3VyY2UgdHJlZQogICAKMjAwMi0wOS0wMiAxODo1NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZnVsbCBwYXRoIHRvIHZlcnNpb250YWcsIGluIGNhc2Ugd2UgYXJlIGJ1aWxkaW50IG91dHNpZGUgb2Ygc3JjIGRpcmVjdG9yeQogICAKMjAwMi0wOS0wMiAxODozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBmb3JjZWQgcHJvbXB0IG9uIGVycm9ycwogICAKMjAwMi0wOS0wMiAxODozNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHdhcm5pbmdzIHdoZW4gVkVSU0lPTiBpcyByZXF1aXJlZDsgYWRkIHRhcmNsZWFuIHRhcmdldDsgYWRkIHRhcmNsZWFuIHRvCiAgIGRpc3RjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMTg6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgYWRkIG1zZyBvbiBlcnJvcjsgYWRkIGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAxNzoyNyAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgd2luMzIgJiBBZ2VudFggc3RhdHVzCiAgIAoyMDAyLTA5LTAyIDE3OjIwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGZpeCB0byBhdm9pZCBsb2NraW5nIHVwIHRoZSBhZ2VudCB3aGVuIGEgc3VnYWdlbnQgZGllcyBkdXJpbmcgYSBzZXQgcmVxdWVzdC4gV2UKICAgbXVzdCBjbGVhbiB1cCB0aGUgZGVsZWdhdGVkIHJlcXVlc3RzIHdoZW4gdGhlIHNlc3Npb24ocykgYXJlIGNsb3NlZCwgc28gdGhhdAogICB0aGV5IHdpbGwgYmUgcHJvY2Vzc2VkIGFuZCByZW1vdmVkLCBhbGxvd2luZyBmdXJ0aGVyIHJlcXVlc3RzIHRvIGJlIHByb2Nlc3NlZC4KICAgCjIwMDItMDktMDEgMTA6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGNoYW5nZSByZXN1bHQgdHlwZSBiYWNrIHRvIGludCwgYXMgaXQgbWF5IHJlY2VpdmUgYSBuZWdhdGl2ZSB2YWx1ZQogICAKICAgUExFQVNFIGNoZWNrIHRoZSB1c2Ugb2YgYSB2YXJpYWJsZSBiZWZvcmUgY2hhbmdpbmcgaXMgc2lnbmVkbmVzcywgZXNwZWNpYWxseQogICBhcmVvdW5kIHJlbGVhc2UgdGltZSEKICAgCjIwMDItMDgtMzAgMTI6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgaW5jbHVkZSBjaGVja192YXJiaW5kLmgKICAgCjIwMDItMDgtMzAgMTI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBjaGFuZ2UgTk9TVUNITkFNRSB0byBOT1NVQ0hJTlNUQU5DRSBhZ2FpbiwgYXMgaXQgc2VlbXMgdGhlIGFnZW50WCBmaXggYWxzbwogICBjb3JyZWN0bHkgZGVhbHMgd2l0aCB0aGlzIGVycm9yIGNvZGUKICAgCjIwMDItMDgtMzAgMDY6MTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSBkZWxldGUgc3Vuc2l0ZS5jbmxhYi1zd2l0Y2guY2ggbWlycm9yLCBhcyBpdCBpc24ndCBvbmUgYW55bW9yZS4KICAgCjIwMDItMDgtMjkgMTA6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgbW9kdWxlcyBiZWZvcmUgY29uZmlndXJpbmcgdGhlbQogICAKMjAwMi0wOC0yOSAwNzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IHRoZSBsYXN0IEFFUyBidWcgSSBrbm93IG9mLiAgQUVTMTI4IHdvcmtzIGdyZWF0LgogICAgIEkgc3RpbGwgTmVlZCB0byBmaXggMTkyLzI1NiBmb3IgbG9uZ2VyIGtleSBnZW5lcmF0aW9uIGZyb20gTUQ1L1NIQQogICAKMjAwMi0wOC0yOSAwNzo1MiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIHVzZSB0aGUgcmlnaHQgcGVybCBtb2R1bGUgbmFtZSBpbiB0aGUgdXNlIGxpbmUuCiAgIAoyMDAyLTA4LTI5IDAzOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgd2luMzIvY29uZmlnLmg6CgogICBNb3JlIFdpbjMyLXJlbGF0ZWQgdGlkeWluZyB1cC4KICAgVGhlIGFnZW50IG5vdyBjb21waWxlcyB3aXRoIHJlbGF0aXZlbHkgZmV3IHdhcm5pbmdzLgogICAKMjAwMi0wOC0yOSAwMTo1MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIERlY2xhcmUgbmV3IHJvdXRpbmUgJ25ldHNubXBfb2lkX2VxdWFscycsIGFuZCBhc3NvcnRlZCBXaW4zMiBjbGVhbnVwIGZpeGVzLgogICAKMjAwMi0wOC0yOCAxMToxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjbGFyaWZ5IGN2czJjbCBzY3JpcHQgbmFtZTsgcmVtb3ZlIC1iIGZsYWcgZnJvbSBjdnMyY2wgcGVyIERhdmU7IGEgbGl0dGxlCiAgIHJlb3JnYW5pemF0aW9uOyBwdXQgY29tbWFuZHMgb24gc2VwYXJhdGUgbGluZXMgcHJlZml4ZWQgd2l0aCAkOyBub3RlIDUueC80LngKICAgZGlmZmVyZW5jZXMgcGVyIERhdmUncyBlbWFpbDsgcGx1ZyBteSBuZXcgc2NyaXB0cyB3aGVyZSBhcHByb3ByaWF0ZQogICAKMjAwMi0wOC0yNyAxMTo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgVVJMIGZvciBjdnMyY2w7IHVwZGF0ZSBjdnMyY2wgY21kcyB0byBjdnMyY2wucGwsIHNpbmNlIHRoYXQncyB0aGUgZmlsZQogICB0aGF0J3MgYWN0dWFsbHkgZGlzdHJpYnV0ZWQKICAgCjIwMDItMDgtMjYgMjE6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNiAyMToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTEgKQogICAKMjAwMi0wOC0yNiAyMToyNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI2IDIxOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTI2IDIxOjE3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBtYW4gcGFnZXMgZm9yIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjYgMjE6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWc6CgogICBuZXcgZmlsZSB0byBjb25maWd1cmUgdXNpbmcgc2FtZSBvcHRpb25zIGFzIG5zYi1wYWNrYWdlIGZvciB0ZXN0IG9yIGRpc3QKICAgCjIwMDItMDgtMjYgMjE6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZG9uJ3QgYXBwZW5kIHN5cy1uYW1lIHdoZW4gYnVpbGRpbmcgaW4gc3JjIHRyZWUKICAgCjIwMDItMDgtMjYgMjE6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggdHlwbwogICAKMjAwMi0wOC0yNiAyMTowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbmFtZSBuc2ItZ2V0LWNvbmZnIC0+IG5zYi1jb25maWctZGlzdDsgdXNlIGRvdWJsZSBxdW90ZXMgY3V6IG9mIHNvbWUKICAgd2llcmQgc2hlbGwgdGhpbmcgSSBkb24ndCB5ZXQgdW5kZXJzdGFuZDsgY2hlY2sgZm9yIHNyYyBkaXIgaW4gY29uZmlnKgogICAKMjAwMi0wOC0yNiAyMDozNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdHdlYWsgY29tbWVudGNoZWNrIHRhcmdldCB0byB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDIwOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMgKGFuZCBhbnl0aGluZyB0aGF0IGV2ZW4gcmVtb3RlbHkgcmVzZW1ibGVzIG9uZSkKICAgCjIwMDItMDgtMjYgMTQ6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBwYXNzIG1ha2UgcGFyYW1zIHRvIG1ha2UsIHNvIHdlIGRvbid0IHRyeSB0byBpbnN0YWxsIGluIC91c3IvbG9jYWwvYmluIG9mCiAgIHRoZSBjb21waWxlIHNlcnZlcnMuLi46LS8KICAgCjIwMDItMDgtMjYgMTQ6MzkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtYWtlIGRpc3QgJiBleHRyYSB0cmFuc3BvcnRzOyBubyBpcHY2IG9uIERhcndpbjsgbWFrZSB0b3VjaGl0IGJlZm9yZSBtYWtlCiAgIAoyMDAyLTA4LTI2IDE0OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jOgoKICAgcmVwbGFjZSB1X2ludDMyX3QsIHdoaWNoIGRvZXNuJ3QgY29tcGlsZSBvbiBTdW4gNS44LCB3aXRoIHVfaW50CiAgIAoyMDAyLTA4LTI2IDEzOjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmM6CgogICBmaXggdW5kZWNsYXJlZCB2YXJpYWJsZSBlcnJvciBzcG90dGVkIG9uIFN1biwgd2hpY2ggbGludXggbWlzc2VkIGNvbXBsZXRlbHkuCiAgIEkgaGF2ZSBubyBpZGVhIGhvdyB0aGlzIGNvbXBpbGVkIGJlZm9yZSEhCiAgIAoyMDAyLTA4LTI2IDEzOjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2xlYW5lciB3YXkgdG8gYWRkIHN5c3RlbSBzcGVjaWZpYyBtb2R1bGVzOyBkaXNhYmxlIHBlcmwsIGFzIGl0IGJyZWFrcwogICBidWlsZHMgb3V0c2lkZSBvZiB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMTI6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXgKICAgCjIwMDItMDgtMjYgMTI6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXg7IGJhaWwgb24gY29uZmlndXJlIGVycm9ycwogICAKMjAwMi0wOC0yNiAxMjowNCAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBhZGQgc3VnZ2VzdGlvbiB0byBzeW1saW5rIG5zYi0qIGluIGxvY2FsIGJpbiBkaXIKICAgCjIwMDItMDgtMjYgMTI6MDMgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLXBhY2thZ2UsIG5zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIGZvciBwcmUtcmVsZWFzZSB0ZXN0IGNvbmZpZ3VyZSBvcHRpb25zCiAgIAoyMDAyLTA4LTI2IDEyOjAyICByc3RvcnkKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIG1ha2Ugc2VjdGlvbiBoZWFkZXJzIHN0YW5kIG91dCBtb3JlOyBtb3ZlIG5vdGUgYWJvdXQgZW5jcnlwdGlvbiBub3QgYmVpbmcKICAgZW5hYmxlZCB0byBhIG1vcmUgcHJvbWluZW50IHBsYWNlLgogICAKMjAwMi0wOC0yMiAwNTozMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43Lmg6CgogICAgIC0gRE9OVF9VU0VfTkxJU1QgcmVpbnN0YXRlZCwgc28gTk9fS01FTV9VU0FHRSByZWR1bmRhbnQKICAgCjIwMDItMDgtMjIgMDU6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgICAgLSByZWluc3RhdGUgdGVzdCBmb3IgRE9OVF9VU0VfTkxJU1QKICAgCjIwMDItMDgtMjIgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBzdG9wIGFuZCByZXN0YXJ0IGxvZ2dpbmcgd2hlbiBIVVBwZWQuICBUaGlzIGFsbG93cyBsb2dmaWxlcyB0byBiZQogICAgICAgcm90YXRlZCBhbmQgc28gZm9ydGguCiAgIAoyMDAyLTA4LTIyIDAxOjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgQWRkIHRoZSBtaXNzaW5nICcteC9YJyBvcHRpb25zIHRvIHRoZSBleGFtcGxlIGF1dGhQcml2IGNvbW1hbmQgbGluZQogICAgIChyZXBvcnRlZCBieSBQcmFzYWRhIFIgVmFua2F5YWxhcGF0aSkKICAgCjIwMDItMDgtMjAgMDg6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIEZBUToKCiAgIHF1aWV0IHNubXB0cmFwZCB3aGVuIGl0IGNhbid0IGNvbm5lY3QgdG8gdGhlIGFnZW50eCBtYXN0ZXIuCiAgIAoyMDAyLTA4LTIwIDA1OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaDoKCiAgICAgLSBhZGQgI2RlZmluZSBOT19LTUVNX1VTQUdFIDEgc2luY2UgbmV0LXNubXAtY29uZmlnLmguaW4gbm8gbG9uZ2VyCiAgICAgICBwYXlzIGF0dGVudGlvbiB0byB0aGUgRE9OVF9VU0VfTkxJU1QgdG9rZW4uICBPbWlzc2lvbiBvZiB0aGlzCiAgICAgICBjYXVzZXMgdGhlIGFnZW50IHRvIGV4aXQgd2l0aCB0aGUgbWVzc2FnZSAiaW5pdF9rbWVtOiBrdm1fb3BlbgogICAgICAgZmFpbGVkOiBlcnJvciAwIi4KICAgCiAgICAgICBOT1RFOiB0aGlzIG1heSBuZWVkIGFwcGx5aW5nIHRvIG90aGVyIG1lbWJlcnMgb2YgdGhlIFNvbGFyaXMgMgogICAgICAgZmFtaWx5LCBidXQgSSBkb24ndCBoYXZlIG1hY2hpbmVzIHRvIGhhbmQgdG8gdGVzdCB0aGlzLgogICAKMjAwMi0wOC0yMCAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZGV0ZWN0IGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlcyAoZ2VOKQogICAgIC0gdW5kbyBpbmRlbnQgbWF5aGVtCiAgIAoyMDAyLTA4LTIwIDAyOjU3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICAgIC0gZm9yIG5vdywgZG9uJ3QgI2luY2x1ZGUgc25tcF9sb2NraW5nLmggc2luY2UgaXQgYnJlYWtzIHJlLWVudHJhbnQKICAgICAgIHN1cHBvcnQgKGJlY2F1c2UgbXV0ZXhfdHlwZSBnZXRzIG11bHRpcGx5LWRlZmluZWQpLiAgRnVydGhlcm1vcmUsIHRoZQogICAgICAgZnVuY3Rpb25zIGl0IGRlY2xhcmVzIGFyZSBuZXZlciB1c2VkIGFueXdoZXJlLCBub3IgZGVmaW5lZCBhbnl3aGVyZS4KICAgCjIwMDItMDgtMjAgMDI6NTYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaDoKCiAgICAgLSBkb24ndCBkZWZpbmUgImRvIG5vdGhpbmciIG1hY3JvcyBmb3Igc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zCiAgICAgICBvbiBXaW4zMiBwbGF0Zm9ybSAoc2luY2UgcmVhbCAiZG8gbm90aGluZyIgZnVuY3Rpb25zIGFyZSByZXF1aXJlZCBmb3IKICAgICAgIHJlYXNvbnMgYmVzdCBrbm93biB0byBzb21lb25lIGVsc2UpLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0yMCAwMjo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmg6CgogICAgIC0gZml4IGhpZ2hseSBib2d1cyBub24tQyBzeW50YXgKICAgCjIwMDItMDgtMjAgMDI6NTMgIGpicG4KCiAgICogc25tcGxpYi9tdF9zdXBwb3J0LmM6CgogICAgIC0gc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zIG5vIGxvbmdlciAjZGVmaW5lZCB0byAiZG8gbm90aGluZyIKICAgICAgIHRhcmdldHMgZm9yIFdpbjMyIGluIG10X3N1cHBvcnQuaCwgdGhlcmVmb3JlIG5vIG5lZWQgdG8gI3VuZGVmIHRoZW0KICAgICAgIGhlcmUuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTE5IDIyOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBoZWFkZXJzIGZvciBjYWNoZSBlbmFibGluZyBmdW5jdGlvbnMuCiAgIAoyMDAyLTA4LTE5IDIyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBkb24ndCB1c2Ugbm9uLWV4aXN0ZW50IG1lbW9yeSBwb2ludGVycyB0byB0aGUgcmVzcG9uc2UgZGF0YSAoZWc6ICJ0aW1lb3V0IikKICAgCjIwMDItMDgtMTkgMTQ6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBDaGFuZ2UgYSBmZXcgY29uZGl0aW9uYWxzIHRvIHVzZSAjaWYgaW4gcGxhY2Ugb2YgI2lmZGVmCiAgIAoyMDAyLTA4LTE5IDE0OjI4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgQWxpZ24gd2l0aCA0LjIgYnJhbmNoCiAgIAoyMDAyLTA4LTE5IDE0OjI2ICBuYmEKCiAgICogbWlicy86IERJU01BTi1TQ0hFRFVMRS1NSUIudHh0LAogICBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwgSUFOQWlmVHlwZS1NSUIudHh0CiwgSU5FVC1BRERSRVNTLU1JQi50eHQsIE1ha2VmaWxlLm1pYiwgaWFuYWxpc3QKLCBtaWJmZXRjaCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IE1JQnMKICAgCjIwMDItMDgtMTkgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEJhaWwgb3V0IGZvciBiYWQgc25tcEFkbWluU3RyaW5nIHZhbHVlCiAgIAoyMDAyLTA4LTE5IDA3OjQzICBqYnBuCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjMpLCBGQVE6CgogICAgIC0gZG9uJ3QgdXNlIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBpbiBleGFtcGxlcwogICAgIC0gYnJlYWsgYSBjb3VwbGUgb2Ygb3Zlci1sb25nIGxpbmVzCiAgICAgLSBtZW50aW9uIG5ldHNubXBfIHZhcmlhbnQgb2YgZHNfc2V0XyBmdW5jdGlvbgogICAKMjAwMi0wOC0xOSAwMjo0NCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMiksIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBhYm91dCB0aGUgc25tcHRyYXBkL0FnZW50WCB3YXJuaW5nIG1lc3NhZ2UuCiAgIAoyMDAyLTA4LTE4IDE4OjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgY29uZmlndXJlIHdpdGggYnVpbGQgaW5zdGFsbCBkaXIsIGl0IGlzIGFscmVhZHkgc3BlY2lmaWVkIG9uIGNtZCBsaW5lCiAgIGZvciBtYWtlIGluc3RhbGwKICAgCjIwMDItMDgtMTggMTA6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtb3JlIGRlYnVnZ2luZyAtIGxvZyB2YWx1ZSByZXF1ZXN0IGlzIHRyeWluZyB0byBzZXQKICAgCjIwMDItMDgtMTYgMTU6MTMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIEJydWNlIFNoYXcgdG8gdGhlIHRoYW5rcyBsaXN0CiAgIAoyMDAyLTA4LTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIEEgZ3JlYXQgdXBkYXRlIHRhbGtpbmcgYWJvdXQgcGVybCBhbmQgc29sYXJpcyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDItMDgtMTYgMDE6NTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIENhdGNoIGV4cGxpY2l0bHkgJ25vU3VjaEluc3RhbmNlJyBleGNlcHRpb25zLCB3aGVuIHdhbGtpbmcgYW4KICAgaXRlcmF0b3ItaGFuZGxlZCBtb2R1bGUsIHNvIHRoYXQgaG9sZXMgY2FuIGJlIHNraXBwZWQgYW5kIHRoZQogICBuZXh0IHJlYWwgaW5zdGFuY2UgcmV0cmlldmVkLiAgKFRoaXMgd2FzIGFscmVhZHkgaGFuZGxlZCBmb3IKICAgbW9kdWxlcyB0aGF0IGRpZG4ndCBtYXJrIG1pc3NpbmcgaW5zdGFuY2VzIGV4cGxpY2l0bHkpLgogICAKMjAwMi0wOC0xNiAwMDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdHVybiBvZmYgY2FjaGluZyBieSBkZWZhdWx0LCBzaW5jZSB0aGUgYWdlbnR4IGNvZGUgYXBwZWFycyBicm9rZW4uCiAgIAoyMDAyLTA4LTE2IDAwOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfYWdlbnQuYzoKCiAgIHNwZWVkIGVuaGFuY2VtZW50cyB2aWEgaW1wbGVtZW50aW5nIGEgcmVnaXN0cmF0aW9uIHN1YnRyZWUgbG9va3VwCiAgIGNhY2hlLiAgZ3JlYXRseSBzcGVlZHMgdGhpbmdzIHVwIHdoZW4gc2ltaWxhciByZXF1ZXN0cyBjb21lIGluCiAgIChzbm1wd2FsaywgLi4uKS4KICAgCjIwMDItMDgtMTUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBOVUxMIGxhYmVscyBpbiBzdWJ0cmVlcwogICAKMjAwMi0wOC0xNSAwODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICB1c2UgbmV0c25tcF9vaWRfZXF1YWxzICh3aGljaCBpcyBzb21ldGltZXMgZmFzdGVyIHRoYW4KICAgc25tcF9vaWRfY29tcGFyZSkgaW4gYSBmZXcgcGxhY2VzIHRvIGFjaGlldmUgYmFyZWx5IG5vdGljZWFibGUgc3BlZWQgZ2FpbnMuCiAgIAoyMDAyLTA4LTE1IDA4OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIGV4aXN0cyBiZWZvcmUgcGFzc2luZyBpdCB0byBzdHJjbXAoKQogICAKMjAwMi0wOC0xNSAwODowNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIE1BTjNQT0RTIHRvIHNvbWV0aGluZyBjb21wbGlhbnQgd2l0aCB0aGUgcGVybCBtYW51YWxzLiAgSSB0aGluay4KICAgCjIwMDItMDgtMTQgMTA6NDIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIGFkZCBkZWJ1ZyBmb3IgbG9jYWwgcGFyc2luZyBvZiBhcmdzCiAgIAoyMDAyLTA4LTE0IDA5OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jLAogICBzdWJhZ2VudC5jOgoKICAgYWRkIG1vcmUgZGV0YWlsZWQgaW4gZGVidWcgbWVzc2FnZXM7IGFkZCBhIGZldyBuZXcgZGVidWdzCiAgIAoyMDAyLTA4LTE0IDA5OjIzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgd2hlbiBhbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgZmluaXNoZWQsIGNoZWNrIGFsbCByZXF1ZXN0cyBzdGF0dXMgc28gdGhhdAogICBhc3Agc3RhdHVzIGlzIHNldCwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0IGFnZW50eCBzZXQgcHJvY2Vzc2luZy4KICAgKG5vdyBpZiBJIGNhbiBqdXN0IGdldCBhbGwgdGhpcyBoYWlyIG9mZiB0aGUgZmxvb3IsIGFuZCBnbHVlIGl0IGJhY2sgdG8gbXkKICAgaGVhZCwgYW5kIHRoZW4gZml4IHRoYXQgZGVudCBpbiB0aGUgd2FsbCB3aGVyZSBJJ3ZlIGJlZW4gYmFuZ2luZyBteSBoZWFkLi4uLikKICAgCjIwMDItMDgtMTMgMTQ6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBhIGxlbmd0aCBjb21wYXJpc29uIHByb2JsZW0gd2l0aCBuZXRzbm1wX29pZF9pc19zdWJ0cmVlKCkKICAgCjIwMDItMDgtMTMgMTQ6MjQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBhIGZldyByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDgtMTMgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIEZpeCBvcGVuIGZpbGUgcnVuYXdheSBvbiBzb2xhcmlzLiAgU2VlIGJ1ZyAjNTkyODA2IHJlcG9ydGVkIGJ5IEphbWVzIElyd2luLgogICAKMjAwMi0wOC0xMyAxMjowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGFycmF5IG9mIHBvaW50ZXJzID0gcG9pbnRlciB0byBhIHBvaW50ZXIKICAgCjIwMDItMDgtMDkgMTY6MzIgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgbWlzYyBkb2MgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE2OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgc25tcGxpYi9zbm1wdXNtLmMKLCBzbm1wbGliL3NubXB2My5jOgoKICAgaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTY6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgc2xpZ2h0IHNwZWVkIHVwcyBmb3Igc25tcF9vaWRfY29tcGFyZSgpIHRvIGRvIHNpbmdsZSBpbnQgY29tcGFyZXMgdGlsbCAhPQogICAKMjAwMi0wOC0wOSAxNjoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSBvcGVuc3NsIDAuOS43IHN1cHBvcnQgZm9yIERFUyBjaGFuZ2VzLgogICAtIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBpbmRlbnQgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzY2FwaS5oLCBzbm1wdXNtLmg6CgogICBkZWZpbmUgQUVTIGtleSBzcGVjaWZpY3MKICAgCjIwMDItMDgtMDkgMTY6MjYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBjaGVjayBmb3Igb3BlbnNzbCAuMC45LjcgREVTIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucy4KICAgLSBjaGVjayBmb3IgQUVTIHN1cHBvcnQgaW4gb3BlbnNzbCAoPiAwLjkuNykKICAgCjIwMDItMDgtMDkgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZml4IG1vZGUgcHJvY2Vzc2luZyBmb3IgUkVTRVJWRTEvUkVTRVJWRTIgdGVzdCBmYWlsdXJlcwogICAKMjAwMi0wOC0wOSAxNToyOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGxvZyBtc2cgd2hlbiB3ZSBpZ25vcmUvZml4IGlsbGVnYWwgZXJyb3JfdmFsdWVzIGZvciB0aGUgY2xpZW50IEFQSXMKICAgCjIwMDItMDgtMDkgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjb3JyZWN0aW9ucyB0byBleGFtcGxlIGNvZGUKICAgCjIwMDItMDgtMDkgMTU6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICByZXZlcnQgZXJyb3JzIHRvIHVuaW5mb3JtYXRpdmUgU05NUHYxIG5vU3VjaE5hbWUgZm9yIEFnZW50WCBnZXQtbmV4dC9pbmNsdXNpdmUKICAgcHJvY2Vzc2luZzsgYWxzbyBhZGQgbW9yZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZQogICAKMjAwMi0wOC0wOSAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGRlYnVnIG1zZyBmb3IgYWdlbnR4IG9pZCBmb3IgY2FzZXMgb3RoZXIgdGhhbiBnZXQvZ2V0bmV4dAogICAKMjAwMi0wOC0wOSAwODo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIGRvbid0IGZyZWUgcmVnaXN0cmF0aW9uIGluZm8gb24gZmFpbHVyZSwgYXMgbmV0c25tcF9yZWdpc3Rlcl9taWIgYWxyZWFkeSBkaWQgaXQKICAgCjIwMDItMDgtMDkgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYwosIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uYywgc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSByZW5hbWUgc25tcF88ZG9tYWluPl9ibGFoIGZ1bmN0aW9ucyB0byBuZXRzbm1wXzxkb21haW4+X2JsYWgKICAgICAtIG1ha2UgdHJhbnNwb3J0IG1lbWJlciBmdW5jdGlvbnMgc3RhdGljLCB0byBlbXBoYXNpc2UgdGhhdCB0aGV5IHNob3VsZAogICAgICAgbm90IGJlIHVzZWQgZGlyZWN0bHkKICAgICAtIGhhbmRsZSBFSU5UUiBpbiBzZW5kIGFuZCByZWN2IGZ1bmN0aW9ucyAoYXMgcG9pbnRlZCBvdXQgYnkgQW50dGkgS3VudHNpCiAgICAgICBpbiBidWcgcmVwb3J0ICM1NzY4MDYpCiAgICAgLSBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA2OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uaCwgc25tcFRDUERvbWFpbi5oLCBzbm1wVENQSVB2NkRvbWFpbi5oCiwgc25tcFVEUERvbWFpbi5oOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDY6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICAgIC0gZG9uJ3QgZXhwb3J0IG5ldHNubXBfdW5peF9ibGFoKCkgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTA5IDA2OjUzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGZpeCBuYXN0eSBmb3JtYXR0aW5nCiAgIAoyMDAyLTA4LTA4IDA5OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHJld29yZCBjb25maWdfcGVycm9yIG1zZ3MgdG8gcmVtb3ZlICJFcnJvciIsIGFzIGl0IGlzIHJlZHVuZGFudAogICAKMjAwMi0wOC0wOCAwOToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIHJlbW92ZSBpZmRlZiB0byBsb2cgbXNnIHRvIHVzZXIsIGFmdGVyIG1ha2luZyBtc2cgbW9yZSBpbmZvcm1hdGl2ZTsgcmVtb3ZlCiAgIGFubm95aW5nIGJsYW5rIGxpbmVzCiAgIAoyMDAyLTA4LTA4IDA4OjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIGZyb20gSGFycmllIHRvIGNvbXBsZXRlbHkgZGlzYWJsZSBrbWVtIHVzYWdlCiAgIAoyMDAyLTA4LTA2IDAwOjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHNldCBtYWluX3Nlc3Npb24gdG8gTlVMTCBpbiBzdWJhZ2VudF9zaHV0ZG93bigpLiAgVGhpcyAoYWxvbmcgd2l0aCB0aGUKICAgICAgIGRlcmVnaXN0cmF0aW9uIG9mIGFsbCBhbGFybXMpIGFsbG93cyBBZ2VudFggZnVuY3Rpb25hbGl0eSB0byBiZQogICAgICAgc3RvcHBlZCBhbmQgcmVzdGFydGVkIGluIHN1YmFnZW50cy4KICAgICAtIFRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA2IDAwOjI3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmg6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAKMjAwMi0wOC0wNiAwMDoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jLCBzbm1wX2FwaS5jOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgICAtIGNhbGwgaXQgZnJvbSBzbm1wX3NodXRkb3duKCkKICAgICAtIHRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA1IDA3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWF0Y2ggZnVuY3Rpb24gZGVmaW5pdGlvbiB3L05ldHNubXBfKl9EYXRhUG9pbnQgdHlwZWRlZnM7IGFkZCBjdnMgSWQKICAgCjIwMDItMDgtMDMgMDg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYnJlYWsgdXAgbGluZXMgbG9uZyB0aGFuIDgwIGNoYXJzOyBhYmNkZSwgbm90IGFiY2RkCiAgIAoyMDAyLTA4LTAzIDAwOjIxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbW9yZSB1cGRhdGVzIGFib3V0IHRoaW5ncyBXZXMgZG9lcyBhdCAxMjozMCBhbQogICAKMjAwMi0wOC0wMiAyMzo0NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4zICkKICAgCjIwMDItMDgtMDIgMjM6NDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIFVwZGF0ZSBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMjM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGQgLmxpYnMKICAgCjIwMDItMDgtMDIgMjM6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTA4LTAyIDIzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMDIgMjM6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmb3Jnb3R0ZW4gdG8gY2hlY2sgaW4gdGVzdCBmb3IgcGVybF9ldiBjaGFuZ2VzCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgcHJpbnQgKG9wcHMpCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgdmVyc2lvbiB1c2FnZS4KICAgCjIwMDItMDgtMDIgMjM6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFBhdGNoICM1NzIzOTQgZnJvbSBLYXRzdWhpc2EgQUJFOgogICAgIC0gc3VwcG9ydCBsaW5rIGxvY2FsIGFkZHJlc3NlcwogICAgIC0gYmluZCB0byBpcHY2IG9ubHkgaWYgSVBWNl9WNk9OTFkgaXMgZGVmaW5lZC4KICAgCjIwMDItMDgtMDIgMjM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggY29uZmlndXJlIHNwZWNpZmllZCBkZWZhdWx0IHZlcnNpb25pbmcKICAgCjIwMDItMDgtMDIgMjI6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzU3MjM5NDogYWRkIGlwdjYgdHJhbnNwb3J0cyB3aGVuIC0tZW5hYmxlLWlwdjYgZGVmaW5lZC4gIFRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wOC0wMiAxNDo1OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6NTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgIHVwZGF0ZQogICAKMjAwMi0wOC0wMiAxNDozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1vcmUgZG9jcy4KICAgCjIwMDItMDgtMDIgMTQ6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjMsIE1ha2VmaWxlLmluOgoKICAgZG94eWdlbiB1cGRhdGUuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIGZvciB5ZXQgbW9yZSBzdHVmZi4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSBhIGZldyBtb3JlIGRpc3QgcmVsYXRlZCBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVycm9yIG1lc3NhZ2UgY2hhbmdlIHRvIHJlbW92ZSBERVMgc3BlY2lmaWMgZXJyb3IgbXNnLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90eXBlbWFwOgoKICAgc3BhY2luZyBmaXhlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQueHM6CgogICByZW5hbWVkIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogbmV0c25tcF9yZXF1ZXN0X2luZm8ucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgcmVuYW1lZCBmaWxlCiAgIAoyMDAyLTA4LTAyIDE0OjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIEFkZCBhICJldmFsdmFycyIgZGlyZWN0aXZlIHRvIGRvIHNpbXBseSByZXBsYWNlbWVudHMuCiAgIAoyMDAyLTA4LTAyIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIENWU1VTRVIgdmFyaWFibGUgd2hlbiBkb2luZyBzdHVmZiBpbnN0ZWFkIG9mIG15IGhhcmQtY29kZWQgbmFtZS4KICAgCjIwMDItMDgtMDIgMTQ6MTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb24gZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNoYW5nZSBjaGVja2NvbW1lbnQgdGFnIHRvIGV4Y2x1ZGUgd2luMzIgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgY2hhbmdlbG9nIGJ1aWxkIG5vdGVzIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY3JlYXRlZCBhIGhvdy10byBmaWxlIGZvciBtYWtpbmcgcmVsZWFzZXMKICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvY2hhbmdlbG9nZml4OgoKICAgY2hhbmdlbG9nIGZpeC11cCBzY3JpcHQKICAgCjIwMDItMDgtMDIgMTA6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0cmFuc2xhdGUgJy8nIGluIHN5c3RlbSBuYW1lIHRvICdfJyAoZm9yIGN5Z3dpbikKICAgCjIwMDItMDgtMDIgMDk6NTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gY3ZzIGdldCBjb21tYW5kIGV4YW1wbGUKICAgCjIwMDItMDgtMDIgMDk6MDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIFN1cHByZXNzICdpbmxpbmUnIHdoZW4gbm90IHVzaW5nIEdDQy4gU3VnZ2VzdGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMi0wOC0wMiAwODo1OSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBvbiBza2lwcGluZyBtYWtlIHRlc3Q7IGFkZCAtcCBmbGFnIHRvIGV4YW1wbGVzCiAgIAoyMDAyLTA4LTAyIDA4OjUyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGRlc2NyaWJlIHVzZSBvZiBuc2ItcGFja2FnZSBzY3JpcHQuIFRlc3RlcnMgYW5kIGNvbW1lbnRzIGFwcHJlY2lhdGVkLi4uCiAgIAoyMDAyLTA4LTAyIDA4OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGxhdGZvcm06CgogICBvdXRwdXQgcGxhdGZvcm0gaW5mbwogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVuYW1lZCB0byBuc2ItcGFja2FnZQogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICByZW5hbWVkIG5zYi1idWlsZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBzY3JpcHQgZnVuY3Rpb24KICAgCjIwMDItMDgtMDIgMDg6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIENoYW5nZSBsb2NhdGlvbiBuYW1lIHRvIFVua25vd24KICAgCjIwMDItMDgtMDIgMDg6MDggIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC5wbSwgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtCjoKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCByZXR1cm4gY29kZQogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZG9uJ3QgcHVsbCBmaXJzdCBhcmcgdGlsIGFmdGVyIGdldG9wdHMvc2hpZnQ7IG1vdmUgc2V0IG9mIGRlZmF1bHQgb3B0cwogICAKMjAwMi0wOC0wMiAwNzozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyBhZGQgLWYgb3B0aW9uIHRvIHByb21wdCB0byBvdmVycmlkZQogICBubyBwcm9tcHQgZmxhZyAodXNlZnVsIGZvciBlcnJvcnMpOyBuZXcgbnNiLW1ha2UgbWV0aG9kOyBjaGVjayByYyBvZgogICBtYWtlIGNsZWFuCiAgIAoyMDAyLTA4LTAyIDA3OjM2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgdHdlYWsgdXNhZ2UKICAgCjIwMDItMDgtMDIgMDc6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCB0eXBvOyByZW1vdmUgZXh0cmEgdHJhaWxpbmcgc2xhc2ggaW4gZGlyCiAgIAoyMDAyLTA4LTAyIDA2OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBjaGVjayBtb3JlIHBsYWNlcyB0byBzb3VyY2UgbnNiLWZ1bmN0aW9uczsgZml4IGZvciBjbWQgbGluZSBidWlsZCBwYXRoCiAgIAoyMDAyLTA4LTAyIDA2OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAganVzdCBzaG93IGVycm9ycyBhZnRlciBidWlsZCwgbm90IHdhcm5pbmdzCiAgIAoyMDAyLTA4LTAxIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZXZlcnQgdG8gbm9uLWFuc2kgcHJvdG90eXBlcyBmb3Igb2xkZXIgcGVybCB3aXRoIG9sZGVyIGNvbXBpbGVycyBvbgogICBvbGRlciBzeXN0ZW1zLiAgTm90IHRoYXQgSSdtIGdydW1weSwgb2YgY291cnNlLgogICAKMjAwMi0wOC0wMSAxNjoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGNoZWNrIGZvciBvbGRlciBhbmQgbmV3IGVtYmVkZGVkIHBlcmwgY2FsbCBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDEgMTQ6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBzeW1saW5rIHRvIHNyYyBmcm9tIGJ1aWxkOyB1cGRhdGUgbnNiLWdldC1jb25maWcKICAgCjIwMDItMDgtMDEgMTQ6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgZGlyCiAgIAoyMDAyLTA4LTAxIDEyOjU4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IGNvbmZpZyBpbnN0YWxsIHBhdGg7IHJlbW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOC0wMSAxMjo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVtb3ZlIGhhcmQgY29kZWQgaW5mbwogICAKMjAwMi0wOC0wMSAxMjoyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBwcm9tcHRzOyByZW1vdmUgcHJldmlvdXMgaW5zdGFsbHM7IHR3ZWFrIGVyciBwYXR0ZXJuCiAgIAoyMDAyLTA4LTAxIDEyOjE0ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkgaW5zdGVhZCBvZiBkc19zZXRfYm9vbGVhbigpCiAgIAoyMDAyLTA4LTAxIDEyOjEyICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgICAgLSBjaGFuZ2UgY29kZSBzYW1wbGUgdG8gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKQogICAgIC0gdXBkYXRlIHJlZmVyZW5jZXMgdG8gbGlicmFyaWVzICh3aGljaCB3ZXJlIHN0aWxsIHRhbGtpbmcgYWJvdXQKICAgICAgIGxpYnVjZGFnZW50IGV0IGFsLikgLS0gUExFQVNFIFJFVklFVyBCRUZPUkUgNS4wLjMKICAgCjIwMDItMDgtMDEgMTI6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBsb3RzIG9mIGZpeGVzIHRvIHByZXZpb3VzZSB1bnRlc3RlZCBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDEyOjA0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBzY3JpcHQgdG8gYnVpbGQgcmVsZWFzZXMuLi4gc3RpbGwgc29tZSBoYXJkY29kaW5nIHdoaWxlIHRlc3RpbmcsIGJ1dCBpdHMKICAgZ2V0dGluZyB0aGVyZS4uLgogICAKMjAwMi0wOC0wMSAxMTo1MSAgcnN0b3J5CgogICAqIGRpc3QvOiBjdnNzaG93LCBjdnN1cDoKCiAgIHV0aWxpdHkgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAwOTozMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHNjYWxhci5jLCBzY2FsYXIyLmM6CgogICBHbyB3aXRoIHRoZSAic2NhbGFyIGFzIHN1cGVyLWhhbmRsZXIgb2YgaW5zdGFuY2UiIGltcGxlbWVudGF0aW9uLgogICBTY2FsYXIxLmMgaXMgcHJvYmFibHkgcmVkdW5kZW50LCBidXQgd2UgY2FuIHJlbW92ZSB0aGlzIGxhdGVyLgogICAoWXVwIC0gSSdtIGEgY293YXJkLi4uLikKICAgCjIwMDItMDgtMDEgMDE6MTEgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE1pbm9yIHR5cG9zLCBwbHVzIGVtcGhhc2lzZSB0aGUgbmVlZCBmb3IgdGhlIElwSGxwQVBJIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTMwIDA4OjI2ICBkdHMxMgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL291dHB1dDoKCiAgIFJlY29nbmlzZSAnMCcgYXMgYSB2YWxpZCBzZXR0aW5nIGZvciBzdWZmaXhQcmludGluZywgYW5kIHVwZGF0ZSB0aGUKICAgcHJvbXB0cyB0byBtYXRjaCB0aGUgdjUgb3V0cHV0IGZvcm1hdHMgZGVmYXVsdHMuIFNlZSBCdWcgIzU2NzQ1MQogICAKMjAwMi0wNy0zMCAwNzo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpcnN0IGF0dGVtcHQgYXQgdGFja2xpbmcgQnVnICM1NzQ0MzQKICAgUmVjb2duaXNlIHRoYXQgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IGlzIGVxdWl2YWxlbnQgdG8gLU9TLgogICBTbm1wdGFibGUgc3RpbGwgY3Jhc2hlcyB3aXRoIC1PZiBvciAtT3UsIGJ1dCBhdCBsZWFzdCB0aGUKICAgZGVmYXVsdCBpbnZvY2F0aW9uIHdvcmtzLgogICAKMjAwMi0wNy0zMCAwNTo0MSAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnQgbmV3bHktZGVmaW5lZCBwdWJsaWMgbmFtZXMsIGFuZCByZS1leHBvcnQgc29tZSByb3V0aW5lcyB0aGF0CiAgIGhhdmUgY2hhbmdlZCBuYW1lLiAgVGhpcyBzaG91bGQgbm93IGNvbXBpbGUgdW5kZXIgVmlzdWFsIEMrKyBhZ2Fpbi4KICAgCjIwMDItMDctMzAgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgcmVtb3ZlIGEgUm93LVN0YXR1cyBhdXRvLWRlbGV0ZWQgcm93IHVudGlsIHRoZSBsYXN0IG1pbnV0ZSwKICAgaW4gY2FzZSBvdGhlciAobG93ZXIpIGhhbmRsZXJzIHRyeSB0byBhY2Nlc3MgaXQuCiAgIAoyMDAyLTA3LTMwIDAxOjM4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4xKSwgRkFROgoKICAgTWVudGlvbiB0aGUgbmVlZCB0byBlc2NhcGUgcXVvdGVzIHdoZW4gcXVlcnlpbmcgc3RyaW5nLWluZGV4ZWQgdGFibGVzLgogICAKMjAwMi0wNy0yOSAyMzo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVwZGF0ZSByZWdpc3RlciBmdW5jdGlvbiBuYW1lCiAgIAoyMDAyLTA3LTI5IDIzOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgYXV0b2dlbiBleGFtcGxlIGNvZGUgZm9yIGluZGV4IGNoZWNraW5nIGluIGV4dHJhY3RfaW5kZXg7IHVwZGF0ZSByZWdpc3RlcgogICBmdW5jdGlvbiBuYW1lOyB1c2UgY29udGFpbmVyIGluICpfZ2V0X2J5X2lkeCgpCiAgIAoyMDAyLTA3LTI5IDE2OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBuZXcgc3RydWN0IG5hbWU7IGFkZCBleGFtcGxlIGNvZGUgYXMgY29tbWVudHMgaW5zdGVhZCBvZiB2YXJfWFhYCiAgIGFuZCBzdWNoOyBpbiBhIGZldyBpbXBvcnRhbnQgcGxhY2VzIGFkZCBjb2RlIHdoaWNoIHdpbGwgYWxsb3cgYSBuZXdseQogICBnZW5lcmF0ZWQgbW9kdWxlIHRvIGJlIGNvbXBpbGVkIGlmIC1EVEFCTEVfQ09OVEFJTkVSX1RPRE8gaXMgc3BlY2lmaWVkOwogICBwcm9iYWJseSBhIGZldyBvdGhlciB0d2Vha3MgSSBmb3Jnb3QKICAgCjIwMDItMDctMjkgMDM6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9hcnJheS5jLCB0YWJsZS5jLCB0YWJsZV9kYXRhLmMKLCB0YWJsZV9kYXRhc2V0LmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZGVmZXJlbmNpbmcgTlVMTCBwb2ludGVycy4KICAgKE1vc3Qgb2YgdGhlc2UgU2hvdWxkIE5ldmVyIEhhcHBlbiBidXQgWW91IENhbid0IEJlIFRvbyBDYXJlZnVsISkKICAgCjIwMDItMDctMjkgMDM6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRldGVjdCBgZG1mZScgZXRoZXJuZXQgY2FyZHMgYXMgZm91bmQgb24gTmV0cmEgWDEgbWFjaGluZXMuCiAgICAgICBUaGFua3MgdG8gSm9obiBPbHNvbiBmb3IgdmVyaWZ5aW5nIHRoaXMgZml4LgogICAKICAgICAgIEFsc28gbm90ZSB0aGF0IGBpbmRlbnQnIGhhcyAtLS0tZWQgdGhlIGZvcm1hdHRpbmcgb2YgdGhpcyBmaWxlCiAgICAgICBiZXlvbmQgbGVnaWJpbGl0eSBpbiBzZXZlcmFsIHBsYWNlcy4gIEkgZG9uJ3QgdGhpbmsgd2Ugd2FudCB0bwogICAgICAgZG8gKnRoYXQqIGFnYWluLgogICAKMjAwMi0wNy0yOSAwMjo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGdWxsZXIgdmFsaWRhdGlvbiBvZiBSb3dTdGF0dXMgdmFsdWVzIHdydCByb3cgY3JlYXRpb24vZXhpc3Rpbmcgcm93cy4KICAgCjIwMDItMDctMjkgMDE6MjUgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVGFrZSBhY2NvdW50IG9mIHJlY2VudCBjaGFuZ2VzIGluIGxpYnJhcnkgZmlsZXMuCiAgICdSZWxlYXNlJyBhcHBsaWNhdGlvbnMgc3RpbGwgZG9uJ3QgbGluayBwcm9wZXJseSwgYnV0IGF0IGxlYXN0CiAgIHRoZSBsaWJyYXJpZXMgY29tcGlsZSwgYW5kIHRoZSAnRGVidWcnIHNpZGUgc2VlbXMgdG8gd29yay4KICAgCjIwMDItMDctMjkgMDE6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgVHdlYWsgaW5saW5lIGhhbmRsaW5nIGZvciBBSVggLSBzdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMi0wNy0yNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgYXV0b2RlcGVuZGVuY2llcyB1bnRpbCBwb3J0YWJsZSBzb2x1dGlvbiBjYW4gYmUgZm91bmQKICAgCjIwMDItMDctMjYgMDg6NDEgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9jb25maWcuaCwgbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICBtaWJfbW9kdWxlX2luaXRzLmg6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKG9ic29sZXRlKSB1Y2Qtc25tcC9yZWdpc3RyeSBtb2R1bGUuCiAgIAoyMDAyLTA3LTI2IDA3OjMyICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFByb3RlY3QgdGhlIFdpbjMyIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBmaWxlLCBzbyB0aGF0IHRoZSBvdGhlciBoZWFkZXIKICAgZmlsZXMgcmVjb2duaXNlIHRoYXQgaXQgaGFzIGluZGVlZCBiZWVuIGluY2x1ZGVkLgogICAKMjAwMi0wNy0yNiAwNzoyNCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMCksIEZBUToKCiAgIEEgYml0IG1vcmUgZGV0YWlsIG9uIG1pYjJjLCBwbHVzIHRoZSBub24td3JpdGVhYmlsaXR5IG9mIHN5c3tMb2NhdGlvbixDb250YWN0fQogICAKMjAwMi0wNy0yNiAwNToyMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOSksIEZBUToKCiAgIEFub3RoZXIgZW50cnkgYWJvdXQgaW52YWxpZCB1c2Ugb2YgbWliMmMuCiAgIAoyMDAyLTA3LTI2IDA1OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgU3VwcHJlc3MgdGhlICJub24tc3RhbmRhcmQiIGNvbmRpdGlvbmFsIGNvbnN0cnVjdCwKICAgc2luY2UgaXQncyBub3QgcmVjb2duaXNlZCBieSBzb21lIHZlcnNpb25zIG9mICdtYWtlJy4KICAgCjIwMDItMDctMjUgMDU6MDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBBZGQgdGhlICdzY2FsYXInIGFuZCAnd2F0Y2hlcicgaGVscGVycyB0byB0aGUgaGVscGVyIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTI1IDAzOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgU3VwcG9ydCBmb3Igd2F0Y2hpbmcgYSBzeXNVcFRpbWUgbWFya2VyLgogICAKMjAwMi0wNy0yNSAwMzoyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgTmV3IHJvdXRpbmUgZm9yIHJldHJpZXZpbmcgYSBjb2x1bW4gdmFsdWUgZGlyZWN0bHkgZnJvbSBhIHJlcXVlc3Qgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAxMzoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgY2hlY2sgZm9yIHNldHRpbmcgc2FtZSB2YWx1ZSBpbiBkc19zZXRfc3RyaW5nLCBzaW5jZSBpdCBmcmVlcyB0aGUgb2xkCiAgIHZhbHVlIGJlZm9yZSBkdXBpbmcgdGhlIG5ldyBvbmUKICAgCjIwMDItMDctMjQgMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L3NubXBkLWluaXQuZDoKCiAgIGZpcnN0IHN0YWIgYXQgaW5pdC5kIHN0YXJ0dXAgc2NyaXB0IGZvciBzbm1wZAogICAKMjAwMi0wNy0yNCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBXaGVuIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2Ygb25lIGNvbHVtbiwgYW5kIG1vdmluZyBvbiB0byB0aGUgbmV4dAogICAoaW4gYSBHZXROZXh0KSwgd2UgbmVlZCB0byBzdGFydCBhZ2FpbiB3aXRoIHRoZSBmaXJzdCByb3cuCiAgIFRoaXMgaXMgcHJvYmFibHkgdGhlIGludGVudGlvbiBvZiB0aGUgY29uZGl0aW9uYWwgYmxvY2sgYXQgdGhlIHN0YXJ0CiAgIG9mIHRoaXMgbG9vcCwgYnV0IEkgY2FuJ3Qgc2VlIGhvdyB0aGlzIHRlc3QgY291bGQgZXZlciBwb3NzaWJseSBtYXRjaC4KICAgCiAgIE5vdGUgdGhhdCB0aGVyZSBpcyBhbHNvIGEgcmVmZXJlbmNlIHRvIHRoZSByb3cgZGF0YSBhY2Nlc3NpYmxlIHZpYQogICB0aGUgJ3JlcXVlc3QtPnBhcmVudF9kYXRhJyBkYXRhIGxpc3QuICAgVGhpcyB3aWxsIGFsc28gbmVlZCB0byBiZQogICByZXdvdW5kLiAgU3VnZ2VzdGlvbnMgYXMgdG8gaG93IGJlc3QgdG8gZG8gc28gZ3JhdGVmdWxseSByZWNlaXZlZC4KICAgCjIwMDItMDctMjQgMDY6MzkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoZSBwb3NzaWJpbGl0eSBvZiBmYWlsaW5nIHRvIGV4dHJhY3QgYSByb3cgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAwNjozNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIGludmFsaWQgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjMgMTQ6NTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIG1pc3NpbmcgY29tbWVudCB0ZXJtaW5hdG9yLjotKAogICAKMjAwMi0wNy0yMyAxMjowMiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgdXNlIG5ldyBuZXRzbm1wX2Fzc2VydCBpbnN0ZWFkIG9mIGFzc2VydAogICAKMjAwMi0wNy0yMyAxMjowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCBzbm1wbGliL01ha2VmaWxlLmluCjoKCiAgIGFkZCBuZXcgbmV0c25tcF9hc3NlcnQsIHdoaWNoIGRlZmF1bHRzIHRvIGxvZ2dpbmcgYSBtZXNzYWdlCiAgIAoyMDAyLTA3LTIzIDA3OjQzICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgKFY0LTItcGF0Y2hlcy4zKSwgbWliX2FwaS4zLmRlZjoKCiAgIEZpeCB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSAnc3ByaW50X3JlYWxsb2MnIGNhbGxzLCB0byBpbmNsdWRlIHRoZSAnYWxsb3dfcmVhbGxvYycgcGFyYW1ldGVyLgogICAKMjAwMi0wNy0yMiAxMDo1OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuZXQtc25tcC5zcGVjLCBuc2ItZnVuY3Rpb25zOgoKICAgbmV3IChhbG1vc3QgZW1wdHkpIHNwZWMgZmlsZTsgc3RhcnQgY3JlYXRpbmcgZnVuY3Rpb25zIGZvciBhdXRvbWF0ZWQgYnVpbGRzCiAgIAoyMDAyLTA3LTIyIDAxOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgQSBtb3JlIGdlbmVyYWxpc2VkIGZvcm0gb2YgdGhlICduc19yZWdpc3Rlcl97dHlwZX1faW5zdGFuY2UnIHJvdXRpbmVzLAogICBpbXBsZW1lbnRlZCBhcyBhIHNlcGFyYXRlIGhlbHBlciBtb2R1bGUsIGFuZCB1c2VhYmxlIHdpdGggYm90aCB0aGUKICAgaW5zdGFuY2UgYW5kIHNjYWxhciBoZWxwZXJzLgogICAgIFRoaXMgYWxzbyBzdXBwb3J0cyBhcmJpdHJhcnkgQVNOIHR5cGVzIChpbmNsdWRpbmcgc3RyaW5ncyBhbmQgT0lEcykuCiAgIAoyMDAyLTA3LTIyIDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcjEuYywgYWdlbnQvaGVscGVycy9zY2FsYXIyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmg6CgogICBBZ2VudCBoZWxwZXIgbW9kdWxlIGZvciBzdXBwb3J0IG9mIHNjYWxhciBvYmplY3RzLgogICBWZXJ5IHNpbWlsYXIgdG8gdGhlICJpbnN0YW5jZSIgaGVscGVyLCBleGNlcHQgdGhhdCB0aGlzIGRlYWxzIHdpdGgKICAgaW52YWxpZCBpbnN0YW5jZSBzdWJpZGVudGlmaWVycyBhcyB3ZWxsIChyZXBvcnRpbmcgbm9TdWNoSW5zdGFuY2UKICAgcmF0aGVyIHRoYXQgbm9TdWNoT2JqZWN0KS4KICAgCiAgIFRoZXJlIGFyZSB0d28gcGFyYWxsZWwgaW1wbGVtZW50YXRpb25zIGFzIHRoZSBtb21lbnQ6CiAgICAgLSBzY2FsYXIxIGlzIGVzc2VudGlhbGx5IGFuIGVuaGFuY2VkIGNvcHkgb2YgdGhlIGluc3RhbmNlIGhlbHBlciwKICAgICAgIGJ1dCBpcyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIGl0LgogICAgIC0gc2NhbGFyMiBzaXRzIGFib3ZlIHRoZSBpbnN0YW5jZSBoZWxwZXIsIGFuZCB1c2VzIHRoYXQgdG8gZG8gbW9zdAogICAgICAgb2YgdGhlIHJlYWwgcHJvY2Vzc2luZy4KICAgU2NhbGFyMSBpcyBwcm9iYWJseSBzbGlnaHRseSBtb3JlIGVmZmljaWVudCwgd2hpbGUgc2NhbGFyMiBmZWVscyBtb3JlCiAgIGluIGtlZXBpbmcgd2l0aCB0aGUgZ2VuZXJhbCBldGhvcyBvZiB0aGUgaGFuZGxlciBtZWNoYW5pc20uCiAgIFdlIHByb2JhYmx5IG5lZWQgdG8gZGVjaWRlIHdoaWNoIHRvIGFkb3B0LCBhbmQganVuayB0aGUgb3RoZXIuCiAgIAoyMDAyLTA3LTE5IDE0OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdXNlIG5ldCBhZ2VudHggcmV0aXJlcy90aW1lb3V0IGRzIHZhbHVlcwogICAKMjAwMi0wNy0xOSAxNDoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICByZWdpc3RlciBwYXJzZXIgZm9yIGFnZW50eFRpbWVvdXQgYW5kIGFnZW50eFJldHJpZXMgdG9rZW5zCiAgIAoyMDAyLTA3LTE5IDE0OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uLWV4aXN0ZW50IG5zdEFnZW50KiBmaWxlcwogICAKMjAwMi0wNy0xOSAxNDoxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBtb3ZlIE9ORV9TRUMgdG8gZGVmaW5pdGlvbnMuaDsgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUyBkZWZhdWx0cwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmg6CgogICBtb3ZlIGRlZmluaXRpb24gb2YgT05FX1NFQyBoZXJlIGZyb20gc25tcGQuYwogICAKMjAwMi0wNy0xOSAxMToyMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBwYXNzIGxvY2FsIG9iaiwgbm90IHJhbmRvbSB1bml0aWFsaXplZCBwb2ludGVyLjotKAogICAKMjAwMi0wNy0xOSAwNDowNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBNQVhQQVRITEVOIGlzbid0IGRlZmluZWQuCiAgIAoyMDAyLTA3LTE5IDAzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFVzZSB0aGUgInN5c3RlbS1pbmRlcGVuZGVudCIgU05NUF9NQVhQQVRIIGxlbmd0aCBkZWZpbml0aW9uIGluc3RlYWQgb2YgTUFYUEFUSExFTgogICAKMjAwMi0wNy0xOCAyMjowMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbmV4aXN0ZW50IG1pYmdyb3VwL25zdEFnZW50TW9kdWxlT2JqZWN0LmgKICAgCjIwMDItMDctMTggMTk6NDQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMiApCiAgIAoyMDAyLTA3LTE4IDE5OjQzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC4yCiAgIAoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtaW5vciBwYXRjaCBmb3Igbm9uLWV4aXN0ZW50IChkaWVkKSBsb2cgZmlsZXMuCiAgIAoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4yCiAgIAoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIG1ha2UgZGVwZW5kIGZpeGVzLgogICAKMjAwMi0wNy0xOCAxODo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFsYXJtLmMsIGV2ZW50LmM6CgogICBtYWtlIHRoZSBybW9uIGNvZGUgY29tcGlsZS4KICAgIC0gbmV3IHN1YnRyZWUgcG9pbnRlciBzdHJ1Y3R1cmUuCiAgICAtIHNwcmludF9vYmppZCAtPiBzbnByaW50X29iamlkCiAgIAoyMDAyLTA3LTE4IDE4OjMyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHNpbGVuY2UgcGVybCBzdWJkaXJlY3RvcnkgYnVpbGQgY29tbWFuZHMuCiAgIAoyMDAyLTA3LTE4IDE4OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gVXNlIG5ldHNoIC10IC1kIHhtbCB0byBnZXQgeG1sIG91dHB1dCBmcm9tIG5ldHNoLgogICAgIChPaywgSSdtIHNpdHRpbmcgaGVyZSBhdCBhbiBJRVRGIGNvbmZlcmVuY2UgaGF2aW5nIGFuIGFyZ3VtZW50IGFib3V0CiAgICAgIHhtbCB2cyBCRVIgYW5kIG5lZWRlZCBhIFhNTCgtbGlrZSkgZXhhbXBsZSBvZiBhIGh1Z2UgZGF0YSBzZXQsIHNvIEkKICAgICAgbWFkZSBuZXRzaCBkbyBpdC4pCiAgIAoyMDAyLTA3LTE4IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBpbml0aWFsIHN1cHBvcnQgZm9yIGRvaW5nIHJlcXVlc3RzIGZyb20gbXVsdGlwbGUgaG9zdHMgKHJldHJpZXZhbCwgbm90IHNldHMpCiAgIAoyMDAyLTA3LTE4IDE3OjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIG1vcmUgZml4ZXMgdG8gc3RpbGwgdWdseSBjb2xvcml6ZWQgdGV4dCAod2VsbCwgdGhlIHRleHQgaXMgcHJldHR5IGJ1dAogICB0aGUgc3VwcG9ydCBpcyB1Z2x5KS4KICAgCjIwMDItMDctMTggMTc6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGNoYW5nZSB0ZXh0IHN0cmluZyBlcnJvciB0byBtYXRjaCBmdW5jdGlvbiBuYW1lIGNhbGxlZC4KICAgCjIwMDItMDctMTggMTU6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHJlbmFtZSBmcmVlIC0+IGNmcmVlIHRvIGF2b2lkIHNvbWUgcHJvYmxlbSB3ZXMgaGFkLi4uIDstKQogICAKMjAwMi0wNy0xOCAxNDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICB0d28gcGVvcGxlIGZpeGluZyBtZW1vcnkgbGVhayBpbiBkaWZmZXJlbnQgcGxhY2VzID0gc2VnZmF1bHQKICAgCjIwMDItMDctMTggMTE6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAkbmFtZSAtPiAkaQogICAKMjAwMi0wNy0xOCAxMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0xOCAwOTo0MCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWRlYnVnLXRva2VucywgLS1pbmRlbnQtb3B0aW9ucwogICAKMjAwMi0wNy0xOCAwOToxOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsIHNubXBsaWIvc25tcC10Yy5jCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBCdWcgIzU4MjM0NywgZm9yIElyaXggNi41IHN1cHBvcnQuCiAgIFN1Ym1pdHRlZCBieSBKYW4gWWVueWEgS2FzcHJ6YWsKICAgCjIwMDItMDctMTggMDk6MTIgIGR0czEyCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0yLXBhdGNoZXMuNSksIHNubXB0cmFwZC44LmRlZjoKCiAgIEZpeCBtYXJrdXAgcHJvYmxlbSBvbiBzbm1wdHJhcGQgbWFuIHBhZ2UgKEJ1ZyAjNTgzMzI5KQogICAKMjAwMi0wNy0xOCAwOToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBUaGUgZml4IGZvciB0aGUgdG1fZ210b2ZmIHByb2JsZW0gb24gQUlYIChCdWcgIzU2NTc2OSkgYWxzbyBhcHBsaWVzIHRvIEFJWCA1CiAgIAoyMDAyLTA3LTE4IDA5OjA2ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jIChWNC0yLXBhdGNoZXMuMSksIGVuY29kZV9rZXljaGFuZ2UuYwo6CgogICBGaXggb2ZmLWJ5LW9uZSBidWZmZXIgb3ZlcmZsb3cgKHBhdGNoICM1NzcyNjEpCiAgIAoyMDAyLTA3LTE4IDA4OjUxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBHZW5lcmF0ZSBvbmUgY29kZS1maWxlIHBlciB0YWJsZSAodG8gbWF0Y2ggdGhlIGhlYWRlciBzdHJ1Y3R1cmUpLgogICBNeSBhcG9sb2dpZXMgaWYgdGhpcyBpc24ndCBjb3JyZWN0LCBSb2JlcnQgLSBidXQgdGhlIHByZXZpb3VzIGJlaGF2aW91cgogICBzZWVtZWQgdG8gYmUgYnJva2VuLgogICAKMjAwMi0wNy0xOCAwODozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgVGFja2xlIHNvbWUgb2YgdGhlIGltbWVkaWF0ZSBkZWZpY2llbmNpZXMgaW4gdGhlIGZpcnN0IGRyYWZ0IG9sZC1hcGkgY29uZmlnLgogICAoTm93IHRoYXQgV2VzIGhhcyBwb2ludGVkIG1lIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGRvY3VtZW50YXRpb24hKQogICAKMjAwMi0wNy0xOCAwODoyMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBGaXggdGhlICdkZWNsJyBzdWJzdGl0dXRpb24gaGFuZGxpbmcgKHNvIGl0IGRvZXNuJ3QgaW5jbHVkZSB0aGUgaW50ZXJuYWwgdG9rZW4gYXMgd2VsbCkuCiAgIAoyMDAyLTA3LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFByb3ZpZGUgdGhlIG1pc3NpbmcgcGFyYW1ldGVyIGluIGEgcmVhZF9vbmx5IGluc3RhbmNlIHJlZ2lzdHJhdGlvbi4KICAgCjIwMDItMDctMTggMDc6MDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCjoKCiAgIEJyaW5nIHRoZSAncmVhZF9vbmx5X2ludCcgaW5zdGFuY2UgaGFuZGxlciBpbiBsaW5lIHdpdGggdGhlIHJlc3Qgb2YKICAgdGhlIGNvbnZlbmllbmNlIGluc3RhbmNlIGhhbmRsZXJzLgogICAoYW5kIGV2ZW4gYnJlYWsgdGhlIGhhYml0IG9mIGEgbGlmZXRpbWUgYW5kIGRlY2xhcmUgdGhlIHRoaW5nLi4uLikKICAgCjIwMDItMDctMTggMDU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBhbm90aGVyIG1lbW9yeSBsZWFrIGR1ZSB0byBhbiBpbXByb3BlciBpZmRlZmVkIG91dCBzZWN0aW9uIG9mIGNvZGUKICAgCjIwMDItMDctMTggMDQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEknbSBiZWdpbm5pbmcgdG8gcmVncmV0IGV2ZXIgcnVubmluZyBpbmRlbnQgb24gdGhlIGNvZGUgYmFzZS4uLgogICAKMjAwMi0wNy0xNyAxNTo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29uZjoKCiAgIGRvY3VtZW50IGFuZCBpbnN0YWxsIG1pYjJjLm9sZC1hcGkuY29uZgogICAKMjAwMi0wNy0xNyAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBzZWdmYXVsdCAocG9zc2libHkgY3JlYXRpbmcgbWVtb3J5IGxlYWspOyBhdXRob3IgbmVlZHMgdG8gZXhhbWluZSBjb2RlCiAgIAoyMDAyLTA3LTE3IDA3OjQxICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFycmF5LXVzZXIuY29uZiwgbWliMmMuY29uZiwKICAgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaW50X3dhdGNoLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBEYXZlJ3MgYmVpbmcgdW5yZWFzb25hYmx5IHBpY2t5IGFib3V0IGdyYW1tYXIgJiBzcGVsbGluZyBhZ2Fpbi4KICAgSnVzdCBpZ25vcmUgaGltLCBhbmQgaGUnbGwgZ28gYXdheS4uLi4uCiAgIAoyMDAyLTA3LTE3IDA3OjIwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBJbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBvbGQgNHgtc3R5bGUgYWdlbnQgQVBJIHVzaW5nIHRoZSBuZXcgdmVyc2lvbiBvZiBtaWIyYy4KICAgSXQgZG9lc24ndCBoYW5kbGUgdHlwZXMgcHJvcGVybHksIGFuZCBJJ20gc3VyZSBJJ2xsIGhhdmUgYnVnZ2VyZWQgdXAgc29tZSBvZgogICB0aGUgY29udHJvbCBzdHJ1Y3R1cmUgaGFuZGxpbmcsIGJ1dCBpdCBzZWVtcyB0byBnZW5lcmF0ZSBzb21ldGhpbmcgdGhhdCdzCiAgIHByZXR0eSBjbG9zZSB0byB0aGUgb2xkIG91dHB1dC4gICBJdCdzIGJldHRlciB0aGFuIG5vdGhpbmcuLi4uLgogICAKMjAwMi0wNy0xNiAyMjo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICByZXN0b3JlIGlubGluZSBmdW5jdGlvbnMgKHNpZ2guIEkgZmVlbCBsaWtlIEknbSBwbGF5aW5nIHJpbmctYXJvdW5kLXRoZS1yb3NpZSkKICAgCjIwMDItMDctMTYgMjE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVuYW1lIHNvbWUgc3RydWN0IG1lbWJlcnMgdG8gbWFrZSBjb2RlIGVhc2llciB0byByZWFkOyBhIGJpdCBvZiByZS1vcmRlcmluZwogICBpbiB0aGUgc2V0IGNvZGU7IG5ldyBmbGFncyBmb3IgbmV3IGFuZCBkZWxldGVkIHJvd3M7IHJvdyBkZWxldGVzIG5vdwogICBhY3R1YWx5IHdvcmshCiAgIAoyMDAyLTA3LTE2IDE5OjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoYW5nZSBjb21wbGV4IG1hY3JvcyBpbnRvIGZ1bmN0aW9ucy4gd291bGQgYmUgbmljZSBpZiBDIGhhZCBpbmxpbmUuCiAgIAoyMDAyLTA3LTE2IDE4OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdW1tLCB0cnkgdXNpbmcgY29ycmVjdCBkZWZpbmUuOi0vCiAgIAoyMDAyLTA3LTE2IDE4OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdGVzdCB0aGF0IG5ldC1zbm1wLWNvbmZpZy5oIGhhcyBiZWVuIGluY2x1ZGVkLCBpbnN0ZWFkIG9mIGFjdHVhbGx5IGluY2x1ZGluZyBpdC4uCiAgIChzaG91bGRuJ3QgdGhpcyByZWFsbHkgYmUgaW4gYWxsIHRoZSBoZWFkZXIgZmlsZXM/KQogICAKMjAwMi0wNy0xNiAxMjoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgY29udGFpbmVycwogICAKMjAwMi0wNy0xNiAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTE2IDExOjE2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzIChncnVtYmxlIGdydW1ibGUpCiAgIAoyMDAyLTA3LTE2IDExOjE0ICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDExOjAyICByc3RvcnkKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5kZXBlbmQsIG1pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgZmFjdG9yeS5jCiAgIAoyMDAyLTA3LTE2IDEwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIG5ldHNubXBfY29udGFpbmVyX2luaXRfbGlzdCgpIGluIHN0YXJ0dXAgaW5pdHMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsIHNubXBsaWIvb2lkX2FycmF5LmMKOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlcwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGcgcGFyYW0gdHlwZSBmcm9tIHZvaWQqIHRvIHN0cnVjdCAqCiAgIAoyMDAyLTA3LTE2IDEwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oOyBhZGQgZmFjdG9yeSwgYmluYXJ5IGFycmF5IC5bY2hdOyBkZXJpdmUKICAgT0JKUyBhbmQgTE9CSlMgZnJvbSBDU1JDUzsgYWRkIChvcHRpb25hbCkgYXV0byBkZXBlbmRlbmN5IGdlbmVyYXRpb24KICAgCjIwMDItMDctMTYgMDk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaDoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA3LTE2IDA5OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgc3RydWN0IHN1YnRyZWUgLT4gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE2IDA5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgbGFzdCByZW1haW5pbmcgcmVmcyB0byBub3cgZGVmdW5jdCBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGdlbmVyaWMgYmluYXJ5IGFycmF5IGNvbnRhaW5lciBleHRyYWN0ZWQgZnJvbSBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oOyBuZXcgdHlwZWRlZiBzdHJ1Y3QgbmV0c25tcF9pbmRleCAob2lkIHB0ciArIGxlbikKICAgCjIwMDItMDctMTYgMDk6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBnZW5lcmljIGNvbnRhaW5lciBpbnRlcmZhY2U7IHVzZSBuZXcgbmV0c25tcF9pbmRleCBpbnN0ZWFkIG9mCiAgIG9pZF9hcnJheV9oZWFkZXI7IHJlbmFtZSBhcnJheV9ncm91cCAtPiByZXF1ZXN0X2dyb3VwCiAgIAoyMDAyLTA3LTE2IDA5OjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFkZCBpdGVyYXRvcnM7IG1vcmUgZnVuY3Rpb24gdHlwZWRlZnM7IHJlbmFtZSBzb21lIGZ1bmMgcHRycywgYWRkIGZpbmRfbmV4dCwKICAgZ2V0X3N1YnNldCwgZ2V0X2l0ZXJhdG9yLCBmb3JfZWFjaCwgbmNvbXBhcmU7IGFkZCBhYmlsaXR5IHRvIGhhdmUgbmVzdGVkCiAgIGNvbnRhaW5lcnM7IG1vcmUgdXRpbGl0eSByb3V0aW5lczsgY29udmVuaWVuY2UgbWFyY3Jvczsgc3RhcnQgYWRkaW5nIGNvbW1lbnRzCiAgIAoyMDAyLTA3LTE2IDA5OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaDoKCiAgIGRlY2xhcmF0aW9ucyBmb3IgYSBnZW5lcmljIGZhY3RvcnkKICAgCjIwMDItMDctMTYgMDg6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2R5bml4LmMsIG1lbW9yeV9ocHV4LmMKLCB2bXN0YXRfZHluaXguYywgdm1zdGF0X2hwdXguYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gYnVnIHJlcG9ydCA1ODE2MTggKGFsc28gYXBwbGljYWJsZSB0byBkeW5peCkKICAgUHJvdmlkZWQgYnkgTmljaG9sYXMgTC4gTmlnYXkKICAgCjIwMDItMDctMTYgMDY6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBPSUQvT0lELnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICByZW1vdmUgIm91ciIgcHJvYmxlbSBhbmQgdXNlIG9sZGVyICJ1c2UgdmFycyIgaW5zdGVhZCBmb3Igb2xkZXIgcGVybC4KICAgICAodGhpcyBzaG91bGQgbWFrZSBpdCB3b3JrIHdpdGggcGVybCA1LjAwNS4gIENvdWxkIHNvbWUgb25lIHRlc3QgdGhpcwogICAgICBmb3IgbWU/KQogICAKMjAwMi0wNy0xNSAwNjo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gbmFtZXMgb2YgbmV0c25tcF9zdWJ0cmVlIGVsZW1lbnRzIGNoYW5nZWQKICAgCjIwMDItMDctMTUgMDY6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE1IDA1OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIFNvbWUgcmVhbGx5IG5hc3R5IGhhY2tzIHRvIGdldCBjb2xvcml6ZWQgdGFibGVzIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTE0IDIwOjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG1pYi50OgoKICAgY29tbWVudCBvdXQgYnJva2VuIHRlc3RzIGZvciBub3cgKFhYWCBtYXJrZWQpCiAgIAoyMDAyLTA3LTE0IDIwOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBnZXRidWxrLgogICAKMjAwMi0wNy0xNCAyMDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIEEgbmV3IGZ1bmN0aW9uIHRvIGNhbGwgYSBzdWItaGFuZGxlciBidXQgcGFzc2luZyBpdCBvbmx5IG9uZSByZXF1ZXN0IHRvIGhhbmRsZS4KICAgCjIwMDItMDctMTAgMjE6MjEgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGRlZmluZSBMT0dfREFFTU9OLCBzaW5jZSB3aW5kb3dzIGRvZXNuJ3QgaGF2ZSBpdAogICAKMjAwMi0wNy0xMCAyMTowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIGRlZmluZSBvZiBpbl9hZGRyX3QsIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiBuZXQtc25tcC90eXBlcy5oCiAgIAoyMDAyLTA3LTEwIDAyOjM2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xMCAwMjozNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGRvbid0IHVzZSAwIGluICVwIGZvcm1hdCBzcGVjaWZpZXJzCiAgIAoyMDAyLTA3LTEwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gZml4IHNvbWUgaG9ycmlibGUgaW5kZW50IGJyb2tlbiBmb3JtYXR0aW5nCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSByZW1vdmUgc29tZSBvYnNvbGV0ZSB2YXJpYWJsZXMKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gcmVmbGVjdCBjaGFuZ2VkIGZ1bmN0aW9uIG5hbWVzIGZyb20gYWdlbnRfcmVnaXN0cnkKICAgCjIwMDItMDctMTAgMDI6MzIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgICAtIGNoYW5nZXMgZHVlIHRvIHJlbmFtaW5nIG9mIHN0cnVjdCBzdWJ0cmVlIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gTk9URSBNRU1PUlkgTEVBSyAod2hpY2ggSSBjYW4ndCBzZWUgaG93IHRvIGZpeCAtLSBuZXcgYWdlbnQgQVBJCiAgICAgICBleHBlcnRzIHBsZWFzZSBleGFtaW5lKQogICAKMjAwMi0wNy0xMCAwMjoyOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBuYW1lLCBzdGFydCwgZW5kIG1lbWJlcnMgYXJlIG5vdyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdG8gcmVkdWNlCiAgICAgICB3YXN0ZWQgbWVtb3J5IChieSBhIGZhY3RvciBvZiA1IG9yIHNvKQogICAgIC0gZnVuY3Rpb25zIGFyZSByZW5hbWVkIGNvbnNpc3RlbnRseQogICAKMjAwMi0wNy0xMCAwMjoyMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50LzogYWdlbnRfcmVnaXN0cnkuaCwKICAgbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuaAosIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0wOSAwNjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSBjYWNoZV9pZCBzdG9yYWdlIHdoZW4gY2xvc2luZyBzZXNzaW9uCiAgIAoyMDAyLTA3LTA5IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBqdXN0IGNhbGwgbmV0c25tcF9kc19zaHV0ZG93bigpIG9uY2UgaW4gc25tcF9zaHV0ZG93bigpCiAgIAoyMDAyLTA3LTA5IDA0OjE1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG5ldHNubXBfZml4dXBfbWliX2RpcmVjdG9yeSgpCiAgIAoyMDAyLTA3LTA5IDAzOjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIGEgY2FzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA4IDIyOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgZXh0ZXJuIEMgZm9yIEMrKyBjb21waWxlcwogICAKMjAwMi0wNy0wOCAwNzoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgICAtIHJlbW92ZSBvYnNvbGV0ZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTA3LTA3IDE5OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTA3IDE5OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDctMDcgMTk6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgcHJvYy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsIGhvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwogICAKMjAwMi0wNy0wNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbWFrZSBwYXJhbSBjb25zdDsgZml4IGNvbXBpbGUgY29uc3Qgd2FybmluZwogICAKMjAwMi0wNy0wNyAxODoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgZml4IG1lbW9yeSBsZWFrOyBwcmVwIGEgZmV3IGNvbW1lbnRzIGZvciBpbmRlbnQKICAgCjIwMDItMDctMDYgMTQ6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yLnByZTEgKQogICAKMjAwMi0wNy0wNiAxNDoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgY2hhbmdlIHByb2plY3QgdmVyc2lvbiB0byA1LjAuMgogICAKMjAwMi0wNy0wNiAxNDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgc25tcHRyYXBkIGlzIGFjdHVhbGx5IGJ1aWx0IGluIHRoZSBhcHBzIGRpcmVjdG9yeSwgbm90IHRoZSBhZ2VudCBkaXJlY3RvcnkuCiAgIAoyMDAyLTA3LTA1IDExOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjbGFyaWZ5IGRpcmVjdGlvbnMgZm9yIG9idGFpbmluZyBwZXJsL1NOTVAgbW9kdWxlLgogICAKMjAwMi0wNy0wNSAwNToxOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSAuLi4KICAgCjIwMDItMDctMDUgMDM6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvY2xpZW50LmMsIG1pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBzeXNPYmplY3RJRCB3YXMgYmVpbmcgcmV0dXJuZWQgbWludXMgaXRzIGxhc3Qgc3ViLWlkZW50aWZpZXIgYmVjYXVzZQogICAgICAgdGhlIGxlbmd0aCB2YXJpYWJsZSBoYWQgbm90IGJlZW4gdXBkYXRlZCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgaXQKICAgICAgIGlzIG5vdyBsb25nZXIuICBDb2RlIGNoYW5nZWQgdG8gdXNlIHNpemVvZigpIGluc3RlYWQsIHNvIHRoaXMgd29uJ3QKICAgICAgIGhhcHBlbiBhZ2Fpbi4gIFJlcG9ydGVkIGJ5IFN0aWFuIFNvaWxhbmQgKGJ1ZyAjNTc3NDM5KS4KICAgCjIwMDItMDctMDQgMTA6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcAogICAKMjAwMi0wNy0wNCAwNzowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgaGFuZGxpbmcgb2Ygb3BhcXVlIHBvaW50ZXIgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzIHRvCiAgICAgICBhdm9pZCBib3RoIG11bHRpcGxlIGZyZWUoKSBwcm9ibGVtIGFuZCB1bm5lY2Vzc2FyeSBjb3B5aW5nLgogICAKMjAwMi0wNy0wNCAwNjowMCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgIChWNC0yLXBhdGNoZXMuWzUsOV0pLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBOZXR3b3JrRGlzayBwYXRjaCAjNTU0NTU0CiAgIAoyMDAyLTA3LTA0IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgKICAgKFY0LTItcGF0Y2hlcy5bNSwxXSksIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTkZTIGZpbGVzeXN0ZW0gcGF0Y2ggIzU1NDU1MwogICAoc2ltcGxpZmllZCB0byBhdm9pZCB0aGUgcmUtaW5kZW50YXRpb24gLSB3aGljaCBtYWtlcyBpdCBlYXNpZXIgdG8gc2VlCiAgICB3aGF0J3MgY2hhbmdlZC4gIFRoZSB3aG9sZSBIb3N0UmVzIGdyb3VwIG5lZWRzIGNsZWFuaW5nIHVwIGFueXdheSEpCiAgIAoyMDAyLTA3LTA0IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbnN1cmUgdHJhbnNwb3J0IG9wYXF1ZSBkYXRhIGlzbid0IG11bHRpcGx5IGFzc2lnbmVkCiAgIChhbmQgaGVuY2UgbXVsdGlwbHkgZnJlZWQpIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cy4KICAgRGF0YWdyYW0tYmFzZWQgdHJhbnNwb3J0cyBkb24ndCBzdWZmZXIgZnJvbSB0aGlzIHByb2JsZW0uCiAgIEJhc2VkIG9uIFBhdGNoIDU3Mzc3MQogICAKMjAwMi0wNy0wMyAxNjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgYmUgcHJlY2lzZSBhYm91dCB3aGF0IGZpbGUgbmVlZHMgdG8gYmUgY29uZmlndXJlZCBmb3IgYWNjZXNzIGNvbnRyb2wKICAgCjIwMDItMDctMDMgMTQ6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IG1pbm9yIGdyYW1tYXIgZXJyb3JzOyBhZGQgZGVzY3IgZm9yIG1pYjJjLmFycmF5LXVzZXI7IGFkZCBzZWN0aW9uIGhlYWRlcgogICBmb3IgZ2VuZXJhdGluZyBoZWFkZXIgZGVmaW5pdGlvbiBmaWxlcwogICAKMjAwMi0wNy0wMyAxMzoxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiB0eXBlcy5oLCBsaWJyYXJ5L3N5c3RlbS5oOgoKICAgbW92ZSBpbmNsdWRlIGZvciBpbl9hZGRyX3QgdG8gbmV0LXNubXAvdHlwZXMuaCwgd2hlcmUgaW5fYWRkcl90IGlzIGRlZmluZWQKICAgZm9yIHN5c3RlbXMgdy9vdXQgbmV0aW5ldC9pbi5oCiAgIAoyMDAyLTA3LTAzIDEyOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBtb3JlIHR3ZWFrcyBub3RpY2VkIG9uIHRoZSBtYWlsaW5nIGxpc3QKICAgCjIwMDItMDctMDMgMDg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIG1ha2UgdGVzdCBjbGVhbnVwcyB0ZXN0LnBsCiAgIAoyMDAyLTA3LTAzIDAzOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYyAoVjQtMi1wYXRjaGVzLjEpLCB1dGlsX2Z1bmNzLmMKOgoKICAgU2h1dCB0aGUgYWdlbnQgZG93biBjbGVhbmx5IGJlZm9yZSByZXN0YXJ0aW5nLgogICBUaGlzIGNsb3NlcyBhbnkgU05NUC9BZ2VudFggcG9ydHMgYXMgd2VsbC4KICAgCjIwMDItMDctMDMgMDM6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE9JRCBzdWItaWRlbnRpZmllcnMgYXJlIHVuc2lnbmVkLCBzbyB0cmVhdGluZyB0aGVtIGFzIHNpZ25lZCBjYW4KICAgZ2l2ZSB0aGUgd3JvbmcgcmVzdWx0cyB3aXRoIGxhcmdlIHZhbHVlcy4KICAgCjIwMDItMDctMDMgMDM6MjAgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmggKFY0LTItcGF0Y2hlcy41KSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgRW5zdXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkLgogICAKMjAwMi0wNy0wMyAwMjozNCAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBUZXN0aW5nIGZvciA8c3lzL2Rpc2tsYWJlbC5oPiByZXF1aXJlcyA8bWFjaGluZS90eXBlcy5oPiBvbiBOZXRCU0QgMS41LgogICBSZXBvcnRlZCBieSBGZWxpY2lhIE5lZmYuCiAgIChBcHBhcmVudGx5IGZyb20gdGhlIE5ldEJTRCBidWcgZGF0YWJhc2UgLSB3aHkgdGhleSBkaWRuJ3QgdGVsbCB1cyBhYm91dAogICBpdCBpcyBhIG15c3RlcnkgdG8gbWUuLi4uKQogICAKMjAwMi0wNy0wMyAwMjoxOSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHRoZSBkZWZhdWx0IHZhbHVlIGZvciBzeXNPYmplY3RJRCBhcyByZXBvcnRlZCBpbiB0aGUgY29uZmlndXJlIC0taGVscCBvdXRwdXQuCiAgIChUaGUgYWN0dWFsIHZhbHVlIHVzZWQgaXMgY29ycmVjdCAtIGl0J3MganVzdCB0aGUgaGVscCBvdXRwdXQgdGhhdCdzIHdyb25nKS4KICAgU3BvdHRlZCBieSBTYW5kaHlhIFNhdHlhbmFyYXlhbi4KICAgCjIwMDItMDctMDIgMjM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICB1cGRhdGUgdGV4dCBmb3IgdmFyaW91cyAuY29uZiBmaWxlcwogICAKMjAwMi0wNy0wMiAxMzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgZml4ZXMgbm90ZWQgb24gdGhlIG1haWxpbmcgbGlzdCBieSBQYXRyaWNlIEthZGlvbmlrIDxrYWRpb25pa0BlbnNlaXJiLmZyPgogICAKMjAwMi0wNy0wMiAwMjozOSAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQWRkIHRoZSAnc25tcGQnIGFuZCAnc25tcHRyYXBkJyBiaW5hcnkgbmFtZXMgdG8gdGhlIGFwcHJvcHJpYXRlIHBhdGhzCiAgIHdoZW4gc2V0dGluZyB1cCB0aGUgdGVzdGluZyBmcmFtZXdvcmsuCiAgIAoyMDAyLTA3LTAxIDA3OjUzICBkdHMxMgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuOCksIGFzbjEuYzoKCiAgIEVuY29kZS9EZWNvZGUgT0lEcyBvZiB0aGUgZm9ybSAyLlggKFggPiA0MCkgY29ycmVjdGx5LgogICAKMjAwMi0wNy0wMSAwMjo0MCAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggaG9ycmlibGUgZm9ybWF0dGluZyBpbiBoZWxwIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAyLTA3LTAxIDAyOjIzICBkdHMxMgoKICAgKiBzZWRzY3JpcHQuaW46CgogICBQaWNrIHVwIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gZm9yIHRoZSByb290IG9mIHRoZSBVQ0QgZXh0ZW5zaWJsZSBhZ2VudCB0YWJsZXMKICAgKHNvIHRoYXQgdGhlIEVYQU1QTEUuY29uZiBmaWxlIGdldHMgc2V0IHVwIHdpdGggdGhlIGNvcnJlY3QgbnVtZXJpYyBPSURzKQogICAKMjAwMi0wNi0yOCAwNjo0NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdGNwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yOCAwNDo0MSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgVXBkYXRlIGRlZmF1bHQgc3RvcmUgcmV0cmlldmFsIGZ1bmN0aW9ucyB0byB1c2UgdGhlIGNvcnJlY3QgbmFtZS4KICAgCiAgIE5vdGUgdGhhdCB0aGlzIHRlc3Qgc2NyaXB0IGFwcGVhcnMgdG8gaW5jbHVkZSB0d28gaW5maW5pdGUgbG9vcHMuCiAgIEknbSBub3QgY2xlYXIgaG93IHRoaXMgaXMgZXhwZWN0ZWQgdG8gcnVuIHN1Y2Nlc3NmdWxseSA/CiAgIAoyMDAyLTA2LTI4IDA0OjM5ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmVtb3ZlIHJlZmVyZW5jZSB0byBub24tZXhpc3RlbnQgZGVndWdnaW5nIGZ1bmN0aW9uLgogICAKMjAwMi0wNi0yOCAwNDozNyAgZHRzMTIKCiAgICogcGVybC9tYW5hZ2VyLzogTWFrZWZpbGUuUEwsIGRpc3BsYXl0YWJsZS5wbSwKICAgZ2V0VmFsdWVzLnBtLCBtYW5hZ2VyLnBtLCBzbm1wdG9zcWw6CgogICBCcmluZyBwZXJsICdtYW5hZ2VyJyBtb2R1bGUgdW5kZXIgdGhlIE5ldFNOTVAgYmFubmVyCiAgIChib3RoIGluIHRlcm1zIG9mIG1vZHVsZSBncm91cCBuYW1lLCBhbmQgcmVmZXJlbmNlcyB0byAndWNkLXNubXAnKS4KICAgUmVtb3ZlIHNvbWUgVUNELXNwZWNpZmljIHNldHRpbmdzLgogICAKICAgTm90ZSB0aGF0IHNubXB0b3NxbCBzdGlsbCByZWZlcnMgZXhwbGljaXRseSB0byBXZXMnIFVDRCBlbWFpbCBhZGRyZXNzLAogICBhbmQgbWFuYWdlci5wbSB0byBXZXMnIFVDRCBmaWxlc3RvcmUgcGF0aC4gIFRoZSByZWxldmFudCBsaW5lcyBoYXZlCiAgIGJlZW4gaGlnaGxpZ2h0ZWQsIHRvIGVuY291cmFnZSBhbnlvbmUgd2lzaGluZyB0byB1c2UgdGhpcyB0byBjaGFuZ2UgdGhlbS4KICAgCjIwMDItMDYtMjggMDQ6MTIgIGR0czEyCgogICAqIHBlcmwvOiBBbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIG1hbmFnZXIvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgY2hlY2tpbmcgZm9yICJpbnRlcm5hbCIgcHJlcmVxdWlzaXRlcywgc28gdGhhdCAicGVybCBNYWtlZmlsZS5QTCIKICAgYXQgdGhlIHRvcCBsZXZlbCB3aWxsIHdvcmsgLSBldmVuIG9uIGEgcHJpc3RpbmUgc3lzdGVtLgogICAKICAgUW46CiAgICAgSXMgaXQgbmVjZXNzYXJ5L2Rlc2lyYWJsZSB0byBzZXBhcmF0ZSB0aGUgTmV0U05NUCBtb2R1bGVzIHRvIHRoaXMgZXh0ZW50PwogICBXb3VsZCBpdCBub3QgYmUgc2ltcGxlciB0byBoYXZlIGFsbCBvZiB0aGUgbWFpbiAucG0vLnhzIGZpbGVzIGluIGEgc2luZ2xlCiAgIE5ldFNOTVAgZGlyZWN0b3J5LCBhbmQgY29tcGlsZS9pbnN0YWxsIHRoZW0gYWxsIGZyb20gdGhlcmU/CiAgIAoyMDAyLTA2LTI4IDAxOjQ1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENoZWNrIGZvciAtLXdpdGgtZW50ZXJwcmlzZSAoZXQgYWwpIGJlaW5nIGludm9rZWQgd2l0aG91dCBhIHZhbHVlLCBhbmQgYm9tYiBvdXQuCiAgIAoyMDAyLTA2LTI3IDIxOjQzICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBuZXcgUkVBRE1FIGRldGFpbmxpbmcgdGhlIHVzZSBvZiBTRklPIHRvIGNpcmN1bXZlbnQgdGhlIDI1NSBmZCBsaW1pdCBvbgogICBzb2xhcmlzLgogICAKMjAwMi0wNi0yNyAxMTowOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGNoYW5naW5nIGFycmF5OyBhZGQgbmV0c25tcF90YWJsZV9hcnJheV9yZW1vdmVfcm93KCkKICAgCjIwMDItMDYtMjcgMDQ6MTUgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgU29tZSB2ZXJzaW9ucyBvZiAnbWFrZWRlcGVuZCcgKGUuZy4gUmVkSGF0IDcuMSksIGNhbid0IGhhbmRsZSAiLW9zdWZmaXgiCiAgIGFzIGEgc2luZ2xlIG9wdGlvbi4gIEFsbCB2ZXJzaW9ucyBzZWVtIGhhcHB5IHdpdGggIi1vIHN1ZmZpeCIgc28gdXNlIHRoYXQuCiAgIAoyMDAyLTA2LTI3IDAzOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIEVOVl9TRVBBUkFUT1JfQ0hBUiByYXRoZXIgdGhhbiBoYXJkd2lyaW5nICc6JyBpbiBuZXRzbm1wX3NldF9taWJfZGlyZWN0b3J5CiAgIChhcyBzdWdnZXN0ZWQgYnkgUm9iZXJ0KQogICAKMjAwMi0wNi0yNyAwMzoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdWRwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yNyAwMzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzbm1wX21pYi5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfbWliLmMKOgoKICAgVmFsaWRhdGUgbmV3IHNubXBFbmFibGVBdXRoZW5UcmFwcyB2YWx1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KICAgU3BvdHRlZCAmIGZpeGVkIGJ5IFNoYW50aGEgS3VtYXJhCiAgIAoyMDAyLTA2LTI1IDE0OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBhZGQgQVBQVE9QUyAoLUNxKSBmb3Igc3VwcHJlc3Npbmcgb3V0cHV0IG9mIHNldCByZXN1bHRzIG9uIHN1Y2Nlc3MKICAgCjIwMDItMDYtMjUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIEFwcGx5IHBhdGNoICM1NTk4NDggdG8gdXNlIHRoZSAvcHJvYyBwc2V1ZG8tZmlsZXN5c3RlbSB1bmRlciBMaW51eAogICAocmF0aGVyIHRoYW4gcGFyc2luZyB0aGUgb3V0cHV0IG9mIHBzKQogICAKMjAwMi0wNi0yNSAwODo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBDaGVjayBmb3IgJ2FpeDQnICh3aGljaCBpcyB0aGUgdG9rZW4gZGVmaW5lZCBpbiB0aGUgc3lzdGVtIGhlYWRlciBmaWxlKQogICByYXRoZXIgdGhhbiAnYWl4Jy4gICBTZWUgYnVnICM1NjU3NjkKICAgCjIwMDItMDYtMjUgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFRyZWF0ICcwJyBhcyBhbiBpbnZhbGlkIGluZGV4IGZvciBhICJzaW1wbGUgdGFibGUiLgogICAKMjAwMi0wNi0yNSAwNzozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzeXNDb250YWN0LjAgYW5kIHN5c0xvY2F0aW9uLjAKICAgY29uZmlndXJhdGlvbiB0b2tlbnMuCiAgIAoyMDAyLTA2LTI1IDA2OjQwICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICBkZWZhdWx0X3N0b3JlLjMudG9wOgoKICAgICAtIGFkZCBuZXRzbm1wXyBwcmVmaXggdG8gZGVmYXVsdF9zdG9yZSBmdW5jdGlvbnMKICAgCiAgICAgLSBjbGVhbiB1cCBtYW5wYWdlIGEgYml0CiAgIAogICAgIC0gZml4IGJyZWFrYWdlIGluIGdlbmVyYXRpb24gb2YgZGVmYXVsdF9zdG9yZS4zLmggZHVlIHRvIGF1dG8taW5kZW50YXRpb24KICAgICAgIG9mIGRlZmF1bHRfc3RvcmUuaAogICAKMjAwMi0wNi0yNSAwMjo1NSAgamJwbgoKICAgKiBFWEFNUExFLmNvbmYuZGVmIChWNC0yLXBhdGNoZXMuMyksIEVYQU1QTEUuY29uZi5kZWY6CgogICAgIC0gbWVudGlvbiB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24gZXQgYWwuIGluIHNubXBkLmNvbmYgbWFrZXMgdGhlbQogICAgICAgcmVhZC1vbmx5CiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugc3ludGF4IG9mIGFsbCBleGFtcGxlIGNvbW1hbmQgbGluZSB0b29scyB0byB1c2UgbmV3ZXIKICAgICAgIC1jIENPTU1VTklUWSBzeW50YXggbm90IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAoyMDAyLTA2LTI0IDA4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIG1ha2UgYnVmZmVyIHNpemUgaW5jcmVhc2Ugbm90ZSBhIGRlYnVnIHN0YXRlbWVudCByYXRoZXIgdGhhbiBhIGdlbmVyaWMKICAgbG9nIHN0YXRlbWVudC4KICAgCjIwMDItMDYtMjMgMTg6NDAgIGRyaWVodWlzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgSGFuZGxlIENPVU5URVI2NCBpbiBfX3RyYW5zbGF0ZV9hc25fdHlwZS4KICAgCjIwMDItMDYtMjMgMTY6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNjcmlwdCBhbmQgdGhlIGxhbmd1YWdlIGl0IGhvdXNlcy4KICAgICAobWFuIHBhZ2UgYXV0by1nZW5lcmF0ZWQgZnJvbSB0aGUgY29udGFpbmVkIHBvZCBkb2N1bWVudGF0aW9uKQogICAKMjAwMi0wNi0yMyAxNTowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIHVwZGF0ZSB0byByZWZlcmVuY2UgdG9wIGxldmVsIE1ha2VmaWxlLlBMCiAgIAoyMDAyLTA2LTIzIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNC0yLXBhdGNoZXMuMSksIFNOTVAueHM6CgogICBmaXggcmVwb3J0ZWQgYnkgV2lsbGVtIERla2tlciBmb3IgV2luZG93cy4gIEJ1ZyAjNTQzMTk0IGZpeGVkLgogICAKMjAwMi0wNi0yMiAwODozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IG1ldGhvZG9sb2dpZXMKICAgCjIwMDItMDYtMjEgMTY6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZmluYWwgKGhvcGVmdWxseSEpIGZpeCBmb3IgcGFyc2luZyBpcCBhZGRyZXNzZXMgZnJvbQogICAiRmNvLiBKYXZpZXIgUmlkcnVlam8iIDxhY2JyaXBlZkBzaS5laHUuZXM+CiAgIAoyMDAyLTA2LTE5IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZnJvbSBkb3h5Z2VuCiAgIAoyMDAyLTA2LTE5IDExOjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmludF93YXRjaC5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIHNjYWxhciBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBnZW5lcmF0aW5nIHNjYWxhciBjb2RlLgogICAKMjAwMi0wNi0xOSAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgY2xlYW4gdXAgbXVsdGktbGluZSBjb21tZW5kIHdoaWNoIHdhcyBtZXNzZWQgdXAgYnkgaW5kZW50LgogICAKMjAwMi0wNi0xOSAxMTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIGFkZCBzdXBwb3J0IGZvciBwcm9tcHRpbmcgb2YgdW5rbm93biBwYXJhbWV0ZXJzIHRvIGFsaWFzZXMuCiAgIC0gbWlzYyBvdGhlciBpbXByb3ZlbWVudHMgKGxpa2UgInJlaGFzaCIpCiAgIAoyMDAyLTA2LTE5IDExOjM4ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggZm9yIG5ldyBkZWZhdWx0IHN0b3JlIEFQSQogICAKMjAwMi0wNi0xOSAxMToyOSAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgIE1ha2VmaWxlLnN1YnMucGwsIG1ha2UtcGVybC1tYWtlZmlsZXMsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBBUkdHR0dHRwogICBJIGxvdmUgcGVybC4KICAgSSBoYXRlIHBlcmwncyBtYWtlIHN5c3RlbS4KICAgSSBoYXRlIHRoZSBmYWN0IHRoYXQgcGVybCBzZWdmYXVsdHMgaWYgR2V0T3B0aW9ucygpIGlzIGNhbGxlZCBtb3JlCiAgIHRoYW4gb25jZS4KICAgc2lnaC4KICAgVGhpcyBob3BlZnVsbHkgd2lsbCBmaXggdGhlIHBlcmwgbW9kdWxlIGJ1aWxkIHJvdXRpbmVzIHNvIGl0IGF0IGxlYXN0CiAgIHdvcmtzIChidXQgaXQncyBzdGlsbCB1Z2x5IGFuZCBjb3VsZCB1c2UgbW9yZSBjbGVhbmluZykuCiAgIAoyMDAyLTA2LTE5IDA3OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGluZmludGUgbG9vcCBhbmQgYWRkIGRlYnVnIGluIHJlbW92ZV9kZWxlZ2F0ZWQKICAgCjIwMDItMDYtMTggMDc6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIE5VTEwgdGhlIHByaXYgcG9pbnRlciBvbiBzZXNzaW9uIGR1cGxpY2F0aW9uLiAgdGhhbmtzIHRvIHJleml0b3oKICAgCjIwMDItMDYtMTcgMDY6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIENoYW5nZWQgS2F0c3VoaXNhJ3MgZW1haWwgYWRkcmVzcywgb24gcmVxdWVzdAogICAKMjAwMi0wNi0xNCAwNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzU2OTAyMTogZnJvbSBMYXVyaSBNeWxsYXJpCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gdGhlIHRhYmxlIGl0ZXJhdG9yIHN1cHBvcnQuCiAgIAoyMDAyLTA2LTE0IDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBsaWVkIHBhdGNoICM1NjkwMjAgZnJvbSByZXppdG96IG9uIElSQyB0byBmaXggbm9uLWluaXRpYWxpemVkIHZhcmlhYmxlCiAgIAoyMDAyLTA2LTE0IDAzOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmM6CgogICBBZGQgKG51bGwpIGNvbnRleHQsIHRvIGJyaW5nIGludG8gbGluZSB3aXRoIHRoZSB2NSByZWdpc3RyeSBBUElzLgogICBGaXhlcyBidWcgNTY4NTgwLgogICAKMjAwMi0wNi0xNCAwMjoyNyAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgVXNlIG1hdGNoaW5nICcgYW5kICIgcXVvdGVzIGZvciBBSVggY29uZmlndXJlIHRlc3QuCiAgIE1lbnRpb25lZCBpbiBwYXNzaW5nIGluIGJ1ZyA1NjU3NjkuCiAgIAoyMDAyLTA2LTEzIDE0OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9jb25mLnQ6CgogICBmaXggZGVmYXVsdF9zdG9yZSByb3V0aW5lcwogICAKMjAwMi0wNi0xMiAwNjo0MyAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBCcmluZyBXaW5kb3dzIE9JRCB1c2FnZSBpbnRvIGxpbmUgd2l0aCB0aGUgbWFpbiBjb25maWcgZmlsZSBzZXR0aW5ncy4KICAgCjIwMDItMDYtMTIgMDY6MzcgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDb3JyZWN0IHRoZSBkZWZhdWx0IEVudGVycHJpc2UgT0lEIHVzZWQgaW4gdHJhcHMsIHRvIGF2b2lkIGEgcmVwZWF0ZWQgMAogICBzdWJpZGVudGlmaWVyLiAgKEZpeGVzIGJ1ZyAjNTY2OTE3KQogICAKMjAwMi0wNi0xMiAwNToxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVmaW5lICdsZW5ndGgnIGFzIGEgc2lnbmVkIHZhcmlhYmxlLCBzbyBpdCBjYW4gaGFuZGxlIGFuIGVycm9yIHZhbHVlIG9mIC0xLgogICBSZXBvcnRlZCBieSBKb2FraW0gQWx0aGluaS4KICAgCjIwMDItMDYtMTIgMDM6MTEgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1ha2Ugc3VyZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV4dCBsaW5rIGlzIHByb3Blcmx5IHNhdmVkLCBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCiAgIFByb2JsZW0gZGlzY292ZXJlZCBieSBIdWdvIENhY290ZS4KICAgCjIwMDItMDYtMTIgMDI6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhZ2VudC9hZ2VudF9pbmRleC5oLCBhZ2VudC9hZ2VudF90cmFwLmgKLCBhZ2VudC9hbGxfaGVscGVycy5oLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2J1bGtfdG9fbmV4dC5oLCBhZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGFnZW50L21pYl9tb2R1bGVzLmgsIGFnZW50L211bHRpcGxleGVyLmgsIGFnZW50L251bGwuaAosIGFnZW50L29sZF9hcGkuaCwgYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGFnZW50L3NlcmlhbGl6ZS5oLCBhZ2VudC9zZXRfaGVscGVyLmgsCiAgIGxpYnJhcnkvY211X2NvbXBhdC5oLCBsaWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsIGxpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVRFBEb21haW4uaCwgbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVbml4RG9tYWluLmgsIGxpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGxpYnJhcnkvc25tcF9zZWNtb2QuaCwgbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBsaWJyYXJ5L3VjZF9jb21wYXQuaDoKCiAgIFN1cHBseSBtaXNzaW5nICNpZm5kZWYvI2RlZmluZS8jZW5kaWYgYW5kIGV4dGVybiAiQyIge30gd3JhcHBlcnMKICAgCjIwMDItMDYtMTEgMTc6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVtb3ZlIHNwdXJpb3VzIHByaW50ZiB0byBzdGRlcnIKICAgCjIwMDItMDYtMTEgMTQ6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBhZGQgZXh0ZXJuICJDIjsgYWRkIHZvaWRfYXJyYXkgc3RydWN0CiAgIAoyMDAyLTA2LTExIDE0OjIwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHRzZWFyY2g7IHVzZSBuZXcgY29udGFpbmVyIGluc3RlYWQKICAgCjIwMDItMDYtMTEgMTQ6MTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgY29udGFpbmVyIGZvciBzZWNvbmRhcnkgaW5kZXgKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNvbnRhaW5lciB0byBoZWFkZXJzOyBhZGQgY29udGFpbmVyLmMKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgaW5pdCBmdW5jdGlvbnMgZm9yIGJhc2ljL3NvcnRlZCBjb250YWluZXIKICAgCjIwMDItMDYtMTEgMTQ6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBtb3JlIG1ldGhvZHMgZm9yIGJhc2ljIGNvbnRhaW5lcjsgYWRkIHNvcnRlZCAod2lsbCBwcm9iYWJseSByZW5hbWUpIGNvbmF0aW5lcgogICAKMjAwMi0wNi0xMSAxMjoyMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdWRlczsgYWRkIGV4dGVybiAiQyIgZm9yIF9fY3BsdXNwbHVzCiAgIAoyMDAyLTA2LTExIDExOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwsIE1ha2VmaWxlLlBMLCBSRUFETUUKLCBuZXRzaCwgc25tcHNoOgoKICAgcmVuYW1lZCBzbm1wc2ggdG8gbmV0c2gsIGFzIEkgbGlrZSB0aGUgbmFtZSBiZXR0ZXIgYW5kIGl0IGFwcGVhbHMgdG8gYQogICB3aWRlciBudW1iZXIgb2YgcGVvcGxlLgogICAKMjAwMi0wNi0xMCAwOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHdoZW4gZGVsZXRpbmcgYW4gYXNwIHBvaW50ZXIsIG1ha2Ugc3VyZSBpdCBpc24ndCBpbiB0aGUgZGVsZWdhdGVkIGxpc3QKICAgCjIwMDItMDYtMTAgMDg6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHBhcnNlX29uZV9vaWRfaW5kZXggdG8gYWxsb3cgdG9vIHNob3J0IElQIGFkZHJlc3Mgd2hlbiBjb21wbGV0ZSBpcwogICBzcGVjaWZpZWQ7IGFkZCBuZXRzbm1wX29pZDJjaGFycyAmIG5ldHNubXBfb2lkMnN0cgogICAKMjAwMi0wNi0xMCAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGUgdG8gbGF0ZXN0IGRlZmF1bHRfc3RvcmUgZGVmaW5lcwogICAKMjAwMi0wNi0xMCAwNzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHBlcmwvLmN2c2lnbm9yZSwgcGVybC9NYWtlZmlsZS5QTDoKCiAgIFRvcCBsZXZlbCBwZXJsIE1ha2VmaWxlLlBMIHRvIGluc3RhbGwgdGhlIHdob2xlIGJ1bmNoIHVuZGVybmVhdGguCiAgIFRoaXMgc2hvdWxkIG5vdyBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGxvd2VyIGxldmVsIG1ha2VmaWxlcyBmb3IKICAgc2ltcGxpY2l0eS4KICAgCjIwMDItMDYtMTAgMDc6MjcgIGR0czEyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgQWNrbm93bGVkZ2Uga25vd24gZmFpbGluZyB0ZXN0cy4KICAgVGhpcyBtZXNzYWdlIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhlIHByb2JsZW0gaGFzIGJlZW4gaXNvbGF0ZWQgYW5kIGZpeGVkLgogICAKMjAwMi0wNi0xMCAwNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN1cHBvcnQgZm9yIGlwYWRkcmVzcyBidWlsZGluZy9wYXJzaW5nIG9mIE9JRCBpbmRleGVzLgogICAKMjAwMi0wNi0xMCAwMjowNyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIE1lbnRpb24gdGhlIG90aGVyIHBlcmwgbW9kdWxlcywgaW50cm9kdWNlZCB3aXRoIHY1IChwYXJ0aWN1bGFybHkgJ2RlZmF1bHRfc3RvcmUnKQogICAKMjAwMi0wNi0xMCAwMToyOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIE5ldyBlbnRyeSBkZXNjcmliaW5nIHBvc3NpYmxlIHByb2JsZW1zIHdpdGggdHJhcCBoYW5kbGVycy4KICAgCjIwMDItMDYtMDggMjE6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA2LTA4IDIwOjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBicmVhayBwZXJsIG1ha2VmaWxlIGNyZWF0aW9uIGludG8gc2VwZXJhdGUgc3RlcDsgb25seSBjbGVhbiBwZXJsIGRpcmVjdG9yeQogICBpZiB0aGVyZSBpcyBhIG1ha2VmaWxlCiAgIAoyMDAyLTA2LTA4IDIwOjE1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgcGVybHRlc3QgdGFyZ2V0IHRvIG1ha2UgdGVzdCBpbiBhbGwgcGVybCBkaXJlY3RvcmllcwogICAKMjAwMi0wNi0wOCAwOTo0NyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIGZpeCB0byBkZWFsIHdpdGggdXBkYXRlZCBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTA2LTA4IDA3OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgdXBkYXRlIHRvIFNRTC1TdGF0ZW1lbnQgcmVxdWlyZW1lbnQgb2YgMS4wMDQKICAgCjIwMDItMDYtMDggMDY6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIG1pYiBpbml0IGNvZGUgZnJvbSBDIHNubXBfdHJhbnNsYXRlX29iaiBjYWxsCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluaXRfc25tcCBpbnNpZGUgdHJhbnNsYXRlT2JqCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBjaGFuZ2UgdmVyc2lvbiB0byAwLjEKICAgCjIwMDItMDYtMDggMDY6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIEEgZmV3IGNsZWFudXBzIHRvIGlmY29uZmlnIGFuZCBuZXRzdGF0IGNvbW1hbmRzCiAgIAoyMDAyLTA2LTA4IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICAtIGJlZ2lubmluZyBzdXBwb3J0IGZvciBpbXBvcnQvZXhwb3J0IG9mIGRhdGEgKGN1cnJlbnRseSB0by9mcm9tIENTVikuCiAgIC0gc3VwcG9ydCBmb3IgImRpZmYiIHdoaWNoIGNvbXBhcmVzIG9sZCAocG9zc2libHkgaW1wb3J0ZWQgZGF0YSkgdG8gY3VycmVudC4KICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIHJlcXVpcmVkIFNOTVAgbW9kdWxlIHZlcnNpb24gZnJvbSA0IHRvIDUKICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIHR1dG9yaWFsIHBsYWNlIGhvbGRlciBjb21tZW50IE9JRC4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHRrbWliIGZvciBuZXdlciBwZXJsIG1vZHVsZXMuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHR1cm4gb2ZmIGV4dHJhIGJvbGQvdW5kZXJsaW5lIGZvcm1hdHRpbmcgYnkgZGVmYXVsdC4KICAgCjIwMDItMDYtMDcgMTU6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBnZW5lcmljIGNvbnRhaW5lciBzdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgZGF0YQogICAKMjAwMi0wNi0wNyAxMzowMSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi54czoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDYtMDcgMTA6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIHRvIGtlZXAgaW4gbGluZSB3aXRoIGNvbmZpZ3VyZS5pbiAod2h5PyBzaG91bGRuJ3QKICAgY29uZmlndXJlIG5vdCBiZSBpbiBDVlMgYW5kIGJlIGF1dG9nZW5lcmF0ZWQ/IE9uZSBvZiB0aGVzZSBkYXlzIEknbSBnb2luZwogICB0byBoYXZlIHRvIGxlYXJuIGF1dG9jb25mLi4uLikKICAgCjIwMDItMDYtMDcgMTA6MzUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBhbHdheXMgY2hlY2sgcmV0dXJuIHN0YXR1cyBvZiBtYWtlIHdoZW4gaW5zaWRlIGEgbG9vcCwgYW5kIGV4aXQgb24gZXJyb3JzCiAgIAoyMDAyLTA2LTA3IDA4OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjMpLAogICBpbnRlcmZhY2VzLmM6CgogICBPbmx5IG51bGwtdGVybWluYXRlIHRoZSBpbnRlcmZhY2UgbmFtZSB3aGlsZSBpdCdzIGFjdHVhbGx5IGJlaW5nIGNvcGllZC4KICAgUmVzdG9yZSB0aGUgZGF0YSBsaW5lIGFmdGVyd2FyZHMsIHNvIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IGlzIG1lYW5pbmdmdWwuCiAgIAoyMDAyLTA2LTA3IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggZm9yIGluZGV4aW5nIGVycm9yLCB0aGF0IGNhdXNlcyBhIGNyYXNoIGlmIG1vcmUgdGhhbiAxNiB2YXJiaW5kcwogICBhcmUgYWRkZWQgdG8gdGhlIGNhY2hlIGluIG9uZSBnby4gIFNwb3R0ZWQgYnkgU2hhbnRoIEt1bWFyYQogICAKMjAwMi0wNi0wNiAwMToxMiAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzcsNV0pLCBhY2xvY2FsLm00LAogICBjb25maWd1cmU6CgogICBEb24ndCBkaWZmZXJlbmNpYXRlIGJldHdlZW4gZWxmLSBhbmQgYS5vdXQtYmFzZWQgTmV0QlNEIHN5c3RlbXMuCiAgIChQcm9ibGVtIGhpZ2hsaWdodGVkIGJ5IEZlbGljaWEgTmVmZikKICAgCjIwMDItMDYtMDUgMTg6NTAgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgcHV0IGRlZmluZXMgZm9yIHNvY2tsZW5fdCBhbmQgaW5fYWRkcl90IGluIG5ldC1zbm1wL3R5cGVzLmggaW5zdGVhZCBvZiBoYXZpbmcKICAgY29uZmlndXJlIGdlbmVyYXRlIHRoZW07IGNvbmZpZ3VyZSBpbnN0ZWFkIGdlbmVyYXRlcyBIQVZFX1NPQ0tMRU5fVCBhbmQKICAgSEFWRV9JTl9BRERSX1QgZm9yIHN5c3RlbXMgd2hpY2ggZG9uJ3QgbmVlZCB0aGUgZGVmaW5lczsgdGhpcyBpcyBwcmltYXJpbHkKICAgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBXaW4zMiBwbGF0Zm9ybSwgd2hpY2ggZG9lc24ndCBoYXZlIGNvbmZpZ3VyZS4KICAgCjIwMDItMDYtMDUgMDk6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBkb24ndCBhZHZhbmNlIHJlcXVlc3QgcG9pbnRlciBpbnNpZGUgZm9yIGxvb3AsIHNpbmNlIGZvciBsb29wIGRvZXMgaXQgZm9yCiAgIHVzOyBvdGhlcndpc2UgZm9yIGxvb3AgbWF5IGVuZCB1cCBkZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlci4KICAgCjIwMDItMDYtMDUgMDY6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSB2YXJpb3VzIHVuaXggdXRpbGl0aWVzOgogICAgLSBjdXJyZW50bHk6IG5ldHN0YXQsIHBzLCBkZiwgaWZjb25maWcKICAgCjIwMDItMDYtMDUgMDY6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3Mvc2NsaToKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSBmdW5jdGlvbmFsaXR5IGluIEp1ZXJnZW4ncwogICBzY2xpIGNvbW1hbmQuCiAgIAoyMDAyLTA2LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBuZXcgY29tbWFuZHM6CiAgICAgc291cmNlIGZpbGUgLS0gc291cmNlcyBhbiByYyBmaWxlCiAgICAgd2F0Y2ggZXhwcmVzc2lvbiAtLSByZXBlYXRlZGx5IHJ1bnMgYSBjb21tYW5kIGFuZCBjb2xvcml6ZXMKICAgICAgIGRpZmZlcmVuY2VzIGluIGRhdGEKICAgICBldmFsIGV4cHJlc3Npb24gLS0gZXZhbHVhdGVzIGFuIGV4cHJlc3Npb24gZGlyZWN0bHkgaW4gcGVybAogICAgICAgLSBiZWdpbm5pbmdzIG9mIG92ZXJsb2FkcyBpbiBwZXJsIHNvIHRoYXQgY2FsbGluZyBzeXNDb250YWN0KCkKICAgICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c0NvbnRhY3QgdmFsdWUuICB0YWJsZXMgbm90IHJldHVybmVkIHlldC4KICAgZml4ZXM6CiAgICAgdHVybnMgb2Ygb3JuYW1lbnRhbCBwcm9tcHQgc3VwcG9ydCAoaWNrKSBieSBkZWZhdWx0CiAgIAoyMDAyLTA2LTA1IDA0OjQzICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEgKFY0LTItcGF0Y2hlcy44KSwgc25tcGNtZC4xLmRlZjoKCiAgIEJyaWVmIG1lbnRpb24gb2YgdGhlIG5lZWQgdG8gcXVvdGUgT0lEcyBjb250YWluaW5nIHN0cmluZyBpbmRleGVzLAogICB0byBwcm90ZWN0IHRoZSBkb3VibGUgcXVvdGVzIGZyb20gdGhlIHNoZWxsLgogICAKMjAwMi0wNi0wNCAxMDozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGEgbnVsbCB0cmVlY2FjaGUgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQKICAgCjIwMDItMDYtMDQgMTA6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhc3AtPnBkdSA9PSBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0LgogICAKMjAwMi0wNi0wNCAwNTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCBmb3IgcHJpbnRmLCBzaW5nbGUgcXVlcnkvc2V0cyBvZiBzY2FsYXJzLCBtdWx0aS1saW5lIGFsaWFzZXMuCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIG1ha2UgbmV3KCkgb3BlcmF0b3IgYSBiaXQgc21hcnRlcgogICAKMjAwMi0wNS0yOSAxOTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX2FsYXJtLmM6CgogICBzZXQgdGhlIHN0b3JhZ2UgcG9pbnRlciB0byBOVUxMLCBhcyBwb2ludGVkIG91dCBieSBNYXJrIEhveS4KICAgCjIwMDItMDUtMjkgMDk6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gQVBJaWZ5IE1JQkRJUlMgc3VwcG9ydAogICAKMjAwMi0wNS0yOSAwNzo0MyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNiksIEZBUToKCiAgIEV4cGFuZCBvbiB3aGVuIE9wZW5TU0wgaXMgbmVjZXNzYXJ5LCBhbmQgaG93IHRvIGNvbXBpbGUgdXNpbmcgaXQuCiAgIAoyMDAyLTA1LTI5IDA2OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFNldCBSRVVTRUFERFIgc28gdGhhdCBzcGVjaWZ5aW5nIHRoZSBzYW1lIHBvcnQgdHdpY2UgZG9lc24ndCBraWxsIHRoZSBhZ2VudC4KICAgKFN1Z2dlc3RlZCBieSBSb2JlcnQgSGFzdGluZ3MpCiAgIAoyMDAyLTA1LTI5IDAyOjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgUmVmZXJlbmNlIGJvdGggdmVyc2lvbnMgb2YgdGhlIHR1dG9yaWFsIChzaW5jZSB0aGlzIGRvY3VtZW50IGlzIHVzZWQKICAgZm9yIGJ1aWxkaW5nIHRoZSBvbi1saW5lIHZlcnNpb24gb2YgdGhlIEZBUSkKICAgCjIwMDItMDUtMjkgMDI6MTYgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjQpLCBGQVE6CgogICBDbGFyaWZ5IHRoYXQgdHJhcCBmaWx0ZXJpbmcgaXMgbm90IHlldCBvcGVyYXRpb25hbC4KICAgCjIwMDItMDUtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgcmVtb3ZlIF5NIGNoYXJzCiAgIAoyMDAyLTA1LTI4IDE0OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZml4IGxvZ2ljIGluIGNhbl9kZWxldGU7IGNvbnNvbGlkYXRlIHVzZSBvZiBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3QgYnkgc2V0dGluZwogICByYyBmb3IgdXNlIGF0IGVuZCBvZiBsb29wOyBkb24ndCB1c2UgcmVtb3ZlZCBtYWNyb3MgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZSwKICAgdXNpbmcgbmV3IG5ldHNubXBfY2hlY2tfdmIqIHJvdXRpbmVzIGluc3RlYWQ7IGFkZCBhc3NlcnRzIGZvciBlcnJvciBjYXNlcyB0aGF0CiAgIHNob3VsZCBiZSBjYXVnaHQgYnkgZWFybGllciByb3V0aW5lcwogICAKMjAwMi0wNS0yOCAxNDo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJvdyAoZGUpYWN0aXZhdGlvbgogICAKMjAwMi0wNS0yOCAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJvdGVjdCAiI2luY2x1ZGUgPHNlYXJjaC5oPiIgd2l0aCB0aGUgSEFWRV9TRUFSQ0hfSCB0b2tlbi4gIChTdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yOCAwNjoyMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgRml4IHRoZSBkZWNsYXJhdGlvbiBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQuIChTcG90dGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjcgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAosIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBEb24ndCBoYXJkd2lyZSBzeXNsb2cgZmFjaWxpdHkgdG8gTE9HX0RBRU1PTi4KICAgRml4IHByb3ZpZGVkIGJ5IEpvYWtpbSBGYWxsc2pvLgogICAKMjAwMi0wNS0yNyAwMTozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwogICAoVjQtMi1wYXRjaGVzLlsyLDhdKSwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFR3ZWFrICd1c21Vc2VyJyBoZWxwIHN0cmluZyB0byBhY2N1cmF0ZWx5IHJlZmxlY3Qgd2hpY2ggYml0cyBhcmUgb3B0aW9uYWwuCiAgIFJlcG9ydGVkIGJ5IEFsaSBDaGFuYXVpLgogICAKMjAwMi0wNS0yNyAwMToyMiAgZHRzMTIKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgImZpbGUiIGRpcmVjdGl2ZXMuCiAgIAoyMDAyLTA1LTI3IDAxOjE3ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaCwgdGhhdCBjb25mdXNlcyBzb21lICdtYWtlJ3MKICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBQcm9wZXIgY3JlYXRpb24gb2YgcmV0dXJuZWQgTmV0U05NUDo6T0lEIG9iamVjdC4KICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBpbmNyZWFzZSByZWZlcmVuY2UgY291bnRzIG9uIHJldHVybmVkIG1pYiByZWdpc3RyYXRpb24gb2JqZWN0cyBzbwogICB0aGV5J3JlIG5vdCBhdXRvLWNsZWFuZWQgYnkgcGVybCAodGhlIGFnZW50IG5vdyBoYXMgYSBjb3B5IG9mIHRoZSBwb2ludGVyKQogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgZGVmYXVsdF9zdG9yZSBuZXRzbm1wXyBwcmVmaXhlcy4KICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBmb3Igc2NhbGFycyAobWliMmMuc2NhbGFyLmNvbmYgZmlsZSBjb21pbmcgc2hvcnRseSkKICAgCjIwMDItMDUtMjQgMDk6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQSBuZXcgcnVsZSBjYWxsZWQgImNvbW1lbnRjaGVjayIgdG8gZ3JlcCBhbGwgc291cmNlcyBmb3IgLy8gY29tbWVudHMuCiAgIAoyMDAyLTA1LTI0IDA4OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRGVjbGFyZSAncmVnaXN0ZXJfbWliX2RldGFjaF9ub2RlJyBiZWZvcmUgaXQncyB1c2VkIGZvciB0aGUgZmlyc3QgdGltZS4KICAgKFNwb3R0ZWQgYnkgWGlhbmcgWmhhbmcpCiAgIAoyMDAyLTA1LTI0IDA3OjQ0ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLgogICAoVGhhdCAqbWlnaHQqIGJlIGNvbmZ1c2luZyBTdW4ncyBtYWtlLCBidXQgaXMgd3JvbmcgYW55d2F5KQogICAKMjAwMi0wNS0yMyAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0X2JzZGk0LmMsCiAgIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfZnJlZWJzZDIuYywgdm1zdGF0X2hwdXguYywKICAgdm1zdGF0X25ldGJzZDEuYywgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBCcmluZyB0aGUgdmFyaW91cyAndmFyX2V4dGVuc2libGVfdm1zdGF0JyBkZWZpbml0aW9ucyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmaWxlIC0gaS5lLiBub24tc3RhdGljLgogICAKMjAwMi0wNS0yMSAxNToyNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1JJChzcmNkaXIpL2luY2x1ZGUgdG8gQ1BQIHBhdGggZm9yIHBlb3BsZSBidWlsZGluZyBvdXRzaWRlIG9mIHNyYyB0cmVlCiAgIAoyMDAyLTA1LTIxIDA4OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgYXBwbHkgcGF0Y2ggWyA1NTgxMjkgXSBNYWtlIHRoZSB0dW5uZWwgbWliIGNvbXBpbGUgaW4gNS4wLjEsIHN1Ym1pdHRlZAogICBieSBMb3JlbnpvIENvbGl0dGkgKGxjb2xpdHRpKSwgd2hpY2ggYWRkcyBtaXNzaW5nIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA1LTIxIDA1OjMyICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGNvcmUgZHVtcCBpbiAtdSBvcHRpb24gcHJvY2Vzc2luZywgbm90ZWQgYnkgQW5kcmVhcyBNYXVzCiAgIAoyMDAyLTA1LTIxIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOSksIG1lbW9yeS5jCjoKCiAgIExhdGNoIG1lbW9yeSByZXBvcnRpbmcgYXQgMl4zMS0xLCByYXRoZXIgdGhhbiAyXjMyLTEgc2luY2UgdGhlc2UKICAgb2JqZWN0cyBhcmUgZGVmaW5lZCBhcyAoc2lnbmVkKSBJbnRlZ2VyMzIuCiAgIE9ubHkgbGF0Y2ggaWYgdGhlIHZhbHVlIGlzICpncmVhdGVyKiB0aGFuIHRoaXMgdGhyZXNob2xkLCBub3QgbGVzcyEKICAgCjIwMDItMDUtMjEgMDE6MjAgIGpicG4KCiAgICogaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvdWNkX2NvbXBhdC5jCjoKCiAgICAgLSBhZGQgY29tcGF0aWJpbGl0eSBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zIGZvciBuZXdseS1yZW5hbWVkCiAgICAgICBkZWZhdWx0IHN0b3JlIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyAoZGVmaW5lZCBpZmYKICAgICAgIC0tZW5hYmxlLXVjZC1jb21wYXRpYmlsaXR5IGlzIGdpdmVuIHRvIGF0IGNvbmZpZ3VyYXRpb24gdGltZSkKICAgCjIwMDItMDUtMjEgMDA6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAgIC0gbW92ZSBkZWZpbml0aW9uIG9mIG5ldHNubXBfZHNfcmVhZF9jb25maWcgdHlwZSBmcm9tIGRlZmF1bHRfc3RvcmUuaAogICAgICAgaW50byBkZWZhdWx0X3N0b3JlLmMgKHNpbmNlIGl0IGlzIG5vdCwgYW5kIHNob3VsZCBub3QsIGJlIHVzZWQKICAgICAgIGVsc2V3aGVyZSkuCiAgIAoyMDAyLTA1LTIwIDAzOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZWdpc3RlcnMgdG9rZW5zIGZvciBpcHY2IHJvL3J3IGNvbW11bml0eSwgYW5kIG1ha2Ugc3VyZSB0byBwYXJzZSB0aGVtCiAgIGFzIGlwdjYsIG5vdCB2NC4KICAgCjIwMDItMDUtMTkgMTE6MzggIGRyaWVodWlzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQnVnZml4IGZvciBGcmVlQlNEIHN1cHBvcnQgb2YgdGhlIGRpc2tJTyBtaWIuIFRoZSBvcmlnaW5hbCBjb2RlIG5lZ2xlY3RlZAogICB0aGUgZGV2aWNlIG51bWJlciwgd2hpY2ggbWFkZSBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuLCBzYXksIGFkMCBhbmQgYWQxCiAgIGltcG9zc2libGUuCiAgIAoyMDAyLTA1LTE3IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHNsaWdodGx5IHJlZHVjZSBtZW1vcnkgY29zdHMgb2YgcmVnaXN0YXJ0aW9ucwogICAKMjAwMi0wNS0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZGVmYXVsdCBzdG9yZSB0YWcgbmFtZXMuCiAgIGZpeCBpbml0X3NubXAoKSBkZWZpbml0aW9uIHRvIG1hdGNoIG5vcm1hbCBwZXJsIG5vbi1hbnNpIG1vZGUuCiAgIAoyMDAyLTA1LTE2IDE2OjM5ICBkcmllaHVpcwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBNYWtlIHN1cmUgLS1jZmxhZ3Mgc3BpdHMgb3V0IHRoZSByZXF1aXJlZCBpbmNsdWRlIHBhdGggd2hlbiBpbnN0YWxsaW5nCiAgIGluIGEgbm9uLWRlZmF1bHQgbG9jYXRpb24sIGFzIGRvY3VtZW50ZWQgaW4gdGhlIHVzYWdlIGluZm8gaW4gdGhlIHNjcmlwdC4KICAgCjIwMDItMDUtMTYgMTU6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGFkZCBhIGxpbmUgdG8gdGhlIHN5c1NlcnZpY2VzIHByb21wdCBzYXlpbmcgaWYgeW91IGRvbid0IGtub3csIHNheSBuby4KICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUueHM6CgogICB1cGRhdGUgdG8gbmV3IGRlZmluZSBsaXN0CiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHRlc3Qgc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgYXV0b2dlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZXMgdG8gbmV3IC5oIHRva2VucwogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIC5oIC0+IHBlcmxtb2R1bGUgcmVnZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAwNzowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgQ29uc29saWRhdGUgdGhlIHZhcmlvdXMgT0lEIG91dHB1dCBjb25maWd1cmF0aW9uIG1lY2hhbmlzbXMgaW50byBvbmUuCiAgIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyAoeWV0ISkgLSBqdXN0IHRoZSBpbnRlcm5hbHMuCiAgIAoyMDAyLTA1LTE1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgZml4IGRlZmF1bHRfc3RvcmUKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNyZWF0ZSBhIGRlZmluZSBsb2NhdGlvbiBmb3IgSEFWRV9HRVRERVZTCiAgIAoyMDAyLTA1LTE1IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgZGVwZW5kIHVwZGF0ZSwgd2hpY2ggSSBtZWFudCB0byBjaGVjayBpbiBiZWZvcmUgdGhlIDUuMC4xIHJlbGVhc2UKICAgCjIwMDItMDUtMTUgMDU6NTMgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudF9yZWdpc3RyeS5jLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfcGVybC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYwo6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzkgIGpicG4KCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzcgIGpicG4KCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgbWliLmMsIHBhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYwosIHNubXBfYWxhcm0uYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsCiAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3NlY21vZC5jLCBzbm1wdXNtLmMsCiAgIHNubXB2My5jLCB1Y2RfY29tcGF0LmMsIHZhY20uYzoKCiAgICAgLSByZW5hbWUgZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgZnJvbSBkZWZhdWx0X3N0b3JlIGZyb20gZHNfYmxhaAogICAgICAgdG8gbmV0c25tcF9kc19ibGFoCiAgIAoyMDAyLTA1LTE1IDAyOjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy4wKSwgc211eC5jOgoKICAgICAtIGluaXRpYWxpc2Ugc211eF9saXN0ZW5fc2QgdG8gYXZvaWQgcHJvYmxlbXMgbm90ZWQgaW4gYnVnICM1NDU0NDgKICAgICAgIChhIGJpdCB1bnJlYXNvbmFibGUgaW4gbXkgdmlldyBidXQgaXQgY2FuJ3QgZG8gYW55IGhhcm0pLgogICAKMjAwMi0wNS0xNCAxMjo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHByZWNpc2lvbiBleHRyYWN0aW9uIG9mIHR1bW9yIGluc3RlYWQgb2YgYW1wdXRhdGlvbiwgb3IsIGlmZGVmIHNlYXJjaC5oCiAgIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBlc3NlbnRpYWwgdG8gdGFibGVfYXJyYXkgb3BlcmF0aW9uIGFuZCB3aWxsIHByb2JhYmx5CiAgIHZhbmlzaCBpbiB0aGUgbmVhciBmdXR1cmUgYW55d2F5LgogICAKMjAwMi0wNS0xMyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBmaXggdHlwZSBpbiBzaXplb2YKICAgCjIwMDItMDUtMTMgMTM6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIHNlYXJjaC5oIGJlZm9yZSBjb21waWxpbmcgdGhlIHRhYmxlX2FycmF5IGhlbHBlcgogICAKMjAwMi0wNS0xMyAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTA1LTEzIDAwOjM5ICBkcmllaHVpcwoKICAgKiBDaGFuZ2VMb2c6CgogICBOb3RlIGNoYW5nZXMgdG8gY29uZmlndXJlLmluLgogICAKMjAwMi0wNS0xMiAxMDozMCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgTWFrZSBzdXJlIHRoZSBjaGVja3MgZm9yIGt2bSByZWxhdGVkIHN0dWZmIGhhcHBlbnMgd2hlbiAtbGt2bSBpcyBpbiBzY29wZS4KICAgQWRkIGRldGVjdGlvbiBvZiB0aGUgLWxkZXZzdGF0IHJlcXVpcmVtZW50IHdoZW4gYnVpbGRpbmcgd2l0aCB1Y2Qtc25tcC9kaXNraW8uCiAgIAoyMDAyLTA1LTEwIDIzOjMzICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMSApCiAgIAoyMDAyLTA1LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBsaWJ0b29sIHZlcnNpb24gaW5jCiAgIAoyMDAyLTA1LTEwIDIyOjMyICBoYXJkYWtlcgoKICAgKiBORVdTLCBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC4xCiAgIAoyMDAyLTA1LTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRSwgUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gdHV0b3JpYWwtNSBpbnN0ZWFkIG9mIHR1dG9yaWFsCiAgIAoyMDAyLTA1LTEwIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIHJlcXVlc3QgaW5mbyBwZXJsIGNvZGUgbW92ZWQgdG8gc2VwYXJhdGUgZmlsZS4KICAgCjIwMDItMDUtMTAgMTc6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBPSUQgYnVpbGRpbmcgb3ZlcmxvYWRzLgogICAKMjAwMi0wNS0xMCAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgQWRkIHByb3BlciBsZW5ndGggc2VnbWVudCB0byB0aGUgYnVpbGQgdmlldyBPSUQuCiAgIAoyMDAyLTA1LTEwIDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV3IGRvYyBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZwogICAKMjAwMi0wNS0xMCAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjApLCB2YWNtX3ZhcnMuYwo6CgogICBmaXggdmFjbSBwcm9ibGVtIG9uIHNldHMgd2l0aCBPSURzIGNvbnRhaW5pbmcgbGFyZ2UgbnVtYmVycyBhcyBub3RlZAogICBieSBWaW5heSBHYW9ua2FyIG9uIHRoZSAtY29kZXJzIG1haWxpbmcgbGlzdC4KICAgCjIwMDItMDUtMTAgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhbGxpbmcgb24gbXVsdGlwbGUgdGFibGVzCiAgIAoyMDAyLTA1LTEwIDAzOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWVyZ2UgIlNUUklORzogSGV4OiIgdHlwZSB0b2tlbnMgaW50byBhIHNpbmdsZSB0b2tlbiAiSGV4LVNUUklORzoiCiAgIAoyMDAyLTA1LTEwIDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBSZXBvcnQgbm9uLWV4aXN0ZW50IHN1Ymluc3RhbmNlcyBhcyAnbm9TdWNoSW5zdGFuY2UnIHJhdGhlciB0aGFuICdub1N1Y2hPYmplY3QnLgogICAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMC45OSIgbm93IHJlc3BvbmRzIGNvcnJlY3RseS4KICAgKHRob3VnaCAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMSIgc3RpbGwgcmV0dXJucyAnbm9TdWNoT2JqZWN0JykKICAgCiAgIEFsc28gZ3Vlc3MgdGhhdCBmYWlsZWQgU0VUIHJlcXVlc3RzIGFyZSAnbm9DcmVhdGlvbicgZXJyb3JzICh3aGljaCBpcwogICBwcm9iYWJseSB0aGUgbW9zdCBsaWtlbHkgb3B0aW9uKS4KICAgCjIwMDItMDUtMDkgMTU6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZXhpdCBwcm9wZXJseSB3aGVuIGEgc3ViZGlyIGZhaWxzIHRvIG1ha2UgcHJvcGVybHkKICAgCjIwMDItMDUtMDkgMTU6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjcmVhdGUgYSB0b2tlbiBmb3IgdGhlIC1PdiBlcXVpdmVsYW50CiAgIAoyMDAyLTA1LTA5IDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNSksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgcGF0Y2ggZnJvbSBUYWt1bWkgS2Fkb2RlIHRvIGZpeCBtZW1vcnkgdXNhZ2Ugb24gc29sYXJpcwogICAKMjAwMi0wNS0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICB1cGRhdGVzIGZyb20gbWFsbG9jZWQgdm1zdGF0IGZpeGVzIGZyb20gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDItMDUtMDggMTY6MzQgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIG5ldyAtLWNvbXBpbGUtc3ViYWdlbnQgZmVhdHVyZXM6CiAgICAgLS1jZmxhZ3MKICAgICAtLW5vcm0KICAgICAtLWxkZmxhZ3MKICAgICBpbmNsdWRlcyBoZWFkZXIgZmlsZXMKICAgICBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDUtMDggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbWFrZSB0aGUgc3ViYWdlbnQgcHJvcGVybHkgY2FsbCB0aGUgcmVzZXJ2ZTIgc3RhdGUgYWdhaW4uCiAgIAoyMDAyLTA1LTA4IDEwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDggMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgdW0sIHVzZSAzMCBzZWNvbmRzIGxpa2UgYWR2ZXJ0aXNlZC4KICAgCjIwMDItMDUtMDggMDg6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZGVmaW5lIGEgYmV0dGVyIG5vdGlmaWNhdGlvbiBleGFtcGxlIChubyByZXF1ZXN0cy4gIGp1c3QgYWxhcm0gLT4gc2VuZCkKICAgCjIwMDItMDUtMDcgMjI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgdXBkYXRlIHRvIGN1cnJlbnQgaW5kZW50IGNvbW1hbmQKICAgCjIwMDItMDUtMDcgMjI6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBtb3ZlIHRleHQgaW4gY29tbWVudCBsZWZ0IHNsaWdodCAod2FzIHRvbyBsb25nKS4KICAgCjIwMDItMDUtMDcgMjI6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZW51bSBmaXhlcy4KICAgCjIwMDItMDUtMDcgMjI6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbHVtbl9kZWZpbmVzLmNvbmYsCiAgIG1pYjJjLmNvbHVtbl9lbnVtcy5jb25mLCBtaWIyYy5jb25mOgoKICAgTmV3IG1pYjJjIGZpbGVzIGZvciBnZW5lcmF0aW5nIGhlYWRlcnMgZnVsbCBvZiBjb2x1bW4gbnVtYmVyIGRlZmluZXMKICAgYW5kIGVudW0gZGVmaW5lcy4KICAgCjIwMDItMDUtMDcgMjI6NDAgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IGFnZW50IGxpYnJhcnkgcmVvcmRlcmluZyBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgbm93IHN1cHBvcnRzIC5vIGZpbGVzIChwcmVjb21waWxlZCBjb2RlKS4KICAgCjIwMDItMDUtMDcgMjI6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZToKCiAgIGhtbS4gIG1pc3NlZCBzb21lIGNoZWNraW4gZmlsZXMuCiAgIAoyMDAyLTA1LTA3IDExOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGNvbmZ0ZXN0LmNvbmYsIHN0YXJ0YWdlbnQucGwsIGNvbmYudAo6CgogICB0ZXN0IGZvciBjb25maWd1cmF0aW9uIGZpbGUvZGVmYXVsdF9zdG9yZSBzdXBwb3J0CiAgIAoyMDAyLTA1LTA3IDExOjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBpbml0X3NubXAoKSB0YWtlIGEgY2hhciAqIGFyZ3VtZW50IGxpa2UgdGhlIHJlYWwgQVBJCiAgIAoyMDAyLTA1LTA3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICB0eXBvcy4KICAgCjIwMDItMDUtMDcgMDk6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgZml4IHRoZSAtZyBmbGFnLgogICAKMjAwMi0wNS0wNyAwOToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGxpa2UgYSBnb29kIGJveS4KICAgCjIwMDItMDUtMDYgMjA6NDMgIHJzdG9yeQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpeCBtaXNzaW5nICQgbm90ZWQgYnkgSm9obiBNaWxscyBvbiB0aGUgY29kZXJzIGxpc3QKICAgCjIwMDItMDUtMDYgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzQsMiwzLDNdKSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZSAoY29ycmVjdGx5IGRvbmUgdGhpcyB0aW1lKQogICAKMjAwMi0wNS0wNiAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNTo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluCiAgIChWNC0yLXBhdGNoZXMuWzMsNywxLDJdKSwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA2IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgUGF0Y2hlcyAjNTUxOTE0KyBmcm9tIEdhcnkgRWR3YXJkcyB0byBzdXBwb3J0IGhwdXgxMSBmb3IgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBuZXcgaHB1eCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBuZXcgY29udHJpYnV0b3JzLgogICAKMjAwMi0wNS0wNiAxNDozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYKLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU1MTQ4OTogRnJvbSBKZWZmcmV5IFdhdHNvbiB0byBhZGQgYSAtUSBvcHRpb24gZm9yIHF1aWNrIGJ1dCB3LyBhbiAnPScKICAgCjIwMDItMDUtMDYgMTQ6MjggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIGNoYW5nZSAtRCBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgY3VycmVudCBjb2RlLgogICAKMjAwMi0wNS0wNiAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgbWlzYyBzbWFsbCBidWdzIGFuZCBlcnJvciBtZXNzYWdlIHdvcmRpbmcgZml4ZXMuCiAgIAoyMDAyLTA1LTA2IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuOSksIHNtdXguYzoKCiAgIGJ1ZyAjNTQ3MDEwOiBmaXggc211eCBhdXRoIGJ1ZyBhcyByZXBvcnRlZCBhbmQgZml4ZWQgYnkgU3RlZmFuIFJhZG1hbgogICAKMjAwMi0wNS0wMSAyMzowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyBmb3IgdXBkYXRlIHRvIHRhYmxlX2FycmF5CiAgIAoyMDAyLTA1LTAxIDIzOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgb2JqZWN0X21vbml0b3Igc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNoZWNrX3ZhcmJpbmQgc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdmFsaWRhdGlvbiB2YWJyaW5kIGluZm8KICAgCjIwMDItMDUtMDEgMjI6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGRvIEkgcmVhbGx5IGhhdmUgdG8gZG8gdGhpcz8gc2lnaC4gT2ssIHJlbmFtZSBkZWJ1ZyB0b2tlbjsgcmV2YW1wIGxvZ2ljIHRvCiAgIG1vZGlmeSByb3dzIGluIHBsYWNlLCBrZWVwaW5nIHVuZG8gaW5mbyAodnMgYWx3YXlzIGNoYW5naW5nIGEgY29weSBvZiBhIHJvdwogICBhbmQgc3dhcHBpbmcgcm93cyB3aGVuIHNldCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KSB0byBhbGxvdyBleHRlcm5hbCBjb2RlCiAgIHRvIGtlZXAgcG9pbnRlcnMgdGhhdCBkb24ndCBkaXNhcHBlYXIgb24gdGhlbTsgYWRkIGEgZmV3IGNhbGxiYWNrcywgaW5jbHVkaW5nCiAgIHJvd19jb21wYXJlLCBzbyB0YWJsZV9hcnJheSBjYW4gbWFpbnRhaW4gdGhlIHNlY29uZGFyeSBpbmRleCB0cmVlOyBkb24ndCBjYWxsCiAgIGNhbl9hY3RpdmF0ZS9jYW5fZGVsZXRlIHVubGVzcyB3ZSBhcmUgYWN0dWFsbHkgdHJ5aW5nIHRvIGFjdGl2YXRlL2RlbGV0ZSByb3c7CiAgIGFkZCBza2VsZXRvbiAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGNvb3BlcmF0aXZlIG5vdGlmaWNhdGlvbnMgb2Ygcm93IGV2ZW50czsKICAgdXBkYXRlIGNoYW5naW5nIGFycmF5IGluIGNvbW1pdCAmIHVuZG8gY2FzZXMsIG5vdCBqdXN0IGNvbW1pdDsgY2hhbmdlIHR5cGRlZnMKICAgZm9yIGEgZmV3IGNhbGxiYWNrIHBvaW50ZXJzOyB1bW1tbS4uLiBJICp0aGluayogdGhhdCdzIGl0Li4uLjotKQogICAKMjAwMi0wNS0wMSAxNzozMCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIEFkZCBpbmRleCBidWlsZGluZyB0byB0aGUgKyBvcGVyYXRvci4KICAgCjIwMDItMDUtMDEgMDk6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBPSUQvT0lELnhzLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbAosIGFnZW50L3R5cGVtYXA6CgogICBNYWtlIGdldE9JRCBmb3IgcmVxdWVzdHMgcmV0dXJuZWQgYSBOZXRTTk1QOjpPSUQgYmxlc3NlZCByZWZlcmVuY2UuCiAgIEknbSBub3QgaGFwcHkgYWJvdXQgaG93IHRoaXMgaXMgZG9uZSwgYnV0IGFsbCBhdHRlbXB0cyB0byBkbyBpdAogICBjb3JyZWN0bHkgb25seSBsZWZ0IG1lIGluIGNvbmZ1c2lvbi4KICAgCjIwMDItMDUtMDEgMDk6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwo6CgogICBDaGFuZ2UgdGhlIGRvbWFpbiBPSURzIHRvIHBvaW50IHRvIHRoZSBuZXQtc25tcCBkb21haW5zIGNyZWF0ZWQgYnkgRGF2ZS4KICAgVGhpcyBmaXhlcyBidWcgIzU0NDI0NSBhcyB3ZWxsLgogICAKMjAwMi0wNS0wMSAwOTozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGQgdGhlIE9JRCBwZXJsIG1vZHVsZSB0byB0aGUgbGlzdCBvZiBtb2R1bGVzLgogICAKMjAwMi0wNS0wMSAwNzo0NSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy4wKSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIHJlbW92ZSBvbGQgKGFuZCBjb25mbGljdGluZyB3aXRoIHRyYXBzKSB0cmFuc3BvcnQgZG9tYWluIE9JRHMKICAgCjIwMDItMDUtMDEgMDY6MTkgIGR0czEyCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEuZGVmLAogICBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHdhbGsuMS5kZWY6CgogICBBZGQgdHlwZSB0YWdzICJTVFJJTkc6ICIgYW5kICJJTlRFR0VSOiAiIHRvIGV4YW1wbGUgb3V0cHV0LgogICBBZGQgZXhwbGljaXQgc2V0dGluZyBvZiBwcm90b2NvbCB2ZXJzaW9uIHRvIGV4YW1wbGUgY29tbWFuZHMuCiAgIAoyMDAyLTA1LTAxIDAzOjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhZ3V0aWwuYywgYWd1dGlsLmgsCiAgIGFndXRpbF9hcGkuaCwgYWxhcm0uYywgYWxhcm0uaCwgZXZlbnQuYywKICAgZXZlbnQuaCwgaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHJvd19hcGkuaCwKICAgcm93cy5jLCByb3dzLmgsIHN0YXRpc3RpY3MuYywgc3RhdGlzdGljcy5oOgoKICAgICAtIHJlbW92ZSBDVlMgTG9nOiBlbnRyaWVzIHdoaWNoIGFyZSBjYXVzaW5nIHByb2JsZW1zIHNpbmNlIHRoZXkgYXJlCiAgICAgICBlbWJlZGRlZCBpbiBhIGNvbW1lbnQsIGJ1dCBzb21lIG9mIHRoZSBsb2cgZW50cmllcyBjb250YWluIGNvbW1lbnQKICAgICAgIGRlbGltaXRlcnMuCiAgIAoyMDAyLTA0LTMwIDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlbW92ZSBuZXRzbm1wX3Byb2Nlc3Npbmdfc2V0LCBpdCBsaXZlcyBpbiBzbm1wX2FnZW50LmMKICAgCjIwMDItMDQtMzAgMjI6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL3NubXAtdGMuYwo6CgogICByZW1vdmUgdW51c2VkIHBhcmFtZXRlcjsgYWxsb3cgTk9ORSBhcyBvbGQgdmFsdWUgZm9yIHN0b3JhZ2UgdHlwZSB0cmFuc3Rpb25zCiAgIAoyMDAyLTA0LTMwIDIyOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVtb3ZlIG92ZXJseSBjb21wbGV4IG1hY3JvIHN0dWZmIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUKICAgCjIwMDItMDQtMzAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUKLCB0ZXN0LnBsOgoKICAgLSBhbGxvdyBjb252ZXJzaW9ucyB0byBhbiBhcnJheSAobmVlZHMgdG8gYmUgdGllZCBzdGlsbCkuCiAgIC0gZG9jdW1lbnRhdGlvbi4KICAgCjIwMDItMDQtMzAgMDg6MTUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMyksIHNubXBkLmM6CgogICAgIC0gZml4IGJ1ZyAjNTQ1Nzc1LCByZXBvcnRlZCBieSBEYXZlIERlbnNvbiwgd2hlcmVieSB0aGUgUElEIG9mIGFuCiAgICAgICBhbHJlYWR5LXJ1bm5pbmcgc25tcGQgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgc3RhcnRpbmcgYSBuZXcgc25tcGQKICAgICAgICh3aGljaCB3b3VsZCB0aGVuIGV4aXQsIGxlYXZpbmcgdGhlIG9yaWdpbmFsIHNubXBkIHJ1bm5pbmcgYW5kIHRoZQogICAgICAgd3JvbmcgUElEIGluIHRoZSBmaWxlKS4gIFNvbHV0aW9uIGlzIG5vdCB0byB3cml0ZSB0aGUgUElEIHVudGlsIHdlCiAgICAgICBoYXZlIHN1Y2Nlc3NmdWxseSBvcGVuZWQgYWxsIG91ciBzb2NrZXRzLgogICAKMjAwMi0wNC0zMCAwNzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiAuY3ZzaWdub3JlLCBDaGFuZ2VzLCBNQU5JRkVTVCwKICAgTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUsCiAgIHRlc3QucGwsIHR5cGVtYXA6CgogICBPSUQgcGVybCBtb2R1bGUgc28geW91IGNhbiBkbyBzaW1wbGUgT0lEIG1hbmlwdWxhdGlvbnMgd2l0aGluIHBlcmwgZWFzaWx5OgogICAgIC0gRXhhbXBsZTogIG5ldyBOZXRTTk1QOjpPSUQoJ2ludGVyZmFjZXMnKSA+IG5ldyBOZXRTTk1QOjpPSUQoJ3N5c3RlbScpCiAgIAoyMDAyLTA0LTI5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVnZXhwIGZpeCBmb3Igd2hpdGUgc3BhY2UgY2hlY2tzIGluIGluZGVudCBmb3JtYXR0ZWQgY29kZQogICAKMjAwMi0wNC0yOSAxNjo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW9yZGVyIHBlcmwgbW9kdWxlIG5hbWVzIHRvIHJlZmxlY3QgKG5ldykgZGVwZW5kZW5jaWVzLgogICAKMjAwMi0wNC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBmaXggYSBmZXcgd2FybmluZ3Mgb24gZmFpbGVkIHRlc3RzIChqdXN0IHNjcmVlbiBjbGVhbnVwcykKICAgCjIwMDItMDQtMjkgMDk6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgTWFrZSB0aGUgcGVybCBtb2R1bGUgcmVzcGVjdCBzbm1wLmNvbmYgc2V0dGluZ3MgKGZpbmFsbHkpLgogICAgIC0gTm93IHJlcXVpcmVzIGEgZGVwZW5kZW5jeSBvbiB0aGUgTmV0U05NUDo6ZGVmYXVsdF9zdG9yZSBtb2R1bGUgdGhvdWdoLgogICAKMjAwMi0wNC0yNyAwODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvbid0IHByb2Nlc3Mgc2V0IHJlcXVlc3QgdGlsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgYXJlIGNvbXBsZXRlLCBhbmQgcXVldWUKICAgYW55IG90aGVyIHJlY2VpdmVkIHBhY2tldHMgdW50aWwgYSBzZXQgaGFzIGNvbXBsZXRlZCBwcm9jZXNzaW5nLgogICAKMjAwMi0wNC0yNyAwODoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFuIHVwIGNvbW1lbnRzIG11bmdlZCBieSBpbmRlbnQKICAgCjIwMDItMDQtMjcgMDg6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNC0yNyAwODowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogb2JqZWN0X21vbml0b3IuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZmRlZiBneW1uYXN0aWNzIHRvIG1ha2Ugc3VyZSBhc3NlcnRzIGFyZSBvbmx5IGNvbXBpbGVkIGluIG9ubHkgaWYgZXhwbGljaXR5CiAgIHJlcXVlc3RlZAogICAKMjAwMi0wNC0yNiAyMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IHVuYmFsYW5jZWQgZW5kaWYgb24gbGludXguIGhvcGUgSSBkaWRuJ3QgYnJlYWsgYW55dGhpbmcgZWxzZS4KICAgCjIwMDItMDQtMjYgMTk6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IHVudXNlZCB2YXIgd2FybmluZyBmb3IgIXdpbmRvd3MKICAgCjIwMDItMDQtMjYgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIGZpeCBPSURfTEVOR1RIIGRlZmluaXRpb25zCiAgIAoyMDAyLTA0LTI2IDEwOjUzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsCiAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcyBpbiBtYWtlZmlsZXMuICBNYWtlIGV2ZXJ5dGhpbmcgdXNlCiAgIG5ldC1zbm1wLWNvbmZpZywgLi4uCiAgIAoyMDAyLTA0LTI2IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgUkVBRE1FLCBTTk1QLnBtOgoKICAgLSBDbGVhbnVwLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gQ2hhbmdlIGRvY3VtZW50YXRpb24gcmVmZXJlbmNlcyBmb3IgdWNkLXNubXAKICAgLSBDaGFuZ2UgY29udGFjdCBsb2NhdGlvbiB0byBuZXQtc25tcC11c2VycyAocGVyIEpvZSdzIGFncmVlbWVudCkKICAgCjIwMDItMDQtMjYgMTA6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IE1BTklGRVNULCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgZGVmYXVsdF9zdG9yZS5wbSwgdGVzdC5wbDoKCiAgIC0gY2xlYW51cC4KICAgLSBVc2UgbmV0LXNubXAtY29uZmlnIHRvIGZpbmQgbGlicmFyeSwgZXRjLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gYSBmZXcgbW9yZSB0ZXN0cyBhZGRlZAogICAtIHVzZSBjb3JyZWN0IGxpYnJhcmllcwogICAtIGFkZCBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTA0LTI2IDA0OjIyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEV4dHJhY3RpbmcgdGhlIHZlcnNpb24gZnJvbSAnc25tcGxpYi9zbm1wX3ZlcnNpb24uYycgbmVlZHMgdG8gdGFrZSBhY2NvdW50CiAgIG9mIGJsYW5rIHNwYWNlLiAgUmVwb3J0ZWQgYnkgU3RlZmFuIFJhZG1hbiAoQnVnICM1NDczNzkpCiAgIAoyMDAyLTA0LTI2IDA0OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOCksIG1lbW9yeS5jCjoKCiAgIEhhbmRsZSBtZW1vcnkgdmFsdWVzID4gMzJiaXQgKGxhdGNoaW5nIGF0IDJeMzItMSkKICAgUGF0Y2ggIzU0ODY2MyBmcm9tIFJvYiBNeWVycwogICAKMjAwMi0wNC0yNiAwMzo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgJ0ludmFsaWQgb3B0aW9uJyBtZXNzYWdlLCBzaW5jZSB0aGlzIGlzIHR5cGljYWxseQogICByZXBvcnRlZCBieSBnZXRvcHQoKS4gIChTdWdnZXN0ZWQgYnkgQW5kcmV3IFJ1Y2tlciBKb25lcyAtIHBhdGNoICM1NDg3NDggKQogICAKMjAwMi0wNC0yNiAwMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEFkZCAndicgdG8gdGhlIGxpc3Qgb2YgdmFsaWQgb3B0aW9ucyAocGF0Y2ggIzU0ODc0OCkKICAgVGhhbmtzIHRvIEFuZHJldyBSdWNrZXIgSm9uZXMuCiAgIAoyMDAyLTA0LTI2IDAzOjM2ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBpbXByb3ZlZCBIUC1VWCAxMSBwYXRjaAogICAoIzUzMDcyNCkgdG8gdGhlIG1haW4gdjUgbGluZSwgYXMgd2VsbCBhcyB0aGUgdjQtMiBicmFuY2guCiAgIFRoZSBjb2RlIG5vdyBjb21waWxlcyBjbGVhbmx5IHVuZGVyIEhQLVVYIDExIHVzaW5nIGdjYy4KICAgCjIwMDItMDQtMjUgMDc6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBQYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZyB0byBmaXggcG9zc2libGUgdmFyaWFibGUgbmFtZSBjbGFzaAogICAKMjAwMi0wNC0yNCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBoYW5kbGUgY2FsbGJhY2tzIHNlbmRpbmcgbmV3IG5vdGlmaWNhdGlvbnMgKHdoaWxlIHByb2Nlc3Npbmcgbm90aWZpY2F0aW9ucykKICAgCjIwMDItMDQtMjQgMjE6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICBoZWFkZXIgZm9yIG5ldyBmdWNudGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0cwogICAKMjAwMi0wNC0yNCAyMTozNCAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBuZXcgZnVuY3Rpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdCB2YWx1ZXMKICAgCjIwMDItMDQtMjQgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgL3Byb2Mvc3RhdCBjYW4gYmUgbGFyZ2VyIHRoYW4gMTAyNAogICAKMjAwMi0wNC0yNCAwNjoxOSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1pc3NpbmcgJ21kNS5oJyBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDQtMjMgMDk6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSBsYXN0IG9mIHRoZSAjd2FybmluZ3MsIGFkZCB4eHgtcmtzIGlmIG5lY2Vzc2FyeQogICAKMjAwMi0wNC0yMyAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTIyIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUU6CgogICB1cGRhdGUgVVJMIHRvIHVzZSBmcmVlbm1wLmNvbSBtaXJyb3IgKHVubGVzcyBzb21lb25lIGtub3dzIGEgYmV0dGVyIHBsYWNlPykKICAgCjIwMDItMDQtMjIgMTQ6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYXBwbHkgZG9jdW1lbnRhdGluIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnZXIgPEF4ZWwuS2l0dGVuYmVyZ2VyQG1heHhpby5jb20+CiAgIAoyMDAyLTA0LTIyIDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlIGV4dHJhIEBlbmRAIChzdXJlIHdvdWxkIGJlIG5pY2UgaWYgbWliMmMgd291bGQgY2hlY2sgZm9yIHVuYmFsYW5jZWQKICAgQGVuZEBzKQogICAKMjAwMi0wNC0yMiAwOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICB1cGRhdGUgZnVuY3Rpb24gbmFtZXMgdG8gbWF0Y2ggaGVhZGVyIChubyBtaXhlZCBjYXNlKQogICAKMjAwMi0wNC0yMiAwODoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCBidWcgIzU0NzExMDogcHJvcGVybHkgc3BlbGwgZGVmaW5lCiAgIAoyMDAyLTA0LTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBhZGQgc3RhdGljIHRvIGEgcmV0dXJuZWQgdmFyaWFibGUKICAgCjIwMDItMDQtMjEgMTY6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMKICAgCjIwMDItMDQtMjEgMTE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgNS4wLnByZTMgLT4gNS4wOyAoSSdtIHN1cmUgdGhlcmUgYXJlIG90aGVyIHBsYWNlcyB0aGlzIG5lZWRzIHRvIGNoYW5nZSwKICAgYnV0IEkgd2FudGVkIHRvIGdldCB0aGUgZmlyc3QgcG9zdCA1LjAgY2hlY2tpbi4uLjotKQogICAKMjAwMi0wNC0yMCAwMDozNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMCApCiAgIAoyMDAyLTA0LTIwIDAwOjMyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gNS4wCiAgIAoyMDAyLTA0LTIwIDAwOjI5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBBR0VOVC50eHQsIENPUFlJTkcsIENoYW5nZUxvZwosIENvZGluZ1N0eWxlLCBFWEFNUExFLmNvbmYuZGVmLCBGQVEsCiAgIElOU1RBTEwsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywKICAgTWFrZWZpbGUudG9wLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsCiAgIFJFQURNRS5hZ2VudHgsIFJFQURNRS5jbXUsIFJFQURNRS5ocHV4MTEsCiAgIFJFQURNRS5rcmI1LCBSRUFETUUuc25tcHYzLCBSRUFETUUudGhyZWFkLAogICBSRUFETUUud2luMzIsIFRPRE8sIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsCiAgIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBkb3RnZGJpbml0LCBkb3h5Z2VuLmNvbmYsIGluc3RhbGwtc2gsCiAgIGx0bWFpbi5zaCwgbWFrZWRlcGVuZC5pbiwgbWFrZWZpbGVpbmRlcGVuZC5wbCwKICAgbWFrZW5vc3lzZGVwZW5kLnBsLCBtYWtldGFyZ2V0LCBta2luc3RhbGxkaXJzLAogICBuZXQtc25tcC1jb25maWcuaW4sIHJlbW92ZS1maWxlcywgc2Vkc2NyaXB0LmluLAogICBzdGFtcC1oLCBzdGFtcC1oLmluLCBhZ2VudC8uY3ZzaWdub3JlLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oCiwgYWdlbnQvbTJtLmgsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsCiAgIGFnZW50L3NubXBfcGVybC5wbCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9kbG1vZHMvLmN2c2lnbm9yZSwKICAgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jCiwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMKLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRQosIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4LCBhZ2VudC9taWJncm91cC9SbW9uLmgKLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50eC5oCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIGFnZW50L21pYmdyb3VwL21pYklJLmgKLCBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oLCBhZ2VudC9taWJncm91cC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oLCBhZ2VudC9taWJncm91cC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oCiwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYWdlbnQvbWliZ3JvdXAvUm1vbi9SRUFETUUKLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vdGVzdF9hbGFybS5zaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2hpc3Quc2gsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvTWFrZWZpbGUuZGxtb2QsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdmVzdGludGVybmV0dC8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmUKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmgsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgKLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oCiwgaW5jbHVkZS9uZXQtc25tcC8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvLmN2c2lnbm9yZSwgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfdHJhcC5oLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmgsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaAosIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaAosIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oLCBpbmNsdWRlL3VjZC1zbm1wL3Zhcl9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLCBsb2NhbC8uY3ZzaWdub3JlLAogICBsb2NhbC9GQVEySFRNTCwgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL1JFQURNRS5taWIyYwosIGxvY2FsL2NvbnZlcnRjb2RlLCBsb2NhbC9maXhwcm9jLAogICBsb2NhbC9pcGYtbW9kLnBsLCBsb2NhbC9taWIyYywKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLCBsb2NhbC9taWIyYy5jb25mLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mLCBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0CiwgbG9jYWwvcGFzc3Rlc3QsIGxvY2FsL3NubXAtdWNkLnNoLAogICBsb2NhbC9zbm1wY2hlY2suZGVmLCBsb2NhbC9zbm1wY29uZiwgbG9jYWwvdGttaWIsCiAgIGxvY2FsL3RyYXB0b2VtYWlsLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2F1dGhvcHRzCiwgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9kZWJ1Z2dpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvbWlicywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9hY2wsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2Jhc2ljX3NldHVwLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9leHRlbmRpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL29wZXJhdGlvbiwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW0sCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3RyYXBzaW5rcywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2Zvcm1hdHRpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlLCBtYW4vLmN2c2lnbm9yZQosIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywKICAgbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsCiAgIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsCiAgIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfZGVidWcuMywKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF90YWJsZS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMywgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsCiAgIG1hbi9wcmludF9taWIuMywgbWFuL3ByaW50X29iamlkLjMsIG1hbi9wcmludF92YWx1ZS4zCiwgbWFuL3ByaW50X3ZhcmlhYmxlLjMsIG1hbi9yZWFkX2FsbF9taWJzLjMsCiAgIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgbWFuL3JlYWRfbWliLjMsCiAgIG1hbi9yZWFkX21vZHVsZS4zLCBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLAogICBtYW4vcmVhZF9vYmppZC4zLCBtYW4vc2h1dGRvd25fbWliLjMsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZiwKICAgbWFuL3NubXBfYWxhcm0uMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZiwKICAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMKLCBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsCiAgIG1hbi9zbm1wX3NlbmQuMywgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWYsCiAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsCiAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsCiAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLAogICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLAogICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsCiAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsCiAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjMsCiAgIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsCiAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZGVsdGEuMSwgbWFuL3NubXBkZi4xCiwgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwKICAgbWFuL3NubXBpbmZvcm0uMSwgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEuZGVmCiwgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsCiAgIG1hbi9zbm1wdGVzdC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsCiAgIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtYW4vc25tcHVzbS4xLmRlZiwKICAgbWFuL3NubXB3YWxrLjEuZGVmLCBtYW4vdmFyaWFibGVzLjUuZGVmLAogICBtaWJzLy5jdnNpZ25vcmUsIG1pYnMvQUdFTlRYLU1JQi50eHQsCiAgIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQsIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQKLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCwgbWlicy9FdGhlckxpa2UtTUlCLnR4dAosIG1pYnMvSENOVU0tVEMudHh0LCBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgIG1pYnMvSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LAogICBtaWJzL0lBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LAogICBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dCwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsCiAgIG1pYnMvSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCwgbWlicy9JRi1NSUIudHh0LAogICBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0LCBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwKICAgbWlicy9JUC1NSUIudHh0LCBtaWJzL0lQVjYtSUNNUC1NSUIudHh0LAogICBtaWJzL0lQVjYtTUlCLnR4dCwgbWlicy9JUFY2LVRDLnR4dCwKICAgbWlicy9JUFY2LVRDUC1NSUIudHh0LCBtaWJzL0lQVjYtVURQLU1JQi50eHQsCiAgIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LAogICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLm1pYiwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0CiwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dCwgbWlicy9ORVQtU05NUC1UQy50eHQKLCBtaWJzL05FVFdPUkstU0VSVklDRVMtTUlCLnR4dCwKICAgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQsIG1pYnMvUkVBRE1FLm1pYnMsCiAgIG1pYnMvUkZDLTEyMTUudHh0LCBtaWJzL1JGQzExNTUtU01JLnR4dCwKICAgbWlicy9SRkMxMjEzLU1JQi50eHQsIG1pYnMvUk1PTi1NSUIudHh0LAogICBtaWJzL1NNVVgtTUlCLnR4dCwgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LAogICBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQsIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwKICAgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dAosIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIG1pYnMvU05NUHYyLUNPTkYudHh0LAogICBtaWJzL1NOTVB2Mi1NSUIudHh0LCBtaWJzL1NOTVB2Mi1TTUkudHh0LAogICBtaWJzL1NOTVB2Mi1UQy50eHQsIG1pYnMvU05NUHYyLVRNLnR4dCwKICAgbWlicy9UQ1AtTUlCLnR4dCwgbWlicy9UVU5ORUwtTUlCLnR4dCwKICAgbWlicy9VQ0QtREVNTy1NSUIuaW5jLCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsCiAgIG1pYnMvVUNELURJU0tJTy1NSUIuaW5jLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwKICAgbWlicy9VQ0QtRExNT0QtTUlCLmluYywgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwKICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLmluYywgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwKICAgbWlicy9VQ0QtSVBGV0FDQy1NSUIuaW5jLCBtaWJzL1VDRC1JUEZXQUNDLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLU9MRC50eHQsIG1pYnMvVUNELVNOTVAtTUlCLmluYywKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBtaWJzL1VEUC1NSUIudHh0LCBtaWJzL2lhbmFsaXN0CiwgbWlicy9taWJmZXRjaCwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZgosIG1pYnMvc21pc3RyaXAsIG92Ly5jdnNpZ25vcmUsIG92L01ha2VmaWxlLmluCiwgb3YvUkVBRE1FLCBvdi9VQ0QtQ29tcHV0ZXIsIG92L1VDRC1maWVsZHMsCiAgIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluLAogICBvdi9iaXRtYXBzL1VDRC4yMC5tLCBvdi9iaXRtYXBzL1VDRC4yMC5wLAogICBvdi9iaXRtYXBzL1VDRC4yNi5tLCBvdi9iaXRtYXBzL1VDRC4yNi5wLAogICBvdi9iaXRtYXBzL1VDRC4zMi5tLCBvdi9iaXRtYXBzL1VDRC4zMi5wLAogICBvdi9iaXRtYXBzL1VDRC4zOC5tLCBvdi9iaXRtYXBzL1VDRC4zOC5wLAogICBvdi9iaXRtYXBzL1VDRC40NC5tLCBvdi9iaXRtYXBzL1VDRC40NC5wLAogICBvdi9iaXRtYXBzL1VDRC41MC5tLCBvdi9iaXRtYXBzL1VDRC41MC5wLAogICBvdi9iaXRtYXBzL1VDRC5maWVsZHMsIHBlcmwvLmN2c2lnbm9yZSwKICAgcGVybC9BU04vLmN2c2lnbm9yZSwgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FTTi9BU04ueHMKLCBwZXJsL0FTTi9DaGFuZ2VzLCBwZXJsL0FTTi9NQU5JRkVTVCwKICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvQVNOL3Rlc3QucGwsCiAgIHBlcmwvQW55RGF0YV9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvQW55RGF0YV9TTk1QL0NoYW5nZXMKLCBwZXJsL0FueURhdGFfU05NUC9EQkRfQW55RGF0YS5wYXRjaCwKICAgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLCBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMLAogICBwZXJsL0FueURhdGFfU05NUC9NQU5JRkVTVCwgcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwKLCBwZXJsL0FueURhdGFfU05NUC9SRUFETUUsIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0KLCBwZXJsL0FueURhdGFfU05NUC9zbm1wc2gsIHBlcmwvU05NUC8uY3ZzaWdub3JlLAogICBwZXJsL1NOTVAvQlVHLCBwZXJsL1NOTVAvTUFOSUZFU1QsCiAgIHBlcmwvU05NUC9NQU5JRkVTVC5TS0lQLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsCiAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54cwosIHBlcmwvU05NUC9UT0RPLCBwZXJsL1NOTVAvcGVybHNubXAuaCwKICAgcGVybC9TTk1QL3R5cGVtYXAsIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzEucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzIucGwsIHBlcmwvU05NUC9leGFtcGxlcy9idWxrd2Fsay5wbAosIHBlcmwvU05NUC9leGFtcGxlcy9pcGZvcndhcmQucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy9taWJ0cmVlLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvbWlid2Fsay5wbAosIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvdGFibGV3YWxrLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvdGVzdGxlYWsucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy90cmFwLWV4YW1wbGUucGwsIHBlcmwvU05NUC9oaW50cy9pcml4LnBsCiwgcGVybC9TTk1QL2hpbnRzL3NvbGFyaXMucGwsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUKLCBwZXJsL1NOTVAvdC9SRUFETUUsIHBlcmwvU05NUC90L2FzeW5jLnQsCiAgIHBlcmwvU05NUC90L2J1bGt3YWxrLnQsIHBlcmwvU05NUC90L2dldC50LAogICBwZXJsL1NOTVAvdC9nZXRuZXh0LnQsIHBlcmwvU05NUC90L21pYi50LAogICBwZXJsL1NOTVAvdC9taWIudHh0LCBwZXJsL1NOTVAvdC9taWJsb2FkLnQsCiAgIHBlcmwvU05NUC90L25vdGlmeS50LCBwZXJsL1NOTVAvdC9zZXNzaW9uLnQsCiAgIHBlcmwvU05NUC90L3NldC50LCBwZXJsL1NOTVAvdC9zbm1wdGVzdC5jb25mLAogICBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLCBwZXJsL2FnZW50Ly5jdnNpZ25vcmUsCiAgIHBlcmwvYWdlbnQvQ2hhbmdlcywgcGVybC9hZ2VudC9NQU5JRkVTVCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgcGVybC9hZ2VudC9hZ2VudC54cywgcGVybC9hZ2VudC90ZXN0LnBsLAogICBwZXJsL2FnZW50L3R5cGVtYXAsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlCiwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCBwZXJsL2RlZmF1bHRfc3RvcmUvQ2hhbmdlcwosIHBlcmwvZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCwKICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsLCBwZXJsL2RlZmF1bHRfc3RvcmUvdHlwZW1hcCwKICAgcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmUsIHBlcmwvbWFuYWdlci9JTlNUQUxMLAogICBwZXJsL21hbmFnZXIvTWFrZWZpbGUuUEwsIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG0sCiAgIHBlcmwvbWFuYWdlci9nZXRWYWx1ZXMucG0sIHBlcmwvbWFuYWdlci9ncmVlbi5naWYsCiAgIHBlcmwvbWFuYWdlci9tYW5hZ2VyLnBtLCBwZXJsL21hbmFnZXIvcmVkLmdpZiwKICAgcGVybC9tYW5hZ2VyL3NldHVwYXV0aCwgcGVybC9tYW5hZ2VyL3NldHVwZGIsCiAgIHBlcmwvbWFuYWdlci9zZXR1cHVzZXIsIHBlcmwvbWFuYWdlci9zbm1wdG9zcWwsCiAgIHNubXBsaWIvLmN2c2lnbm9yZSwgc25tcGxpYi9NU0cwMDAwMS5iaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9kYXRhX2xpc3QuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZ2V0b3B0LmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMKLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NucHJpbnRmLmMKLCBzbm1wbGliL3N0cnRvbC5jLCBzbm1wbGliL3N0cnRvdWwuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvdWNkX2NvbXBhdC5jLAogICBzbm1wbGliL3ZhY20uYywgc25tcGxpYi93aW5zZXJ2aWNlLmMsCiAgIHNubXBsaWIvd2luc2VydmljZS5tYywgc25tcGxpYi93aW5zZXJ2aWNlLnJjLAogICB0ZXN0aW5nLy5jdnNpZ25vcmUsIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUkVBRE1FCiwgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gKLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwKICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzCiwgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsCiAgIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2gsIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwKICAgdGVzdGluZy9ldmFsX3Rlc3RsaXN0LCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsCiAgIHRlc3RpbmcvdGVzdF9rdWwuc2gsIHRlc3RpbmcvdGVzdHMvU3YxY29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzREVTY29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1N2M1NIQURFU2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAwMnNubXB2MWdldG5leHQKLCB0ZXN0aW5nL3Rlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMDRzbm1wdjFub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwKICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsCiAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwKICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcAosIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsCiAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbAosIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwKICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB3aW4zMi8uY3ZzaWdub3JlLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZCwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oLCB3aW4zMi9zbm1wc21faW5pdC5oLAogICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLm9wdCwgd2luMzIvYmluLy5jdnNpZ25vcmUKLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLy5jdnNpZ25vcmUsCiAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIHdpbjMyL2xpYi8uY3ZzaWdub3JlLCB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlLAogICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcAosIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgIHdpbjMyL2xpYnNubXAvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL2xpYnVjZG1pYnMvLmN2c2lnbm9yZSwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZgosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oLAogICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIHdpbjMyL3NubXBidWxrZ2V0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZGVsdGEvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGYvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZ2V0Ly5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICB3aW4zMi9zbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC8uY3ZzaWdub3JlCiwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy8uY3ZzaWdub3JlCiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwCiwgd2luMzIvc25tcHRlc3QvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgd2luMzIvc25tcHRyYW5zbGF0ZS8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHdpbjMyL3NubXB0cmFwZC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcAosIHdpbjMyL3NubXB2YWNtLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcAosIHdpbjMyL3NubXB3YWxrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAo6CgogICBjdnMgZmlsZSB2ZXJzaW9uIG51bWJlciBjaGFuZ2UKICAgCjIwMDItMDQtMjAgMDA6MjAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIGNoYW5nZWxvZwogICAKMjAwMi0wNC0yMCAwMDowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L20ybS5oLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC9SbW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC5oLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaAosIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oCiwgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oCiwgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmgsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgKLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0LmgsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvZGF0YV9saXN0LmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2dldG9wdC5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMKLCBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL2V0aW1ldGVzdC5jCiwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIFdoaXRlIHNwYWNlLCBvaCBnbG9yaW91cyB3aGl0ZSBzcGFjZS4KICAgSG93IGdyZWF0IG91ciB0aG91Z2g/CiAgIFRoZSBjb2RlIGlzIGZpbmUuCiAgIFdlIGFncmVlIG9uIGZ1bmN0aW9uYWxpdHkgZWFzaWx5LgogICBXaGF0IHJlYWxseSB0cm91YmxlcyB1cz8KICAgU29tZXRoaW5nIHdlIGNhbid0IHNlZS4KICAgU29tZXRoaW5nIGJldHdlZW4gdGhlIGNvZGUuCiAgIFdlIGJvdyBkb3duIHRvIHlvdXIgbWFnbmlmaWNlbmNlLAogICBGb3IgeW91IGFyZSBldmVyeXdoZXJlLAogICBCZXR3ZWVuIGV2ZXJ5dGhpbmcuCiAgIFByZXR0eSBub3RoaW5nbmVzcyB5b3UgYXJlLgogICAKMjAwMi0wNC0yMCAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0dXJuIG9uIHVjZCBjb21wYXQgYnkgZGVmYXVsdC4KICAgCjIwMDItMDQtMjAgMDA6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBsYXN0IHVwZGF0ZXMKICAgCjIwMDItMDQtMTkgMjM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICByZW1vdmUgdGVzdGRlbGF5ZWQKICAgCjIwMDItMDQtMTkgMjM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IC5jdnNpZ25vcmUsIC5jdnNpZ25vcmU6CgogICBjdnMgaWdub3JlIGZpbGUKICAgCjIwMDItMDQtMTkgMjM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgZG9uJ3QgZGllIGlmIHBlcmwgZG9lc24ndCBpbml0LgogICAKMjAwMi0wNC0xOSAyMzowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBSRUFETUUsIFNOTVAucG06CgogICBjaGFuZ2Ugd2FybmluZy4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvdWJsZSBjaGVjayB0aGF0IG11bHRpcGxlIGluc2VydHMgaW50byB0aGUgZGVsZWdhdGVkIGNoYWluIGRvbid0CiAgIGhhcHBlbiAocmVhZDogdGhleSBzaG91bGRuJ3QgYW55d2F5LCBidXQuLi4uLikuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHR5cGVkZWYgdXBkYXRlCiAgIAoyMDAyLTA0LTE5IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgRml4IHRoZSBjYWxsYmFjayBidWlsZCBob29rIHRvIHR1cm4gb2ZmIHRoZSBleHBlY3QgcmVzcG9uc2UgZmxhZyB3aGVuCiAgIG5vdCBhcHByb3ByaWF0ZS4KICAgCjIwMDItMDQtMTkgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBzcGVsbGluZyBtaXN0ZWFrOyByZW1vdmUgY2FwaXRhbCBsZXR0ZXJzIGluIGZ1bmN0aW9uIG5hbWVzCiAgIAoyMDAyLTA0LTE5IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZWQgaW4gb2lkX2FycmF5LmgKICAgCjIwMDItMDQtMTkgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbWFrZSB0aGUgcGVybEluaXRGaWxlIGFuZCBkaXNhYmxlUGVybCB0b2tlbnMgcmVnaXN0ZXIgYXMgcHJlbWliIHN1Y2gKICAgdGhhdCB3aGVuIHBhc3NlZCBhcyBhIC0tRkxBRyBpdCdsbCBhY3R1YWxseSBkbyB0aGUgcmlnaHQgdGhpbmcgYW5kCiAgIGRpc2FibGUgdGhlIGxhdGVyICJwZXJsIiB0b2tlbiBoYW5kbGVycy4KICAgCjIwMDItMDQtMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfZGVidWcuMywKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF90YWJsZS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIGRvY3VtZW50YXRpb24uICBDYW4ndCBnZXQgZW5vdWdoLgogICAgIC0gbWFrZSBkb2NzIG5vdyBpbnN0YWxscyBtYW4gcGFnZXMgaW50byB0aGUgbWFuIGRpciwgd2hpY2ggYXJlIHRoZW4gaW5zdGFsbGVkLgogICAKMjAwMi0wNC0xOSAxNzoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgIENvcnJlY3QgZm9yIG5ldyBTVFJJTkcgcHJlZml4LgogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIEthdHN1aGlzYSBBQkUKICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnhzLCBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBmaXggaGVhZGVyIGZpbGVzIGZvciBuZXcgcGF0aHMuCiAgIAoyMDAyLTA0LTE5IDE3OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEFwcGx5IHBhdGNoICM1MzI1NTU6IGlwdjYgY29tMnNlYyBzdXBwb3J0LCB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDQtMTkgMTY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggc3lzVXBUaW1lIChhbmQgcmVsYXRlZCBmdW5jdGlvbnMpIHRvIGhhbmRsZSBtdWNoIGxhcmdlciB1cFRpbWUKICAgdmFsdWVzIChpZSwgZml4IHNpZ25lZCBpbnRlZ2VyIHdyYXBwaW5nKS4KICAgCjIwMDItMDQtMTkgMTE6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZW1iZWRkZWQgcGVybCBzdXBwb3J0LgogICAKMjAwMi0wNC0xOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvc25tcF9wZXJsLmMsIGFnZW50L3NubXBfcGVybC5wbCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMCjoKCiAgIEFkZCBzb21lIG5ldyBzbm1wZC5jb25mIHRva2VucyBmb3IgY29udHJvbGxpbmcgcGVybCBiZXR0ZXIuCiAgIEZpeCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTA0LTE5IDExOjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54czoKCiAgIEFkZGVkIG1pc3NpbmcgYWdlbnQgZGVmYXVsdF9zdG9yZSBzdHVmZi4gICh0aGV5IGV4aXN0ZWQgb24gbXkgbWFjaGluZSwKICAgSSBkb24ndCBrbm93IHdoeSBldmVyeW9uZSBlbHNlIHdhcyBoYXZpbmcgcHJvYmxlbXMpCiAgIAoyMDAyLTA0LTE5IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhpbmdzIHRoYXQgc2hvdWxkIG5ldmVyIGV2ZXIgaGFwcGVuCiAgIAoyMDAyLTA0LTE5IDAzOjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIDxTaWdoPiBBIGxpdHRsZSBsZWFybmluZyBpcyBhIGRhbmdlcm91cyB0aGluZy4KICAgQXBwbHkgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGZyb20gQXhlbCAtIHNvcnJ5LgogICAKMjAwMi0wNC0xOSAwMTo0OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGRveHlnZW4uY29uZjoKCiAgIEhhbmRsZSBnZW5lcmF0aW5nIGRvY3VtZW5hdGlvbiB3aGVuIHNyY2RpciAhPSBjb25maWdkaXIKICAgKFBhdGNoIHN1cHBsaWVkIGJ5IEF4ZWwgS2l0dGVuYmVyZ2VyKQogICAKMjAwMi0wNC0xOCAxNzozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBmaXggc25tcElQWERvbWFpbiAoYWdhaW4pCiAgIAoyMDAyLTA0LTE4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBvbmx5IG9wZW4gc3ViYWdlbnQgY29ubmVjdGlvbnMgb25jZSBhdCBzdGFydHVwCiAgIAoyMDAyLTA0LTE4IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IGZvciBkb3duIHN1YmFnZW50IGNhc2VzLCBtYXJrIHJlZ2lzdHJhdGlvbnMgYXMgZGV0YWNoZWQKICAgCjIwMDItMDQtMTggMTc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlZmluZSBhIG1heGltdW0gcGFja2V0IHNpemUgd2UgY2FuIGFjY2VwdCB0byBwcm90ZWN0IGNlcnRhaW4gZXJyb3IKICAgY29uZGl0aW9ucyAoLTEgYWZ0ZXIgY29udmVyc2lvbiBpcyBub3cgdG9vIGxhcmdlKS4KICAgCjIwMDItMDQtMTggMTY6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBjaGFuZ2UgdGhlIGVudGVycHJpc2UgT0lEcyBpbiB0aGUgcHJvcGVyIHBsYWNlIChuZXQtc25tcC1jb25maWcuaC5pbgogICBpcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUpLgogICAKMjAwMi0wNC0xOCAxMzo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICAtIEFkZCB0d28gbmV3IG9wdGlvbnMgdG8gbmV0LXNubXAtY29uZmlnIGFzIHJlcXVlc3RlZCBvbiB0aGUgSVJDIGNoYW5uZWwuCiAgICAgLS1jb25maWd1cmUtb3B0aW9ucwogICAgIC0tc25tcGQtbW9kdWxlLWxpc3QKICAgCjIwMDItMDQtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wNC0xOCAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiBzdXBwbGllZCBlbnRlcnByaXNlIE9JRHMgY29ycmVjdGx5CiAgIChhbmQgdXNlIGEgbW9yZSBtZWFuaW5nZnVsIG91dHB1dCBtZXNzYWdlKQogICAKICAgU2hhbWUgdGhlc2Ugc2V0dGluZ3MgYXJlbid0IGNhY2hlZCBmb3IgbGF0ZXIgcmUtdXNlLi4uLgogICAKMjAwMi0wNC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE5vdGlmeSBvbiBhZ2VudCByZWNvbmZpZ3VyYXRpb24uCiAgIAoyMDAyLTA0LTE4IDA3OjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBub3RpZmljYXRpb25zIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE4IDA3OjA4ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXggdGhlIHRhYmxlLW9mLWNvbnRlbnRzIHNlcXVlbmNlIGZvciB0aGUgbnNNb2R1bGVUYWJsZSwgYWRkIG5vdGlmaWNhdGlvbgogICBkZWZpbml0aW9ucyBmb3IgdGhlIGFnZW50LCBhbmQgZGVmaW5lIGdyb3VwcyBmb3IgZXZlcnl0aGluZy4KICAgCjIwMDItMDQtMTggMDI6NTIgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCcmluZyBpbnRlZ2VyIGFuZCBzdHJpbmcgb3V0cHV0IGZvcm1hdHMgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIHR5cGVzCiAgIGJ5IHByaW50aW5nIGEgdHlwZSB0b2tlbiBiZWZvcmUgdGhlIHZhbHVlICh1bmxlc3Mgc3VwcmVzc2VkIGJ5ICdxdWljayBwcmludCcpCiAgIFRoYW5rcyB0byBFcmlrIGZvciB0aGUgcGF0Y2gKICAgCjIwMDItMDQtMTggMDE6NDYgIGR0czEyCgogICAqIEZBUToKCiAgIFJlcGxhY2UgdGhlIGRsbW9kICdXSEVSRScgd2l0aCBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLi4uLgogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBkZWZpbmUgdGhlIGlweERvbWFpbiB2YXJpYWJsZXMKICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEVycm9yIGNvbmRpdGlvbiB0ZXN0cwogICAKMjAwMi0wNC0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBPaCwganVzdCBhIHNtYWxsIHBhdGNoIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gbWFrZSBtb2R1bGVzIHJlcXVlc3QKICAgdGhhdCBhbGwgcXVlcmllcyB0byBhIHNldCBvZiByZWdpc3RyYXRpb25zIGdldCBwYXNzZWQgYWxsIGF0IG9uY2UKICAgKHdoaWNoIGFwcGFyZW50bHkgaXMgaW1wb3J0YW50IGZvciwgb2gsIGFnZW50eCkKICAgCjIwMDItMDQtMTcgMTA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1pc2Mgbm9uLWNoYW5nZSBjbGVhbiB1cHMKICAgCjIwMDItMDQtMTcgMTA6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbmFtZSBzdHJ1Y3R1cmVzIGJlZ2lubmluZyB3aXRoIF8gdG8gZW5kaW5nIHdpdGggX3MKICAgCjIwMDItMDQtMTcgMTA6MDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBzZXNzaW9uIGNyZWF0b3IgdG8gdXNlIGF0IHdpbGwgKGRpZmZlcmVudAogICBmcm9tIHRoZSBjYWxsYmFjayBtYWdpYykuCiAgIAoyMDAyLTA0LTE3IDA5OjAwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgc3lzT0lEcyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xNyAwODoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlLgogICAKMjAwMi0wNC0xNyAwODoxNiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZQogICAKMjAwMi0wNC0xNyAwNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBtb3ZlIG5zTW9kdWxlVGFibGUgaW50byBEYXZlJ3Mgc3RydWN0dXJlLgogICAKMjAwMi0wNC0xNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcFRDUElQdjZEb21haW4uaCwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbnMgb2YgRG9tYWluIG9iamVjdHMgKGNvbnN0IC0+IGV4dGVybikKICAgCjIwMDItMDQtMTcgMDY6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIHNubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLCBzbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcKOgoKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBkYXRhCiAgIAoyMDAyLTA0LTE3IDAzOjAxICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSByZXBvcnRlZCBkZWZhdWx0IHNldHRpbmdzIGZvciBzeXNvaWQgJiBub3RpZmljYXRpb24gT0lEcwogICBiYWNrIGludG8gbGluZSB3aXRoIHdoYXQgd2UgYWN0dWFsbHkgdXNlIChpLmUuIHRoZSB1Y2RhdmlzIE9JRHMpLgogICAKICAgUW46ICBEbyB3ZSB3YW50IHRvIHN3aXRjaCB0byB1c2luZyB0aGUgbmV0LXNubXAgZXF1aXZhbGVudCBzeXNPSURzPwogICBRbjogIFdoYXQgYWJvdXQgZGVmaW5pbmcgbmV0LXNubXAgbm90aWZpY2F0aW9ucz8KICAgCjIwMDItMDQtMTcgMDI6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IC0td2l0aC1lbnRlcnByaXNlLXN5c29pZCBhbmQgLS13aXRoLWVudGVycHJpc2Utbm90aWZpY2F0aW9uLW9pZCwKICAgYW5kIHRyeSB0byBjbGFyaWZ5IHRoYXQgdGhlc2UgYXJlIE9JRHMsIHdoaWxlIC0td2l0aC1lbnRlcnByaXNlLW9pZAogICBpcyBhY3R1YWxseSBqdXN0IHRoZSBlbnRlcnByaXNlICpudW1iZXIqCiAgIAogICBRbjogIHNob3VsZCB3ZSBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gdG8gcmVmbGVjdCB0aGlzPwogICAKMjAwMi0wNC0xNiAxMDowNCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUzICkKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGRlbGV0ZSB0b3AgZGlzY2xhaW1lcnMKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaXNjIHVwZGF0ZXMKICAgCjIwMDItMDQtMTYgMTA6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWlzYyBidWcgZml4ZXMKICAgCjIwMDItMDQtMTYgMDg6MTkgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBjb25jZXJuaW5nIHRoZSAnbGliY3J5cHRvJyBSUE0gZGVwZW5kZW5jeS4KICAgCjIwMDItMDQtMTYgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wNC0xNiAwNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIGEgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIHRvZG8gY29tbWVudAogICAKMjAwMi0wNC0xNiAwNzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgSSBndWVzcyBJIGZvcmdvdCB0byBydW4gYXV0b2NvbmYKICAgCjIwMDItMDQtMTUgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogc25tcGNvbmYsIE1ha2VmaWxlLmluOgoKICAgbW92ZSBzbm1wY29uZiBkYXRhIGRpcmVjdG9yaWVzIHRvIGRpZmZlcmVudCBuYW1lcyB0byBhdm9pZCBjb25mdXNpb24KICAgCjIwMDItMDQtMTUgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9hdXRob3B0cywKICAgc25tcC1kYXRhL2RlYnVnZ2luZywgc25tcC1kYXRhL21pYnMsIHNubXAtZGF0YS9vdXRwdXQKLCBzbm1wZC1kYXRhL2FjbCwgc25tcGQtZGF0YS9iYXNpY19zZXR1cCwKICAgc25tcGQtZGF0YS9leHRlbmRpbmcsIHNubXBkLWRhdGEvbW9uaXRvciwKICAgc25tcGQtZGF0YS9vcGVyYXRpb24sIHNubXBkLWRhdGEvc3lzdGVtLAogICBzbm1wZC1kYXRhL3RyYXBzaW5rcywgc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZywKICAgc25tcHRyYXBkLWRhdGEvdHJhcGhhbmRsZToKCiAgIGRhdGEgZmlsZSBtb3ZpbmcKICAgCjIwMDItMDQtMTIgMTQ6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgTWFzc2l2ZSBjbGVhbnVwIGVmZm9ydC4gIEl0IHNob3VsZCBub3cgcmVzcGVjdCBvcmRlcmluZyBpbiB0aGUKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBmaWxlcyBhcyB3ZWxsLgogICAKMjAwMi0wNC0xMiAxMzowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGZpeCBmb3Igb3ZlcnplYWxvdXMgcGVybCBzY3JpcHQKICAgCjIwMDItMDQtMTIgMDk6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvcHkgdWNkIHBlcnNpc2VudCBkaXJlY3RvcnkgdG8gbmV0LXNubXAgKHByb21wdHMsIGZsYWdzIGFuZCBvdGhlciBmdW4pCiAgIAoyMDAyLTA0LTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgdHJhcHRvZW1haWwKICAgCjIwMDItMDQtMTIgMDc6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIHJlbW92ZSB0cmFwbm90aWYKICAgCjIwMDItMDQtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHJzbm1wOgoKICAgcmVtb3ZlIHJzbm1wLCB3aGljaCBpcyB2ZXJ5IHZlcnkgb2xkIGFuZCBvdXQgb2YgZGF0ZQogICAKMjAwMi0wNC0xMiAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIG1pYjJjLjEuZGVmOgoKICAgQSBtYW51YWwgcGFnZSBmb3IgbWliMmMgKGhlbHAsIEknbSB0dXJuaW5nIGludG8gRGF2ZSkKICAgCjIwMDItMDQtMTIgMDc6MjggIGhhcmRha2VyCgogICAqIGRvdGdkYmluaXQ6CgogICBhIGdkYiBpbml0aWFsaXphdGlvbiBmaWxlIHdpdGggaGVscGZ1bCBmdW5jdGlvbnMKICAgCjIwMDItMDQtMTIgMDI6NDIgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgQWRkICdzbm1wY29uZicgYW5kICdtaWIyYycgdG8gdGhlIGxpc3Qgb2Ygc2NyaXB0cyB0byBpbnN0YWxsLgogICAKICAgSSd2ZSBsZWZ0ICd0cmFwdG9lbWFpbCcgb2ZmIHRoaXMgbGlzdCwgc2luY2UgaXQgc2F5cyBpdCdzIG5vdCBpbnRlbmRlZAogICBhcyBhIGRpcmVjdGx5IHVzZXItaW52b2tlZCBjb21tYW5kLCBzbyBwcm9iYWJseSBvdWdodCBub3QgdG8gYmUgaW5zdGFsbGVkCiAgIGludG8gYSBiaW5hcnkgZGlyZWN0b3J5LgogICAKMjAwMi0wNC0xMiAwMjo0MSAgZHRzMTIKCiAgICogbG9jYWwvcnNubXA6CgogICBGaXggdGhlIHBhdGggb2Ygc25tcHdhbGsgdG8gYmUgc29tZXRoaW5nIG1vcmUgcGxhdXNpYmxlLgogICAoSSdtIG5vdCBjb252aW5jZWQgYWJvdXQgdGhlIHZhbGlkaXR5IG9mIHRoYXQgaW5pdGlhbCAncnRvcG1pYicgT0lEIG1pbmQhKQogICAKMjAwMi0wNC0xMiAwMjozNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIEZpeCB0eXBvIGluIHJlZmVyZW5jZSB0byAnbWliMmMuaXRlcmF0ZS5jb25mJwogICAKMjAwMi0wNC0xMiAwMjozMyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtYWluIGxpYnJhcnkgYXMgJ2xpYnNubXAnIGlmIGNvbmZpZ3VyZWQgdXNpbmcgVUNEIGNvbXBhdGliaWxpdHkuCiAgIFRoaXMgc2hvdWxkIGhhbmRsZSB0aGUgcmVxdWlyZW1lbnRzIG9mIGFwcGxpY2F0aW9uIGNvbXBhdGliaWxpdHkuCiAgIEFnZW50IGxpYnJhcnkgY29tcGF0aWJpbGl0eSBpcyBsaWtlbHkgdG8gcHJvdmUgYSBoYXJkZXIgcHJvYmxlbQogICAoc2luY2UgdGhlcmUgYXJlIG5vdyB0aHJlZSBsaWJyYXJpZXMsIG5vdCBqdXN0IHR3by4uLikKICAgCjIwMDItMDQtMTEgMjI6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBzZXQgU05NUENPTkZQQVRIIGlmZiBbc2ljXSBub3Qgc2V0CiAgIAoyMDAyLTA0LTExIDIyOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJldHVybiBmcm9tIGluaXRNaWIgYmVmb3JlIGRvaW5nIGFueXRoaW5nLgogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgdHVybiBvZmYgY29tcGxpZXIgd2FybmluZ3MKICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgInNob3cgY29sdW1ucyBmcm9tIFRBQkxFIgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgbmV3IGRlbW8gc2NhbGFyOiB0aGUgc2xlZXBlci4gIChkYWggZGFoIGRhaCBkdW1tbW1tKQogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgaW5kZW50LgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy5oLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMKLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmg6CgogICBBZGQgYSBkZWxheWVkIGluc3RhbmNlIGV4YW1wbGUsIHNob3dpbmcgaG93IHRvIHJldHVybiBtaWIgcmVxdWVzdAogICByZXN1bHRzIGxhdGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5LgogICAKMjAwMi0wNC0xMSAyMjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIHJlbW92ZSBsZWdhY3kgZXhhbXBsZS4KICAgCjIwMDItMDQtMTEgMjI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBjb21tZW50IGFib3V0IHBvc3NpYmx5IGZpeGluZyBpbmNsdXNpdmUgcmVxdWVzdHMgaW4gdGhlIGZ1dHVyZS4KICAgCjIwMDItMDQtMTEgMTc6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIGNoYW5nZSBtb2R1a2VzLT4gbW9kdWxlcwogICAKMjAwMi0wNC0xMSAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHR1cm4gb2ZmIGRlYnVnZ2luZyB3aGVuIGNhbGxpbmcgbG9nZ2luZyBjYWxsYmFja3MKICAgCjIwMDItMDQtMTAgMTI6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBmaXggcGVybCBtb2R1bGUgaW4gbWFueSBtYW55IHBsYWNlcy4gIG1vc3QgdGVzdHMgbm93IHBhc3MuCiAgIAoyMDAyLTA0LTEwIDEyOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgZm9yY2Ugc2V0dGluZyB0byBhICJib2d1cyIgU05NUENPTkZQQVRILgogICAKMjAwMi0wNC0xMCAxMjo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgRXhwb3J0aW5nIGZ1bmN0aW9ucyBnb29kLiAgSW50ZXJuYWxpemluZyBiYWQuCiAgIAoyMDAyLTA0LTEwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICBzaWdoLgogICAKMjAwMi0wNC0xMCAwOToyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wNC0xMCAwOToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIE1ha2UgdGhlIHBlcmwgbW9kdWxlIGNhbGwgaW5pdF9zbm1wKCkKICAgICAtIHRoaXMgaXMgYSBmYWlybHkgbWFqb3IgY2hhbmdlLCBpcyBpdCBub3cgd2lsbCByZWFkIC5jb25mIGZpbGVzLgogICAgIC0gbWFueSBwZW9wbGUgaGF2ZSBhc2tlZCBmb3IgdGhpcy4KICAgLSBtaXNjIGNsZWFuIHVwcy4KICAgCjIwMDItMDQtMTAgMDk6MTggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRG9uJ3QgcmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIGZvciB0aGUgY29uc2l0dWVudCBzdWJ0YXJnZXRzIG9mICJtYWtlIGluc3RhbGwiCiAgIAoyMDAyLTA0LTEwIDA5OjA5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgYSBmZXcgdGhpbmdzLCBzZXBhcmF0ZWQgcGVybCBzdHVmZiBpbnRvIGl0J3Mgb3duIHNlY3Rpb24uCiAgIAoyMDAyLTA0LTEwIDA4OjQ2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSBoZWxwIG1lc3NhZ2UgZm9yIHRoZSBVQ0QgY29tcGF0YWJpbGl0eSBvcHRpb24gaW50byBsaW5lIHdpdGgKICAgd2hhdCdzIGFjdHVhbGx5IHJlY29nbmlzZWQuCiAgIAoyMDAyLTA0LTEwIDA3OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjaGFuZ2UgbGlidG9vbCB2ZXJzaW9uaW5nIHRvIHRoZWlyIHJlY29tbWVuZGVkIG1ldGhvZCBvZiBkb2luZyB0aGluZ3MKICAgKHdoaWNoIEkgaGF0ZSwgYnV0IGlzIHN0aWxsIGJldHRlciB0aGFuIHdoYXQgd2Ugd2VyZSBkb2luZywgSSBndWVzcykKICAgCjIwMDItMDQtMTAgMDc6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgQnJpbmcgdXNlIG9mIEJVSUxUU1VCRElSIHdpdGhpbiAnaW5zdGFsbGxvY2FsaGVhZGVycycgaW50byBsaW5lCiAgIHdpdGggdGhlIHByZWNlZGluZyBjb21tZW50LCBhbmQgYWN0dWFsIHVzYWdlLgogICAoaS5lLiBJTlNUQUxMQlVJTFRTVUJESVIgcmF0aGVyIHRoYW4gSU5DTFVERUJVSUxUU1VCRElSKQogICAKMjAwMi0wNC0xMCAwNTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR5cG8gaW4gc2VjdXJpdHktaW5jbHVkZSBoZWFkZXIgZGVzdGluYXRpb24gZGlyZWN0b3J5IHZhcmlhYmxlCiAgIAoyMDAyLTA0LTEwIDA1OjU1ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyBtaWIyYyBjb25mIGZpbGVzLgogICAKMjAwMi0wNC0xMCAwMTo1NSAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDRzbm1wdjFub3N1Y2gsIFQwMTlzbm1wdjJjbm9zdWNoOgoKICAgVHdvIG5ldyB0ZXN0cyB0byBjaGVjayBoYW5kbGluZyBvZiBHRVRpbmcgbm9uLWV4aXN0YW50IGluc3RhbmNlcwogICAKMjAwMi0wNC0xMCAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQSBmaXggZm9yIFNOTVB2MSBlcnJvcnMgdGhhdCBkb2Vzbid0IGVuZCB1cCBicmVha2luZyBBZ2VudFggZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAyLTA0LTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBmcm9tIERhdmUgdG8gZml4IHYxIGVycm9yIHJlc3VsdHMuCiAgIAoyMDAyLTA0LTA4IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpeCBpbmNvcnJlY3QgbGVuZ3RoIHJldHVybiB2YWx1ZQogICAKMjAwMi0wNC0wOCAxODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmg6CgogICBkb24ndCBhbGxvdyBuby1jb25maWd1cmF0aW9uIGFjY2VzcyBhbnltb3JlLgogICAKMjAwMi0wNC0wOCAxNzo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXB1c20uYwo6CgogICBtb3JlIHVuY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDItMDQtMDggMTc6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgc2l6ZV90IGV4dGVybnMgZm9yIGV4cG9ydGVkIG9pZHMKICAgCjIwMDItMDQtMDggMTc6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHN0YXRlbWVudHMgdGhhdCBhY2NpZGVudGFsbHkgYmVjYW1lIHBlcm1hbmVudC4KICAgCjIwMDItMDQtMDggMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBfdHJhbnNwb3J0LmM6CgogICBkZWZpbmUgbGVuZ3RoIHNpemVfdCdzIGZvciBvaWQgdmFyaWFibGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBzdXBwb3J0ICJudWxsIiB0eXBlcy4KICAgCjIwMDItMDQtMDggMTY6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBpbml0aWFsaXplIG5vdGlmaWNhdGlvbiBsb2cgbWliIHN1cHBvcnQgYmVmb3JlIC1IIHVzYWdlLgogICAKMjAwMi0wNC0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpeCBhIGZldyB0aGluZ3MgYW5kIG1ha2Ugc3ViaGFuZGxlcnMgbm90IGFibGUgdG8gdGVsbCB0aGVyZSB3ZXJlIG1vcmUgcmVxdWVzdHMuCiAgIAoyMDAyLTA0LTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgQSBjby13b3JrZXIgcG9pbnRlZCBvdXQgdGhhdCB0aGUgSU5TVEFMTCBzY3JpcHQgc3RpbGwgc2FpZCB0byBlZGl0IGNvbmZpZy5oCiAgIAoyMDAyLTA0LTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHVuc3RhdGljLWl6ZSBhIGZldyBvaWRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBleHRlcm5hbAogICAKMjAwMi0wNC0wOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywKICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uYywgc25tcF9hcGkuYywgc25tcF90cmFuc3BvcnQuYwosIHNubXB1c20uYzoKCiAgIENoYW5nZSBjb25zdCBvaWQgZGVjbGFyYXRpb25zIGludG8gc3RhdGljIG9uZXMgc2luY2Ugc2hhcmVkIGxpYnJhcmllcwogICBoYXZlIGEgcHJvYmxlbSB3aXRoIGluaXRpYWxpemluZyB0aGVtIG9uIGxpbnV4IHN5c3RlbXMgYXQgbGVhc3QuCiAgIAoyMDAyLTA0LTA4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbmltYWwgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdnaW5nIGFuZCB0aGUgaW5qZWN0SGFuZGxlciB0b2tlbgogICAKMjAwMi0wNC0wNSAxNDozMiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcHRyYXBkLjguZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBOT1RJRklDQVRJT04tTE9HLU1JQiBzdXBwb3J0LgogICAKMjAwMi0wNC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBjb250ZXh0IG5hbWUgc3VwcG9ydCBpbiBwcm94eSBjb2RlLgogICAKMjAwMi0wNC0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZGlzbWFuIGV2ZW50IG1pYiBzdXBwb3J0IGZvciBzZW5kaW5nIHRyYXBzIHZpYSBtb25pdG9yZWQgT0lEcy4KICAgCjIwMDItMDQtMDUgMTA6MTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgcHV0IHRyYXAgY29uZmlnIGludG8gaXRzIG93biBzZWN0aW9uLgogICBkb2N1bWVudCB0aGUgIm92ZXJyaWRlIiB0b2tlbi4KICAgCjIwMDItMDQtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBjaGFuZ2UgZGVmYXVsdCBjb250ZXh0IHRvIGFuIGVtcHR5IHN0cmluZwogICAKMjAwMi0wNC0wNCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuNSksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgTWFrZSBhbiBleGFtcGxlIGRhdGFzZXQgdGFibGUgdG8gaG9sZCBhbmQgc3RvcmUgZGF0YSBpbiAoYWRtaXR0ZWRseQogICB1c2VsZXNzIGRhdGEgZnJvbSBhIG5ldHdvcmsgbWFuYWdlbWVudCBwb2ludCBvZiB2aWV3LCBidXQgaXQncyBhbiBleGFtcGxlKS4KICAgCjIwMDItMDQtMDIgMjI6MTIgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gZnJvbSBzdWJkaXIgYnVpbGQgY2FzZS4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcyBmcm9tIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmggYW5kIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuaCBmcm9tIHRoZSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGNyZWF0ZSBzb21lIGluc3RhbGwgZnJvbSBidWlsdCBoZWFkZXIgcnVsZXMuCiAgIAoyMDAyLTA0LTAyIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mOgoKICAgcmVtb3ZlIGRlbGV0ZWQgYXJyYXktYXV0byBmcm9tIC5jb25mIGluc3RhbGwvcmVmZXJlbmNlIGxpc3RzCiAgIAoyMDAyLTA0LTAyIDE1OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIHVjZC1zbm1wL3JlZ2lzdHJ5Lmg6CgogICByZW1vdmUgdGhlIHJlZ2lzdHJ5IG1vZHVsZSwgYXMgaXQncyBvYnNvbGV0ZSBkdWUgdG8gY29udGV4dHMuICBVc2UgdGhlIG5zTW9kdWxlVGFibGUgaW5zdGVhZAogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jIChWNC0yLXBhdGNoZXMuNyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmg6CgogICBBcHBseSBwYXRjaCAjNTI0NDI0IGZvciBkYXJ3aW4gZml4ZXMgZm9yIHVjZC1zbm1wL2Rpc2suYwogICAKMjAwMi0wNC0wMiAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY0LTItcGF0Y2hlcy44KSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGF0Y2ggNTI3NTczIHRvIGZpeCA2NCBiaXQgdHlwZXMgb24gc29sYXJpcwogICAKMjAwMi0wNC0wMiAwNzowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgY2hlY2sgY2hhciBmb3IgTlVMTCBiZWZvcmUgc2V0dGluZyB0bzoKICAgCjIwMDItMDQtMDEgMjI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOSksIGNtdV9jb21wYXQuYywKICAgc25tcF9hcGkuYzoKCiAgIExldCBpbml0X3NubXAgcHJvdGVjdCBpdHNlbGYuCiAgIAoyMDAyLTAzLTI5IDE1OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzICYgdXBkYXRlcwogICAKMjAwMi0wMy0yOSAxMDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhZGQgY29tbWVudAogICAKMjAwMi0wMy0yOSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBhIGFsbG93X2NyZWF0aW9uIGRlZmluaXRpb24uCiAgIAoyMDAyLTAzLTI5IDA4OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2UgbmV0LXNubXAtY29uZmlnIGV4ZWN1dGFibGUgYWZ0ZXIgaXQncyBidWlsdAogICAKMjAwMi0wMy0yOSAwODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzZXRTZXJpYWxOby5jLCBzZXRTZXJpYWxOby5oOgoKICAgb3Bwcy4gIGZvcmdvdCB0byBjaGVjayB0aGUgc2V0U2VyaWFsIGNvZGUgaW4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNCksIHBhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFY0LTItcGF0Y2hlcy40KSwgaHJfZmlsZXN5cy5jCjoKCiAgIGFwcGx5IGZyZWVic2Q1IHBhdGNoICM1MTczMzMKICAgCjIwMDItMDMtMjggMjM6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvaW50ZXJmYWNlcy5jCiwgbWliSUkvaXBBZGRyLmM6CgogICBBcHBseSBuZXRic2QgZml4IHBhdGNoICM1Mjk3MzMKICAgCjIwMDItMDMtMjggMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmMsCiAgIHNubXBfYXBpLmM6CgogICB1c2UgYSBzdGF0aWMgdmFyaWFibGUgZm9yIGluaXQgY2hlY2tpbmcuICBCdWcgIzUzNjM4Ni4KICAgCjIwMDItMDMtMjggMTU6MjUgIGR0czEyCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIHJlYWRfY29uZmlnLjMuZGVmLAogICBzbm1wX2FwaS4zLmRlZjoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlLgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbmFtZS9wcmVmaXggZnVuY3Rpb25zOyBhZGQgZG94eWdlbiBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTAzLTI4IDEzOjAwICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGRlZmluZSBmb3IgZXhjbHVkaW5nIHN0dWZmIChET1hZR0VOX1NIT1VMRF9TS0lQX1RISVMpCiAgIAoyMDAyLTAzLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgYWRkIHNldFNlcmlhbE5vCiAgIAoyMDAyLTAzLTI4IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIGZpeCBhIG5ldmVyLXNlZW4tYnV0LXZlcnktb2xkLWJ1ZyB1c2luZyB0aGUgd3JvbmcgZGVmYXVsdF9zdG9yZSB0b2tlbi4KICAgCjIwMDItMDMtMjggMTI6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9ubHkgc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBzdHlsZSBpZiBpdCdzIG5vdCBhbHJlYWR5IHNldCB0byBzb21ldGhpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgd3JhcHBpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgdmVyc2lvbiBudW1iZXIKICAgCjIwMDItMDMtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGJhY2sgb3V0IGNoYW5nZSBmcm9tIHZlcnNpb24gMS42NSB1bnRpbCBiZXR0ZXIgc29sdXRpb24gY2FuIGJlIGZvdW5kOwogICBidWcgIzUzNTAyOQogICAKMjAwMi0wMy0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZXR1cm4gc3BlY2lmaWMgcmVzdWx0IGNvZGUgZm9yIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGlmIGF2YWlsYWJsZS4KICAgCjIwMDItMDMtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCjoKCiAgIHBlcmwgdHlwbwogICAKMjAwMi0wMy0yNyAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGRlbGV0ZSBvbGQsIHVudXNlZCBjb25mIGZpbGUKICAgCjIwMDItMDMtMjcgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMsIG5vdGlmaWNhdGlvbl9sb2cuaCwKICAgc25tcHRyYXBkLmM6CgogICBhZGQgImRvbnRSZXRhaW5Mb2dzIiB0b2tlbiB0byBzbm1wdHJhcGQuY29uZiB0byBub3QgZW5hYmxlIHRoZQogICBub3RpZmljYXRpb24gbG9nIG1pYi4KICAgCjIwMDItMDMtMjcgMDE6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gUmVhbGx5IGZpeCB0aGUgInVuZG8gZmFpbGVkIiBwcm9ibGVtLiAgSUUsIG5vdCBqdXN0IGFueSBvbGQgZXJyb3IKICAgICB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIG1lc3NhZ2UgdG8gZ2V0IHNlbnQgYmFjay4gIE9ubHkgdmFyYmluZHMKICAgICB3aXRoIGFuIHVuZG8gZmFpbGVkIGVycm9yIGNvZGUgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCByZXN1bHQuCiAgICAgdW5kbyBmYWlsZWQgcmVzdWx0cyBkbyBzdGlsbCBzdXBlcnNlZGUgYWxsIG90aGVyIGVycm9yIGNvZGVzLAogICAgIGhvd2V2ZXIsIHdoaWNoIGlzIHdoYXQgdGhlIG9yaWdpbmFsIHByb2JsZW0gd2FzIGFsbCBhYm91dC4gIFdlIHN0aWxsCiAgICAgaGF2ZSB0byBkZXBlbmQgb24gdGhlIG1vZHVsZXMgcmV0dXJuaW5nIHRoZSByaWdodCBlcnJvciBjb2RlIChidXQKICAgICB0aGF0J3MgdGhlaXIgZmF1bHQgaWYgdGhleSBkb24ndCkuCiAgIC0gbWlzYyBjbGVhbnVwcyBhbmQgcmVuYW1lcwogICAKMjAwMi0wMy0yNiAyMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIENyYWlnIFNldGVyYQogICAKMjAwMi0wMy0yNiAxNDowNyAgcnN0b3J5CgogICAqIFRPRE86CgogICBhZGQgY3JlYXRpbmcgc3JjIHJwbSBzcGVjIGZpbGUKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlza2lvLmMgKFY0LTItcGF0Y2hlcy4yKSwgZGlza2lvLmMKOgoKICAgZW5hYmxlIGRpc2tpbyBvbiBmcmVlYnNkNS4gIEltcGxlbWVudHMgcGF0Y2ggNTE3MzI4IGluIGEgZGlmZmVyZW50IHdheS4KICAgCjIwMDItMDMtMjYgMDc6NTggIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBmaXggZm9yIG90aGVyLWRpciBidWlsZHMKICAgCjIwMDItMDMtMjYgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGluZm8gaW4gc3BsaXRfc3VidHJlZQogICAKMjAwMi0wMy0yNiAwNzo0MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bMCwwXSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls5LDldKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBSZW1vdmUgdHJhaWxpbmcgJzonIGZyb20gbGlzdCBvZiBNSUIgbW9kdWxlIG5hbWVzIGluIGNvbmZpZ3VyZSBvdXRwdXQsCiAgIHRvIGF2b2lkIGNvbmZ1c2lvbiAoc2VlIEJ1ZyAjNDkxMTI5KQogICAKMjAwMi0wMy0yNiAwNjo0MSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgJy1saGxwYXBpJyB0byB0aGUgbGlzdCBvZiBhZ2VudCBsaWJyYXJpZXMsIHdoZW4gcnVubmluZyBvbiBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogcGFyc2UuYyAoVjQtMi1wYXRjaGVzLjMpLCBwYXJzZS5jOgoKICAgZml4IGJ1ZyM1MjA0Nzggc2hvd01pYkVycm9ycyB0b2tlbiBpcyBpbnZlcnRlZAogICAKMjAwMi0wMy0yNSAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDMtMjUgMTQ6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgdXNlIGVtYWNzIHRvIGZpeCBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgcGVybCB0byBzZWFyY2ggYW5kIHJlcGxhY2UgcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMjUgMDg6NDMgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIub3B0LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9ucyBvZiAnZ2V0b3B0LmMnIGFuZCAnc25tcF9wYXJzZV9hcmdzLmMnIGluCiAgIGVhY2ggaW5kaXZpZHVhbCBhcHBsaWNhdGlvbiBwcm9qZWN0LiAgVGhlc2Ugcm91dGluZXMgYXJlIGluY2x1ZGVkIHdpdGhpbgogICB0aGUgbGlicmFyaWVzLCBzbyB3ZSBtaWdodCBhcyB3ZWxsIHVzZSB0aG9zZS4KICAgCjIwMDItMDMtMjUgMDU6NTMgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oLCB3aW4zMi5vcHQsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIEdvdGNoYSEgIEV2ZXJ5dGhpbmcgbm93IGJ1aWxkcyAobW9yZS1vci1sZXNzKSBjbGVhbmx5IHVuZGVyIFZpc3VhbCBDKysuCiAgIFlvdSBzdGlsbCBoYXZlIHRvIHVzZSB0aGUgIkJhdGNoIEJ1aWxkIiBtZWNoYW5pc20gKG9yIGVsc2UgYmUgY2FyZWZ1bCB3aGljaAogICBvZiBsaWJzbm1wL2xpYnNubXBfZGxsIHlvdSBidWlsZCBpbiBlYWNoIG9mIHRoZSBEZWJ1ZyAmIFJlbGVhc2UgbW9kZXMpLAogICBhbmQgeW91IG5lZWQgdG8gYnVpbGQgdHdpY2UgaW4gb3JkZXIgdG8gZ2V0IGVuY29kZV9rZXljaGFuZ2UgbGlua2luZy4KICAgQnV0IHRoaW5ncyAqZG8qIGZpbmFsbHkgYnVpbGQuCiAgIAoyMDAyLTAzLTI0IDA1OjIxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE9vcHMgLSBzbnByaW50XyogY2Fubm90IHJlYWxsb2MKICAgCjIwMDItMDMtMjMgMDk6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICByZWFsbHkgZml4IHNubXBpbmZvcm0gaW5zdGFsbHMgdGhpcyB0aW1lLgogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaW5hbCBjbGVhbnVwcyBvZiBub3RpZmljYXRpb24gbG9nIHN1cHBvcnQKICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIG9mIHNubXBpbmZvcm0KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBSZW5hbWUgc3R1ZmYuICBGaXggc3R1ZmYuICBZb3Uga25vdywgbm9ybWFsIHJvdXRpbmUuCiAgIAoyMDAyLTAzLTIyIDIyOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB2ZXJzaW9uIGZpbGUgbG9jYXRpb24gZm9yIG5vbi1zb3VyY2VkaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTIyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZvcmdvdCB0byBjb21taXQgYSBwcm90b3R5cGUuCiAgIAoyMDAyLTAzLTIyIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgcmVnaXN0ZXJfbWliX2NvbnRleHQyIC0+IG5ldHNubXBfcmVnaXN0ZXJfbWliIChhbmQgbWFya2VkIGFzIGludGVybmFsKQogICAKMjAwMi0wMy0yMiAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICB1c2UgbmV3IGVycm9yIGxvZ2dpbmcgYXBpIHdoZW4gIXJvb3QKICAgCjIwMDItMDMtMjIgMTQ6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVuYWJsZSBsb2dnaW5nIHNlc3Npb24gZXJyb3JzIHRvIHNvbWUgbG9nIGxldmVsIG90aGVyIHRoYW4gRVJSLgogICAKMjAwMi0wMy0yMiAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICBiZXR0ZXIgYWdlbnR4IGNvbm5lY3Rpb24gcmVsYXRlZCBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMjIgMDk6MzUgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMi5vcHQsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIHNubXBkL3NubXBkLmRzcDoKCiAgIFNsb3dseSBtYWtpbmcgcHJvZ3Jlc3Mgb24gNS4wIFdpbmRvd3MgYnVpbGQuCiAgIEV2ZXJ5dGhpbmcgbm93IGNvbXBpbGVzLCB0aG91Z2ggdGhlIFJlbGVhc2UgdmVyc2lvbiBkb2Vzbid0IGxpbmsuCiAgICAgKGNvbXBsYWlucyBhYm91dCBhc3NvcnRlZCB1bmtub3duIHJvdXRpbmVzIHRoYXQgYXJlIHRoZXJlLAogICAgICBzdGFyaW5nIGl0IGluIHRoZSBmYWNlLiAgR3JyciEhISEpCiAgIAoyMDAyLTAzLTIyIDA4OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIG5vdCAidHdlYWsiIHJhbmdlX3N1YmlkIHdoZW4gZGVhbGluZyB3aXRoIGNvbXByZXNzZWQgT0lEcy4KICAgICAgIFRoYW5rcyB0byBDcmFpZyBTZXRlcmEgZm9yIHBvaW50aW5nIG91dCB0aGlzIGRldmlhdGlvbiBmcm9tIFJGQwogICAgICAgMjc0MS4KICAgCjIwMDItMDMtMjIgMDc6NTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL29pZF9hcnJheS5jCiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBWYXJpb3VzIG1pbm9yIGluY29uc2lzdGVuY2llcyAobW9zdGx5IHRvIGRvIHdpdGggc3VidGxlIHZhcmlhdGlvbnMgaW4gdHlwZXMpCiAgIAoyMDAyLTAzLTIyIDA3OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTAzLTIyIDA3OjI5ICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDoKCiAgIEJyaW5nIFdpbmRvd3MgdmVyc2lvbnMgb2YgImF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIiBoZWFkZXIgZmlsZXMgdXAgdG8gZGF0ZS4KICAgCjIwMDItMDMtMjIgMDI6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRvbid0IHVzZSAicmVnIiBhcyBhIHBhcmFtZXRlciBuYW1lIGluIGtlcm5lbF9zdW5vczVfY2FjaGVfYWdlKCkKICAgICAgIGFzIC91c3IvaW5jbHVkZS9pbmV0L2NvbW1vbi5oIHNheXM6CiAgICAgICAjZGVmaW5lIHJlZyByZWdpc3RlcgogICAgICAgKCEpIHdoaWNoIHRoZSBjb21waWxlciB0aGVuIGJhcmZzIG9uLiAgUmVwb3J0ZWQgYXMgYnVnICM1MzMzMzYgYnkKICAgICAgIEFub255bW91cy4KICAgCjIwMDItMDMtMjEgMDk6MjQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gc25tcF9jb25maWcqIC0+IG5ldHNubXBfY29uZmlnIChmb3IgbmV3IGZ1bmN0aW9ucyBvbmx5KQogICAtIGZpeCBidWcgd2hlcmUgc25tcF9jb25maWcoKSBzdHJpbmdzIHdlcmUgZ2V0dGluZyBwYXJzZWQgdHdpY2UuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgd3JhcCBhZ2VudHggc3R1ZmYgaW4gYSBzdGlsbCB1bnVzZWQgdmFyaWFibGUgKGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggb2lkIHBhcnNpbmcuCiAgIAoyMDAyLTAzLTIxIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24vYWxhcm0uYywgUm1vbi9zdGF0aXN0aWNzLmMsCiAgIG1pYklJL2F0LmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIxIDA2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjAgMjA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBhIGxpc3Qgb2YgcmVnaXN0ZXJlZCB0ZXh0IGVudW1zIHRvIEFTTl8qIHZhbHVlcy4KICAgICAoSW4gcHJvYmFibHkgdGhlIHdyb25nIHBsYWNlLikKICAgCjIwMDItMDMtMjAgMjA6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oOgoKICAgY3JlYXRlIGEgbmV3ICJvdmVycmlkZSIgZGlyZWN0aXZlIHRvIGZvcmNlIGFuIE9JRCB0byBhIHBhcnRpY3VsYXIgdmFsdWUKICAgLSBub3QgZmluaXNoZWQuICBJdCdzIGRlc2lnbmVkIHRvIGRvIHJlYWQtd3JpdGUgYXMgd2VsbCwgYnV0IGRvZXNuJ3QuCiAgIAoyMDAyLTAzLTIwIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjaGVjayBmb3IgaW5jbHVzaXZlCiAgIAoyMDAyLTAzLTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIGluY2x1ZGUgbmV3IGRlbGV0ZS9yZW1vdmUgYnJlYWtkb3duIEFQSXMKICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQVBJIGNoYW5nZS4KICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgc29tZSAidGhpcyB3aWxsIGNoYW5nZSIgZWFybHkgcm93IHN0YXR1cyBpbXBsZW1lbnRhdGlvbi4KICAgIC0gKHRoaXMgd2lsbCBtb3ZlIHRvIGEgc2VwYXJhdGUgaGFuZGxlcikKICAgCjIwMDItMDMtMjAgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcG9pbnRlciBjaGVja2luZyBhZ2FpbnN0IGlsbGVnYWwgYWRkcyAoaWUsIHNob3VsZG4ndCBoYXBwZW4gYnV0IGNoZWNrIGFueXdheSkKICAgCjIwMDItMDMtMjAgMDg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBPaywgSSBtYWtlIG1pc3Rha2VzLiAgSSBhZG1pdCBpdC4gIEl0IHJlYWxseSBzaG91bGQgaGF2ZSBiZWVuIGEgTlVMTC4KICAgCjIwMDItMDMtMjAgMDg6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wMy0yMCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgc2VwYXJhdGUgb3V0IGRlbGV0ZS9yZW1vdmUgcm93IGZ1bmN0aW9uYWxpdHkKICAgCjIwMDItMDMtMjAgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIHN5c3RlbV9taWIuYzoKCiAgIHJlbW92ZSBpbGxlZ2FsIFNFVCBzdXBwb3J0IGZvciBzeXNEZXNjci4KICAgCjIwMDItMDMtMjAgMDY6MjcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlLCBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG1hbnkgbWFueSAtVCBmbGFncyBmb3IgZGVmaW5pbmcgdHlwZXMuCiAgIAoyMDAyLTAzLTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZm9yY2Ugc2V0dGluZyBvZiAnIXJvb3QnIGZsYWcgc28gdGhhdCBpdCB3aWxsIHJ1biBmb3Igbm9uLXByaXZpbGVnZWQKICAgdXNlcnMgb3Igd2hlbiBhbiBhZ2VudHggbWFzdGVyIHNpbXBseSBoYXMgbmV2ZXIgZXhpc3RlZC4KICAgCjIwMDItMDMtMTkgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gYWxsb3cgdGFibGVzIHRvIGJlIG1hcmtlZCB3aGV0aGVyIHRoZXkgc2hvdWxkIHN1cHBvcnQgY3JlYXRpb24gb3Igbm90LgogICAtIGJ1ZyBmaXhlcwogICAKMjAwMi0wMy0xOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfZGF0YXNldC5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGhlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBtaWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMKOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIHBlcmwvYWdlbnQvYWdlbnQueHMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIHJlbmFtZWQgYSBmZXcgYmFkbHkgbmFtZWQgZnVuY3Rpb25zIChuZXRzbm1wXyBhcHBlYXJlZCB0d2ljZSkuCiAgIC0gaW1wbGVtZW50ZWQgdGhlIGJlZ2lubmluZyBvZiBjcmVhdGlvbiBzdXBwb3J0IGZvciBkYXRhc2V0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFwcGFyZW50bHkgSSByYW4gYXV0b2NvbmYgZWFybGllciBhbmQgbWlzc2VkIGNoZWNraW5nIGluIHRoZSByZXN1bHRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBhZGQgLW5mY2EKICAgCjIwMDItMDMtMTcgMTY6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIFNldCBkZWZhdWx0IHBvcnQgdG8gMTYyLgogICAKMjAwMi0wMy0xNyAxNTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgaW1wcm92ZWQgZm9ybWF0dGluZyBzdHJpbmdzIHNob3dpbmcgYm90aCB0cmFuc3BvcnQgdHlwZSBhbmQgcG9ydCBudW1iZXIuCiAgIAoyMDAyLTAzLTEzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBtaXNzaW5nICJpbnN0YWxsc3ViZGlycyIgdGFyZ2V0IG1pc3NpbmcgKHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFKQogICAKMjAwMi0wMy0xMyAyMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jcmVhdGUtc25tcHYzLXVzZXIgdG8gYXV0b21hdGUgYWRkaW5nIGEgdjMgdXNlciB0byBib3RoIHRoZSB1c20KICAgYW5kIHZhY20gdGFibGVzIChieSBhZGRpbmcgbGluZXMgdG8gYm90aCB0aGUgcGVyc2lzdGVudCBhbmQgbm9ybWFsCiAgIGNvbmYgZmlsZXMpLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgYnVnIGZpeCBmb3IgcHJlLXByb2Nlc3NlZCByZXF1ZXN0cy4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmgsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oCiwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICAtIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYWN0dWFsbHkgaW5zdGFsbHMgaGVhZGVycyAoYXMgb3Bwb3NlZAogICAgIHRvIGFsd2F5cywgd2hpY2ggaXMgd2hhdCBpdCB1c2VkIHRvIGRvKS4KICAgLSBhZGQgYWdlbnRfbWlicyB0byBjb25maWd1cmUgZGVmYXVsdCBtaWIgbW9kdWxlcyBhbmQgZG9jdW1lbnQuCiAgIC0gY2hhbmdlIGhlbHAgZG9jdW1lbnRhdGlvbiBhIGJpdCBmb3IgdGhlIG1pYiBtb2R1bGVzLgogICAtIGFkZCBhIGZvcmNlZCBkZXBlbmRlbmN5IGZvciBtaWJfbW9kdWxlcy5sbwogICAKMjAwMi0wMy0xMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaDoKCiAgIG9wcHMuICBkdXBsaWNhdGVzIGV4aXN0aW5nIGFnZW50X21pYnMuaAogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0CiAgIChWNC0yLXBhdGNoZXMuWzEsMSwxLDEsMSw5XSksIFVDRC1ERU1PLU1JQi50eHQsCiAgIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LAogICBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBBZGRlZCBhIG5zTW9kdWxlVGFibGUgdGFibGUgd2hpY2ggcmVwbGFjZXMgdGhlIG9sZGVyIG1yVGFibGUuCiAgIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQgaXRlbXMgd2l0aGluIHRoZSBNSUIKICAgdHJlZSBqdXN0IGxpa2UgdGhlIG1yVGFibGUgd2FzLCBidXQgd2l0aCBzdXBwb3J0IGZvciBjb250ZXh0cyBhbmQgZm9yCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zIHdpdGggZGlmZmVyZW50IHByaW9yaXRpZXMuCiAgIAoyMDAyLTAzLTEzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAoVjQtMi1wYXRjaGVzLjQpLCB0b29scy5jOgoKICAgbWFsbG9jIGF0IGxlYXN0IG9uZSBieXRlIGluIGhleF90b19iaW5hcnkyCiAgIAoyMDAyLTAzLTEzIDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgdW5uZWVkZWQgZGVidWcgc3RhdGVtZW50CiAgIAoyMDAyLTAzLTEzIDE0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGxvY2FsIHZhcmlhYmxlIG5hbWUgYnVmZmVycyBieSBkZWZhdWx0IHdoZW4gYnVpbGRpbmcgb2lkIHNlZ21lbnRzLgogICAKMjAwMi0wMy0xMyAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLyogc3RvcCB3YXRlciBmcm9tIGZsb3dpbmcgdGhyb3VnaCBkYW0gKi8KICAgZmluZ2VyLT5pbnNlcnQoImhvbGUiKQogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIEFkZCBhIGRlc2NyaXB0aW9uIG9mICJ1bmxpbmtlZCBPSURzIi4KICAgCjIwMDItMDMtMTIgMjE6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIGZpeCBoZWFkZXJzLgogICAKMjAwMi0wMy0xMiAyMToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgZG9uJ3QgZm9ybWF0IGNvbW1lbnRzIG9wdGlvbgogICAKMjAwMi0wMy0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggZm9yIHRhYmxlcyB3aXRoIGhvbGVzLgogICAKMjAwMi0wMy0xMiAyMTowOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIG1vdmUgZGVmYXVsdCBtaWJzIHRvIHRoZWlyIG93biB2YXJpYWJsZS4KICAgCjIwMDItMDMtMTIgMjE6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvYWdlbnQueHMsIGFnZW50L3R5cGVtYXA6CgogICAtIHVzZSBuZXQtc25tcC1jb25maWcgdG8gZmlndXJlIHRoaW5ncyBvdXQuCiAgIC0gdXBkYXRlIGhlYWRlcnMgYW5kIHR5cGVpbmZvIGZvciByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogRkFRMkhUTUwsIFJFQURNRS5taWIyYywgbWliMmMsIHRrbWliCiwgbWliMmMuYXJyYXktYXV0by5jb25mLCBtaWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgcmVtb3ZlIG9ic29sZXRlIG1pYjJjLmNvbmYgZmlsZQogICAKMjAwMi0wMy0xMiAxODoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb24ndCBmb3JnZXQgdG8gc2V0IHJvdy0+bmV4dC0+cHJldiB0byBzb21ldGhpbmcgd2hlbiByZW1vdmluZyByb3cuCiAgIAoyMDAyLTAzLTEyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggYWdlbnR4IGluY2x1c2l2ZSBzZWFyY2hlcyB0byBpZ25vcmUgZ2V0IGVycm9ycy4KICAgCjIwMDItMDMtMTIgMTc6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBzb21lIG1pbmltYWwgZHVtcCBkZWJ1Z2dpbmcuCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2FzdCAtMSB0byB1X2NoYXIgc28gdGVzdCBkb2Vzbid0IGFsd2F5cyBmYWlsIChmaXggY29tcGlsZXIgd2FybmluZykKICAgCjIwMDItMDMtMTEgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHRyZWF0IChpbGxlZ2FsKSBlcnJvcnMgZnJvbSBzdWJhZ2VudHMgc3BlY2lhbGx5IGZvciBnZXRuZXh0IGNhc2VzLgogICAKMjAwMi0wMy0xMSAxMzo0MSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG91ciBzbm1wIGxpYnJhcmllcyB0byBvdXRwdXQKICAgCjIwMDItMDMtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiB0YWJsZV9kYXRhLmgsIHRhYmxlX2RhdGFzZXQuaAo6CgogICBkZWxldGUvcmVtb3ZlIHN1cHBvcnQgaGVhZGVyIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTExIDA5OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGFsbG93IGNvbXBpbGF0aW9uIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1UQ1AKICAgCjIwMDItMDMtMTEgMDg6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBmaXhlcyBmb3IgLS1kaXNhYmxlLWRlYnVnZ2luZwogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA2OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgY29ycmVjdCBzZXNzaW9uIElEIHdoZW4gdGFsa2luZyB0byBzdWJhZ2VudHMuICBUaGFua3MgdG8gQ3JhaWcKICAgICAgIFNldGVyYSBmb3IgdGhpcyBmaXguCiAgIAoyMDAyLTAzLTExIDA1OjIwICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIGZyZWVzLCBldmVuIHRob3VnaCBpdCdzIHN1cHBvc2VkIHRvIGJlIG9rIGFjY29yZGluZyB0byBhbnNpLgogICAKMjAwMi0wMy0xMSAwMDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgbWF4aW11bSBsb2dnZWQgY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTExIDAwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgLSBudWxsIGNoZWNrCiAgIC0gZG9jIGNvbW1lbnRzLgogICAKMjAwMi0wMy0xMSAwMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAKMjAwMi0wMy0xMSAwMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXh0IGhhbmRsZXJzIChvcHBzKS4KICAgCjIwMDItMDMtMTAgMTQ6MTEgIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZpeCBvbmUgc3ByaW50X3ZhcmlhYmxlID0+IHNucHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDMtMTAgMTQ6MDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBBZGQgc25wcmludF8qIGZ1bmN0aW9ucyB0aGF0IHdlcmUgc3ByaW50XyogaW4gdWNkLXNubXAgNAogICAKMjAwMi0wMy0xMCAxNDowNSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXggY29tcGlsYXRpb24gd2hlbiBJUFgtdHJhbnNwb3J0IGVuYWJsZWQKICAgCjIwMDItMDMtMTAgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgRml4IGNvbXBpbGF0aW9uIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMy0wOCAyMjoyNiAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUyICkKICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1pc2MgY2hhbmdlcy4KICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTA4IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZCB0byBkZWFsIHdpdGggU2VuZG1haWwgOC4xMiBxdWV1ZWdyb3Vwcy4KICAgCjIwMDItMDMtMDggMTY6NTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIGNzZXRlIHRvIGZpeCB3aW4zMiBidWlsZHMKICAgCjIwMDItMDMtMDggMTY6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIENhbGxiYWNrIHRyYW5zcG9ydCB0byBjeWd3aW4KICAgCjIwMDItMDMtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHJtb24gc3VwcG9ydC4KICAgCjIwMDItMDMtMDggMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmVtb3ZlIG9sZCBhbiB1bnVzZWQgcG9pbnRlcgogICAKMjAwMi0wMy0wOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCwgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLAogICBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmYsIHBlcmwvU05NUC9TTk1QLnhzLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgc3RydWN0IHNubXBfc2Vzc2lvbiB0eXBlZGVmZWQgdG8gbmV0c25tcF9zZXNzaW9uLiAgJiBwZHUuICYgLi4uCiAgIAoyMDAyLTAzLTA4IDE0OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldF9zeW1ib2wgLT4gZ2V0X3RyZWUKICAgCjIwMDItMDMtMDggMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMsIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cwosIGFnZW50L3Rlc3QucGw6CgogICBtaXNzZWQgdXBkYXRlcwogICAKMjAwMi0wMy0wOCAwNzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jCiwgb2lkX2FycmF5LmMsIG9pZF9zdGFzaC5jLCByZWFkX2NvbmZpZy5jCiwgc25tcEFBTDVQVkNEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgIHNubXBfdHJhbnNwb3J0LmMsIHNubXB2My5jOgoKICAgbWlzc2luZyB1cGRhdGVkIGNvZGUKICAgCjIwMDItMDMtMDggMDI6MDcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgICAtIHNvbWUgc25tcCAtPiBuZXRzbm1wIGZpeGVzCiAgIAoyMDAyLTAzLTA3IDEzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyA0KQogICAKMjAwMi0wMy0wNyAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDMpCiAgIAoyMDAyLTAzLTA3IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMikKICAgCjIwMDItMDMtMDcgMDg6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaAosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAxKQogICAKMjAwMi0wMy0wNyAwNjoyMSAgamJwbgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6NDcgIGpicG4KCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICAgIC0gbWlub3IgdXBkYXRlcwogICAKMjAwMi0wMy0wNyAwNTozOSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6MDAgIGpicG4KCiAgICogbWFuL3JlYWRfY29uZmlnLjMuZGVmOgoKICAgICAtIG1ha2UgcHJvdG90eXBlcyBtYXRjaCBoZWFkZXIKICAgCiAgICAgLSBtYWtlIHN0eWxlIGNvbnNpc3RlbnQgd2l0aCBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAzOjA3ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGZpeCB1cCBzbnByaW50XyBkZWNsYXJhdGlvbnMsIGZpeCBzbWFsbCB0eXBvLiAgUGF0Y2ggYnkgR3V5CiAgIEhhcnJpcy4KICAgCjIwMDItMDMtMDcgMDI6NDQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2Ygc3ByaW50X3JlYWxsb2NfYnlfdHlwZSwgYXMgbm90ZWQKICAgICAgIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlCjoKCiAgIG5ldyBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDMtMDYgMTc6MTMgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgZG9jcwogICAKMjAwMi0wMy0wNiAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaDoKCiAgIGV4YW1wbGVzIG1vZHVsZSB3cmFwcGVyIHRvIGluY2x1ZGUgYWxsIChuZXcpIGV4YW1wbGVzLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgZG9jdW1lbnQgYmV0dGVyLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgc2VhcmNoIGV4YW1wbGVzIGZvciBkb2NzLgogICAKMjAwMi0wMy0wNiAxNjoyOSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZXhhbXBsZSBNSUIgdGVtcGxhdGUgKGFuZCBvbmUgbm9kZSkKICAgCjIwMDItMDMtMDYgMTY6MjggIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtTUlCLnR4dDoKCiAgIGluc3RhbnRpYXRlIGV4YW1wbGVzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzb21lIE5TIG1pYnMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogc2NhbGFyX2ludC5jLCBzY2FsYXJfaW50Lmg6CgogICBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgU05NUCBlbmFibGVkIGludCByZWdpc3RlcmVkIGF0IGEgc2NhbGFyLgogICAKMjAwMi0wMy0wNiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgbWFueSBjaGFuZ2VzIGZvciBpbnN0YW5jZXMuICBTcGVjaWZpY2ljYWxseToKICAgICAtIGFsbG93IGZvciBzdWJoYW5kbGVycy4KICAgICAtIHByb3ZpZGUgYW4gaW50IHdyYXBwZXIuCiAgICAgLSByZXVzZSBtb3JlIGNvZGUuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZS4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYzoKCiAgIEZpeCBtYXN0ZXIgYWdlbnQgZ2V0YnVsayBzdXBwb3J0LiAgdGhpcyBoYXMgdG8gYmUgaW5kZXBlbmRlbnRseSBvZiB0aGUKICAgbm9ybWFsIGJ1bGstPm5leHQgZml4ZXMgZHVlIHRvIGRlbGVnYXRpb24uICBMb25nIHN0b3J5LgogICAKMjAwMi0wMy0wNiAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIG1vdmUgYnVsa190b19uZXh0IGZpeGluZyBmdW5jdGlvbmFsaXR5IGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UuCiAgIAoyMDAyLTAzLTA2IDEwOjI2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBzcHJpbmtsZSBtYWdpYyBjb25zdCBkdXN0CiAgIAoyMDAyLTAzLTA2IDEwOjE4ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGRvY3VtZW50IGNoYW5nZWQgQVBJLCBpbmNvcnBvcmF0aW5nIHBhdGNoZXMgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDk6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEyYWdlbnR4c2V0ZmFpbCwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGZpeCB0ZXN0cy4KICAgCjIwMDItMDMtMDYgMDk6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICByZS1lbmFibGUgc2V0dGluZyBvcHRpbmQgdG8gMSB0aWxsIERhdmUgdGVsbHMgbWUgd2hlcmUgdGhpcyBicmVha3MuCiAgIAoyMDAyLTAzLTA2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICBmaXhlcyBmb3IgbmV3IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjIwMDItMDMtMDYgMDk6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vcmUgaW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgKG1vc3RseSkKICAgCjIwMDItMDMtMDYgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGF1dG9jb25mCiAgIAoyMDAyLTAzLTA2IDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgcHJvdG9jb2wuYzoKCiAgIHByb3BlciBmaXggZm9yIG5vdCByZXF1aXJpbmcgcmVzcG9uc2VzIHRvIENMRUFOVVAgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTA2IDA2OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB6ZXJvIHRoZSBuYW1lIG9mIGVsZW1lbnRzIG9mIHRoZSBidWxrIGNhY2hlCiAgIAoyMDAyLTAzLTA2IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY2FsbG9jKCkgbm90IG1hbGxvYygpIGluIGEgZmV3IHBsYWNlcyB0byBpbml0aWFsaXNlIHNvbWUgYnVmZmVycwogICAgICAgdG8gemVyb2VzLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDA1OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCBzZW5kIHJlcXVlc3RzIGZvciBPSURzIHByZWNlZWRpbmcgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uCiAgICAgICAodGhpcyBjYW4gbGVhZCB0byBsb29wcyBpZiBlLmcuIGEgc3ViYWdlbnQgaGFzIHJlZ2lzdGVyZWQgdHdvCiAgICAgICBhZGphY2VudCByb3dzKS4KICAgCjIwMDItMDMtMDYgMDU6MDcgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgdGVzdGNsZWFuCiAgIAoyMDAyLTAzLTA2IDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gdXNlIG1vcmUgZWZmaWNpZW50IGdldF90cmVlKCkgaW4gc3ByaW50X3JlYWxsb2NfdmFsdWUoKQogICAKMjAwMi0wMy0wNSAxODoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTVzbm1wdjJjZ2V0bmV4dCwgVDAwMXNubXB2MWdldCwKICAgVDAwMnNubXB2MWdldG5leHQsIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldAosIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDEwMGFnZW50aHVwOgoKICAgZml4ZXMgZm9yIG5ldyBmb3JjZWQgLWMgZmxhZ3MKICAgCjIwMDItMDMtMDUgMTg6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBhcHByb3ByaWF0ZSBjb21tZW50LgogICAKMjAwMi0wMy0wNSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBmaXggZHVwbGljYXRlIGZyZWUgYnkgY2xvbmluZyB0aGUgcGR1IGJlZm9yZSBzZW5kaW5nIGl0IG91dCBhZ2FpbgogICAodGhvdWdodCBJIGhhZCBkb25lIHRoaXMgb25jZSBpbiB0aGUgcGFzdCBhbHJlYWR5LCBidXQgSSBnb3QgMS8yIGZ1bmN0aW9ucykuCiAgIAoyMDAyLTAzLTA1IDE4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFRlbXBvcmFyeSBmaXggdG8gZml4IGZvciBhZ2VudHggU0VUIHJlcXVlc3RzLiAgVGhpcyByZXZlcnNlcyBhCiAgIHByZXZpb3VzIEpvaG4gY2hhbmdlIHdoZXJlIHJlc3BvbnNlcyB0byBjbGVhbnVwcyBhcmUgbm93IGV4cGVjdGVkCiAgIGFnYWluLiAgVGhpcyB0b29rIG1lIGEgZ29vZCAyIGRheXMgdG8gdHJhY2sgZG93biwgc2lnaC4uLgogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSBhZGQgKGFzY2lpKSBhZ2VudHggc3RhdGUgZGlhZ3JhbQogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBtdWx0aXBsZSBmcmVlIGJ1ZyBmaXhlcy4KICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDMtMDUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMsIG1hc3Rlcl9yZXF1ZXN0LmgKOgoKICAgcmVtb3ZlZCB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDMtMDUgMTA6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gb29wcywgZml4IGJhZCBjdXQgYW5kIHBhc3RlCiAgIAoyMDAyLTAzLTA1IDEwOjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlaW50cm9kdWNlIHNjb3BlIHByb2Nlc3NpbmcgKHNlZSBSRkMgMjc0MSwgcC4gNjYsIHNlY3Rpb24gNy4yLjMuMgogICAgICAgcGFyYWdyYXBoIDIpOiAiSWYgdGhlIHN1YmFnZW50IGNhbid0IGxvY2F0ZSBhbiBhcHByb3ByaWF0ZQogICAgICAgdmFyaWFibGUsIF9fdi5uYW1lX2lzX3NldF90b190aGVfc3RhcnRpbmdfT0lEX18gW3RoZSBpbXBvcnRhbnQKICAgICAgIGJpdF0gYW5kIHRoZSBWYXJCaW5kIGlzIHNldCB0byBgZW5kT2ZNaWJWaWV3JyIKICAgCjIwMDItMDMtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDg6NDggIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBzbm1wX2FnZW50LmMsCiAgIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIG5ldyBERUJVR01TR1ZBUiBtYWNybyBpbiBhIGZldyBwbGFjZXMKICAgCjIwMDItMDMtMDUgMDg6NDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHTVNHVkFSIG1hY3JvIHRvIHByaW50IG91dCBhIHZhcmlhYmxlCiAgIAoyMDAyLTAzLTA1IDA4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgcHJpbnRfdmFsdWUgZnVuY3Rpb24gdXBkYXRlcy4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogdWNkRGVtb1B1YmxpYy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIHVjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDg6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGdycnIsIGJvdGNoZWQgbGFzdCBmaXgKICAgCjIwMDItMDMtMDUgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IGNhbGxiYWNrIHNlc3Npb24gdmVyc2lvbiBudW1iZXIgdG8gdGhlIGdlbmVyaWMgLTEKICAgdmVyc2lvbiBhbGxvd2luZyB0aGUgcGR1IHRvIHBhc3NlZCB3aXRob3V0IHZlcnNpb24gY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtb3ZlIE5VTEwgY2hlY2sgdG8gKmJlZm9yZSogeW91IGFjdHVhbGx5IHVzZSB0aGUgcG9pbnRlci4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIG1hcmsgSU5DTFVTSVZFIHJlcXVlc3RzIGFzIHN1Y2gKICAgCjIwMDItMDMtMDUgMDc6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSB1c2UgYSBmb3IgbG9vcCBpbnN0ZWFkIG9mIGEgd2hpbGUgbG9vcCwganVzdCBhIHByZWNhdXRpb24gZm9yIGZ1dHVyZSBwcm9ibGVtcy4KICAgCjIwMDItMDMtMDUgMDc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfY2hlY2tfcGFyc2UpIGFsbG93IGludGVybmFsIHNldCB0cmFuc2FjdGlvbnMgdG8gYmUgcGFzc2VkIHRvCiAgICAgdGhlIGFnZW50LCBzaW5jZSBhZ2VudHggc2VuZHMgdGhlbS4KICAgCjIwMDItMDMtMDUgMDc6MjEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBkb24ndCBhZGQgdGhlICJtb2R1bGUgSUQiIHRvIE9JRHMgaWYgaXQgaXMgbnVtZXJpYyBiZWNhdXNlIHdlCiAgICAgICBjb3VsZG4ndCBsb29rIGl0IHVwIHByb3Blcmx5ICh0byBhdm9pZCBob3JyaWJsZSBsb29raW5nIG91dHB1dAogICAgICAgbGlrZSB0aGlzOiAiT0lEOiAjLTE6Omlzby4yLjMuNC41LiIpCiAgIAoyMDAyLTAzLTA1IDA3OjA1ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIDJjIGluIGVycm9yIG1lc3NhZ2UgZnJvbSB2ZXJzaW9uIHByb21wdAogICAKMjAwMi0wMy0wNSAwNzowMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB0ZXN0cwogICAKMjAwMi0wMy0wNSAwNjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIHJlLWVtcGhhc2lzIGEgc3VnZ2VzdGlvbiB0byBzd2l0Y2ggdG8gYSBzZWN1cmUgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wuCiAgIC0gZGVsZXRlIG5vdGlvbiB0aGF0IHYzIHdpdGhvdXQgYXV0aC9wcml2IHByb3ZpZGVzIGJldHRlciBzZWN1cml0eSAoaXQgZG9lc24ndCkuCiAgIC0gRG9uJ3QgYWNjZXB0IHYyYyBhcyBhbiBhY2NlcHRlZCB2YWx1ZSwgYXMgaXQncyB1c2VkIGFzIGFuIGludC4KICAgICAtIGJ1dCBkbyBjaGFuZ2UgaGVscCBtZXNzYWdlcywgZXRjLCB0byByZWZsZWN0IHRoYXQgMiA9IHYyYy4KICAgCjIwMDItMDMtMDUgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY2FsbG9jIGFwcHJvcHJpYXRlbHkgKHJlcXVlc3RlZCBieSBHcmVnb3J5IFRvdGgpCiAgIAoyMDAyLTAzLTA1IDA2OjIwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8gaW4gT0JKUyBkZWZpbml0aW9uCiAgIAoyMDAyLTAzLTA1IDA2OjE4ICBqYnBuCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgICAtIGNsZWFuIHRhcmdldCBkZXBlbmRzIG9uICQoT0JKUykgYW5kICQoTE9CSlMpLCBzbyBkZWZpbmUgdGhlbQogICAKMjAwMi0wMy0wNSAwMzo1MiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGRlZmF1bHQgdmVyc2lvbiB0ZXN0cyAoc3BsaXR0aW5nIHRoZW0gb3ZlciBzZXZlcmFsIGxpbmVzCiAgICAgICBjb25mdXNlcyBzaCBvbiBTb2xhcmlzLCBhdCBsZWFzdCkuCiAgIAogICAgIC0gZGlzYW1iaWd1YXRlIHNvbWUgaW5zdGFuY2VzIG9mICJ2ZXJzaW9uIiBpbiBkZWZhdWx0IHZlcnNpb24KICAgICAgIHByb21wdCB0ZXh0LgogICAKMjAwMi0wMy0wNSAwMjozNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb3JyZWN0bHkgZGV0ZWN0IHdoZW4gbm8gaW5pdGlhbCBkZWZhdWx0IHZlcnNpb24gaGFzIGJlZW4gc2V0LgogICBBY2NlcHQgJzJjJyBhcyB3ZWxsIGFzICcyJyBmb3IgYSBkZWZhdWx0IHZlcnNpb24gY2hvaWNlLgogICBGaXggdGhlIHRpdGxlIGZvciB0aGlzIHByb21wdCwgYW5kIHJld29yZCB0aGUgZGVzY3JpcHRpb24gdG8KICAgbWFrZSBpdCBhICpzbGlnaHRseSogbGVzcyBsZWFkaW5nIHF1ZXN0aW9uLCBtJ2x1ZC4KICAgCiAgIFFuOiBTaG91bGQgd2Ugc3VwcG9ydCBhICJubyBkZWZhdWx0IHZlcnNpb24iIG9wdGlvbiA/CiAgICAgKGhlbmNlIGFsbG93IHRoZSBhZG1pbiB0byBmb3JjZSB0aGUgZGVjaXNpb24gZG93biB0byB0aGUgdXNlcikKICAgCjIwMDItMDMtMDQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZQogICAKMjAwMi0wMy0wNCAxODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgKFRvIEpvaG4pOiBkbyBub3QgZnJlZSB0aGUgbXl2b2lkIHBvaW50ZXIgaW4gYSBoYW5kbGVyLiAgWW91IGNhbiBub3QKICAgYXNzdW1lIHRoYXQgaXQncyBhIGZyZWVhYmxlIHJlc291cmNlLiAgRm9yIGluc3RhbmNlLCB0aGUgYWdlbnR4IG1hc3RlcgogICBhZ2VudCB3YXMgdXNpbmcgaXQgdG8gc3RvcmUgdGhlIG1hc3RlciBzZXNzaW9uIHBvaW50ZXIgaW4gaXQgKHdoaWNoCiAgIHdvdWxkIGV4aXN0IGluIG11bHRpcGxlIHJlZ2lzdGVyZWQgbm9kZXMpLgogICAKMjAwMi0wMy0wNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBhIGNvbmZpZ3VyZSBnZW5lcmF0ZWQgd3JhcHBlciBoZWFkZXIgZm9yIHYzIHNlY3VyaXR5IG1vZHVsZXMuCiAgIAoyMDAyLTAzLTA0IDExOjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBhZGQgZG1hbGxvYy5oIHRvIHRoZSBwcm9wZXIgcGxhY2UuCiAgIAoyMDAyLTAzLTA0IDExOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBzdHJpbmcgY2xlYW4gdXBzLgogICAKMjAwMi0wMy0wNCAxMTo1MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBJbXBsZW1lbnQgYSBkZWZhdWx0IHZlcnNpb24gcHJvbXB0IGZvciBjb25maWd1cmUuCiAgICAtIChXZXMgZHVja3MgYXMgdGhpcyBpcyBjdXJyZW50bHkgc2V0IHRvICczJyB3aGljaCBoZSBtYXkgaGF2ZSB0bwogICAgICAgY2hhbmdlIGFzIGl0IGhhc24ndCBleGFjdGx5IGJlZW4gYWdyZWVkIHVwb24gYXMgdGhlIHByb3BlciBkZWZhdWx0IHlldCkuCiAgICAtIC0td2l0aC1kZWZhdWx0LXNubXAtdmVyc2lvbiBhbHNvIGNyZWF0ZWQuCiAgICAtIGNoYW5nZWQgaGFuZGxpbmcgb2YgZGVmYXVsdCBzdG9yZSAvIHNubXAuY29uZiB1c2FnZSBidXQgaW1wYWN0CiAgICAgIHNob3VsZCBiZSBsb3csIGhvcGVmdWxseS4KICAgCjIwMDItMDMtMDQgMTE6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGEgZmV3IGVycm9yIHN0cmluZ3Mgc2xpZ2h0bHkgaW1wcm92ZWQuICBXZSByZWFsbHkgbmVlZCB0byBjaGFuZ2UgdGhlCiAgIHdheSB0aGVzZSBhcmUgaGFuZGxlZCB0byBnZXQgYmV0dGVyIGltcHJvdmVtZW50LgogICAKMjAwMi0wMy0wNCAwNzo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgY2xlYW5pbmcgb2YgL3RtcCBmcm9tIHRoZSBtYWluIGNsZWFuaW5nIHRvIHByb3ZpZGUgaXQKICAgYXMgYSBzcGVjaWFsIHRhcmdldC4KICAgCjIwMDItMDMtMDQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLVdhbGwgZml4ZXMuCiAgIAoyMDAyLTAzLTA0IDA1OjMyICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmCiwgc25tcHRlc3QuMS5kZWYsIHNubXB0cmFwLjEuZGVmOgoKICAgICAtIHJlbW92ZSBmdXJ0aGVyIGluc3RhbmNlcyBvZiBwb3NpdGlvbmFsIGNvbW11bml0eSBzdHJpbmcgcGFyYW1ldGVyLAogICAgICAgYWZ0ZXIgUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDU6MjUgIGpicG4KCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiwgc25tcHdhbGsuMS5kZWY6CgogICAgIC0gcGF0Y2hlcyBmcm9tIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuNiksIG1lbW9yeS5jCjoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgbWFraW5nIHRoZSAoc2FtZSkgZGVidWdnaW5nIHN0YXRlbWVudCBtb3JlIHVzZWZ1bC4KICAgCjIwMDItMDMtMDEgMjI6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSB0byBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTAzLTAxIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgbWliLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYSBmZXcgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wMSAxMjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGRvbid0IGluc3RhbGwgaGVhZGVycyBoZXJlLgogICAKMjAwMi0wMy0wMSAwNTo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICAgIC0gYWRkIHNucHJpbnRfdmFsdWUsIHNucHJpbnRfdmFyaWFibGUsIHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDItMjggMDY6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBBZGQgYmFjayB0aGUgJ3NubXBDYWxsYmFjaycgZG9tYWluIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI3IDEwOjA0ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jCiwgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMsIG1ha2UgdGhlbSBtb3JlIGNvbnNpc3RlbnQgYW5kIGJyaW5nIGluIGxpbmUKICAgICAgIHdpdGggbWFudWFsIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwgc25tcHRyYXAuMS5kZWYKLCBzbm1wdXNtLjEuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgY2hhbmdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBpbiBsaW5lIHdpdGggbWFudWFsCiAgICAgICBwYWdlcwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI3IDA2OjUwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gW0FERFJFU1NFU10gLT4gW0xJU1RFTklORyBBRERSRVNTRVNdIGluIHVzYWdlIG1lc3NhZ2UsIHRvIG1hdGNoCiAgICAgICBtYW51YWwgcGFnZS4KICAgCjIwMDItMDItMjcgMDY6MDkgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZHJvcCBvcHRpb25hbCBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgZnJvbSB0cmFwc2VzcwogICAgICAgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTAyLTI3IDA1OjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBkcm9wIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIG5vIHNucHJpbnRfYmxhaCB5ZXQKICAgCjIwMDItMDItMjcgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmM6CgogICBVc2UgdGhlIG1vcmUgaW5mb3JtYXRpdmUgJ291dHB1dF9hcGkuaCcgaGVhZGVyIGZpbGUgbmFtZQogICAgIChJIG11c3QgaGF2ZSBtaXNzZWQgdGhlc2UgZWFybGllcikKICAgCjIwMDItMDItMjcgMDU6MzUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB5ZXMsIGZvciBvbmNlIHRoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgKmJlZm9yZSogdGhlCiAgIGNvZGUhCiAgIAoyMDAyLTAyLTI3IDA1OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA1OjExICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBfYXBpLmgsIHNubXBfZGVidWcuaCwKICAgc3lzdGVtLmg6CgogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MTAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmg6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUEwgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDQ6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHdhbGsuYwosIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDAyOjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI3IDAyOjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlLCBubywgSSBNRUFOIGl0IHRoaXMgdGltZQogICAKMjAwMi0wMi0yNyAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNsZWFyIG5ldyBtZW1vcnkgYWZ0ZXIgcmVhbGxvYygpIHNpbmNlIHJlYWxsb2MgZG9lc24ndCBkbyBpdC4KICAgCjIwMDItMDItMjYgMTI6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIFVOU0lHTkVEMzIKICAgCjIwMDItMDItMjYgMDg6NTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgbWliSUkvYXQuYywgbWliSUkvaWNtcC5jLCBtaWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYklJL2lwLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gY2hhbmdlIGNhY2hlIGltcGxlbWVudGF0aW9uIGFmdGVyIHNvbWUgaW50ZXJlc3RpbmcgcHJvZmlsaW5nIChzZWUKICAgICAgIGxlbmd0aHkgbmV3IGNvbW1lbnQgaW4ga2VybmVsX3N1bm9zNS5jKQogICAKMjAwMi0wMi0yNiAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgc25tcGxpYi9zbm1wLXRjLmMsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgUmVtb3ZlIGFzc29ydGVkIGV4dHJhbmVvdXMgXk0ncwogICAKMjAwMi0wMi0yNiAwNzoxNCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQSBxdWljayBndWlkZSB0byBpbnN0YWxsaW5nIHRoZSBDb3JlIFBsYXRmb3JtIFNESywgbmVlZGVkIGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjYgMDc6MDMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBBc3NvcnRlZCBtaW5vciB0d2Vha3MgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgIE1vc3RseSBiZWNhdXNlIFZDKysgaXMgZnVzc3kgYWJvdXQgc29ydC1vZi1jb21wYXRpYmxlIGRhdGEgdHlwZXMKICAgICAoZS5nLiBzaWduZWQgdnMgdW5zaWduZWQgaW50ZWdlcnMpLgogICAKMjAwMi0wMi0yNiAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyLmRzdywgd2luMzIub3B0CiwgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIHNubXBkL3NubXBkLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBSZW5hbWUgJ2xpYnVjZG1pYnMnIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSBvZiBwcm9qZWN0IG5hbWUsCiAgIGFuZCBhc3NvcnRlZCB0d2Vha3Mgc28gdGhhdCB0aGUgZnVsbCBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICAgIChOLkI6IFRoZSBhZ2VudCByZXF1aXJlcyAiTWljcm9zb2Z0IFBsYXRmb3JtIENvcmUgU0RLIiBpbiBvcmRlcgogICAgICAgdG8gYnVpbGQgdGhlICduZXRzbm1wbWlicycgcHJvamVjdCkKICAgCjIwMDItMDItMjYgMDY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICByZW1vdmUgZHVwbGljYXRlIHZhcmlhYmxlIGluIGEgd2FybmluZwogICAKMjAwMi0wMi0yNiAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTAyLTI1IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbW9yZSBpbnN0YWxsIGNoYW5nZXMKICAgCjIwMDItMDItMjUgMjE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGluc3RhbGxpbmcgREJEOjpGaWxlLgogICAKMjAwMi0wMi0yNSAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG9uZSB0b28gbWFueSAnMCdzIGluIGEgdXJsLgogICAKMjAwMi0wMi0yNSAyMDozMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHJld29yZC4KICAgCjIwMDItMDItMjUgMjA6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBtb3ZlIHdhcm5pbmcgb3V0c2lkZSBzZWNvbmRhcnkgd2FybmluZyBhdWdtZW50YXRpb24gbG9vcC4KICAgCjIwMDItMDItMjUgMjA6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wMi0yNSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBmaW5kX3RhYmxlX2FycmF5X2hhbmRsZXIoKTsgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlL2NvbW1lbnRzOwogICBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgaGFuZGxlciBiZWZvcmUgdXNpbmcgdGhlIHZvaWQgcG9pbnRlcjsKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDItMjUgMTE6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaAo6CgogICAyIG5ldyBmdW5jdGlvbnMuCiAgIAoyMDAyLTAyLTI1IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBzZWN1cml0eSBtb2RlbAogICAKMjAwMi0wMi0yNSAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYwosIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgd2luMzIvd2luMzIuZHN3OgoKICAgQ29udGludWluZyBpbXByb3ZlbWVudHMgdG8gY29tcGlsYXRpb24gb2YgdGhlIGxhdGVzdCBjb2RlIHVuZGVyIFZpc3VhbCBDKysuCiAgIFRoZSAnbGliaGVscGVycycgcHJvamVjdCBub3cgY29tcGlsZXMsIGFuZCB0aGlzIGFsc28gYWRkcmVzc2VzIGEgbnVtYmVyCiAgIG9mIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGxpYmFnZW50IGFuZCBsaWJ1Y2RtaWJzIHByb2plY3RzLgogICAgIEJ1dCB0aGVzZSB0d28gc3RpbGwgZmFpbCBvbiAnT0lEX0xFTkdUSCcgYW5kICdpcGhscGFwaS5oJwogICAKMjAwMi0wMi0yNSAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFByb3ZpZGUgYSBwbGF1c2libGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI1IDA2OjA0ICBqYnBuCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgICAgLSByZXNvbHZlIGNvbmZsaWN0aW5nIFNZTlRBWGVzIGZvciBuc1RyYW5zYWN0aW9uTW9kZQogICAKICAgICAtIGFkZCByYW5nZSBmb3IgaW5kZXggbnNUcmFuc2FjdGlvbklECiAgIAoyMDAyLTAyLTI1IDAzOjIzICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBFbnN1cmUgdGhlIG1haW4gbGlicmFyeSBjb21waWxlcyBhbmQgd29ya3MgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MTkgIGR0czEyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmgsIHNubXB0cmFwZC5jOgoKICAgRW5zdXJlIHNubXB0cmFwZCBjb21waWxlcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzowOSAgZHRzMTIKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jLCBvaWRfc3Rhc2guYywgc25tcC10Yy5jLAogICB1Y2RfY29tcGF0LmM6CgogICBNaW5vciB0d2Vha3MgdG8ga2VlcCBWaXN1YWwgQysrIGhhcHB5LgogICAKMjAwMi0wMi0yNSAwMjo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICBXcmFwIHdpdGggImV4dGVybiBDIgogICAKMjAwMi0wMi0yNSAwMjo1NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhbmRlciB0byBDUFAncyBpbmNyZWRpYmx5IGZ1c3N5IG5hdHVyZSwgYW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGUgbmFtZS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBAZm9yZWFjaCAkdmFyMSAkdmFyMiBlbnVtc0AKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHJlbW92ZSB0cmFpbGluZyA7J3MgZnJvbSBzcWwgc3RhdGVtZW50cy4KICAgCjIwMDItMDItMjIgMTA6NTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBkZWZpbmUgbmV0c25tcF9zdHJkdXBfYW5kX251bGwKICAgCjIwMDItMDItMjIgMTA6NTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgdXRpbGl0aWVzLgogICAKMjAwMi0wMi0yMiAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBkb24ndCBsb29wIGFnYWluIGZvciBzZWNvbmRhcnkgU0VUIG1vZGVzIGFuZCBjYWNoZSBpbmZvcm1hdGlvbiBpbnN0ZWFkLgogICAtIHZhcmlvdXMgZml4ZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGwgZGlyZWN0b3JpZXMgZm9yIGhlYWRlcnMKICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNvbXBpbGUtc3ViYWdlbnQgZm9yIGF1dG9tYXR0ZWQgc3ViYWdlbnQgY29tcGlsYXRpb24gZnJvbQogICBtaWJtb2R1bGUgLmMgZmlsZXMgOy0pCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jIChWNC0yLXBhdGNoZXMuWzEsMV0pLAogICBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWM6CgogICBBZGQgbWlzc2luZyBmaWxlcyBmb3IgV2luZG93cyBzZXJ2aWNlIG9wZXJhdGlvbi4KICAgCjIwMDItMDItMjIgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBKdXN0IGNsb3NlIHRoZSBtYWluIHNlc3Npb24gd2hlbiBzaHV0dGluZyBkb3duIHVuZGVyIFdpbmRvd3MsCiAgIG5vdCBldmVyeXRoaW5nIChzbyB0aGF0IGl0IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgc2h1dGRvd24gdHJhcCkuCiAgIAoyMDAyLTAyLTIyIDA4OjQwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFR3ZWFrcyByZXF1aXJlZCB0byBnZXQgdGhlIGxpYnJhcnkgY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MgVkMrKwogICAKMjAwMi0wMi0yMiAwODozNyAgZHRzMTIKCiAgICogd2luMzIvOiBzbm1wc21faW5pdC5oLAogICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgbGliYWdlbnQvbGliYWdlbnQuZHNwLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AKLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBQcm92aWRlIFdpbmRvd3Mtc3BlY2lmaWMgdmVyc2lvbnMgb2YgYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgaGVhZGVyIGZpbGVzLAogICBhbmQgYWRkIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUgdG8gdGhlIHByb2plY3QgZmlsZXMuCiAgIAoyMDAyLTAyLTIyIDA3OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaDoKCiAgIERlZmluZSBzdGFuZGFyZCBPSUQgbGVuZ3RocyBoZXJlICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSB0byBhbnkKICAgZmlsZSB3YW50aW5nIHRvIGFjY2VzcyB0aGUgT0lEIHN0cnVjdHVyZXMpCiAgIAoyMDAyLTAyLTIyIDAzOjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgU3VwcG9ydCAiLi4uLiAtM3Uge3NlY05hbWV9IC4uLi4iIHN5bnRheAogICAoaW4gdGhlIG5vcm1hbCBnZXRvcHQgc3R5bGUgLSBpLmUuIG5vIG5lZWQgZm9yIHN1cnJvdW5kaW5nIHF1b3RlcykKICAgCiAgIEl0IHNob3VsZCBub3cgYmUgcG9zc2libGUgdG8gc3dpdGNoIHRvIHRoaXMgYXMgdGhlIHJlY29tbWVuZGVkIGZvcm0KICAgZm9yIFNOTVB2MyBvcHRpb25zIC0gaWYgdGhhdCdzIHdoYXQgd2Ugd2FudCB0byBkby4KICAgICBRbjogIERvIHdlIHdhbnQgdG8/CiAgIAoyMDAyLTAyLTIxIDA4OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgU3VwcG9ydCAiLTN1IHtzZWNOYW1lfSIgc3ludGF4ICgqd2l0aCogdGhlIHF1b3RlcywgdW5mb3J0dW5hdGVseSkuCiAgIE5vdyBjb21lcyB0aGUgZnVuIGJpdC4uLi4uCiAgIAoyMDAyLTAyLTIxIDA3OjU0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDA3OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGRyb3AgaW5saW5lIChtb3JlIHRyb3VibGUgdGhhbiBpdCBpcyB3b3J0aCkKICAgCjIwMDItMDItMjEgMDU6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGFuIFNOTVB2MyAiY29tYmluZWQtb3B0aW9uIiBjb21tYW5kLWxpbmUgZmxhZyAoLTN4KS4KICAgKEluICphZGRpdGlvbiogdG8gdGhlIGN1cnJlbnQgY29tbWFuZC1saW5lIGZsYWdzLCBJIGhhc3RlbiB0byBhZGQhKQogICAKICAgU3VwcG9ydHMgICIuLi4gLTN1e3NlY05hbWV9IC4uLiIgYW5kICIuLi4gLTN1PXtzZWNOYW1lfSAuLi4iIHN5bnRheCwKICAgYnV0IG5vdCB0aGUgc2VwYXJhdGUgIi4uLiAtM3Uge3NlY05hbWV9IC4uLiIgc3R5bGUuCiAgIAogICBJIGhhdmVuJ3QgdG91Y2hlZCB0aGUgZG9jdW1lbnRhdGlvbiBvciB1c2FnZSBtZXNzYWdlIHRvIG1lbnRpb24gdGhpcy4KICAgCjIwMDItMDItMjAgMTg6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHVzZSBmb3IgaW5zdGVhZCBvZiBjb250aW51ZSBmb3IgbG9vcHMuCiAgIAoyMDAyLTAyLTIwIDEzOjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIEFkZCBhIC0tcXVpdCBvcHRpb24gKGFuZCBhIGNvbmZpZ3VyYXRpb24gdG9rZW4pIHNvIHRoYXQgeW91IGNhbiBub3cKICAgICBjcmVhdGUgbmV3IHVzZXJzIGJ5IHNpbXBseSBjYWxsaW5nIHNubXBkIGFzOgogICAgICAgc25tcGQgLS1jcmVhdGVVc2VyPSJteXVzZXIgTUQ1IG15cGFzc3dvcmQiIC0tcXVpdAogICAtIENoYW5nZSBSRUFETUUuc25tcHYzIGRvY3VtZW50YXRpb24gdG8gbWFrZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgogICAKMjAwMi0wMi0yMCAwNjoxNiAgamJwbgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbGlid3JhcCBzdXBwb3J0IHRvIHNubXB0cmFwZCAodW50ZXN0ZWQpCiAgIAogICAgIC0gbWlub3IgY2hhbmdlcyB0byBzbm1wZCBsaWJ3cmFwIHN1cHBvcnQKICAgCiAgICAgLSBjb25maWd1cmUgZml4ZXMgZm9yIGxpYndyYXAKICAgCjIwMDItMDItMjAgMDM6MDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBtYWtlIHN1cmUgYnVmZmVyIGlzIGluaXRpYWxseQogICAgICAgemVyby10ZXJtaW5hdGVkIChpbiBjYXNlIG9mIDAgdmFyYmluZHMpLiAgQnVnICM1MTg3MDAsIG5vdGVkIGJ5CiAgICAgICBBbmRyZWFzIEhhcnRtYW5uLgogICAKMjAwMi0wMi0yMCAwMzowNiAgamJwbgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgICAtIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzLCB0byBhdm9pZCBnYXJiYWdlIHByaW50aW5nIHByb2JsZW1zLCBhcwogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIGluIGJ1ZyAjNTIwMjIwLgogICAKMjAwMi0wMi0yMCAwMzowMyAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENsZWFuIHVwIHRoZSBvYmplY3QgZmlsZXMgYXMgd2VsbAogICAKMjAwMi0wMi0yMCAwMTo0MSAgZHRzMTIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgdGhlIG5ldyBjcm9wIG9mIGdlbmVyYXRlZCBtYW4gcGFnZXMuCiAgIAoyMDAyLTAyLTIwIDAxOjM3ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBTdXBwbHkgbWlzc2luZyBkb3VibGUtcXVvdGUgIChvb3BzKQogICAKMjAwMi0wMi0xOSAwNDowMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBJbml0aWFsaXNlIHRoZSBsaWJyYXJ5IGludGVybmFscyAqYmVmb3JlKiBwYXJzaW5nIHRoZSBjb21tYW5kIGxpbmUsCiAgIHNvIHRoYXQgZGVmYXVsdHMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgUW46ICBTaG91bGQgJ19pbml0X3NubXAnIGJlIGludm9rZWQgYnkgJ3NubXBfcGFyc2VfYXJncycgaXRzZWxmPwogICAKMjAwMi0wMi0xOSAwMzo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2Ugc3VyZSB0aGF0IG11bHRpcGxlIG91dHB1dCBmb3JtYXQgZmxhZ3Mgd29yayBpbiBhIGNvbnNpc3RlbnQgbWFubmVyLgogICAoaS5lLiB0aGUgbGFzdCBvbmUgaXMgdXNlZCwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBpbnRlcm5hbCBvcmRlcmluZykuCiAgIAoyMDAyLTAyLTE4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMsIHRlc3RoYW5kbGVyLmM6CgogICBpbmNsdWRlIHN0ZGxpYi5oCiAgIAoyMDAyLTAyLTE4IDIxOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCBpbmNsdWRlcwogICAKMjAwMi0wMi0xOCAyMTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICAtIG1ha2UgY2FwYWJpbGl0eSB0byBjcmVhdGUgZGF0YSBjb250ZXh0cyBmcm9tIGEgbG9vcCBjb250ZXh0IChsZXNzCiAgICAgbWFsbG9jcyB3aGVuIG1hbGxvY3MgYXJlbid0IG90aGVyd2lzZSBhdm9pZGFibGUpLgogICAtIGRvbid0IGRvdWJsZSBmcmVlIHRoZSBkYXRhIGNvbnRleHQgcG9pbnRlci4KICAgCjIwMDItMDItMTggMjE6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgYWxsIGFnZW50IGhlbHBlcnMuCiAgIAoyMDAyLTAyLTE4IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmg6CgogICBwcm90ZWN0IGluY2x1ZGUgZnJvbSBkb3VibGUgaW5jbHVkZQogICAKMjAwMi0wMi0xOCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgZml4IGluY2x1ZGUgcGF0aHMKICAgCjIwMDItMDItMTggMDI6MzUgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHdlYWsgdGhlIGxpc3Qgb2YgaGVhZGVyIGZpbGVzIHRvIGJlIGluc3RhbGxlZCAodGhhbmtzIHRvIENocmlzdG9waCBNYW1taXR6c2NoKQogICAKMjAwMi0wMi0xOCAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYyAoVjQtMi1wYXRjaGVzLjcpLCBocl9zdG9yYWdlLmMKOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNiAyMzoxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IE5FVC1TTk1QLU1JQi50eHQsIE5FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCwKICAgTkVULVNOTVAtU1lTVEVNLU1JQi50eHQsIE5FVC1TTk1QLVRDLnR4dDoKCiAgIHdoaXRlIHNwYWNlIGNsZWFuIHVwLiAgKEFHRU5ULU1JQiBub3QgY2hlY2tlZCBpbiBkdWUgdG8gb3RoZXIKICAgaW5jb21wbGV0ZSBjaGFuZ2VzKS4KICAgCjIwMDItMDItMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIE5FV1MsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBmaW5pc2ggaW1wbGVtZW50aW5nIHNubXBfY29uZmlnKCJteSBjb25maWcgbGluZSIpCiAgICAgLSB3YXMgZG9uZSBiZWZvcmUsIGJ1dCBwcmV2aW91c2x5IGhhZCB0byBiZSBjYWxsZWQgb25seSBhZnRlcgogICAgICAgY29uZmlndXJhdGlvbiBmaWxlcyBoYWQgYmVlbiByZWFkLiAgTm93IGNhbiBiZSBjYWxsZWQgYXQgYW55IHRpbWUuCiAgIC0gbWFrZSBhbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBhcyAtLWxvbmdvcHRzIGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIC0gLS1zb21ldGhpbmc9dmFsdWUgLT4gInNvbWV0aGluZyB2YWx1ZSIKICAgICAtIC0tc29tZXRoaW5nICAgICAgIC0+ICJzb21ldGhpbmcgMSIgKHdvcmtzIGZvciBzZXR0aW5nIGJvb2xlYW5zIHRvIHRydWUpCiAgIAoyMDAyLTAyLTE2IDAwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaAogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcnBtIGZvciA0LjAuMyBhbmQgYWJvdmUgKG9yIHdoZW5ldmVyIGl0IHdhcyB0aGF0IHdlIG5vdyBuZWVkIGxpYnJwbWRiKQogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBpbnN0YWxsL2NsZWFuL2V0Yy4KICAgCjIwMDItMDItMTUgMjI6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGluc3RhbGwgYWxsIHN5c3RlbSBhbmQgbWFjaGluZSBmaWxlcywgc2luY2UgdGhleSBpbmNsdWRlIGVhY2ggb3RoZXIKICAgCjIwMDItMDItMTUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTUlCLnR4dCwKICAgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIFNrZWxldG9uIGZyYW1ld29yayBmb3IgdGhlIE5ldC1TTk1QIGVudGVycHJpc2UgdHJlZS4KICAgKGluY29ycG9yYXRpbmcgdGhlIGluaXRpYWwgJ25zVHJhbnNhY3Rpb25UYWJsZScsIGJ1dCBub3RoaW5nIGVsc2UgYXMgeWV0KQogICAKMjAwMi0wMi0xNSAwOToxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KICAgCjIwMDItMDItMTUgMDc6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCiwgYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aHUgUHJhYmh1KQogICAKMjAwMi0wMi0xNSAwNzoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgU3Rva2UgV2VzJyBzZW5zZSBvZiBwYXJhbm9pYSBieSBjb25jZWRpbmcgd2l0aG91dCBjb21tZW50LgogICAgICAgKFdoYXQgbWlnaHQgU2hpZWxkIGJlIHBsb3R0aW5nIG5vdy4uLi4uLikKICAgCjIwMDItMDItMTUgMDc6MTkgIGpicG4KCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICAgIC0gZml4IHRpbnkgZm9ybWF0dGluZyBlcnJvcgogICAKMjAwMi0wMi0xNSAwNzoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTk9USUZJQ0FUSU9OLUxPRy1NSUIgKHNpbmNlIGl0J3Mgb25lIG9mIHRoZSBkZWZhdWx0IGxvYWQgbGlzdCEpCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UucmM6CgogICBmaWxlIHdpbnNlcnZpY2UucmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmg6CgogICBmaWxlIHdpbnNlcnZpY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGZpbGUgd2luc2VydmljZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEluY2x1ZGUgdGhlIDxzeXMvdGltZS5oPiBjYXNjYWRlLCB0byBwaWNrIHVwIHRoZSBkZWZpbml0aW9uIG9mICd0aW1ldmFsJwogICAKMjAwMi0wMi0xNSAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBicmluZyB1c2FnZSBtZXNzYWdlIGluIGxpbmUgd2l0aCBtYW5wYWdlCiAgIAoyMDAyLTAyLTE1IDAzOjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ2F0Y2ggdXNlIG9mIHRoZSB0cmFuc3BvcnQgYW5kIHBvcnQgb3B0aW9ucywgYW5kIGlzc3VlIGFuIGFwcHJvcHJpYXRlCiAgIGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgdXNlIG9mIHRoZSA8aG9zdG5hbWU+IHBhcmFtZXRlciBpbnN0ZWFkLgogICAKMjAwMi0wMi0xNSAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgKmJlZm9yZSogcHJvY2Vzc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucywKICAgcmF0aGVyIHRoYW4gYWZ0ZXIuICBUaGF0J3MgcHJvYmFibHkgYSBiaXQgbW9yZSBmbGV4aWJsZTotKQogICAKMjAwMi0wMi0xNSAwMjozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCwgZGVmaW5pdGlvbnMuaCwKICAgbWliX2FwaS5oLCBvdXRwdXRfYXBpLmgsIHBkdV9hcGkuaCwgc2Vzc2lvbl9hcGkuaAosIHNubXB2M19hcGkuaCwgdHlwZXMuaCwgdXRpbGl0aWVzLmgsCiAgIHZhcmJpbmRfYXBpLmg6CgogICBSZW1vdmUgJ25ldC1zbm1wLWNvbmZpZy5oJyBmcm9tIHRoZSBtYWluIEFQSSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgd2lsbCBoYXZlIHRvIGJlICNpbmNsdWRlZCBzZXBhcmF0ZWx5IChlaXRoZXIgZXhwbGljaXRseQogICBvciB2aWEgdGhlIGFsbC1pbi1vbmUgJ25ldC1zbm1wLWluY2x1ZGVzLmgnIGhlYWRlcikKICAgCjIwMDItMDItMTUgMDI6MzEgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBSRUFETUUgdG8gZGVzY3JpYmUgdGhlIHN0YXR1cyBvZiA8bmV0LXNubXAvbGlicmFyeT4gYW5kIDxuZXQtc25tcD4gaGVhZGVyIGZpbGVzLgogICAKMjAwMi0wMi0xNSAwMjoxMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUge3N5c3RlbSxtYWNoaW5lfS8qLmggaGVhZGVyIGZpbGVzIGFzIHdlbGwuCiAgIAogICBEb2luZyB0aGlzIHZpYSB0aGUgJ21hbicgJiAnbWlicycgTWFrZWZpbGVzIGlzIGEgZ3Jvc3MgaGFjaywKICAgYW5kIHJlYWxseSBuZWVkcyB0byBiZSBoYW5kbGVkIG1vcmUgY2xlYW5seS4gIEJ1dCBpdCdzIHRoZQogICBiZXN0IEkgY2FuIGNvbWUgdXAgd2l0aCBhdCB0aGUgbW9tZW50LiAgU29ycnkgLSBEYXZlLgogICAKMjAwMi0wMi0xNSAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBVQ0QtY29tcGF0YWJpbGl0eSBoZWFkZXJzIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTE1IDAxOjU3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIE9ubHkgaW5zdGFsbCBzdWJkaXJlY3Rvcnkgc3R1ZmYgKm9uY2UqLiAgKERvbid0IGJlIHNvIGVudGh1c2lhc3RpYywgRGF2ZSEpCiAgIAoyMDAyLTAyLTE1IDAxOjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgUmVtb3ZlIHJlZHVuZGVudCAnLUNOJyBhbmQgJy1DTycgb3B0aW9ucyBmcm9tIHRoZSBleGFtcGxlIHNubXB1c20gY29tbWFuZC4KICAgICAoYXMgbWVudGlvbmVkIGJ5IFdlcyBvbiB0aGUgdXNlcnMgbWFpbGluZyBsaXN0IDIwMDItMDItMTMpCiAgICAgUW46IERvZXMgdGhpcyBuZWVkIHRvIGJlIGRvbmUgb24gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2ggYXMgd2VsbD8KICAgCjIwMDItMDItMTUgMDE6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCwKICAgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBSZXN0b3JlICd2ZXJzaW9uLmgnIGFzIGJlaW5nIGEgInRvcC1sZXZlbCIgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTAyLTE1IDAxOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgZnVsbCBzZXQgb2YgbGlicmFyeSBoZWFkZXIgZmlsZXMsCiAgIHJldGFpbmluZyB0aGUgdG9wLWxldmVsIHZzIGxpYnJhcnkgc3ViZGlyZWN0b3J5IHNwbGl0LgogICAKMjAwMi0wMi0xNSAwMToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBMb29rIGZvciB0cmFuc3BvcnQtcmVsYXRlZCBoZWFkZXIgZmlsZXMgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uCiAgIAoyMDAyLTAyLTE1IDAxOjA5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEVuc3VyZSBwYXJ0aWFsIGluc3RhbGwgdGFyZ2V0cyByZWN1cnNlIHByb3Blcmx5LgogICAKMjAwMi0wMi0xNCAwODoxOCAgZHRzMTIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTG9vayBmb3IgbWliX21vZHVsZV9jb25maWcuaCBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbgogICAKMjAwMi0wMi0xNCAwODowNiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IG1hbjggaW5zdGFsbCBkZWZpbml0aW9ucwogICAKMjAwMi0wMi0xNCAwNzo0OCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN1YnN0aXR1dGUgdmFsdWVzIGludG8gJ25ldC1zbm1wLWNvbmZpZycgcHJvcGVybHksIGFuZCBkb24ndCAnbWFrZSBjbGVhbicgaXQgYXdheS4KICAgCjIwMDItMDItMTQgMDc6MjIgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcwogICAKMjAwMi0wMi0xNCAwNzoxNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjEwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIGFnZW50L2FnZW50X3RyYXAuYwosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyBzcGFjZSBmcm9tIENQUEZMQUdTCiAgIAoyMDAyLTAyLTE0IDA2OjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oLCBkZWZpbml0aW9ucy5oLAogICBtaWJfYXBpLmgsIG5ldC1zbm1wLWluY2x1ZGVzLmgsIG91dHB1dF9hcGkuaCwKICAgcGR1X2FwaS5oLCBzZXNzaW9uX2FwaS5oLCBzbm1wdjNfYXBpLmgsIHR5cGVzLmgKLCB1dGlsaXRpZXMuaCwgdmFyYmluZF9hcGkuaDoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNjoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hc24xLmgsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmgsIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmgKLCBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaCwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaAosIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oCiwgaW5jbHVkZS9uZXQtc25tcC9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgKLCBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCwgaW5jbHVkZS9uZXQtc25tcC92YWNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgKLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL29pZF9hcnJheS5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgc25tcGxpYi92YWNtLmM6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDQ6NDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgc25tcGxpYi92YWNtLmM6CgogICBGaXJzdCBtb3ZlcyB0b3dhcmRzIHVzaW5nIHRoZSAicHVibGljIiBBUEkgaGVhZGVyIGZpbGVzIGluIHRoZSBsaWJyYXJ5CiAgIGNvZGUgYXMgd2VsbCAoY29uY2VudHJhdGluZyBvbiBvdXRwdXQvY29uZmlnL3V0aWxpdHkgaGVhZGVyIGZpbGVzKS4KICAgCjIwMDItMDItMTQgMDM6MTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2xvc2UgYSBkYW5nbGluZyAiaWYiIGJsb2NrLiAgIChvb3BzISkKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jIChWNC0yLXBhdGNoZXMuNCksIGlmLmM6CgogICBDaGVjayBmb3IgcnVubmluZyBvZmYgdGhlIGVuZCBvZiBJL0YgdGFibGUgKHBhdGNoIGZyb20gUmVkSGF0KQogICAKMjAwMi0wMi0xNCAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIExhdGVzdCBSZWRIYXQgcnBtLXJlbGF0ZWQgcGF0Y2gKICAgCjIwMDItMDItMTQgMDE6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIFJQTSBsaWJyYXJpZXMKICAgCjIwMDItMDItMTMgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTWFrZSBKb2huIHRydXN0IGhpcyBjb2RlCiAgIAoyMDAyLTAyLTEzIDA4OjM0ICBqYnBuCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgICAtIHRyYW5zcG9ydCBmaXhlcyAodW50ZXN0ZWQsIHN0aWxsICNpZiAwKQogICAKMjAwMi0wMi0xMyAwODowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtYXJrIHNvbWUgSm9obi10by1kby1zZWN0aW9ucwogICAKMjAwMi0wMi0xMyAwNzo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wY21kLjEuZGVmLAogICBzbm1wbGliL21pYi5jOgoKICAgU3dpdGNoIHRvIHVzaW5nIC1PUyBzdHlsZSBvdXRwdXQgYnkgZGVmYXVsdCwgYW5kIGRyb3AgdGhlIHJlcXVpcmVtZW50CiAgIGZvciBmdWxsIE9JRHMgdG8gc3RhcnQgd2l0aCAnLicsIHBsdXMgY29tbWFuZC1saW5lIG9wdGlvbnMgdG8gcmVzdG9yZQogICB0aGUgb3JpZ2luYWwgVUNELXN0eWxlIGJlaGF2aW91ci4KICAgCjIwMDItMDItMTMgMDc6MzYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBBcHBseSBKb2huJ3MgZml4IGZvciBidWdzICM0ODkzMzYgYW5kICM1MDgxNDYgKGR1cGxpY2F0ZSBjb2x1bW5zIGFuZAogICBjb2x1bW5zIGluIHdyb25nIG9yZGVyKSB0byB0aGUgbWFpbiBicmFuY2ggYXMgd2VsbC4KICAgCjIwMDItMDItMTIgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGNvbnN0IGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogLmN2c2lnbm9yZSwgQVNOLy5jdnNpZ25vcmUsIGFnZW50Ly5jdnNpZ25vcmUKLCBkZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmU6CgogICBhZGQgLmN2c2lnbm9yZSBmaWxlLgogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgYWRkIGFnZW50L2FnZW50X2hhbmRsZXIuaAogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oOgoKICAgY29uc3QgYWRkaXRpb25zLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgQWRkIHN0cmluZy5oCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBhZGQgaGVhZGVyLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4ZXMgdG8gcmVlbmFibGUgZGlzbWFuIGV2ZW50IHN0dWZmIGZvciA1LjAgY29kZS4gIE5vdCBkb25lIHRoZQogICAicmlnaHQiIHdheSwgYnV0IGl0IHdvcmtzLgogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIC1XYWxsIGZpeGVzCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGFkZCBzdGRsaWIuaAogICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgbm8gbG9uZ2VyIHVzZWQgImR1bXBfdmFyIiByb3V0aW5lLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGNvbnN0IHNwZWNpZmljIGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbmV3IHBlcmwgc3BlY2lmaWMgZmVhdHVyZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC5QSE5PWSBtb2RzCiAgIAoyMDAyLTAyLTEyIDA3OjIyICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9sb2dnaW5nX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaAo6CgogICBSZW5hbWUgdGhlIGxvZ2dpbmcgJiByZWxhdGVkIG91dHB1dCBBUEkgaGVhZGVyIGZpbGUsIHRvIGJldHRlcgogICByZWZsZWN0IHRoZSBzY29wZSBvZiB0aGlzIEFQSS4gIChBcyBzdWdnZXN0ZWQgYnkgV2VzICYgSm9obikKICAgCjIwMDItMDItMTIgMDc6MjEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGFtZW5kIGZpeCB0byBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgdG8KICAgICAgIGFjdHVhbGx5IGFkZCAtbG5zbCB0byBsaW5rIHBhcmFtZXRlcnMhCiAgIAoyMDAyLTAyLTEyIDA1OjM5ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIC0tIFVTRV9MSUJXUkFQCiAgICAgICB3YXMgbm90IGJlaW5nICNkZWZpbmVkIGluIHRoZSBjYXNlIHdoZXJlIC1sbnNsIGlzIG5lZWRlZCBpbiBhZGRpdGlvbgogICAgICAgdG8gLWx3cmFwLgogICAKMjAwMi0wMi0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBsaWIgZGVwZW5kZW5jeSBmaXggZm9yIHNubXBkIHRhcmdldAogICAKMjAwMi0wMi0xMSAwODoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmgsIGluY2x1ZGUvbmV0LXNubXAvbWliLmgKLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCwgc25tcGxpYi9jbXVfY29tcGF0LmMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBFeHRyYWN0IENNVV9DT01QQVRBQklMSVRZIGNvZGUsIGFuZCBleHBsaWNpdGx5IGRlcHJlY2F0ZWQgVUNEIGNvZGUgaW50byBzZXBhcmF0ZSBmaWxlcy4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX3BhcnNlX2FyZ3MuYwo6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA0OjQ1ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgbWlub3Igc3BlbGxpbmcgdHdlYWtzCiAgIAoyMDAyLTAyLTExIDA0OjI3ICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMKLCBtaWJfYXBpLjMuZGVmLCBzbm1wX2FnZW50X2FwaS4zLAogICBzbm1wX2FnZW50X2FwaS4zLmRlZiwgc25tcF9hbGFybS4zLCBzbm1wX2FsYXJtLjMuZGVmCiwgc25tcF9hcGkuMywgc25tcF9hcGkuMy5kZWYsIHNubXBfc2Vzc19hcGkuMwosIHNubXBfc2Vzc19hcGkuMy5kZWYsIHNubXBfdHJhcF9hcGkuMywKICAgc25tcF90cmFwX2FwaS4zLmRlZiwgdmFyaWFibGVzLjUsIHZhcmlhYmxlcy41LmRlZgo6CgogICAgIC0gZ2VuZXJhdGUgdGhlIHJlc3Qgb2YgdGhlIG1hbnVhbCBwYWdlcyAodG8gZ2V0IHZlcnNpb24gaW4gZm9vdGVyKQogICAKMjAwMi0wMi0wOCAxNTo1NiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgbWliX21vZHVsZV9jb25maWcuaCwKICAgbWliX21vZHVsZV9pbml0cy5oLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBzbm1wZC9zbm1wZC5kc3A6CgogICB3aW4zMiBzcGVjaWZpYyBwb3J0aW9ucyBvZiBwYXRjaCA1MDMyNTYKICAgCjIwMDItMDItMDggMTU6NTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBwYXRjaCM1MDMyNTY6IGhlbHBlcnMgbGlicmFyeSBkZWZpbml0aW9uIGZvciB3aW4zMgogICAKMjAwMi0wMi0wOCAwOTowOCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXQgdHdlYWthZ2UKICAgCjIwMDItMDItMDggMDg6MjIgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMywgc25tcF9hZ2VudF9hcGkuMywgc25tcF9hbGFybS4zCiwgc25tcF9hcGkuMywgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMKOgoKICAgUmVmZXJlbmNlIHRoZSBuZXcgaGVhZGVyLWZpbGVzIGluIHNlY3Rpb24gMyBtYW4gcGFnZSBzeW5vcHNlcy4KICAgCjIwMDItMDItMDggMDc6NTAgIGpicG4KCiAgICogbWFuLzogbWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wX3RyYXBfYXBpLjMsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBjb25mLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICB2YXJpYWJsZXMuNToKCiAgICAgLSBtb3JlIG1pbm9yIHR3ZWFrcyAodWNkLXNubXAgLT4gTmV0LVNOTVAgZXRjLikKICAgCjIwMDItMDItMDggMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBsb2NhbCBtb2R1bGVzIGZyb20gZGVwZW5kZW5jeSBsaXN0CiAgIAoyMDAyLTAyLTA4IDA3OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaW5kZXguYywKICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jCiwgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywgbWliX21vZHVsZXMuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgaGVscGVycy9idWxrX3RvX25leHQuYywgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBoZWxwZXJzL251bGwuYywgaGVscGVycy9vbGRfYXBpLmMsIGhlbHBlcnMvcmVhZF9vbmx5LmMKLCBoZWxwZXJzL3NlcmlhbGl6ZS5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYywgaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIG1pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9SbW9uL2FndXRpbC5jLAogICBtaWJncm91cC9SbW9uL2FsYXJtLmMsIG1pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIG1pYmdyb3VwL1Jtb24vcm93cy5jLAogICBtaWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYwosIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwosIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMKLCBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBtaWJncm91cC9taWJJSS9pcHY2LmMsIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBtaWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwosIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKLCBtaWJncm91cC9taXNjL2RsbW9kLmMsIG1pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwosIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jCiwgbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMKLCBtaWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFVzZSB0aGUgbmV3ICduZXQtc25tcC1pbmNsdWRlcycgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzLAogICBpbiBwbGFjZSBvZiB0aGUgKHVuaW5zdGFsbGVkKSAnbWliaW5jbC5oJy4KICAgICBXaGVlZWVlLi4uLi4uCiAgIAoyMDAyLTAyLTA4IDA3OjE3ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMywKICAgc25tcF9hbGFybS4zLCBzbm1wX2FwaS4zLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgc25tcF9zZXNzX2FwaS4zLCBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAgIC0gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gZ2VuZXJhdGUgbWFuIHBhZ2VzIGF0IGNvbXBpbGUgdGltZQogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLCBzbm1wYnVsa3dhbGsuMSwKICAgc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwgc25tcGNtZC4xCiwgc25tcGNtZC4xLmRlZiwgc25tcGNvbmYuMSwgc25tcGNvbmYuMS5kZWYKLCBzbm1wZ2V0LjEsIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEsCiAgIHNubXBnZXRuZXh0LjEuZGVmLCBzbm1wc2V0LjEsIHNubXBzZXQuMS5kZWYsCiAgIHNubXBzdGF0dXMuMSwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEsCiAgIHNubXB0YWJsZS4xLmRlZiwgc25tcHRlc3QuMSwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYW5zbGF0ZS4xLmRlZiwgc25tcHRyYXAuMQosIHNubXB0cmFwLjEuZGVmLCBzbm1wdXNtLjEsIHNubXB1c20uMS5kZWYsCiAgIHNubXB3YWxrLjEsIHNubXB3YWxrLjEuZGVmLCBzbm1wdHJhcGQuOCwKICAgc25tcHRyYXBkLjguZGVmOgoKICAgICAtIHJlbmFtZSBtYW4gcGFnZXMgd2hpY2ggYXJlIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0aW1lIGluIG9yZGVyCiAgICAgICB0byBwaWNrIHVwIHRoZSB2ZXJzaW9uICh3aGljaCBnZXRzIHB1dCBpbiB0aGUgZm9vdGVyKS4KICAgCiAgICAgLSBhbHNvIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKLmg6CgogICBSZW1vdmUgdGhlIGF0dGVtcHRlZCAnbWliSUknIHJlLXdyaXRlLgogICBJZiB3ZSB3YW50IHRvIHRpZHkgdXAgbWliSUksIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gdXNlIHRoZSBuZXcgYWdlbnQgQVBJcy4KICAgCjIwMDItMDItMDggMDY6NDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBuZXQtc25tcC1pbmNsdWRlcy5oLAogICBhZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQnJpbmcgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzIGNsb3NlciBpbiBsaW5lIHdpdGggdGhlIGV4aXN0aW5nICJtaWJpbmNsLmgiIGZpbGUKICAgCjIwMDItMDItMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHN5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiAgIChWNC0yLXBhdGNoZXMuWzYsM10pLCBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbWVtb3J5IGFuZCBzd2FwIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgZm9yIFNvbGFyaXMKICAgKGZyb20gcGF0Y2ggIzUwNTQ5OCAtIHRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCiAgIAoyMDAyLTAyLTA4IDAyOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQ29uc29saWRhdGUgaWRlbnRpY2FsIE1JQiBvYmplY3QgZW50cmllcyAoV0lOMzIvbm9uLVdJTjMyKQogICAKMjAwMi0wMi0wOCAwMDo1MCAgamJwbgoKICAgKiBtYW4vUkVBRE1FOgoKICAgICAtIHJlbW92ZSBjaHJvbmljYWxseSBkYXRlZCB1bmhlbHBmdWwgUkVBRE1FCiAgIAoyMDAyLTAyLTA3IDEzOjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBtYWtlZmlsZWluZGVwZW5kLnBsLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtYWtlIG1ha2UncyBNYWtlZmlsZSdzIHRvIG1ha2UgYmV0dGVyIG1ha2luZwogICAKMjAwMi0wMi0wNyAxMzozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hlY2sgbG9jYWwgcGF0aGVzCiAgIAoyMDAyLTAyLTA3IDEyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbnN1cmUgYWdlbnQgcmV0dXJucyB0aGUgY29ycmVjdCBlcnJvciBjb2RlcyBmb3IgVU5ETyBhbmQgQ09NTUlUIGZhaWx1cmVzLgogICAKMjAwMi0wMi0wNyAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAueHMsIHQvc3RhcnRhZ2VudC5wbAo6CgogICBhdHRlbXB0IGF0IHBvcnRpbmcgSm9lJ3MgU05NUCBtb2R1bGUgdG8gbmV0LXNubXAuCiAgIEl0IGNvbXBpbGVzLCBidXQgb25seSBzb21lIG9mIHRoZSB0ZXN0cyBzdWNjZWVkLgogICAKMjAwMi0wMi0wNyAxMDowOSAgamJwbgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMsCiAgIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfYWdlbnRfYXBpLjMKLCBzbm1wX2FsYXJtLjMsIHNubXBfYXBpLjMsIHNubXBfY29uZmlnLjUuZGVmCiwgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMsIHNubXBidWxrZ2V0LjEKLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNvbmYuMSwgc25tcGQuY29uZi41LmRlZgosIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcGdldC4xLAogICBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEsCiAgIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0ZXN0LjEsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYKLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEsIHZhcmlhYmxlcy41OgoKICAgICAtIGFkZCBOZXQtU05NUCBpbiBoZWFkZXIgb2YgYWxsIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwOTo1MiAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHVwZGF0ZSBzdHlsZSB0byBtYXRjaCBzbm1wZCBhbmQgc25tcHRyYXBkIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwODoxNSAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gZml4IHNwZWVsaW5nIG1pc3Rha2UKICAgCjIwMDItMDItMDcgMDg6MDAgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGJyaW5nIHVwIHRvIGRhdGUgd2l0aCBzbm1wdHJhcGQKICAgCjIwMDItMDItMDcgMDc6MjggIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFjY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDcgMDY6MzAgIGpicG4KCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgICAtIGFscGhhYmV0aXNlIG9wdGlvbnMKICAgCiAgICAgLSBicmluZyBtYW4gcGFnZSBpbiBsaW5lIHdpdGggbmV3IHBvc2l0aW9uYWwgYXJndW1lbnRzIGxpc3RlbmluZwogICAgICAgYWRkcmVzcyBzcGVjaWZpY2F0aW9uIGFuZCBhZGQgc2VjdGlvbiBkZXNjcmliaW5nIHRoYXQKICAgCiAgICAgLSBwdXQgTmV0LVNOTVAgaW4gaGVhZGVyCiAgIAoyMDAyLTAyLTA2IDEwOjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaDoKCiAgICAgLSBmaXggYnVnIG5vdGVkIGJ5IE5pZWxzCiAgIAoyMDAyLTAyLTA2IDA5OjI1ICBqYnBuCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB1c20uYzoKCiAgICAgLSBtaW5vciB0d2Vha3MgZHVlIHRvIGNoYW5nZSBpbiBkZWZpbml0aW9uIG9mIFVTTSBPSURzLgogICAKMjAwMi0wMi0wNiAwOToxNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gbW92ZSBVU00gT0lEIGRlZmluaXRpb25zIGludG8gc25tcHVzbS5jLCBtYWtlIHRoZW0gY29uc3QKICAgCiAgICAgLSBjb25zZXF1ZW50IGluY3JlYXNlIGluIGNvbnN0LW5lc3MgaW4gc29tZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICByZW1vdmUgaW50ZXJuYWwgbm90ZSBhYm91dCB2MyBhcGksIHdoaWNoIHNob3VsZCBiZSBwdWJsaWMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0Lmg6CgogICByZW1vdmVkIHVubmVlZGVkIGZpbGUKICAgCjIwMDItMDItMDYgMDk6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSBhZGQgY29uc3QtbmVzcyBmb3IgdHJhbnNmb3JtIHR5cGUgYXJncwogICAKMjAwMi0wMi0wNiAwOTowMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGFkZCBzb21lIGNvbnN0LW5lc3MgZm9yIE9JRCBhcmdzIChtYWlubHkgc28gdGhhdCBkZWJ1Z21zZ19vaWQgdGFrZXMKICAgICAgIGNvbnN0KS4KICAgCjIwMDItMDItMDYgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBTdXBwb3J0IGZvciBEeW5peC9QVFggNC40LCBjb3VydGVzeSBvZiBQYXRyaWNrIEhlc3MuCiAgIAoyMDAyLTAyLTA2IDA3OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgZmlyc3QgYXJndW1lbnQgb2Ygc25tcF9kdXBfb2JqaWQoKSBjb25zdC4KICAgCiAgICAgLSBiZXR0ZXIgaGFuZGxlIE5VTEwgdmFsdWVzIGluIHNubXBfZHVwX29iamlkKCkuCiAgIAoyMDAyLTAyLTA2IDA3OjA5ICBkdHMxMgoKICAgKiBGQVEsIG1hbi9zbm1wX3RyYXBfYXBpLjM6CgogICBDbGFyaWZ5IHRoZSBhcHBsaWNhYmlsaXR5IG9mICdzbm1wX3RyYXBfYXBpKDMpJyByb3V0aW5lcyB0byBBZ2VudFggc3ViYWdlbnRzLgogICAKMjAwMi0wMi0wNiAwNTo1OCAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgbm90aWZpY2F0aW9uX2xvZy5jLAogICBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYwosIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYwosIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIHNubXBuZXRzdGF0L2lmLmMKLCBzbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBuZXRzdGF0L2luZXQ2LmMsCiAgIHNubXBuZXRzdGF0L21haW4uYywgc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEFwcGxpY2F0aW9ucyBhbWVuZGVkIHRvIHVzZSB0aGUgbmV3LXN0eWxlIGxpYnJhcnkgaGVhZGVyIHN0cnVjdHVyZS4KICAgKEluIG1vc3QgY2FzZXMsIHNpbXBseSBpbmNsdWRpbmcgdGhlIHNpbmdsZSAiZnVsbCBBUEkiIGhlYWRlciBmaWxlKQogICAKMjAwMi0wMi0wNiAwNTo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFzbjEuaCwgY29uZmlnX2FwaS5oLAogICBkZWZpbml0aW9ucy5oLCBsb2dnaW5nX2FwaS5oLCBtaWJfYXBpLmgsCiAgIG5ldC1zbm1wLWluY2x1ZGVzLmgsIHBkdV9hcGkuaCwgc2Vzc2lvbl9hcGkuaCwKICAgc25tcHYzX2FwaS5oLCB0eXBlcy5oLCB1dGlsaXRpZXMuaCwgdmFyYmluZF9hcGkuaAo6CgogICBGcmFtZXdvcmsgZm9yIG5ldyBsaWJyYXJ5IGhlYWRlciBmaWxlIG9yZ2FuaXNhdGlvbiwgd2l0aCBlaWdodCBtYWluIGdyb3VwcwogICBvZiBBUEkgcm91dGluZXMuICBDdXJyZW50bHkgdGhlc2Ugc3RpbGwgcmVmZXIgdG8gdGhlIFVDRC1zdHlsZSBzdHlsZSBoZWFkZXIKICAgZmlsZXMgZm9yIHRoZSBhY3R1YWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgogICAKMjAwMi0wMi0wNiAwNTozMSAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gcmVwbGFjZSB1c2Ugb2YgJDwgd2l0aCBleHBsaWNpdCBmaWxlbmFtZSwgc2luY2Ugbm9uLUdOVSBtYWtlcyBzZWVtCiAgICAgICB0byBiYXJmIG9uIGl0CiAgIAoyMDAyLTAyLTA2IDAzOjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeCBpbmNvcnJlY3QgZGlyZWN0b3J5IHNwZWNpZmljYXRpb24gaW4gJ21ha2UgY2xlYW4nCiAgIAoyMDAyLTAyLTA2IDAzOjE4ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUHJvdGVjdCB0aGUgcHJvamVjdCBjb25maWcgZmlsZSBhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbi4KICAgCjIwMDItMDItMDYgMDM6MDcgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cyBhbmQKICAgICAgIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi8uLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzCiAgICAgICBhbmQgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuNyksIENPUFlJTkc6CgogICBjb3B5cmlnaHQgeWVhciB1cGRhdGUgZm9yIE5BSSBhbmQgQ2FtYnJpZGdlCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGVybCBmaXhlcwogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtb3ZlIHRoZSBvaWR0cmVlX2NvbXBhcmUgZnVuY3Rpb24gdG8KICAgdGhlIG1haW4gbGlicmFyeS4KICAgCjIwMDItMDItMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBwZXJsIGJ1aWxkIGZpeGVzLgogICAKMjAwMi0wMi0wNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBvcHBzLiAgUmVtb3ZlZCBmb3JjZWQgcGVybCBlbWJlZGRpbmcKICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB0aGlzIGZpbGUgc2hvdWxkbid0IGJlIGNoZWNrZWQgaW4KICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfcGVybC5jCiwgYWdlbnQvc25tcF9wZXJsLnBsLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gU3VwcG9ydCBmb3IgZW1iZWRkaW5nIHBlcmwgc3Vicm91dGluZXMgaW50byB0aGUgYWdlbnQgdG8gYmUgY2FsbGVkCiAgICAgYXMgaGFuZGxlcnMuCiAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zOgogICAgIC0td2l0aC1wZXJsLW1vZHVsZXMgYXR0ZW1wdHMgdG8gYnVpbGQgY29udGFpbmVkIG1vZHVsZXMgKHBvb3JseSBjdXJyZW50bHkpLgogICAgIC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgYWN0dWFsbHkgc3BlY2lmaWVzIHRvIGRvIHBlcmwgZW1iZWRkaW5nCiAgICAgd2l0aGluIHRoZSBhZ2VudC4KICAgCjIwMDItMDItMDQgMTY6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBBU04vQVNOLnhzLCBBU04vQ2hhbmdlcywKICAgQVNOL01BTklGRVNULCBBU04vTWFrZWZpbGUuUEwsIEFTTi90ZXN0LnBsLAogICBhZ2VudC9DaGFuZ2VzLCBhZ2VudC9NQU5JRkVTVCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbCwKICAgYWdlbnQvdHlwZW1hcCwgZGVmYXVsdF9zdG9yZS9DaGFuZ2VzLAogICBkZWZhdWx0X3N0b3JlL01BTklGRVNULCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgZGVmYXVsdF9zdG9yZS90ZXN0LnBsLAogICBkZWZhdWx0X3N0b3JlL3R5cGVtYXA6CgogICBCZWdpbm5pbmdzIG9mIG5ldyBwZXJsIG1vZHVsZXMgbmVlZGVkIHRvIGltcGxlbWVudCBhbiBTTk1QIGFnZW50IChvcgogICBhZ2VudHggc3ViYWdlbnQpIGluc2lkZSBwZXJsLgogICAgIC0gbm90IGNvbXBsZXRlIHlldC4KICAgICAtIG1heSBjaGFuZ2UuCiAgICAgLSBidXQgd29ya3MuCiAgIAoyMDAyLTAyLTA0IDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAyLTAxIDAxOjUwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBwcm9jZWR1cmUgZm9yIGNvbXBpbGluZyB3aXRoICdjYycgcmF0aGVyIHRoYW4gJ2djYycKICAgCjIwMDItMDEtMzEgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHMvc25tcGxpYlwvLy87CiAgIAoyMDAyLTAxLTMxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlIGNsZWFuIGFzIHJlcG9ydGVkIGJ5IEJyYWRsZXkgQm96YXJ0aC4KICAgCjIwMDItMDEtMzAgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBCcmluZyBNSUIgdmFyaWFibGUgdmVyc2lvblRhZyBpbnRvIGxpbmUgd2l0aCB0aGUgbmV3IDxuZXQtc25tcC92ZXJzaW9uLmg+IHVzYWdlCiAgIAoyMDAyLTAxLTI5IDE3OjUzICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTW92ZWQgdmVyc2lvbmluZyBpbmZvcm1hdGlvbiBmcm9tIHZlcnNpb24uaCB0bzoKICAgICAtIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgICAtIGRlZmluZSBuZXRzbm1wX2dldF92ZXJzaW9uKCk7CiAgICAgICAtIGNyZWF0ZSBhIGNvbnN0IGNoYXIgKk5ldFNubXBWZXJzaW9uSW5mbwogICAgIC0gaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGV4dGVybiB0aGUgYWJvdmUgY2hhciAqCiAgICAgICAtIHByb3RvdHlwZSB0aGUgZnVuY3Rpb24KICAgICAtIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBjcmVhdGUgYSBzdGF0aWMgdmFyaWFibGUgKHRoZSBvbGQgd2F5KSBhbmQgc2V0IGl0IHRvIE5ldFNubXBWZXJzaW9uSW5mbwogICAKMjAwMi0wMS0yOSAxNjowOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0sCiAgIHRlc3RzL1QwNTBzbm1wdjN0cmFwLCB0ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAsCiAgIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAsIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwKICAgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsCiAgIHRlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgdHJhcCB0ZXN0IGZpeGVzIHNvIHRoZSBtYWpvcml0eSBvZiB0aGUgdGVzdHMgbm93IHdvcmsuCiAgIAoyMDAyLTAxLTI5IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGdlbmVyYXRlIHVjZC1zbm1wLWNvbmZpZy5oIGFueSBsb25nZXIuCiAgIAoyMDAyLTAxLTI5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0Lmg6CgogICBtb3ZlZCBzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS8qLmgKICAgbW92ZWQgbS9nZW5lcmljLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaAogICAKMjAwMi0wMS0yOSAwOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtYyBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMi0wMS0yOSAwOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVmZXJlbmNlIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaW5zdGVhZCBvZiBqdXN0IGNvbmZpZy5oCiAgIAoyMDAyLTAxLTI5IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSB1bmtub3duIGVuZ2luZWlkL3Vua25vd24gdXNlciBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMi0wMS0yOCAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB3aG9vcHMuICBNaXNzZWQgc29tZSAuaCBmaWxlIGNoZWNrcyBpbiBjb25maWd1cmUuICBUaGFua3MgUm9iZXJ0LgogICAKMjAwMi0wMS0yOCAyMTowMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBtaW5vciBmaXguCiAgIAoyMDAyLTAxLTI4IDIxOjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIGFkZGVkIGNvZGUgY29udmVydCBzY3JpcHQgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGhlYWRlciBjb252ZXJzaW9uCiAgIAoyMDAyLTAxLTI4IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oCiwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaAosIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCwgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmgsIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgKLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKLCBtYW4vTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RhdGFfbGlzdC5jLAogICBzbm1wbGliL2RhdGFfbGlzdC5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvZ2V0b3B0LmgsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL2tleXRvb2xzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWQ1LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0LmgsCiAgIHNubXBsaWIvb2lkX2FycmF5LmMsIHNubXBsaWIvb2lkX2FycmF5LmgsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvb2lkX3N0YXNoLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5jCiwgc25tcGxpYi9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5oLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUERvbWFpbi5oLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmgsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uaCwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oLCBzbm1wbGliL3NubXBfYWxhcm0uYwosIHNubXBsaWIvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2VudW0uaCwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmgsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wa3NtLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaCwgdGVzdGluZy9SVU5URVNUUywKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaAosIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMjA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMKLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLCBtaWJfbW9kdWxlcy5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgaGVscGVycy9pbnN0YW5jZS5jLCBoZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGhlbHBlcnMvbnVsbC5jLCBoZWxwZXJzL29sZF9hcGkuYywgaGVscGVycy9yZWFkX29ubHkuYwosIGhlbHBlcnMvc2VyaWFsaXplLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jLCBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBtaWJncm91cC9ob3N0X3Jlcy5oLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9SbW9uL2FsYXJtLmMsCiAgIG1pYmdyb3VwL1Jtb24vZXZlbnQuYywgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgIG1pYmdyb3VwL1Jtb24vcm93cy5jLCBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYwosIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwosIG1pYmdyb3VwL21pYklJL2F0LmMsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9pcEFkZHIuYywgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwosIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgKLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywgbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDE5OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgREVGSU5FIElUIGluc3RlYWQKICAgCjIwMDItMDEtMjggMTk6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBkZWZpbmUgaXQgaW5zdGVhZAogICAKMjAwMi0wMS0yNSAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcGFyc2Vfb25lX29pZF9pbmRleDoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBpbnQgZm9yIGxlbmd0aCdzIHB1bGxlZCBmcm9tIHRoZSBvaWQuCiAgICAgLSBNYWtlIHN1cmUgdGhleSdyZSBhbHdheXMgPCAxMjgKICAgCjIwMDItMDEtMjUgMDk6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjbG9zZXIgYWRoZXJlbmNlIHRvIHN0YXRlIG1hY2hpbmVzIGRlc2NyaWJlZCBpbiBSRkMgMjU3NAogICAKMjAwMi0wMS0yNSAwOToxMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSB1c21EZWNyeXB0aW9uRXJyb3IgcmVwb3J0cyB0byBiZSBzZW50IGluIGEgY291cGxlIG9mIGV4dHJhCiAgICAgICBjYXNlczogYmFkIHNhbHQgKGxlbmd0aCAhPSA4KSBhbmQgbGVuZ3RoIG9mIGVuY3J5cHRlZCBkYXRhIG5vdCBhCiAgICAgICBtdWx0aXBsZSBvZiA4IG9jdGV0cyAocGVyIFJGQyAyNTc0KS4KICAgCjIwMDItMDEtMjUgMDk6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZvciB1bmtub3duIG1lc3NhZ2UgdHlwZXMsIGluY3JlbWVudCBzbm1wSW5BU05QYXJzZUVycnMgYW5kIGZhaWwKICAgICAgIGF0IHRoZSBwb3N0LXBhcnNlIHN0YWdlLgogICAKICAgICAtIGZvciBub3RpZmljYXRpb24gdHlwZXMsIGluY3JlbWVudCBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGFuZCBiYWlsCiAgICAgICBvdXQgZWFybHkuCiAgIAoyMDAyLTAxLTI1IDA5OjAxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmb3IgdW5oYW5kbGVkIG1lc3NhZ2VzIChlLmcuIFJFU1BPTlNFIG1lc3NhZ2VzIHNlbnQgdG8gYWdlbnRzKSwKICAgICAgIGluY3JlbWVudCB0aGUgc25tcFVua25vd25QRFVIYW5kbGVycyBjb3VudGVyLgogICAKICAgICAtIHRyeSB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWZzIHdoZW4gcG9zdC1wYXJzZSBmYWlscy4KICAgCjIwMDItMDEtMjUgMDY6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjYpLCB2YWNtX3ZhcnMuYwo6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCBwcmludCBvdXQgZGVidWdnaW5nIGluZm8gaW4gYSBmdXJ0aGVyIGNhc2Ugd2hlcmUgaXQgaGFzIGJlZW4KICAgICAgIGZyZWUoKWQuCiAgIAogICAgIC0gc2V0IHRoZSBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gZXJyb3Igbm9TdWNoTmFtZSB3aGVuCiAgICAgICB3ZSBoYXZlIHRoZSBpbmNvcnJlY3QgbnVtYmVyIG9mIGluZGljZXMuCiAgIAoyMDAyLTAxLTI1IDA0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL1JFQURNRS5uZXdsaWI6CgogICBmaWxlIFJFQURNRS5uZXdsaWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMi0wMS0yNSAwNDo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGJlZm9yZSB3aGVyZSAocG90ZW50aWFsbHkpIHRoZSBkYXRhIGl0IGlzCiAgICAgICB0cnlpbmcgdG8gcHJpbnQgZ2V0cyBmcmVlKClkLgogICAKMjAwMi0wMS0yNSAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0ga2VlcCBhc3AtPnZiY291bnQgY29ycmVjdCBpbiBjcmVhdGVfc3VidHJlZV9jYWNoZSgpIGlmIHdlIGR1bXAKICAgICAgIHZhcmJpbmRzIGluIHRoZSBHRVRORVhUIGNhc2UgYmVjYXVzZSBudW12YXJiaW5kcyA+IG5vbi1yZXBlYXRlcnMuCiAgICAgICBGYWlsaW5nIHRvIGRvIHRoaXMgd2lsbCBjYXVzZSBwcm9ibGVtcyBsYXRlciB3aGVuIHlvdSBpdGVyYXRlIG92ZXIKICAgICAgIDAgLi4gYXNwLT52YmNvdW50IC0gMSBpbiByZWFzc2lnbl9yZXF1ZXN0cygpLgogICAKMjAwMi0wMS0yNCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHVwZGF0ZSBtYWNyb3MgdG8gcHV0IHBhcmVucyBhcm91bmQgcGFyYW1ldGVycyB3aGVuIHVzZWQsIGluIGNhc2UgYSBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzc2lvbiwgd2hpY2ggbWlnaHQgbXVjayBhYm91dCB3aXRoIG9wZXJhdG9yIHByZWNlZGVuY2UgcnVsZXMgYW5kIGNhdXNlIHVuZXhwZWN0ZWQgYW5kIHVuZGVzaXJhYmxlIGJlaGF2aW9yLgogICAKMjAwMi0wMS0yNCAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHRyeSB0byBmaW5kICYgaGFuZGxlIGV4dGVybmFsIGluZGV4ZXM7IHVzZSBuZXcgc3R5bGUgbmV0LXNubXAgaW5jbHVkZXM7IGFkZAogICByb3dfY29weTsgdXNlIGNvbnRleHQgdHlwZXMgJiBjYXN0cyBpbiBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgZ2VuZXJpYyB0eXBlcwogICByZWNhc3QgaW5zaWRlIG1ldGhvZAogICAKMjAwMi0wMS0yNCAwNjowMyAgamJwbgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjMpLCByZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGRvbid0IGF1dG9tYXRpY2FsbHkgYWNjZXB0IGEgbXNnVXNlck5hbWUgb2YgIiIgd2hlbiBwcm9jZXNzaW5nCiAgICAgICBpbmNvbWluZyBtZXNzYWdlcy4KICAgCjIwMDItMDEtMjQgMDQ6MzAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJpZ2dlciBidWZmZXIgZm9yIG1zZ0F1dGhvcml0YXRpdmVFbmdpbmVJRCBmaWVsZCBzaW5jZSBpdCBpcyBub3QKICAgICAgIGxpbWl0ZWQgdG8gMzIgYnl0ZXMgbGlrZSBTbm1wRW5naW5lVEMuICBSZWFsbHkgdGhpcyBuZWVkcyB0byBiZQogICAgICAgYWxsb2NhdGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGUgYnV0IGZvciBub3cgd2UnbGwganVzdCBtYWtlIGl0CiAgICAgICB0d2ljZSBhcyBiaWcuCiAgIAoyMDAyLTAxLTI0IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQUlYIHN1cHBvcnQgZm9yIHRoZSBIb3N0IFJlc291cmNlcyBtb2R1bGUuCiAgICAgIChUaGFua3MgdG8gQW5keSBIb29kKQogICAKMjAwMi0wMS0yMyAwODoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBzZXQgdmlld1R5cGUgdG8gdGhlIERFRlZBTCBpbmNsdWRlZCgxKSBmb3IgbmV3IHJvd3MKICAgCjIwMDItMDEtMjMgMDc6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHNlY01vZGVsIG9mIDAgaXMgYSBwYXJzZSBlcnJvciBpbiBIZWFkZXJEYXRhCiAgIAoyMDAyLTAxLTIzIDA3OjIzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiZSBjYXJlZnVsIHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZiBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlcyBpbgogICAgICAgc25tcHYzX3BhcnNlIC0tIGZpeGVzIG1lbW9yeSBsZWFrcyB3aGVuIG1hbGZvcm1lZCBQRFVzIGFyZQogICAgICAgcmVjZWl2ZWQuCiAgIAoyMDAyLTAxLTIyIDE5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBjaGcgYXBpIGZvciBzbm1wX29pZF9uY29tcGFyZSwgZG9uJ3QgaW1wbGVtZW50IGl0IHZpIHNubXBfb2lkX2NvbXBhcmUKICAgCjIwMDItMDEtMjIgMTk6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMsIG9pZF9hcnJheS5oOgoKICAgYWRkIEdldF9vaWRfZGF0YV9jb3VudCgpOyBhZGQgc3Vic2V0IHN1cHBvcnQKICAgCjIwMDItMDEtMjIgMTk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgYWRkIG5ldHNubXBfc3RyMm9pZCgpCiAgIAoyMDAyLTAxLTIyIDE5OjQxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbgogICAKMjAwMi0wMS0yMiAxOTo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb247IGFkZCBwcmVsaW1pbmFyeSBsb2NraW5nIGNvZGU7IGFkZCB0YV9jaGVja19yb3dfc3RhdHVzCiAgIAoyMDAyLTAxLTIyIDA2OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbV92YXJzLmMKOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSBhIHBhcnNlIGVycm9yIGlmIHdlIHJlY2VpdmUgVXNtU2VjdXJpdHlQYXJhbWV0ZXJzIHdpdGggYQogICAgICAgbXNnVXNlck5hbWUgdGhhdCBpcyBpbGxlZ2FsbHkgbG9uZy4KICAgCjIwMDItMDEtMjIgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgICAtIG9vcHMsIGxlZnQgb2xkIGNvZGUgaW4gI2lmIDAgYnJhbmNoIEFHQUlOLiAgSSBhbSBnZXR0aW5nIGludG8gYmFkCiAgICAgICBoYWJpdHMhCiAgIAoyMDAyLTAxLTIyIDAzOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWtzIGluIHJvdyBjcmVhdGlvbi9kZXN0cnVjdGlvbgogICAKICAgICAtIG1vcmUgYWdncmVzc2l2ZSB2YWxpZGl0eSBjaGVja2luZyBvZiBzbm1wTm90aWZ5VGFnLCBzbm1wTm90aWZ5VHlwZQogICAgICAgYW5kIHNubXBOb3RpZnlTdG9yYWdlVHlwZS4KICAgCiAgICAgLSBwYXNzZXMgNi41LjEuMCAtLSA2LjUuOC4zCiAgIAoyMDAyLTAxLTIyIDAxOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRQYXJhbXNUYWJsZQogICAKMjAwMi0wMS0yMSAyMzo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHRpZHkgdGhpbmdzIHVwIGEgYml0IChoYWQgbGVmdCBzb21lIG9sZCBjb2RlIHNpdHRpbmcgaWYgI2lmIDAKICAgICAgIGJyYW5jaCkuCiAgIAogICAgIC0gcmVtZW1iZXIgdG8gY2xvc2UgKHRhcmdldC0+c2Vzcykgd2hlbiB3ZSBtb3ZlIGEgdGFyZ2V0IHRvCiAgICAgICBub3RJblNlcnZpY2UoMikuCiAgIAoyMDAyLTAxLTIxIDExOjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldEFkZHJUYWJsZQogICAKMjAwMi0wMS0yMSAwNjo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgICAgLSBpbXBsZW1lbnQgc25tcFRhcmdldFNwaW5Mb2NrIG9iamVjdAogICAKMjAwMi0wMS0xOCAwOToxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlLiAgUGFzc2VzIGFsbCB0aGUKICAgICAgIHJlbGV2YW50IFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QuCiAgIAoyMDAyLTAxLTE4IDA4OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiB2YWNtLmMsIHZhY20uaDoKCiAgICAgLSBhZGQgYSBzd2l0Y2ggdG8gdmFjbV9nZXRWaWV3RW50cnkoKSB0byBhbGxvdyB0aGUgbWFzayBlbnRyaWVzCiAgICAgICB0byBiZSBpZ25vcmUgKHdoaWNoIGlzIHdoYXQgeW91IHdhbnQgd2hlbiB5b3UgYXJlIGp1c3QgdXNpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gdG8gbG9vayB1cCBhbiBlbnRyeSBpbiB0aGUgdGFibGUgaW4gb3JkZXIgdG8gd3JpdGUgc29tZSBuZXcKICAgICAgIHZhbHVlIHRvIG9uZSBvZiB0aGUgY29sdW1uYXIgb2JqZWN0cykuCiAgIAoyMDAyLTAxLTE4IDA2OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbUFjY2Vzc1RhYmxlLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QuCiAgIAoyMDAyLTAxLTE4IDA0OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlIChpLmUuIGRvbid0CiAgICAgICBqdXN0IGRvIGV2ZXJ5dGhpbmcgaW4gdGhlIENPTU1JVCBwaGFzZSkuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdC4KICAgCjIwMDItMDEtMTggMDQ6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IG92ZXJ3cml0ZSBhbiBleGlzdGluZyBlcnJvciBzdGF0dXMgYWZ0ZXIgQ09NTUlUIG9yIFVORE8KICAgICAgIHBoYXNlcyB3aXRoIGNvbW1pdEZhaWxlZCBvciB1bmRvRmFpbGVkIChidXQgZG8gdHJhbnNsYXRlIGVycm9yCiAgICAgICByZXR1cm5zIGZyb20gdGhvc2UgcGhhc2VzIGludG8gdGhvc2UgZXJyb3JzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhbgogICAgICAgZXhpc3RpbmcgZXJyb3Igc3RhdHVzKS4KICAgCjIwMDItMDEtMTcgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dJRCBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZSBwYWNrZXQKICAgICAgIGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNyAwNjozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ01heFNpemUgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUKICAgICAgIHBhY2tldCBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTUgMDg6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICB0b3AgbGV2ZWwgaW5jbHVkZSB3aGljaCBpbmNsdWRlcyB1c2VmdWwgc25tcGxpYiBoZWFkZXJzCiAgIAoyMDAyLTAxLTE1IDA4OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC86IGFnZW50X2luZGV4LmgsIGFnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudF9yZWdpc3RyeS5oLCBhZ2VudF90cmFwLmgsIGFzbjEuaCwKICAgYXV0b19ubGlzdC5oLCBjYWxsYmFjay5oLCBkZWZhdWx0X3N0b3JlLmgsCiAgIGRzX2FnZW50LmgsIGhlYWRlcl9jb21wbGV4LmgsIGludDY0LmgsIGtleXRvb2xzLmgKLCBtaWIuaCwgbWliX21vZHVsZV9jb25maWcuaCwgbWliaW5jbC5oLAogICBwYXJzZS5oLCByZWFkX2NvbmZpZy5oLCBzY2FwaS5oLCBzbm1wLXRjLmgsCiAgIHNubXAuaCwgc25tcF9hZ2VudC5oLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmgKLCBzbm1wX2NsaWVudC5oLCBzbm1wX2RlYnVnLmgsIHNubXBfaW1wbC5oLAogICBzbm1wX2xvZ2dpbmcuaCwgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBfdmFycy5oLAogICBzbm1wdXNtLmgsIHNubXB2My5oLCBzdHJ1Y3QuaCwgc3lzdGVtLmgsCiAgIHRvb2xzLmgsIHRyYW5zZm9ybV9vaWRzLmgsIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKLCB1Y2Qtc25tcC1jb25maWcuaCwgdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgdXRpbF9mdW5jcy5oLCB2YXJfc3RydWN0LmgsIHZlcnNpb24uaDoKCiAgIGNyZWF0ZSA0LnggaGVhZGVycyB0aGF0IGFyZSB3cmFwcGVycyBwb2ludGluZyB0byBuZXcgaGVhZGVycwogICAKMjAwMi0wMS0xNCAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBVc2VyUm93QWN0aW9uIGFuZCB2b2lkIHBvaW50ZXIKICAgCjIwMDItMDEtMTQgMTM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsIE1ha2VmaWxlLmluOgoKICAgLT4gbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAKMjAwMi0wMS0xNCAxMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlZAogICAKMjAwMi0wMS0xNCAxMzoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGNvcHkgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCBhbmQgdXBkYXRlIHRvIG5ldC1zbm1wIHVzZSBuZXcgYWdlbnQgZGlyCiAgIAoyMDAyLTAxLTE0IDA4OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9pbmRleC5oLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jCiwgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIG1vdmVkIHRoZSAvYWdlbnQgaW5zdGFsbGVkIGhlYWRlcnMgdG8gLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudAogICAKMjAwMi0wMS0xMyAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgYSBjb3VwbGUgbW9yZSBpbnN0YWxsIGhlYWRlcnMuCiAgIAoyMDAyLTAxLTExIDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIG5vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmgsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5oLAogICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmgKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaAosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmgsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZS5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSBBZGQgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgdG8gaW5jbHVkZSBwYXRoLgogICAtIFJlbmFtZSAzIGFnZW50IGxpYnJhcmllcyBmcm9tIGxpYnVjZCogLT4gbGlibmV0c25tcCoKICAgCjIwMDItMDEtMTEgMDc6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZG9uJ3QgdXNlIHdoaWxlKHgtLSA+PSAwKSBsb29wcyBmb3IgbmV3IHVuc2lnbmVkIGluZGV4IGNvbXBvbmVudHMKICAgCjIwMDItMDEtMTEgMDU6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYmUgY2FyZWZ1bCBhYm91dCBzaWduZWRlc3Mgb2YgaW5kZXggY29tcG9uZW50cyBpbiB0YWJsZXMKICAgCjIwMDItMDEtMTAgMTM6MTIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENyZWF0ZSB0aGUgaW5jbHVkZSBkaXJlY3Rvcnkgd2hlbiBidWlsZGluZyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDEtMTAgMDg6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBsb25nIGxvb3AgdmFyaWFibGUgaW4gdmFyX3N5c09SVGFibGUoKSB0byBhdm9pZAogICAgICAgaW5jb3JyZWN0IGxleGktb3JkZXJpbmcgd2hlbiBkb2luZyByZXF1ZXN0cyBsaWtlIEdFVE5FWFQKICAgICAgIHN5c09SRGVzY3IuNDI5NDk2NzI5NS4KICAgCiAgICAgLSBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGNoYW5nZXMKICAgCjIwMDItMDEtMTAgMDc6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhayBpbiByZWFzc2lnbl9yZXF1ZXN0cygpCiAgIAoyMDAyLTAxLTEwIDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzZXQgdHlwZSBmb3IgdW5oYW5kbGVkIEdFVCByZXF1ZXN0cyBpbiBoYW5kbGVfcGR1KCkgdG8gYmUKICAgICAgIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIG5vU3VjaE9iamVjdCAobm9TdWNoT2JqZWN0IGV4Y2VwdGlvbnMKICAgICAgIGFyZSBkZXRlY3RlZCBhbmQgZXhwbGljaXRseSBzZXQgZWFybGllcikuCiAgIAoyMDAyLTAxLTEwIDA1OjUyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGNvcnJlY3QgdHlwbyB0aGF0IG1lYW50IGVycm9yIHJldHVybnMgZnJvbSBvbGQtYXBpIHdyaXRlIG1ldGhvZHMKICAgICAgIHdlcmUgaWdub3JlZC4KICAgCjIwMDItMDEtMTAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIGNoYW5nZSB2YWx1ZSBvZiBTVEFUX1RBUkdFVF9TVEFUU19FTkQgc28gdGhhdCBtaWJJSS9zbm1wX21pYi5jIGNhbgogICAgICAgcmV0dXJuIHZhbHVlcyBvZiBtYW5kYXRvcnkgb2JqZWN0cyBzbm1wU2lsZW50RHJvcHMgYW5kCiAgICAgICBzbm1wUHJveHlEcm9wcy4KICAgCjIwMDItMDEtMDkgMDg6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdW5rbm93bi9pbGxlZ2FsIHZhcmJpbmQgdHlwZXMgaW4gdjEvdjJjIFBEVXMgY2F1c2UKICAgICAgIHNubXBJbkFTTlBhcnNlRXJycyB0byBiZSBpbmNyZW1lbnRlZC4KICAgCjIwMDItMDEtMDkgMDc6NTUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA5IDA3OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgICAgLSBicmluZyBhcHAtc3BlY2lmaWMgb3B0aW9ucyBpbiBsaW5lIHdpdGggc25tcGJ1bGt3YWxrICgtQyByYXRoZXIKICAgICAgIHRoYW4gLUIpCiAgIAoyMDAyLTAxLTA5IDA3OjMxICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gZm9ybWF0dGluZyBjaGFuZ2UgdG8gdXNhZ2UgbWVzc2FnZQogICAKMjAwMi0wMS0wOSAwNjozNSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA4IDA4OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gYWRkIG9wdGlvbnMgZnJvbSBzbm1wd2FsawogICAKICAgICAtIGFsbG93IG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMgdG8gYmUgc2V0CiAgIAogICAgIC0gY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2YgbWF4LXJlcGVhdGVycyB0byBhIGxvd2VyIHZhbHVlIHRvIGF2b2lkCiAgICAgICB0aW1lb3V0cyB3aXRoIHNsb3dlciBhZ2VudHMKICAgCjIwMDItMDEtMDggMDg6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHRyeSB0byBtYWxsb2MoKSBhIHplcm8tbGVuZ3RoIGJ1ZmZlciwgaW4gY2FzZSBzb21lIG1hbGxvYygpcwogICAgICAgY29tcGxhaW4uCiAgIAoyMDAyLTAxLTA4IDA4OjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBob3BlZnVsbHkgZmluYWwgR0VUQlVMSyBmaXggLS0gcGFzc2VzIGFsbCBTaWx2ZXJDcmVlaydzIEdFVEJVTEsKICAgICAgIHRlc3RzIChpbmNsLiBuZWdhdGl2ZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzKQogICAKMjAwMi0wMS0wOCAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgICAtIEdFVEJVTEsgZml4IHRvIGlnbm9yZSB2YXJiaW5kcyBmb3Igd2hpY2ggemVybyByZXBldGl0aW9ucyBhcmUKICAgICAgIGNhbGxlZCBmb3IKICAgCiAgICAgLSBkcm9wIGFzcC0+c3RhcnQgYW5kIGFzcC0+ZW5kIHdoaWNoIGFyZSBoYXJkbHkgdXNlZCBhbmQgd2hpY2ggZ2V0CiAgICAgICBpbiB0aGUgd2F5IG9mIHRoaXMgdHlwZSBvZiBwcm9jZXNzaW5nCiAgIAogICAgIC0gaWdub3JlIG5lZ2F0aXZlIHJlcGV0aXRpb25zIGluIGJ1bGtfdG9fbmV4dCBoYW5kbGVyCiAgIAoyMDAyLTAxLTA3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTAxLTA3IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvSU5TVEFMTDoKCiAgIFBOR0dyYXBoIC0+IEdEOjpHcmFwaAogICAKMjAwMi0wMS0wNCAxMzo0OCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTAxLTA0IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmg6CgogICBtb3ZlIGFjY29uZmlnLmggYmFjayB0byB0aGUgdG9wIGRpciB3aGVyZSBpdHMgYXBwYXJlbnRseSBzdXBwb3NlZCB0byBsaXZlLgogICAKMjAwMi0wMS0wNCAxMzoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtb3JlIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHRyYW5zbGF0aW9ucy4gIHdhcm5pbmc6IGluY2x1ZGVzIHRoZSBkZWZhdWx0IHBlcnNpc3RlbnQgc3RvcmUuCiAgIAoyMDAyLTAxLTA0IDEzOjA0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlLzogbmV0LXNubXAvLmN2c2lnbm9yZSwgdWNkLXNubXAvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMS0wNCAxMzowMiAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBidWlsdCBuZXQtc25tcC1jb25maWcKICAgCjIwMDItMDEtMDQgMTM6MDAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLAogICBub3RpZmljYXRpb25fbG9nLmMsIHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jCiwgc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsCiAgIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYywgc25tcHZhY20uYwosIHNubXB3YWxrLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwosIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi9zdHJ0b2wuYywKICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwosIHNubXBsaWIvdmFjbS5jLCB0ZXN0aW5nL1QuYywKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsCiAgIHRlc3RpbmcvbWlzY3Rlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9rZXJuZWwuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYwosIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgcmVtb3ZlZCB1bmVlZGVkIG9sZGVyIGZpbGVzCiAgIAoyMDAyLTAxLTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoICM0OTIwNzIgdG8gbWFpbiBicmFuY2gKICAgCjIwMDItMDEtMDMgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGNoZWNrIHJlc3VsdHMgb2Ygc2V0bW50ZW50IGJlZm9yZSB1c2luZyB0aGVtLgogICAKMjAwMi0wMS0wMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hlY2sgYWdhaW5zdCBncm93aW5nIHNlcnZlciByZXR1cm5zIGFzIHBvaW50ZWQgb3V0IGJ5IGJ1ZyAjNDk4OTU2CiAgIAoyMDAyLTAxLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtOgoKICAgUE5HR3JhcGggLT4gR0RHcmFwaAogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoYW5nZSBleHBvcnQgbmFtZSB0byAibmV0LXNubXAiIGZyb20gInVjZC1zbm1wIgogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIG1ha2UgdXNlIG9mIHRoZSBuZXcgbXVsdGktYWRkIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhc2V0LmMsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGFkZCBtdWx0aXBsZSBkZWZhdWx0IHJvdyBjb2x1bW4gZGVmaW5pdGlvbnMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlLmg6CgogICBhZGQgbXVsdGlwbGUgaW5kZXhlcyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zIChnZXRTdGF0UHRyIG5vIGxlc3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIG9pZF9zdGFzaC5jLCBvaWRfc3Rhc2guaAo6CgogICBkYXRhIHN0YXNoaW5nIGJhc2VkIG9uIGFuIG9pZCBjYWNoaW5nIHRyZWUuCiAgIAoyMDAxLTEyLTI2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgbWFuYWdlci5wbQo6CgogICB1cGRhdGUgdG8gbWFrZSBpdCBhIGJpdCBlYXNpZXIgdG8gaW5zdGFsbCAoaW5jbHVkaW5nIGEgTWFrZWZpbGUgZm9yCiAgIGF1dG9tYXRlZCBpbnN0YWxsYXRpb24pLgogICAKMjAwMS0xMi0yNiAxMzoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCwgZGlzcGxheXRhYmxlLnBtLCBnZXRWYWx1ZXMucG0KLCBncmVlbi5naWYsIG1hbmFnZXIucG0sIHJlZC5naWYsIHNldHVwYXV0aAosIHNldHVwZGIsIHNldHVwdXNlciwgc25tcHRvc3FsOgoKICAgbW92aW5nIG1hbmFnZXIgdG8gcGVybC9tYW5hZ2VyCiAgIAoyMDAxLTEyLTI0IDE2OjEwICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUxICkKICAgCjIwMDEtMTItMjQgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLCBtaWIyYy5jb25mOgoKICAgVXBkYXRlIHRvIG1ha2UgcGVvcGxlIHVuZGVyc3RhbmQgdGhhdCBpdCdzIG5vdCBmaW5pc2hlZCBhbmQgeW91IG11c3QKICAgcmVmZXJlbmNlIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIGZpbGUgYXQgdGhpcyBwb2ludC4KICAgCjIwMDEtMTItMjQgMTU6NTEgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLm5vdC5ldmVuLmNsb3NlICkKICAgCjIwMDEtMTItMjQgMTU6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1vcmUgY29tbWVudHMuCiAgIAoyMDAxLTEyLTI0IDE1OjQxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIG1vcmUgdXBkYXRlcwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICA1LjAgY29tbWVudCB1cGRhdGVzLgogICAKMjAwMS0xMi0yNCAxNToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZG94eWdlbiBjb21tZW50cyBvbiBhIGZldyBmdW5jdGlvbnMuCiAgIAoyMDAxLTEyLTI0IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTEyLTI0IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgZm9yIG5vbi1leGlzdGVudCBtb2R1bGVzCiAgIAoyMDAxLTEyLTIzIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWc6CgogICBvcHBzLiAgRG9uJ3QgY2hlY2sgaW4gZ2VuZXJhdGVkIGZpbGVzLgogICAKMjAwMS0xMi0yMyAxNTo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IHJwbSB1c2FnZSAoSSBob3BlKS4KICAgCjIwMDEtMTItMjMgMTQ6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGRlZCAuY3ZzaWdub3JlIGZpbGUKICAgCjIwMDEtMTItMjMgMTQ6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuCiAgIAoyMDAxLTEyLTIzIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbmV0LXNubXAtY29uZmlnLCBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gY3JlYXRlZCBhIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgdG8gcmVwb3J0IGNvbXBpbGVkIGxpYnMuCiAgIC0gc2VwYXJhdGVkIGxpYnMgbmVlZGVkIGJ5IGFnZW50IGZyb20gdGhvc2UgbmVlZGVkIGJ5IHRoZSByZXN0IG9mIHRoZQogICAgIGFwcGxpY2F0aW9ucy4KICAgCjIwMDEtMTItMjEgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGhvdyB0byBpbnN0YWxsIERCSQogICAKMjAwMS0xMi0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICByZW1vdmUgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgQW55RGF0YQogICAKMjAwMS0xMi0yMSAxNjozNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1ha2UgaW5zdGFsbCBhcyByb290LgogICAKMjAwMS0xMi0yMSAxNjozMiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBJTlNUQUxMLCBJTlNUQUxMLAogICBJTlNUQUxMOgoKICAgYmV0dGVyIGRlc2NyCiAgIAoyMDAxLTEyLTIxIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjIwMDEtMTItMjEgMTY6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGl0J3MgdmVyeSBhbHBoYSBjb2RlLgogICAKMjAwMS0xMi0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG5ldyBpbnN0cnVjdGlvbnMKICAgCjIwMDEtMTItMjEgMTA6MTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGRveHlnZW4uCiAgIAoyMDAxLTEyLTIxIDEwOjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgY29tcGlsZSBpbiBhZ2VudCBzcGVjaWZpYyBzdXBwb3J0IG1pYnMuCiAgIAoyMDAxLTEyLTIxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKHN0aWxsIGluY29tcGxldGUpIDJuZCB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0yMSAwOTo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChpbmNvbXBsZXRlKSB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0xOSAxNzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggcmVhbGxvYyBmbG9hdCBhbmQgZG91YmxlIGJ1aWxkcy4KICAgCjIwMDEtMTItMTkgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc2MgZml4ZXMuCiAgIAoyMDAxLTEyLTE5IDE2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRlZmluZSBhIEMgZGF0YXR5cGUgYXMgJHZhci5kZWNsIChwZXIgUm9iZXJ0J3Mgc3VnZ2VzdGlvbi4gIFJvYmVydDogd2UKICAgcHJvYmFibHkgd2FudCBwb2ludGVycyBmb3IgdGhpbmdzIGxpa2Ugc3RyaW5ncywgbm8/ICBtYXliZSBvbmUgdHlwZQogICB0aGF0IGlzIGFsd2F5cyBhIHBvaW50ZXIgYW5kIGFub3RoZXIgdGhhdCBpcyBzb21ldGltZXMgZGVwZW5kaW5nIG9uCiAgIHRoZSB0eXBlPykKICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICBjaGFuZ2UgZGVmYXVsdCBidWxrIG51bWJlciB0byAxMDAgZnJvbSB0aGUgcmlkaWN1bG91cyAxMDAwLgogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDEtMTItMTkgMDg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgZ2V0YnVsayB1cGRhdGVzIHRvIG1ha2UgaXQgdGhlIG1vZHVsZXMgcmVzcG9uc2liaWxpdHkgdG8gdXBkYXRlIHRoZQogICB2YXJiaW5kIGNoYWluIGFuIHRoZSByZXBlYXQgY291bnRlci4KICAgCjIwMDEtMTItMTkgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAosIGhlbHBlcnMvTWFrZWZpbGUuaW4sIGhlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgaGVscGVycy9hbGxfaGVscGVycy5oLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5oOgoKICAgR0VUQlVMSyBzdXBwb3J0IGZvciB0aGUgbmV3IEFQSS4KICAgICAtIG1heSBuZWVkIHRvIG1ha2Ugc29tZSBzbGlnaHQgbW9kaWZpY2F0aW9ucy4KICAgICAtIGRlZmF1bHRzIHRvIEdFVE5FWFQgZm9yIGFueSBoYW5kbGVyIHRoYXQgZG9lc24ndCBzZXQgSEFORExFUl9DQU5fR0VUQlVMSy4KICAgICAtIGRvZXNuJ3QgZGVhbCBwcm9wZXJseSB5ZXQgd2l0aCBlbmQtb2YtbWliIGNvbmRpdGlvbiByZW1vdmFsLgogICAKMjAwMS0xMi0xOSAwNjowNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgLXAgb3B0aW9uLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcyBvcHRpb25hbAogICAgICAgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSBkcm9wIChsb25nLWRlcHJlY2F0ZWQpIC1xIG9wdGlvbi4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIGFuZAogICAgICAgY2hhbmdlZCBkZXNjcmlwdGlvbiBvZiBzb21lIG9wdGlvbnMgdG8gYmUgbW9yZSBzaW1pbGFyIHRvIHNubXBkCiAgICAgICBvcHRpb25zICh3aGVyZSBhcHByb3ByaWF0ZSkuCiAgIAoyMDAxLTEyLTE5IDA0OjM4ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucy4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMKICAgICAgIG9wdGlvbmFsIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBwbHVzCiAgICAgICBtaW5vciBmb3JtYXR0aW5nIHR3ZWFrcy4KICAgCiAgICAgLSByZS13cml0dGVuIG9wdGlvbnMgcHJvY2Vzc2luZyBsb29wIHRvIHVzZSBvcHRhcmcoKS4KICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy41KSwgVUNELVNOTVAtTUlCLnR4dAo6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICB3YXJuaW5nIC0+IGRlYnVnLgogICAKMjAwMS0xMi0xNyAxMDoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIGdldE5leHQgcXVlcmllcyB3aGVyZSB0aGUgaW5pdGlhbCB2YXJiaW5kLT50eXBlIGlzCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFICh0aGVzZSBjdXJyZW50bHkgYXJpc2Ugb25seSBpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cyBidXQgdGhlIGhhbmRsaW5nIGlzIG5vdCBzcGVjaWZpYyB0byBBZ2VudFgpLgogICAKICAgICAgIEJhc2ljYWxseSB0aGlzIGlzIGRvbmUgYnkgcGVyZm9ybWluZyBhIEdFVCBmaXJzdCBvbiBhbGwgdGhlCiAgICAgICB2YXJpYWJsZXMgaW4gYSByZXF1ZXN0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGhhZCBhbiBpbml0aWFsIHR5cGUgb2YKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIHdlcmUgc2F0aXNmaWVkIGJ5IHRoaXMgaW5pdGlhbCBHRVQsIHdlIHVzZQogICAgICAgdGhpcyB2YWx1ZSBhcyB0aGUgcmVzdWx0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGRpZCBub3QgaGF2ZSBhbgogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UsIG9yIHZhcmlhYmxlIHRoYXQgaGFkIGFuZAogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UgYnV0IHdlcmUgbm90IHNhdGlzZmllZCBieSB0aGlzCiAgICAgICBHRVQgcmVxdWVzdCwgd2UgcHJvY2VlZCB0byBwZXJmb3JtIGEgR0VULU5FWFQgdHlwZSByZXF1ZXN0IGFzCiAgICAgICBub3JtYWwuCiAgIAoyMDAxLTEyLTE3IDEwOjA0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2ggZW11bGF0ZXMgb2xkCiAgICAgICBmdW5jdGlvbmFsaXR5LgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiByZWdpc3Rlcl9vbGRfYXBpKCkuCiAgIAoyMDAxLTEyLTE3IDA5OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGJvZ3VzIGluZGVudAogICAKMjAwMS0xMi0xNyAwOTozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcmlnaHQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVnaXN0ZXJfbWliX2NvbnRleHQyKCkgaW4KICAgICAgIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIGRpdHRvLgogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIGhhbmRsZXIgaW5qZWN0aW9uIG9yZGVyIChzZXJpYWxpemUgbmVlZHMgdG8gYmUgY2FsbGVkIGZpcnN0KQogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNoZWNrIGZvciBhbHJlYWR5IGFuc3dlcmVkIEFTTl9OVUxMcyBpbiBmaXJzdCBwYXNzLgogICAKMjAwMS0xMi0xMiAwOTozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiAuY3ZzaWdub3JlLCBJTlNUQUxMLCBNQU5JRkVTVAosIFJFQURNRSwgc25tcHNoOgoKICAgLSBkb2MgdXBkYXRlLgogICAtIHNubXBzaCBub3cgc3VwcG9ydHMgYWxpYXNlcyBzbyB5b3UgY2FuIGRlZmluZSBjb21tYW5kIHNldHMuCiAgIC0gc25tcHNoIG5vdyByZWFkcyBhIH4vLnNubXBzaHJjIGZpbGUgZm9yIHN0b3JpbmcgdGhlc2UgZGVmaW5lZCBhbGlhc2VzLgogICAKMjAwMS0xMi0xMiAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIG5ldyBmdW5jdGlvbiBqb2luX3N1YnRyZWUoKSB3aGljaCByZXBhaXJzICJwdW5jdHVyZWQiIHN1YnRyZWVzCiAgICAgICAodGhlc2UgYXJpc2UgaW4gcGFydGljdWxhciB3aGVuIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucyBhcmUKICAgICAgIHdpdGhkcmF3bikuCiAgIAogICAgIC0gY29weSByZWdpbmZvIHdoZW4gZG9pbmcgYSByYW5nZSByZWdpc3RyYXRpb24gKGFzIHdlIHVzZWQgdG8gZG8KICAgICAgIHdpdGggdGhlIHZhcmlhYmxlIHN0cnVjdHVyZSksIHNpbmNlIGVhY2ggbm9kZSBtdXN0IHN0YW5kIGFsb25lLgogICAKICAgICAtIGFkZCBwYXJhbWV0ZXIgdG8gcmVnaXN0ZXJfbWliX2NvbnRleHQyIHRvIGFsbG93IFJFR0lTVEVSX09JRAogICAgICAgY2FsbGJhY2tzIHRvIGJlIHdpdGhoZWxkIChmb3IgaW5zdGFuY2UsIHlvdSBuZWVkIHRoaXMgdG8gYXZvaWQKICAgICAgIGV4Y2VzcyBBZ2VudFggdHJhZmZpYyBmb3Igcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHJlbW92ZSByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgLS0gdGhpcyBoYXMgbW92ZWQgdG8gb2xkX2FwaS5jCiAgIAogICAgIC0gY2FsbCBqb2luX3N1YnRyZWUoKSBpbiB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpLgogICAKMjAwMS0xMi0xMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaGFuZGxlci5oOgoKICAgICAtIGFkZCBmdW5jdGlvbnMgc25tcF9oYW5kbGVyX2ZyZWUoKSwgc25tcF9oYW5kbGVyX2R1cCgpLAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9kdXAoKSBhbmQKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpLgogICAKMjAwMS0xMi0xMSAxODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggYnVnIHdoZXJlIHBkdS0+Y29udGV4dE5hbWUgaXMgTlVMTC4KICAgCjIwMDEtMTItMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQklUUzogaXBhZGRyIC0+IG9jdGV0X3N0cgogICAKMjAwMS0xMi0xMSAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc2VuZCBJTkNMVVNJVkUgc2VhcmNoIHJhbmdlcyBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0xMCAyMDo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIG5vYWNjZXNzIGZsYWcgZm9yIG5vdC1hY2Nlc3NpYmxlIG5vZGVzCiAgIAoyMDAxLTEyLTEwIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IENoYW5nZXMsIERCRF9BbnlEYXRhLnBhdGNoLAogICBGb3JtYXQucG0sIElOU1RBTEwsIE1BTklGRVNULCBNYWtlZmlsZS5QTCwKICAgU3RvcmFnZS5wbSwgc25tcHNoOgoKICAgRmlyc3QgdmVyc2lvbgogICAKMjAwMS0xMi0xMCAwMzoyMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCBhcmcgdG8gZHNfc2V0X3N0cmluZwogICAKMjAwMS0xMi0xMCAwMzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZGl0dG8gaW4gc2V0X3BlcnNpc3RlbnRfZGlyZWN0b3J5KCkKICAgCjIwMDEtMTItMTAgMDM6MTggIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGluIHNldF9jb25maWd1cmF0aW9uX2RpcmVjdG9yeSgpIGJlY2F1c2UKICAgICAgIGRzX3NldF9zdHJpbmcoKSBhbHJlYWR5IGRvZXMgdGhhdCBmb3IgeW91LgogICAKMjAwMS0xMi0wNyAwOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuaAosIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIC0gSW1wbGVtZW50IG5ldyBtYW50cmE6ICJhbHdheXMgcGFzcyBtb3JlIGluZm9ybWF0aW9uLCByYXRoZXIgdGhhbiBsZXNzIi4KICAgLSBmaXggdGFibGUgaXRlcmF0ZXIgR0VUTkVYVHMgZm9yIG1pc3NpbmcgZGF0YSBwb2ludHMuCiAgIC0gYWRkIGEgbmV3IGhvb2sgdG8gZnJlZSBsb29wIGNvbnRleHRzIGF0IHRoZSBlbmQgb2YgdGhlIGVudGlyZSBpdGVyYXRpb24uCiAgIAoyMDAxLTEyLTA2IDA2OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jIChKQlBOLUNCTC00LjEpLCBjbGllbnQuYzoKCiAgICAgLSBpZiByZXF1ZXN0IElEcyBkb24ndCBtYXRjaCwgdGhlbiBjYWxsIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkgLS0KICAgICAgIGNvcGVzIGJldHRlciB3aXRoIHVuZXhwZWN0ZWQgcGFja2V0cywgaW4gcGFydGljdWxhciBmaXhlcwogICAgICAgaW50ZXJtaXR0ZW50IGR1cGxpY2F0ZSB0cmFwIGlzc3VlIChkdWUgdG8gcmVzZW50CiAgIGFnZW50eC1Ob3RpZnktUERVKS4KICAgCjIwMDEtMTItMDUgMTM6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQWhlbS4gIE9wcHMuICBNaXNzaW5nIGluY2x1ZGVzLgogICAgIC0gbm90ZSB0byBzZWxmOiBjb21waWxlIGZpcnN0LCAqdGhlbiogY2hlY2sgaW4gY2hhbmdlcy4KICAgCjIwMDEtMTItMDUgMTM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgYWRkIGluIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBORVctQUdFTlQtQVBJIGJyYW5jaC4KICAgICAoYW5kIHRvIGFuc3dlciBSb2JlcnQncyBwZW5kaW5nIHF1ZXN0aW9uIG9mIHdoYXQgaGFwcGVuZWQsIGl0IHdhcwogICAgICBsaWtlbHkgb25lIG9mIHRoZSBmaWxlcyB0aGF0IGZhaWxlZCB0byBjb21taXQgb24gbXkgc2lkZSB0aGF0IHlvdQogICAgICB0cmllZCB0byBmaXggYW5kIHNvbWV3aGVyZSBiZXR3ZWVuIHRoZSB0d28gb2YgdXMgdGhlIGNoYW5nZXMgd2VyZSBsb3N0KS4KICAgCjIwMDEtMTItMDUgMTA6MDMgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtaW5vciB0d2Vha3MKICAgCjIwMDEtMTItMDUgMDk6MTQgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBhZGQgVENQL0lQdjYgZG9tYWluIHRvIEFHRU5UIFNQRUMgc2VjdGlvbgogICAKICAgICAtIGluY29ycG9yYXRlIHN1Z2dlc3Rpb25zIGZyb20gcnN0b3J5CiAgIAoyMDAxLTEyLTA1IDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgICAgLSB1c2UgU09DS19TVFJFQU0gbm90IFNPQ0tfREdSQU0gKGR1aCEpLiAgWW91IHdvdWxkbid0IGJlbGlldmUgaG93CiAgICAgICBjb25mdXNpbmcgdGhpcyB3YXMgLS0gZS5nLiBob3cgb24gKmVhcnRoKiBjYW4gdGhhdCBjb25uZWN0KCkgYmUKICAgICAgIHN1Y2NlZWRpbmchCiAgIAoyMDAxLTEyLTA1IDA4OjM2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2Ugc3VyZSB0byBjbG9zZSBzb2NrZXQgaWYgeW91IGNhbid0IG1hbGxvYyB0aGUgZW5jb2RlZCBmYXItZW5kCiAgICAgICBhZGRyZXNzIGluIHNubXBfdGNwX3RyYW5zcG9ydCgpCiAgIAoyMDAxLTEyLTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA4OjIzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUkVBRE1FLAogICBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBsb2NhbC9taWIyYywgbG9jYWwvdGttaWIKLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBwZXJsL1NOTVAvU05NUC5wbSwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyL3dpbjMyLmRzdywKICAgd2luMzIvd2luMzIub3B0LCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwCiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AKLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCjoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA3OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBmaXggYnVnIGluIGFkZHJlc3MgcGFyc2VyCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8sIGFoZW0sIG1ha2UgaXQgY29tcGlsZQogICAKMjAwMS0xMi0wNSAwNzo0MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBjb25kaXRpb25hbGlzZSAjaW5jbHVkZSA8ZmNudGwuaD4KICAgCjIwMDEtMTItMDUgMDc6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTEyLTA1IDA3OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBtZW50aW9uIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgaW4gY29uZmlnLCBhbmQgYWRkIGEgI2RlZmluZSBmb3IgaXQKICAgICAgIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBjYWxsIHNubXBfdGNwNl9jdG9yKCkgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmg6CgogICAgIC0gVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIFVudGVzdGVkLgogICAKMjAwMS0xMi0wNSAwNzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWFrZSBlbmNvZGVkIGFkZHJlc3NlcyBhdCB0cmFuc3BvcnQgb3BlbiB0aW1lCiAgIAoyMDAxLTEyLTA1IDA3OjE3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gbW92ZSAjZGVmaW5pdGlvbiBvZiBTTk1QX1NUUkVBTV9RVUVVRV9MRU4gZnJvbSBzbm1wVENQRG9tYWluLmMKICAgICAgIHRvIHNubXBfdHJhbnNwb3J0LmgKICAgCjIwMDEtMTItMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucyBsaWtlLCBvaCwgSSBkb24ndCBrbm93LCBnZXRTdGF0UHRyKCkuCiAgIAoyMDAxLTEyLTA1IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0xMi0wNSAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gY2hhbmdlZCB0ZXh0dWFsIGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMi0wNCAyMjo1MiAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeCBiaW5kIHBhcmFtZXRlcnMsIHNvIHRoYXQgdGhlIGFnZW50IHdvcmtzCiAgIAoyMDAxLTEyLTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgLSBtb3ZlIGZvcmdvdHRlbiBmdW5jdGlvbiB0eXBlZGVmcyB0byBpdGVyYXRvciBzcGVjaWZpYyBoZWFkZXIgZmlsZS4KICAgLSBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIGNhbGxiYWNrcyB0byBtYWtlIGZ1bmN0aW9ucyBtb3JlIHJldXNhYmxlLgogICAKMjAwMS0xMi0wNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIG1vdmUgaXRlcmF0b3Igc3BlY2lmaWMgdGFibGUgaW5mb3JtYXRpb24gaW50byBpdHMgb3duIHN0cnVjdHVyZS4KICAgCjIwMDEtMTItMDQgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIEZpeCBwcm90b3R5cGUgYXMgcG9pbnRlZCBvdXQgYnkgSmVyb21lIFBlZHVjYXNzZQogICAKMjAwMS0xMi0wNCAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1lbnRpb24gdGhhdCBub3QgYWxsIHRyYW5zcG9ydCBkb21haW5zIGFyZSBhbHdheXMgYXZhaWxhYmxlLgogICAKMjAwMS0xMi0wNCAwOTo1NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHJlbW92ZSAtcCBhbmQgLVQgb3B0aW9ucyBmcm9tIGRvY3VtZW50YXRpb24uCiAgIAogICAgIC0gYWRkIGxlbmd0aHkgbmV3IHNlY3Rpb24gZGVzY3JpYmluZyBuZXcgdHJhbnNwb3J0IGFkZHJlc3MKICAgICAgIHNwZWNpZmljYXRpb24gZm9ybWF0LCB3aXRoIGV4YW1wbGVzIGFuZCBldmVyeXRoaW5nIQogICAKMjAwMS0xMi0wNCAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMgZm9yIGFwcHMuCiAgIAoyMDAxLTEyLTA0IDAzOjEwICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIGFkZCBjcmVhdGVfb3N0cmluZyBtZXRob2QsIGV4cG9ydCB1Y2RTbm1wVURQSVB2NkRvbWFpbltdCiAgIAoyMDAxLTEyLTA0IDAyOjE5ICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBtZW50aW9uIElQdjYgdHJhbnNwb3J0IGRvbWFpbiBPSURzIGluIHJlbGV2YW50IGNvbW1lbnQuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBRdWVsbCBhIGNvbnN0IGNhc3Qgd2FybmluZy4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZGVidWcgb3V0cHV0IGZyb20gcmV0cmllcy4KICAgCjIwMDEtMTItMDMgMTU6MDYgIG5iYQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEhBVkVfU1lTX1RZUEVTX0ggaXMgbm90IGNvbmRpdGlvbmFsLgogICAKMjAwMS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYWxsb3cgY29tcGlsYXRpb25zIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeS4KICAgCjIwMDEtMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4ZXMgdG8gbWFrZSBVRFBJUHY2IHRyYW5zcG9ydCB3b3JrIGZvciBTb2xhcmlzLCBMaW51eCBhbmQgRnJlZUJTRC4KICAgSXQgY29tcGlsZXMsIGFuZCB0aGUgYXBwcyBzZW5kIHY2IHBhY2tldHMuIEFnZW50IG5vdCB5ZXQgdGVzdGVkLgogICAKMjAwMS0xMi0wMyAwOTo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYKOgoKICAgY29weSByb2JlcnRzIHNwaWZmeSBoZWFkZXIgdGV4dAogICAKMjAwMS0xMi0wMyAwODozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBkYXRlbnRpbWUgY29sdW1uLgogICAKMjAwMS0xMi0wMyAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHByb2JsZW0gd2l0aCBkb3VibGUgZGVsZWdhdGVkIHJlcXVlc3RzIGFmdGVyIGdldG5leHQgbG9vcC4KICAgCjIwMDEtMTItMDMgMDg6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dDoKCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliIGFkZGVkIHRvIGRlZmF1bHQgbGlzdC4KICAgCjIwMDEtMTItMDMgMDU6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGRlYnVnZ2luZyBvdXRwdXQgKCJibGFoIikKICAgCjIwMDEtMTEtMzAgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAo6CgogICBDaGFuZ2UgaG93IHJlcXVlc3QgcHJvY2Vzc2luZyBnZXRzIGRvbmUgc3VjaCB0aGF0IHJlcXVlc3Qgb2JqZWN0cyBhcmUKICAgYWxsIGNhbGxvY2VkIGF0IG9uY2UgYW5kIGdldCByZXVzZWQgaW5zdGVhZCBvZiByZWFsbG9jYXRlZC4gIEJpZyBzcGVlZAogICBpbXByb3ZlbWVudHMuCiAgIAoyMDAxLTExLTMwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgIm1ha2UgZG9jIiB0byBydW4gZG94eWdlbi4KICAgCjIwMDEtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMsIG11bHRpcGxleGVyLmg6CgogICBkb3h5Z2VuIGZpeGVzCiAgIAoyMDAxLTExLTMwIDA5OjI2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSBpbiByZWdpc3Rlcl9oYW5kbGVyKCkgaWYgYXBwcm9wcmlhdGUuCiAgIAoyMDAxLTExLTMwIDA5OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKSB3aGVuIHN1YmFnZW50IHRyaWVzIHRvCiAgICAgICByZWdpc3RlciBhIE1JQiByZWdpb24gdGhhdCBmYWlscyBlaXRoZXIgYmVjYXVzZSBpdCBpcyBhIGR1cGxpY2F0ZQogICAgICAgb3IgYmVjYXVzZSBvZiBzb21lIG90aGVyIHJlYXNvbi4KICAgCjIwMDEtMTEtMzAgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIG9mIG9sZF9pbmZvICh0aGF0IG5ldmVyIHNlZW1zIHRvIGdldCB1c2VkIGZvcgogICAgICAgYW55dGhpbmcgYW55d2F5PykKICAgCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgdGhhdCBhcmlzZXMgZHVyaW5nIHJvdyByZWdpc3RyYXRpb24gKGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzKSBiZWNhdXNlIHN1Y2Nlc3NpdmUgdmFycyBjYXVzZSBhcHBhcmVudCBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMgKHRoaXMgaXMgYSBkZWZpY2llbmN5KSAtLSBidXQgaXQgd291bGQgYXBwZWFyIHRoaXMKICAgICAgIGNvdWxkIGFyaXNlIGluIG90aGVyIHNpdHVhdGlvbnMgdG9vIChnZW51aW5lIGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucykuCiAgIAoyMDAxLTExLTMwIDA2OjMzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBmaXggYnJva2VuIHBhcnNpbmcgaW4gc25tcGRfcGFyc2VfY29uZmlnX3RyYXBzZXNzKCkgLS0gbG9vcCB3YXMKICAgICAgIGNvcHlpbmcgdGhlIHNhbWUgKGZpcnN0KSB0b2tlbiBNQVhfQVJHUyB0aW1lcy4KICAgCiAgICAgLSBlbGltaW5hdGUgbWVtb3J5IGxlYWsgaW4gZGl0dG8uCiAgIAogICAgIC0gZml4IHR5cG8gKCJQYXVzaWJsZSBjYXVzZSIgLT4gIlBvc3NpYmxlIGNhdXNlKSBpbiBkaXR0by4KICAgCjIwMDEtMTEtMzAgMDY6MjkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHByaW50IGZkIGluIHNlc3NfcHJvY2Vzc19wYWNrZXQoKSAtLSB1c2VmdWwgZm9yIGRlYnVnZ2luZwogICAKMjAwMS0xMS0zMCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgICAtIHJlbW92ZSBhIGNvdXBsZSBvZiB1bm5lY2Vzc2FyeSAjaW5jbHVkZXMgZnJvbSBzbm1wQ2FsbGJhY2tEb21haW4uaAogICAKICAgICAtIHNldCAqb3BhcXVlIHRvIE5VTEwgYWZ0ZXIgd2UgZnJlZSBpdCAtLSBpdCBtaWdodCBtYXR0ZXIuCiAgIAoyMDAxLTExLTMwIDAzOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGNsb25lIFBEVSBpbiBoYW5kbGVfYWdlbnR4X3N1YmFnZW50KCkgYmVmb3JlIHNlbmRpbmcgaXQgb24gY2FsbGJhY2sKICAgICAgIHNlc3Npb24gdG8gYXZvaWQgZG91YmxlIGZyZWUoKSBhbmQgZnJlZSgpZCBtZW1vcnkgcmVhZHMuCiAgIAogICAgIC0gbW9yZSBjb25jaXNlIChhaGVtKSBkZWNsYXJhdGlvbiBvZiBteWNhbGxiYWNrIGluIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkuCiAgIAoyMDAxLTExLTI5IDA1OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBwdXQgc2Vzc2lvbiBhbmQgc3Vic2Vzc2lvbiBpbiBzdWJhZ2VudCBkZXNjcmlwdGlvbiAoaGVscGZ1bCBmb3IKICAgICAgIGRlYnVnZ2luZykKICAgCjIwMDEtMTEtMjkgMDU6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggSU5TVEFMTEhFQURFUlMKICAgCjIwMDEtMTEtMjkgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIHNvbWUgZGVidWdnaW5nIHRvIGluaXRfc3ViYWdlbnQoKSAod2hpY2ggc2hvd2VkIHRoYXQgaXQgd2Fzbid0CiAgICAgICBiZWluZyBjYWxsZWQsIHNvLi4uKS4KICAgCiAgICAgLSBmaXggY2FzdCBpbiBoYW5kbGVfc3ViYWdlbnRfc2V0X3Jlc3BvbnNlKCkKICAgCjIwMDEtMTEtMjkgMDU6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWFrZSBzdXJlIGluaXRfc3ViYWdlbnQoKSBnZXRzIGNhbGxlZAogICAKMjAwMS0xMS0yOCAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNoZWNrIGZvciBzZXNzaW9uIHJlZ2lzdHJhdGlvbnMgaW4gYWxsIGNvbnRleHRzLgogICAKMjAwMS0xMS0yOCAwNjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBBZGQgc3lzL3R5cGVzLmggZm9yIGJ1ZyAjNDg2Mjc3LgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgICAgLSAjaW5jbHVkZSA8bmV0ZGIuaD4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGluc3RhbGwgc25tcF90cmFuc3BvcnQuaCBhbmQgc25tcCpEb21haW4uaCAoZm9yIHRoZSBjb25maWd1cmVkCiAgICAgICB0cmFuc3BvcnQgZG9tYWlucykKICAgCjIwMDEtMTEtMjggMDM6MjkgIGpicG4KCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgICAtIHJldmVyc2UgbXlzdGVyeSByZW1vdmFsIG9mICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGFuZCAjaW5jbHVkZQogICA8c3lzL3RpbWUuaD4KICAgCjIwMDEtMTEtMjcgMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBtb3JlIGludGVsbGlnZW50bHkgYWxsb2NhdGUgdHJlZSBzcGFjZSBiYXNlZCBvbiBudW1iZXIgb2YgdmFyYmluZHMgaW4gcmVxdWVzdC4KICAgCjIwMDEtMTEtMjcgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBtYWxsb2Mgb25lIGxhcmdlIHRyZWVfY2FjaGUgYXJyYXkgcmF0aGVyIHRoYW4gYW4gYXJyYXkgb2YgdHJlZV9jYWNoZSBwb2ludGVycy4KICAgCjIwMDEtMTEtMjcgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGluY2x1ZGUgZmlsZSBuYW1lIGNoYW5nZS4KICAgCjIwMDEtMTEtMjcgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvbW1lbnQgY2hhbmdlcy4KICAgCjIwMDEtMTEtMjcgMDc6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXhlZCBNYWtlZmlsZSBmb3Igc25tcHRyYXBkLgogICAKMjAwMS0xMS0yNyAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluLCBhbGxfaGVscGVycy5jLAogICBhbGxfaGVscGVycy5oLCBkZWJ1Z19oYW5kbGVyLmMsIGRlYnVnX2hhbmRsZXIuaDoKCiAgIGRlYnVnIGhhbmRsZXIgY3JlYXRlZCBmb3IgaW5zZXJ0aW5nIGRlYnVnZ2luZyBvdXRwdXQgaW50byB0aGUgY2FsbGluZyBjaGFpbi4KICAgCjIwMDEtMTEtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGVudW0gZGVmaW5pdGlvbnMgZm9yIG1vZGVzIGFuZCBjYW5fbW9kZXMuCiAgIAoyMDAxLTExLTI2IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgUERVIHZhcmlhYmxlIHRvIE5VTEwgdG8gYXZvaWQgZnJlZWluZyBpdCB0d2ljZS4KICAgCjIwMDEtMTEtMjYgMTE6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBwbHVnIGFub3RoZXIgbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQsCiAgIFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVMsCiAgIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTLAogICBUMDI4c25tcHYzZ2V0ZmFpbCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAKLCBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMTEwYWdlbnR4Z2V0LAogICBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbCwgVDExM2FnZW50eHRyYXAsCiAgIFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsOgoKICAgZG9uJ3QgdXNlIGNvbnRleHRzIGluIHRlc3RzLgogICAKMjAwMS0xMS0yNiAwODo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpeCBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYywgYWdlbnR4L21hc3Rlci5jLAogICB1Y2Qtc25tcC9wcm94eS5jOgoKICAgdXNlIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgdG8gcGx1ZyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTExLTI2IDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaGFuZGxlci5oOgoKICAgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSByb3V0aW5lCiAgIAoyMDAxLTExLTI2IDA4OjE5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIHRoZSBhYmlsaXR5IHRvIGxpc3RlbiBmb3IgdHJhcHMgb24gbXVsdGlwbGUgdHJhbnNwb3J0cyB2aWEgdGhlCiAgICAgICAtcCBvcHRpb24gKGNvbnNpc3RlbnQgd2l0aCBzbm1wZCkuCiAgIAoyMDAxLTExLTI2IDA1OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3RyYW5zcG9ydF9vaWQoKSB0byBkbyBzZXNzaW9uIGNyZWF0aW9uIGZyb20KICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLCB0byBhbGxvdyBjcmVhdGlvbiBvZgogICAgICAgbm9uLUlQdjQgc2Vzc2lvbnMgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4KICAgCjIwMDEtMTEtMjYgMDQ6NDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGluZyBhIHRyYW5zcG9ydCBmcm9tIGEKICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLgogICAKMjAwMS0xMS0yNiAwMzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSB0cmFuc3BvcnQgZG9tYWluCiAgICAgICBpcyBzdXBwb3J0ZWQuCiAgIAoyMDAxLTExLTIzIDEwOjI0ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIG11bHRpcGxlIHRyYW5zcG9ydCBkb21haW4gc3VwcG9ydCBmb3IgdHJhcGQgLS0gdGhpcyB3YXMgcmVhbGx5CiAgICAgICBSRUFMTFkgZWFzeSEKICAgCjIwMDEtMTEtMjMgMDk6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGZ1bmN0aW9uIHNubXBfdHJhbnNwb3J0X3N1cHBvcnQoKSAocmVwbGFjZWQgd2l0aAogICAgICAgc25tcF90ZG9tYWluX3N1cHBvcnQoKSkuCiAgIAoyMDAxLTExLTIzIDA4OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYzoKCiAgICAgLSB1c2UgbmV0d29yayBvcmRlciBmb3IgQUFMNVBWQyB0cmFuc3BvcnQgYWRkcmVzcyBlbmNvZGluZwogICAKMjAwMS0xMS0yMyAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIHNldCBsb2NhbF9sZW5ndGgsIHJlbW90ZV9sZW5ndGggYXMgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTEtMjMgMDg6MzkgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMS0yMyAwODozNCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIG1ha2UgdHJhcHMgd29yayB3aXRoIG5ldy1zdHlsZSBhZGRyZXNzZXMsIHVzZSBkb21haW4tYmFzZWQgYWRkcmVzcwogICAgICAgZW5jb2RpbmdzIGluIHNubXBUYXJnZXRBZGRyVGFibGUuICBOb3RlIHlvdSBjYW4gbm93IHNlbmQgdHJhcHMvaW5mb3JtcwogICAgICAgb3ZlciBhbnkgc3VwcG9ydGVkIHRyYW5zcG9ydCB0eXBlIGJ5IHVzaW5nIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUgYW5kCiAgICAgICBhIHRyYW5zcG9ydDphZGRyZXNzIHR5cGUgc3BlY2lmaWNhdGlvbi4KICAgCjIwMDEtMTEtMjMgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgICAtIGNyZWF0ZSBhcHByb3ByaWF0ZWx5LWVuY29kZWQgbG9jYWwgb3IgcmVtb3RlIGVuZHBvaW50IGFkZHJlc3NlcyBhdAogICAgICAgdHJhbnNwb3J0IG9wZW4gdGltZS4KICAgCjIwMDEtMTEtMjMgMDY6NTAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSB1cGRhdGUgZGVwZW5kZW5jaWVzIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTIyIDA5OjA4ICBqYnBuCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsCiAgIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLCB0ZXN0cy9UMDE0c25tcHYyY2dldCwKICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwKLCB0ZXN0cy9UMDIwc25tcHYzZ2V0LCB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgIHRlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCB0ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCB0ZXN0cy9UMDUwc25tcHYzdHJhcCwKICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLAogICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0cy9UMTAwYWdlbnRodXAsCiAgIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0cy9UMTIxcHJveHlzZXQsCiAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICAgIC0gdXNlIHVkcDo8aG9zdG5hbWU+Ojxwb3J0PiBpbnN0ZWFkIG9mIC1wIHRvIG1ha2UgdGVzdHMgd29yayBhZ2FpbgogICAKMjAwMS0xMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYywgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgbW9yayB3b3JlIG9uIHRoZSBub3RpZmljYXRpb24gbG9nIG1pYi4gIEl0IG5vdyBzdXBwb3J0cyB2YXJpYWJsZQogICBzdG9yYWdlLCBidXQgc2VnZmF1bHRzIG9uIGFjY2VzcyBkdWUgdG8gcGR1IGNsb25pbmcgcHJvYmxlbXMgSSdtIG5vdAogICBnb2luZyB0byB3b3JrIG91dCByaWdodCBub3cuCiAgIAoyMDAxLTExLTIxIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IHNubXB0cmFwZCBsaW5raW5nLgogICAKMjAwMS0xMS0yMSAyMjo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBPSURfTEVOR1RIOyB1c2UgYWN0dWFsIG9pZCB0eXBlIGluIGNhbGN1bGF0aW9uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYWRkIE5VTEwgcG9pbnRlciBmb3IgcmJ1aWxkIGluIHNlc3Npb24gY3JlYXRpb24uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwo6CgogICBuZXRpbmV0L2luLmggbmVlZGVkLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB2YXJpYWJsZSBjbGVhbiB1cHMuCiAgIAoyMDAxLTExLTIxIDIyOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBsb2NhbC9taWIyYywKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBwZXJsL1NOTVAvU05NUC54cywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgc25tcGxpYi92YWNtLmMKOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIyOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi86IHZhY20uaCwgYXNuMS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQzICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jLCBvaWRfYXJyYXkuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgZGF0YV9saXN0Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMTg6NTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHZlcnNpb24uaCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmgsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmgsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZS5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgKLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDA2OjQzICBqYnBuCgogICAqIGNvbmZpZy5oLmluOgoKICAgICAtIElQdjYgY29uZmlnIGRlZnMKICAgCjIwMDEtMTEtMjEgMDY6MzYgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1leHRyYW5lb3VzICNpbmNsdWRlICJzbm1wQmxhaERvbWFpbi5oIiBsaW5lcwogICAKMjAwMS0xMS0yMSAwMzozOSAgamJwbgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTExLTIwIDA5OjM4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMsIHNubXBJUFhEb21haW4uaDoKCiAgICAgLSBkdWguICBGb3Jnb3QgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIGRvIHdpdGggZG9tYWluLWJhc2VkIHRyYW5zcG9ydAogICAgICAgYWRkcmVzcyBwYXJzaW5nLgogICAKMjAwMS0xMS0yMCAwOToyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIG5ldyBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZyBmb3IgYWdlbnQgTlNBUHMKICAgCjIwMDEtMTEtMjAgMDk6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmgKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBEb21haW4uaCwKICAgc25tcFVuaXhEb21haW4uYywgc25tcFVuaXhEb21haW4uaCwgc25tcF9hcGkuYywKICAgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMS0yMCAwOToxNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBVRFAvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgTm90ZTogaW5jb21wbGV0ZSEKICAgCjIwMDEtMTEtMjAgMDg6MjkgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIHVucmVnaXN0ZXJfe3N0cmluZyxpbnQsb2lkfV9pbmRleCgpIHV0aWxpdHkgZnVuY3Rpb25zIGNvbnRyaWJ1dGVkCiAgICAgICBieSBEYW1pYW4gR2lsbXVycmF5LgogICAKMjAwMS0xMS0yMCAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMTY6NTkgIGRyaWVodWlzCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IHR5cG8gaW4gY29tbWVudCBba2FybGhlZ0BtaWNyb3NoYXJwLmNvbV0KICAgCjIwMDEtMTEtMTYgMDg6MzQgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjQtMi1wYXRjaGVzLjUpLCBwcm90b2NvbC5jCjoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBpZiB2YWx1ZSBpcwogICAgICAgY29uZmlndXJlZCB2aWEgdGhlIGF1dGh0cmFwZW5hYmxlIHRva2VuCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgICAtIG1ha2UgdmFsdWUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgcGVyc2lzdGVudC4gIFNldHRpbmcgdmlhCiAgICAgICBhIHJlYWQtb25seSBjb25maWd1cmF0aW9uIGZpbGUgYWxzbyBtYWtlcyBvYmplY3Qgbm90V3JpdGFibGUgKGFzCiAgICAgICBzeXNDb250YWN0LjAgZXQgYWwuKS4KICAgCjIwMDEtMTEtMTUgMDY6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gbGV0IFZBQ00gY2hlY2tzIHN1Y2NlZWQgZm9yIG5vbi1JUHY0IHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMTUgMDU6MTkgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgICAgLSB1c2UgcHN5c2NvbnRhY3Qgbm90IHN5c2NvbnRhY3QgdG8gc2V0IGluaXRpYWwgdmFsdWUgb2Ygc3lzQ29udGFjdC4wCiAgICAgICBvYmplY3Qgc2luY2UgdGhlIGxhdHRlciBhbHNvIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LgogICAKMjAwMS0xMS0xNSAwNTowNyAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE1IDA0OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgInNubXBkLmgiIChmb3IgI2RlZmluaXRpb24gb2YgTUFTVEVSX0FHRU5UKQogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgYWdlbnR4c29ja2V0IHZhbHVlIC0tIGRzX3NldF9zdHJpbmcgZG9lcyBpdCBmb3IgeW91CiAgICAgLSBjaGFuZ2UgZGVidWdnaW5nIHRvIGZpdCBpbiBiZXR0ZXIgd2l0aCByZXN0IG9mIG1vZHVsZQogICAKMjAwMS0xMS0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bNyw3XSksIGNvbmZpZy5oLmluCiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmMsIGFnZW50eF9jb25maWcuaAosIG1hc3Rlci5jLCBtYXN0ZXIuaCwgc3ViYWdlbnQuaDoKCiAgIHNsaWdodGx5IG1vZGlmaWVkIHBhdGNoIGZyb20gSGFycmllIHRvIG1vdmUgYWdlbnR4IGNvbmZpZ3VyYXRpb24gaW50bwogICBhIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBmaWxlIE5FVC1TTk1QLUFHRU5ULU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmg6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDA1OjI5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEzIDA0OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSB1c2UgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hlbiBhcHByb3ByaWF0ZSBpbgogICAgICAgdW5yZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKMjAwMS0xMS0xMyAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHJlc2V0IHZyLT5uYW1lbGVuIHdoZW4gd2UndmUgZmluaXNoZWQgd2l0aCBpdAogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgZmlsZSBhbGxfaGVscGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBmaWxlIGFsbF9oZWxwZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMDggMDg6MDkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBiZXR0ZXIgaW1wbGVtZW50YXRpb24gb2YgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCksIHdoaWNoIHVzZXMKICAgICAgIHJhbmdlcyBwcm9wZXJseSBpbiB0aGUgY2FsbGJhY2sgKGhlbmNlIG11Y2ggbW9yZSBlZmZpY2llbnQgZm9yCiAgICAgICBBZ2VudFgpLgogICAKMjAwMS0xMS0wNyAwOTo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgbm93LXJlZHVuZGFudCBhZ2VudHhfYnVpbGQgZnVuY3Rpb25zCiAgIAoyMDAxLTExLTA3IDA2OjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBtYXN0ZXJfYWRtaW4uYywKICAgcHJvdG9jb2wuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSgpIGluIGEgY291cGxlIG9mIHBsYWNlcyBmb3IgbW9yZSBjb21wcmVoZW5zaXZlCiAgICAgICBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKICAgICAtIHBhcnNlIHVucmVnaXN0ZXIgcmFuZ2VzIHByb3Blcmx5LCBhbmQgdXNlIHRoZSByYW5nZSBwcm9wZXJseSBmb3IKICAgICAgIHBhc3NpbmcgdG8gdW5yZWdpc3Rlcl9taWJfY29udGV4dCgpLgogICAKMjAwMS0xMS0wNyAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHU01TR09JRFJBTkdFKCkgbWFjcm8gZm9yIGRlYnVnZ2luZyBPSUQgcmFuZ2VzCiAgIAoyMDAxLTExLTA2IDA2OjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHJlc2V0IHRoZSBpbmNsdXNpdmUgZmxhZyBpbiBhIGNvdXBsZSBvZiBjYXNlcywgdG8gcHJldmVudCBzcHVyaW91cwogICAgICAgSU5DTFVTSVZFIGdldE5leHQgYmVoYXZpb3VyCiAgIAoyMDAxLTExLTA1IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGNvcnJlY3QgYnVnIGluIHJhbmdlX3N1YmlkIHR3ZWFrIGNvZGUKICAgCjIwMDEtMTEtMDUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjYWxjdWxhdGUgdXBwZXIgYm91bmQgZm9yIHRhYmxlIHJvdyByZWdpc3RyYXRpb25zIHNsaWdodGx5IGRpZmZlcmVudGx5CiAgIAoyMDAxLTExLTAxIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBwcm90b2NvbC5jLAogICBwcm90b2NvbC5oLCBzdWJhZ2VudC5jOgoKICAgICAtIGltcGxlbWVudCByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIGFnZW50eF9idWlsZCgpIHJvdXRpbmVzLAogICAgICAgYW5kIHVzZSB0aGVtLgogICAKMjAwMS0xMS0wMSAwOTozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgICAgLSBzdXBwb3J0IGZvciByZWxvY2F0YWJsZSBidWZmZXIgYnVpbGQgY2FsbGJhY2tzIHZpYSBvcGVuX2V4IGNhbGxzCiAgIAoyMDAxLTEwLTMwIDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBmaXggYnVnIHdoZXJlYnkgaW50ZXJmYWNlIGNvdW50ZXIgaXMgbm90IHJlc2V0LCBub3RlZCBieSAoYW1vbmdzdAogICAgICAgb3RoZXJzKSBWaWN0b3IgS2lyaGVuc2h0ZWluIGluIHBhdGNoICM0NzQwNjQuCiAgIAoyMDAxLTEwLTMwIDAzOjI0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHRoZSBpbml0aWFsIGJ1ZmZlciBzaXplIDIwNDggaW4gc25tcF9yZXNlbmRfcmVxdWVzdCAoYXMgaW4KICAgICAgIF9zZXNzX2FzeW5jX3NlbmQpIHRvIG1ha2Ugc3VjY2Vzcy9mYWlsIGJlaGF2aW91ciBmb3IgQWdlbnRYIG1vcmUKICAgICAgIHByZWRpY3RhYmxlIChzaW5jZSBBZ2VudFggU1RJTEwgZG9lc24ndCB1c2UgcmVsb2NhdGluZyBidWZmZXJzLAogICAgICAgYm9vIGhpc3MpLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktdXNlci5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS1hdXRvLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBmaWxlIHRhYmxlX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5Lmg6CgogICBmaWxlIHRhYmxlX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5oOgoKICAgZmlsZSBvaWRfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaWxlIG9pZF9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI2IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggZnVuY3Rpb24gbmFtZSBpbiBlcnJvciBtZXNzYWdlCiAgIAoyMDAxLTEwLTI2IDA2OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAgICAtIGFkZCBzdXBwb3J0IGZvciByeCBhbmQgdHggZHJvcCBjb3VudHMgKGlmSW5EaXNjYXJkcyBhbmQKICAgICAgICBpZk91dERpc2NhcmRzKSBmb3IgTGludXggKDIuMispCiAgIAoyMDAxLTEwLTI2IDA1OjU3ICBqYnBuCgogICAqIGFjbG9jYWwubTQ6CgogICAgIC0gYWRkIGlmX2lxZHJvcHMgbWVtYmVyIHRvIHN0cnVjdCBpZm5ldAogICAKMjAwMS0xMC0yNiAwNDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gYWRkIHRyYW5zbGF0aW9uIGZvciBhdG0oMzcpIHR5cGUgaW50ZXJmYWNlcyBmb3IgTGludXgKICAgCjIwMDEtMTAtMjYgMDM6NDMgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgdGhlIGZhY3QgdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uLjAgKGV0IGFsLikgdmlhIGEKICAgICAgIHN5c2xvY2F0aW9uIChvciBlcXVpdmFsZW50KSB0b2tlbiBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seSwKICAgICAgIHJldHVybmluZyBhIG5vdFdyaXRhYmxlIGVycm9yIHJlc3BvbnNlIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0bwogICAgICAgU0VUIGl0LgogICAKMjAwMS0xMC0yNCAxMDowNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjQpLAogICBzeXN0ZW1fbWliLmM6CgogICAgIC0gZml4IHR5cG8gbm90ZWQgYnkgVGltIERpZXR6CiAgIAoyMDAxLTEwLTI0IDA4OjQzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaHJfc3dpbnN0LmMKOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayBqdXN0IGludHJvZHVjZWQKICAgCjIwMDEtMTAtMjQgMDM6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSB1c2UgcGtnaW5mbyBpbnRlcmZhY2UgdG8gZGV0ZXJtaW5lIHR5cGUgb2Ygc29mdHdhcmUgcGFja2FnZSBtb3JlCiAgICAgICBzcGVjaWZpY2FsbHkgaWYgcG9zc2libGUuICBTbGlnaHQgdmFyaWF0aW9uIG9uIHBhdGNoICM0NzM2NjksIHN1Ym1pdHRlZAogICAgICAgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDEtMTAtMjQgMDM6MzggIGpicG4KCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yMSAwNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZmlsZSBtaWIyYy5pdGVyYXRlLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBmaWxlIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTE1IDA2OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgICAgLSB6ZXJvIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZXMuICBIb3BlZnVsbHkgZml4ZXMgcHJvYmxlbXMgb24gTmV0QlNECiAgICAgICBub3RlZCBieSBKb2FraW0gQWx0aGluaSAocmVsYXRlZCB0byBzYV9sZW4gbWVtYmVyIHByb2JhYmx5Pz8pLgogICAKMjAwMS0xMC0xMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPcHBzZXMuCiAgIAoyMDAxLTEwLTExIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcF9lcnJvci4zLAogICBtYW4vc25tcF9wZXJyb3IuMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywKICAgbWFuL3NubXBjbWQuMSwgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1hbi9zbm1wc2V0LjEsIG1hbi9zbm1wdHJhbnNsYXRlLjEsCiAgIG1hbi9zbm1wdHJhcGQuOCwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLAogICBtYW4vc25tcHdhbGsuMSwgbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL01ha2VmaWxlLm1pYiwKICAgbWlicy9SRUFETUUubWlicywgbWlicy9TTVVYLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgbWlicy9taWJmZXRjaCwgbWlicy9yZmNsaXN0CiwgbWlicy9zbWlzdHJpcCwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9pbnQ2NC5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL210X3N1cHBvcnQuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jCiwgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCB0ZXN0aW5nL01ha2VmaWxlLmluCiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTExIDE0OjAxICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBDaGFuZ2VMb2csIEZBUSwgTWFrZWZpbGUuaW4sCiAgIE5FV1MsIFJFQURNRSwgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gKLCBtYWtlZmlsZWluZGVwZW5kLnBsLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL21pYjJjLmNvbmYsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsCiAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QsIGxvY2FsL3RrbWliOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0wOSAwNzoxNCAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBTb21ldGltZXMgd2UgZmVlbCBsaWtlIGEgLW51dAogICAKMjAwMS0xMC0wOSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHByb3Blcmx5IGFjY291bnQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHN1ZmZpeCBpbiB0aGUgdmFyaWFibGUKICAgICAgIHRhYmxlIGluIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKMjAwMS0xMC0wOCAwODo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gZGVjbGFyZSB2ZXJzaW9uX3N5c29pZF9sZW4gYXMgZXh0ZXJuIElOVCBub3QgZXh0ZXJuIG9pZCwgc28gYXMgdG8KICAgICAgIG1hdGNoIGl0cyBhY3R1YWwgZGVmaW5pdGlvbiBpbiBzeXRlbV9taWIuYy4gIFRoaXMgY2F1c2VkIGFsbCBraW5kcyBvZgogICAgICAgZnVuICYgZ2FtZXMgb24gTGludXggb24gYSBBbHBoYS4KICAgCjIwMDEtMTAtMDQgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHNubXBfY2FsbGJhY2tfbGlzdCgpIHRvIHJldHVybiBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgYQogICAgICAgZ2l2ZW4gPG1ham9yLCBtaW5vcj4gcGFpci4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6CgogICBmaWxlIHBhc3NfcGVyc2lzdHRlc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0xMC0wMyAwNTo0MiAgamJwbgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAgIC0gY2hhbmdlIGV4cHJlc3Npb24gYXQgbC4gNDE1IGZyb206CiAgIAogICAgICAgICAgICprY3N0cmluZysrID0gKmtjc3RyaW5nIF4gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGhhcyB1bmRlZmluZWQgYmVoYXZpb3VyIHRvOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyBePSAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaXMgb2theSAoc2luY2UgKmtjc3RyaW5nIGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UpLiAgU2ltaWxhcmx5CiAgICAgICBhdCBsLiA1MzAuICBUaGUgcHJldmlvdXMgY29uc3RydWN0cyBjYXVzZSB3YXJuaW5ncyB3aXRoIEdDQzMgYW5kCiAgICAgICBzb21lIG90aGVyIGNvbXBpbGVycy4gIFRoYW5rcyB0byBOaWVsIE1hcmt3aWNrIHdobyBub3RlZCB0aGlzIGluCiAgICAgICBidWcgIzQ2NTk2OS4KICAgCjIwMDEtMTAtMDMgMDM6MTEgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBkbyBTTk1QRF9DQUxMQkFDS19VTlJFR0lTVEVSX09JRCBjYWxsYmFja3MgaW4KICAgICAgIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkgLS0gY2FsbGVkIHdoZW4gQWdlbnRYIHN1YmFnZW50cwogICAgICAgZGlzYXBwZWFyLgogICAKMjAwMS0xMC0wMiAwNjowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkb24ndCBzZW5kIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIEFTTl9QUklWX0VYQ0xfUkFOR0Ugb24tdGhlLXdpcmUKICAgCjIwMDEtMDktMjYgMDg6MDMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBhbGxvdyBzcGxpdF9zdWJ0cmVlKCkgdG8gZG8gYSBzcGxpdCBpbiB0aGUgbWlkZGxlIG9mIGEgY29sdW1uLAogICAgICAga2VlcGluZyB0aGUgcmVsZXZhbnQgdmFyaWFibGUgaW4gYm90aCB0aGUgb2xkIHRyZWUgYW5kIHRoZSBuZXcKICAgICAgIHRyZWUgKGFyaXNlcyBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHBhdGNoIGZyb20gRGFtaWFuIEdpbG11cnJheSBmb3IgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoCiAgICAgICBhbGxvd3MgaXQgdG8gY29wZSB3aXRoIG5vbi16ZXJvIGxlbmd0aCB2YXJpYWJsZXMgYW5kIGFsc28KICAgICAgIG5vbi1jb250aWd1b3VzIE9JRHMgZm9yIGFkamFjZW50IGNvbHVtbnMuCiAgIAogICAgIC0gcmV3cml0dGVuIGR1bXBfcmVnaXN0cnkoKSB0aGF0IHVzZXMgcmVhbGxvY2F0aW5nIHByaW50IGZ1bmN0aW9ucwogICAgICAgYW5kIGFsc28gcHJpbnRzIG91dCB2YXJpYWJsZSBsaXN0cy4KICAgCjIwMDEtMDktMjYgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWJ0cmVlIG5hbWUgYmVpbmcgbG9uZ2VyIHRoYW4KICAgICAgIHJlcXVlc3RlZCBuYW1lIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHN1ZmZpeCBmb3IgdmFyaWFibGUgbWF0Y2hpbmcuCiAgIAogICAgIC0gYmUgc3RyaWN0IGFib3V0IHN1YnRyZWUgY2h1bmtzIGJlaW5nIGluY2x1c2l2ZSBvZiB0aGUgc3RhcnQgT0lECiAgICAgICBhbmQgZXhjbHVzaXZlIG9mIHRoZSBlbmQgT0lEIChzaG93cyB1cCBiaWcgdGltZSBpbiBBZ2VudFgpLgogICAKMjAwMS0wOS0yNiAwNzoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBkb24ndCBkbyBnZXROZXh0IHJlcXVlc3RzIG9uIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZXMgdGhhdCBiZWdpbiBpbgogICAgICAgYSB0cmVlIG1hcmtlZCBhcyBhIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSAodGhleSBhcmUgZG9vbWVkIHRvCiAgICAgICBmYWlsKS4gIFNraXAgdG8gdGhlIG5leHQgcGFydCBvZiB0aGUgdHJlZSBzdHJhaWdodCBhd2F5LgogICAKMjAwMS0wOS0yNiAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gYnJpbmcgZGVidWdnaW5nIHRva2VucyBpbnRvIGxpbmUgd2l0aCByZXN0IG9mIEFnZW50WCBjb2RlCiAgIAoyMDAxLTA5LTI1IDA4OjE1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhIG1pc3Npbmcgc3BhY2UgY2hhcmFjdGVyCiAgIAoyMDAxLTA5LTI1IDAzOjU4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBjYXN0CiAgIAoyMDAxLTA5LTI1IDAzOjQ1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIGluZmVsaWNpdHkgd2hlbiBwcmludGluZyBhbmQgc3lzbG9nZ2luZyAobm90IHN1cmUgdGhpcyBpcwogICAgICAgYWN0dWFsbHkgcG9zc2libGUgYnV0KQogICAKMjAwMS0wOS0yNSAwMzowOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGludGVncmF0ZSBzb21lIGNoYW5nZXMgZnJvbSB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaDogSGFycmllJ3MKICAgICAgIHByb3RvdHlwZXMgYW5kIFdlcydzIGZpeCBmb3IgYnVnICAjNDYzMjI2LgogICAKMjAwMS0wOS0yNSAwMzowMSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBmaXggc2lnbmVkbmVzcyBvZiB0aW1lIHN0dWZmCiAgIAoyMDAxLTA5LTI1IDAyOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAgIC0gbWFrZSBhcmd1bWVudCBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQgY29uc3QKICAgCiAgICAgLSBkb24ndCBzdHJkdXAgREVGQVVMVF9MT0dfSUQgaWYgYSBOVUxMIGFyZyBpcyBnaXZlbgogICAKMjAwMS0wOS0yNCAwOTozOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGluIHNubXB0cmFwZF9sb2cuYyB3aGljaAogICAgICAgYXZvaWQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAogICAgIC0gZml4IGJ1ZyBub3RlZCBpbiBzdXBwb3J0IHJlcXVlc3QgIzQ1NjY0NiAoY3VzdG9tIHRyYXAgZm9ybWF0IHdhcwogICAgICAgYmVpbmcgaWdub3JlZCBmb3IgdjIgdHJhcHMgYW5kIGluZm9ybXMpLiAgVGhhbmtzIHRvCiAgICAgICBHLlByaW5jaXBhdG9AbW90b3JvbGEuY29tIGZvciBzcG90dGluZyB0aGlzIG9uZS4KICAgCiAgICAgLSBjb3JyZWN0IHVzYWdlIGZvciAtUCBvcHRpb24gdG8gcmVmbGVjdCB0aGF0IGl0IGNhdXNlcyBvdXRwdXQgb24KICAgICAgIHN0ZGVyciBub3Qgc3Rkb3V0LgogICAKMjAwMS0wOS0yNCAwOTozNiAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gcmV3cml0ZSBvZiBvdXRwdXQgZnVuY3Rpb25zIHRvIGF2b2lkIHVzZSBvZiBmaXhlZC1sZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yMCAxMzowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgbmV3IGxvZ21hdGNoIG1pYiBmcm9tIFN0ZXBoYW4gV2VuemVsLgogICAKMjAwMS0wOS0xNSAwODo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBvdmVycmlkZSBleGNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dCBvcGVyYXRpb25zIHdoZW4gcmV0cnlpbmcKICAgICAgIG9wZXJhdGlvbnMKICAgCjIwMDEtMDktMTUgMDg6MzkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgICAgLSBpbXByb3ZlZCBzdXBwb3J0IGZvciBBZ2VudFgtc3R5bGUgaW5jbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQKICAgCjIwMDEtMDktMTQgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggIzQ0MzExNSBmcm9tIFlpbWluIEdlOiBkaXNraW8gc3VwcG9ydCBmb3IgZnJlZWJzZDQKICAgCjIwMDEtMDktMTQgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICBQYXRjaCAjNDQwMzIwIGZyb20gTWFyayBGZXJsYXR0ZToKICAgCiAgIDEpIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gdGhlIHNubXBfbG9nZ2luZyBBUEkKICAgICAgKHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudChjaGFyICppZGVudCkpCiAgIAogICAyKSBQb3J0cyBzbm1wdHJhcGQgdG8gdXNlIHRoZSBleGlzdGluZyBzbm1wX2xvZ2dpbmcgQVBJIGluc3RlYWQgb2YKICAgICAgdXNpbmcgc3lzbG9nIGRpcmVjdGx5LgogICAKICAgMykgUG9ydHMgc25tcF9sb2dnaW5nLltjaF0gdG8gdXNlIHRoZSBXaW4zMiBFdmVudCBMb2cgd2hlbiBjb21waWxlZCBvbgogICAgICBXaW4zMi4gSSBkaWRuJ3QgdXBkYXRlIHRoZSBWaXN1YWwgQyBwcm9qZWN0IGZpbGVzLCBiZWNhdXNlIEkgb25seQogICAgICBoYXZlIGFjY2VzcyB0byBhIG5ld2VyIHZlcnNpb24gb2YgVkMsIGFuZCBJIGRpZG4ndCBrbm93IGlmIHlvdQogICAgICB3YW50ZWQgdGhlbSB1cGRhdGVkLiBUaGUgYWR2YXBpMzIgbGlicmFyeSBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUKICAgICAgcHJvamVjdCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrIG9uIFdpbjMyICh0aGF0J3Mgd2hlcmUgdGhlIGV2ZW50CiAgICAgIGxvZyBBUEkgaXMpLgogICAKMjAwMS0wOS0xNCAxNDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIEksIHVoLCBjb3VnaCwgdWggZm9yZ290IHRvIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyLiAgRGF2ZTogZG9uJ3Qga2lsbCBtZS4KICAgCjIwMDEtMDktMTQgMTQ6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQYXRjaCAjNDI4ODg0OiBBZGQgLVBSIGxpa2Ugb3B0aW9uIHRvIHBlcmwgbW9kdWxlIChmcm9tIEpvZSBDbGFya2UpLgogICAKMjAwMS0wOS0xNCAxNDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgKLCBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvYXNuMS5oOgoKICAgQXBwbGllZCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzQyNzM0MyBmcm9tIEhhcnJpZToKICAgICBtYWtlIGVudGVycHJpc2UgSUQgcmVsb2NhdGFibGUgd2hlcmUgbGVnYWwgdG8gZG8gc28KICAgCjIwMDEtMDktMTQgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMTI6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl91dGlscy5jLCBocl91dGlscy5oOgoKICAgcmVtb3ZlZC4gIEZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8gc25tcGxpYi9zbm1wLXRjLltjaF0KICAgCjIwMDEtMDktMTQgMTI6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAtdGMuaDoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgZmlsZSBjb25maWcuaC5ib3JsYW5kIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDktMTQgMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsCiAgIG1hc3Rlcl9yZXF1ZXN0Lmg6CgogICAgIC0gdXNlIGluY2x1c2l2ZSBzZWFyY2ggcmFuZ2Ugb25seSB3aGVuIGFwcHJvcHJpYXRlIGZvciBnZXROZXh0CiAgICAgICBxdWVyaWVzCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMDYgMDc6NDAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgICAtIGlmIGluY2x1ZGUgYml0IGlzIHNldCBpbiBhbiBBZ2VudFggU2VhcmNoUmFuZ2UgKGhlbmNlIHR5cGUgb2YgdmFyYmluZAogICAgICAgaXMgQVNOX1BSSVZfSU5DTF9SQU5HRSksIHRyeSBhbiBleGFjdCBxdWVyeSBmaXJzdCBiZWNhdXNlIGFuIG9iamVjdAogICAgICAgd2hvc2UgbmFtZSBpcyBsZXhpLWVxdWFsIGlzIGEgdmFsaWQgcmVzcG9uc2U7IGlmIGV4YWN0IHF1ZXJ5IGZhaWxzCiAgICAgICB0aGVuIGZhbGwgYmFjayB0byBhbiBpbmV4YWN0IHF1ZXJ5LgogICAKMjAwMS0wOS0wNiAwNzozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywKICAgcHJvdG9jb2wuYywgc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCB1c2VkIElOQ0wvRVhDTCB3cm9uZyB3YXkgcm91bmQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCiAgIAogICAgIC0gYmV0dGVyIHRlc3QgZm9yIHNjb3BpbmcgcmVxdWlyZW1lbnRzIGluIHN1YmFnZW50CiAgIAoyMDAxLTA5LTA0IDA3OjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYnJlYWs7IGFmdGVyIHByb2Nlc3NpbmcgLVAgb3B0aW9uLCBub3RlZCBieSBCb3RvbmQKICAgICAgIFRhcm5heSAoc2VlIHBhdGNoICM0NTgzMjcpCiAgIAoyMDAxLTA4LTI4IDAzOjA0ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSA8dGNwZC5oPiBpZiB1c2luZyBsaWJ3cmFwLCBub3RlZCBieSBOYXRoYW4KICAgICAgIE5ldWxpbmdlciAocGF0Y2ggIzQ1MzgzMSkuCiAgIAoyMDAxLTA4LTI4IDAyOjM4ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5oOgoKICAgZmlsZSBkYXRhX2xpc3QuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBmaWxlIGRhdGFfbGlzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTIyIDA4OjQ1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIGNoZWNraW5nIHRoYXQgcmVzdWx0cyB0byBiZSByZXR1cm5lZCB0byBtYXN0ZXIgYWdlbnQgYXJlIGluCiAgICAgICByZXF1ZXN0ZWQgc2NvcGUgKGlmIGFueSkgKGdldEJ1bGsgbm90IHlldCBkb25lKQogICAKMjAwMS0wOC0xNSAwOTozMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgaW4gZGVidWdtc2dfb2lkIHRvIHByaW50IGxvbmcgT0lEcy4KICAgCjIwMDEtMDgtMTUgMDg6MzcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHRoZSB2YWx1ZSBvZiBzbm1wSW5CYWRDb21tdW5pdHlVc2VzIHdoZW4gYXR0ZW1wdGluZyBhbgogICAgICAgb3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgYnkgdGhlIGdpdmVuIGNvbW11bml0eSwgcGVyIFJGQyAxOTA3LgogICAKMjAwMS0wOC0xNSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gd2hlbiB0cmFuc2xhdGluZyB0aGUgdjIrIGVycm9yLXN0YXR1cyB2YWx1ZSBhdXRob3JpemF0aW9uRXJyb3IKICAgICAgIGludG8gbm9TdWNoTmFtZSBmb3IgYSB2MSBzZXNzaW9uLCBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mCiAgICAgICBzbm1wSW5CYWRDb21tdW5pdHlVc2VzLCBwZXIgUkZDIDI1NzYuCiAgIAoyMDAxLTA4LTE0IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBpbiBzbm1wX3NldF92YXJfb2JqaWQoKSwgdHJ5IHRvIGRldGVjdCBhIHByZXZpb3VzbHktbWFsbG9jKCllZAogICAgICAgYnVmZmVyIGZvciB0aGUgdmFyaWFibGUgbmFtZSwgYW5kIGZyZWUoKSBpdCwgdG8gYXZvaWQgbWVtb3J5CiAgIGxlYWtzLgogICAKMjAwMS0wOC0xMyAwMzo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB1c2UgV2luMzIgY2FsbHMgdG8gY2hhbmdlIGJsb2NraW5nIHN0YXRlIG9mIHNvY2tldHMgaWYKICAgICAgIGFwcHJvcHJpYXRlLiAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMTMgMDM6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYW4gU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbiBpZgogICAgICAgd2UgZ2V0IGFuIGVycm9yIG9uIGEgc3RyZWFtIHJlY2VpdmUsIGFzIHdlbGwgYXMgaWYgaXQgaXMgY2xvc2VkIGluCiAgICAgICBhbiBvcmRlcmx5IGZhc2hpb24uICBUaGlzIG1ha2VzIGxpZmUgZWFzaWVyIG9uIFdpbjMyIGlucGFydGljdWxhci4KICAgICAgIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgd2l0aCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZmlsZSB0YWJsZV9kYXRhLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oOgoKICAgZmlsZSB0YWJsZV9kYXRhLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjM6CgogICBmaWxlIHNubXBfYXBpX2VycnN0cmluZy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9lcnJvci4zOgoKICAgZmlsZSBzbm1wX2Vycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXNzX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNiAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBmb3IgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBsb2dmaWxlIGFyZ3VtZW50IGhhbmRsaW5nLAogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIChidWcgIzQ0ODI0MykuICBBbHNvIHVzZSBhIGxhcmdlIGVub3VnaCBidWZmZXIKICAgICAgIHRvIGhhbmRsZSBmaWxlbmFtZXMgb2YgbGVuZ3RoIFBBVEhfTUFYIChpZiBwb3NzaWJsZSkuCiAgIAoyMDAxLTA3LTMwIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbW92ZSBzbm1wX3NvY2tldF9sZW5ndGggZnVuY3Rpb24gdG8gYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICAgIGZyb20gc25tcF9hcGkuYyAtLSB0aGlzIGlzIHRoZSBvbmx5IHJlbWFpbmluZyBwbGFjZSB0aGF0IHVzZXMgdGhpcwogICAgICAgZnVuY3Rpb24sIHdoaWNoIGNlcnRhaW5seSBkb2Vzbid0IGJlbG9uZyBpbiBzbm1wX2FwaS5jIGFmdGVyIHRoZQogICAgICAgdHJhbnNwb3J0IGFic3RyYWN0aW9uIG1hbGFya2V5LgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHRyeSB0byByZXR1cm4gaW52YWxpZCgyKSBmb3IgdGhlIGlwUm91dGVUeXBlIGNvbHVtbiBpZiB0aGUgcm91dGUKICAgICAgIGlzIG5vdCB1cC4gIFNlZSBidWcgIzQyNjcxMCwgcmVwb3J0ZWQgYnkgcGp3ZWJlci4KICAgCjIwMDEtMDctMjcgMDc6MzIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBzZXQgZGVmYXVsdEF1dGhUeXBlIHRvIHVzbUhNQUNTSEExQXV0aFByb3RvY29sIGlmIFNIQSBzcGVjaWZpZWQKICAgICAgICh3YXMgc2V0IHRvIHVzbUhNQUNNRDVBdXRoUHJvdG9jb2wgaW4gdGhpcyBjYXNlKS4gIFNwb3R0ZWQgYnkKICAgICAgIFdpbGxpYW0gS2VubmVtZXIgKGJ1ZyAjNDQ0ODYwKQogICAKMjAwMS0wNy0yNyAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBjaGFuZ2UgdG8gaGFuZGxlX2FnZW50eF9yZXNwb25zZSBPTkxZIHRvIHNlbmQgTkVXTFkgZGVsZWdhdGVkCiAgICAgICByZXF1ZXN0cyBhZnRlciBwcm9jZXNzaW5nIGEgc3VjY2Vzc2Z1bCByZXNwb25zZS4gIFRoaXMgaXMgYWNoaWV2ZWQKICAgICAgIGJ5IHNhdmluZyB0aGUgdmFsdWUgb2YgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBhbmQgdGVtcG9yYXJpbHkKICAgICAgIHNldHRpbmcgaXQgdG8gTlVMTC4gIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHZhcmJpbmRzIGluIHRoZQogICAgICAgcmVzcG9uc2UsIHRoZXJlZm9yZSwgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBjb250YWlucyBvbmx5IG5ld2x5CiAgICAgICBkZWxlZ2F0ZWQgcmVxdWVzdHMsIGlmIGFueS4gIEFmdGVyIHNlbmRpbmcgdGhlc2UsIHRoZSBuZXcgcmVxdWVzdHMKICAgICAgIGFyZSBtZXJnZWQgd2l0aCB0aGUgc2F2ZWQgcXVldWUuCiAgIAogICAgICAgVGhpcyBmaXhlcyBhIGJ1ZyB0aGF0IGFyaXNlcyBpZiB5b3UgcmVxdWVzdCB2YXJpYWJsZXMgZnJvbSB0d28gb3IKICAgICAgIG1vcmUgc2VwYXJhdGUgc3ViYWdlbnRzIHNpbXVsdGFuZW91c2x5LiAgV2hhdCB1c2VkIHRvIGhhcHBlbiBpcwogICAgICAgdGhhdCwgdXBvbiByZWNlaXZpbmcgdGhlIGZpcnN0IHJlc3BvbnNlLCB0aGUgbWFzdGVyIGFnZW50IHdvdWxkCiAgICAgICBub3RpY2UgdGhhdCBpdCBoYWQgYW4gb3V0c3RhbmRpbmcgcmVxdWVzdCwgYW5kIHJldHJhbnNtaXQgaXQuCiAgICAgICBUaGVuIHRoZSBzZWNvbmQgcmVzcG9uc2UgYXJyaXZlcywgYW5kIHRoZSBtYXN0ZXIgYWdlbnQgc2VuZHMgdGhlCiAgICAgICByZXBseSB0byB0aGUgKFNOTVApIHJlcXVlc3RlciBhbmQgZnJlZXMgdGhlIHJlcXVlc3RzIChpbmNsdWRpbmcKICAgICAgIGNhbGxiYWNrIGRhdGEpLiAgRmluYWxseSwgYW5vdGhlciBBZ2VudFggcmVzcG9uc2UgKHRvIHRoZQogICAgICAgZXJyb25lb3VzbHkgdHJhbnNtaXR0ZWQgcmVxdWVzdCkgYXJyaXZlcyBhbmQgdGhlIGNhbGxiYWNrIGlzCiAgICAgICBjYWxsZWQgcmVmZXJlbmNpbmcgZGVhbGxvY2F0ZWQgbWVtb3J5LCB3aGljaCBjYXVzZXMgYSBzZWdmYXVsdC4KICAgCjIwMDEtMDctMjYgMDc6MjggIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChORVctTElCUkFSWS1BUEkuNCksIHNubXBfYXBpLmM6CgogICBBZGRpbmcgYSAnZG91YmxlJy12YWx1ZWQgdmFyYmluZCBpc24ndCBpbmhlcmVudGx5IGFuIGludGVybmFsIGVycm9yIQogICAKMjAwMS0wNy0yNSAwNTo0NyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCjIwMDEtMDctMjUgMDI6MTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAogICAgIC0gYWRkIGNsb3NpbmcgcGFyZW50aGVzaXMgYWZ0ZXIgKHZpYSA8YWRkcmVzcz4gaW4gZm9ybWF0X3BsYWluX3RyYXAKICAgCjIwMDEtMDctMjMgMDc6NTMgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIHJlbW92ZSBleGNlc3NpdmUgZGVidWdnaW5nIGZyb20gc25tcF8ocmUpYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAxLTA3LTIzIDA0OjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZGVidWdnaW5nIG91dHB1dCB0byBwcmludCBsb3NpbmcgcGF0aCBjb3JyZWN0bHkgd2hlbgogICAgICAgYSByZW1vdGUgY29ubmVjdCBmYWlscy4KICAgCjIwMDEtMDctMTcgMDk6NTYgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdXBkYXRlIGZvciBuYW1pbmcgY29udmVudGlvbnMgYW5kIGZvciBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAxLTA3LTE3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGluaXRpYWwgY29kaW5nIHN0eWxlIGd1aWRlbGluZSBkb2N1bWVudC4KICAgCjIwMDEtMDctMTcgMDk6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVtZW1iZXIgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbihvdXItc2Vzc2lvbi13aXRoLW1hc3Rlci1hZ2VudCkKICAgICAgIGlmIHRoZSBtYXN0ZXIgYWdlbnQgc2Vzc2lvbiBnb2VzIGF3YXksIGJlY2F1c2Ugb3RoZXJ3aXNlIHlvdQogICAgICAgbWF5IHN1YnNlcXVlbnRseSB0cnkgdG8gdXNlIGl0LCB3aGljaCB3aWxsIHByb2JhYmx5IGR1bXAgY29yZSwKICAgICAgIGFuZCBpcyBjZXJ0YWlubHkgYW4gZXJyb3IuCiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugd2hlbiB0cmFwIHNlc3Npb24gaXMgcmVnaXN0ZXJlZCB0byBiZWluZyBpbW1lZGlhdGVseQogICAgICAgdGhlIHNlc3Npb24gaXMgb3BlbmVkIHNvIHRyYXBzIGNhbiBiZSBzZW50LCBlLmcuIGZyb20gdGhlCiAgICAgICBJTkRFWF9TVEFSVCBjYWxsYmFjayAoZm9yIGV4YW1wbGUgbGlua1VwIHRyYXBzIGluIHN1YmFnZW50cyB0aGF0CiAgICAgICByZWdpc3RlciBhIHJvdyBvZiBpZlRhYmxlKS4KICAgCjIwMDEtMDctMTcgMDg6NDggIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGNoYW5nZSB0byByZW1vdmVfdHJhcF9zZXNzaW9uKCksIHNvIGFzIG5vdCB0byBjbG9zZSBhbiBTTk1QCiAgICAgICBzZXNzaW9uIHNpbXBseSBiZWNhdXNlIHdlIGFyZSByZW1vdmluZyBpdCBmcm9tIHRoZSB0cmFwX3NpbmsKICAgICAgIGxpc3QuICBUaGUgcmF0aW9uYWxlIGlzIHRoYXQgdGhlIHNlc3Npb24gbWF5IHN0aWxsIGJlIGluIHVzZSBmb3IKICAgICAgIG90aGVyIHB1cnBvc2VzLCBvciAobW9yZSB0byB0aGUgcG9pbnQpIHlvdSBtYXkgYmUgY2FsbGluZyB0aGlzCiAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBzZXNzaW9uJ3MgY2FsbGJhY2sgKGZyb20gd2hlcmUgY2xvc2luZyB0aGUKICAgICAgIHNlc3Npb24gaXNuJ3QgYSBnb29kIGlkZWEpLgogICAKMjAwMS0wNy0xMyAwNjowMiAgZHRzMTIKCiAgICogc25tcGxpYi9uZXRzbm1wLmg6CgogICBmaWxlIG5ldHNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaDoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBmaXggZm9yIGJ1ZyAjNDM5MDk0LCByZXBvcnRlZCBieSBFdmVydC1KYW4gdmFuIFR1aWpsLCB3aGVyZWJ5CiAgICAgICB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudCBleHBlY3RzIGEgcmVzcG9uc2UgdG8gYW4gYWdlbnR4LUNsZWFudXBTZXQtUERVCiAgICAgICBtZXNzYWdlIChpbmNvcnJlY3RseSkuICBUaGlzIG9ubHkgc2hvd3MgdXAgd2hlbiB0ZXN0aW5nIGFnYWluc3Qgb3RoZXIKICAgICAgIHN1YmFnZW50cyAoZS5nLiBqYXgpIGJlY2F1c2UgdGhlIG5ldC1zbm1wIHN1YmFnZW50IHNlbmRzIGEgcmVzcG9uc2UKICAgICAgIHRvIHRoZSBhZ2VudHgtQ2xlYW51cFNldC1QRFUgKGluY29ycmVjdGx5KS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0Lmg6CgogICBmaWxlIHZhY21fY29udGV4dC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmg6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTA1IDA2OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAgIC0gbWFrZSBJbnRlcmZhY2VfU2Nhbl9HZXRfQ291bnQgbm9uLXN0YXRpYyBhcyBpdCdzIHZlcnkgdXNlZnVsCiAgIAoyMDAxLTA3LTA1IDAzOjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGZyZWUgdGhlIGNhY2hlZCBzZWN1cml0eSBwYXJhbWV0ZXJzIHdoZW4gd2UgaGF2ZSBhIHBhcnNlIGVycm9yCiAgICAgICBvbiBpbnB1dCwgb3RoZXJ3aXNlIHdlIGxlYWsgbWVtb3J5ICh0cmlnZ2VyZWQgYnkgU0MgMy4wLjEzLnsyLDN9KS4KICAgCjIwMDEtMDctMDQgMDk6NTEgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjYXRjaCBzb21lIG1hbGZvcm1lZCBTTk1QdjMgcGFja2V0cwogICAKMjAwMS0wNy0wNCAwNzo0MiAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBiYWQgbWlzdGFrZSBpbiBzbm1wdjNfc2NvcGVkUERVX2hlYWRlcl9yZWFsbG9jX3JidWlsZCB3aGljaAogICAgICAgd2FzIGVuY29kaW5nIHRoZSB3cm9uZyBsZW5ndGggaW50byB0aGUgU2NvcGVkUERVIFNFUVVFTkNFIGhlYWRlcgogICAgICAgKHdhc24ndCBpbmNsdWRpbmcgbGVuZ3RoIG9mIGFjdHVhbCBkYXRhLCBpLmUuIFBEVSEpLiAgVG90YWxseSBteQogICAgICAgZmF1bHQgLS0gaW50cm9kdWNlZCB3aGVuIGNoYW5naW5nIG92ZXIgdG8gcmVhbGxvY2F0aW5nIGJ1ZmZlcgogICAgICAgdHlwZSBmdW5jdGlvbnMuICBBbWF6aW5nIHRoaXMgaGFzbid0IGNhdXNlZCBhbGwgc29ydHMgb2YgdHJvdWJsZQogICAgICAgZm9yIHBlb3BsZSEKICAgCjIwMDEtMDctMDIgMTg6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGZpbGUgc25tcC10Yy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTAyIDA5OjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzbGlnaHQgY2hhbmdlIHRvIGdlbmVyYXRpb24gb2YgZXJyb3ItaW5kZXg6CiAgIAogICAgICAgLSBleHBsaWNpdGx5IHRlc3QgZm9yIGVycm9yLXN0YXR1cyA9PSBub0Vycm9yLCBhbmQgc2V0IGVycm9yLWluZGV4CiAgICAgICAgIHRvIHplcm8gaW4gdGhpcyBjYXNlOwogICAKICAgICAgIC0gb3RoZXJ3aXNlIHVzZSB0aGUgY2FjaGVkIHZhbHVlOwogICAKICAgICAgIC0gZG9uJ3QgemVybyB0aGUgY2FjaGVkIHZhbHVlIGluIGhhbmRsZV92YXJfbGlzdCBpZiBoYW5kbGVfb25lX3ZhcgogICAgICAgICByZXR1cm5zIG5vRXJyb3IKICAgCiAgICAgLSB0aGlzIGNvcGVzIHByb3Blcmx5IHdpdGggU0VUIHJlcXVlc3RzLCB3aGVyZSBhIGZhaWxpbmcgU0VUIHdpbGwgaGF2ZQogICAgICAgYSBGUkVFIHBoYXNlIHdoaWNoIHdpbGwgdHlwaWNhbGx5IHJldHVybiBub0Vycm9yLiAgUHJldmlvdXNseSB0aGlzCiAgICAgICB3b3VsZCBlcnJvbmVvdXNseSBjYXVzZSB0aGUgZXJyb3ItaW5kZXggdG8gYmUgc2V0IHRvIHplcm8uCiAgIAoyMDAxLTA3LTAyIDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgICAgLSBmaXggYmFkIGJlaGF2aW91ciBpbiBoZWFkZXJfc2ltcGxlX3RhYmxlIHdoZW4gdGhlIGluZGV4IGlzCiAgICAgICBlcXVhbCB0byBVTE9OR19NQVgKICAgCjIwMDEtMDYtMjggMTA6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjaGFuZ2Ugc2Vuc2Ugb2Ygc25tcF9vaWRfY29tcGFyZSgpIHJlc3VsdCBjaGVjayBpbiB2YXJfdXNtVXNlcgogICAgICAgdG8gZG8gbGV4aS1vcmRlcmluZyBjb3JyZWN0bHkKICAgCjIwMDEtMDYtMjggMDc6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNvdW50IG1vcmUgdjEvdjJjIHBhcnNlIGVycm9ycyAoU0MgMS4xLjEyLjEwKQogICAKMjAwMS0wNi0yOCAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hlY2sgdGhhdCB2ZXJzaW9uIGZpZWxkIG9mIFBEVSBpcyBvZiBpbnRlZ2VyIHR5cGUgcmF0aGVyIHRoYW4ganVzdAogICAgICAgYXNzdW1pbmcgaXQgaXMgKFNDIDEuMS4xMi4yLjEpCiAgIAoyMDAxLTA2LTI4IDA0OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCBzbm1wSW5CYWRDb21tdW5pdHlOYW1lcyB3aGVuIHdlIHNlZSB1bmtub3duIGNvbW11bml0eQogICAgICAgbmFtZXMsIHBlciBSRkMxOTA3CiAgIAoyMDAxLTA2LTI3IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIG5ldyBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgdG8gbWFyayBhbGwgb3VyCiAgICAgICBub2RlcyBhcyBkZXRhY2hlZCB3aGVuIHdlIGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0IGluZGljYXRpb24uCiAgIAoyMDAxLTA2LTI3IDA4OjA3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIGFkZCBhZGRpdGlvbmFsIGZsYWcgdG8gc3VidHJlZSBzdHJ1Y3R1cmUgdGhhdCBzdWJhZ2VudHMgY2FuIHVzZQogICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0ZW1wdCBoYXMgYmVlbiBtYWRlIHRvIHJlZ2lzdGVyIGFuZCBPSUQKICAgICAgIHdpdGggYSBtYXN0ZXIgYWdlbnQgZHVyaW5nIGEgc2Vzc2lvbidzIGxpZmV0aW1lLiAgVGhpcyBhbGxvd3MKICAgICAgIG1hbnVhbCByZS1yZWdpc3RyYXRpb24gYW5kIGF1dG9tYXRpYyByZS1yZWdpc3RyYXRpb24gdG8gYmUgbWl4ZWQKICAgICAgIHdpdGhpbiBhIHN1YmFnZW50IChwZXJoYXBzIGJlY2F1c2UgeW91IGFyZSBkb2luZyBpbmRleCBzdHVmZikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB3aGljaCB1bnNldHMgdGhpcyBmbGFnIGZvcgogICAgICAgYWxsIGtub3duIG5vZGVzIChzdWJhZ2VudCB3b3VsZCB0eXBpY2FsbHkgY2FsbCB0aGlzIG9uIGRpc2Nvbm5lY3QKICAgICAgIGluZGljYXRpb24pLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKICAgICAtIGNvcnJlY3QgYmFkIHJlY3Vyc2l2ZSBiZWhhdmlvdXIgaW4gcmVnaXN0ZXJfbWliX3JlYXR0YWNoKCkgd2hpY2gKICAgICAgIHVzZWQgdG8gdHJ5IHRvIHJlLXJlZ2lzdGVyIE4gbm9kZXMgTiEgdGltZXMuICBPbmNlIHdpbGwgbm9ybWFsbHkKICAgICAgIGJlIGVub3VnaC4KICAgCiAgICAgLSBjaGFuZ2UgdG8gZHVtcF9yZWdpc3RyeSgpIGZvcm1hdCB0byBpbmNsdWRlIGhleCBkaXNwbGF5IG9mCiAgICAgICBmbGFncyBmaWVsZC4KICAgCjIwMDEtMDYtMjYgMDk6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCBlcnJvciBpbiBTTk1QdjIgdHJhcCBleGFtcGxlcyAgKElkZW50aWZpZWQgYnkgRGl3YWthciBTaGV0dHkpLgogICAKMjAwMS0wNi0yNiAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3RlZCBzZW5zZSBvZiBkdW1wX3JlYWxsb2Nfb2lkX3RvX3N0cmluZygpIHJldHVybiB2YWx1ZQogICAgICAgY2hlY2tzLCBhcyBzcG90dGVkIGJ5IFJvYmVydCBTdG9yeS4KICAgCjIwMDEtMDYtMjUgMDY6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gc21hbGwgdHdlYWsgaW4gaGFuZGxlX2FnZW50eF9yZXNwb25zZSgpIHdoZW4gcmV0cnlpbmcgdW5mdWxmaWxsZWQKICAgICAgIHJlcXVlc3RzOiBjb250aW51ZSBmcm9tIHRoZSAic3RhcnQiIE9JRCBvZiB0aGUgbmV4dCBub2RlIG9mIHRoZQogICAgICAgdHJlZSwgbm90IGZyb20gdGhlICJuYW1lIiBPSUQsIHdoaWNoIGNhdXNlcyBsb29waW5nLgogICAKMjAwMS0wNi0yMSAwOTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBoYW5kbGUgImhvbGVzIiBpbiByb3dzIG9mIHRhYmxlcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHN1YmFnZW50cwogICAKICAgICAgIFNpbmNlIHRoZSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgaXMgcmVnaXN0ZXJlZCwgd2UgaW50ZXJwcmV0CiAgICAgICBhIHJldHVybiBvZiBub1N1Y2hJbnN0YW5jZSB3aGVuIGRvaW5nIGFuIGluZXhhY3QgcXVlcnkgYXMgbWVhbmluZwogICAgICAgd2Ugc2hvdWxkIHJldHJ5IHRoZSBxdWVyeS4KICAgCjIwMDEtMDYtMjEgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBmb3Jnb3QgdG8gY29tbWl0IGF0IHRoZSBzYW1lIHRpbWUgYXMgbGFzdCBtaWIuYyBjb21taXQ7IHVwZGF0ZWQKICAgICAgIHByb3RvdHlwZSBmb3Igc3ByaW50X3JlYWxsb2NfaGludGVkX2ludGVnZXIKICAgCjIwMDEtMDYtMjAgMDY6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBjb3VudF9pbmRleGVzIHdoaWNoIHJldHVybnMgdGhlIG51bWJlciBvZiBpbmRleGVzCiAgICAgICBhbGxvY2F0ZWQgZm9yIGEgZ2l2ZW4gT0lELiAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcKICAgICAgICJyb3cgY291bnQiIG9iamVjdHMsIGUuZy4gaWZOdW1iZXIuCiAgIAoyMDAxLTA2LTIwIDA1OjM3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jCjoKCiAgICAgLSBhZGQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RBUlQgYW5kIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUT1AKICAgICAgIGNhbGxiYWNrcyB3aGljaCBtYXkgYmUgdXNlZCB0byBtYW5hZ2UgaW5kZXggYWxsb2NhdGlvbnMuCiAgIAogICAgICAgTWFzdGVyIGFnZW50IHNob3VsZCBwcm9iYWJseSBjYWxsIHRoZXNlIGNhbGxiYWNrcyB0b28sIGFsdGhvdWdoCiAgICAgICBpdCdzIGEgYml0IG9mIGEgZGVnZW5lcmF0ZSBjYXNlLgogICAKMjAwMS0wNi0xOSAwOTo0NCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIHVzZSBhbiBleHBsaWNpdCBmaWVsZWQgImFsbG9jYXRlZCIgaW4gc25tcF9pbmRleCBzdHJ1Y3R1cmUgdG8KICAgICAgIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgY3VycmVudGx5IGFsbG9jYXRlZCwgcmF0aGVyCiAgICAgICB0aGFuIG92ZXJsb2FkaW5nIGEgTlVMTCBzZXNzaW9uIHRvIG1lYW4gdGhhdCBpdCBpcyBub3QuCiAgIAogICAgICAgVGhpcyBhbGxvd3Mgc3RhcnR1cCBjb2RlIGluIGEgbWFzdGVyIGFnZW50IHRvIHByZS1yZWdpc3RlciBpbmRpY2VzCiAgICAgICB3aGVuIHRoZXJlIGFyZSBubyBzZXNzaW9ucyBvcGVuLgogICAKMjAwMS0wNi0xOSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYwo6CgogICAgIC0gIGtlZXAgdGhlIHZhbHVlIG9mIE5FVFdPUktfQllURV9PUkRFUiBmcm9tIGguZmxhZ3MgaW4gdGhlCiAgICAgICAgYWdlbnR4LU9wZW4tUERVIGFuZCB1c2UgaXQgZm9yIHN1YnNlcXVlbnQgbWFzdGVyLWluaXRpYXRlZAogICAgICAgIEFnZW50WCBwcm90b2NvbCBvcGVyYXRpb25zLCBwZXIgUkZDIDI3NDEgKHNlY3Rpb24gNy4xLjEsCiAgICAgICAgcGFyYWdyYXBoIDQpLgogICAKICAgICAgICBGb3Igbm93LCB3ZSBhcmUgc3RvcmluZyB0aGlzIGluIHRoZSBmbGFncyBmaWVsZCBvZiBhCiAgICAgICAgc3Vic2Vzc2lvbi4gIFRoaXMgaXMgbGlrZWx5IHRvIHN0b3Agd29ya2luZyBpZiB0aGUgZmxhZ3MKICAgICAgICBkZWZpbml0aW9ucyBjaGFuZ2UgKGkuZS4gaXQncyBub3QgYSBncmVhdCBzb2x1dGlvbikKICAgCiAgICAgLSAgVGhhbmtzIHRvIFBldGVyIEtvcnN0ZW4gKHNldmVyaXR5b25lIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldCkKICAgICAgICBmb3IgaWRlbnRpZnlpbmcgdGhpcyBidWcsIGFuZCBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcyBmaXguCiAgIAoyMDAxLTA2LTE5IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gcmVpbnN0YXRlIHNwYWNlIGJldHdlZW4gbnVtYmVycyBhbmQgdW5pdHMuCiAgIAogICAgIC0gcmVzcGVjdCBESVNQTEFZLUhJTlRzIGZvciBVbnNpZ25lZDMyLCBHYXVnZSwgR2F1Z2UzMiB0eXBlcy4KICAgCjIwMDEtMDYtMTMgMDM6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGRlYnVnZ2luZyB0byByZWR1Y2UgIm5vaXNlIGxldmVsIiBmcm9tIFB1cmlmeQogICAKMjAwMS0wNi0xMiAxMDozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBldGl0aW9ucyBmaWVsZCB2YWx1ZXMgb2YgPCAwIChieQogICAgICAgc2V0dGluZyB0aGVtIHRvIDAsIHBlciBSRkMgMTkwNSkKICAgCjIwMDEtMDYtMTIgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBidWcgdGhhdCBjYXVzZWQgYSBudWxsIHBvaW50ZXIgdG8gYmUgZm9sbG93ZWQgd2hlbiBwcm9jZXNzaW5nIGEKICAgICAgIEdFVEJVTEsgcmVxdWVzdCB3aXRoIG5vbi1yZXBlYXRlcnMgPiAwLCBtYXgtcmVwZXRpdGlvbnMgPT0gMCBhbmQgbm8KICAgICAgIHZhcmJpbmRzIGluIHRoZSByZXF1ZXN0LgogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4xKSwgcmVhZF9jb25maWcuYzoKCiAgIEZpeCAndW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcicgdG8gaGFuZGxlIHRhZ3Mgb3RoZXIKICAgdGhhbiB0aGUgZmlyc3QgaW4gdGhlIGxpc3QuICAoVGhhbmtzIHRvIFBhdWwgU2VyaWNlKS4KICAgCjIwMDEtMDYtMDYgMDc6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUoKSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpIGNhbGxzCiAgIAoyMDAxLTA2LTA2IDA3OjM3ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gbW9yZSB1bmlmb3JtIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCk6IG1ha2UgaXQgYWx3YXlzIGEKICAgICAgIHZhcmJpbmQgd2hpY2ggdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZSgpaW5nLCBvciBlbHNlIE5VTEwuCiAgIAoyMDAxLTA2LTA1IDAzOjEwICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZml4IGZvciBpbmRleCBhbGxvY2F0aW9uLCBzdWNoIHRoYXQgcmVxdWVzdHMgZm9yIHNwZWNpZmljIGluZGljZXMgd2hpY2gKICAgICAgIGhhdmUgcHJldmlvdXNseSBiZWVuIGFsbG9jYXRlZCwgYnV0IGFyZSBub3QgY3VycmVudGx5IGluIHVzZSwgc3VjY2VlZC4KICAgCiAgICAgLSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmg6CgogICBmaWxlIG11bHRpcGxleGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGZpbGUgaW5zdGFuY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmg6CgogICBmaWxlIG51bGwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaDoKCiAgIGZpbGUgcmVhZF9vbmx5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgZmlsZSBtdWx0aXBsZXhlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZmlsZSBzZXJpYWxpemUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oOgoKICAgZmlsZSB0YWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmg6CgogICBmaWxlIGluc3RhbmNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpbGUgdGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaDoKCiAgIGZpbGUgc2VyaWFsaXplLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oOgoKICAgZmlsZSBzZXRfaGVscGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZmlsZSBudWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaDoKCiAgIGZpbGUgb2xkX2FwaS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jOgoKICAgZmlsZSByZWFkX29ubHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBmaWxlIG9sZF9hcGkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwNzozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtaXNjIGZpeGVzIGZvciBvaWQgZm9ybWF0dGluZyBwcm9ibGVtcy4KICAgCjIwMDEtMDYtMDEgMDc6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBNYXJ0aW4gT2xkZmllbGQuCiAgIAoyMDAxLTA2LTAxIDAyOjUwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGZpeCBmb3IgYWJzb2x1dGVseSBtaW5kLWJlbmRpbmcgbWVtb3J5IGxlYWsgd2hlbiBBZ2VudFggc2Vzc2lvbnMKICAgICAgIHRpbWVvdXQuICBhZ2VudF9zZXNzaW9uX2xpc3QgaG9sZHMgYSBxdWV1ZSBvZiBzZXNzaW9ucyB3aXRoIG91dHN0YW5kaW5nCiAgICAgICByZXF1ZXN0cy4gIFdoZW4gYSBzZXNzaW9uIHRpbWVzIG91dCwgdGhpcyBtdXN0IGJlIHNjYXZlbmdlZCB0byBtYWtlCiAgICAgICBzdXJlIHRoZSBzZXNzaW9ucyB0aGF0IGhhdmUgdGltZWQgb3V0LCBhbmQgdGhlaXIgYXNzb2NpYXRlZCByZXF1ZXN0cwogICAgICAgYXJlIGZyZWUoKWQuCiAgIAoyMDAxLTA1LTMwIDAzOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJldHJ5IGluaXRpYWwgb3BlbiBvZiBBZ2VudFggbWFzdGVyIHNvY2tldCBpZiBBZ2VudFggcGluZ3MgYXJlCiAgICAgICBlbmFibGVkIChzaG91bGQgcmVhbGx5IGJlIGEgc2VwYXJhdGUgZGVmYXVsdF9zdG9yZSBvcHRpb24gYnV0CiAgICAgICBuZXZlciBtaW5kKQogICAKMjAwMS0wNS0zMCAwMzoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgaGFuZGxpbmcgb2YgdGltZW91dCBjb25kaXRpb25zIChhbHNvIGZpeCBtZW1vcnkKICAgICAgIGxlYWspCiAgIAoyMDAxLTA1LTMwIDAzOjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBtb3JlIGluZm9ybWF0aXZlIGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgICAgLSByZW1vdmUgbm9pc3kgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb3JlIGNvbXBhY3QgZGVidWdnaW5nIGluIF9zZXNzX3NlbGVjdF9pbmZvCiAgIAoyMDAxLTA1LTMwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY29weSBmbGFncyBpbiByZWF0dGFjaF9zdWJ0cmVlIChuZWVkZWQgZm9yIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKQogICAKMjAwMS0wNS0yOCAwODo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsCiAgIG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBzdWJhZ2VudC5jOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSB0d2VhayB0byBnZXRTdGF0UHRyIHRvIGhhbmRsZSBnZXROZXh0IG9wZXJhdGlvbnMgaW4gY29tYmluYXRpb24gd2l0aAogICAgICAgRlVMTFlfUVVBTElGSUVEX0lOU1RBTkNFIG5vZGVzICh3aGljaCBhcmlzZSBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikuCiAgIAoyMDAxLTA1LTI4IDA4OjQ2ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc21hbGwgdHdlYWsgdG8gZGVidWdnaW5nIG91dHB1dAogICAKMjAwMS0wNS0yOCAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzICpwcm9wZXJseSouCiAgIAoyMDAxLTA1LTI4IDA0OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggcG9zc2libGUgbWVtb3J5IGxlYWsgaW4gX3Nlc3NfYXN5bmNfc2VuZCBlcnJvciBjYXNlcwogICAKMjAwMS0wNS0yOCAwNDoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBhZGQgcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcy4KICAgCjIwMDEtMDUtMjMgMDk6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlc3BlY3QgbXNnTWF4U2l6ZSBpbiByZWNlaXZlZCB2MyBQRFVzIChpbiB0aGUgd2VhayBzZW5zZSB0aGF0IGlmCiAgICAgICB0aGUgc2VyaWFsaXplZCByZXNwb25zZSBQRFUgaXMgbW9yZSB0aGFuIGl0LCB3ZSBkb24ndCBzZW5kIGl0KQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeS4gIFVzaW5nIHRoZXNlCiAgICAgICBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleSB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4KICAgICAgIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlCiAgICAgICBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDk6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVzcElwCiAgIAoyMDAxLTA1LTIzIDA4OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBlYXJseSBiYWlsIG91dCBvZiBoYW5kbGVfc25tcF9wYWNrZXQoKSBpZiB0aGUgY2FsbGJhY2sgb3BlcmF0aW9uCiAgICAgICB0eXBlIGlzIG5vdCBTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UuICBJbiBwcmFjdGljZSwgdGhlCiAgICAgICBvbmx5IHdheSB0aGlzIGFyaXNlcyBjdXJyZW50bHkgaXMgd2hlbiBhIHN0cmVhbSB0cmFuc3BvcnQgYmFzZWQKICAgICAgIGNvbm5lY3Rpb24gZ29lcyBhd2F5IGFuZCBhIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBvY2N1cnMuCiAgIAoyMDAxLTA1LTIzIDA4OjQ0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBuZXcgZmllbGRzIHJjdk1zZ01heFNpemUgYW5kIHNuZE1zZ01heFNpemUgaW4gc25tcF9zZXNzaW9uCiAgICAgICBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB2MyBtc2dNYXhTaXplCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5IGZyb20gcHVibGljCiAgICAgICBpbnRlcmZhY2UuICBVc2luZyB0aGVzZSBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleQogICAgICAgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLAogICAgICAgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA4OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgbXNnTWF4U2l6ZSBmaWVsZCB0byBzbm1wX3RyYW5zcG9ydCBzdHJ1Y3R1cmUgdG8gc3VwcG9ydAogICAgICAgbXNnTWF4U2l6ZSBuZWdvdGlhdGlvbiBmb3IgdjMKICAgCjIwMDEtMDUtMjMgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19oZXhzdHJpbmcgaW5zdGVhZCBvZiBzcHJpbnRfaGV4c3RyaW5nIGZvcgogICAgICAgU05NUF9URVNUSU5HX0NPREUgZGVidWdnaW5nIG91dHB1dCBvZiBJViwga2V5IGFuZCBwbGFpbnRleHQKICAgCjIwMDEtMDUtMjMgMDU6MjUgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgb3B0aW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDQ6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIGFuZCAtRSBvcHRpb25zLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDM6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIHVzZSBuZXcgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkgZnVuY3Rpb25zIGZvciBpbnB1dCBzdHJpbmcKICAgICAgIHRvIE9DVEVUIFNUUklORyBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGFzY2lpX3RvX2JpbmFyeQogICAgICAgYW5kIGhleF90b19iaW5hcnkKICAgCiAgICAgLSBvbWl0IHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBzdHJpbmcgKGhlbHBmdWwgZm9yIG9iamVjdHMgdGhhdCBkb24ndAogICAgICAgYWxsb3cgbm9uLXByaW50aW5nIGNoYXJhY3RlcnMsIGUuZy4gc3lzTG9jYXRpb24uMCkKICAgCjIwMDEtMDUtMjAgMDg6MTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJld3JpdHRlbiBfc2Vzc19yZWFkKCkgZnVuY3Rpb246CiAgIAogICAgICAgLSBiZXR0ZXIgaGFuZGxpbmcgb2YgbG9uZyBwYWNrZXRzCiAgICAgICAtIHplcm8tY29weSByZWNlcHRpb24gb2YgcGFja2V0cyBvbiBzdHJlYW0gdHJhbnNwb3J0cwogICAgICAgLSBsb3dlciBtZW1vcnkgb3ZlcmhlYWRzIGZvciBwYWNrZXQgZnJhZ21lbnQgaGFuZGxpbmcgZm9yIHN0cmVhbQogICAgICAgICB0cmFuc3BvcnRzCiAgIAogICAgIC0gYWxsb3cgcGFyc2luZyBvZiBsYXJnZSBvYmplY3RzICg+ODE5MiBvY3RldHMpCiAgIAoyMDAxLTA1LTIwIDA1OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgY29udGV4dE5hbWUsIHNlY3VyaXR5TmFtZSAtLSBjYXVzZXMgbWlub3IgbWVtb3J5CiAgICAgICBsZWFrLgogICAKMjAwMS0wNS0yMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB0ZXN0IHJldHVybiBvZiBmY250bChGX0dFVEZMKSwgc28gYXMgbm90IHRvIHNldCBmbGFncyB0byBnYXJiYWdlCiAgIAogICAgIC0gY29ycmVjdGlvbiB0byBjb21tZW50IC0tIHNldCBzb2NrZXQgdG8gKmJsb2NraW5nKiEKICAgCiAgICAgLSBjaGVjayBvcGFxdWUgYmVmb3JlIHdyaXRpbmcgdG8gaXQgaW4gcmVjdgogICAKMjAwMS0wNS0yMCAwNTowMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcHJvcGVyIGhhbmRsaW5nIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBpbiBzbm1wX3N5bmNoX2lucHV0OgogICAgICAgc2V0IGFuIGVycm9yIGNvbmRpdGlvbiwgd2l0aCBlcnJubyBTTk1QRVJSX0FCT1JUICgiU2Vzc2lvbiBhYm9ydAogICAgICAgZmFpbHVyZSIpLCB3aGljaCBzZWVtcyBsaWtlIGEgZ29vZCBlbm91Z2ggbWF0Y2guCiAgIAoyMDAxLTA1LTE4IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2UgbmV3bHktYWNjZXB0KCllZCBzb2NrZXRzIGJsb2NraW5nOyBvdGhlcndpc2UgcHJvYmxlbXMgYXJpc2UKICAgICAgIGxhdGVyIHdoZW4gc2VuZCgpaW5nIGxhcmdlIFBEVXMgKHNpbmNlIG9ubHkgYSBzaW5nbGUgc29ja2V0IGJ1ZmZlcidzCiAgICAgICB3b3J0aCBvZiBkYXRhIGF0IG1vc3QgY2FuIGJlIHNlbnQgd2l0aG91dCBibG9ja2luZykuCiAgIAoyMDAxLTA1LTE4IDA3OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGluc3RlYWQgb2YKICAgICAgIHNwcmludF9vYmppZCBhbmQgc3ByaW50X3ZhcmlhYmxlIHJlc3BlY3RpdmVseSwgdG8gYWxsb3cgbGFyZ2UgUERVcwogICAgICAgdG8gYmUgcHJpbnRlZCB3aGVuIGRlYnVnZ2luZwogICAKMjAwMS0wNS0xOCAwNzoxNiAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIHNubXBfcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE4IDA3OjE1ICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICAgIC0gcmVtb3ZlIGRlYnVnZ2luZyBmcm9tIG91dHB1dCByb3V0aW5lcwogICAKICAgICAtIG5ldyBmdW5jdGlvbiBzcHJpbnRfcmVhbGxvY19vYmppZAogICAKICAgICAtIG1ha2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGV4dGVybmFsbHkKICAgICAgIHZpc2libGUKICAgCjIwMDEtMDUtMTggMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIGFzbl9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTUgMDQ6MTAgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPSURzIGZvciBVRFAvSVB2NiBhbmQgVENQL0lQdjYKICAgCjIwMDEtMDUtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gYWRkZWQgXG4gdG8gdGV4dCBvZiBzbm1wX2xvZygpIG1lc3NhZ2VzIChidWcgIzQyMjk3OCkKICAgCjIwMDEtMDUtMTEgMDc6MzAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgICAgLSBhZGRlZCBzcHJpbnRfcmVhbGxvY188dHlwZT4gZmFtaWx5IG9mIGZ1bmN0aW9ucyB3aGljaCB0YWtlIGV4dHJhCiAgICAgICBwYXJhbWV0ZXJzIGFuZCB1c2UgcmVsb2NhdGluZyBidWZmZXJzIHRvIHJlbW92ZSBsaW1pdGF0aW9ucyBkdWUgdG8KICAgICAgIGZpeGVkLXNpemUgYnVmZmVycyAoZS5nLiBzZWUgYnVnICM0MDkxODEpLgogICAKICAgICAtIGFsc28gZml4ZXMgcG90ZW50aWFsIHByb2JsZW0gbm90ZWQgYXMgYnVnICM0MTQ4MDMKICAgCiAgICAgLSBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBhbmQgZnByaW50X3ZhbHVlIHVzZSBuZXcgZnVuY3Rpb25zCiAgICAgICBzdWNoIHRoYXQgc25tcGdldCBldGMuIGFyZSBpbXByb3ZlZCBpbW1lZGlhdGVseQogICAKICAgICAtIG9sZCBmdW5jdGlvbnMgcmVtYWluICpGT1IgTk9XKiAtLSBidXQgcmVhbGx5IHRoZXkgc2hvdWxkIGJlCiAgICAgICBjb25zaWRlcmVkIHRvIGJlIGRlcHJlY2F0ZWQgKG5ldyBmdW5jdGlvbnMgcHJvdmlkZSBhIHN1cGVyc2V0IG9mCiAgICAgICB0aGVpciBmdW5jdGlvbmFsaXR5KS4KICAgCjIwMDEtMDUtMTEgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgICAtIGFkZGVkIGFkZGl0aW9uYWwgZnVuY3Rpb24gcG9pbnRlciB0byBzdHJ1Y3QgdHJlZSB0byBwb2ludCBhdAogICAgICAgcmVsb2NhdGluZyBidWZmZXIgY29tcGF0aWJsZSBvdXRwdXQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMTEgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gYWRkZWQgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3N0cmNhdCwgd2hpY2ggYXBwZW5kcyBhIHN0cmluZyB0byBhCiAgICAgICByZWxvY2F0YWJsZSBidWZmZXIKICAgCjIwMDEtMDUtMTAgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGJ1ZyAjNDIzMTA5IGluY29ycmVjdCBpbmRleCBwYXJzaW5nCiAgIAoyMDAxLTA1LTA5IDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZml4IHNubXBfY2xpZW50LmM6NTY5OiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTA5IDEyOjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi5oLCBSbW9uL1JFQURNRSwgUm1vbi9hZ3V0aWwuYwosIFJtb24vYWd1dGlsLmgsIFJtb24vYWd1dGlsX2FwaS5oLCBSbW9uL2FsYXJtLmMKLCBSbW9uL2FsYXJtLmgsIFJtb24vZXZlbnQuYywgUm1vbi9ldmVudC5oLAogICBSbW9uL2hpc3RvcnkuYywgUm1vbi9oaXN0b3J5LmgsIFJtb24vcm93X2FwaS5oLAogICBSbW9uL3Jvd3MuYywgUm1vbi9yb3dzLmgsIFJtb24vc3RhdGlzdGljcy5jLAogICBSbW9uL3N0YXRpc3RpY3MuaCwgUm1vbi90ZXN0X2FsYXJtLnNoLAogICBSbW9uL3Rlc3RfaGlzdC5zaDoKCiAgIEluY2x1ZGUgQWxleCBSb3ppbidzIFJtb24uCiAgIAoyMDAxLTA1LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIEFkZGVkIGEgY291cGxlIG9mIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgbWFuaXB1bGF0aW5nIHZhcmJpbmRsaXN0czoKICAgICBpbnQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHN0cnVjdCB2YXJpYWJsZV9saXN0ICpuZXd2YXIsIHVfY2hhciB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICp2YWxfc3RyLCBzaXplX3QgdmFsX2xlbik7CiAgICAgdm9pZCBzbm1wX3JlcGxhY2VfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBvbGRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld190eXBlKTsKICAgICB2b2lkIHNubXBfcmVzZXRfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBuZXdfdHlwZSk7CiAgIAoyMDAxLTA1LTA3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBkZWZpbmUgU05NUF9NQUxMT0NfVFlQRURFRigpCiAgIAoyMDAxLTA1LTA1IDA3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgZml4IHN0b3JlXyBuYW1lOyBkb24ndCBjYXN0IHRvIGFzbnkgdHlwZSBpZiBwYXJtIGV4cGVjdGluZyB1X2NoYXIqOyBmaXggX3ZhcmlhYmxlX29pZAogICBuYW1pbmc7IGNhc3QgcGFybSAyIG9mIG1lbWR1cCB0byB1X2NoYXIqCiAgIAoyMDAxLTA1LTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgICAgLS0gbW9yZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgcHJvYmxlbSBmb3VuZC4KICAgCjIwMDEtMDUtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgCjIwMDEtMDUtMDMgMTA6MDggIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICB1cGRhdGVkIHRvIGxpYnRvb2wgMS40CiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIHVzZSByZWFsbG9jIHJvdXRpbmVzLgogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHZhcmlhYmxlIGRlY2xhcmF0aW9uLgogICAKMjAwMS0wNS0wMSAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvbid0IHByaW50IGhleCBmb3Igc3RyaW5nIGxlbmd0aHMgbGVzcyB0aGFuIDQuICBTaG91bGQgaGF2ZSBkaWVkIGFnZXMgYWdvLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICBGaXggcHJvdG90eXBlIHNvIGl0cyBub3Qgc3RhdGljIChpdCBzaG91bGRuJ3QgYmUpLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIG1ha2UgUk9OTFkgdmFyaWFibGVzIHdyaXRhYmxlICh3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrLiAgSSdtIGJldHRpbmcgbm90LikKICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGFuIHJwbSBzdWJkaXJlY3RvcnkuCiAgIAoyMDAxLTA0LTIzIDIwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGJpZyBjbGVhbnVwIGFuZCBvdGhlciBmaXhlcyBJJ3ZlIGFscmVhZHkgZm9yZ290dGVuIGluIHRoZSBsYXN0IGZldyBtaW51dGVzLgogICAKMjAwMS0wNC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCB3YWxrIG9mZiBlbmQgb2YgbWliIHRyZWUgKHNpZ2gpLgogICAKMjAwMS0wNC0yMyAyMDoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGhlIG1pYiBpbmZvIGRpc3BsYXkgb3B0aW9ucy4KICAgc2F2ZSB0aGVtIGFwcHJvcHJpYXRlbHkuCiAgIAoyMDAxLTA0LTIzIDE4OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1vcmUgc2F2YWJsZSBvcHRpb24gaXRlbXMuCiAgIHVzZSBEYXRhOjpEdW1wZXIgdG8gc2F2ZSBtb3N0IHN0dWZmLgogICAKMjAwMS0wNC0yMyAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCBzYXZlIHNlc3Npb24gb3B0aW9ucyB0d2ljZS4KICAgTWFrZSBjb2xvciBvZiB3cml0YWJsZSBvYmplY3RzIGEgdmFyaWFibGUuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRrbWliIChWNC0yLXBhdGNoZXMuMiksIHRrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0yMyAxNjozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICByZWR1Y2Ugc2NyZWVuIHJlYWxlc3RhdGUgYWxsIG92ZXIgdGhlIHBsYWNlCiAgIAoyMDAxLTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHRlc3QgYWdhaW5zdCB2ZXJzaW9uIDUKICAgCjIwMDEtMDQtMTggMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQKLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGRlZCBMTS1TRU5TT1JTLU1JQiBzdXBwb3J0IChkaXNraW8gZXh0ZW5zaW9uKSBmcm9tIE1hcnRpbiBPbGRmaWVsZAogICAKMjAwMS0wNC0xOCAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFja2luZyBvbiBzbm1wX2FkZF92YXIgdG8gaGFuZGxlIGxvbmcgdmFsdWVzCiAgIAogICAgICAgLSB1c2Ugc25tcF97aGV4LGRlY2ltYWx9X3RvX2JpbmFyeSBpbnN0ZWFkIG9mIGhleF90b19iaW5hcnkKICAgICAgICAgYW5kIGFzY2lpX3RvX2JpbmFyeTsgdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQKICAgCiAgICAgICAtIGRvbid0IHVzZSBzdHJ0b2sgaW4gcHJvY2Vzc2luZyBiaXRzdHJpbmdzCiAgIAoyMDAxLTA0LTE4IDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHVzZSB0aGUgZ2VuZXJpYyBzbm1wX3JlYWxsb2MgZnVuY3Rpb24gaW4gYXNuX3JlYWxsb2MKICAgCjIwMDEtMDQtMTggMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gbmV3LCByZWFsbG9jYXRpbmcgdXRpbGl0eSBmdW5jdGlvbnMgc25tcF9oZXhfdG9fYmluYXJ5IGFuZAogICAgICAgc25tcF9kZWNpbWFsX3RvX2JpbmFyeSB0byBjb252ZXJ0IGhleCBhbmQgZGVjaW1hbCBzdHJpbmdzIHRvIG9jdGV0CiAgICAgICBzdHJpbmdzIHJlc3BlY3RpdmVseS4KICAgCiAgICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3JlYWxsb2MgdG8gcGVyZm9ybSBidWZmZXIgKHJlLSlhbGxvY2F0aW9uCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDEwOjA2ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGV4dGVuZGVkIChhbmQgY29ycmVjdGVkISkgY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIG5ldyBBUEkuCiAgIAoyMDAxLTA0LTExIDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wLmMsIHNubXAuaDoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGRfdmFyX29wIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLgogICAKMjAwMS0wNC0xMSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowMiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBhc25fcmVhbGxvYygpIGZ1bmN0aW9uIGNoZWNrcyB3aGV0aGVyIGl0IGhhcyBiZWVuIHBhc3NlZCBhIE5VTEwKICAgICAgIHBvaW50ZXIgYW5kIHVzZXMgbWFsbG9jKCkgaW4gdGhhdCBjYXNlICh0aGFua3MgdG8gTWljaGFlbCBTbGlmY2FrCiAgICAgICBmb3IgcG9pbnRpbmcgb3V0IHRoZSBkYW5nZXIgaGVyZSkuCiAgIAoyMDAxLTA0LTExIDA2OjEzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgR2V0QnVsayByZXF1ZXN0cyB3aXRoIG1heC1yZXBldGl0aW9ucz0wIHByb3Blcmx5IChidWcgIzQxNDg1NSkKICAgCjIwMDEtMDQtMTAgMDQ6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gc2V0IFNPX1NOREJVRiBhbmQgU09fUkNWQlVGIHRvIDEyOEtiIGZvciBuZXdseS1vcGVuZWQgVURQIHNvY2tldHMsCiAgICAgICB0byBlbmFibGUgbGFyZ2UgUERVcyB0byBiZSBzZW50IGFuZCByZWNlaXZlZC4gIFNvbWUKICAgICAgIGltcGxlbWVudGF0aW9ucyBkZWZhdWx0IHZlcnkgbG93IChTb2xhcmlzIDIuNyA4S2IsIExpbnV4IDIuNAogICAgICAgNjRLYikuCiAgIAoyMDAxLTA0LTA5IDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIG1vZGlmaWVkIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIG1ha2UgdXNlIG9mIHJlYWxsb2NhdGluZwogICAgICAgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgICAgLSBhZGRpdGlvbmFsIHBhcmFtZXRlciB0byB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmg6CgogICAgIC0gYWxsb3cgYWRkaXRpb25hbCBwYXJhbWV0ZXIgZm9yIG91dGdvaW5nIHBhcmFtcyB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcHJvdG90eXBlcyBmb3IgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucwogICAKMjAwMS0wNC0wOSAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgdG8gdXNlIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIGlmCiAgICAgICB1c2luZyByZXZlcnNlIGVuY29kaW5nIGF0IGFsbC4KICAgCjIwMDEtMDQtMDkgMDk6NDkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAgIC0gYWRkIG5ldyBmdW5jdGlvbiBzbm1wX3JlYWxsb2NfcmJ1aWxkX3Zhcl9vcCgpIHdoaWNoIHVzZXMKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIHRvIGVuY29kZSB2YXJiaW5kcy4KICAgCjIwMDEtMDQtMDkgMDk6NDcgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gcHJvdG90eXBlIGZvciBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LAogICAgICAgd2hpY2ggcGVyZm9ybSByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUKICAgICAgIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCiAgICAgLSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgYWJvdmUuCiAgIAoyMDAxLTA0LTA5IDA5OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sIHdoaWNoIHBlcmZvcm0KICAgICAgIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCiAgICAgICBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKMjAwMS0wNC0wNiAxMjoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBDT1BZSU5HLCBDaGFuZ2VMb2csCiAgIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgTkVXUywgUE9SVElORywKICAgUkVBRE1FLCBSRUFETUUuYWdlbnR4LCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9kc19hZ2VudC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4LAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMsIGxvY2FsL3NubXBjb25mCiwgbG9jYWwvdGttaWIsIGxvY2FsL3dlc3Jlc3RhcnQsIG1hbi9zbm1wY21kLjEKLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkZWx0YS4xLAogICBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgbWVyZ2UzIC0+IG1lcmdlNC4gIEkgZG9uJ3QgKnRoaW5rKiBJIGJyb2tlIGFueXRoaW5nLgogICAgIC0gVGhlIG1haW4gbGluZSBzaG91bGQgbm93IGNvbnRhaW4gYWxsIHRoZSA0LjIuMSBwYXRjaGVzLgogICAgIC0gSSBtYXkgZG91YmxlIGNoZWNrIHRoaXMgYXQgYSBsYXRlciBkYXRlLgogICAKMjAwMS0wNC0wNSAwNjozNyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ2hhbmdlICdMaW5lJyB2YXJpYWJsZSBuYW1lLCB0byBhc3Npc3Qgd2l0aCBNYWMgcG9ydC4KICAgCjIwMDEtMDQtMDUgMDY6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgQWxzbyBhcHBsaWVkIHRvICdwYXNzX3BlcnNpc3QnLgogICAKMjAwMS0wNC0wNSAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsIGtlcm5lbC5jCiwgbWliX21vZHVsZXMuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgKLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDUgMDY6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEVuc3VyZSB0aGF0IGNoZWNraW5nIGZvciAnc3RhdHZmcycgaXMgZG9uZSBjb25zaXN0ZW50bHkKICAgCjIwMDEtMDQtMDUgMDY6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGVuc3VyZSB0aGF0ICdleGVjX2NvbW1hbmQnIGlzIHVzZWQgY29uc2lzdGVudGx5IHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiBleGVjdgogICAoQSBjbGVhbmVyIGFwcHJvYWNoIHRoYW4gdGhlIHByZXZpb3VzIHBhdGNoKQogICAKMjAwMS0wNC0wNSAwNjowMSAgZHRzMTIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDUgMDQ6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gc2F2ZSBhIHN0cmNweSgpIGFuZCBhbGxvdyBsb25nIG9jdGV0IHN0cmluZyB2YWx1ZXMgd2l0aG91dCBjcmFzaGluZwogICAgICAodGhvdWdoIHRoZXJlIGFyZSBzdGlsbCBwcm9ibGVtcyBkdWUgdG8gdGhlIGxpYmVyYWwgdXNlIG9mIGZpeGVkCiAgICAgIHNpemUgYnVmZmVycyB3aXRoIG5vIGJvdW5kcyBjaGVja2luZyBhbGwgb3ZlciB0aGUgcGxhY2UuICBTaWdoKS4KICAgCjIwMDEtMDQtMDQgMDY6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDMgMDk6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEVuc3VyZSB0aGF0IHRoZSAnZXh0bXAnIGNvbW1hbmQgdmFyaWFibGUgaXMgYWNjZXNzaWJsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgRVhFQ1YuCiAgIAoyMDAxLTA0LTAzIDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MjIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmMsIHNubXBUQ1BEb21haW4uaAosIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsCiAgIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0LmgsIHN5c3RlbS5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAxMDoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBjaGVjayBmb3IgbGltaXRzLmggcHJvcGVybHkKICAgCjIwMDEtMDQtMDIgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSBtaW5vciB0eXBlZmFjZSBjaGFuZ2VzCiAgIAoyMDAxLTAzLTMxIDA2OjI3ICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gdXBkYXRlIGRvY3VtZW50YXRpb24gb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MgdG8gcmVmbGVjdAogICAgICBjdXJyZW50IGJlaGF2aW91cgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MjUgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMzoKCiAgICAtIGRvY3VtZW50IHRoZSBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyIGZ1bmN0aW9uCiAgIAogICAgLSBleHBhbmQgdGhlIE5PVEVTIHNlY3Rpb24gZGlzY3Vzc2luZyB1c2Ugb2YgU0lHQUxSTSAob3Igbm90KQogICAKMjAwMS0wMy0zMSAwNjoxNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seSBhbmQgY2FuY2VsIGFsbAogICAgICBjYWxsYmFja3Mgd2hpY2ggbWFrZSByZWZlcm5jZSB0byB0aGUgQWdlbnRYIHNlc3Npb24uCiAgIAoyMDAxLTAzLTMxIDA2OjE1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAtIEZpeCBtdWx0aXBsZSBmcmVlKCkgb2YgcGFydHMgb2YgdGhlIHN1YnNlc3Npb24gYnkgemVyb2luZyBvdXQKICAgICAgZmllbGRzIHRoYXQgd2UgZG9uJ3QgdXNlLgogICAKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gRml4IG1lbW9yeSBsZWFrIGluIGhhbmRsZV9vbmVfdmFyIHdoZXJlIGxvbmcgdmFyYmluZHMgd2VyZW4ndAogICAgICBjb3JyZWN0bHkgZnJlZSgpZC4KICAgCiAgICAtIENoYW5nZSBiZWhhdmlvdXIgb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3Mgc28gdGhhdCBhbGFybXMgcnVuCiAgICAgIGNvcnJlY3RseS4KICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIENoYW5nZWQgcGFja2V0IGhhbmRsaW5nIG9uIHN0cmVhbS1saWtlIHRyYW5zcG9ydHMgc28gdGhhdCBhbGwKICAgICAgY29tcGxldGUgcmVjZWl2ZWQgcGFja2V0cyBhcmUgcHJvY2Vzc2VkOgogICAKICAgICAgX3Nlc3NfcmVhZCBpcyByZWZhY3RvcmVkIGludG8gdHdvIGZ1bmN0aW9uczogX3Nlc3NfcmVhZCByZW1haW5zCiAgICAgIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSB0aGUgdHJhbnNwb3J0IGxheWVyLCBidXQgdGhlbgogICAgICBjYWxscyAocGVyaGFwcyBtb3JlIHRoYW4gb25jZSkgX3Nlc3NfcHJvY2Vzc19wYWNrZXQgdG8gZGlzcGF0Y2gKICAgICAgZWFjaCBwYWNrZXQgcmVhZC4KICAgCiAgICAtIFRoZSBwcmVzZW5jZSBvZiBhIHNlc3Npb24gd2l0aCBhIGJ1ZmZlcmVkIHBhcnRpYWwgcGFja2V0IG5vIGxvbmdlcgogICAgICBjYXVzZXMgc25tcF9zZWxlY3RfaW5mbyB0byByZXR1cm4gd2l0aCBhIHRpbWVvdXQgb2YgemVyby4KICAgCiAgICAtIEZyZWUgdGhlIHN1YnNlc3Npb25zIG9mIGEgc2Vzc2lvbiB3aGVuIGRvaW5nIGFuIHNubXBfc2Vzc19jbG9zZTsKICAgICAgdGhpcyBmaXhlcyBhbiBBZ2VudFggbWVtb3J5IGxlYWsgd2hlbiBzdWJhZ2VudHMgY29tZSBhbmQgZ28uCiAgIAogICAgLSBQZXJmb3JtIGNhbGxiYWNrcyB3aXRoIGFuIG9wZXJhdGlvbiBhcmd1bWVudCBvZgogICAgICBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgd2hlbiB5b3UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDMtMzEgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgTWFkZSB0cmFuc3BvcnQgZG9tYWluIGNvbnN0CiAgIAoyMDAxLTAzLTMxIDA1OjU1ICBqYnBuCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB0aGF0IGNhbiBvY2N1ciB3aGVuIGRlcmVnaXN0ZXJpbmcgY2FsbGJhY2tzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgZmlsZSBSRUFETUUuYWdlbnR4IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMjkgMjE6NDMgIGhhcmRha2VyCgogICAqIElTU1VFUyAoVjQtMi1wYXRjaGVzLjEpLCBJU1NVRVM6CgogICBybSBJU1NVRVMKICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBsaWJzbm1wLmRlZgo6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDY6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MzYgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgLSByZW5hbWUgY2FsbGJhY2sgb3BlcmF0aW9ucyB0byBTTk1QX0NBTExCQUNLX09QXzxuYW1lPgogICAgLSBhZGQgbmV3IG9wZXJhdGlvbnMgU05NUF9DQUxMQkFDS19PUF9DT05ORUNULCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QKICAgIC0gYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgUkVDRUlWRURfTUVTU0FHRSwgVElNRURfT1VULCBTRU5EX0ZBSUxFRAogICAKMjAwMS0wMy0yNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgY2hhbmdlIGZwcmludGYgLT4gc25tcF9sb2cuCiAgIERvbid0IGFsbG93IG1vZGlmaWNhdGlvbnMgb2YgcmVhZC1vbmx5IHJvd3MgaW4gbXRlT2JqZWN0c1RhYmxlLgogICAKMjAwMS0wMy0yNyAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMKLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBTdXBwb3J0IGZvciBuZXcgZmVhdHVyZXMgaW4gdGhlIERJU01BTi1FVkVOVC1NSUIgY29kZToKICAgICBOZXcgc25tcGQuY29uZiB0b2tlbnM6CiAgICAgIC0gbW9uaXRvciBbLW8gb2lkLi4uXSBbLXUgdXNlcl0gb2lkIFsoPXwhPXw8PXwuLi4pIFZBTFVFXS4KICAgICAgLSBkZWZhdWx0TW9uaXRvcnMgeWVzCiAgIAoyMDAxLTAzLTI3IDEwOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTW92ZWQgKiBmcm9tIGJlZ2lubmluZyBvZiByb3V0aW5lIHRvIHRoZSBzYW1lIGxpbmUgYXMgdGhlIHJldHVybgogICB2YXJpYWJsZSBkZWNsYXJhdGlvbi4gIFdhcyBjYXVzaW5nIGV0YWdzIGdyaWVmIHRoZSBvdGhlciB3YXkuCiAgIAoyMDAxLTAzLTI3IDEwOjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbjogdXNlICVzIGluc3RlYWQgb2YgQHMgZm9yIHNlYXJjaC9yZXBsYWNlIGRlbGltaXRlcnMuCiAgIAoyMDAxLTAzLTI3IDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgdHJhcF9mbXRfZnJlZSBuZWVkcyAoKXMuCiAgIAoyMDAxLTAzLTI3IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBdm9pZCBkb3VibGUtZnJlZWluZyBvZiBjYWNoZWQgYWRkcmVzcyBzdHJpbmdzLgogICAgICAoSm9obidzIGltcHJvdmVtZW50IHRvIG15IHN1Z2dlc3RlZCBmaXgpLgogICAKMjAwMS0wMy0yNyAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGlwZi1tb2QucGwgKFY0LTItcGF0Y2hlcy4xKSwgaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAwNzo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIEFTTl9PQ1RFVF9TVFIgcmF0aGVyIHRoYW4gdGhlIGhpc3RvcmljIEFTTl9CSVRfU1RSIGZvciAnYicgb2JqZWN0IHZhbHVlcwogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAoVjQtMi1wYXRjaGVzLjMpLCBhZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MzAgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBdm9pZCBjcmFzaCBpbiBzbm1wX3NodXRkb3duIG9uIHBsYXRmb3JtcyB0aGF0IGNoZWNrIHBvaW50ZXIgdmFsaWRpdHkKICAgaW4gZnJlZSgzKSwgZS5nLiBGcmVlQlNELgogICAKMjAwMS0wMy0yMSAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGNvcHlfbndvcmQgY3JlYXRlZCB0aGF0IGNoZWNrcyBidWZmZXIgbGVuZ3Rocy4KICAgTWFkZSBldmVyeXRoaW5nIHVzZSBpdC4KICAgCjIwMDEtMDMtMjEgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0yMCAwOToxMyAgamJwbgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIFB1cmlmeSBhbmQgTkZTIHN0dWZmCiAgIAoyMDAxLTAzLTE2IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGFkZGVkIE1JVF9ORVdfQ1JZUFRPIChmb3Iga3NtKSBkZWZpbml0aW9uIHdoaWNoIHdhcyBtaXNzaW5nCiAgIAoyMDAxLTAzLTE2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCByaWRpY3Vsb3VzIG1lbW9yeSBsZWFrIGluIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgd2hvb3BzLiAgTWlzc2VkIGEgbWVyZ2UgY29uZmxpY3QgbGluZQogICAKMjAwMS0wMy0xNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBSRUFETUUud2luMzIsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wdHJhcGQuOAosIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LAogICBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9SRUFETUUubWlicywKICAgbWlicy9UVU5ORUwtTUlCLnR4dCwgbWlicy9pYW5hbGlzdCwgbWlicy9taWJmZXRjaAosIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmYsIG1pYnMvc21pc3RyaXAKLCBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5oLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBtZXJnZSBmcm9tIHBhdGNoZXMgYnJhbmNoOiBtZXJnZTItPjMuCiAgIAoyMDAxLTAzLTE1IDEwOjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGV4dHJhIG1lbWJlcnMgZm9yIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAwNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBydW4gc2lnbmFsIGhhbmRsZXJzIGVhcmxpZXIKICAgCjIwMDEtMDMtMTQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5oIChWNC0yLXBhdGNoZXMuMiksIGFnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTI6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMTowNSAgc2xpZgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaAosIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgdGhlIHRlc3Qgc2NyaXB0IGNoYW5nZXMgbWFkZSBpbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaC4KICAgCjIwMDEtMDMtMTQgMTA6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQ2hhbmdlIHRvIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZyB0byBzdG9wIGl0IHJldHVybmluZyBUUlVFIGFsbCB0aGUKICAgdGltZQogICAKMjAwMS0wMy0xNCAxMDo1MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAgLSByb3VnaCBzdGFiIGF0IGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAgLSBiYWlsIG91dCBvZiBnZXROZXh0LXR5cGUgbG9vcHMgb24gYSBiYWRUeXBlIGNvbmRpdGlvbgogICAKMjAwMS0wMy0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBrZXJiZXJvcyBSRUFETUUgZmlsZSBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMTQgMTA6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBHZXQgcmV0dXJuZWQgKnZhcl9sZW4gcmlnaHQgZm9yIG10ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRAogICAKMjAwMS0wMy0xNCAxMDoxOSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBxdWlldCBzb21lIHdhcm5pbmdzLgogICAKMjAwMS0wMy0xNCAxMDoxOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbi4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0yLXBhdGNoZXMuNSksIGhyX3N3cnVuLmMKOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRuRuZ2VyKQogICAKMjAwMS0wMy0xNCAwNToyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMDMtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgIC0gc2F2ZSBvcmlnaW5hbCBQRFUncyB0cmFuc3BvcnQgZG9tYWluIC0tIG5lY2Vzc2FyeSBmb3IKICAgICAgY29tbXVuaXR5IHN0cmluZyBwcm9jZXNzaW5nCiAgIAogICAgICBDQVVUSU9OOiBpbmNvbXBhdGlibGUgY2hhbmdlIGluIGZvcm1hdCBvZiBtdGVUcmlnZ2VyVGFibGUKICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBlbnRyeQogICAKICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG10ZV9ydW5fdHJpZ2dlciBieSByZWxlYXNpbmcgUERVcwogICAKICAgIC0gc2VuZCAiYmFkIHR5cGUiIG5vdGlmaWNhdGlvbnMgaW4gc29tZSBjYXNlcwogICAKICAgIC0gb3RoZXIgbWlub3IgbWVtb3J5IGxlYWtzCiAgIAogICAgLSAiZGVsdGEiIHNhbXBsZVR5cGUgaGFuZGxlZCBmb3IgYm9vbGVhbiB0cmlnZ2VycwogICAKICAgIC0gbW9yZSAiWFhYOiIgY29tbWVudHMhCiAgIAoyMDAxLTAzLTEzIDEzOjUyICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHN1cHBvcnQgZm9yIEludGVnZXIzMgogICAKMjAwMS0wMy0xMSAwODo0MyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3Qgd2hldGhlciBhbiBPSUQgY29ycmVzcG9uZHMgdG8gYSBzdXBwb3J0ZWQgdHJhbnNwb3J0CiAgIGRvbWFpbi4KICAgCjIwMDEtMDMtMTEgMDc6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmg6CgogICBBZGQgI2luY2x1ZGVzIHRvIG1ha2Ugc3RydWN0IHNvY2thZGRyX2luIGNvbXBsZXRlCiAgIAoyMDAxLTAzLTExIDA3OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaDoKCiAgIFJlbW92ZSBzcHVyaW91cyAjaW5jbHVkZQogICAKMjAwMS0wMy0wOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcnd1c2VyIC1zIG1vZGVsIHRvIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAxLTAzLTA5IDA1OjUyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU2V0IGEgUERVJ3Mgb3BhcXVlIGRhdGEgb24gYSB0Y3BfcmVjdjsgdGhpcyBpc24ndCBuZWNlc3NhcnkgdG8gc2VuZAogICByZXBsaWVzIChiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBpcyBzdHJvbmdseSBjb25uZWN0ZWQpIGJ1dCBpZgogICB5b3UgZG9uJ3QgZG8gdGhpcyB0aGVuIHlvdSBjYW4ndCBkbyAiY29tMnNlYyIgdHlwZSBwcm9jZXNzaW5nIGZvciBQRFVzCiAgIHJlY2VpdmVkIG9uIFRDUCBzZXNzaW9ucy4uLiBpbnRlcmVzdGluZy4KICAgCjIwMDEtMDMtMDkgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggYmFkIGFzc3VtcHRpb24gdGhhdCBjb21tdW5pdHkgc3RyaW5nIGlzIHplcm8tdGVybWluYXRlZAogICAKMjAwMS0wMy0wOCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29ycmVjdCB2ZXJzaW9uIHN0YXRlbWVudHMgdG8gaW5kaWNhdGUgbmV0LXNubXAuCiAgIC0gcmVtb3ZlIG15IG5hbWUgYXMgYXV0aG9yIChJJ20gY2VydGFpbmx5IG5vdCB0aGUgb25seSBvbmUpCiAgIC0gYWRkIHdlYiBhZGRyZXNzLgogICAKMjAwMS0wMy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBLZW4gSG9ybnN0ZWluJ3MgbmFtZSB0byBjb250cmlidXRlcnMgbGlzdC4KICAgLSBSZW1vdmVkIG1pbmUgZnJvbSBiZWluZyBsaXN0ZWQgc2VwYXJhdGVseS4KICAgCjIwMDEtMDMtMDggMTQ6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgQWRkZWQgYSBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2R1bGUgKGtzbSkuCiAgICAgSG93ZXZlciwgTmVlZHMgbGlicmFyaWVzICgtbGtyYjUgLWxjb21fZXJyKSBub3QgYmVpbmcgY2hlY2tlZCBmb3IgY3VycmVudGx5LgogICAKMjAwMS0wMy0wOCAxNDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgV2hvb3BzLiAgU2hvdWxkbnQgaGF2ZSBhIG5lZ2F0aW9uIHNpZ24gb24gdGhlIG1vc3QgcmVjZW50IGNoZWNraW4uCiAgIAoyMDAxLTAzLTA4IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJZiBOT19QUk9CRSBpcyBzZXQsIGRvbid0IGRvIGFueSBwb3N0IHByb2JpbmcgYWN0aXZpdGllcyBlaXRoZXIgbGlrZQogICB0aW1lIHVwZGF0aW5nIGFuZCB1c2VyIGNyZWF0aW9uLgogICAKMjAwMS0wMy0wOCAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBSZW1vdmUgc3RyZHVwKClzIG9uIHNvbWUgc2Vzc2lvbiBwYXJhbWV0ZXJzIHdoaWNoIGNhdXNlIG1lbW9yeSBsZWFrcwogICAoc2luY2Ugc25tcF9vcGVuIGRlZXAgY29waWVzIHRoZSBpbnB1dCBzZXNzaW9uIGFueXdheSkKICAgCjIwMDEtMDMtMDggMDg6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIE1ha2Ugc3VyZSBzZXNzIGZpZWxkIG9mIG5ldyBlbnRyaWVzIGlzIGluaXRpYWxpc2VkIHRvIE5VTEwuCiAgIAoyMDAxLTAzLTA4IDA3OjQ5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIE1ha2UgY29uZmlnIHRva2VuIHBhcnNlciB1cGRhdGUgdGltZXN0YW1wIG9uIGVudHJ5IGl0IGNyZWF0ZXM7CiAgIG1vdmUgdXBkYXRlX3RpbWVzdGFtcCBmdW5jdGlvbi4KICAgCjIwMDEtMDMtMDcgMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbSwgU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIHJlbW92ZSB1bm5lZWRlZCB0aW1lc3RhbXAgc3VwcG9ydAogICAKMjAwMS0wMy0wNiAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsIHNubXBfc2VjbW9kLmMKLCBzbm1wX3NlY21vZC5oLCBzbm1wdXNtLmM6CgogICBzZWNtb2Qgc3RydWN0IHN5bWJvbCBuYW1lIGNoYW5nZXMgdG8gc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlLgogICAKMjAwMS0wMy0wNiAxNjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIHNldCB0aGUgZGVmYXVsdCBwZHUgc2VjdXJpdHkgbW9kZWwgdG8gU05NUF9ERUZBVUxUX1NFQ01PREVMIChub3QgMCkuCiAgIC0gZG9uJ3QgZm9yY2UgdGhlIHNlY3VyaXR5IG1vZGVsIG9mIHRoZSBzZXNzaW9uIG9uIHRoZSBwZHUgaWYgYWxyZWFkeSBzZXQuCiAgIAoyMDAxLTAzLTA2IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGhvcGVmdWxseSBmaXggdG8gYWxsb3cgb3RoZXIgKHJlZ2lzdGVyZWQpIHNlY3VyaXR5IG1vZGVscyB0byBiZSB1c2VkLgogICAKMjAwMS0wMy0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMjAwMS0wMy0wNiAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBDcmVhdGUgYSBuZXcgc2VjbW9kIGNhbGxiYWNrIHdoZW4gYSB0aW1lb3V0IG9uIGEgcGR1IG9jY3Vycy4KICAgCjIwMDEtMDMtMDYgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcHJvcGVybHkgaW5zdGFsbCBzZWNtb2QgaGVhZGVyIGxpc3QuCiAgIAoyMDAxLTAzLTA2IDA4OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gYnVnIGZpeGVzIGZvciBzZWNtb2QgcmVsYXRlZCBzdHVmZiAoaXQgY29tcGlsZXMgbm93IChvcHBzKSkuCiAgIAoyMDAxLTAzLTA2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gdHdvIG5ldyBzZWNtb2QgY2FsbGJhY2tzIGZvciBmcmVlaW5nIGEgcGR1IGFuZCBhIHNlc3Npb24uCiAgIC0gbW92ZSB0cmFuc3BvcnQgY2xvc2luZyBpbiBzbm1wX3Nlc3NfY2xvc2UoKSB0byBhZnRlciBwZW5kaW5nCiAgICAgcmVxdWVzdHMgYXJlIGZyZWVkL2Nsb3NlZCBpbiBjYXNlIHNvbWV0aGluZyBuZWVkcyB0byBtYWtlIHVzZSBvZiB0aGUKICAgICB0cmFuc3BvcnQgYmVmb3JlIGl0IGNsb3Nlcy4KICAgCjIwMDEtMDMtMDYgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgUGFzcyBpbiBwZHUgdG8gc2VjbW9kIGVuY29kZS9kZWNvZGUgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA2IDAzOjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vZGlmaWVkIGZ1bmN0aW9uIEludGVyZmFjZV9JbmRleF9CeV9OYW1lIChTb2xhcmlzIHNwZWNpZmljKSB0byBjb3BlIG1vcmUKICAgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMgb2YgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMKICAgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZCBtZW1vcnkgcmVhZHMuCiAgIAoyMDAxLTAzLTA1IDE2OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXZlcnNlIGNhbGxiYWNrIG9yZGVyaW5nIG9mIG5vcm1hbCBjYWxsYmFjay9zZWNtb2QgY2FsbGJhY2sKICAgcHJvY2Vzc2luZyBpbiBzZXNzX2NvcHkoKS4KICAgCjIwMDEtMDMtMDUgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIHJlbW92ZSB1bnVzZWQgZnJlZSBmdW5jdGlvbiBjYWxscyBmb3Igc2VjdXJpdHkgbW9kdWxlIHVucmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDMtMDUgMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgbWlub3IgQVBJIGNoYW5nZXMgdG8gdGhlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbCBoYW5kbGluZy4KICAgCjIwMDEtMDMtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3Blcmx5IHJlc3BlY3QgdGhlIERPTlRfUFJPQkVfRkxBRy4KICAgCjIwMDEtMDMtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX3NlY21vZC5oCjoKCiAgIGFkZCBhIHNlc3Npb24gcG9pbnRlciB0byB0aGUgdjMgYnVpbGQgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA1IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIEFkZCBhIGtyYjUgc3BlY2lmaWMgZXJyb3IgY29kZS4KICAgCjIwMDEtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcHJvcGVybHkgaGFuZGxlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2R1bGVzCiAgIAoyMDAxLTAzLTA1IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIG1rZGlyIHNubXBsaWIgYmVmb3JlIGNyZWF0aW5nIGEgZmlsZSBpbiBpdAogICAKMjAwMS0wMy0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSByZXNwZWN0IG5vbi1sb2NhbCBzcmNkaXJzIGZvciB0cmFuc3BvcnQvc2VjbW9kcwogICAKMjAwMS0wMy0wNSAxMDo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvLmN2c2lnbm9yZSwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBzdXBwb3J0IGZvciBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWxzLiAgQ3VycmVudGx5IG9ubHkgdGhlIFVTTSBpcwogICBhdmFpbGFibGUsIGJ1dCBhIG5ldyBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2RlbCB3aWxsIGJlIGF2YWlsYWJsZQogICBzaG9ydGx5LiAgVGhlc2UgY2hhbmdlcyBzaW1wbHkgbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgbW9yZSB0aGFuIG9uZQogICBzZWN1cml0eSBzZXJ2aWNlLgogICAKMjAwMS0wMy0wNSAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfc2VjbW9kLmMsIHNubXBfc2VjbW9kLmg6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgYXV0aG9ycyBsaXN0LgogICAKMjAwMS0wMy0wNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uaDoKCiAgIENvbW1lbnQgcmUtYXJyYW5naW5nIHRvIGFjdHVhbGx5IGJlIG5lYXIgdGhlIGZ1bmN0aW9ucyB0aGV5J3JlIGRlc2NyaWJpbmcuCiAgIAoyMDAxLTAzLTA1IDA2OjEwICBqYnBuCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCBnZXRfbXlhZGRyKCkgZnVuY3Rpb24gdG8gY29wZSBtb3JlIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzCiAgIG9mIGludGVyZmFjZXMsIGFuZCB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBub24tSVB2NCBhZGRyZXNzZXMgb24gc29tZQogICBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcyBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkCiAgIG1lbW9yeSByZWFkcy4gIFVzZSAib2ZmaWNpYWwiIGRlZmluaXRpb24gb2YgSU5BRERSX0xPT1BCQUNLLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvUkVBRE1FLm1pYnM6CgogICBmaWxlIFJFQURNRS5taWJzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0OgoKICAgZmlsZSBpYW5hbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgZmlsZSByZmNsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIGZpbGUgcmZjbWlicy5kaWZmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDEgMTk6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yOCAyMzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgIHNubXBfcGFyc2VfYXJncy5jOgoKICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZyhjaGFyICpsaW5lKSB0byBwYXJzZSBhIC5jb25mIGNvbmZpZ3VyYXRpb24KICAgICBsaW5lIGF0IGFueSB0aW1lIGluIHRoZSBjb2RlIChoYW5kbGVycyBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGhhbmQpLgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnX3JlbWVtYmVyKGNoYXIgKmxpbmUpIHRvIG1lbW9yaXplIGl0IGZvcgogICAgIGxhdGVyIHVzZS4KICAgLSByZWFkX2NvbmZpZ3MsIGV0IGFsLCB3aWxsIGF1dG9tYXRpY2FsbHkgY2FsbCB0aGVtIGFmdGVyIHJlYWRpbmcKICAgICBldmVyeXRoaW5nIGVsc2UuCiAgIC0gQWRkZWQgYSAtWSBmbGFnIHRvIHNubXBfcGFyc2VfYXJncyB0byBzdG9yZSByZWFkIGNvbmZpZyBkaXJlY3RpdmVzCiAgICAgZm9yIGxhdGVyIHVzZSwgdGh1cyBhbGxvd2luZyB5b3UgdG8gc3BlY2lmeSAuY29uZiBkaXJlY3RpdmVzIG9uIHRoZQogICAgIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDItMjcgMDc6MjggIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgYW5kIFZBQ00gY2hlY2tpbmcgaW50ZXJhY3Rpb24uCiAgIChGaXggcHJvdmlkZWQgYnkgRnJhbmsgU3RyYXVzcykKICAgCjIwMDEtMDItMjEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB1Y2Qtc25tcC1pbmNsdWRlcy5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHVjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogaW50NjQuYyAoVjQtMi1wYXRjaGVzLjIpLCBpbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2YXJfc3RydWN0LmggKFY0LTItcGF0Y2hlcy4xKSwgdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNiAwNDoxNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBDaGFuZ2UgYmVoYXZpb3VyIG9uIGN5Z3dpbiB0byBleGNsdWRlIFVuaXggZG9tYWluIHRyYW5zcG9ydHMgYnkgZGVmYXVsdAogICBvbiBjeWd3aW4sIGFuZCBhbHNvIGZpeCBhIG1pbm9yIGJ1ZywgdGhhbmtzIHRvIHN1Z2dlc3Rpb25zIGJ5IFBldGVyIEZvbGsuCiAgIAoyMDAxLTAyLTE0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMiAxNDoxMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZGVkIEthcmwncyBwYXRjaCBmb3IgdXNlbnVtZXJpYwogICAKMjAwMS0wMi0xMiAxMzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgU05NUC5wbSwgU05NUC54cywKICAgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgYWRkZWQgdHJhcCByZWNlcHRpb24gQVBJIGZyb20gUGhpbGlwIFByaW5kZXZpbGxlIDxwaGlsaXBwQGNpc2NvLmNvbT4KICAgCjIwMDEtMDItMTEgMDg6MjMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2FkZCBub3Qgc25tcF9zZXNzX2FkZCAodGhlIGxhdHRlciBkb2Vzbid0IGFkZCBhIHNlc3Npb24gdG8KICAgdGhlIFNlc3Npb24gbGlzdCwgYW5kIGl0IHRoZXJlZm9yZSB3b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdCgpCiAgIGZkc2V0LCBoZW5jZSBzbm1wdHJhcGQgd2lsbCBuZXZlciByZWNlaXZlIHZlcnkgbXVjaCkuCiAgIAoyMDAxLTAyLTExIDA4OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGltcHJvcGVybHktdGVybWluYXRlZCBsaXN0IGluIGNvbTJzZWMgaGFuZGxpbmcuCiAgIAoyMDAxLTAyLTExIDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDbGVhbiB1cCBtZXJnZSAoPj4+Pj4+LCA9PT09PT0gZXRjLiBsZWZ0IGJlaGluZCkuCiAgIAoyMDAxLTAyLTEwIDA5OjI2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvLgogICAKMjAwMS0wMi0xMCAwOToxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmMsCiAgIHN1YmFnZW50LmM6CgogICBNZW1vcnkgbGVhayBwYXRjaGVzIChzb3VyY2Vmb3JnZSBwYXRjaCAjMTAzNjA1KS4KICAgUmVtb3ZlIGEgZmV3IHN0cmR1cCgpcywgYW5kIGNhbGwgZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24oKSByYXRoZXIgdGhhbgogICBmcmVlKCkgaW4gc3ViYWdlbnQuYzpoYW5kbGVfYWdlbnR4X3BhY2tldCgpIGZvciBBR0VOVFhfTVNHX1JFU1BPTlNFCiAgIGFuZCBkZWZhdWx0IGNhc2VzLCB0byBlbnN1cmUgZnJlZSgpaW5nIG9mIGNsb25lZCBQRFUgYWxsb2NhdGVkIGJ5CiAgIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAKMjAwMS0wMi0xMCAwNzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uYywgc25tcElQWERvbWFpbi5oLCBzbm1wVENQRG9tYWluLmMKLCBzbm1wVENQRG9tYWluLmgsIHNubXBVRFBEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5oLCBzbm1wVW5peERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5oCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIFdob29wcy4gIEZvcmdvdCB0aGUgbmV3IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGx1Z2dhYmxlIHRyYW5zcG9ydCBzdHVmZi4KICAgCjIwMDEtMDItMDkgMTE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLCBtdGVPYmplY3RzVGFibGUuYwosIG10ZU9iamVjdHNUYWJsZS5oLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmgsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgSW1wbGVtZW50ZWQgYW5kIG1hZGUgdXNlIG9mIG10ZU9iamVjdHNUYWJsZSB0byBzZW5kIGFkZGl0aW9uYWwgb2JqZWN0cyBvdXQgd2l0aCB0cmFwcyBnZW5lcmF0ZWQuICBBbHNvLCBkb24ndCByZXR1cm4gZGF0YSBmb3IgbWlzYyB0YWJsZXMgd2hlbiB0aGF0IHRyaWdnZXIgaXNuJ3QgZGVmaW5lZCB0byB1c2UgdGhhdCB0ZXN0IHR5cGUuCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jIChWNC0yLXBhdGNoZXMuMiksIG1pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuMSksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmMKICAgKFY0LTItcGF0Y2hlcy5bMSw0XSksIG1lbW9yeV9mcmVlYnNkMi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDkgMTA6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi92YWNtLmg6CgogICBBcHBsaWVkIHBhdGNoIDEwMzUxMDogZG9tYWluIHRyYW5zcG9ydCBpbmRlcGVuZGVuY2UuICBOb3RlOiBUcmFwcy9WQUNNIGJyb2tlbi4KICAgCjIwMDEtMDItMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsIFQwMjBzbm1wdjNnZXQsCiAgIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDIyc25tcHYzZ2V0TUQ1LAogICBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwKICAgVDAyNXNubXB2M2dldFNIQURFUywgVDAyOHNubXB2M2dldGZhaWwsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQwNTNhZ2VudHYxdHJhcCwKICAgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwgVDEwMGFnZW50aHVwCiwgVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwgVDExMmFnZW50eHNldGZhaWwKLCBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQKLCBUMTIycHJveHlzZXRmYWlsOgoKICAgdXBkYXRlZCBtb3N0IHRlc3RzIHRvIHVzZSBudW1lcmljIE9JRHMgc28gYXMgdG8gbm90IHJlbHkgb24gbWliIHBhcnNpbmcKICAgCjIwMDEtMDItMDkgMDc6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlOiBnZXRfYWdlbnR4X3RyYW5zSUQKICAgCjIwMDEtMDItMDggMTQ6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC90cmFwdG9lbWFpbCwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgdHJhcHRvZW1haWwgcGVybCBzY3JpcHQgY3JlYXRlZCBhcyBhbiBleGFtcGxlIHRyYXBoYW5kbGUgc2NyaXB0CiAgIAoyMDAxLTAyLTA4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgYXBwcy9zbm1wZGVsdGEuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvbWliMmMsIG1hbi9zbm1wY21kLjEsIG1pYnMvUk1PTi1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIE1lcmdlIGZyb20gVjQtMi1wYXRjaGVzOiBtZXJnZSAxLT4yCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYyAoVjQtMi1wYXRjaGVzLjEpLCBkaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHVzZSBzbm1wX2VudW0ncyBwcm9wZXJseSAoc3RyZHVwKCkgdGhlIHN0cmluZ3MgZmlyc3QpCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgcHJvcGVyIGNvbnN0bmVzcyBmb3Igc29tZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMS0zMCAxMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGJ1ZyBJIGp1c3QgaW50cm9kdWNlZCAocmV0dXJuaW5nIHByb3BlciBzYXZldG8gcG9pbnRlcikKICAgCjIwMDEtMDEtMzAgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSBzbm1wc2V0cyBhcmUgc3VwcG9ydGVkCiAgICAgLSBBIG5ldyAic2V0IiBidXR0b24gaGFzIGJlZW4gYWRkZWQgdG8gcGVyZm9ybSBzZXRzIG9uIGFuIG9pZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIGEgdGFibGUgYXJlIG5vdyBidXR0b25zIHRoYXQgYnJpbmcgdXAgdGhlCiAgICAgICBzZXQgd2luZG93IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgaW5zdGF0ZWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiB0aGUgb3V0cHV0IG9mIHNubXB7Z2V0LHdhbGssZ2V0bmV4dH0KICAgICAgIGJ1dHRvbnMgYXJlIGRpc3BsYXllZCBhcyBibHVlIGFuZCBhcmUgY2xpY2thYmxlIHRvIGNoYW5nZSB0aGVpcgogICAgICAgdmFsdWVzLgogICAtIHNldHRpbmdzIGNvbmZpZ3VyZWQgdmlhIHRoZSBvcHRpb25zIG1lbnUgY2FuIG5vdyBiZSBzYXZlZC4KICAgLSB1c2UgR2V0b3B0OjpTdGQgbm93LgogICAtIHN1cHBvcnRzIG1vc3Qgb2YgdGhlIGltcG9ydGFudCBzbm1wY21kKDEpIGZsYWdzIGZvciBzZXNzaW9uIHNldHVwLgogICAKMjAwMS0wMS0zMCAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIG10ZVRyaWdnZXJUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuaCwKICAgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgSW5pdGlhbCAobm90LWNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRElTTUFOLUVWRU5ULU1JQjoKICAgICAtIEltcGxlbWVudHMgYWxsIDMgdGVzdHMgKGJvb2xlYW4sIHRocmVzaG9sZCBhbmQgZXhpc3RlbmNlKS4KICAgICAtIG5vdCByaWdvcm91c2x5IHRlc3RlZC4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHF1ZXJ5aW5nIHRoZSBsb2NhbCBhZ2VudAogICAgICAgKG10ZVRyaWdnZXJUYXJnZXRUYWcgbXVzdCBiZSAnJykuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBzZW5kaW5nIHRyYXBzIGFuZCB0aGUgbXRlT2JqZWN0c1RhYmxlIGlzCiAgICAgICBub3QgaW1wbGVtZW50ZWQgKG15IG5leHQgdG9kbyBpdGVtKQogICAgIC0gT25seSB0aGUgZGVmYXVsdCB0cmFwcyBhcmUgc2VudC4gIFRoZSBtdGVFdmVudCogb2JqZWN0cyBoYXZlbid0CiAgICAgICBiZWVuIGltcGxlbWVudGVkIChubyBzZWxmLWRlZmluZWQgdHJhcHMvc2V0cykuCiAgICAgLSBubyBlYXN5IHRvIHVzZSBjb25maWd1cmF0aW9uIHlldCAoc29vbikuCiAgICAgLSBjb25maWd1cmUgd2l0aCAtLXdpdGgtbWliLW1vZHVsZXM9ZGlzbWFuL2V2ZW50LW1pYgogICAKMjAwMS0wMS0zMCAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIHNwcmludGYgZm9yIHN0cmluZ3MgdGhhdCBtYXkgbm90IGJlIG51bGwgdGVybWluYXRlZC4KICAgCjIwMDEtMDEtMzAgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBJbXBsZW1lbnRlZCBnZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCkgYW5kIHNldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKToKICAgICAtIFRoZXNlIGFsbG93IGEgbWliIG1vZHVsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudAogICAgICAgYWdlbnRfc25tcF9zZXNzaW9uIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgIC0gVGhpcyBzaG91bGQgcHJvYmFibHkgZG9uZSBkaWZmZXJlbnRseSBsYXRlciB3aGVuIHdlIGNoYW5nZSB0aGUgbWliCiAgICAgICBtb2R1bGUgYXBpLgogICAgIC0gVGhpcyB3aWxsIGNvbXBsZXRlbHkgZmFpbCB0byB3b3JrIHByb3Blcmx5IGluIGEgbXVsdGktdGhyZWFkZWQKICAgICAgIGFnZW50ICh3aGljaCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBhbnl3YXkpLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgZGVidWdnaW5nIHN0YXRlbWVudCBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcHJvcGVybHkgbWFsbG9jIGEgMSBieXRlLCBOVUxMIGNoYXJhY3RlciBzdHJpbmcgZm9yICIiIHJlYWQgc3RyaW5ncy4KICAgCjIwMDEtMDEtMjkgMTE6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIGRhdGEgc2VwZXJhdGlvbiBhbmQgbmV3IGZ1bmN0aW9uczoKICAgICBoZWFkZXJfY29tcGxleF9nZXRfZnJvbV9vaWQoKQogICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCgpCiAgIAoyMDAxLTAxLTEyIDA4OjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0OgoKICAgLSBESVNNQU4tRVZFTlQtTUlCIGFkZGVkIHRvIG1pYiByZXBvc2l0b3J5LiAoT3IsIGd1ZXNzIHdoYXQgSSBkaWQgZHVyaW5nIGEgNiBob3VyIHBsYW5lIGZsaWdodD8pCiAgIAoyMDAxLTAxLTEyIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgYml0IHN0cmluZ3MKICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIG5ldyBkYXRhIHR5cGVzIHN1cHBvcnRlZCBmb3IgcmVhZF9jb25maWcgcm91dGluZXM6IHVuc2lnbmVkLCBiaXRfc3RyLgogICAKMjAwMS0wMS0xMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbW92ZSBjb25maWcgc3RyaW5nIGluaXRpYWxpemVyIGFib3ZlIHN1YmFnZW50IGNoZWNrIHNvIGl0cyBrbm93biBldmVuCiAgIGlmIG5vdCB1c2VkLgogICAKMjAwMS0wMS0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIG1pYjJjLnN0b3JhZ2UuY29uZiwKICAgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0wOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBkc19hZ2VudC5oLCB2YXJfc3RydWN0LmgsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oCjoKCiAgIFN1YkFnZW50IHBpbmcgc3VwcG9ydDoKICAgICAtIGFnZW50eFBpbmdJbnRlcnZhbCBzcGVjaWZpZXMgU0VDT05EUyBiZXR3ZWVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICAgICB0cmllcyB0byBwaW5nIHRoZSBtYXN0ZXIgYWdlbnQuCiAgICAgLSBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZCwgaXQgdHJpZXMgdG8gcmVjb25uZWN0LgogICAgIC0gZmFpbGluZyB0aGF0IGl0IHRyaWVzIGV2ZXJ5IFNFQ09ORFMgYWdhaW4gdGlsbCBpdCBzdWNjZWVkcy4KICAgICAtIHJlLXJlZ2lzdGVycyBpdHMgb2lkJ3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3VidHJlZSBsaXN0LgogICAgICAgLSBtYXkgbmVlZCBzb21lIHRob3VnaHQuICBBc3N1bWVzICphbGwqIG5lZWQgdG8gYmUgcmUtcmVnaXN0ZXJlZC4KICAgICAgIC0gbmVlZHMgdG8gcmUtcmVnaXN0ZXIgc3lzb3J0YWJsZSBlbnRyaWVzIHRvbywgYnV0IGRvZXNuJ3QuCiAgICAgLSBjdXJyZW50bHkgc2VnLWZhdWx0cyBvbiBhYm91dCB0aGUgMi00dGggdGltZSBvciBzby4gIE5vdCBzdXJlIHdoeS4KICAgICAtIFNob3VsZCBtYWtlIERhdmUgc21pbGUgb3IgY3JpbmdlIG9yIGdpZ2dsZSwgbm90IHN1cmUgd2hpY2guCiAgIAoyMDAxLTAxLTA5IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIEFsbG93IGRlcmVnaXN0ZXJpbmcgb2YgY2FsbGJhY2tzCiAgIAoyMDAxLTAxLTA5IDA2OjIwICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC86IHNubXBuZXRzdGF0LmRzcCAoVjQtMi1wYXRjaGVzLjEpLAogICBzbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgLSBnZW5lcmljIHNubXAgZW51bSBsaXN0IHN1cHBvcnQuICBOb3QgdXNlZCBhbnl3aGVyZSAoeWV0KS4KICAgCjIwMDEtMDEtMDQgMTY6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaAosIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gbWVyZ2VkIHBhdGNoZXMgZnJvbSBWNC0yLXBhdGNoZXMgYnJhbmNoIHRvIG1haW4gYnJhbmNoLgogICAKMjAwMS0wMS0wNCAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYwo6CgogICAtIGFkZGVkIG5ldyBwcmludEhleFRleHQgc25tcC5jb25mIHRva2VuLgogICAtIGRvY3VtZW50ZWQgLU9ULCBhbmQgdGhlIHRva2VuLgogICAKMjAwMS0wMS0wNCAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICBQYXRjaCAjMTAzMDkxIGFwcGxpZWQ6CiAgICAgLSBBZGRlZCAtT1Qgb3B0aW9uIHRvIHZpZXcgaGV4IHN0cmluZ3Mgd2l0aCB0ZXh0IGluIHRoZW0uCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIGZpbGUgVDA1NWFnZW50djFtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGZpbGUgVDA1NmFnZW50djJjbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTIyIDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0xOSAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1ha2UgaW5pdF9zbm1wdjMoKSBkZWFsIHdpdGggYSBOVUxMIGFyZ3VtZW50IHByb3Blcmx5LgogICAKMjAwMC0xMi0xOCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiByZW1vdmUgcGFzc3Rlc3QgZnJvbSB0aGUgLmN2c2lnbm9yZSBmaWxlIChidWcgIzEyNjk0KQogICAKMjAwMC0xMi0xOCAxMDo0NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG06CgogICBtaW5vciBkb2MgZml4CiAgIAoyMDAwLTEyLTE0IDEzOjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IGZpeCB1cHRpbWUgZm9yIDY0LWJpdCBTb2xhcmlzCiAgIAoyMDAwLTEyLTE0IDEzOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IHN0dXBpZCBzcGVsbGluZyBlcnJvcgogICAKMjAwMC0xMi0xMyAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBjb25mdXNpb24gYmV0d2VlbiBpbnQsIHNpemVfdCwgbG9uZyBmb3IgNjQtYml0IGNvbXBpbGVzLgogICAKMjAwMC0xMi0xMyAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcGNvbmYuMQogICAKMjAwMC0xMi0wOCAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gdmFjbV92YXJzLmMsIHZhY20uYzogaW5kZXhpbmcgb2YgdmFjbVZpZXdUcmVlRmFtaWx5RW50cnkgd2FzIGhvc2VkLCBhc3N1bWluZwogICAJdGhhdCB0aGUgU3VidHJlZSBpbmRleCBoYWQgYW4gSU1QTElFRCBhdHRyaWJ1dGUuCiAgIAoyMDAwLTEyLTA4IDE0OjQ2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6CgogICAtIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6IGZpeCBzb21lIHplcm8gaW5kZXggdmFsdWVzLgogICAKMjAwMC0xMi0wOCAxNDo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogZml4IHJldHVybnMgb2YgemVyb0RvdFplcm8gKHN1Y2ggYXMgaWZTcGVjaWZpYykKICAgCjIwMDAtMTItMDggMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXBkLmM6IHNlY3VyaXR5IG1vZGVsIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lIGlzIHNubXAgdmVyc2lvbiB2YWx1ZXMKICAgCjIwMDAtMTItMDYgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogTGludXgga2VybmVsIDIuMC54IGhhcyBubyBBUlBIUkRfSElQUEkKICAgCjIwMDAtMTItMDUgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggcnNubXAncyAvdXNyL2xvY2FsIGhhcmRjb2RlZCBwYXRoLgogICAKMjAwMC0xMi0wNCAxNzowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbDoKCiAgIC0gKFQxMTJhZ2VudHhzZXRmYWlsKTogZml4CiAgIAoyMDAwLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yICkKICAgCjIwMDAtMTItMDQgMTY6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZS4KICAgCjIwMDAtMTItMDQgMTU6MzAgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIC0gKE5FV1MsIFJFQURNRSk6IHVwZGF0ZXMuCiAgIAoyMDAwLTEyLTA0IDE0OjQ4ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnhzLCB0L21pYmxvYWQudAosIHQvc3RhcnRhZ2VudC5wbDoKCiAgIGVuc3VyZSBtaWJsb2FkLnQgdXNlcyBjb3JyZWN0IE1JQkRJUiBmb3IgdGVzdGluZwogICAKMjAwMC0xMi0wNCAxMTowNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBGQVEsIFJFQURNRToKCiAgIC0gKEFHRU5ULnR4dCwgRkFRLCBSRUFETUUpOiBjb252ZXJ0IHVybCdzIHRvIHd3dy5uZXRzbm1wLm9yZy4KICAgCjIwMDAtMTItMDQgMDg6NDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYWdlbnR4IG5vdGUgY2hhbmdlcy4KICAgCjIwMDAtMTItMDMgMDc6MjkgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSBzbm1wdHJhcGRfbG9nLmM6IGZveCBtaXNzaW5nIGxlYWRpbmcgemVyb2VzIGZvciAlLjJkIGxpa2UgZm9ybWF0cy4KICAgCUFkZCBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvciB1cC10aW1lIGRpc3BsYXlzLgogICAKMjAwMC0xMi0wMiAxODoyMiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzLCB0L2J1bGt3YWxrLnQsCiAgIHQvbm90aWZ5LnQsIHQvc2Vzc2lvbi50OgoKICAgZm91bmQgdGhlIHVuaW5pdGlhbGl6ZWQgZGF0YSBidWcuLi5tdXN0IGhhdmUgYmVlbiBpbiB0aGVyZSBkb3JtYW50IGZvciBhIHdoaWxlLCBvdGhlciB0ZXN0IGZpeGVzIC0gZ29vZCB0byBnbyEKICAgCjIwMDAtMTItMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiByZWZlcmVuY2UgbmV0LXNubXAtY29kZXJzLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNjozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKGJ1Zy1yZXBvcnQsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiByZW1vdmUgdGhlIGJ1ZyByZXBvcnQgc2NyaXB0LgogICAKMjAwMC0xMi0wMSAxNjozMSAgaGFyZGFrZXIKCiAgICogUE9SVElORzoKCiAgIC0gKFBPUlRJTkcpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBtZW50aW9uIHRoZSBmYWN0IHRoYXQgc25tcHYzIHRyYXBzIGFyZQogICAgIHRoZSBzYW1lIGFzIHNubXB2MiB0cmFwcy4KICAgCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNToxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIGZvciBwcm94eSBzdXBwb3J0LgogICAKMjAwMC0xMi0wMSAxNDozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGEgZmV3IHRoaW5ncy4KICAgCjIwMDAtMTItMDEgMTQ6MjggIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZGlhZ25vc2Ugd3JvbmcgcXVvdGluZyBpbiBpbmRpY2VzCiAgIAoyMDAwLTEyLTAxIDE0OjIzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBhZGQgUkZDLTEyMTMgYXMgYW4gYWxpYXNlIGZvciBSRkMxMjEzLU1JQiAodXNlZCBpbiBtYW55IG1pYnMpCiAgIAoyMDAwLTEyLTAxIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNtdXguYzogcmVmb3JtYXQgc29tZSBkZWJ1ZyBtZXNzYWdlcyBmb3IgcmVhZGFiaWxpdHkKICAgCjIwMDAtMTItMDEgMTQ6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogZml4IGlmVHlwZSB2YWx1ZXMgZm9yIExpbnV4CiAgIAoyMDAwLTEyLTAxIDE0OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIHN1YmFnZW50LmM6IHN1cHBseSBhIG1pc3NpbmcgcmV0dXJuIHZhbHVlCiAgIAoyMDAwLTEyLTAxIDEwOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcXVvdGUgdGhpbmdzIHdpdGggc3BhY2VzIGluIHRoZW0uCiAgIAoyMDAwLTEyLTAxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNvbmYuMToKCiAgIC0gKHNubXBjb25mLjEpOiBxdWljayBtYW4gcGFnZSBmb3Igc25tcGNvbmYuCiAgIAoyMDAwLTEyLTAxIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiBjaGFuZ2Ugbm8tcGFyZW50IGxvZyBtZXNzYWdlIGludG8gYSB3YXJuaW5nLgogICAKMjAwMC0xMi0wMSAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IHVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTEyLTAxIDA5OjEwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMi0wMSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN1cHBvcnQgdjItPnYxIHRyYXAgY29udmVyc2lvbi4KICAgCjIwMDAtMTItMDEgMDc6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0eXBvLgogICAKMjAwMC0xMi0wMSAwNzo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9ub3RpZnkudCwgc25tcGxpYi9taWIuYzoKCiAgIGFkZGl0aW9uYWwgZml4ZXMgdG8gc3VwcG9ydCB0YXJnZXR0ZWQgYnVpbGRzIG9mIHBlcmwvU05NUCB1c2luZyAtTkVULVNOTVAtUEFUSCAoYW5kIHdoaXRlIHNwYWNlIHJlbW92YWwgYXMgbXkgZW1hY3Mga2luZGx5IGRvZXMgdGhhdCBmb3IgbWU/KQogICAKMjAwMC0xMS0zMCAxNDowNiAgbmJhCgogICAqIHNubXBsaWIvOiBnZXRvcHQuaCwgc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDogZXh0ZXJuICJDIiBicmFja2V0aW5nCiAgIAoyMDAwLTExLTMwIDE0OjA0ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBkLmNvbmYuNS5kZWY6IGZpeCBmb3JtYXR0aW5nIG9mIHNtdXhwZWVyIHRva2VuCiAgIAoyMDAwLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMS0zMCAxMDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggYmFkIHNldHMgZm9yIGFnZW50eC4KICAgCjIwMDAtMTEtMzAgMDk6MTkgIGhhcmRha2VyCgogICAqIG92L1JFQURNRToKCiAgIC0gKG92L1JFQURNRSk6IG1pbm9yIGNvcnJlY3Rpb25zLCBwcm9iYWJseSBzdGlsbCBpbmNvcnJlY3QuCiAgIAoyMDAwLTExLTMwIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluLCBzbm1wY29uZiwgYWNsLCBiYXNpY19zZXR1cCwgbW9uaXRvciwgb3BlcmF0aW9uLAogICAgIHN5c3RlbSwgdHJhcHNpbmtzKToKICAgICAtIGdyb3VwaW5nIHN1cHBvcnQuCiAgICAgLSBzb3J0LW9mLXF1aWV0IG91dHB1dCBzdXBwb3J0LgogICAgIC0gb3BlcmF0aW9uIG1vZGUgc3VwcG9ydCAoc2V0dGluZyB1c2VyLCBncm91cCwgcG9ydHMuLi4pCiAgIAoyMDAwLTExLTMwIDA5OjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzYXZlIGEgd2FybmluZyBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUKICAgICBwZXJzaXN0ZW50IGRhdGEgZmlsZS4KICAgCjIwMDAtMTEtMzAgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyk6IENsZWFudXAgcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMC0xMS0zMCAwOToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBzZXQgRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgaW4gLUggaGVscCBvdXRwdXQuCiAgIAoyMDAwLTExLTMwIDA5OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWVudGlvbiB0aGUgVFVOTkVMLU1JQiBzdXBwb3J0LgogICAKMjAwMC0xMS0yOSAxODoyMSAgc2xpZgoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZS1tYWlsIGFkZHJlc3MgZm9yIFNsaWZjYWsKICAgCjIwMDAtMTEtMjkgMTE6MzQgIG1hcnoKCiAgICogY29uZmlndXJlOgoKICAgZml4ZWQgb3JkZXIgb2YgZnVuY3Rpb24gY2hlY2tpbmcgc28gdGhhdCB2c25wcmludGYgaXMgbm90IGZvdW5kIGluIGxpYmRiIChCU0QgZGIpIGJ5IG1pc3Rha2UKICAgCjIwMDAtMTEtMjkgMDU6MTggIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRToKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI4IDE4OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL1JFQURNRSwKICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50LAogICBwZXJsL1NOTVAvdC9taWIudCwgcGVybC9TTk1QL3Qvbm90aWZ5LnQsCiAgIHBlcmwvU05NUC90L3Nlc3Npb24udCwgcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKGxvY2FsL3NubXBjb25mKToKICAgICAtIGFkZCBzdXBwb3J0IGZvciAiZ3JvdXBzIiBvZiBpdGVtcy4KICAgICAtIGRvbid0IHVzZSBJTzo6RGlyLCBhcyBpdHMgbm90IGluIHRoZSBzdGFuZGFyZCBwZXJsIG1vZHVsZSBkaXN0cmlidXRpb25zLgogICAKMjAwMC0xMS0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgpOiByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGUgcmVmZXJlbmNlLgogICAKMjAwMC0xMS0yNyAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBhdXRvLXNldCBzdXBwb3J0IGZvciB0aGUgYWdlbnQgKGFuZCBwbHVnIGEgbWVtb3J5IGxlYWspLgogICAKMjAwMC0xMS0yNyAxMzo0MiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIHNubXAuY29uZi41LmRlZjogZG9jdW1lbnQgdG9rZW5zIGV4dGVuZGVkSW5kZXggYW5kIG5vUmFuZ2VDaGVjawogICAKMjAwMC0xMS0yNyAxMzo0MSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC2gcGFyc2UuYzogZml4IGEgQysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDAtMTEtMjQgMTU6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLAogICB2bXN0YXRfbmV0YnNkMS5jOgoKICAgLSBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X25ldGJzZDEuYzogbWlub3IgZml4ZXMgZm9yIE5ldEJTRCAxLjUsIE9QZW5CU0QgMi42CiAgIAoyMDAwLTExLTIyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSAobWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyk6IFBhdGNoIGZyb20gU2VhbiBIYXJkaW5nOgogICAgIC0gZG9uJ3QgZXhwb3J0IGFuIGludGVybmFsIHZhcmlhYmxlLgogICAKMjAwMC0xMS0yMSAxNToxNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggcGFyc2luZyBvZiBvaWQgbGlrZSA5OS4xMy5cImd1ZlwiOAogICAKMjAwMC0xMS0xOSAxMzowMyAgbmJhCgogICAqIHBlcmwvU05NUC9TTk1QLnhzLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBTTk1QLnhzLCBtaWIyYy52YXJ0eXBlcy5jb25mOiBUaGUgcmVjZW50IHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBJbnRlZ2VyCiAgIAl0eXBlcyBpbiB0aGUgcGFyc2VyIGNyZWF0ZWQgcHJvYmxlbXMgZm9yIHRoZSBwZXJsIG1vZHVsZSBhbmQgaW4gdHVybgogICAJZm9yIG1pYjJjLiBTb3JyeSBmb3Igbm90IGNhdGNoaW5nIHRoaXMgYmVmb3JlIHByZTI6LSgKICAgCjIwMDAtMTEtMTkgMTI6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSBmaXhlcyB0byAuL2NvbmZpZ3VyZSAtLXdpdGgtZGVmYXVsdHMgLS1lbmFibGUtbWluaS1hZ2VudDsgbWFrZSBpbnN0YWxsCiAgIAlhbmQgcnVuIHRoZSB0b29scyB1bmRlciBjeWd3aW4uIEhhdmVuJ3QgdHJpZWQgdGhlIGFnZW50IHlldDotKQogICAKMjAwMC0xMS0xOCAwNzoxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbgosIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTIgKQogICAKMjAwMC0xMS0xOCAwNzoxMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgLSAoVDA0OXNubXB2M2luZm9ybSk6IHYzIGluZm9ybSB0ZXN0IGFkZGVkLgogICAKMjAwMC0xMS0xNyAxMTowMSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIC0gbWliLmMsIHNubXBfYXBpLmM6IGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHNubXBzZXQgY2FsbHMgYW5kIGJhZAogICAJaW5kaWNlcy4gQWxzbyBmaXggYSBidWcgd2l0aCBxdW90ZWQgaW5kaWNlcy4KICAgCjIwMDAtMTEtMTcgMTA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICAtICh0ZXN0cy9UMDUwc25tcHYzdHJhcCk6IHRlc3QgZm9yIHNubXB2MyB0cmFwcy4KICAgCjIwMDAtMTEtMTcgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGZpeCBjYXNlcyB3aGVyZSB0aGUgZm9ybWF0IHN0cmluZ3MgYXJlIHNwZWNpZmllZC4KICAgCjIwMDAtMTEtMTcgMTA6MjYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gSUFOQWlmVHlwZS1NSUIudHh0OiB1cGRhdGUgZnJvbSBJQU5BCiAgIAoyMDAwLTExLTE3IDA4OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IG1lbW9yeSBsZWFrcy4KICAgICAtIGZpeCBhZ2VudHggcHJvYmxlbXMgd2l0aCBiYWQgc2V0cy4KICAgCjIwMDAtMTEtMTYgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wbGliL3NubXB2My5jKTogYWRkZWQgYSBzcGFjZSBpbiBhIGRlYnVnZ2luZyBvdXRwdXQgc3RhdGVtZW50LgogICAKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2ltcGxlIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYWRkZWQuCiAgIAoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzZXQgRFNfTElCX0FQUFRZUEUgaWYgaXQgaGFzbid0IGJlZW4gc2V0IHlldC4KICAgCjIwMDAtMTEtMTYgMTc6NTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGFkZCBDT05GSUdUUkFQRC4KICAgCjIwMDAtMTEtMTYgMTc6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsKToKICAgICAtIHN1cHBvcnQgLUlyIGZvciAiZG9udCBjaGVjayByYW5nZS90eXBlIHZhbHVlcyIgKGxldHRlciByIHN1YmplY3QgdG8gZGViYXRlKS4KICAgCjIwMDAtMTEtMTYgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gKGNhbGxiYWNrLmMpOiBiZXR0ZXIgZGVidWdnaW5nIG91dHB1dCB0byBkaXNwbGF5IGEgY2FsbGJhY2sgY291bnQgd2hlbiBkb25lLgogICAKMjAwMC0xMS0xNiAxNjo1MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gKFQxMTNhZ2VudHh0cmFwKTogQSBuZXcgdGVzdCB0byB0ZXN0IHRyYXAgc3VwcG9ydCBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCiAgIAoyMDAwLTExLTE2IDE2OjUwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1OGFnZW50YXV0aHRyYXApOiBzbGVlcCBzb21lIGFuZCBvbmx5IHBlcmZvcm0gb25lIGdldCByZXF1ZXN0LgogICAKMjAwMC0xMS0xNiAxNjo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwOgoKICAgLSAoVDA1NGFnZW50djJjdHJhcCk6IHNsZWVwIGEgYml0IGFuZCBvbmx5IHNlbmQgb25lIHNubXAgc2V0IHJlcXVlc3QuCiAgIAoyMDAwLTExLTE2IDE1OjQ3ICBuYmEKCiAgICogc25tcGxpYi9nZXRvcHQuYzoKCiAgIC0gZ2V0b3B0LmM6IHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAwLTExLTE2IDE1OjMxICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIG1pYi5jLCBwYXJzZS5oLAogICBzbm1wX2FwaS5jOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYywgc25tcF9hcGkuYzogcmVuYW1lIFRZUEVfVUlOVEVHRVIzMiBiYWNrIHRvIFRZUEVfVUlOVEVHRVIKICAgCjIwMDAtMTEtMTYgMTU6MTYgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGQuY29uZjogbmV3IGNvbmZpZyBkaXJlY3RpdmVzIGZvcm1hdDEgYW5kIGZvcm1hdDIgdG8KICAgCXNldCBsb2cgZm9ybWF0cyBmb3IgVFJBUDEgYW5kIFRSQVAyIHBkdXMuCiAgIAoyMDAwLTExLTE2IDEzOjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBhZGQgZnVuY3Rpb25hbGl0eSB0byBjaGVjayB2YWx1ZSB0eXBlcyBpbiBhZGRpdGlvbiB0byByYW5nZXMKICAgCWZvciBzbm1wc2V0IGFuZCBzbm1wdHJhcC4KICAgCjIwMDAtMTEtMTYgMTM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBERUZWQUwgcGFyc2luZyBmb3IgIE9CSkVDVCBJREVOVElGSUVSIG9yIEJJVFMgdmFsdWVzCiAgIAkoaS5lLiBERUZWQUwgeyB7IDAgMCB9IH0gZXRjKQogICAKMjAwMC0xMS0xNiAxMTozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNThhZ2VudGF1dGh0cmFwKTogYWRkIGEgZ3JlYXRlciB0aW1lb3V0IHRvIHRoZSBnZXQgcmVxdWVzdC4KICAgCjIwMDAtMTEtMTYgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6CiAgICAgLSBzZW5kIGEgdjJjIHRyYXAgdXNpbmcgaXRzIG93biBkYXRhLCBub3QgdGhlIHN5c3RlbV9taWIncy4KICAgICAtIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAwLTExLTE2IDExOjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1OGFnZW50YXV0aHRyYXApOgogICAgIC0gbmV3IHRlc3RzIGZvciB0cmFwcyBzZW50IGJ5IHRoZSBhZ2VudC4KICAgCjIwMDAtMTEtMTYgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKHRhcmdldC5jKTogRG9uJ3QgZGVsZXRlIFJFQURPTkxZIHRyYXAgc2Vzc2lvbnMuCiAgIAoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtOgoKICAgLSAodGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSk6IHRlc3QgaW5mb3JtIHNlbmRpbmcvcmVjZWl2aW5nLgogICAKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMToKCiAgIC0gKGFwcHMvc25tcHRyYXAuYywgbWFuL3NubXB0cmFwLjEpOiBzdXBwb3J0IC1DaSBmb3Igc2VuZGluZyBpbmZvcm1zLgogICAKMjAwMC0xMS0xNSAxNTo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiB1c2UgU05NUF9NQVhCVUYgaW5zdGVhZCBvZiBhIGxvY2FsIGxlbmd0aCBkZWZpbml0aW9uLgogICAKMjAwMC0xMS0xNSAxNDoxOCAgbmJhCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IG1ha2UnaW5nIGluIHJlbW90ZSBkaXJlY3RvcnkKICAgCjIwMDAtMTEtMTUgMTQ6MTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiB1cGRhdGUgdG8gdXNlIGdldG9wdCBmb3IgYXJndW1lbnQgcGFyc2luZy4KICAgCjIwMDAtMTEtMTUgMTQ6MTAgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogZml4IGEgY29uZnVzaW5nIGluZGVudGF0aW9uLgogICAKMjAwMC0xMS0xNSAxNDowOSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcC5jOiBtYWtlIHN1cmUgY29tbXVuaXR5IGlzIFwwLXRlcm1pbmF0ZWQgaW4gdGFyZ2V0UGFyYW1zVGFibGUKICAgCjIwMDAtMTEtMTUgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gc25tcHRyYXBkX2xvZzogZml4IGEgYnVmZmVyIHRoYXQgaXMgd2F5IHRvbyBzaG9ydCBmb3IgYSB0cmFwIHdpdGgganVzdCBhCiAgIAlzaW5nbGUgcGFyYW1ldGVyLiBGaXggYSBiYWQgbGltaXQgdGVzdCBpbiBzdHJfYXBwZW5kLgogICAKMjAwMC0xMS0xNSAxNDowMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBzbm1wdHJhbnNsYXRlLmM6IGZpeCBhIHN0dXBpZCBwZXJyb3IgZm9yIHNubXBfcGVycm9yCiAgIAoyMDAwLTExLTE1IDEzOjU4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYzogZW5oYW5jZSB0aGUgcGFyc2VyIHRvIGRpc3Rpbmd1aXNoIElOVEVHRVIsIEludGVnZXIzMiwKICAgCVVuc2lnbmVkMzIsIFVJbnRlZ2VyMzIuCiAgIAoyMDAwLTExLTE1IDEzOjU1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYzogcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQogICAKMjAwMC0xMS0xNSAwNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaAo6CgogICAtIChzbm1wX3ZhcnMuYywgc3ViYWdlbnQuYyk6IFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZDoKICAgICAtIERvbid0IG1ha2UgaW5pdF9hZ2VudCgpL3N1YmFnZW50X3ByZV9pbml0KCkgZXhpdCBidXQgcmV0dXJuIGFuCiAgICAgICBlcnJvciBjb25kaXRpb24gaW5zdGVhZC4KICAgCjIwMDAtMTEtMTIgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZCBOVUxMIHRvIGVuZCBvZiBkZW1vIHN0cmluZyBhbmQgY2hlY2sgZm9yIGxlbj0wLgogICAKMjAwMC0xMS0xMiAwNDo0NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmM6IE1ha2Ugc3VyZSB0aGUgbm9SYW5nZUNoZWNrIHRva2VuIGlzIGEgYm9vbGVhbgogICAKMjAwMC0xMS0xMiAwNDo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBnaXZlIHRoZSB0cmVlLXRvcCBhIG5hbWUgdG8gcHJvdGVjdCBlcnJvciBtZXNzYWdlIHdoZW4gbG9va2luZyB1cCAuZm9vCiAgIAoyMDAwLTExLTEyIDA0OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogdXNlIGNvbmZpZ19wZXJyb3IgZm9yIGEgYmV0dGVyIGVycm9yIG1lc3NhZ2UKICAgCjIwMDAtMTEtMTIgMDQ6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMS0xMiAwNDozMyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC1hZ2VudF90cmFwcy5jOiBNb3ZlIGEgY29uZGl0aW9uYWxseSB1c2VkIHZhcmlhYmxlCiAgIAoyMDAwLTExLTEyIDA0OjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIEZpeCBhIGJvZ3VzICNpZmRlZgogICAKMjAwMC0xMS0xMCAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFwcGx5IHBhdGNoICMxMDIyMjQgZnJvbSBqYnBuIGZvciBjcm9zcy1jb21waWxpbmcuCiAgIAoyMDAwLTExLTEwIDA4OjU2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcDoKCiAgIC0gKHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXApOgogICAgLSBmaXJzdCBwYXNzIGF0IGEgdGVzdGluZyBzY3JpcHQgdG8gdGVzdCB0cmFwIGZ1bmN0aW9uYWxpdHkuCiAgICAgIC0gd2hpY2ggZXZlbiB1bmNvdmVyZWQgYSBidWcuCiAgIAoyMDAwLTExLTEwIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAgLSBmb3JrIGlmIGZpbGUgbG9nZ2luZyBvciBzeXNsb2dnaW5nLCBidXQgbm90IHByaW50aW5nLgogICAgIC0gZG9uJ3QgY2xvc2Ugb3BlbiBmaWxlIGRlc2NyaXB0b3JzLiAgVGhlcmUgc2hvdWxkbid0IGJlIGFueS4KICAgCjIwMDAtMTEtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGRfbG9nLmMpOiBwcm9wZXJseSBudWxsIHRlcm1pbmF0ZSBsb2cgc3RyaW5ncy4KICAgCjIwMDAtMTEtMDkgMTY6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGF0dGVtcHQgdG8gaW1wbGVtZW50IGEgLS13aXRoLXJzYXJlZiBmbGFnLgogICAKMjAwMC0xMS0wOSAxNTozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgogICAKMjAwMC0xMS0wOSAxNTozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgcGVybC9TTk1QL1JFQURNRToKCiAgIC0gKE5FV1MsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCiAgIAoyMDAwLTExLTA5IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50OgoKICAgLSAoZXhhbXBsZXMvYnVsa3dhbGsucGwsIHQvYnVsa3dhbGsudCk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgogICAKMjAwMC0xMS0wOSAxNDo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwKICAgU05NUC54czoKCiAgIC0gKE1BTklGRVNULCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KICAgCjIwMDAtMTEtMDggMjM6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBmaXggLUggb3V0cHV0LgogICAKMjAwMC0xMS0wOCAyMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogbWFrZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGNhbGwgcnVuX2FsYXJtcygpLgogICAKMjAwMC0xMS0wOCAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IGZpeCBPSUQuCiAgIAoyMDAwLTExLTA4IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSAoU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gTWFyayBDYXZhZ2UgZm9yIGRlZmF1bHQgdmFsdWUgc3VwcG9ydC4KICAgCjIwMDAtMTEtMDggMTc6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogbWluaW1hbCBERUZWQUwgcGFyc2luZyBzdXBwb3J0LgogICAKMjAwMC0xMS0wOCAxNjoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgbGlicnNhcmVmLCBldGMsIGlmIG5lZWRlZC4KICAgCjIwMDAtMTEtMDcgMTU6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9zbm1wZC5jKToKICAgICAtIHVpZC9naWQgY2hhbmdlcy4KICAgCjIwMDAtMTEtMDcgMTU6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC54cyk6IGZpeCBUWVBFX05PVElGIC0+IFRZUEVfTk9USUZUWVBFLgogICAKMjAwMC0xMS0wNyAxMTozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC5wbSwgU05NUC9TTk1QLnhzKTogUGF0Y2ggZnJvbSBKb2UgQ2xhcmtlOgogICAgIC0gaW1wbGVtZW50IGJlc3QtZ3Vlc3MgKC1JYikgcGFyc2luZy4KICAgICAtIGFjY2VzcyB0byB0cmFwIHZhcmJpbmRzLgogICAgIC0gcmFuZ2UgYWNjZXNzLgogICAKMjAwMC0xMS0wNyAxMTowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIGJ1aWxkIGNyZWF0ZWQgZmlsZXMuCiAgIAoyMDAwLTExLTA3IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG0sIFNOTVAueHM6CgogICAtIChSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIGltcGxlbWVudCBhIGZpbmlzaCgpIGNhbGwuCiAgIAoyMDAwLTExLTA3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gbXVsdGlwbGUgY2FsbGJhY2sgcGF0Y2ggZm9yIHBlcmwvU05NUC9TTk1QLnhzLgogICAKMjAwMC0xMS0wNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBvcHRpb25hbCBjb25maWcgZmlsZSBETkUuCiAgIAoyMDAwLTExLTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKFNOTVAucG0pOiBmaXggaWlkIHBhcnNpbmcgd2l0aCByZXNwZWN0IHRvIG1pYiBub2RlcyB3aXRoIGEgLSBpbiBpdC4KICAgCjIwMDAtMTEtMDcgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBkLmMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywKICAgICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGltcGxlbWVudCB1aWQvZ2lkIGNoYW5nZXMgYWZ0ZXIgc3RhcnR1cCBmb3IgdGhlIGFnZW50LgogICAKMjAwMC0xMS0wNyAwODozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAodGFyZ2V0LmMpOiBhIGJldHRlciBzYW5pdHkgY2hlY2sgZm9yIHNlc3Npb24gZGVsZXRpb24uCiAgIAoyMDAwLTExLTA3IDA3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtICh0YXJnZXQuYyk6IFBhdGNoIGZyb20gRGF2ZSB0byBzYW5pdHkgY2hlY2sgcGFyYW0tPnVwZGF0ZVRpbWUuCiAgIAoyMDAwLTExLTA2IDExOjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiBjaGVjayB0byBzZWUgdGhhdCBNRHNpZ24oKSBkYXRhIGxpZXMgb24gYSAzMiBieXRlIGJvdW5kcnkuCiAgICAgLSBpdHMgcG9zc2libGUgc29tZSBjb21waWxlcnMgd2lsbCBjaG9rZSBvbiB0aGlzIGhhY2suCiAgICAgLSBmaXhlcyBidWcgIzEyMTc1LgogICAKMjAwMC0xMS0wMyAxNzo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHNvcnQgT0lEcyBwcm9wZXJseS4KICAgCjIwMDAtMTEtMDMgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBmaXggbWliIHJlZ2lzdHJhdGlvbnMgZm9yIGR1cGxpY2F0ZSBPSURzIGJlaW5nIHVzZWQgZm9yIHRoZSB0cmFwIGV4YW1wbGVzLgogICAKMjAwMC0xMS0wMyAxNTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KICAgICAtIFVtLCBhcHBsaWVkIGNvcnJlY3RseSB0aGlzIHRpbWUgKEkgaG9wZSkuCiAgIAoyMDAwLTExLTAzIDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgogICAKMjAwMC0xMS0wMiAyMjoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpcC5jLCBpcEFkZHIuYwosIHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBDbGVhbiB1cCBzb21lIHVudXNlZCB2YXJpYWJsZXMgZXRjLgogICAKMjAwMC0xMS0wMiAyMjoxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IHNvbWUgJChzcmNkaXIpIHJlZmVyZW5jZXMgd2hlbiBydW5uaW5nIG91dHNpZGUgc291cmNlCiAgIAoyMDAwLTExLTAyIDIyOjE1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGZpeCB0aGUgZm9ybWF0IHN0cmluZyBmb3IgZm9ybWF0X3RyYXAKICAgCjIwMDAtMTEtMDIgMjI6MTQgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiByZW1vdmUgc29tZSBkdXBsaWNhdGVzIGZyb20gZmlsZSBsaXN0cwogICAKMjAwMC0xMS0wMiAyMjoxMiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICBEb2N1bWVudCB0aGUgLU9YIG91dHB1dCBvcHRpb24KICAgCjIwMDAtMTEtMDIgMjI6MTEgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBzeXNzZXJ2aWNlcyB0b2tlbgogICAKMjAwMC0xMS0wMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgpOiBhZGQgdWNkLXNubXAvcHJveHkuCiAgIAoyMDAwLTExLTAyIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IGNoYW5nZSBjdnMgYXJjaGl2ZSBzaXRlIGFuZCBwYWNrYWdlIG5hbWUuCiAgIAoyMDAwLTExLTAyIDEzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIDEwMjIzOSBmcm9tIGRvdWd3YXJ6IHRvIGZpeCBhIHByZXZpb3VzbHkgYmFkIHNtdXguYyBwYXRjaC4KICAgCjIwMDAtMTEtMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUxICkKICAgCjIwMDAtMTEtMDEgMTY6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsKTogcHJveHkgdGVzdCBzdWl0ZS4KICAgCjIwMDAtMTEtMDEgMTY6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgpOgogICAgIC0gbWluaW1hbCBTRVQgc3VwcG9ydCBmb3IgdGhlIHByb3h5IGNvZGUuCiAgIAoyMDAwLTExLTAxIDEwOjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiB0ZXN0IGZvciBhZ2VudHggc2V0cyB0aGF0IHNob3VsZCBmYWlsIHByb3Blcmx5LgogICAKMjAwMC0xMC0zMSAxNDozMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICAtIHRjcFRhYmxlLmM6IHJlbW92ZSBhbiB1bm5lc2Nlc3NhcnkgI2luY2x1ZGUKICAgCjIwMDAtMTAtMzEgMTQ6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiBmaXggd3JvbmcgdmFyaWFibGUgbGVuZ3RoCiAgIAoyMDAwLTEwLTMxIDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGZpeCBzb21lIHN1c3BpY2lvdXMgbG9va2luZyBjb2RlCiAgIAoyMDAwLTEwLTMxIDE0OjIxICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIG1hbi9zbm1wZC5jb25mOiBmaXggYSB0eXBvCiAgIAoyMDAwLTEwLTMxIDEyOjQxICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIG1pYi5jOiBhZGQgLU9YIG91dHB1dCBmb3JtYXQsIGZvciBqdXN0IGFub3RoZXIgd2F5IG9mIHByaW50aW5nIGluZGljZXMKICAgCjIwMDAtMTAtMzEgMTI6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSBpbnRlcmZhY2UuYzogYWRkICJpbnRlcmZhY2UiIGNvbmZpZyBmb3IgdW5ndWVzc2FibGUgaW50ZXJmYWNlIHR5cGUvc3BlZWQKICAgCjIwMDAtMTAtMzEgMTI6MjUgIG5iYQoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jCiwgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMKOgoKICAgLSBhcHBzLyo6IG1ha2Ugc3VyZSB3ZSByZXBvcnQgYW55IGVycmluZGV4L2VycmNvZGUgaW4gdGhlIHJlc3BvbnNlCiAgIAoyMDAwLTEwLTMxIDEyOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGNsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTMxIDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IHBhdGNoICMxIGZyb20gYnVnICMxMTcyNzMgYXBwbGllZCB0byBmaXggc211eCBzb2NrZXQgcHJvYmxlbXMuCiAgIAoyMDAwLTEwLTMxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAueHMpOiBwcmludCBjb3VudGVyNjQncyBhcyB1bnNpZ25lZC4KICAgCjIwMDAtMTAtMzEgMDc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzdWJhZ2VudC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBzbm1wTm90aWZ5VGFibGUuaCk6IFBhdGNoIGZyb20gRGF2ZToKICAgICAtIGZpeCBub3RpZmljYXRpb25zIGZyb20gYWdlbnR4IHN1YmFnZW50cy4KICAgCjIwMDAtMTAtMzAgMjI6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogZml4IGJ1ZyAjMTE5Nzg2OiBtYWtlIHNtdXggcmV1c2Ugc29ja2V0IGFkZHJlc3MuCiAgIAoyMDAwLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwKICAgdGVzdHMvVDExMWFnZW50eHNldDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQpOgogICAgIC0gZml4IGJ1ZyAjMzgyCiAgICAgLSBmaXggYWdlbnR4IG5vbi1yb290IHRlc3RzIHRvIHVzZSAteCAvdG1wL2JsYWgvYWdlbnR4X3NvY2tldC4KICAgCjIwMDAtMTAtMzAgMTM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZml4IGEgdHlwbyBwb2ludGVkIG91dCBieSBDaHJpcyBQZXBwZXIuCiAgIAoyMDAwLTEwLTMwIDExOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQ6CgogICAtICh0ZXN0cy9UMTExYWdlbnR4c2V0KTogdGVzdCBzY3JpcHQgZm9yIEFnZW50WCBzZXQgc3VwcG9ydC4KICAgCjIwMDAtMTAtMzAgMTE6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldDoKCiAgIC0gKHRlc3RzL1QxMTBhZ2VudHhnZXQpOiBoZWFkZXIgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSB3b3JkIEdFVC4KICAgCjIwMDAtMTAtMzAgMTE6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIHVjZC1zbm1wL3Ztc3RhdF8qLCBtZW1vcnlfZnJlZWJzZDIuYywgZGxtb2QuYzogTWFrZSBzc1Jhd0NwdSBvYmplY3RzIENvdW50ZXJzLAogICAJYW5kIGFkZCBzdXBwb3J0IGZvciAqQlNEIChpbmNsdWRpbmcgT3BlbkJTRCkKICAgCjIwMDAtMTAtMzAgMTE6MDcgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSBDbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0zMCAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMDFhZ2VudHgsIFQxMTBhZ2VudHhnZXQ6CgogICAtICh0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHgsIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCk6CiAgICAgLSByZW5hbWVkIHRoZSBhZ2VudHggdGVzdCBzY3JpcHQuCiAgIAoyMDAwLTEwLTMwIDExOjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBkb24ndCBhZGQgLWMgQ09ORklHRklMRSBpZiBpdCBkb2Vzbid0IGV4aXN0LgogICAKMjAwMC0xMC0zMCAxMDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBlcnJvciB3aGVuIHBhcnNpbmcgLVggZm9yIG5vbi1hZ2VudHggYnVpbGRzLgogICAKMjAwMC0xMC0yNyAxMToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXBkLmMpOiBhZGQgLW8gZmxhZyB0byBsb2cgdG8gYSBwYXJ0aWN1bGFyIGZpbGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiB1c2UgbWtzdGVtcCBpZiBhdmFpbGFibGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTZWFyY2ggZm9yIG1rc3RlbXAoKS4KICAgCjIwMDAtMTAtMjcgMTA6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBsaW51eCBrZXJuZWwgbGlzdCB0byBpbmNsdWRlIDIuMi4KICAgCjIwMDAtMTAtMjYgMTc6NTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBtYWtlIFNLSVBJRk5PVCBjaGVjayB0aGUgbWliIG1vZHVsZSBsaXN0IHRvby4KICAgCjIwMDAtMTAtMjYgMTc6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eDoKCiAgIC0gKHRlc3RzL1QxMDFhZ2VudHgpOiBBZ2VudFggc3ViYWdlbnQgdGVzdCBmb3Igc2ltcGxlIGdldCByZXRyaWV2YWwuCiAgIAoyMDAwLTEwLTI1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IEFkZCAtWCBvcHRpb24gdG8gc25tcGQgdG8gcnVuIGFzIGEgc3ViYWdlbnQuCiAgIAoyMDAwLTEwLTI1IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZml4IGZvciBjYXNlcyB3aGVuZSBkZWJ1Z2dpbmcgaXMgYWx3YXlzIG9mZi4KICAgCjIwMDAtMTAtMTcgMTU6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bgogICAKMjAwMC0xMC0xNiAwMzoxMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYWdlbnR4L21hc3Rlci5jKTogU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIHRoZSAocHNldWRvLSlhbnN3ZXIgdG8gYSByZXF1ZXN0LgogICAJVGhpcyBhbGxvd3MgaXQgdG8gYmUgY2FjaGVkIGNvcnJlY3RseSBmb3IgbXVsdGktcGFzcyBTRVQgaGFuZGxpbmcuCiAgIAoyMDAwLTEwLTE2IDAzOjExICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIG1vZGUgaW5mb3JtYXRpb24KICAgCVRoaXMgc2hvdWxkIGhlbHAgd2l0aCAoc29tZSBvZikgdGhlIFNFVCBoYW5kbGluZyBwcm9ibGVtcy4KICAgCjIwMDAtMTAtMTYgMDE6NTYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEb24ndCBmcmVlIGNhbGxiYWNrIGRhdGEgc3RydWN0dXJlLgogICAJVGhpcyBob2xkcyBpbmZvcm1hdGlvbiB0aGF0IG5lZWRzIHRvIHBlcnNpc3QgYWNyb3NzIG11bHRpLXBhc3MgcmVxdWVzdHMuCiAgIAlJIHJlYWxpc2UgdGhhdCB0aGlzIGludHJvZHVjZXMgYSBtZW1vcnkgbGVhaywgYnV0IHRoaXMgaXNuJ3QgdGhlCiAgIAljb3JyZWN0IHBsYWNlIHRvIGhhbmRsZSB0aGlzLgogICAKMjAwMC0xMC0xMiAxNDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBhZGQgLUkgdG8gdGhlIGhlbHAgb3V0cHV0LgogICAKMjAwMC0xMC0xMiAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzLzogTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaAosIGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoYWdlbnQvZGxtb2RzLyopOiByZW1vdmUgb2Jzb2xldGUgdmVyc2lvbnMKICAgCjIwMDAtMTAtMTIgMTQ6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KICAgCjIwMDAtMTAtMTIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBNYXR0IEJyYWl0aHdhaXRlOgogICAgIC0gdWRwIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0byBjaGVjayBmb3IgbWlzYyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgLSAoVFVOTkVMLU1JQi50eHQpOiBUVU5ORUwtTUlCIGRlZmluaXRpb24uCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oKTogY29uZmlnX2FkZF9taWIoVFVOTkVMLU1JQikuCiAgIAoyMDAwLTEwLTEyIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHR1bm5lbC5oLCB0dW5uZWwvdHVubmVsLmMsCiAgIHR1bm5lbC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oLCB0dW5uZWwuYywgdHVubmVsLmgpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBpbXBsZW1lbnQgdGhlIFRVTk5FTC1NSUIuCiAgIAoyMDAwLTEwLTEwIDE0OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggdW5saW5rX3RyZWUgZm9yICJ0b3AgbGV2ZWwiIHRyZWUgbm9kZXMuCiAgIAoyMDAwLTEwLTEwIDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmV2ZXJzZSBsaWJyYXJ5IGxpbmsgb3JkZXJpbmcgYWdhaW4uLi4KICAgCjIwMDAtMTAtMTAgMDk6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVtb3ZlIHJlbGF0aXZlIHBhdGggdG8gaW5jbHVkZSBzeXN0ZW0uaC4KICAgCjIwMDAtMTAtMTAgMDY6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICBSZW1vdmUgdW5uZWVkZWQgZGVjbCBvZiB2c25wcmludGYgd2l0aG91dCBzdGRhcmcvdmFyYXJncyBkZWNsIG9mIHZhX2xpc3QuCiAgIAoyMDAwLTEwLTEwIDA1OjE1ICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgQXBwbHkgcGF0Y2ggZm9yIERFQyBBbHBoYSBFVjYsIHN1cHBsaWVkIGJ5IFNodW1vbiBIdXF1ZTxzaHVxdWVAaXNjLnVwZW5uLmVkdT4KICAgCjIwMDAtMTAtMDkgMTc6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBwYXRjaCB0byBmaXggbGVhZGluZyB6ZXJvIGVycm9yIGludHJvZHVjZWQgYnkgY2hhbmdlcyBmb3Igc2h1dGRvd25fbWliLgogICAKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGFkZGl0aW9ucy4KICAgCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlIGF1dG9fbmxpc3QgdG8gbGlidWNkbWlicy4KICAgCjIwMDAtMTAtMDkgMTE6NDMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBhZGQgbmV3IG1pcnJvci4KICAgCjIwMDAtMTAtMDkgMTA6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYzoKCiAgIE1vdmUgY29uZmlnLSBhbmQgc3RvcmUtcmVsYXRlZCBjbGVhbnVwIGZyb20gc2h1dGRvd25fbWliIHRvIHNubXBfc2h1dGRvd24uCiAgIAoyMDAwLTEwLTA5IDAyOjM2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBRdWFsaWZ5IGFuIGluZGl2aWR1YWwgaW50ZXJmYWNlIHR5cGUgdGVzdCBzeW1ib2wKICAgCShRbjogc2hvdWxkIGFueS9hbGwgb2YgdGhlIG90aGVycyBiZSBxdWFsaWZpZWQgYXMgd2VsbD8pCiAgIAoyMDAwLTEwLTA2IDA4OjU2ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LAogICBtYW4vZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWFuL21pYl9hcGkuMywKICAgbWFuL3NodXRkb3duX21pYi4zLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICBTdXBwb3J0IGZvciBzaHV0ZG93bl9taWIgLSBjbGVhcmluZyB0aGUgTUlCIHRyZWVzIGFuZCBjb25maWd1cmVkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAwLTEwLTA2IDA1OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGx1ZyBtZW1vcnkgbGVhayBmb3IgdWNkLXN1cHBsaWVkIHNldGVudiBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDAtMTAtMDYgMDQ6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0wNSAyMzo0NSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggc2lsbHkgYnVnIGluIG5ldyBvaWQgcGFyc2VyLCB3aGVuIGxlYXZpbmcgdGhlIHRyZWUgYW5kIGdvaW5nCiAgIAlpbnRvIHN1Yi1pZHMgd2Uga25vdyBub3RoaW5nIGFib3V0CiAgIAoyMDAwLTEwLTA1IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY3kgb3JkZXIuCiAgIAoyMDAwLTEwLTA0IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCAiZXh0ZW5kaW5nIiBzbm1wY29uZiBmaWxlLgogICAKMjAwMC0xMC0wNCAxNDo1MCAgbmJhCgogICAqIEZBUToKCiAgIC0gRkFROiBmaXggYSBjb25mdXNpb24gYmV0d2VlbiAib21pdCIgYW5kICJpbmNsdWRlIgogICAKMjAwMC0xMC0wNCAxMzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIChwYXNzX3BlcnNpc3QuYyk6IG9wYXF1ZXMgaW4gcGFzc19wZXJzaXN0LgogICAKMjAwMC0xMC0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogc3VwcG9ydCBvcGFxdWUgcmV0dXJuIHR5cGVzLgogICAKMjAwMC0xMC0wNCAwNzoxNSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgRml4IHBhcnNpbmcgcHJvYmxlbSBmb3IgLVBjIG9wdGlvbjsgcmVwb3J0ZWQgYnkgQ2hyaXN0aWFuIE1hdXRuZXIuCiAgIAoyMDAwLTEwLTA0IDA2OjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBxdWFsaWZ5IHN5bWJvbHMgZm9yIG5ldyBpL2YgdHlwZXMuCiAgIAoyMDAwLTEwLTA0IDA2OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBUZXJtaW5hdGUgbGlzdCB0byBjb21waWxlIChhZGQgYSBjb21tYSkuCiAgIAoyMDAwLTEwLTA0IDAwOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGluZGV4IGNvbHVtbnQgKC1DaSkgd2lkdGggbm90IHByb3Blcmx5IGNvbXB1dGVkIHdoZW4gdXNpbmcKICAgCUdFVEJVTEsKICAgCjIwMDAtMTAtMDMgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGFkZCBhIHBhc3NiYWNrIGFyZ3VtZW50IHRvIHJlZ2lzdGVyX3JlYWRmZCgpIGNhbGxiYWNrcy4KICAgCjIwMDAtMTAtMDMgMTg6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBhdXRvX25saXN0Lm8vbG8gdG8gbGlidWNkYWdlbnQgc2luY2Ugc29tZSBtaWItbW9kdWxlcyBuZWVkIGl0LgogICAKMjAwMC0xMC0wMyAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBGcmllZHJpY2g6CiAgICAgLSBmaXggZ2V0bmV4dCByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCiAgIAoyMDAwLTEwLTAzIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgogICAKMjAwMC0xMC0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIERvdWcgV2FyemVjaGE6CiAgICAgLSBmaXggb2lkIHBhcnNpbmcgaW4gdHJhcHMuCiAgIAoyMDAwLTEwLTAzIDE2OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgpOiBleGFtcGxlIG9mIGNvZGluZyBhIHYyIHRyYXAgZnJvbSBzb21lb25lIHdobwogICAgIEkgaGF2ZSB2ZXJ5IHNhZGx5IGZvcmdvdHRlbi4gIEkndmUgYmVlbiBsb29raW5nIGZvciB0aGF0IG1lc3NhZ2UgZm9yCiAgICAgYSB3aGlsZSB0byBwcm9wZXJseSBhdHRyaWJ1dGUgdGhpcyBwYXRjaC4gIFNpZ2guCiAgIAoyMDAwLTEwLTAzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERvdWdsYXMgV2FyemVjaGE6CiAgICAgLSBzbm1wZCByZXR1cm5zIHdyb25nIGVycm9yIGluZGV4IG9uIFNOTVB2MSByZXF1ZXN0IChCVUcjMzc1KS4KICAgCjIwMDAtMTAtMDMgMDk6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBudWxsIGRlcmVmIG9mIHNzLT5jb21tdW5pdHksIHJlcG9ydGVkIGJ5IEppbSBQaWNrZXJpbmcuCiAgIAoyMDAwLTEwLTAzIDA4OjAzICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdmFjbS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENhc3RpbmcgdG8gZml4IHByb2JsZW1zIGJ1aWxkaW5nIHdpdGggYUNDCiAgIFRoYW5rcyB0byBNYXJra3UgTGF1a2thbmVuIDxwa3lAbW9yZW1hZ2ljLmNvbT4KICAgCjIwMDAtMTAtMDMgMDU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgY2hkaXIgdG8gdW5kbyBmaXggZm9yIChCVUcjMjk4KQogICAKMjAwMC0xMC0wMiAyMTo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBFc2NhcGUgIiBhbmQgXCBpbiB0ZXh0IHN0cmluZ3MuCiAgIAoyMDAwLTEwLTAyIDIxOjM5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gc25tcF9sb2dnaW5nLmM6ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAgIAoyMDAwLTEwLTAyIDIxOjM4ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggYSBtaXNzaW5nICQoc3JjZGlyKSBkdXJpbmcgbWFrZSBpbnN0YWxsIG9mIG1pYjJjCiAgIAljb25maWd1cmF0aW9uIGZpbGVzCiAgIAoyMDAwLTEwLTAyIDIxOjM3ICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBzZXQuYzogRG8gYSBleGl0KDIpIGZvciBmYWlsdXJlIGluIHNldHRpbmcgdGhlIHZhcmlhYmxlLgogICAKMjAwMC0xMC0wMiAyMTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogYWRkIGEgc2FmZWd1YXJkIGZvciB2ZXJ5IGxvbmcgYXJndW1lbnQgbGlzdHMuCiAgIAoyMDAwLTEwLTAyIDIxOjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogQWRkIGEgbmFtZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB4ODYgSURFIGRpc2tzIGZvciBTb2xhcmlzLgogICAKMjAwMC0xMC0wMiAyMTozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0ga2VybmVsX3N1bm9zNS5jOiBtYWtlIHRoZSBidWZmZXIgZm9yIFNJT0NHSUZDT05GIGR5bmFtaWMuCiAgIAoyMDAwLTEwLTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXB1c20uaC4KICAgCjIwMDAtMTAtMDIgMTA6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOgogICAgIC0gbmV3IG9wdGlvbnMgZm9yIGluc3RhbGxpbmcgY3JlYXRlZCBmaWxlcy4KICAgICAtIG1vcmUgY29tbWVudHMgaW4gdGhlIGNvZGUuCiAgICAgLSBhbGxvdyByZWFkaW5nIGEgLmNvbmYgZGlyZWN0bHkgdG8gd3JpdGluZyBmb3IgYXV0by1jb21tZW50aW5nIC5jb25mIGZpbGVzLgogICAgIC0gbWlzYy4KICAgCjIwMDAtMTAtMDIgMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQtbGVzcy4KICAgCjIwMDAtMTAtMDIgMDk6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGJ5dGUgc3RhdFAgbWFsbG9jcy4KICAgCjIwMDAtMTAtMDIgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBmaXggaW50ZXJmYWNlcy5jIGZvciB2YXJpYWJsZSBsZW5ndGggbnVtYmVyIGZvcm1hdHRpbmcgaW4gL3Byb2MvbmV0L2Rldi4KICAgCjIwMDAtMTAtMDEgMTY6NDAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBQZXIgTmllbHMgcmVjb21tZW5kYXRpb24sIGNoZGlyIHRvIFBFUlNJU1RFTlRfRElSRUNUT1JZIChyZTogYnVnICMyOTgpCiAgIAoyMDAwLTA5LTMwIDA4OjU3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgRml4IERFQlVHTVNHVEwgbm90IGZvdW5kIGVycm9yIGZvciBidWlsZHMgd2l0aG91dCBkbG1vZCBzdXBwb3J0LgogICBUaGFua3MgdG8gc2ltb25AemlkLnR1d2Vpbi5hYy5hdAogICAKMjAwMC0wOS0yOSAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kICsgLm8gLT4gLmxvIGZpeGVzLgogICAKMjAwMC0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbDoKCiAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwpOiBza2lwIGVtcHR5IGRlcGVuZCBsaW5lcy4KICAgCjIwMDAtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBkcm9wIGR1cGxpY2F0ZSBsaW5lcyBmcm9tIHJlYWQgaW4gc25tcGQuY29uZiBmaWxlcy4KICAgCjIwMDAtMDktMjkgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzb3J0IHVua25vd24gZGlyZWN0aXZlcyBieSBmaWxldHlwZSAod2hvb3BzKS4KICAgCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBwcmludCBtb3JlIGluZm9ybWF0aW9uL2NvbW1lbnRzIHRvIHRoZSBzY3JlZW4uCiAgIAoyMDAwLTA5LTI5IDExOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtICh2YXJfc3RydWN0LmgpOiBpbmNyZWFzZSByZWdpc3RyYXRpb24gbmFtZSBsZW5ndGggdG8gMzIgZnJvbSAxNiAoQnVnICMxNzIpCiAgIAoyMDAwLTA5LTI5IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogaW5jb3JyZWN0IHZhbCBsZW5ndGggcGFzc2VkIHRvIHBhcnNlX3Vuc2lnbmVkX2ludCAoQnVnICMzMzkpLgogICAKMjAwMC0wOS0yOSAxMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBCdWcjMzUzIGZvciBob3N0bmFtZXMgdGhhdCBsb29rIGxpa2UgIjV3Ii4KICAgICAtIGRvbid0IGludGVycHJldGUgdGhlbSBhcyBhbiBpcC1wb3J0LgogICAKMjAwMC0wOS0yOSAxMDozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbToKICAgICAtIFRoZXJlIGlzIGEgcGVjdWxpYXJpdHkgaW4gdGhlIHNubXBfYWxhcm1fdW5yZWdpc3RlciBmdW5jdGlvbiBpbgogICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMgd2hpY2ggY2FuIGNhdXNlIGEgc2VnbWVudGF0aW9uIGZhdWx0LiAoQnVnICMzNjcpCiAgIAoyMDAwLTA5LTI5IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CiAgICAgLSBmaXggdXNlIG9mIE5VTEwgdGltZXN0YW1wIHBvaW50ZXIgaW4gbmV3IHJvdyBjcmVhdGlvbiAoQnVnICMzNDYpCiAgIAoyMDAwLTA5LTI4IDE0OjM4ICBuYmEKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gbWliX2FwaS4zOiBhZGQgYSBmZXcgZnVuY3Rpb25zIHRvIHRoZSBoZWFkZXIKICAgCjIwMDAtMDktMjggMTQ6MTQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIHNubXB0cmFwLmM6IHJlbW92ZSBhbiBleHRyYW5lb3VzIHNubXBfZnJlZV9wZHUKICAgCjIwMDAtMDktMjggMTQ6MTMgIG5iYQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgYWRkX21pYmRpci4zLAogICBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsIGdldF9tb2R1bGVfbm9kZS4zLCBpbml0X21pYi4zCiwgaW5pdF9taWJfaW50ZXJuYWxzLjMsIHByaW50X2Rlc2NyaXB0aW9uLjMsCiAgIHByaW50X21pYi4zLCBwcmludF9vYmppZC4zLCBwcmludF92YWx1ZS4zLAogICBwcmludF92YXJpYWJsZS4zLCByZWFkX2FsbF9taWJzLjMsIHJlYWRfbWliLjMsCiAgIHJlYWRfbW9kdWxlLjMsIHJlYWRfbW9kdWxlX25vZGUuMywgcmVhZF9vYmppZC4zLAogICBzbm1wX3NldF9taWJfd2FybmluZ3MuMywgc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMzoKCiAgIC0gbWFuLzogYWRkIG1hbiBlbnRyaWVzIGZvciBtYW55IGxpYnJhcnkgZnVuY3Rpb25zIChwb2ludGluZyB0byBzbm1wX2FwaS4zKQogICAKMjAwMC0wOS0yOCAxMTowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIHJlbW92ZSBzZWNvbmQgY29weSBvZiBzeXMvc29ja2V0LmgKICAgCjIwMDAtMDktMjcgMTI6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6CgogICAtIChkbG1vZC5oKTogYWRkIHRoZSBVQ0QtRExNT0QtTUlCIHRvIHRoZSBkZWZhdWx0IGxvYWQgbGlzdC4KICAgCjIwMDAtMDktMjcgMTI6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwo6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVjZF9zbm1wLmgsIGRsbW9kLmMpOgogICAgIC0gaW5jbHVkZSB1Y2Qtc25tcC9kbG1vZCBieSBkZWZhdWx0LgogICAgIC0gYnVpbGQgY29kZSBvbmx5IGlmIGRsb3BlbiBpcyBmb3VuZC4KICAgCjIwMDAtMDktMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBkb24ndCBwcmludCBrZXJuZWwgYmFzZWQgd2FybmluZyBtZXNzYWdlcyB3aGVuIC1yLCBldGMsIGlzIHNwZWNpZmllZC4KICAgCjIwMDAtMDktMjYgMTM6MTcgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgRm9yIFdpbjMyIEFQSTogRGVjbGFyZSBzdHJ0b3VsLCB2c25wcmludGY7IEVuYWJsZSByZXZlcnNlIEJFUiBlbmNvZGluZy4KICAgCjIwMDAtMDktMjYgMTM6MTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJbmNsdWRlIHN5c3RlbS5oICh2c25wcmludGYgZGVjbCkKICAgCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29uLgogICAKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDAtMDktMjYgMTM6MTMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggc2lnbmVkIGNvbXBhcmlzb247IFJlbW92ZSB1bnVzZWQgdmFyLgogICAKMjAwMC0wOS0yNiAxMzoxMiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEluY2x1ZGUgZ2V0b3B0LmggKG9wdGFyZyBkZWNsKTsgUmVtb3ZlIHVudXNlZCB2YXIuCiAgIAoyMDAwLTA5LTI2IDEzOjExICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBNYXRjaCBJbml0aWFsaXNlX1RhYmxlIGFyZ3MgMyw0IGRlY2xhcmF0aW9ucyB3aXRoIGRlZmluaXRpb25zLgogICAKMjAwMC0wOS0yNiAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSB0aGUgYWRtaW5zdGF0dXMgUk9OTFkuCiAgIAoyMDAwLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogY2hvbXAoJDEpIGlzIGlsbGVnYWwuCiAgIAoyMDAwLTA5LTI2IDAzOjA0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCB3aW4zMi9jb25maWcuaDoKCiAgIEV4cGxpY2l0bHkgYnVpbGQgcGF0aCB0byBDQUNIRUZJTEUsIGFzIG5vdCBhbGwgQyBjb21waWxlcnMgc3VwcG9ydCAiIyMiLgogICAKMjAwMC0wOS0yNSAxNjo1NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZGlyIGp1c3QgYmVmb3JlIHNlbmRpbmcgY29sZHN0YXJ0IHRyYXAsIHRvIGFsbG93IGZvciBwYXRocyB0byBiZQogICByZXNvbHZlZC4KICAgCjIwMDAtMDktMjUgMDk6MzUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBjYXNlIGluc2Vuc2l0aXZlIHRva2VuIHNlYXJjaCAodXNlIHN0cmNhc2VjbXApLgogICAKMjAwMC0wOS0yMiAwNjowMyAgbmJhCgogICAqIG1pYnMvOiBIQ05VTS1UQy50eHQsIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQsCiAgIElORVQtQUREUkVTUy1NSUIudHh0LCBJUC1GT1JXQVJELU1JQi50eHQsIHNtaXN0cmlwCjoKCiAgICAtbWlicy86IE1JQiB1cGRhdGVzCiAgIAoyMDAwLTA5LTIyIDA1OjU1ICBuYmEKCiAgICogbWlicy86IElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LAogICBJQU5BaWZUeXBlLU1JQi50eHQsIE1UQS1NSUIudHh0LCBNYWtlZmlsZS5pbiwKICAgTWFrZWZpbGUubWliLCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQsIFJGQy0xMjE1LnR4dAosIFJGQzExNTUtU01JLnR4dCwgUkZDMTIxMy1NSUIudHh0OgoKICAgLSBtaWJzLzogTUlCIHVwZGF0ZXMKICAgCjIwMDAtMDktMjIgMDU6NTIgIG5iYQoKICAgKiBtYW4vc25tcHNldC4xLCBtYW4vc25tcHRyYXAuMSwgc25tcGxpYi9zbm1wX2FwaS5jCiwgYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBfYXBpLmM6IHN1cHBvcnQgc2V0dGluZyBvZiBCSVRTIHZhcmlhYmxlcwogICAKMjAwMC0wOS0yMiAwNTo1MCAgbmJhCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSBzbm1wc3RhdHVzLmM6IHNob3cgZXJyb3Igb2JqZWN0CiAgIAoyMDAwLTA5LTIyIDA0OjI5ICBuYmEKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIHNubXB1c20uYzogaXNzdWUgZXJyb3IgbWVzc2FnZSB3aXRoIG9iamVjdAogICAKMjAwMC0wOS0yMiAwNDoyOCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIHN5c3RlbS5oOiBwcm92aWRlIHByb3RvdHlwZXMgZm9yIHN0cnRvbCwgc3RydG91bCwgc25wcmludGYsIHZzbnByaW50ZgogICAKMjAwMC0wOS0yMiAwNDoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzogcHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2Ygc3RyaW5ncwogICAKMjAwMC0wOS0yMSAxNjoxNyAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gYXBwcy86IGRpc3BsYXkgZmFpbGVkIG9iamVjdCB3aGVuIG9uZSBpcyBpZGVudGlmaWVkIGJ5IHBkdS0+ZXJyaW5kZXgKICAgCjIwMDAtMDktMjEgMTU6NTkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZGYuMToKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wZGYuMSk6IGRvY3VtZW50IHRoZSBzbm1wZGYgY29tbWFuZC4KICAgCjIwMDAtMDktMjEgMTU6NTAgIG5iYQoKICAgKiBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZTogdXNlIEdFVEJVTEsgdG8gY29sbGVjdCBkYXRhIHdoZW4gcHJvdG9jb2wgYWxsb3dzIGl0LiBBZGQKICAgCS1DQiBvcHRpb25zIHRvIGZhbGwgYmFjayB0byBHRVRORVhULgogICAKMjAwMC0wOS0yMSAxNTozOCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xOgoKICAgLSBtaWIuYzogcmV3cml0ZSBpbmRleCBoYW5kbGluZyBpbiBvYmplY3QgaWRzLCB0byBhbGxvdyBzeW1ib2xpYyBlbnVtcy4KICAgCUFkZCBEYXZlcyBzdWdnZXN0ZWQgLU92IG91dHB1dC4gQWxzbyBlbmhhY2UgLVRkIG91dHB1dCB0bwogICAJZGVzdGluZ3Vpc2ggT0JKRUNULVRZUEUgZnJvbSBUUkFQLVRZUEUsIE1PRFVMRS1JREVOVElUWSBldGMuCiAgIAoyMDAwLTA5LTIxIDE1OjMxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgLSAoc25tcGRmLmMpOiB1c2UgdGhlIFVDRC1TTk1QLU1JQidzIGRza1RhYmxlIGlmIHRoZQogICAgIEhPU1QtUkVTT1VSQ0VTLU1JQiBpcyBlbXB0eSBvciBpZiAtQ3UgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAgIAoyMDAwLTA5LTIxIDE1OjI4ICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIHBhcnNlLmM6IGFkZCBhYmlsaXR5IHRvIGNvbGxlY3QgVkFSSUFCTEVTL09CSkVDVFMgZm9yIFRSQVAtVFlQRQogICAJYW5kIE5PVElGSUNBVElPTi1UWVBFLiBJZ25vcmUgZmlsZXMgdGhhdCBkb2VzIG5vdCBoYXZlIERFRklOSVRJT05TCiAgIAlhcyB0aGVpciBzZWNvbmQgdG9rZW4uIEVuaGFuY2UgLVRkIG91dHB1dCBhY2NvcmRpbmdseS4KICAgCjIwMDAtMDktMjEgMTU6MjIgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMsCiAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4KLCBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSBzbm1wbGliOiBhZGQgc25wcmludGYsIHN0cnRvbCwgc3RydG91bCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgdGhlbQogICAKMjAwMC0wOS0yMSAxNToxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIC0gKG1pYi5oKTogYWRkIGZha2Ugc3RydWN0IGRlZmluaXRpb24gZm9yIGVudW1zCiAgIAoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCiAgICogc25tcGxpYi9zdHJ0b3VsLmM6CgogICBmaWxlIHN0cnRvdWwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3N0cnRvbC5jOgoKICAgZmlsZSBzdHJ0b2wuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmM6CgogICBmaWxlIHNucHJpbnRmLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA5LTIxIDA2OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgLSAobWliLmMsIG1pYi5oKTogbWFrZSBzcHJpbnQqIG5vbi1zdGF0aWMgKGJ1ZyAjMTMyKS4KICAgCjIwMDAtMDktMjEgMDA6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBidWcgIzM2MCB3aGVyZSBhIGNsaWVudCBtaWdodCByZW1vdmUgYSBhbGFybSByZWdpc3RyYXRpb24KICAgICAgIGR1cmluZyBhIGNhbGwgdG8gdGhlIGFsYXJtIGZ1bmN0aW9uIGFuZCBpbnZhbGlkYXRlIHRoZSBwb2ludGVyCiAgICAgICBiZWluZyB1c2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgogICAKMjAwMC0wOS0yMSAwMDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0tZGlzYWJsZS1zaGFyZWQgYnkgZGVmYXVsdCBpbiBjdnMgY2hlY2tvdXRzLgogICAKMjAwMC0wOS0yMCAxNzozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNwYWNlIGluZGVudCB0b2tlbnMgaWYgIyBwcmVwZW5kZWQuCiAgIAoyMDAwLTA5LTIwIDE3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IG51bGwgaW50ZXJuYWwgaGVscCBsaW5lcy4KICAgCjIwMDAtMDktMjAgMTc6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1vbml0b3IpOiBkaXNrLCBwcm9jLCBhbmQgbG9hZCBjaGVja3MuCiAgIAoyMDAwLTA5LTIwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMsIHNubXB2My5jKTogTlVMTCBvdXQgaGVscCBtZXNzYWdlcyBmb3IgLmNvbmYKICAgICB0b2tlbnMgdGhhdCBhcmUgZWl0aGVyIGludGVybmFsIG9yIG5vIGxvbmdlciB0aGUgc3RhbmRhcmQgd2F5IG9mCiAgICAgZG9pbmcgdGhpbmdzLgogICAKMjAwMC0wOS0yMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGV4cG9ydCBTTk1QQ09ORlBBVEggdG8gTWFrZWZpbGVzCiAgIAoyMDAwLTA5LTIwIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGNvcnJlY3Rpb24gb2YgdGFibGUgbmFtZS4gIE1vcmUgZXJyb3JzIGV4aXN0LgogICAKMjAwMC0wOS0yMCAxNjo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgZGVidWdnaW5nLCBtaWJzLCBvdXRwdXQpOiBtb3JlIHNubXAuY29uZiBzbm1wY29uZiBjb25maWcgZmlsZXMuCiAgIAoyMDAwLTA5LTIwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBhdXRob3B0cyk6IHNubXAuY29uZiBzdXBwb3J0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbiBvcHRpb25zLgogICAKMjAwMC0wOS0yMCAxNDo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6CiAgICAtIGRvbid0IGZvcmNlIHJlYWRpbmcgb2YgL3Vzci9sb2NhbC9zaGFyZS9zbm1wZC5jb25mLgogICAgLSBkb24ndCBwcmludCB1bmtub3duIGRpcmVjdGl2ZSBjb21tZW50IGhlYWRlcnMgaWYgdGhlcmUgYXJlbid0IGFueS4KICAgCjIwMDAtMDktMjAgMTQ6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzcGFjZSB0aGluZ3Mgb3V0IG9uIHRoZSBzY3JlZW4gYSBiaXQgYmV0dGVyLgogICAKMjAwMC0wOS0yMCAxNDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmY6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGNvbmYpOiBpbnN0YWxsIHNubXBjb25mIGFuZCBpdHMgdmFyaW91cyBzdXBwb3J0IGZpbGVzLgogICAKMjAwMC0wOS0yMCAxNDoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogZG8gcmV2ZXJzZSB2MyBoZWFkZXIgZW5jb2Rpbmcgd2l0aCBhIHN0YXRpYyBidWZmZXIuCiAgIAoyMDAwLTA5LTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogbWlzYyB1cGRhdGVzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA5LTIwIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4IGR5bmFtaWMgYXJyYXkgIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgSm9jaGVuIEttaWV0c2NoLgogICAKMjAwMC0wOS0yMCAwMjowNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IERvbid0IGluY2x1ZGUgY29udGV4dCBzdHJpbmdzIG9uIFBEVXMgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0aGVtCiAgIAkoVGhhbmtzIHRvIFBlZHJvIFBlcmVpcmEgZm9yIGlkZW50aWZ5aW5nIHRoaXMpCiAgIAoyMDAwLTA5LTE5IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcmVhZCBvbGRlciBjb25maWd1cmF0aW9uIGZpbGVzIGluIGFuZCBtZXJnZSB3aXRoIG5ldyByZXN1bHRzLgogICAKMjAwMC0wOS0xOSAxNDo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByaW50IHBkdSB0eXBlIG9uIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXAuYzoKCiAgIC0gKGFzbjEuYywgc25tcC5jKTogcmV2ZXJzZSBlbmNvZGluZyBzdXBwb3J0IGZvciBzcGVjaWFsaXplZCBvcGFxdWUKICAgICBkYXRhdHlwZXMgKGZsb2F0LCBkb3VibGUsIGV0YykuCiAgIAoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00OgoKICAgLSAoYWNsb2NhbC5tNCk6IGRvY3VtZW50IG1hY3JvcyBhIGJpdCBtb3JlIGZvciBzdWJtaXNzaW9uIHRvIHRoZQogICAgIGF1dG9jb25mIG1hY3JvIGxpYnJhcnkuCiAgIAoyMDAwLTA5LTE5IDA4OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgRml4IGJ1ZyAjMjk1IHJlcG9ydGVkIGJ5IEpvaG4gV2hpdG5leSBqb2hud0BhaWluZXQuY29tCiAgIAoyMDAwLTA5LTE4IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBzbm1wZC5oOgoKICAgLSAoc25tcF92YXJzLmgsIHNubXBkLmgpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBnZXRTdGF0UHRyIGRlZmluaXRpb24gdG8gcHJvcGVyIC5oIGZpbGUuCiAgIAoyMDAwLTA5LTE4IDE0OjU1ICBtc2xpZmNhawoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgRml4IGJ1ZyAjMzQ3IHJlcG9ydGVkIGJ5IGRhc19kZW5pekB5YWhvby5jb206IG1ha2Ugc2JpbiBpbnN0YWxsIGRpcgogICAKMjAwMC0wOS0xNCAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGFkZCBhIHBvcnQgc3BlY2lmaWNhdGlvbiBzbm1wZC5jb25mIHRva2VuLgogICAKMjAwMC0wOS0xNCAwODo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogaWdub3JlIG91dHB1dCBvZiBnZXRob3N0YnluYW1lIGZvciB0cmFwIHNlc3Npb24gYWRkaW5nLgogICAKMjAwMC0wOS0xMyAxNTowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IG5ldyB1dGlsaXR5IHRvIGdlbmVyYXRlIC5jb25mIGZpbGVzIGJ5IHByb21wdGluZyB0aGUKICAgICB1c2VyIHdpdGggcXVlc3Rpb25zLgogICAKMjAwMC0wOS0wOCAxMzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjoKICAgICAtIGZpeCBwcm94eSBzdXBwb3J0IGZvciBudWxsIGxlbmd0aCBzdHJpbmdzLgogICAKMjAwMC0wOS0wNyAxMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgIC0gZml4IG9wZW5zc2wgY2hlY2tzLgogICAgLSBydW4gYXV0b2hlYWRlci4KICAgCjIwMDAtMDktMDUgMTM6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIE1pbm9yIHRvdWNodXBzIHRvIGJ1aWxkIG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMC0wOS0wNSAxMzozNCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wZGYvLmN2c2lnbm9yZSwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXB2YWNtLy5jdnNpZ25vcmUsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIFdlbGNvbWUgdGhlIG5ld2VzdCB1Y2Qtc25tcCBhcHBsaWNhdGlvbnMgdG8gdGhlIFdpbjMyIGJ1aWxkcy4KICAgCjIwMDAtMDktMDQgMTU6MTkgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IHJlc3RhcnQgZXJyb3Jjb3VudCB3aGVuIHJlbG9hZGluZyBjb25maWcKICAgCjIwMDAtMDktMDQgMTU6MTIgIG5iYQoKICAgKiBtYW4vc25tcG5ldHN0YXQuMToKCiAgIC0gc25tcG5ldHN0YXQuMTogYWxpZ24gbWFuIHBhZ2Ugd2l0aCBwcm9ncmFtCiAgIAoyMDAwLTA5LTA0IDE1OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICAtIGlwQWRkci5jOiByZW1vdmUgYSBiYWQgbnRvaGwgZm9yIE9wZW5CU0QKICAgCjIwMDAtMDktMDQgMTU6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgbWliSUkvdGNwLmMsCiAgIG1pYklJL3RjcFRhYmxlLmMsIG1pYklJL3VkcC5jLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgLSBtaWJpbmNsLmgsIHt0Yyx1ZH1weyxUYWJsZX0uYzogZW5zdXJlIGp1c3Qgb25lIGluY2x1ZGUgb2Ygc29ja2V0LmgKICAgCXRvIG1ha2UgdW5wcm90ZWN0ZWQgaW5jbHVkZSBmaWxlIGluIFVsdHJpeCBoYXBweQogICAKMjAwMC0wOS0wNCAxNTowNSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IG1ha2UgLS13aXRob3V0LWxpYndyYXAgd29yawogICAKMjAwMC0wOS0wMSAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHVwZGF0ZWQgY29kZS4KICAgCjIwMDAtMDktMDEgMTE6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFNjb3R0IExpcGNvbiBub3RlZCB0aGF0IHNubXB0cmFwZCBkb2Vzbid0IHN1cHBvcnQgLVQuCiAgIAoyMDAwLTA4LTMwIDEzOjI4ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggbG9vcCBpbiBzeW50YXggZXJyb3IgaW4gREVGVkFMIGNsYXVzZS4gQWxzbyBmaXggcmVhZGluZwogICAJb2YgLmluZGV4IGZpbGUgd2l0aCBmaWxlbmFtZXMgY29udGFpbmluZyBibGFua3MuCiAgIAoyMDAwLTA4LTI4IDEzOjQzICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWlub3Igc3ludGF4IGdsaXRjaCBpbiBQT0QgZG9jcwogICAKMjAwMC0wOC0yNCAwMTo1NSAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggYnVnIHdpdGggZGlzcGxheWluZyBoZWFkZXItbGVzcyBpbmRleGVkIHRhYmxlcwogICAJKFRoYW5rcyB0byBFcm5pZSBNaWxsZXIpCiAgIAoyMDAwLTA4LTE5IDExOjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gPENocmlzdG9waC5NYW1taXR6c2NoQHR1LWNsYXVzdGhhbC5kZT4KICAgdG8gZml4IHNpZ24gaW4gYXNuX3JidWlsZF91bnNpZ25lZF9pbnQgLgogICAKMjAwMC0wOC0xOCAwNDoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgcmVzdG9yZSBwcmV2aW91cyB2ZXJzaW9uOyBvcGVuYnNkLCBzb2xhcmlzLCBsaW51eCBidWlsZCBvay4KICAgCjIwMDAtMDgtMTggMDM6NDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSB1bnVzZWQgcHJpbnRmIGFyZ3VtZW50IHBhc3NlZCB0byBzbm1wX2xvZy4KICAgCjIwMDAtMDgtMTggMDM6MjAgIG1zbGlmY2FrCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgMjUzIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgSmVmZnJleSBIb25pZyA8amNoQGJzZGkuY29tPgogICAKMjAwMC0wOC0xOCAwMjo1MiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0OgoKICAgZml4IGJ1ZyAzMTggLSB0ZXN0IDkgYW5kIDEwIGV4cGxpY2l0bHkgY3JlYXRlIHRoZSB0ZXN0IHVzZXIuCiAgIAoyMDAwLTA4LTE3IDEzOjQyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBUaGUgYmF0dGxlIHRvIHRyaW0gbmV3bGluZXMgY29ycmVjdGx5IGNvbnRpbnVlcy4uLnJlZHVjZSBsZW5ndGggYnkgb25lLgogICAKMjAwMC0wOC0xNiAxNTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYzoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IGZpeCB2YXJpb3VzIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBwcm9ibGVtcy4KICAgCjIwMDAtMDgtMTYgMTU6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBmaXggcGFkZGluZyBzaXplIGluIGVuY3J5cHRpb24uCiAgIAoyMDAwLTA4LTE2IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogc2V0IHBsYWludGV4dCBsZW5ndGggYXQgdGhlIGVuZCBvZiBzY19kZWNyeXB0LgogICAKMjAwMC0wOC0xNSAwNTowOCAgbXNsaWZjYWsKCiAgICogRkFROgoKICAgRml4IGJ1ZyAyODQgd2l0aCBhIHNob3J0IGV4cGxhbmF0aW9uIGFib3V0IHNubXAuY29uZi4KICAgCjIwMDAtMDgtMTUgMDM6MDAgIG1zbGlmY2FrCgogICAqIElOU1RBTEw6CgogICBGaXggYnVnIDI4MyAtIHVtYXNrIDAyMiwgbWFrZSBpbnN0YWxsLiBUaGFua3MgdG8gY3NhYmEudG90aEBzemsuYmtlLmh1CiAgIAoyMDAwLTA4LTE1IDAwOjA4ICBuYmEKCiAgICogYXBwcy86IHNubXB0ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wdGVzdC5jOgoKICAgLSBzbm1wdGVzdC5jOiBvdmVyaGF1bCBpbnB1dF92YXJpYWJsZSwga2lsbCBuZXdsaW5lCiAgIAoyMDAwLTA4LTE0IDIyOjA1ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTEtMS1wYXRjaGVzLlsxLDAsMF0pLAogICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWNsb2NhbC5tNCwgY29uZmlndXJlLmluOiBmaXhlcyBmb3IgY29uZmlndXJlIC0tc2lsZW50CiAgIAoyMDAwLTA4LTE0IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSAtLWVuYWJsZS1zaWxlbnQtbGlidG9vbCB0byBtYWtlIE5pZWxzIHNtaWxlLgogICAKMjAwMC0wOC0xNCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBhIG5ldyAoZGVmYXVsdCkgZW5naW5lSUQgdHlwZSBiYXNlZAogICAgIG9uIGEgcmFuZG9tIG51bWJlciwgYW5kIGEgdGltZXN0YW1wLgogICAgIC0gSSB0aGluayBpdCB3b24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIGluc3RhbGxhdGlvbnMgKGhlaCkuCiAgIAoyMDAwLTA4LTE0IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIGlmIC1EcmVhZF9jb25maWcsIHRoZW4gcHJpbnQgZXZlbiBuby1oZWxwIHRva2VucyBhbmQgYSAqIGZvciBQUkVNSUIgb25lcy4KICAgCjIwMDAtMDgtMTQgMTQ6NTEgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCBhcHBzL3NubXBidWxrZ2V0LmMKLCBzbm1wbGliL2dldG9wdC5oLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAobWFueSk6IHBvcnRhYmlsaXR5IGZpeGVzIGZvciBPcGVuQlNEIDIuNiwgRnJlZUJTRCA0LjEsIFVsdHJpeCA0LjUKICAgCjIwMDAtMDgtMTQgMTE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIHVudXNlZCBjb250ZXh0IHZhcmlhYmxlcy4KICAgCjIwMDAtMDgtMTQgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBrZXlsZW5ndGggY2hlY2suCiAgIAoyMDAwLTA4LTExIDEzOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogb3B0aW1pemUgcmV2ZXJzZSBlbmNvZGluZyBvZiB2YXJiaW5kbGlzdHMuCiAgIAoyMDAwLTA4LTExIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChSRUFETUUubWliMmMpOiBQYXRjaCBmcm9tIEphbiBBbGZyZWQgU2FuZHZlbjoKICAgICAtIHR5cG9zLgogICAKMjAwMC0wOC0xMSAwNjowNSAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYwosIHNubXB3YWxrLmM6CgogICAtIGFwcHMvKjogc25tcGFwcCAtViBzaG91bGQgbm90IGdpdmUgdGhlIHVzYWdlIG1lc3NhZ2UgdG9vLgogICAKMjAwMC0wOC0xMSAwMDo0MyAgbmJhCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcHRyYXBkLjg6CgogICAtIHNubXB0cmFwZC44OiBmaXggdHlwby4gVGhhbmtzIHRvIEcuIEFsbGVuIE1vcnJpcyBJSUkgPGdhbTNAYWNtLm9yZz4KICAgCjIwMDAtMDgtMTAgMjM6MjMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IHByZWRlZmluZSBPYmplY3RTeW50YXgsIEFwcGxpY2F0aW9uU3ludGF4LCBTaW1wbGVTeW50YXggYW5kCiAgIAlPYmplY3ROYW1lCiAgIAoyMDAwLTA4LTEwIDE2OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBtaWIyYyk6CiAgICAgLSBtYWtlIG1pYjJjIGxvb2sgaW4gJChzbm1wbGliZGlyKSBmb3IgLmNvbmYgZmlsZXMuCiAgICAgLSBpbnN0YWxsIG1pYjJjIGFuZCAuY29uZiBmaWxlcy4KICAgCjIwMDAtMDgtMTAgMTQ6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBkeW5hbWljYWxseSBkZWNpZGUgdG8gcmV2ZXJzZS9mb3J3YXJkIGVuY29kZS4KICAgCjIwMDAtMDgtMTAgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYyk6IGZpeCBDUiB0ZXJtaW5hdGlvbi4KICAgCjIwMDAtMDgtMTAgMTQ6MjUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgcmV2ZXJzZSBlbmNvZGluZyBvbiBieSBkZWZhdWx0LgogICAKMjAwMC0wOC0xMCAxMzowMiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggYnVnIDI1MiBmb3IgY29uZmlndXJlIGFuZCBzeXMvc29ja2V0Lmggb24gQlNEL09TIDQuMgogICAKMjAwMC0wOC0xMCAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywKICAgc25tcHVzbS5oLCBzbm1wdjMuYzoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAogICAgIHNubXB1c20uaCwgc25tcHYzLmMpOgogICAgIC0gaW1wbGVtZW50IHJldmVyc2UgZW5jb2RlZCBtZXNzYWdlcy4KICAgICAgIC0gVE9ETzogY2xlYW4gdXAsIHJ1bi10aW1lIGRldGVybWluYXRpb24gb2Ygd2VhdGhlciB0byB1c2UgaXQgb3Igbm90LgogICAKMjAwMC0wOC0wOSAxNTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGJ1ZyAzMzEgd2l0aCBwYXRjaCBpbiBwYXJ0IHByb3ZpZGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA5IDE1OjI3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdmFjbS5jOgoKICAgbm8gLy8gY29tbWVudCwgaW4gZGVmZXJlbmNlIHRvIG5vbi1BTlNJLUMgY29tcGlsZXJzLgogICAKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogZml4IHRoZSBSdW5QYXRoIGZvciBzd2FwcGVkIG91dCBMaW51eCBwcm9jZXNzCiAgIAoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3ByaW50LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBocl9wcmludC5jCjoKCiAgIC0gaHJfcHJpbnQuYzogZml4IGEgZGVidWcgdG9rZW4KICAgCjIwMDAtMDgtMDkgMDQ6NDQgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiBmaXggcGFyc2luZyBvZiAtdgogICAKMjAwMC0wOC0wOCAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoZXh0ZW5zaWJsZS5jKTogc3RyaXAgbmV3bGluZXMuCiAgIAoyMDAwLTA4LTA4IDA4OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjogc3RhcnQgb3B0aW5kIGF0IDEgbm90IDAuCiAgICAgLQogICAKMjAwMC0wOC0wOCAwNjozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggYnVnICMyOTUgKGZyZWUgKnNlY1N0YXRlUmVmIGJlZm9yZSBhbGxvY2F0aW5nIGFub3RoZXIgb25lKS4KICAgCjIwMDAtMDgtMDggMDY6MDUgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFnZW50L3NubXBkLmM6CgogICBmaXggYnVnICMyOTggcmVwb3J0ZWQgYW5kIHBhdGNoIHN1cHBsaWVkIGJ5IENvbnJhZCBMaW5rIDxjbGlua0BtbC5jb20+CiAgIAoyMDAwLTA4LTA4IDA0OjU5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBmaXggYSBidXN5IGxvb3Agd2hlbiBhbGFybSBxdWV1ZSBpcyBhY3RpdmUgd2l0aG91dCBhbnkKICAgCW91dHN0YW5kaW5nIHJlcXVlc3RzCiAgIAoyMDAwLTA4LTA4IDA0OjQ3ICBuYmEKCiAgICogbWFuL3NubXBzZXQuMToKCiAgIC0gc25tcHNldC4xOiBjYW5ub3Qgc2V0IGNvdW50ZXJzCiAgIAoyMDAwLTA4LTA4IDA0OjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCAoQlVHIzMzMikgdXNpbmcgcGF0Y2ggc3VibWl0dGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIEFsc28gY29uc29saWRhdGVkIGNvbW1lbnRzIGFib3V0IHRoZSBmb3VyIHNlbmQgUERVIGZ1bmN0aW9ucy4KICAgCjIwMDAtMDgtMDcgMDY6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBsZWFrIGluIHJlcG9ydGFibGUgZXJyb3JzIGZvdW5kIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCiAgICogbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMzoKCiAgIGZpbGUgYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgogICAqIG1hbi9yZWFkX29iamlkLjM6CgogICBmaWxlIHJlYWRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjM6CgogICBmaWxlIHNubXBfc2V0X21pYl93YXJuaW5ncy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zOgoKICAgZmlsZSBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21vZHVsZV9ub2RlLjM6CgogICBmaWxlIHJlYWRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9tb2R1bGUuMzoKCiAgIGZpbGUgcmVhZF9tb2R1bGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9taWIuMzoKCiAgIGZpbGUgcmVhZF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9hbGxfbWlicy4zOgoKICAgZmlsZSByZWFkX2FsbF9taWJzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhcmlhYmxlLjM6CgogICBmaWxlIHByaW50X3ZhcmlhYmxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhbHVlLjM6CgogICBmaWxlIHByaW50X3ZhbHVlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X29iamlkLjM6CgogICBmaWxlIHByaW50X29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X21pYi4zOgoKICAgZmlsZSBwcmludF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMzoKCiAgIGZpbGUgcHJpbnRfZGVzY3JpcHRpb24uMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWIuMzoKCiAgIGZpbGUgaW5pdF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjM6CgogICBmaWxlIGluaXRfbWliX2ludGVybmFscy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9nZXRfbW9kdWxlX25vZGUuMzoKCiAgIGZpbGUgZ2V0X21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2FkZF9taWJkaXIuMzoKCiAgIGZpbGUgYWRkX21pYmRpci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFkZCBpbiB0aGUgbm90aWZpY2F0aW9uIGdyb3VwIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTA4LTA0IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIC0gKG5vdGlmaWNhdGlvbi5oKTogbm90aWZpY2F0aW9uIG1pYiB3cmFwcGVyLgogICAKMjAwMC0wOC0wNCAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKToKICAgIC0gaW5pdGlhbGl6ZSBvcHRpbmQgYmVmb3JlIGNhbGxpbmcgZ2V0b3B0LgogICAgLSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMC0wOC0wNCAxNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBwcm9wZXJseSBzZXQgdGhlIGZpcnN0ICh1bnVzZWQpIGFyZ3VtZW50IHRvIHNubXBfcGFyc2VfYXJncygpLgogICAKMjAwMC0wOC0wNCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X3RyYXAuYywgc25tcE5vdGlmeVRhYmxlLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBpZiB1c2luZyB0aGUgc25tcE5vdGlmaWNhdGlvblRhYmxlLCBpbnNlcnQgbm9uLXYxIHRyYXAgc2lua3MgaW50byBpdC4KICAgCjIwMDAtMDgtMDQgMDU6MjYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKLmg6CgogICAtIChtaWJncm91cC9taWJKSi5oIG1pYmdyb3VwL21pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKICAgCjIwMDAtMDgtMDQgMDU6MjEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtIChtaWJncm91cC91dGlsX2Z1bmNzLltjaF0pOiBOZXcgJ2NhY2hlZCB0YWJsZScgcm91dGluZXMKICAgCjIwMDAtMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBidWcgIzMyNSBpZGVudGlmaWVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JUC1GT1JXQVJELU1JQi50eHQ6CgogICBmaWxlIElQLUZPUldBUkQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0OgoKICAgZmlsZSBJTkVULUFERFJFU1MtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQ6CgogICBmaWxlIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9IQ05VTS1UQy50eHQ6CgogICBmaWxlIEhDTlVNLVRDLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDIgMDc6MDYgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFNpbGVudCBydW5uaW5nIGdyZXAgcmVzdWx0cy4KICAgCjIwMDAtMDgtMDIgMDY6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBCVUcgIzI5MTogYWxsb3cgIjI1NS4yNTUuMjU1LjI1NSIgZm9yIHRleHQgaW5wdXQgdG8gQVNOX0lQQUREUkVTUwogICAKMjAwMC0wOC0wMiAwNToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdGVzdC5jCjoKCiAgIEZpeCAoQlVHIzMyMyk6IGZyZWUgUERVIHdoZW4gc25tcF9zZW5kIGZhaWxzLgogICAKMjAwMC0wOC0wMiAwNTowNiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFkZCAtcCBvcHRpb24gb25jZSB0byBzbm1wZCBhcmdzLgogICBGaW5kIE1JQkRJUlMgaW4gc291cmNlIHRyZWUuCiAgIEZpeCBjb25kaXRpb24gdG8gc2V0IFBBVEguCiAgIAoyMDAwLTA4LTAxIDIzOjMwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gaXAuYzogT25lIG1vcmUgI2lmIHNvbGFyaXMKICAgCjIwMDAtMDgtMDEgMjM6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSBpcC5jOiBBIGJhZCAjaWYgLi4uIHRoZSBwcm9wZXIgZGVmaW5lIHRvIHRlc3QgZm9yIFNvbGFyaXMgaXMgc29sYXJpczIKICAgCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSB1bnVzZWQgdXNhZ2UoKSB0eXBlZGVmLgogICAKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAocHJveHkuYywgcHJveHkuaCk6IC1XYWxsIHdhcm5pbmcgZml4ZXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIG5ld2VyIHZlcnNpb25zIG9mIFNvbGFyaXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL1RFU1RDT05GLnNoLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IHJldmVydCB0byBub24tY29uZmlnZWQgVEVTVENPTkYuCiAgIAoyMDAwLTA4LTAxIDE2OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiBtYWtlIHVuLXF1aWV0LgogICAKMjAwMC0wOC0wMSAxMDoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICAtIChzbm1wLXVjZC5zaCk6IGZpeCBidWcgIzI5NyAoZG9uJ3Qga2lsbCBncmVwIGFuZCBpbml0IHNjcmlwdCBpbnZvY2F0aW9ucykuCiAgIAoyMDAwLTA4LTAxIDA0OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBidWcgZm91bmQgYnkgWWlnYWwgSG9jaGJlcmcgPGhvY2hiZXJnQGRtaHNvZnR3YXJlLmNvbT4KICAgCjIwMDAtMDgtMDEgMDM6MzAgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggYnVpbGRpbmcgb2YgY29tcGxldGUgT0lECiAgIAkod29yayB3aXRoIHRoZSBuYW1lIG9yaWdpbmFsbHkgcmVnaXN0ZXJlZCwKICAgCSBub3QgYW55IHN1YnNlcXVlbnQgZGl2aXNpb24gYm91bmRhcmllcykKICAgCjIwMDAtMDctMzEgMjA6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZm9wZW4gZnJvbSBzaGVsbF9jb21tYW5kLgogICAKMjAwMC0wNy0zMSAxODo1OCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaC5pbjoKCiAgIChURVNUQ09ORi5zaC5pbikgLSBzZXQgTUlCRElSUyB0byBzaWJsaW5nIG9mIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4KICAgKFJVTlRFU1RTKSAtIGFsbG93IGJpbmFyaWVzIHRvIGJlIGluIHRoZSAiLUQgYmluZGlyIiBkaXJlY3RvcnkuCiAgIAoyMDAwLTA3LTMxIDE1OjI1ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLmluOgoKICAgRG9udCBhZGp1c3QgUEFUSCBpZiBTTk1QX1BBVEggaXMgc2V0LgogICBEb250IGFkZCBwb3J0IHNwZWMgdG8gU05NUF9GTEFHUyBpZiBvbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQuCiAgIAoyMDAwLTA3LTMxIDEzOjQ5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBSZW1vdmUgdGVzdCBkaXJlY3RvcmllcyBmb3Igc2tpcHBlZCB0ZXN0cy4KICAgS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBmYWlsZWQgdGVzdHMuCiAgIEtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgcGFzc2VkIHRlc3RzIHdoZW4gIlJVTlRFU1RTIC1zIiBpcyBzcGVjaWZpZWQuCiAgIFNlYXJjaCBjb25maWcuaCBhdCB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgdHJlZS4KICAgCjIwMDAtMDctMzEgMTE6MzIgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5ndWVzczoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcCwgQ3JheS1UMywgU1gtNCwgU1gtNQogICAKMjAwMC0wNy0zMSAxMTozMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcAogICAKMjAwMC0wNy0zMCAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6CiAgICAgLSBpbXBsZW1lbnQgdW50ZXN0ZWQgZmlsdGVyaW5nIGZ1bmN0aW9uIGNhbGxiYWNrIGZvciB0YXJnZXQgc2VhcmNoZXMuCiAgICAgLSBkZWxldGUgdW51c2VkIGZ1bmN0aW9uLgogICAgIC0gbWlzYyB3YXJuaW5nIGZpeGVzLgogICAKMjAwMC0wNy0zMCAxNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmg6CgogICAtIChzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmgpOgogICAgIC0gbW9yZSBub3RpZmljYXRpb24gdGFibGUgaW1wbGVtZW50YXRpb25zIGZvciBmaWx0ZXJpbmcuCiAgICAgICAtIEZyYW1ld29yayBjb21wbGV0ZSwgZnVuY3Rpb25hbGl0eSBpcyBub3QuCiAgIAoyMDAwLTA3LTMwIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIGhhbmRsZSBpbXBsaWVkIG9iamVjdHMuCiAgICAgLSBpbXBsZW1lbnQgaGVhZGVyX2NvbXBsZXhfZ2V0KCkgZm9yIHNpbXBsZSBkYXRhIHJldHJpZXZhbHMuCiAgIAoyMDAwLTA3LTI4IDA2OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNC0xLTEtcGF0Y2hlcy4yKSwKICAgdmFyX3JvdXRlLmM6CgogICBDbGVhbnVwIGluY2x1ZGUgaGVhZGVycyB0byBmaXggYnVnICMzMDcuIFRoYW5rcyB0byBzYW5kdmVuQHJlc2VhcmNoLmF0dC5jb20uCiAgIAoyMDAwLTA3LTI3IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBWaW5heSBNb2h0YToKICAgICAtIGFjY2Vzc19ob3N0cygpIHJlcXVpcmVzIGFuIGFyZ3VtZW50IHNvIGZha2Ugb25lLgogICAKMjAwMC0wNy0yNyAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXR0aWFzIEJhcnRoZWw6CiAgICAgLSBmaXggZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBhdHRhY2hlZCBJUCBhZGRyZXNzLgogICAKMjAwMC0wNy0yNyAxNDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHN1cHBvcnQgcmF3IHZhbHVlcy4KICAgCjIwMDAtMDctMjcgMDg6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogcHJpbnQgZXJyb3JzIHRvIHN0ZGVyci4KICAgCjIwMDAtMDctMjcgMDY6MjAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGl6YXRpb24gd2hlbiBvbmUgTUlCIGhvbGRzIE1PRFVMRS1DT01QTElBTkNFCiAgIAlmb3IgYW5vdGhlcgogICAKMjAwMC0wNy0yNyAwMTozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogRml4IHBkdS0+Y29tbXVuaXR5IGJlaW5nIG92ZXJ3cml0dGVuIHdpdGggc2Vzc2lvbi0+Y29tbXVuaXR5CiAgIAlUaGFua3MgdG8gRGFuYSBQLiBDb29rIDxkY29va0BjYWJsZXRyb24uY29tPgogICAKMjAwMC0wNy0yNiAyMjoyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBVcGRhdGUgZm9yIHdpbjMyIGJ1aWxkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgdW5wdWJsaXNoZWQgbWV0aG9kLgogICAKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gdHJhbnNsYXRlT2JqIGhhY2suCiAgIAoyMDAwLTA3LTI2IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gcmVtb3ZlIGJlZ2lubmluZyBuZXdsaW5lIGluIGRlc2NyaXB0aW9uIGNsYXVzZXMuCiAgIAoyMDAwLTA3LTE3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5oKTogY29uZmlnX3JlcXVpcmUga2VybmVsX3N1bm9zNS4KICAgCjIwMDAtMDctMTIgMDk6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNvcHkga2V5IGxlbmd0aCBhcyB3ZWxsIGFzIHRoZSBrZXkgd2hlbiB1c2luZyB0aGUgc2FtZQogICAgIHByaXZhY3kga2V5IGFzIHRoZSBhdXRoIGtleS4KICAgCjIwMDAtMDctMTEgMTM6MzQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzLCB0L21pYi50CjoKCiAgIGFkZGVkIHJhbmdlcyBmaWVsZCB0byBTTk1QOjpNSUIgaGFzaAogICAKMjAwMC0wNy0xMSAxMDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBtYWtlIG51bGwgUFJFRklYIHZhcmlhYmxlIHBvc3NpYmxlIHNvIG5vbi1kb3QtbGVhZGluZyBvaWRzIGFyZSBhY2NlcHRlZC4KICAgCjIwMDAtMDctMTEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAtIG1ha2UgdGhlIHNlc3Npb24gcG9pbnRlcnMgaW5kaWNhdGUgd2VhdGhlciBvciBub3QgdGhleSBhcmUKICAgICAgICJhdXRob3JpdGF0aXZlIiwgbWVhbmluZyB3ZWF0aGVyIHRoZXkgc2hvdWxkIGJlIGxlYXJuaW5nIGVuZ2luZUlEcwogICAgICAgb3IgcmVwb3J0aW5nIG9uIHRoZW0uCiAgICAgLSBwYXNzIHRoZSByZWNlaXZlZC1wYWNrZXQgc2Vzc2lvbiBwb2ludGVyIGludG8gc25tcHYzX3BhcnNlIGFuZAogICAgICAgdXNtX3Byb2NjZXNzX2luX21zZygpIHRvIHVzZSB0aGlzIGZsYWcuCiAgICAgLSBzZXQgaXNBdXRob3JhdGF0aXZlID0gdHJ1ZSBpbiB0aGUgYWdlbnQsIGFuZCB1bmtub3duIGluIHRoZSBzbm1wdHJhcGQuCiAgIAoyMDAwLTA3LTExIDA4OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBtYWtlIHRoZSBjcmVhdGVVc2VyIHRva2VuIGFjY2VwdCBhbiBlbmdpbmVpZCAoLWUgQVJHKSB0byB1c2UuCiAgIAoyMDAwLTA3LTA3IDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBSZWNvZ25pc2UgVG9rZW4gUmluZyBpbnRlcmZhY2VzIHVuZGVyIExpbnV4CiAgIAoyMDAwLTA3LTA2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogcHJpbnQgZ2VuZXJpYyBzdHJpbmdzIHdoZW4gc2F2aW5nIHBlcnNpc3RlbnQgZGF0YQogICAgIHdoZXJlIHBvc3NpYmxlLiAgKElFLCBjaGVjayBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMgYmVmb3JlIHByaW50aW5nIGhleCkuCiAgIAoyMDAwLTA3LTA2IDE3OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluOgoKICAgLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogbW92ZWQgVEVTVENPTkYuc2ggdG8gVEVTVENPTkYuc2guaW4KICAgICBhbmQgaGF2ZSB0aGUgTUlCUyBwYXRoIHZhcmlhYmxlIGJ1aWx0IGJ5IGNvbmZpZ3VyZSBzaW5jZSBpdCBrbm93cwogICAgIHdoZXJlIHRoZSByb290IGxldmVsIHNvdXJjZSBkaXJlY3RvcnkgaXMuCiAgIAoyMDAwLTA3LTA2IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBoZWFkZXJfY29tcGxleC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBhc24xLmgsIHNubXBfYXBpLmMpOgogICAgIC0gaW1wbGVtZW50IElNUExJRUQgaW5kZXggaGFuZGxpbmcuCiAgICAgLSBtYWtlIHRoZSBjcmVhdGVkIFVTTSBlbnRyaWVzIHNldCB0aGUgc3RvcmFnZVR5cGUgYW5kIFJvd1N0YXR1cwogICAgICAgYXBwcm9wcmlhdGVseS4KICAgCjIwMDAtMDctMDYgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBiZXR0ZXIgY29tbWVudHMgb24gYSBjb3VwbGUgb2YgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTA3LTA1IDA3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggKEJVRyMyOTApIGdyYWNlZnVsbHkgaGFuZGxlIHNvbWUgUERVcyB0aGF0IGhhdmUgbm8gdmFyaWFibGVzLgogICAKMjAwMC0wNy0wNSAwNjo0NiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wNy0wNCAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgLSByZW1vdmUgbGFzdCByZW1uYW50cyBvZiB0aGUgImluaXRpYWwiIHVzZXIuCiAgICAgLSBtYWtlIGVuZ2luZWlkIHJlcG9ydHMgZnJvbSB0aGUgdXNtIGhhcHBlbiBiYXNlZCBvbiB0aGUgcmVwb3J0IGZsYWcKICAgICAgIGluIHRoZSBtZXNzYWdlIGZsYWcuCiAgICAgICAtIE5vdGU6IHRoaXMgaXMgYSBiaWcgaXNzdWUgd2l0aCB0aGUgU05NUHYzIHByb3RvY29sIHNwZWNzLiAgVGhlCiAgICAgICAgIHNwZWNpZmljYXRpb25zIG5vdGUgdGhhdCB5b3Ugc2VuZCBhIHJlcG9ydCBpZiB5b3UgYXJlCiAgICAgICAgICJhdXRob3JpdGF0aXZlIiwgYnV0IGRvbid0IGRlc2NyaWJlIGhvdyB0byBrbm93IGlmIHlvdSBhcmUKICAgICAgICAgYXV0aG9yaXRhdGl2ZSBvciBub3QuICBGb3Igc2l0dWF0aW9ucyBsaWtlIHByb3hpZXMgYW5kCiAgICAgICAgIG5vdGlmaWNhdGlvbiByZWNlaXZlcnMsIHdoZXJlIHlvdSBhcmUgc29tZXRpbWVzIGF1dGhvcml0YXRpdmUKICAgICAgICAgYW5kIG90aGVyIHRpbWVzIHlvdSdyZSBub3QsIHRoaXMgaXMgcHJvYmxlbWF0aWMuICBUaGUgU05NUHYzCiAgICAgICAgIEFTSXMgZG8gbm90IHBhc3MgaW4gZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0aGlzIGFuZCB0aGUKICAgICAgICAgV0cgaGFzIHByb2NsYWltZWQgdGhhdCB0aGUgQVNJcyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgYXMgYW4KICAgICAgICAgQVBJLCBidXQgdGhlIGluaXRpYWwgd29yayBkb25lIGJ5IE5BSSBhbmQgVElTTGFicyBhdHRlbXB0ZWQgdG8KICAgICAgICAgaW1wbGVtZW50IHRoZSBVU00gc3VjaCB0aGF0IGl0IHdvdWxkIGJlIGEgInJlZmVyZW5jZSIgcmVsZWFzZQogICAgICAgICBhbmQgaGVuY2Ugd2UgZm9sbG93ZWQgdGhlIHNwZWNpZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIgYW5kIHVzZWQKICAgICAgICAgdGhlIEFTSXMgYXMgQVBJcyBqdXN0IHRvIHNlZSBpZiB3ZSBjb3VsZC4gIFdlIGNvdWxkIHByZXZpb3VzbHkKICAgICAgICAgb25seSBiZWNhdXNlIHdlIHdlcmUgYWx3YXlzIGVpdGhlciBhdXRob3JpdGF0aXZlIG9yCiAgICAgICAgIG5vbi1hdXRob3JpdGF0aXZlLiAgU2luY2UgYmVnaW5uaW5nIHRvIHdvcmsgb24gcHJveHkgYW5kIHRoZQogICAgICAgICBub3RpZmljYXRpb24gbWliLCB0aGlzIGlzIG5vIGxvbmdlciBwb3NzaWJsZS4gIEZvciB0aGUgcmVjb3JkLCBJCiAgICAgICAgIGFtIGhlcmVieSBjaGFuZ2luZyB0aGUgaW5pdGlhbCByZWZlcmVuY2UgcmVsZWFzZSBpbiBzdWNoIGEKICAgICAgICAgbWFubmVyIGFzIGl0IG5vIGxvbmdlciBjb25mb3JtcyBleGFjdGx5IHRvIHRoZSBTTk1QdjMgQVNJcy4gIFNvCiAgICAgICAgIGFzIG5vdCB0byBjb25mdXNlIGFueW9uZSwgdGhpcyBpcyBhbiBlbnRpcmVseSB0aGVvcmV0aWNhbCBpc3N1ZQogICAgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIFNOTVB2MyBzcGVjaWZpY2F0aW9uIGFuZCBpcyBwZXJmZWN0bHkgbGVnYWwKICAgICAgICAgdG8gZG8uICBUaG91Z2ggSSBjb3VsZCBlYXNpbHkgZ28gb24sIEknbGwgc3RlcCBvZmYgbXkgc29hcCBib3ggbm93LgogICAKMjAwMC0wNy0wMyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfdHJhcC5jLAogICBhZ2VudF90cmFwLmgsIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBBZGQgYSBuZXcgY2FsbGJhY2sgZm9yIHNlbmRpbmcgdHJhcHMuCiAgICAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgdXNlIGl0LgogICAgIC0gbWFrZSB0aGUgdGFyZ2V0IG1pYiBnZW5lcmF0ZSBtb3JlIHBlcnNpc3RlbnQgc2Vzc2lvbnMuCiAgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIGFsd2F5cyBhc2sgdGhlIHRhcmdldCBtaWIgZm9yIGEgc2Vzc2lvbgogICAgICAgbGlzdCwgd2hpY2ggaXMgbm93IGNhY2hlZCBkaXJlY3RseSBieSB0aGUgdGFyZ2V0IG1pYi4KICAgCjIwMDAtMDctMDMgMDg6MzggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYwosIHN5c3RlbS5jOgoKICAgZml4IChCVUcjMjYyKSAtIChzb21lKSBzdGF0ZW1lbnRzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQuCiAgIAoyMDAwLTA3LTAzIDA3OjU1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBmaXggKEJVRyMyODcpCiAgIAoyMDAwLTA3LTAzIDA2OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGZpeCBidWcgIyAyODkKICAgCjIwMDAtMDYtMzAgMDQ6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHNpbXBsaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGluIHJlYWRfY29uZmlnX3JlYWRfe29jdGV0X3N0cmluZywgb2JqaWR9CiAgIAoyMDAwLTA2LTMwIDAwOjQ3ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBGaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciBrZXl3b3JkcyB3aXRob3V0IGhlbHAKICAgCjIwMDAtMDYtMjggMjM6MzcgIG5iYQoKICAgKiBtaWJzLzogSUYtTUlCLnR4dCwgTWFrZWZpbGUubWliOgoKICAgLSBJRi1NSUIudHh0OiB1cGdyYWRlIHRvIFJGQyAyODYzCiAgIAoyMDAwLTA2LTI4IDAwOjU4ICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYywgY29uZmlndXJlOiBJcml4IDYuNSBoYXMgaWZpX2JhdWRyYXRlLmlmc192YWx1ZQogICAKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGJldHRlciBvcHRpb24gcGFyc2luZy4KICAgCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSBzbm1wdjMuYzogZG8gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiBvcHRpb24gdmFsdWVzLgogICAKMjAwMC0wNi0yNyAwMDozMyAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIHNubXB0cmFuc2xhdGUuMTogZG9jdW1lbnQgdGhhdCAtdyBpcyBhbHNvIGZvciAtVGQKICAgCjIwMDAtMDYtMjcgMDA6MzAgIG5iYQoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xCiwgc25tcGdldC4xLCBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLAogICBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRlc3QuMSwgc25tcHRyYXAuMQosIHNubXB0cmFwZC44LCBzbm1wd2Fsay4xLCB2YXJpYWJsZXMuNToKCiAgIC0gdmFyaW91cyBtYW4gcGFnZSBuaXQtcGlja2luZwogICAKMjAwMC0wNi0yNyAwMDoyOCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBmaXhlcyBhbmQgdXNhZ2UgbWVzc2FnZSBmb3IgLUNoIGFuZCAtQ0gKICAgCjIwMDAtMDYtMjYgMjM6NDMgIG5iYQoKICAgKiBtaWJzLzogQUdFTlRYLU1JQi50eHQsIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0LAogICBESVNNQU4tU0NSSVBULU1JQi50eHQsIEV0aGVyTGlrZS1NSUIudHh0LAogICBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCBJQU5BLUxBTkdVQUdFLU1JQi50eHQKLCBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQKLCBJUFY2LUlDTVAtTUlCLnR4dCwgSVBWNi1NSUIudHh0LCBJUFY2LVRDLnR4dAosIElQVjYtVENQLU1JQi50eHQsIE1ha2VmaWxlLmluLCBSTU9OLU1JQi50eHQKLCBTTVVYLU1JQi50eHQsIFNOTVAtQ09NTVVOSVRZLU1JQi50eHQsCiAgIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsIFNOTVAtTVBELU1JQi50eHQsCiAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgU05NUC1UQVJHRVQtTUlCLnR4dCwgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgU05NUHYyLUNPTkYudHh0LAogICBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVNNSS50eHQsIFNOTVB2Mi1UQy50eHQsCiAgIFNOTVB2Mi1UTS50eHQsIFRDUC1NSUIudHh0LCBVRFAtTUlCLnR4dDoKCiAgIC0gTWFrZWZpbGUuaW4sICpNSUIudHh0OiB1cGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbgogICAKMjAwMC0wNi0yNiAyMzo0MiAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIC0gTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6IHRvb2xzIHRvIGV4dHJhY3QgTUlCcyBmcm9tIFJGQwogICAJZG9jdW1lbnRzLgogICAKMjAwMC0wNi0yNiAyMzo0MCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBwYXJzZS5jLCBtaWIuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhZGQgcGFyc2luZyBvZiBDSE9JQ0UgYW5kIGNoZWNrcyBmb3IKICAgCU9CSkVDVC1HUk9VUCBhbmQgQUdFTlQtQ0FQQUJJTElUSUVTLiBUaGlzIGFsbG93cyB1cyB0byBwYXJzZQogICAJY29tcGxldGUgTUlCIGV4dHJhY3RzIGZyb20gUkZDIGRvY3VtZW50cy4KICAgCjIwMDAtMDYtMjYgMjM6MzggIG5iYQoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIE1ha2VmaWxlLnRvcDogbWFrZSBsaWJ0b29sIHNpbGVudCwgc28gd2UgY2FuIHNlZSB0aG9zZSB3YXJuaW5ncwogICAKMjAwMC0wNi0yNiAyMzozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAtIHNubXBUYXJnZXRBZGRyRW50cnkuYzogZG8gYSBjYXN0IHRvIGtpbGwgYSB3YXJuaW5nCiAgIAoyMDAwLTA2LTI2IDIzOjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwLmM6IEZpeCBhIGxlYWsgd2hlbiByZXF1ZXN0IGlzIGJsb2NrZWQgYnkgVkFDTSBhbmQgbm8gdHJhcAogICAJaXMgc2VudC4KICAgCjIwMDAtMDYtMjYgMTE6NTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCAoQlVHIzIzMykKICAgCjIwMDAtMDYtMjMgMDY6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlcGxhY2UgbWFsbG9jL21lbXNldCAwIHdpdGggY2FsbG9jLgogICAKMjAwMC0wNi0yMyAwMTowOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgKLCBpcC5jOgoKICAgLSAobWliSUkva2VybmVsX2xpbnV4LltjaF0sIG1pYklJL2lwLmMpOiBBZGRlZCBzdXBwb3J0IGZvciBpcFJvdXRpbmdEaXNjYXJkcwogICAJKFRoYW5rcyB0byBCcnlhbiBCbGFja21hbikKICAgCjIwMDAtMDYtMjIgMTc6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlbW92ZSBleHRyYSBpbmNsdWRlIGVycm9ybWliLmgKICAgCjIwMDAtMDYtMjIgMTY6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeCBidWcgIzI3NiAtIGNsb3NlIG1vc3QgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgZXhlYydpbmcgY29tbWFuZC4KICAgCjIwMDAtMDYtMjIgMTU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKOgoKICAgZmdldHM6IHVzZSBzaXplb2YoYnVmKSBpbiBsaWV1IG9mIGNvbXBpbGVyIGNvbnN0YW50IFNUUk1BWC4KICAgCjIwMDAtMDYtMjIgMTU6NTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIFVzZSBmZXdlciBsYXJnZSBzdGF0aWMgYnVmZmVycy4gIHBhc3NfcGVyc2lzdCB1c2VzIGJpZ2dlciBidWZmZXJzIG5vdy4KICAgCjIwMDAtMDYtMjEgMTI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jKTogVWgsIG9ubHkgaWYgbm90IGRlbGV0ZWQuCiAgIAoyMDAwLTA2LTIxIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYyk6IGNoYW5nZSBjcmVhdGVBbmRHby9jcmVhdGVBbmRXYWl0IHN0YXRlcyB0byBhY3RpdmUvTklTLgogICAKMjAwMC0wNi0yMCAyMDowMSAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW46CgogICBEZWNsYXJlIHRvcF9idWlsZGRpciB0byBhdm9pZCBhbm5veWluZyAvbGlidG9vbCBub3QgZm91bmQgbWVzc2FnZS4KICAgCjIwMDAtMDYtMjAgMTc6MzAgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgRG9udCBhc3N1bWUgQU5TSSBDLXByZXByb2Nlc3NvciAocmVwbGFjZSAiIyMiIGNvbmNhdGVuYXRpb24gd2l0aCBzcHJpbnRmKS4KICAgCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZGVmLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFdpbjMyIE1TLVZDKysgYnVpbGQgZml4dXBzLgogICAKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEVuY2Fwc3VsYXRlIGxvY2FsIHZhcmlhYmxlICJ4IiB0byB0aGUgc2NvcGUgd2hlcmUgbmVlZGVkLgogICAKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXIgIm5ld3ZhciIuCiAgIAoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFVzZSBpbnQgdnMgdWxvbmcgZm9yIGFycmF5IGluZGV4aW5nIHZhcmlhYmxlcyB0byBhdm9pZCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2guCiAgIAoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJzIHN0cnVjdCB0bSwgdGltZV90LgogICAKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyICJpbml0bGlzdCIuCiAgIAoyMDAwLTA2LTIwIDE1OjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEZWNsYXJlIHN0cm5jYXNlY21wIGluIHN5c3RlbS5oIDsgUmVtb3ZlIHVudXNlZCB2YXIgInN0YXR1cyIuCiAgIAoyMDAwLTA2LTIwIDE1OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFycy4KICAgCjIwMDAtMDYtMjAgMTU6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIERlY2xhcmUgb3B0YXJnIGluIGdldG9wdC5oLgogICAKMjAwMC0wNi0yMCAxNDowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBtaW5vciBjaGFuZ2VzLgogICAKMjAwMC0wNi0yMCAxMzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMKLCBzbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKC5jdnNpZ25vcmUsIHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCk6CiAgICAgLSBTTk1QLU5PVElGSUNBVElPTi1NSUIncyBzbm1wTm90aWZ5VGFibGUgaW1wbGVtZW50ZWQ6CiAgICAgICAtIHVzZXMgdGhlIFNOTVAtVEFSR0VULU1JQiB0byBnZXQgaXRzIGFkZHJlc3NlcyBmcm9tLgogICAgICAgLSB1c2VzIGhlYWRlcl9jb21wbGV4IHRvIGhhbmRsZSB0aGUgZGF0YS4KICAgICAgIC0gbXVjaCB0b2RvOgogICAgICAgICAtIGR5bmFtaWMgdGFyZ2V0L25vdGlmaWNhdGlvbiBtaWIgdXBkYXRpbmcgd2l0aG91dCBraWxsIC1IVVAgbmVlZGVkLgogICAgICAgICAgIC0gdGhpcyB3aWxsIGJlIGEgcmVhbCBwYWluLgogICAgICAgICAtIGZpeCB2MyByZWxhdGVkIHRyYXBzIHN0aWxsIChzYW1lIHVzbSBidWcgSSd2ZSBiZWVuIG1lYW5pbmcgdG8gZml4KS4KICAgICAgICAgLSB0aGUgcmVzdCBvZiB0aGUgU05NUC1OT1RJRklDQVRJT04tTUlCIHRhYmxlcy4KICAgCjIwMDAtMDYtMjAgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgogICAtIGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KICAgLSBtaXNjIG90aGVyIG1pbm9yIGZpeGVzLgogICAKMjAwMC0wNi0yMCAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtICh0YXJnZXQuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKTogZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgogICAgIGJhc2VkIG9uIGVudHJpZXMgaW4gdGhlIFNOTVAtVEFSR0VULU1JQiB0YWJsZS4KICAgCjIwMDAtMDYtMjAgMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogcmVtb3ZlIE1pY2hhZWwncyBob3JyaWJsZWx5IHdyb25nICJmaXhlcyIuCiAgIAoyMDAwLTA2LTIwIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOiBhZGQgcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLgogICAKMjAwMC0wNi0yMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRlYWwgd2l0aCAwLWxlbmd0aCBwZXJzaXN0ZW50IHN0cmluZ3MgYmV0dGVyLgogICAKMjAwMC0wNi0xOSAxMjozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2hlY2sgbW9yZSBhbGxvYyBmYWlsdXJlcy4KICAgCjIwMDAtMDYtMTkgMTI6MTUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBwcm90b2NvbC5jOgoKICAgKHByb3RvY29sLmMpIFVzZSBzaXplb2Yob2lkKSwgbm90IDQhCiAgIChjbGllbnQuYykgQWRkIF9hbGxfIG9mIE9JRCB2YWx1ZSBmb3IgYWdlbnR4X3JlZ2lzdGVyIGFuZCBhZ2VudHhfdW5yZWdpc3Rlci4KICAgCjIwMDAtMDYtMTkgMTE6NDEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgUmVtb3ZlZCBzaXplb2YodV9jaGFyKSBhbmQgdW5uZWNlc3NhcnkgKHVuc2lnbmVkKSBjYXN0cyB0byBtYWxsb2MgcGFyYW1zLgogICAKMjAwMC0wNi0xOSAwMzowNCAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgUHJvdG90eXBlIGZpeHVwLgogICAKMjAwMC0wNi0xOSAwMzowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICBzL2NvbmlmZy9jb25maWcvIC4uLi4gSHJycm1tbXBmCiAgIAoyMDAwLTA2LTE5IDAyOjU4ICBuYmEKCiAgICogbWFrZW5vc3lzZGVwZW5kLnBsLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIG1ha2Vub3N5c2RlcGVuZC5wbCBNYWtlZmlsZS5pbjogb2JqZWN0IGZpbGVzIGFyZSBub3cgbmFtZWQgLmxvIC4uLgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCk6IGFkZCB0aGUgU05NUHYyLVRNIG1pYiB0byB0aGUgZGVmYXVsdCBsaXN0LgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBmaXggaW5jb3JyZWN0IE9JRHMuCiAgIAoyMDAwLTA2LTE1IDA2OjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZhdCBmaW5nZXJzCiAgIAoyMDAwLTA2LTE1IDA2OjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5QTDoKCiAgIGFkZCBkZWZhdWx0cyB0byBkYWVtb24gc2VhcmNoIHBhdGguLi5yZWNhbGMgdC9zbm1wdGVzdC5jbWQgZXZlcnl0aW1lIHBlciBtYWtlZmlsZS5QTCBpcyBydW4KICAgCjIwMDAtMDYtMTIgMTY6NDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRyYXBzZXNzLgogICAKMjAwMC0wNi0xMiAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKToKICAgICAtIG5ldyBzbm1wZC5jb25mIHRva2VuIGZvciB0cmFwIHNlc3Npb25zOiAidHJhcHNlc3MiLgogICAgICAgLSB1c2VzIHNubXBfcGFyc2VfYXJncyBzbyBhbnkgdHlwZSBvZiB0cmFwIGNhbiBiZSBzZW50IHdpdGggaXQKICAgICAgICAgbW9kaWZpZWQgYnkgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4gc25tcGNtZCgxKS4KICAgICAgIC0gdjMgdHJhcHMgZG9uJ3Qgd29yayBkdWUgdG8gdGhlIHNhbWUgVVNNIHByb2JsZW1zIGZvdW5kIGluIHRoZQogICAgICAgICByZWNlbnQgcHJveHkgc3VibWlzc2lvbnMgKG15IG5leHQgdGFyZ2V0KS4KICAgICAgIC0gLUNpIGluIHRoZSBhcmd1bWVudCBzcGVjaWZpZXMgaW5mb3JtcyBzaG91bGQgYmUgdXNlZC4KICAgCjIwMDAtMDYtMTIgMTY6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlLWVuYWJsZSBmcmVlaW5nIG9mIG1hc3RlciByZXF1ZXN0LgogICAKMjAwMC0wNi0xMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNhdmUgZXhlYyBkYXRhIHRvIC92YXIvdWNkLXNubXAuCiAgICAgLSBjb3VsZCBjYXVzZSBwcm9ibGVtcyBmb3Igbm9uLXJvb3QgcnVucy4gIFVudGVzdGVkLgogICAKMjAwMC0wNi0xMiAxNDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSByZW1vdmUgZW5kaW5nIGNvbW1hcyBpbiBlbnVtIGxpc3QuCiAgIAoyMDAwLTA2LTA3IDEzOjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gdGhlIFRZUEUuY29uZiBwYXJzZXIgbm93IGFjY2VwdHMgdG9rZW5zIGZyb20gYSBkaWZmZXJlbnQgLmNvbmYKICAgICAgIGZpbGUgVFlQRSBpZiBhIHNwZWNpYWwgIltUWVBFXSIga2V5d29yZCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICAgICAgLmNvbmYgZmlsZS4gIFNlZSBzbm1wX2NvbmZpZyg1KSBmb3IgYSBiZXR0ZXIgZGVzY3JpcHRpb24uCiAgIAoyMDAwLTA2LTA3IDEzOjIyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFwIHN0cnRvdWwgdG8gYXRvaSBpZiB0aGUgZnVuY3Rpb24gaXNuJ3QgZm91bmQuCiAgIAoyMDAwLTA2LTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCAqLm1hZGUuCiAgIAoyMDAwLTA2LTAyIDExOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLAogICBtaWIyYywgdGttaWI6CgogICAtIChNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwgbWliMmMsIHRrbWliKToKICAgICAtIG1ha2UgKGFuZCBpbnN0YWxsKSBwZXJsIHNjcmlwdHMgZGlmZmVyZW50bHksIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBvcmlnLgogICAKMjAwMC0wNi0wMSAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdCdpbmcgdG8KICAgICBlbnN1cmUgd2UgdXBkYXRlIGNvdW50ZXJzIGFuZCBzdHVmZiB0aGF0IG11c3QgY2hhbmdlIChlZywgZW5naW5lQm9vdHMpLgogICAKMjAwMC0wNS0zMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkZXNjcmliZSAtSS4KICAgCjIwMDAtMDUtMzEgMTU6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJfbW9kdWxlcy5jCiwgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wZC5jKToKICAgICAtIG5ldyAtSSBzd2l0Y2ggdG8gc25tcGQgdG8gZG8gZHluYW1pYyBkZXRlcm1pbmF0b24gb2Ygd2hpY2ggbWliCiAgICAgICBtb2R1bGVzIHRvIGluaXRpYWxpemUgKGFuZCBoZW5jZSB3aGljaCBtaWIgdHJlZSBzZWN0aW9ucyB0byBzdXBwb3J0KS4KICAgCjIwMDAtMDUtMzEgMTU6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKTogZGVmYXVsdCBzdG9yZSByb3V0aW5lcyBmb3Igdm9pZCBwb2ludGVycy4KICAgIC0gd2hpY2ggSSBpbW1lZGlhdGVseSBkZWNpZGVkIHRvIGRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZm9yIHdoYXQgSQogICAgICBvcmlnaW5hbGx5IGltcGxlbWVudGVkIGl0IGZvciwgc28gaXRzIG5vdCBiZWluZyB1c2VkIHlldC4KICAgCjIwMDAtMDUtMzEgMDU6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYywgaXAuaDoKCiAgIC0gKG1pYklJL2lwLltjaF0pOiBBbGxvdyBJUCBzdXBwb3J0IHdpdGhvdXQgdGhlIEF0L2lwTmV0VG9NZWRpYSBtb2R1bGUKICAgCjIwMDAtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKHByb3h5LmMsIHByb3h5LmgpOiBzaW1wbGUgcHJveHkgc3VwcG9ydC4KICAgICAtIG1hcHMgb25lIG9pZCBpbnNpZGUgdGhlIGFnZW50IHRvIGEgcG9zc2libHktZGlmZmVyZW50IG9pZCBvbiBhIHRhcmdldC4KICAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzKCkgc28gaXQgdGFrZXMgc3RhbmRhcmQgY29tbWFuZCBsaW5lIGNvbmZpZyBvcHRpb25zLgogICAgIC0gbm8gc2V0IHN1cHBvcnQuCiAgICAgLSBubyBraWxsIC1IVVAgc3VwcG9ydC4KICAgICAtIG5vIFNOTVB2MyBzdXBwb3J0IChzaWdoKS4KICAgCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKICAgKiBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dDoKCiAgIGZpbGUgSUFOQS1MQU5HVUFHRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQ6CgogICBmaWxlIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQ6CgogICBmaWxlIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvQUdFTlRYLU1JQi50eHQ6CgogICBmaWxlIEFHRU5UWC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwNzo0NyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IHByb2JsZW0gaWRlbnRpZmllZCBieSBWLiBHcmVuZXQ6IG5ldyBtZXRob2Qgc25tcF9vaWRfbWluX2NvbXBhcmUKICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL21pYmZldGNoOgoKICAgZmlsZSBtaWJmZXRjaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL3NtaXN0cmlwOgoKICAgZmlsZSBzbWlzdHJpcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpbGUgTWFrZWZpbGUubWliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0yNiAwOToyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3N5c09SVGFibGUuYyBtaWJJSS9zeXN0ZW1fbWliLmMpOgogICAgIC0gVXNlIG5ldyB0aW1lIHV0aWxpdHkgcm91dGluZXMgdG8gc2ltcGxpZnkgcHJvY2Vzc2luZwogICAgIC0gVXBkYXRlIHN5c09STGFzdENoYW5nZSB3aGVuIGFkZGluZy9yZW1vdmluZyBlbnRyaWVzCiAgIAoyMDAwLTA1LTI2IDA5OjIzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5bY2hdKTogTmV3IHRpbWUtZGlmZiB1dGlsaXR5IHJvdXRpbmVzCiAgIAoyMDAwLTA1LTI2IDA4OjQ2ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtIChzbm1wZC5jIHNubXBfYWdlbnQuYyBtaWJJSS92YXJfcm91dGUuYyk6IFVzZSAnbWliaW5jbC5oJyBoZWFkZXIKICAgCjIwMDAtMDUtMjYgMDc6NDggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXQogICAgICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gU3VwcG9ydCBmb3IgTUlCIHJlZ2lvbiB0aW1lb3V0cwogICAKMjAwMC0wNS0yNiAwNzo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogU3VwcG9ydCBmb3IgcGVyLXJlcXVlc3QgdGltZW91dCBoYW5kbGluZwogICAKMjAwMC0wNS0yNiAwNzo0NSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IE1pbm9yIGVycm9yIGluIEFnZW50WCBwYWNrZXQgZHVtcAogICAKMjAwMC0wNS0yNSAxMDowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq+HJzdGFkOgogICAgIC0gZml4ZWQgbGludXggcHJvYmxlbTogd3JvbmcgcGFyYW1zIGdldHRpbmcgcmV0dXJuZWQuCiAgIAoyMDAwLTA1LTI1IDA1OjM4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBGaXggdXNlIG9mIGJpbjJhc2MgdG8gbm90IGFsd2F5cyBzaG93ICJzdHJpbmciOyB1c2Ugc25tcF9vaWRfY29tcGFyZSwgdG9vLgogICBTZWUgYnVnICMyMzQgZm9yIGRldGFpbHMuCiAgIAoyMDAwLTA1LTI1IDAzOjM5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb25zb2xpZGF0ZSBoZWFkZXIgaGFuZGxpbmcuCiAgIAoyMDAwLTA1LTI1IDAzOjMxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb3JyZWN0IGNvbmZ1c2luZyBjb21tZW50CiAgIAoyMDAwLTA1LTI1IDAxOjUzICBkYXZlcwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBSZXBsYWNlIHVzZSBvZiAnY3V0JyB3aXRoIGVxdWl2YWxlbnQgJ3NlZCcgY2FsbHMKICAgCjIwMDAtMDUtMjUgMDE6MzAgIGRhdmVzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluIGFjbG9jYWwubTQgY29uZmlndXJlKToKICAgICAtIERpcmVjdCBjZXJ0YWluIGNoZWNrcyB0byB0aGUgYXBwcm9wcmlhdGUgZmlsZSBkZXNjcmlwdG9yIChzZWUgQlVHIzI0NykKICAgCjIwMDAtMDUtMjIgMTY6MjIgIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKGFwcHMvLmN2c2lnbm9yZSk6IGFkZCBtb3JlIHN0dWZmIHRvIGlnbm9yZS4KICAgCjIwMDAtMDUtMjIgMTY6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGtnZXQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMKLCBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaDoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrZ2V0LmMsCiAgICAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgICBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wX3BhcnNlX2FyZ3MuaCk6CiAgICAgLSBtb3ZlZCBzbm1wX3BhcnNlX2FyZ3MgdG8gdGhlIGxpYnJhcnksIGFzIEkgcHJvbWlzZWQgdG8gZG8gYWdlcyBhZ28uCiAgICAgICAtIG5vIGxvbmdlciBjYWxscyB1c2FnZSgpIGRpcmVjdGx5LCBidXQgcmV0dXJucyAtMSBpZiB5b3Ugc2hvdWxkLgogICAKMjAwMC0wNS0yMiAwNTo0NyAgZGF2ZXMKCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAtIChzbm1wbGliL3Rvb2xzLltjaF0pOiBSb3V0aW5lIGZvciBjb21wYXJpbmcgdHdvIG1hcmtlcnMuCiAgIAoyMDAwLTA1LTIyIDA1OjQyICBkYXZlcwoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKGxvY2FsL21pYjJjKTogR2VuZXJhdGUgbXVsdGlwbGUgdGFibGVzIGluIG9uZSBjb2RlIGZpbGUKICAgCjIwMDAtMDUtMTcgMTA6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIHdyaXRhYmxlIHZhY20gbWliIHN1cHBvcnQuCiAgICAgLSBvdGhlciBtaXNjIHZhY20gZml4ZXMuCiAgIAoyMDAwLTA1LTE3IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIERvbid0IHNlZ2ZhdWx0IG9uIGFuIHVua25vd24gY29tbWFuZCwgaW5zdGVhZCBwcmludCBhIHdhcm5pbmcuLgogICAKMjAwMC0wNS0xNyAxMDoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgLSAoc25tcHZhY20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIGFkZGVkIGEgbmV3IGNvbW1hbmQ6IHNubXB2YWNtLgogICAKMjAwMC0wNS0xNyAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBtZW50aW9uIHRoZSBwb3J0IG51bWJlciBvbiB0aGUgdHJhcHNpbmsgaGVscCBsaW5lLgogICAKMjAwMC0wNS0xNyAwOToyMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogdXNlIHN0YW5kYXJkaXplZCBidWZmZXIgc2l6ZXMKICAgCjIwMDAtMDUtMTcgMDk6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBtYW4vc25tcHRyYXBkLjg6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tCiAgICAgSmVmZiBDb3VyczoKICAgICAtIGN1c3RvbWl6ZWQgZm9ybWF0dGluZyBvZiB0cmFwIG91dHB1dC4KICAgCjIwMDAtMDUtMTcgMDk6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZCBKZWZmIGFuZCBBcm5lLgogICAKMjAwMC0wNS0xNyAwODoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogKmNvcnJlY3RseSogYXNzb2NpYXRlIGVzY2FwZVF1b3RlcyB3aXRoIHRoZSByaWdodCBkZWZhdWx0X3N0b3JlIGJvb2wuCiAgIAoyMDAwLTA1LTE3IDA4OjExICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZXNjYXBlUXVvdGVzLgogICAKMjAwMC0wNS0xNyAwODowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wY21kLjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBuZXcgb3B0aW9uIC1PRToKICAgICAtIHNoZWxsIGJhY2tzbGFzaCBlc2NhcGUgcXVvdGF0aW9ucyBtYXJrcyBmb3IgY3V0dGluZyBhbmQgcGFzdGluZwogICAgICAgb250byBhbm90aGVyIHNubXAgY29tbWFuZCBsaW5lLgogICAKMjAwMC0wNS0xNSAwOToyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgKLCBpY21wLmMsIGlwLmMsIGlwLmgsIGljbXAuaCwgdGNwLmMKLCB0Y3AuaCwgdWRwLmMsIHVkcC5oOgoKICAgLSAobWliSUkve2lwLGljbXAsdGNwLHVkcCxrZXJuZWxfbGludXh9LltjaF0pOgogICAgIC0gIFB1bGwgTGludXggTUlCLUlJIHN0YXRpc3RpY3MgZ2F0aGVyaW5nIGludG8gYSBzaW5nbGUgcm91dGluZS4KICAgICAtICBDYWNoZSBNSUItSUkgc3RhdGlzdGljcyBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KICAgCjIwMDAtMDUtMTUgMDg6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMKLCB1Y2Qtc25tcC92bXN0YXRfYnNkaTQuaDoKCiAgIC0gKHVjZF9zbm1wLmgsIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIHZtc3RhdCBzdXBwb3J0IGZvciBic2RpNC4KICAgCjIwMDAtMDUtMTUgMDM6MDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlLXJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCiAgIAkoSXQgcmVhcHBlYXJlZCBkdXJpbmcgYSByZWNlbnQgY2hhbmdlKQogICAKMjAwMC0wNS0xNSAwMzowMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWdpc3RyeS5oLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogSW1wbGVtZW50IG1pc3Npbmcgcm91dGluZSAndW5yZWdpc3Rlcl9taWJfY29udGV4dCcKICAgCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnRfaW5kZXguW2NoXSk6IE1vdmUgJ2ZkJyByZWdpc3RyeSBoYW5kbGluZyBiYWNrIHRvIGFnZW50X3JlZ2lzdHJ5CiAgIAogICAtIChhZ2VudHgvY2xpZW50LmMpOiBSZWNvZ25pc2UgbmV3IGNvZGUgZmlsZSBmb3IgaW5kZXggaGFuZGxpbmcKICAgCjIwMDAtMDUtMTIgMTA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFVtLCBkZWZhdWx0IHRvIHBvcnQgMTYxLiAgT3Bwcy4KICAgCjIwMDAtMDUtMTIgMDk6MDAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIHZhcl9zdHJ1Y3QuaCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gUHJlcGFyYXRpb24gZm9yIHBlci1NSUIgcmVnaW9uIHRpbWVvdXQsIGFuZCBjb250ZXh0IHN1cHBvcnQKICAgCjIwMDAtMDUtMTIgMDg6NDUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFJlY29nbmlzZSBTb2xhcmlzIEFUTSBMQU4gRW11bGF0aW9uIGludGVyZmFjZXMKICAgCVRoYW5rcyB0byBKYXkgWW91bmcKICAgCjIwMDAtMDUtMTIgMDg6MTMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfaW5kZXguaCwgTWFrZWZpbGUuaW4KLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9pbmRleC5bY2hdIGFnZW50X3JlZ2lzdHJ5LltjaF0gTWFrZWZpbGUuaW4gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAtIFNwbGl0IGluZGV4IGhhbmRsaW5nIG91dCBmcm9tIHRoZSBNSUIgcmVnaXN0cnkuCiAgIAoyMDAwLTA1LTEyIDA3OjAyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBBZGQgc3VwcG9ydCBmb3IgcmVjb2duaXNpbmcgUXVhZEZhc3RFdGhlciBpbnRlcmZhY2UKICAgCjIwMDAtMDUtMTIgMDY6NTcgIGRhdmVzCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChhcHBzL3NubXB0YWJsZS5jKTogRml4IHByb2JsZW0gd2l0aCBtaXNzaW5nIHNlcGFyYXRvciAod2l0aCAtQ2kgLUNmKQogICAJVGhhbmtzIHRvIFhhdmllciBGT1VSTkVUCiAgIAoyMDAwLTA1LTEyIDA0OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQogICAJSSdtIHN1cmUgdGhpcyB3YXMgcHV0IGluIGZvciBhIHJlYXNvbiwgYnV0IEkgY2FuJ3QgcmVtZW1iZXIgd2hhdC4KICAgCUl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgbm93LCBhbmQganVzdCBsZWFrcyBtZW1vcnkuCiAgIAlIZXJlJ3MgaG9waW5nLi4uLi4KICAgCjIwMDAtMDUtMTIgMDM6MTEgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogQ2F0Y2ggKGFuZCBpZ25vcmUpIFNJR1BJUEUgc2lnbmFscy4KICAgCURpc2FwcGVhcmluZyBzdWJhZ2VudHMgdGhlcmVmb3IgYXBwZWFyIGFzIG5vcm1hbCBJL08gZmFpbHVyZXMKICAgCjIwMDAtMDUtMTIgMDI6MjQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOgogICAgIC0gSW1wbGVtZW50IG9wYXF1ZS1lbmNvZGVkIGZsb2F0ICYgZG91YmxlIHR5cGVzCiAgICAgLSBCcmluZyBwYWNrZXQgZHVtcCBpbiBsaW5lIHdpdGggdGhlIG1haW4gbGlicmFyeSBzdHlsZQogICAgIC0gQWRkIHBhY2tldCBkdW1wIGNhcGFiaWxpdHkgZm9yIG91dGdvaW5nIFBEVXMKICAgCjIwMDAtMDUtMTAgMTY6NTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLXAuCiAgIAoyMDAwLTA1LTEwIDE2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBhbHdheXMgdXNlIHRoZSBkZWZhdWx0IHRyYW5zcG9ydCBtYXBwaW5nLCBub3QgdGhlIGxhc3Qgb25lLgogICAKMjAwMC0wNS0xMCAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbXBsZW1lbnQgbXVsdGlwbGUgdHJhbnNwb3J0CiAgICAgbWFwcGluZ3MgdmlhIC1wIFt0cmFuc3BvcnQ6XXBvcnRbQGFkZHJlc3NdLgogICAKMjAwMC0wNS0xMCAxMTowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBmaXggdWRwc3RhdCAtLT4gdGNwc3RhdAogICAKMjAwMC0wNS0xMCAwNzo1OSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gSGFuZGxlIHN1YmFnZW50IGRpc2FwcGVhcmluZyB3aXRob3V0IHdhcm5pbmcKICAgCjIwMDAtMDUtMTAgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jIHNubXBsaWIvc25tcF9hcGkuaCk6CiAgICAgLSBQcm92aWRlIGEgbWVjaGFuaXNtIHRvIGhhbmRsZSBhc3luY2hyb25vdXMgc2VuZCBmYWlsdXJlcy4KICAgCjIwMDAtMDUtMTAgMDY6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBMb2dpY2FsIE5PVD8gQml0d2lzZSBOT1Q/IFdobydsbCBub3RpY2UgdGhlIGRpZmZlcmVuY2UgYW55d2F5IQogICAKMjAwMC0wNS0xMCAwNTozNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEhhbmRsZSBub24tcmVzcG9uc2l2ZSBzdWJhZ2VudHMKICAgCjIwMDAtMDUtMTAgMDU6MzMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgbWliSUkvc3lzT1JUYWJsZS5jKTogRG9uJ3QgYXNzdW1lIHN1YnNlc3Npb24gbGluayBpcyB2YWxpZAogICAKMjAwMC0wNS0xMCAwNToyOSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IERlZmluaXRpb25zIGZvciBzZXNzaW9uIGNsb3NlZG93biBoYW5kbGluZwogICAKMjAwMC0wNS0wOSAxNDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBhbHNvIGNsZWFuIFdpbjMyIGJpbmFyeSBvYmplY3RzLCBhbmQgY29yZSBmaWxlcy4KICAgCjIwMDAtMDUtMDkgMTQ6MzQgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICB0b3VjaCB1cCB0aGUgImNsZWFuIiBydWxlLgogICAKMjAwMC0wNS0wOSAxMTozMiAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICB1bnRpbCBEYXZlJ3MgdmVyc2lvbiB3aW5zLCBuZWVkIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gYnVpbGQgV2luMzIgYWdlbnQuCiAgIAoyMDAwLTA1LTA5IDExOjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IHNvbWUgV2luMzIgYnVpbGRzIChzaWduYWxzPyB3ZSBkb24ndCBuZWVkIG5vIHN0ZWVua2luZyBzaWduYWxzISkKICAgCjIwMDAtMDUtMDkgMTE6MzAgIG1zbGlmY2FrCgogICAqIGx0bWFpbi5zaDoKCiAgIFJlbW92ZSB0cmFpbGluZyBDUiBbMHgwZF0gZnJvbSBvbmUgbGluZS4KICAgCjIwMDAtMDUtMDkgMDg6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKICAgICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgogICAKMjAwMC0wNS0wOSAwODo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgo6CgogICAtIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKICAgICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgogICAKMjAwMC0wNS0wOSAwNzo0MyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IFNlbmQgb3V0IHJlLWRlbGVnYXRlZCByZXF1ZXN0cwogICAJKGFuZCBmaXggYSBwcm9ibGVtIHdpdGggc3BlY2lmeWluZyB0aGUgZW5kLW9mLXJhbmdlIHZhbHVlKQogICAKMjAwMC0wNS0wOSAwNzo0MCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBoYW5kbGluZyBvZiBlcnJvciByZXNwb25zZSBnZW5lcmF0aW9uCiAgIAkoYnkgYW5hbG9neSB3aXRoIHJlY2VudCBjaGFuZ2VzIHRvIHNubXBfYWdlbnQuYykKICAgCjIwMDAtMDUtMDkgMDc6MzQgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IEhhbmRsZSBBZ2VudFggImVuZC1vZi1yYW5nZSIgaW5kaWNhdGlvbi4KICAgCShUaGlzIGlzIG5vdCB0aGUgY2xlYW5lc3Qgd2F5IG9mIGRvaW5nIHRoaW5ncywKICAgCSBidXQgd29ya3MgZm9yIG5vdy4gIFdlIGNhbiB0aWR5IHVwIGxhdGVyKS4KICAgCjIwMDAtMDUtMDkgMDc6MTYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBVc2UgTUlCIHJlZ2lzdHJ5ICdzdGFydCcgdmFsdWVzCiAgIAkocmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIG5hbWUgcmVnaXN0ZXJlZCkKICAgCVRoaXMgaGFuZGxlcyBzdWJzZXF1ZW50IHBhcnQgb2YgJ3NwbGl0JyByYW5nZXMgcHJvcGVybHkuCiAgIAoyMDAwLTA1LTA4IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogSSBjYW4ndCBiZWxpZXZlIHRoZSBsYXN0IGNoZWNraW4gZXZlbiBjb21waWxlZCAobHVjaykuCiAgIAoyMDAwLTA1LTA4IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZml4IGxpYnJhcnkgbGlzdC4KICAgCjIwMDAtMDUtMDUgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSAoZGlza2lvLmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBkaXNrIGlvIHN1cHBvcnQgZm9yIEJTRC9PUy4KICAgCjIwMDAtMDUtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMS0xLXBhdGNoZXMuMSksIGF0LmM6CgogICAtIChhdC5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gZml4IGEgemVybyBieXRlIG1hbGxvYyBidWcgKG1vc3RseSBub3RpY2VkIHdpdGggLWxlZmVuY2UpLgogICAKMjAwMC0wNS0wNSAwOTo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlIChWNC0xLTEtcGF0Y2hlcy41KSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CiAgICAgLSAtLXdpdGgtbGlid3JhcCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA1LTA1IDA5OjAwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBzdWJhZ2VudC5jLCBtYXN0ZXJfcmVxdWVzdC5jCjoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKToKICAgICAtIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBBZ2VudFggcHJvY2Vzc2luZwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDUgMDg6NTggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdIHNubXBsaWIvc25tcF9jbGllbnQuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0pOgogICAgIC0gTWlub3IgY2hhbmdlcyB0byBhc3Npc3Qgd2l0aCBBZ2VudFggZGV2ZWxvcG1lbnQKICAgCShUaGVzZSBtYXkgbm90IGJlIGFic29sdXRlbHkgbmVjZXNzYXJ5LCBidXQgdGhleSBnZXQgdGhpbmdzIHdvcmtpbmcgYWdhaW4hKQogICAKMjAwMC0wNS0wNCAxNjoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1pbm9yIHVuaW1wb3J0YW50IC0td2l0aG91dC1vcGVuc3NsIGZpeC4KICAgCjIwMDAtMDUtMDQgMTY6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKICAgICAtIGFsbG93IC0td2l0aG91dC1vcGVuc3NsIHRvIHdvcmsuCiAgIAoyMDAwLTA1LTA0IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4gKFY0LTEtMS1wYXRjaGVzLjIpLCBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHRoZSBESVNNQU4tU0NSSVBULU1JQi50eHQKICAgCjIwMDAtMDUtMDQgMTY6MDEgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKICAgICAtIGluc3RhbGwgVUNELURJU0tJTy1NSUIudHh0LgogICAKMjAwMC0wNS0wNCAwODoyNiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50Lmg6CgogICAtIChzbm1wbGliL3NubXBfY2xpZW50LltjaF0pOiBOZXcgcm91dGluZSAnc25tcF9jbG9uZV92YXJiaW5kKCknCiAgIAkJKEZyb20gYSBzdWdnZXN0aW9uIGJ5IFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNCAwODoyNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVmFyaW91cyBtaW5vciBmaXhlcwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDQgMDE6MjkgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LltjaF0pOiBIYW5kbGUgaW5kZXgvc3RhdHVzIGluZm9ybWF0aW9uIHNlcGFyYXRlbHkgZnJvbSBQRFUuCiAgIAlBbHNvIG1lYW5zIHRoYXQgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgYWNjZXNzIHRvIHZhcmlhYmxlIGluZGV4ZXMKICAgCQkoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGZyb20gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA0IDAxOjAwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtICh1Y2Qtc25tcC9wcm9jLmMpOiBJbml0aWFsaXplIG5ld2x5IG1hbGxvY2VkIHN0cnVjdHVyZQogICAJKFRoYW5rcyB0byBKZWZmIFdpbHNvbiAtIHNlZSBCVUcgIzIzMSkKICAgCjIwMDAtMDUtMDMgMDk6MDYgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gQ2xvbmUgUERVIHdpdGhpbiBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KICAgICAgIE5ldyByb3V0aW5lICdmcmVlX2FnZW50X3NubXBfc2Vzc2lvbicKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTAzIDA4OjE3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBXaGVuIHJldHVybmluZyBhbiBlcnJvciByZXNwb25zZSwKICAgCXVzZSBhIGNsZWFuIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QgUERVLgogICAKMjAwMC0wNS0wMyAwODoxNCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSk6IFJvdXRpbmUgdG8gaGFuZGxlIHZhcmlhYmxlcyBpbmRpdmlkdWFsbHkKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTAzIDA0OjM3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBDaGVjayBhY2Nlc3NpYmlsaXR5IG9mIGV4YWN0IHJlcXVlc3RzIGJlZm9yZSBwcm9jZXNzaW5nCiAgIAkoYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2dlbmVyaWMnIFNFVCBoYW5kbGluZykKICAgCjIwMDAtMDUtMDEgMTE6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IHByaW50aW5nIG9mIEJJVFMgdmFyaWFibGVzCiAgIAoyMDAwLTA1LTAxIDA2OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgIGFwcGxpZWQgcGF0Y2ggZnJvbSBTdGV2ZSBQaGVyYW4gU25vZGdyYXNzIHRvIGZpeCBpbmNvbXBhdGliaWxpdHkgd2l0aCBwZXJsNS42IHJlZiBzdHJpbmdpZmljYXRpb24KICAgCjIwMDAtMDQtMjkgMDc6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnRfcmVnaXN0cnkuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIHVzZSBzaWdhY3Rpb24gd2hlbiBhdmFpbGFibGUuCiAgIAoyMDAwLTA0LTI4IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IHNpZ25hbCBoYW5kbGluZy4KICAgCjIwMDAtMDQtMjcgMTQ6NTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcGRmLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGRmLmMpOiBpbXBsZW1lbnQgYSByZW1vdGUgZGYgY29tbWFuZCB2aWEgc25tcAogICAgIC0gKG5lZWRzIHRoZSBob3N0IHJlc291cmNlcyBtaWIgd29ya2luZyBvbiB0aGUgcmVtb3RlIHN5c3RlbSkuCiAgIAoyMDAwLTA0LTI3IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcnBtIGlzIG5vdwogICAgIHJlcXVpcmluZyB5ZXQgYW5vdGhlciBsaWJyYXJ5OiBsaWJwb3B0LgogICAKMjAwMC0wNC0yNiAxNToyMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSAoTWFrZWZpbGUudG9wKTogcnVuIGxpYnRvb2wgLS1maW5pc2ggd2l0aG91dCAtbiAoZ28gYWhlYWQgYW5kIGRvIHRoZSBjbWRzKQogICAKMjAwMC0wNC0yNiAxNToxOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6CiAgICAgLSBtb3JlIGxpYnRvb2wgZml4ZXMgKC5zbyB2ZXJzaW9uaW5nLCBwcm9wZXJseSBpbnN0YWxsLi4uKQogICAKMjAwMC0wNC0yNiAxNDoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLAogICBtaWJzL01ha2VmaWxlLmluLCBzbm1wbGliLy5jdnNpZ25vcmUsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CiAgICAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCiAgICAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQogICAKMjAwMC0wNC0yNiAxNDoxNSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwKICAgYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGx0Y29uZmlnLCBsdG1haW4uc2gsIGFnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUKLCBhZ2VudC9taWJncm91cC9kdW1teS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92ZXN0aW50ZXJuZXR0Ly5jdnNpZ25vcmU6CgogICAtICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CiAgICAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCiAgICAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQogICAKMjAwMC0wNC0yNiAwODoxMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbmV3IHNlY29uZGFyeSBzbG9nYW4uCiAgIAoyMDAwLTA0LTI2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogQXR0ZW1wdCB0byBwYXJzZSB0aGUgUERVIHdoZW4gYSByZXBvcnQgaXMKICAgICBiZWluZyBzZW50IHNvIHRoYXQgdGhlIHJlcXVlc3RpZCBjYW4gYmUgdXNlZCBpbiB0aGUgb3V0Z29pbmcgcmVwb3J0LgogICAgIFRoaXMgc2hvdWxkIGZpeCBhIHByb2JsZW0gd2hlcmUgU05NUCBSZXNlYXJjaCdzIEVtYW50ZSBhZ2VudCBpcwogICAgIGRvaW5nIGVuZ2luZUlEIGRpc2NvdmVyeSBwcm9iZXMgYmFzZWQgb24gdGhlIHJlcXVlc3RfaWQgKHdoaWNoIGlzIGEKICAgICBmYWlybHkgcG9vciBjaG9pY2UgYXMgdGhlIG1lc3NhZ2VfaWQgd291bGQgYmUgYSBiZXR0ZXIgb25lIHRvIG1hdGNoCiAgICAgb24gaW4gZ2VuZXJhbCBhbmQgaXMgdGhlIG9ubHkgcG9zc2libGUgdGhpbmcgdG8gdXNlIGluIGNhc2VzIHdoZXJlCiAgICAgdGhlIHJlcG9ydCBpcyBlbmNyeXB0ZWQpLgogICAKMjAwMC0wNC0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbWVudGlvbiB0aGF0IHRoZSBwZXJsIG1vZHVsZSBpcyBpbmNsdWRlZCB3aXRoIHRoZSBzb3VyY2UuCiAgIAoyMDAwLTA0LTI1IDA4OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogbWlzYyAtRGR1bXAgZml4ZXMuCiAgIAoyMDAwLTA0LTI1IDA4OjAyICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRhYmxlLmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogY2hlY2sgZm9yIGVuZCBvZiBtaWIgdmlldyBleGNlcHRpb25zICh2MmMsIHYzKS4KICAgCjIwMDAtMDQtMjQgMTE6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiAtRCBzdXBwb3J0IGZvciB0aG9zZSAib2xkZXIiIHByb3RvY29scyB0aGF0IHNob3VsZG4ndAogICAgIGJlIHVzZWQgYW55bW9yZSAodjEsIHYyYykuCiAgIAoyMDAwLTA0LTI0IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLAogICBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMKLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYzoKCiAgIC0gKGFzbjEuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAtIHRpbWVzdGFtcHMgY2FuIGJlIHByaW50ZWQgYXMgYSBudW1lcmljIG51bWJlciBvbmx5ICgtT3QpLgogICAgIC0gbW9yZSBjb25maWd1cmFibGUgcGFja2V0IGR1bXBpbmcgY29kZSBmb3IgYm90aCBzZW5kIGFuZCByZWNlaXZlLgogICAgICAgLSB1c2VzIG5ldyAtRCB0b2tlbnM6IGR1bXBoIChoZWFkZXJzKSwgZHVtcHggKGhleCksIGR1bXB2CiAgICAgICAgICh2YWx1ZXMpLiAgZHVtcHhfIGFuZCBkdW1wdl8gKG5vdGUgdGhlIF9zKSBtYWtlIGl0IGVhdCBzcGFjZQogICAgICAgICAoYW5kIG5ld2xpbmUpIGJlZm9yZSB0aGUgc2VnbWVudCBpbiBxdWVzdGlvbi4gIFRyeSAtRGR1bXAgdGhlbgogICAgICAgICAtRGR1bXBoLGR1bXB2XyB0byBzZWUgZXhhbXBsZXMuCiAgICAgICAtIHRvZG86CiAgICAgICAgIC0gYmV0dGVyIGhvcml6b250YWxseSBmb3JtYXRlZCBpbmZvcm1hdGlvbiAocHJvYmFibHkgdXNpbmcgIiVOVU1zIikuCiAgICAgICAgIC0gVVNNIGlzIGNhbGxlZCBhZnRlciBwZHUgYnVpbGRpbmcgKG1ha2VzIHNlbnNlIGJ1dCBpcyBiYWNrd2FyZHMKICAgICAgICAgICB2aXN1YWxseSBpbiB0aGUgZHVtcGVkIHBhY2tldCkuCiAgICAgICAgIC0gb3B0aW9uIHRvIHN0cmlwIGRhdGF0eXBlIHRva2VuIChpZSBJbnRlZ2VyOikuCiAgIAoyMDAwLTA0LTI0IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUwICkKICAgCjIwMDAtMDQtMjQgMDk6MTMgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4KLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEVYVC40LjIucHJlMCApCiAgIAoyMDAwLTA0LTIxIDE0OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHdhbGsuYyAoVjQtMS0xLXBhdGNoZXMuMSksIHNubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogZml4IEdFVCBjYWxsIGZvciBhbiBzbm1wd2Fsay4gKHdhcyB1c2luZyBhIEdFVE5FWFQgUERVLCBhY2spLgogICAKMjAwMC0wNC0yMSAxMDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogbW9yZSB1X2xvbmcgLT4gc2l6ZV90IGZvciBlbmdpbmVJRCBsZW4uCiAgIAoyMDAwLTA0LTIxIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMgKFY0LTEtMS1wYXRjaGVzLjUpLCBtaWIuYzoKCiAgIC0gKG1pYi5jKTogZml4IGZwcmludF9kZXNjcmlwdGlvbiB0byBjaGVjayBmb3IgbnVsbCBzdWJ0cmVlcy4KICAgCjIwMDAtMDQtMjEgMDg6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiB1c2Ugc2l6ZV90IGZvciBlbmdpbmVpZCBsZW5ndGhzLgogICAKMjAwMC0wNC0xOSAxMTowMiAgbWFyegoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGNoYW5nZWQgbW9kZV90IHR5cGVkZWYgdG8gYWdyZWUgd2l0aCB3aGF0IEFjdGl2ZVN0YXRlIHBlcmwgdXNlcyAoYW55b25lIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhpcz8pCiAgIAoyMDAwLTA0LTE5IDEwOjU5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkZWQgTWFyYyBMZWhtYW4gcGF0Y2ggdG8gZW5zdXJlIGFsbG9jL2RlYWxsb2MgdXNlIHNhbWUgbWVjaGFuaXNtIChwZXJsIHZzLiBzeXN0ZW0gZGVmYXVsdCkKICAgCjIwMDAtMDQtMTkgMDg6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgYWx3YXlzIGJsb2NrIGlmIGNhbGxlciByZXF1ZXN0ZWQgaXQuCiAgIAoyMDAwLTA0LTE5IDA0OjM0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgbW92ZSBzdGF0aWMgZGVjbCB0byAuYzttaW5vciBjYXN0aW5nIGFib3V0IHRvIHN1cHBvcnQgYUNDCiAgIAoyMDAwLTA0LTE4IDExOjExICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgU3luY2ggZGV2ZWwgYnJhbmNoIHdpdGggcGF0Y2hlcyBicmFuY2guCiAgIAoyMDAwLTA0LTE4IDExOjA3ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiAgIChWNC0xLTEtcGF0Y2hlcy5bMywzLDMsMiwzLDJdKSwgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgRGVmaW5lIG9wdGFyZyBmb3IgYXBwcyB1c2U7IERlZmluZSB2YWNtX2lzX2NvbmZpZ3VyZWQgZm9yIGFnZW50IHVzZS4KICAgCjIwMDAtMDQtMTggMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKHZtc3RhdC5jLCB2bXN0YXQuaCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWl6dWtpIEhvbmRhOgogICAgIC0gaW1wbGVtZW50IHJhdyBjcHUgdXNhZ2UgbnVtYmVycy4KICAgCjIwMDAtMDQtMTggMDM6MTggIGRhdmVzCgogICAqIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYyAoVjQtMS0xLXBhdGNoZXMuWzEsM10pLAogICBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChtYW4vc25tcHRhYmxlLjEgYXBwcy9zbm1wdGFibGUuYyk6CiAgICAgLSBDb21tYW5kLXNwZWNpZmljICctQycgb3B0aW9ucyBmb3Igc25tcHRhYmxlCiAgIAoyMDAwLTA0LTE4IDAyOjAxICBkYXZlcwoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAtIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogSGFuZGxlIHByZXZpb3VzIGZvcm0gb2YgLVogb3B0aW9uIGFzIHdlbGwKICAgCjIwMDAtMDQtMTcgMTU6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGZpeCAtWiBpZiBhcmdzIGFyZSB3cm9uZy4KICAgCjIwMDAtMDQtMTcgMTU6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogZml4IC1aIHRvIHVzZSBhICcsJy4KICAgCjIwMDAtMDQtMTcgMTU6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogbXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oCjoKCiAgIC0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IFBhdGNoIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CiAgICAgLSB1cGRhdGUgb24gdGhlIHNlbmRtYWlsIG1vZHVsZS4KICAgCjIwMDAtMDQtMTcgMTU6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMgKFY0LTEtMS1wYXRjaGVzLjEpLCB2bXN0YXQuYwo6CgogICAtICh2bXN0YXQuYyk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gZml4IHNzQ3B1U3lzdGVtLCBzc0NwdVVzZXIsIHNzQ3B1SWRsZS4KICAgCjIwMDAtMDQtMTcgMTQ6MTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4pOiBwcm9wZXJseSB1c2UgTE5fUyBmb3IgbGlua2luZyBzbm1waW5mb3JtLgogICAKMjAwMC0wNC0xNyAxMzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB1c20uYywgc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHVzbS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOiBlbmdpbmVJRCBjaGFuZ2VzIGZvciBiZXR0ZXIgYUNDIHN1cHBvcnQuCiAgIAoyMDAwLTA0LTE3IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIHNubXBpbmZvcm0uCiAgIAoyMDAwLTA0LTE3IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBmaXggcm93IGNyZWF0aW9uLgogICAKMjAwMC0wNC0xNyAwNzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwogICAoVjQtMS0xLXBhdGNoZXMuWzIsMywyXSksIGF1dG9fbmxpc3QuYywgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYXV0b19ubGlzdC5jIHNubXBkLmMgYWdlbnR4L21hc3Rlci5jKTogRG9uJ3QgZXhpdCBvbiBmYWlsdXJlIHdpdGggJy1yJwogICAKMjAwMC0wNC0xNCAxNTowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGdldC4xLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzdGF0dXMuYywgc25tcGNtZC4xLCBzbm1wZ2V0LjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOgogICAgIC0gbW92ZSAtSWYgdG8gLUNmIGFuZCBpbnZlcnQgYmVoYXZpb3VyLgogICAKMjAwMC0wNC0xNCAxNTowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IChvcHBzKS4KICAgCjIwMDAtMDQtMTQgMDk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdmVyc2lvbmluZm8uYyAoVjQtMS0xLXBhdGNoZXMuMiksCiAgIHZlcnNpb25pbmZvLmM6CgogICAtICh2ZXJzaW9pbmZvLmMpOiBhbHJpZ2h0LiAgV2hvIG1hZGUgdmVyc2lvbkNsZWFyQ2FjaGUgUk9OTFk/CiAgIAoyMDAwLTA0LTEzIDA1OjQ5ICBuYmEKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBkZWN1bWVudCB0aGUgLXcgd2lkdGggb3B0aW9uCiAgIAoyMDAwLTA0LTEyIDEyOjA1ICBtc2xpZmNhawoKICAgKiBidWctcmVwb3J0IChWNC0xLTEtcGF0Y2hlcy4xKSwgYnVnLXJlcG9ydDoKCiAgIGhpZGUgdXNlcidzIGhvc3RuYW1lOyBwcm9tcHQgYmVmb3JlIHNlbmRpbmcgZS1tYWlsOyBwcm9tcHQgdG8gc2F2ZSBhcyBmaWxlLgogICAKMjAwMC0wNC0xMiAxMToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jIChWNC0xLTEtcGF0Y2hlcy4zKSwgbWliLmM6CgogICBmaXggJWYoJXMpCiAgIAoyMDAwLTA0LTEyIDA5OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wY21kLjEgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSWYuCiAgIAoyMDAwLTA0LTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwdXQgKysgYmFjayBpbiB0aGF0IGFjY2lkZW50aWNhbGx5IGdvdCBjaGVja2VkIGluLgogICAKMjAwMC0wNC0xMiAwOToxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChzbm1wc2V0LmMpOiBwdXQgc3BhY2UgYmFjayBpbiB1c2FnZSBsaW5lLgogICAKMjAwMC0wNC0xMiAwOToxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CiAgICAgLSBBZGQgYSBuZXcgb3B0aW9uIC1JZiB0byBzcGVjaWZ5IGZpeGluZyBvZiBQRFVzLgogICAgICAgLSBBbnlvbmUga25vdyBhIGJldHRlciBwbGFjZSB0byBwdXQgdGhpcyBvcHRpb24/CiAgICAgLSBBcHBsaWNhdGlvbnMgZG9uJ3QgZG8gdGhpcyBieSBkZWZhdWx0IGFueW1vcmUsIGFuZCB5b3UgY2FuJ3QgaW4gc25tcHNldC4KICAgCjIwMDAtMDQtMTIgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbS5jLCB2YWNtLmgpOiBmaXggdG8gYWxsb3cgbm8gdjEvdjJjIHJlcXVlc3RzIHdoZW4KICAgICBjb25maWd1cmVkIGZvciBqdXN0IHYzLgogICAKMjAwMC0wNC0xMiAwNjo0OSAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCiAgIChWNC0xLTEtcGF0Y2hlcy5bMSwxXSksIHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgZml4IE1TVkMgYnVpbGQgZm9yIGVuY29kZV9rZXljaGFuZ2UsIGFuZCBhZGQgbW9yZSBzeW1ib2xzIGZvciByZWxlYXNlIGJ1aWxkcwogICAKMjAwMC0wNC0xMiAwNTozMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogY29ycmVjdCBwYXJzaW5nIG9mIHN1Yi10eXBlcyB0ZXh0dWFsIGNvbnZlbnRpb25zLiBBbGxvdyBwYXJzaW5nCiAgIAlvZiBNQUNSTyBpbnZvY2F0aW9ucyBmb3Igc3RhbmRhcmQgc3ltYm9scwogICAKMjAwMC0wNC0xMiAwNTozMSAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gcGFyc2UuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHdpdGggZm9yIC1UcAogICAKMjAwMC0wNC0xMiAwNTozMCAgbmJhCgogICAqIG1pYnMvOiBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQKOgoKICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQ6IGFsaWduIHdpdGggcHVibGlzaGVkCiAgIAlSRkMgMjc5MAogICAKMjAwMC0wNC0xMSAxNTozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1ha2UgY29uZmlnX2FkZF9taWIoKSBhY3R1YWxseSBsb29rIGZvcgogICAgIHRoZSBtaWIgaW4gJHNyY2Rpci9taWJzL2JsYWggYW5kIGluc3RhbGwgaXQgaWYgZm91bmQuCiAgIAoyMDAwLTA0LTExIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogbWFrZSBtYWNhZGRyIGVuZ2luZWlkIHNldHVwIG5vdCBsaW51eAogICAgIHNwZWNpZmljLCBidXQgI2RlZmluZXMgYXJlIGNoZWNrZWQgaW5zdGVhZC4KICAgCjIwMDAtMDQtMTEgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICAtIChzbm1wX2xvZ2dpbmcuaCk6IHJlbW92ZSBvbGQgY2FsbGJhY2sgdHlwZWRlZiBubyBsb25nZXIgbmVlZGVkLgogICAKMjAwMC0wNC0xMSAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gZW5hYmxlIGVuZ2luZUlEIHRvIGJlIHNldCBmcm9tIE1BQ0FkZHIuCiAgIAoyMDAwLTA0LTExIDA5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaAo6CgogICAtIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBOZXcgbW9kdWxlIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CiAgICAgLSBpbXBsZW1lbnRzIHRoZSBNVEEtTUlCIGZvciBtb25pdG9yaW5nIHNlbmRtYWlsLgogICAKMjAwMC0wNC0xMSAwOTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQ6CgogICAtIChNVEEtTUlCLnR4dCwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0KTogbmV3IG1pYnMgZm9yIG5ldyBtb2R1bGVzLgogICAKMjAwMC0wNC0xMSAwMzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogU2F2ZS9yZXN0b3JlIG9yaWdpbmFsIHN0YXRQIHZhbHVlIGZvciBTRVQgaGFuZGxpbmcuCiAgIAoyMDAwLTA0LTExIDAyOjM1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJlcG9ydCBmYWlsdXJlcyBmcm9tIEFDVElPTiBwaGFzZSBvZiBTRVQgY29ycmVjdGx5LgogICAKMjAwMC0wNC0xMSAwMTo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMyksCiAgIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IER5bmFtaWNhbGx5IHJlc2l6ZSBzdWJhZ2VudCByZXF1ZXN0cwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDQtMTAgMDU6MDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYwogICAoVjQtMS0xLXBhdGNoZXMuWzAsMl0pLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IG11bHRpLXN1YmFnZW50IHJlcXVlc3RzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNC0wNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBzbm1wbGliL3NubXB1c20uYyAoVjQtMS0xLXBhdGNoZXMuWzIsMl0pLAogICBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHRyYXAuYywgc25tcHVzbS5jKToKICAgICAtIGZpeCBzbm1wdjMgdHJhcHMgdG8gYmUgYXV0aG9yaXRhdGl2ZSBmcm9tIHRoZSBjbGllbnQgc2lkZSwgbm90IHRoZQogICAgICAgcmVjZWl2ZXIgc2lkZS4gIHNubXB2MyBpbmZvcm1zIHN0YXkgYXMgaXMuICBVbmZvcnR1bmF0ZWx5LCBmb3IKICAgICAgIGNvbW1hbmQgbGluZSBhcHBzIHRoaXMgZG9lc24ndCBtYWtlIGEgd2hvbGUgbG90IG9mIHNlbnNlIGJ1dCBpcwogICAgICAgcmlnaHQgaW4gdGVybXMgb2YgaG93IHRoZSBwcm90b2NvbCB3b3JrcyBhbmQgdGhpcyBpcyBoZW5jZQogICAgICAgc29tZXdoYXQgb2YgYSBoYWNrLgogICAKMjAwMC0wNC0wNyAwNzo1MCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjkpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBIYW5kbGUgdjIgZXhjZXB0aW9uIHR5cGVzIGluIHYxIHF1ZXJpZXMKICAgCjIwMDAtMDQtMDcgMDc6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYwogICAoVjQtMS0xLXBhdGNoZXMuWzQsMiwzXSksIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wdjMuYyk6CiAgICAgLSBhbGxvdyBOVUxMIGhlbHAgbGluZXMgZm9yIGNvbmZpZyBkaXJlY3RpdmVzIGFuZCB1c2UgaXQgdG8gaGlkZQogICAgICAgaW50ZXJuYWwgZGlyZWN0aXZlcyB1c2VkIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UuCiAgIAoyMDAwLTA0LTA2IDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gdHVybiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtYWNyb3MgYmFjayBpbnRvIGZ1bmN0aW9ucyBzbwogICAgICAgZGVmYXVsdF9zdG9yZS5oIGRlcGVuZGVuY2llcyBnbyBhd2F5IGFnYWluLgogICAgIC0gY3JlYXRlIGEgZmxhZyB0byBub3QgcHJvYmUgZm9yIGVuZ2luZUlEcyBkdXJuaW5nIHNlc3Nfb3BlbigpLgogICAKMjAwMC0wNC0wNiAwNzoyMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRml4IG1pc2hhbmRsZWQgQ291bnRlcjY0IHBhcnNpbmcKICAgCjIwMDAtMDQtMDYgMDM6MzYgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogRml4IHVzYWdlIG1lc3NhZ2UgYWxpZ25tZW50LgogICAKMjAwMC0wNC0wNiAwMzozMSAgZGF2ZXMKCiAgICogbWFuLzogc25tcGQuMS5kZWYgKFY0LTEtMS1wYXRjaGVzLjEpLCBzbm1wZC4xLmRlZjoKCiAgIC0gKG1hbi9zbm1wZC4xLmRlZik6IERvY3VtZW50IHRoZSBBZ2VudFggc29ja2V0IGNvbW1hbmQtbGluZSBvcHRpb24KICAgCjIwMDAtMDQtMDUgMDg6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgLSAoRkFRMkhUTUwpOiBpdCdzIGJlZW4gc2l0dGluZyBpbiBteSBwZXJzb25hbCBzcmMgdHJlZSBmb3IgPiAyIHllYXJzLgogICAKMjAwMC0wNC0wNSAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiwgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCjoKCiAgIC0gKG1pYmluY2wuaCwgdXNtVXNlci5jLCBzbm1wdHJhcGQuYywgbGNkX3RpbWUuYywgc2NhcGkuYywgc25tcF9hcGkuYywKICAgICBzbm1wdXNtLmMsIHNubXB1c20uaCwgc25tcHYzLmMpOgogICAgIC0gbWFrZSBzbm1wdHJhcGQgaGFuZGxlIHYzIHVzZXJzIHByb3Blcmx5LCAoYW5kIHNodXRkb3duIHByb3Blcmx5IGFzIHdlbGwpLgogICAgIC0gYSBtb3JlIGdlbmVyaWMgdXNlciBzdG9yYWdlIHJvdXRpbmUgYWRkZWQgdG8gc25tcHVzbS5jIGFuZCB1c2VkIGluCiAgICAgICB1c21Vc2VyLmMgd2l0aCBhIHNpZGUgZWZmZWN0IG9mIG5lZWRpbmcgY2FsbGJhY2suaCBhYm92ZSBzbm1wdXNtLmguCiAgIAoyMDAwLTA0LTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIC0gKHJzbm1wKTogLT4gL3Vzci9iaW4vcGVybAogICAKMjAwMC0wNC0wNSAwODoyNCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBtaXNjIG1pbm9yIGFkZGl0aW9ucyB0byAvCiAgIAoyMDAwLTA0LTA0IDExOjAzICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuOCksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSB1bmltcGxlbWVudGVkIG9iamVjdHMgcmV0dXJuICdub1N1Y2hPYmplY3QnCiAgIAoyMDAwLTA0LTAzIDE0OjU3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbml0aWFsaXplIHN0YXRQLgogICAKMjAwMC0wNC0wMyAwOToxMiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjcpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgYSB2MSBTRVQgcmV0dXJucyBhIHYxIGVycm9yIHN0YXR1cy4KICAgCjIwMDAtMDQtMDMgMDg6MzIgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFllYXIgd2FzICIxMDAiIGZvciAyMDAwIChub3RpY2VkIGJ5IEpheSBSaWRkZWxsKToKICAgCjIwMDAtMDQtMDMgMDc6NTMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy42KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIFNFVHMgZmFpbCBpZiBvbmUgdmFyYmluZCBkb2VzLgogICAKMjAwMC0wMy0zMSAwNzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggdG8gcmVwb3J0ICdub1N1Y2hPYmplY3QnIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcwogICAKMjAwMC0wMy0zMSAwNzoxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRG9uJ3QgcmVwZWF0IHRoZSBmaXJzdCBmb3VyIGJ5dGVzIGluIGEgUERVIGR1bXAKICAgCjIwMDAtMDMtMzEgMDc6MDQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfbG9nZ2luZy5jCjoKCiAgIC0gKHNubXBsaWIvc25tcF9sb2dnaW5nLmMpOiBIYW5kbGUgbG9nZ2luZyBlbXB0eSBzdHJpbmdzIChlLmcuIGEgbnVsbCBpbmRlbnQpCiAgIAoyMDAwLTAzLTMwIDAwOjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNSksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEluaXRpYWxpc2UgdGltZW91dCBzdHJ1Y3R1cmUgcHJvcGVybHkKICAgCShUaGFua3MgdG8gYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQogICAKMjAwMC0wMy0yNyAxMDozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBocl9zd3J1bi5jCjoKCiAgIHJlbW92ZSB0cmFpbGluZyBuZXdsaW5lIGZyb20gaHJTV1J1bk5hbWUgdmFsdWVzLgogICAKMjAwMC0wMy0yNCAwOTowOSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBpbmZvcm0uMToKCiAgIHRvIHN5bmMgd2l0aCBwYXRjaGVzIGJyYW5jaC4KICAgCjIwMDAtMDMtMjQgMDU6MDcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdGx5IGZyZWUgdGhlIHJlcG9uc2UgaWYgc2VuZGluZyBpdCBmYWlscwogICAKMjAwMC0wMy0yNCAwNDoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgeHhfc3luY2hfcmVzcG9uc2U6IGF2b2lkIGZyZWVpbmcgUERVIHR3aWNlLgogICAKMjAwMC0wMy0yMyAyMzoyOSAgbmJhCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwLjEKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmM6CgogICAtIHNubXBjbWQuMSwgc25tcHRyYXAuMSwgc25tcHRyYXAuYywgTWFrZWZpbGUuaW46IEluc3RhbGwgYW5kIGRvY3VtZW50CiAgIAlzbm1waW5mb3JtLgogICAKMjAwMC0wMy0yMyAwOTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5xdWV1ZSBvbmx5IGNvbXBsZXRlIHJlcXVlc3RfbGlzdCBlbnRyeTsgUmVkdWNlIHNjb3Bpbmcgb2YgY2FsbGJhY2sgdmFycy4KICAgCjIwMDAtMDMtMjMgMDM6MDIgIG5iYQoKICAgKiBtYW4vc25tcGluZm9ybS4xOgoKICAgZmlsZSBzbm1waW5mb3JtLjEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTAzLTIyIDA4OjEzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBwcmludGYgPwogICAKMjAwMC0wMy0yMSAxMToxMiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtb2RpZnkgRi4gU3RyYXVzcycgcGF0Y2ggcGVyIE4uIEJhZ2dlc2VuJ3Mgc3VnZ2VzdGlvbjogcmVtb3ZlIGV4cG9ydC1keW5hbWljLgogICAKMjAwMC0wMy0yMSAwOToxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBtb3JlIHNtb290aCBzYWlsaW5nIHdpdGggV2luMzIgLkRMTCAuIERMTEVYUE9SVCwgYW55b25lID8KICAgCjIwMDAtMDMtMjEgMDk6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIHdpbjMyIGJ1aWxkIGNoZWNrOiBubyBzaWdhY3Rpb24sIFNJR0NMRCBkZWZpbmVkLgogICAKMjAwMC0wMy0yMSAwODo0NyAgZGF2ZXMKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoZHNfYWdlbnQuaCBzbm1wZC5jIG1pYmdyb3VwL2FnZW50eC97bWFzdGVyLHN1YmFnZW50fS5jKToKICAgICAtICBDb21tYW5kLWxpbmUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIEFnZW50WCBwb3J0CiAgICAgICAgKGJhc2VkIG9uIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcykKICAgCjIwMDAtMDMtMjEgMDg6MzggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBTdXBwb3J0ICdob3N0OnBvcnQnIHJlcHJlc2VudGF0aW9uIG9mIHBlZXJuYW1lcwogICAKMjAwMC0wMy0yMSAwNDowNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBNaXNzaW5nIG5ldy1saW5lIG9uIGRlYnVnIG91dHB1dAogICAKMjAwMC0wMy0yMSAwMjo1MiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3AuYywgdGNwLmgsIHRjcFRhYmxlLmMKLCB0Y3BUYWJsZS5oLCB1ZHAuYywgaWNtcC5jLCB1ZHAuaCwKICAgdWRwVGFibGUuYywgdWRwVGFibGUuaCwgaWNtcC5oLCBpcC5jLAogICBzeXN0ZW1fbWliLmM6CgogICAtIChtaWJJSS97dGNwLHVkcCxpcCxpY21wfSopIENvbnRpbnVpbmcgbWliSUkgY29kZSBjbGVhbnVwCiAgIAoyMDAwLTAzLTIwIDExOjE0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ29tbWVudCAtQyAtLSBkbyBub3QgdXNlIHRoaXMgZmxhZy4KICAgCjIwMDAtMDMtMTcgMTU6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogc2l6ZW9mKHgpKihsZW4rMSkgbm90IHNpemVvZih4KSpsZW4rMQogICAKMjAwMC0wMy0xNiAwMDoxMCAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgLSBjb25maWd1cmUsIGhyX3ByaW50LmM6IGRldGVjdCBzeXN0ZW0gcHJpbnRlcnMgKFN5c1YvbHBzdGF0LCAqQlNEL2NnZXRuZXh0LAogICAJTGludXgvcHJpbnRjYXApCiAgIAoyMDAwLTAzLTE1IDE4OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgU2Vjb25kIHBhcnQ6IGFsbCBtZW1iZXJzIG9mIHN0cnVjdCBzbm1wX2luZGV4IGFyZSBwb2ludGVycy4KICAgCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGaXggbWVtb3J5IGxlYWsgd2l0aCB1bnJlZ2lzdGVyX2luZGV4LgogICAKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggbWVtb3J5IGxlYWsgd2hlbiBjbGVhbmluZyB1cCB0cmFwIHZhcmlhYmxlcy4KICAgCjIwMDAtMDMtMTUgMDg6NDggIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogSW5pdGlhbGlzZSB2YXJiaW5kIGRhdGEgaG9vayBlbHNld2hlcmUgYXMgd2VsbC4KICAgCjIwMDAtMDMtMTUgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjEpLAogICBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaW5maW5pdGUgbG9vcCBwcm9ibGVtIHdoZW4gd2Fsa2luZyBzdWJhZ2VudC4KICAgCjIwMDAtMDMtMTUgMDY6MDkgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEF2b2lkIGNhbGxpbmcgcmVhZCByb3V0aW5lIGZvciBlYWNoIFNFVCBoYW5kbGluZyBwYXNzLgogICAJTi5COiAgVGhpcyBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBBZ2VudFggc3ViYWdlbnRzIHlldAogICAKMjAwMC0wMy0xNSAwNjowNyAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBQcm92aWRlIGhvb2sgZm9yIGludGVybmFsIHZhcmJpbmQtcmVsYXRlZCBkYXRhCiAgIAoyMDAwLTAzLTE1IDA1OjIyICBkYXZlcwoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudC92YXJfc3RydWN0LmgpOiBVc2UgYSBzaW5nbGUgbWFnaWMgbnVtYmVyIGZvciBNSUIgcmVnaXN0cnkgbmFtZSBsZW5ndGhzLgogICAKMjAwMC0wMy0xNSAwMTo1MSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHN5c3RlbS5oIChWNC0xLTEtcGF0Y2hlcy4xKSwgc3lzdGVtLmg6CgogICAtIChzbm1wbGliL3N5c3RlbS5oKTogRG9uJ3QgZGVjbGFyZSBnZXR0aW1lb2ZkYXkoKSBpZiB0aGUgc3lzdGVtIHByb3ZpZGVzIGl0LgogICAJKEZpeCBwcm92aWRlZCBieSBSb24gTWV2aXNzZW4pCiAgIAoyMDAwLTAzLTE0IDA3OjU3ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMyksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBzdGF0dXMgd2hlbiBjaGVja2luZyBhY2Nlc3MuCiAgIAoyMDAwLTAzLTE0IDA3OjUyICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJldHVybiBhIHJlc3BvbnNlLCBldmVuIGlmIHRoZSByZXF1ZXN0IGZhaWxlZC4KICAgCjIwMDAtMDMtMTMgMTU6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gaXBmd2FjYy5oOiBmaXggdGhlIE1JQiBuYW1lCiAgIAoyMDAwLTAzLTEwIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiBhdXRvY29uZiBydW4KICAgCjIwMDAtMDMtMTAgMTE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL01ha2VmaWxlLmRsbW9kOgoKICAgLSAoTWFrZWZpbGUuZGxtb2QpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBkbG1vZCBidWlsZCBNYWtlZmlsZSBleGFtcGxlLiAgTmVlZHMgaW5jb3JwZXJhdGlvbiB3aXRoIG1haW4gY29uZmlndXJlLgogICAKMjAwMC0wMy0xMCAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBiZXR0ZXIgc2lnbmFsIGNoZWNrIGZyb20gTWljaGFlbCBTbGlmY2FrCiAgIAoyMDAwLTAzLTEwIDEwOjU5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoVUNELURMTU9ELU1JQi50eHQpOiB0eXBvIGZvdW5kIGJ5IE1pY2hhZWwgU2xpZmNhay4KICAgCjIwMDAtMDMtMTAgMTA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoZGxtb2QuYywgZGxtb2QuaCwgc25tcGQuY29uZi41LmRlZiwgVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tCiAgICAgRnJhbmsgU3RyYXVzczoKICAgICAtIFJlaW1wbGVtZW50YXRpb24gb2YgdGhlIGRsbW9kIG1pYiBtb2R1bGU6CiAgICAgICBvIG1pYmdyb3VwL21pc2MvZGxtb2QgKyBkbG1vZHMvZGxtb2RfbWliIC0+IG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kCiAgICAgICBvIGZpeGVkIHJlZ2lzdHJhdGlvbiAodWNkYXZpcy51Y2RFeHBlcmltZW50YWwuMTQgaW5zdGVhZCBvZiB1Y2RhdmlzLjE0KQogICAgICAgbyBhZGRlZCBjb25maWd1cmUgc3R1ZmYgZm9yIEhBVkVfU05QUklOVEYsIHdoaWNoIHdhcyB1c2VkIGJ5IGRsbW9kLmMKICAgICAgIG8gcmVtb3ZlZCBgX2R5bmFtaWNfJyBwcmVmaXhlcyBmcm9tIGluaXQvZGVpbml0IGZ1bmN0aW9ucwogICAgICAgbyBtYWRlIGRsbW9kSW5kZXggbm90LWFjY2Vzc2libGUgKG9ubHkgaW1wbGVtZW50YXRpb24sIG5vdCBkZWZpbml0aW9uKQogICAgICAgbyByZW1vdmVkIHRoZSBhc25fcGFyc2VfWFhYIHN0dWZmCiAgICAgICBvIG1hZGUgZW50cmllcyB3aXRoIHN0YXRlIGBlcnJvcicgYWJsZSB0byBhY2NlcHQgc3RhdGUgYGxvYWQnCiAgICAgICBvIG1hZGUgdGhlIHdvbWJhdCBleGFtcGxlIHVzYWJsZSBhcyBzdGF0aWMgYW5kIGR5bmFtaWMgbW9kdWxlCiAgICAgICBvIGFkZGVkIHNpbXBsZSBjb25maWdfcGFyc2UgZnVuY3Rpb25hbGl0eSB0byB0aGUgd29tYmF0IGV4YW1wbGUKICAgCjIwMDAtMDMtMTAgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gc2lnbmFsIHJlZ2lzdHJ5IHN5c3RlbSBpbXBsZW1lbnRlZCAobmVlZHMgdG8gYmUgcmVkb25lIGFsbG93aW5nCiAgICAgICBtdWx0aXBsZSBjYWxsYmFja3MgYW5kIGhhbmRsZXJzIGZvciBhbGwgc2lnbmFscykuCiAgICAgLSBhcmJpdHJhcnkgZmlsZSBkZXNjcmlwdG9yL3NvY2tldCByZWdpc3RyYXRpb24uCiAgICAgICAtIHRoaXMgaXMgbm90IHRoZSB3YXkgaXQgc2hvdWxkIGJlIGRvbmUgKHVzZSBzZXNzaW9ucyBpbnN0ZWFkKS4KICAgCjIwMDAtMDMtMTAgMTA6NDQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGNsZWFuIHVwIHNoYXJlZCBsaWJyYXJ5IHVzYWdlLgogICAKMjAwMC0wMy0xMCAxMDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcmUtYXJyYW5nZWQgc29tZSBzdHVmZi4KICAgCjIwMDAtMDMtMDcgMTE6NTggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBtb3JlIHRvdWNodXBzIHRvIGFsbG93IFVuaXhXYXJlIGJ1aWxkIHRvIGNvbXBsZXRlLgogICAKMjAwMC0wMy0wNyAxMToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmgpOiBtYWtlIE1BWF9TVUJJRFMgbGFyZ2VyIGFuZCBhIG11bHRpcGxlIG9mIDguCiAgIAoyMDAwLTAzLTA3IDEwOjEzICBtc2xpZmNhawoKICAgKiBGQVEsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSW50cm9kdWNlIC0tZW5hYmxlLW1pbmktYWdlbnQgdG8gY29uZmlndXJlIGFnZW50IChzbm1wdjMsIG5vIG1pYklJIGludGVyZmFjZXMpLgogICAKMjAwMC0wMy0wNyAwOTowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGFzc3VtZSAic25tcGFwcCIgaWYgbm8gYXJnIHBhc3NlZCB0byBpbml0X3NubXB2My4KICAgCjIwMDAtMDMtMDcgMDg6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVtb3ZlIGluaXRfbWliKCkgY2FsbCAtIG5vdCBhcHByb3ByaWF0ZSBoZXJlLgogICAKMjAwMC0wMy0wNyAwODozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTGV0IHRoZSBhaXg0IHBhdGNoIHdvcmsuCiAgIAoyMDAwLTAzLTA3IDA3OjA4ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICB0cmltIGZhdCBmcm9tIHJlY2VudCBjaGVjay1pbnMuCiAgIAoyMDAwLTAzLTA2IDIwOjAxICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbjoKCiAgIGNsZWFuZWQgdXAgU0NPIFVuaXhXYXJlIGJ1aWxkLgogICAKMjAwMC0wMy0wNiAxNjo0MCAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5ndWVzcywgY29uZmlnLmguaW4sCiAgIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgc3RhcnQgc3VwcG9ydCBmb3IgU0NPIFVuaXhXYXJlIDUgYXMgc3ZyNS4KICAgCjIwMDAtMDMtMDYgMTA6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGRvbid0IGNoZWNrIHJhbmdlcyBpZiBub3QgcmVxdWVzdGVkLgogICAKMjAwMC0wMy0wNiAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcGQuYwo6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gZml4IGV4aXQoKWluZyBiZWhhdmlvdXIgaW4gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCiAgIAoyMDAwLTAzLTA2IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIC1uIHByaW50cyBudW1lcmljIElQIGFkZHJzLgogICAKMjAwMC0wMy0wNiAxMDoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmgsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaAo6CgogICAtIChjYWxsYmFjay5oLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBJZGVhIGZyb20gYXNoaXBtYW5AZXJnZ3JvdXAuY29tOgogICAgIC0gY2FsbGJhY2sgZnVuY3Rpb24gKHVzaW5nIGNhbGxiYWNrLmgpIGFkZGVkIGZvciBleHRlcm5hbCBsb2dnaW5nLgogICAKMjAwMC0wMy0wNSAwNToyNSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCB0byBwcmVzZXJ2ZSB0cmFpbGluZyBtdWx0aSBjb21wb25lbnQgaW5zdGFuY2UgaWQncyBhdCB0aGUgZW5kIG9mCiAgIHN5bWJvbGljIG1pYiBuYW1lcyhlLmcuLCBmb28uNi43KSB3aGVuIGRvaW5nIHRyYW5zbGF0ZU9iai4KICAgCjIwMDAtMDMtMDQgMTE6MzQgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluLCBjb25maWd1cmU6IHN1cHBvcnQgLS13aXRob3V0LW9wZW5zc2wsIGV2ZW4gaWYgT3BlblNTTAogICAJaXMgYXZhaWxhYmxlCiAgIAoyMDAwLTAzLTA0IDExOjMwICBuYmEKCiAgICogYWdlbnQvOiBrZXJuZWwuYywga2VybmVsLmgsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwo6CgogICAtIGFnZW50Lyh2YXJpb3VzKTogZ2xvYmFsaXplIHRoZSBrdm1fdCAqa2QgdmFyaWFibGUKICAgCjIwMDAtMDMtMDQgMTE6MjYgIG5iYQoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBtaWJfbW9kdWxlcy5jLCBocl9zdG9yYWdlLmM6IHByZS1wcm9jZXNzb3IgIyBzaG91bGQgYmUgaW4gY29sdW1uIDEKICAgCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldC5jLCBpbmV0Ni5jOgoKICAgLSBpbmV0LmMsIGluZXQ2LmM6IHN1cnZpdmUgLXYgMmMgZXhjZXB0aW9uIHJlcGxpZXMKICAgCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IHJlbW92ZSBhIHN1cGVyZmx1b3VzICYgaW4gZnJvbnQgb2YgYW4gYXJyYXkKICAgCjIwMDAtMDMtMDQgMTE6MTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMKLCB1Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCB1Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jCiwgdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaDoKCiAgIC0gdWNkX3NubXAuaCwge21lbW9yeSx2bXN0YXR9X25ldGJzZDEuW2NoXTogc3VwcG9ydCBmb3IgTmV0QlNECiAgIAoyMDAwLTAzLTA0IDExOjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogZml4ZXMgZm9yIE5ldEJTRAogICAKMjAwMC0wMy0wNCAxMToxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIHZlcnNpb25pbmZvLmM6IGRvbid0IHJldHVybiB0aGUgdHJhaWxpbmcgbmV3bGluZQogICAKMjAwMC0wMy0wNCAxMTowOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogZml4IHByb2Nlc3Mgc2l6ZSBmb3IgRnJlZUJTRCAzIGFuZCBOZXRCU0QKICAgCjIwMDAtMDMtMDQgMTE6MDUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmg6CgogICAtIGFnZW50X3RyYXAuaDogZml4IGEgd3JvbmcgcHJvdG90eXBlCiAgIAoyMDAwLTAzLTA0IDExOjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGZpeCBwcm9ibGVtcyBwcmludGluZyB0YWJsZSBuYW1lIGFuZCBoZWFkZXJzIHdoZW4gdXNpbmcKICAgCS1PUyBmb3JtYXQKICAgCjIwMDAtMDMtMDIgMTE6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IGZpeCBhZGRyZXNzIGxlbmd0aCBpbmZvIGZvciB0Y3AgY29ubmVjdAogICAKMjAwMC0wMy0wMiAxMTo0OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gbG9hZGF2ZS5jOiBmaXggZm9yIEFJWCA0CiAgIAoyMDAwLTAzLTAyIDA4OjMwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwLmMsIGlwQWRkci5jLCBpcEFkZHIuaAosIGlwLmg6CgogICAtIChtaWIyL2lwLltjaF0gbWliMi9pcEFkZHIuW2NoXSk6IEZpcnN0IHN0YWIgYXQgdGlkeWluZyB1cCBtaWIyIHN1cHBvcnQuCiAgIAoyMDAwLTAzLTAxIDA4OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIGZpeCBidWcgMTgwIGZvciBjeWd3aW4gYnVpbGQgd2l0aCBfUkVFTlRSQU5UOyBwZXIgYXNoaXBtYW5AZXJnZ3JvdXAuY29tCiAgIAoyMDAwLTAyLTI5IDE0OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJbnZva2Ugc25tcF9zZXNzX3NlbmQgZnJvbSB3aXRoaW4gc25tcF9yZWFkIHRvIGF2b2lkIG11dGV4IGRlYWRsb2Nrcy4KICAgCjIwMDAtMDItMjggMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC86IHNubXBkLmgsIG1pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbm1wZC5oLCBzbXV4LmM6IGRvbid0IGluaXRpYWxpemUgc211eCBtYXN0ZXIgaW4gc3ViIGFnZW50CiAgIAoyMDAwLTAyLTI4IDE0OjE2ICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiB1c2UgU1VCX0FHRU5UIHN5bWJvbAogICAKMjAwMC0wMi0yOCAxNDoxMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBzcHJpbnRfYnlfdHlwZSBzaG91bGQgaGFuZGxlIEFTTl9CSVRfU1RSCiAgIAoyMDAwLTAyLTI4IDE0OjEwICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGNvcnJlY3RseSBjYWxsIHRoZSAtSSBvcHRpb25zIGlucHV0IG9wdGlvbnMKICAgCjIwMDAtMDItMjggMTA6NDcgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgZml4IGJ1ZyAjMTc2IChBSVggNCAtIHVzZSBrbmxpc3QgaW4gbGlldSBvZiBubGlzdCkKICAgCjIwMDAtMDItMjQgMTc6MTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYXBwbHkgcGF0Y2ggdG8gZml4IGJ1ZyBuby4gMTc3LgogICAKMjAwMC0wMi0yNCAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IG5ldyBzbm1wLmNvbmYga2V5d29yZAogICAgIHRvIGZvcmNlIHRoZSBwYXJzZXIgdG8gaWdub3JlIHVua25vd24gdG9rZW5zLgogICAKMjAwMC0wMi0yNCAwMzo1OSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBzZXQuMToKCiAgIGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMiAoJ3UnIGFuZCAnYycpIGluIHNubXBzZXQgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAyLTI0IDAzOjU2ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHRyYXAuMSwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIENPVU5URVIzMiB0byBzbm1wX2FkZF92YXI7IGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMgogICAoJ3UnIGFuZCAnYycpIGluIHNubXB0cmFwIChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQogICAKMjAwMC0wMi0yMyAyMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZml4IHNldHRpbmcgb2Ygb2N0ZXQgc3RyaW5ncy4KICAgCjIwMDAtMDItMjMgMDI6MDkgIG5iYQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIC0gbXRfc3VwcG9ydC5oOiBhIGJhZCA7IGluIHRoZSBDKysgYnJhY2tldGluZwogICAKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyBpbmRpcmVjdGlvbnMgaW4gc3RyY2FzZWNtcAogICAKMjAwMC0wMi0yMyAwMjowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSB2bXN0YXRfc29sYXJpcy5jOiBtYWtlIHN1cmUgd2UgYWdyZWUgd2l0aCB0aGUgcHJvdG90eXBlIG9mIGdldHBhZ2VzaXplIQogICAKMjAwMC0wMi0yMiAxNTozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oOgoKICAgLSBwYXNzX3BlcnNpc3QuaDogZGVjbGFyZSBpbml0X3Bhc3NfcGVyc2lzdAogICAKMjAwMC0wMi0yMSAxNjoxNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmg6CgogICBBcHBseSBSLiBTdG9yeSdzIHBhdGNoIGZvciBta2RpcmhpZXIgYW5kIHN0cm5jYXNlY21wIG9uIHdpbjMyCiAgIAoyMDAwLTAyLTIxIDA3OjM5ICBtc2xpZmNhawoKICAgKiBtYW4vOiByZWFkX2NvbmZpZy4zLmRlZiwgc25tcF9hbGFybS4zLAogICBzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMQo6CgogICBmaXggYnVnIDE3MSAodGhhbmtzIHRvIExhcnJ5IFBhcm1lbGVlKS4KICAgCjIwMDAtMDItMjEgMDU6NTYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgcmVtb3ZlIGZyZWUgYWZ0ZXIgc25tcF9jbG9zZSAoZG9uJ3QgZnJlZSB0d2ljZSEpCiAgIAoyMDAwLTAyLTIxIDA0OjU4ICBtc2xpZmNhawoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FsYXJtLjMKLCBzbm1wX3Nlc3NfYXBpLjM6CgogICBBZGRlZCBkZXNjcmlwdGlvbiBpbiBTSF9OQU1FIGZvciBzZXZlcmFsIG1hbi1wYWdlcyAoYy9vIHJhZ25hcmspCiAgIAoyMDAwLTAyLTE4IDEyOjE0ICBtc2xpZmNhawoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMKLCBzbm1wX29wZW4uMywgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMwosIHNubXBfc2VuZC4zLCBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLAogICBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsIHNubXBfc2Vzc19pbml0LjMKLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywKICAgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLCBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLAogICBzbm1wX3Nlc3NfdGltZW91dC4zLCBzbm1wX3RpbWVvdXQuMzoKCiAgIHJlZmVyIHRoZSAuc28gbWFjcm8gdG8gbWFuMzsgYWRqdXN0IE1ha2VmaWxlLmluIHRvIHVzZSB0aGUgcmVuYW1lZCBmaWxlLgogICAKMjAwMC0wMi0xNyAwNToxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGluY2x1ZGUgcGFzc19wZXJzaXN0IGluIHRoZSByZXF1aXJlZCBsaXN0LgogICAKMjAwMC0wMi0xNyAwMjowMCAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIC0gKGNvbmZpZ3VyZSogdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMpOgogICAgIC0gUHJvdmlkZSBtaXNzaW5nICdnZXRwYWdlc2l6ZScgcm91dGluZSBmb3IgU29sYXJpcyAyLjQKICAgICAgIChUaGFua3MgdG8gUmFnbmFyIEtq+HJzdGFkKQogICAKMjAwMC0wMi0xNiAyMDoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9zbm1wX21pYi5jCiwgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICBpbmNsdWRlIG1pYmluY2wuaCBpbiBocl9zeXN0ZW0uYyB0byBmaXggYnVnICMxNTkuCiAgIAoyMDAwLTAyLTE2IDE2OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIHJlbW92ZSBhdXRvX25saXN0IG9mIHVudXNlZCAic3dhcGxpc3QiIHN5bWJvbC4KICAgCjIwMDAtMDItMTYgMTU6MTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgcGF0Y2ggc3VnZ2VzdGVkIGJ5IFJpY2sgQmVhbWFuIDxiZWFtYW5AbWVkaWFvbmUubmV0PgogICAKMjAwMC0wMi0xNiAxNDo1OCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwogICAKMjAwMC0wMi0xNiAxNDo1NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHZhY20uYywgdmFjbS5oOgoKICAgdGVzdCBsZW5ndGhzIGJlZm9yZSBhbGxvY2F0aW5nIG1lbW9yeTsgdXNlIG5ldyBWQUNNU1RSSU5HTEVOIGNvbnN0YW50LgogICAKMjAwMC0wMi0xNiAwODoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgaW5jbHVkZSB0aW1lLmggb25jZQogICAKMjAwMC0wMi0xNiAwODowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICByZXN0b3JlICNpZiBIQVZFLi4uSU5fUENCX0gKICAgCjIwMDAtMDItMTUgMjM6NDcgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgKOgoKICAgLSBjb25maWd1cmUuaW4sIGlwY2guW2NoXTogaW5pdGlhbCBzdGFicyBhdCBMaW51eCBpcHY2IHN1cHBvcnQuIEEgbG90IGlzCiAgIAlsYWNraW5nIGluIHRoZSBrZXJuZWwgc3RhdGlzdGljcyB0aG91Z2guCiAgIAoyMDAwLTAyLTE1IDIzOjQwICBuYmEKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCjoKCiAgIC0gKG1hbnkpOiBjb25maWd1cmUgY2hlY2sgZm9yIG5ldGluZXQvaXA2LmgKICAgCjIwMDAtMDItMTUgMjM6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gaHJfZmlsZXN5cy5jOiBNTlRUWVBFIGRlZmluZXMgZm9yIEZyZWVCU0QtMyBhbmQgQlNESS00LCBhbmQgbW92aW5nIHRoZQogICAJcmV0dXJuIHZhbHVlIGZvciBFeHQyRlMgdG8gdGhlIG5ld2x5IGRlZmluZWQgT0lELgogICAKMjAwMC0wMi0xNSAyMzoyMyAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBnaXZlIGEgc2Vuc2libGUgb3V0cHV0IGZvciBhbiBlbXB0eSB0YWJsZS4KICAgCjIwMDAtMDItMTUgMjM6MjIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSB2YWNtKjogYnVmZmVyIGxlbmd0aCBjaGVja2luZyEKICAgCjIwMDAtMDItMTUgMjM6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiByZXR1cm4gbWVtb3J5IHNpemUgaW4gcGFnZXMuCiAgIAoyMDAwLTAyLTE1IDIzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwo6CgogICAtIHVjZF9zbm1wLmgsIG1lbW9yeV9mcmVlYnNkMi5oOiBtYWtlIGl0IHdvcmsgZm9yIEZyZWVCU0QtMyB0b28KICAgCjIwMDAtMDItMTUgMjM6MTYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogb25lIG1vcmUgcGxhY2UgdG8gc2VuZCBhIEFVVEhGQUlMIHRyYXAKICAgCjIwMDAtMDItMTUgMjM6MTUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhZ2VudF9yZWdpc3RyeS5jOiBmaXggYSByZXR1cm4gZm9yIFNOTVB2MS9Db3VudGVyNjQgY2FzZQogICAKMjAwMC0wMi0xNSAwMjoxMiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBPbWl0IGRlcHJlY2F0ZWQgb3B0aW9ucyBmcm9tIG9wdGFyZyBoYW5kbGluZy4KICAgCjIwMDAtMDItMTEgMTU6NDcgIGhhcmRha2VyCgogICAqIG1ha2VkZXBlbmQuaW46CgogICAtIChtYWtlZGVwZW5kLmluKTogL3Vzci9sb2NhbC9iaW4vcGVybCAtPiAvdXNyL2Jpbi9wZXJsCiAgIAoyMDAwLTAyLTExIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIC0gKHJzbm1wKTogcGVybDUgLT4gcGVybAogICAKMjAwMC0wMi0xMSAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX3RyYXBfYXBpLjMKICAgCjIwMDAtMDItMTEgMTQ6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBsYXN0IG1pbnV0ZSBtYWtlZmlsZSB0b3VjaHVwCiAgIAoyMDAwLTAyLTExIDE0OjAzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgNC4xLjEKICAgCjIwMDAtMDItMTEgMTM6NDcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgNC4xLjEKICAgCjIwMDAtMDItMTEgMTM6MjkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKICAgCjIwMDAtMDItMTEgMTI6NTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwKOgoKICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIGZvciBUaW1lb3V0IGZvciB2MmMuCiAgIAoyMDAwLTAyLTExIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawogICAKMjAwMC0wMi0xMSAxMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGZpeCBmb3Igc2VwZXJhdGUgYnVpbGQgcGF0aAogICAKMjAwMC0wMi0xMSAxMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGNvbXBpbGVyIHdhcm5pbmcgZml4LgogICAKMjAwMC0wMi0xMSAxMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogcGF0Y2ggZnJvbSBOaWVsczoKICAgICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgogICAgIC0gc2VuZCBhdXRoRmFpbHVyZSB0cmFwLgogICAKMjAwMC0wMi0xMSAxMjoyMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGNoYW5nZSBwZXJsIHBhdGggdG8gL3Vzci9iaW4uCiAgIAoyMDAwLTAyLTExIDA2OjU4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgogICAKMjAwMC0wMi0xMCAxMToxNCAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTAyLTEwIDEwOjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGV4dGVuc2libGUuYywgcGFzc19wZXJzaXN0LmMKOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMi0xMCAxMDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogbWlub3IgZml4ZXMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbC4KICAgCjIwMDAtMDItMTAgMTA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgogICAKMjAwMC0wMi0xMCAwODozOSAgbmJhCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIG1pYl9hcGkuMywKICAgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfYWxhcm0uMywgc25tcF9hcGkuMywgc25tcF9jb25maWcuNS5kZWYKLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBfdHJhcF9hcGkuMywgc25tcGJ1bGtnZXQuMQosIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsIHNubXBkLjEuZGVmLAogICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLAogICBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEsCiAgIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0ZXN0LjEsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYXAuMSwgc25tcHRyYXBkLjgsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEsCiAgIHZhcmlhYmxlcy41OgoKICAgLSBtYW4vKjogc2V0IHRoZSBkYXRlcyBvbiB0aGUgcGFnZXMgdG8gcmVmbGVjdCB0aGUgcmV2aXNpb24gZGF0ZQogICAKMjAwMC0wMi0xMCAwODoxMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1kNS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgKOgoKICAgZml4IHZhcmFyZ3MgZGVjbC9kZWZuIG9mIHNubXBfbG9nCiAgIAoyMDAwLTAyLTEwIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KICAgCjIwMDAtMDItMTAgMDc6MTQgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAogICAKMjAwMC0wMi0xMCAwNDo0MSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIC0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CiAgICAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCiAgIAoyMDAwLTAyLTA5IDEzOjUzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVM6CgogICAtIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgLSBza2lwIHNzbCB0ZXN0cyB3ZSBjYW4ndCBwZXJmb3JtLgogICAKMjAwMC0wMi0wOSAxMzo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZ2V0IFBBVEhfTUFYIG9uIEZyZWVCU0QuCiAgIAoyMDAwLTAyLTA5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwKICAgVDAyNXNubXB2M2dldFNIQURFUzoKCiAgIC0gKFN2M1NIQURFU2NvbmZpZywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgogICAgIC0gbWFrZSBTSEEgdGVzdHMgYWN0dWFsbHkgd29yay4KICAgCjIwMDAtMDItMDkgMTM6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhOgoKICAgLSAoU3YzY29uZmlnc2hhKTogc2hhIGNvbmZpZyBzdXBwb3J0CiAgIAoyMDAwLTAyLTA5IDEzOjMxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbAosIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsIFQwMThzbm1wdjF0b3YyY2dldGZhaWw6CgogICAtIChUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOiBmaXggZm9yIHByb3BlciBBQ00gZXJyb3Igb3V0cHV0cy4KICAgCjIwMDAtMDItMDkgMTM6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdG9vbHMuaDoKCiAgIERlZmluZSBTTk1QX01BWFBBVEgsIGFuZCB1c2UgaXQuCiAgIAoyMDAwLTAyLTA5IDEzOjMwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMKOgoKICAgLSAoVDAyNHNubXB2M2dldFNIQTEgVDAyNXNubXB2M2dldFNIQURFUyk6IG5ldyB0ZXN0cwogICAKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KICAgCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgICBzbm1wX2FnZW50LmMsIHZhY21fdmFycy5jKToKICAgICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KICAgCjIwMDAtMDItMDkgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IHBhdGNoIGZyb20gcmVkaGF0IGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQuCiAgIAoyMDAwLTAyLTA5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2UgbW9kZSB0byBhdXRvY29uZi4KICAgCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggcnNubXAgYnVpbGQuICBSZWFsbHkuICBJIG1lYW4gaXQuCiAgIAoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmM6CgogICAtIChocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYyk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgIC0gU29sYXJpcyBwYXRjaGVzLgogICAKMjAwMC0wMi0wOSAxMDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBmaXggcnNubXAubWFkZS4KICAgICAtIHVzZSAkKE1BS0UpLgogICAKMjAwMC0wMi0wOSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBVcGRhdGUgZnJvbSBKb2NoZW4gS21pZXRzY2gKICAgCjIwMDAtMDItMDcgMTE6NDkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvb3BzIG1pc3NpbmcgaW1wb3J0YW50IGZpeCBmb3Igd2luMzIgYnVpbGQgLSBmZF9zZXQgbXVzdCBiZSBzYW1lIHNpemUgYXMgaW4gd2luc29jawogICAKMjAwMC0wMi0wNyAxMToxOCAgbXNsaWZjYWsKCiAgICogYnVnLXJlcG9ydDoKCiAgIFVuZG8gbGFzdCBjaGFuZ2U7IG9uIFN1biwgYWRkaXRpb25hbCBwbGF0Zm9ybSBpbmZvIHdhcyBub3Qgb2J0YWluZWQ7CiAgIHRoZSBwcm9wZXIgc29sdXRpb24gd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgdG9rZW4gKGhvc3RuYW1lKS4KICAgCjIwMDAtMDItMDcgMTA6NDMgIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQ6CgogICBLZWVwIGN1c3RvbWVyJ3Mgbm9kZW5hbWUgb3V0IG9mIHRoZSBwdWJsaXNoZWQgJ3VuYW1lJyBpbmZvcm1hdGlvbi4KICAgCjIwMDAtMDItMDcgMDc6MjAgIGhhcmRha2VyCgogICAqIFBPUlRJTkc6CgogICAtIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgogICAKMjAwMC0wMi0wNiAwNjoxMSAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCiAgIAoyMDAwLTAyLTA1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KICAgCjIwMDAtMDItMDUgMDg6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGZpeCB3cmFwcGVkIGxpbmUgY29udGludWF0aW9uIGluIHVzYWdlIG1lc3NhZ2UuCiAgIAoyMDAwLTAyLTA1IDA2OjU2ICBtYXJ6CgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBmaXggdmVyc2lvbiAgbnVtYmVyCiAgIAoyMDAwLTAyLTA0IDE4OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC90Lzogc2Vzc2lvbi50LCBzZXQudCwgc3RhcnRhZ2VudC5wbDoKCiAgIHdlaXJkIGRlbGF5IGluIGNyZWF0aW9uIG9mIHBpZCBmaWxlcwogICAKMjAwMC0wMi0wNCAxODoyMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC86IG5vdGlmeS50LCBzdGFydGFnZW50LnBsOgoKICAgYnJhaW4tbwogICAKMjAwMC0wMi0wNCAxNzo1MiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xICkKICAgCjIwMDAtMDItMDQgMTc6NDkgIGhhcmRha2VyCgogICAqIFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLnNubXB2MywgVE9ETzoKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLnNubXB2MywgVE9ETyk6IGxhc3QgbWludXRlIGRvYyB1cGRhdGVzLgogICAKMjAwMC0wMi0wNCAxNzoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgbG9jYWwgZml4ZXMgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBoYXZlCiAgICAgY29tcGxpYW50IG1ha2VmaWxlIHZhcmlhYmxlcyBsaWtlICQ8LgogICAKMjAwMC0wMi0wNCAxNjo0NyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciA0LjEKICAgCjIwMDAtMDItMDQgMTU6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogQlVHLCBoaW50cy9zb2xhcmlzLnBsOgoKICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCiAgIAoyMDAwLTAyLTA0IDE1OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC86IGhpbnRzL3NvbGFyaXMucGwsIHQvZ2V0LnQsIHQvZ2V0bmV4dC50CiwgdC9zZXNzaW9uLnQsIHQvc2V0LnQsIHQvc25tcHRlc3QuY29uZjoKCiAgIGJ1aWxkIGZpeGVzIGFuZCB0ZXN0IGVuaGFuY2VtZW50cwogICAKMjAwMC0wMi0wNCAxNTowOSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsIFNOTVAueHMsCiAgIHQvYXN5bmMudCwgdC9nZXQudCwgdC9nZXRuZXh0LnQsIHQvbWlibG9hZC50CiwgdC9zZXNzaW9uLnQsIHQvc2V0LnQsIHQvc25tcGQuY29uZiwKICAgdC9zbm1wdGVzdC5jb25mOgoKICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCiAgIAoyMDAwLTAyLTA0IDE0OjAxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIChzbm1wdHJhcGQuOCk6IGRvY3VtZW50IC1jIGFuZCAtQy4KICAgCjIwMDAtMDItMDQgMTM6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6CiAgICAgLSBpbXBsZW1lbnQgLWMgYW5kIC1DIGZsYWdzIGZvciBKb2UuCiAgICAgLSByZWRpZCB0aGUgaW5pdCBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbGlrZSB0aGUgY3VycmVudCBhZ2VudC4KICAgCjIwMDAtMDItMDQgMTM6NTIgIG1hcnoKCiAgICogSU5TVEFMTDoKCiAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAogICAKMjAwMC0wMi0wNCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBkb24ndCByZWFkIHRoZSBvcHQgY29uZmlnIGZpbGUgb3IgY2FsbAogICAgIHBvc3RfY29uZmlnIGNhbGxiYWNrcywgc2luY2UgdGhlIGxpYnJhcnkgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KICAgCjIwMDAtMDItMDQgMTM6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1ha2UgZGVwZW5kLgogICAKMjAwMC0wMi0wNCAxMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRvbid0IHByaW50IGZhaWxlZCBhY2Nlc3MgZXJyb3JzIChFQUNDRVMpLgogICAKMjAwMC0wMi0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMpOiBwcm92aWRlIHYzIGRlZmF1bHRzLgogICAKMjAwMC0wMi0wNCAxMjowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGxvY2FsL01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IGZpbmQsIGxvY2F0ZSwgYW5kIHVzZSBwZXJsIGlmIGZvdW5kLgogICAKMjAwMC0wMi0wNCAwODo1NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZCBkZWZhdWx0cyBmb3IgdjIgdHJhcCBwYXJhbXMKICAgCjIwMDAtMDItMDQgMDY6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAgaGF2ZSBtaWIgbG9hZGluZyBhcGkgcmV0dXJuIHJlc3VsdCBjb2RlcwogICAKMjAwMC0wMi0wNCAwNDowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IHJlYWxseSBkbyB0aGF0IEZyZUJTRCBzY3NpIHRoaW5nCiAgIAoyMDAwLTAyLTA0IDAxOjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIHZhY21fdmFycy5jOiBzbGlnaHQgcmV3b3JkaW5nIG9mIHdhcm5pbmcgbWVzc2FnZQogICAKMjAwMC0wMi0wNCAwMDoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IEEgbGl0dGxlIGNsZWFudXAgb2YgdGhlIGRpc2sgZGV2aWNlIGRlZmluaXRpb25zLCBhbHNvIGFkZGluZwogICAJU0NTSSB0byBGcmVlQlNEIDMKICAgCjIwMDAtMDItMDQgMDA6MTYgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmMsIG1pYi5jOiBmaXggc29tZSBQQVRIIHNlcGFyYXRvcnMgZnJvbSBjb25zdGFudDogdG8KICAgCUVOVl9TRVBBUkFUT1J7X0NIQVJ9CiAgIAoyMDAwLTAyLTAzIDIzOjU5ICBuYmEKCiAgICogc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICAtIG10X3N1cHBvcnQuaDogYW5vdGhlciB3YXkgb2YgZG9pbmcgbm90aGluZywgbm90IGdpdmluZyBhICJudWxsIGVmZmVjdCIKICAgCXdhcm5pbmcgZnJvbSBnY2MuCiAgIAoyMDAwLTAyLTAzIDIzOjU3ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gYWdlbnQvcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLCBjbGllbnQuYzogY2hhbmdlIHNvbWUgdHlwZSBjYXN0cyBmcm9tCiAgIAkoY2hhciAqKSB0byAodV9jaGFyICopIHRvcCBzaWxlbmNlIHNvbWUgd2FybmluZ3MuCiAgIAoyMDAwLTAyLTAzIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChSRUFETUUpOiByZW1vdmUgZHVtbXkgcmVmZXJlbmNlLgogICAKMjAwMC0wMi0wMyAxNDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogcHJvdGVjdCBzeXNPUlRhYmxlIGNhbGxiYWNrcyB3aXRoICNpZmRlZnMuCiAgIAoyMDAwLTAyLTAzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmguCiAgIAoyMDAwLTAyLTAzIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS86IEFkZE1vZHVsZUZvckR1bW1pZXMudHh0LAogICBEVU1NWS1NSUIudHh0LCBkdW1teS5jLCBkdW1teS5oOgoKICAgLSAoZHVtbXkvKik6IHJlbW92ZWQsIHVzZSBleGFtcGxlIGluc3RlYWQuCiAgIAoyMDAwLTAyLTAzIDEzOjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRm9sbG93IGNvbmRpdGlvbiBIQVZFX0dFVFBJRCBmb3IgcGlkX2ZpbGUgb2JqZWN0LgogICAKMjAwMC0wMi0wMyAxMjo1OCAgbXNsaWZjYWsKCiAgICogUkVBRE1FLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICBOb3RlIHRoZSB3b21iYXQgaXMgcmVwbGFjZWQgYnkgZXhhbXBsZSBpbiBtb3JlIHBsYWNlcy4KICAgCjIwMDAtMDItMDMgMTI6NTcgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcAo6CgogICBSZW1vdmUgRE9TLXN0eWxlIGxpbmUgdGVybWluYXRpb24gKENSLUxGIC0tPiBMRikuCiAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQgYWJvdXQgb2Jzb2xldGUgdjJwYXJ0eS4KICAgCjIwMDAtMDItMDMgMTA6NDggIG1hcnoKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFkZCAtdSBQSURGSUxFIHRvIHNubXB0cmFwZCwgbm93IHdlIG5lZWQgLWMgLUM6KSwgYnR3IGlzIHRoZSB2YWx1ZSBvZiBvcHRhcmcgcmVsaWFibGUgYWZ0ZXIgZ2V0b3B0IGhhcyBiZWVuIGNhbGxlZCBhZ2Fpbi4uLml0IHNlZW1zIHRvIHdvcmsKICAgCjIwMDAtMDItMDMgMDk6NTYgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsIHdpbjMyL2NvbmZpZy5oCjoKCiAgIEluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCBmcm9tIG1pYmluY2wuaCwgbm90IHRvcCBsZXZlbCBjb25maWcuaC4KICAgCjIwMDAtMDItMDMgMDk6NDQgIG1hcnoKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIG15IGVtYWlsCiAgIAoyMDAwLTAyLTAzIDA2OjQzICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCB0byBtYWtlIHRoZSBVU0lOR18gY29uc3RhbnRzIHZpc2libGUuCiAgIAoyMDAwLTAyLTAzIDA0OjEyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFVuZG8gdW5pbmZvcm1lZCBjaGFuZ2U6IGxvYWQgYXZlcmFnZSAhPSBhdmVyYWdlIHRpbWUgdGhhdCBDUFUgaXMgaWRsZS4KICAgCjIwMDAtMDItMDMgMDE6MzUgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERvY3VtZW50IGNoYW5nZXMgdG8gYWNjZXNzIGNvbnRyb2wgc3R1ZmYuCiAgIAoyMDAwLTAyLTAyIDE2OjM2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgVG91Y2h1cCB0byBidWlsZCBtb3JlIE1JQiBtb2R1bGVzIG9uIFdpbjMyLgogICAKMjAwMC0wMi0wMiAxNjoyMyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBUb3VjaHVwIGZvciBidWlsZGluZyBtb3JlIE1JQiBtb2R1bGVzIGluIFdpbjMyIChNU1ZDKS4KICAgCjIwMDAtMDItMDIgMTQ6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgTGV0IGhyUHJvY2Vzc29yTG9hZCBvdXQgb2YgdGhlIGdlbmllJ3MgYm90dGxlLgogICAKMjAwMC0wMi0wMiAxNDoxNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FLCBSRUFETUUud2luMzI6CgogICBhZGQgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB3LyBPcGVuU1NMIG9uIFZDKysKICAgCjIwMDAtMDItMDIgMTM6NDIgIG1hcnoKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYWRkIGluc3RydWN0aW9ucyBmb3IgYnVpbGRpbmcgdy8gT3BlblNTTCBvbiBWQysrCiAgIAoyMDAwLTAyLTAyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gUm9iZXJ0IE1pbGVzOgogICAgIC0gdmFyaW91cyBmaXhlczoKICAgICAgIDEpIFRoZSBmaXJzdCByZWdpc3RyYXRpb24gcmVxdWVzdCBjb3VsZCBiZSBsb3N0LgogICAgICAgMikgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyBuZXZlciByZWNlaXZlZCBhIHJlc3BvbnNlLgogICAgICAgMykgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyB3ZXJlIG5vdCBmaW5kaW5nIHRoZSByZWdpc3RyYXRpb24gd2hlbiB0aGUKICAgICAgICAgIGRlbGV0ZSdzIHByaW9yaXR5IHdhcyBzZXQgdG8gLTEuCiAgICAgICA0KSBOb24temVybyB2YWx1ZXMgd2VyZSBub3QgYmVpbmcgZW5jb2RlZCBwcm9wZXJseSBpbiByZWdpc3RyYXRpb24KICAgICAgICAgIHJlc3BvbnNlcy4KICAgCjIwMDAtMDItMDIgMDg6NTIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgZml4IHRoZSBmYXQtZmluZ2VyaW5nIHBhdGNoIEkganVzdCBtYWRlLiBmZWguCiAgIAoyMDAwLTAyLTAyIDA4OjQyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEFsbG93IC1DbyB0byBhZmZlY3QgdGhlIG91dGNvbWUuCiAgIAoyMDAwLTAyLTAyIDA4OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogQ29ycmVjdGx5IGhhbmRsZSBpbmRpdmlkdWFsbHkgZXhjbHVkZWQgaW5zdGFuY2VzCiAgIAoyMDAwLTAyLTAyIDA3OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAKICAgCjIwMDAtMDItMDIgMDY6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBhZGQgTmV0QlNEIHN1cHBvcnQKICAgCjIwMDAtMDItMDIgMDQ6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGRlcGVuZGVuY2llcyBvbiAobW92ZWQpIHZlc3RpbnRlcm5ldHQvZGlza2lvCiAgIAoyMDAwLTAyLTAyIDAxOjEyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gKGhvc3QvaHJfZGlzay5jKTogRml4IHNvbGFyaXMgaW5pdGlhbGlzYXRpb24sIHBsdXMgZXh0cmEgZGVidWdnaW5nIGluZm8uCiAgIAoyMDAwLTAyLTAxIDExOjI2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jLCBzbm1wdjMuYzoKCiAgIEZpeHVwIG1vcmUgc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMC0wMi0wMSAwODo0NiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMToKCiAgIC0gKHNubXB1c20uMSk6IGNoYW5nZWQgY29udGV4dCBzdHJpbmcgaW4gZXhhbXBsZXMgdG8gIiIuCiAgIAoyMDAwLTAyLTAxIDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogLlBQIC0+IC5JUCBmb3IgLU9iLgogICAKMjAwMC0wMi0wMSAwODo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgKGFnYWluKS4KICAgCjIwMDAtMDItMDEgMDg6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSAoZGlza2lvLmMpOiBtb3ZlIHRvIHVjZEV4cGVyaW1lbnRhbC4xNS4KICAgCjIwMDAtMDItMDEgMDg6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oOgoKICAgLSAoZGlza2lvLmgpOiBsb2FkIHRoZSBtaWIuCiAgIAoyMDAwLTAyLTAxIDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHZlc3RpbnRlcm5ldHQvZGlza2lvLmMsCiAgIHZlc3RpbnRlcm5ldHQvZGlza2lvLmgsIHVjZC1zbm1wL2Rpc2tpby5jLAogICB1Y2Qtc25tcC9kaXNraW8uaDoKCiAgIC0gKGRpc2tpby4qKTogbW92ZWQgdG8gdGhlIHVjZC1zbm1wIGRpcmVjdG9yeQogICAKMjAwMC0wMi0wMSAwNToyNyAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiBnZW5lcmF0aW5nIHRyYXBzIGZyb20gdGhlIGFnZW50IHNsaWdodGx5LgogICAKMjAwMC0wMi0wMSAwNDoxOSAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2F0Y2ggY29tbW9uIGludmFsaWQgY29uZmlndXJlIG9wdGlvbnMuCiAgIAoyMDAwLTAyLTAxIDAzOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IHNlc3Npb24gSUQgaGFuZGxpbmcgd2hlbiBkZWxlZ2F0aW5nIHJlcXVlc3RzLgogICAKMjAwMC0wMi0wMSAwMTo0OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAtIEZpeCBicm9rZW4gc2V0dGluZyBvZiBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgY2hvaWNlLgogICAKMjAwMC0wMS0zMSAxMDo0MSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBEU19MSUJfRE9OVF9CUkVBS0RPV05fT0lEUyB0byBnZXQgcHJldmlvdWxzeSByZWxlYXNlZCBiZWhhdmlvdXIgb2YgZ2V0X3N5bWJvbCB3cnQgb2N0ZXQgYmFzZWQgaW5zdGFuY2UgaWRzIChpLmUuLCBubyBkb3VibGUtcXVvdGluZykKICAgCjIwMDAtMDEtMzEgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLltjaF0pOgogICAgIC0gUHJvdmlkZSBhbiBleGFtcGxlIGZvciBob3cgdG8gdHJpZ2dlciBhIHRyYXAuCiAgIAoyMDAwLTAxLTMxIDA3OjU2ICBkYXZlcwoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAtIChhcHBzL3NubXB0ZXN0LmMpOiBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgCjIwMDAtMDEtMzEgMDc6NTUgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wbGliL3NubXB2My5bY2hdKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgICAgLSBOLkI6IFRoaXMgY2hhbmdlcyB0aGUgaW50ZXJmYWNlIG9mIHNubXB2M19nZW5lcmF0ZV9lbmdpbmVJRCgpIHNsaWdodGx5LgogICAKMjAwMC0wMS0zMSAwNzo1MyAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICBzbm1wdXNtLmM6CgogICAtIChzbm1wbGliL2FzbjEuYyBzbm1wbGliL3NubXAuYyBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdXNtLmMpOgogICAgIC0gRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgIAoyMDAwLTAxLTMxIDA3OjUxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBdHRlbXB0IHRvIG1pbWljIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMjAwMC0wMS0zMSAwNzo0OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIEltcHJvdmVkIGNoZWNraW5nIGZvciBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjIwMDAtMDEtMzEgMDM6NDEgIGRhdmVzCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IFJldmlzZWQgYW5kIHVwZGF0ZWQgdmVyc2lvbi4KICAgCjIwMDAtMDEtMzEgMDM6MTQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEluaXRpYWxpemUgYWRkcmxlbiBpbiBfc2Vzc19yZWFkKCkuICAoRnJhbmsgU3RyYXVzcykKICAgCjIwMDAtMDEtMzEgMDM6MDMgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgLSBBdHRlbXB0IHRvIGRldGVjdCBub24tdHJhZGl0aW9uYWwgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIChvbiBJcml4IDYueCkuCiAgIAoyMDAwLTAxLTMxIDAzOjAwICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBJcml4IHNvY2tldCBoYW5kbGluZy4KICAgCjIwMDAtMDEtMzEgMDI6NDAgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUmVzdG9yZSB0cmFkaXRpb25hbCBzb2NrZXQgZmllbGQgbmFtZXMuCiAgIAoyMDAwLTAxLTMxIDAxOjQ1ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBJbmNsdWRlIGluc3RhbmNlIHN1YmlkZW50aWZpZXIgaW4gc25tcFRyYXBPSUQgYW5kCiAgIAlzbm1wVHJhcEVudGVycHJpc2UgT0lEIGRlZmluaXRpb25zLiAgKFRoYW5rcyB0byBHZXJhcmQgVGFsbWFuKQogICAKMjAwMC0wMS0zMSAwMTowNSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBMb2cgZmFpbGVkIE1JQiByZWdpc3RyYXRpb25zLgogICAKMjAwMC0wMS0zMCAxMDo1NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFJFQURNRToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgogICAKMjAwMC0wMS0zMCAxMDo0NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgogICAKMjAwMC0wMS0zMCAxMDo0NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgCiAgIE5vdGU6IEtOT1dOIEJVR1MKICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQogICAKICAgbm90IHN1cmUgdGhhdCB0aGlzIGV2ZXIgd29ya2VkIC0gd2lsbCBoYXZlIHRvIGxvb2sgYXQgb2xkIE9DVEVUU1RSCiAgIGJlaGF2aW91ciBhbmQgc2VlIGhvdyB0byByZWNyZWF0ZSBpdAogICAKMjAwMC0wMS0zMCAxMDo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAKICAgTm90ZTogS05PV04gQlVHUwogICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgIAoyMDAwLTAxLTMwIDA4OjE5ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L3NubXBkLmNvbmY6CgogICBjcmVhdGUgVjMgdXNlciBlbnRyeSwgY2xlYW51cAogICAKMjAwMC0wMS0zMCAwMzoxMSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gaWYuYzogZGVmZW5zaXZlIHRlc3QgZm9yIG1pc3Npbmcgb2JqZWN0cyAoaXQgbWlnaHQgZmFpbCB0byBzaG93CiAgIAlkb3duIHN0YXR1cyBwcm9wZXJseSkKICAgCjIwMDAtMDEtMzAgMDM6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiBjb252ZXJ0IGZyb20gcGFnZXMgdG8gMWsgYmxvY2tzCiAgIAoyMDAwLTAxLTMwIDAzOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogY29udmVydCB0byAxayBibG9ja3MKICAgCjIwMDAtMDEtMzAgMDM6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0Lmg6CgogICAtIGhvc3QuaDogY29uZmlnX3JlcXVpcmVfbWliKEhPU1QtUkVTT1VSQ0VTLVRZUEVTKQogICAKMjAwMC0wMS0yOCAxMjo1MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBUaGlzIHdpdGggcHJldmlvdXMgdHdvIGNoYW5nZXMgY29tcGxldGVzIGEgcGF0Y2ggZm9yIGl0ZW1zIDIsMyw0CiAgIGZvciBidWcgIzE0OS4KICAgCjIwMDAtMDEtMjggMTI6MzggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgQ2hhbmdlIGFnZW50eF97YnVpbGQscGFyc2V9X3Nob3J0IC4gVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW5AaGl0dC5ubC4KICAgCjIwMDAtMDEtMjggMTI6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgRml4IHNwZWxsIExJVFRMRV9FTkRJQU4uIFRoYW5rcyB0byB0YWxtYW5AaGl0dC5ubC4KICAgCjIwMDAtMDEtMjggMDc6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgU29tZSB2YXJpYWJsZSByZW5hbWluZyBmb3IgY29uc2lzdGVuY3ksIGVycm9yIGNoZWNraW5nCiAgIGltcHJvdmVkLCBtaXNzaW5nIHN0cmluZy5oIGluY2x1ZGVkLiAgUGF0Y2ggc3VwcGxpZWQgYnkgYXV0aG9yLgogICAKMjAwMC0wMS0yNyAxNjoxMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVtb3ZlIGhhY2sgYXJvdW5kICJTTUkiIHRva2VuOyBrZWVwIHRoZSBnb29kIHBhcnQgb2YgdGhlIHByZXZpb3VzIHBhdGNoLgogICAKMjAwMC0wMS0yNyAxNDo1MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgIDEuIEZpeCBtZW1vcnkgbGVhayB3aGVuIGFub255bW91c2x5IG5hbWVkIG5vZGVzIGFyZSB1c2VkLgogICAgMi4gSGFjayBhcm91bmQgc21pY25nJ3MgIlNNSSAiIHN0YXRlbWVudHMgdG8gcHJldmVudCBvdGhlciBtZW1vcnkgbGVha3MuCiAgIAoyMDAwLTAxLTI3IDExOjE0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIG5vLW9wIHNubXBfc3luY2hfc2V0dXAKICAgCjIwMDAtMDEtMjcgMDg6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jKTogbWFrZSBjb25maWcgcGFyc2VyIGhhbmRsZSAiIiAobnVsbCkgcGFyc2VkIHN0cmluZ3MuCiAgIAoyMDAwLTAxLTI2IDE5OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLWNoYW1lbGVvbi4KICAgCjIwMDAtMDEtMjYgMTc6MzIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhbGxvdyAnLCcgc2VwZXJhdGVkIC0td2l0aC0qLW1vZHVsZXMgZmxhZyB2YWx1ZXMuCiAgIAoyMDAwLTAxLTI2IDE3OjE4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMiApCiAgIAoyMDAwLTAxLTI2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wY21kLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEKOgoKICAgLSAoc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xKToKICAgIC0gYmFkbHkgZG9uZSB1cGRhdGVzLgogICAKMjAwMC0wMS0yNiAxNjo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUyk6IGZpeCBERVMgdGVzdCBzbyBpdCB3b3Jrcy4KICAgCjIwMDAtMDEtMjYgMTY6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGZpeCBwcml2IGtleSBsZW5ndGggZXh0cmFwb2xhdGlvbi4gIFNob3VsZCBiZSBkb25lIGRpZmZlcmVudGx5Py4KICAgCjIwMDAtMDEtMjYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAtIG1ha2UgZGVwZW5kLgogICAKMjAwMC0wMS0yNiAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBhZGQgYWJpbGl0eSB0byBhbGxvdyBzZW5kaW5nIHRyYXBzIHRvIHBvcnRzIG90aGVyIHRoYW4gMTYyLgogICAKMjAwMC0wMS0yNiAxNTozNCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwKICAgVUNELURMTU9ELU1JQi50eHQsIFVDRC1JUEZJTFRFUi1NSUIudHh0LAogICBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjb3JyZWN0IHVjZC1zbm1wLWNvZGVycyBlbWFpbCBhZGRyZXNzIHRvIHJlcGxhY2UgImVjZSIgd2l0aCAidWNkLXNubXAiLgogICAKMjAwMC0wMS0yNiAxNTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gY2xlYW4gdXAgYW5kIHJlZm9ybWF0IHN1Yi1yZWdpc3RyYXRpb24gY29tbWVudHMuCiAgIAoyMDAwLTAxLTI2IDE1OjMxICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0OgoKICAgLSAoVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHByZWZpeCBvaWRzIHdpdGggInVjZCIuCiAgIAoyMDAwLTAxLTI2IDE1OjMwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHByZWZpeCBvaWQgd2l0aCAidWNkIi4KICAgCjIwMDAtMDEtMjYgMTU6MjkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtRElTS0lPLU1JQi5pbmMsIFVDRC1ESVNLSU8tTUlCLnR4dCwKICAgVkVTVC1JTlRFUk5FVFQtTUlCLnR4dDoKCiAgIC0gKFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LCBWRVNULUlOVEVSTkVUVC1NSUIudHh0KToKICAgICBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGZpeCB0aGUgZGlza2lvIG1pYiwgY29udmVydCB0byBTTUl2MiwgYW5kIG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLgogICAKMjAwMC0wMS0yNiAwNzoyNiAgbXNsaWZjYWsKCiAgICogUkVBRE1FOgoKICAgQWNrbm93bGVkZ2UgbW9yZSBjb250cmlidXRvcnMuCiAgIAoyMDAwLTAxLTI2IDA3OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGNvbXBpbGUgZXJyb3Igd2hlbiAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MgaXMgdXNlZCAoc3RyYXVzc0BpYnIuY3MudHUtYnMuZGUpCiAgIAoyMDAwLTAxLTI1IDIxOjQ2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBtaWIuYzpwcmludF90cmVlX25vZGUgLSBzaG93IG1vZHVsZSBuYW1lIG9uY2UgaW4gLS0gRlJPTTsKICAgcGFyc2UuYzogc2hvdyAiQ2Fubm90IGZpbmQgbW9kdWxlIiBvbmNlIHBlciBtaXNzaW5nIG1vZHVsZS4KICAgCjIwMDAtMDEtMjUgMTk6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIExhcmdlciBidWZmZXIgZm9yIHByaW50X21vZHVsZV9uYW1lOyBGaXggcG9zc2libGUgbnVsbCBkZXJlZiBpbiBnZXRfdGMuCiAgIAoyMDAwLTAxLTI1IDE0OjUwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hbGFybS4zLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uMywgc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IHJlZ2lzdHJhdGlvbiBmdW5jdGlvbiB0byBkbyB3aGF0IGl0IHNheXMgaXQgc2hvdWxkIGRvLgogICAKMjAwMC0wMS0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpOiBoZWxwIHVwZGF0ZQogICAKMjAwMC0wMS0yNSAxNDoxMiAgbmJhCgogICAqIG1pYnMvOiBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQKLCBNYWtlZmlsZS5pbjoKCiAgIC0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LCBNYWtlZmlsZS5pbjoKICAgCVVwZGF0ZSB0byB0aGUgY3VycmVudCBkcmFmdCBIT1NULVJFU09VUkNFUyAoZHJhZnQtb3BzLWhvc3RtaWItMDEpCiAgIAoyMDAwLTAxLTI1IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1ZFU1QtSU5URVJORVRULU1JQi50eHQ6CgogICAtIChWRVNULUlOVEVSTkVUVC1NSUIudHh0KTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgogICAKMjAwMC0wMS0yNSAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVzdGludGVybmV0dC86IGRpc2tpby5jLCBkaXNraW8uaDoKCiAgIC0gKHZlc3RpbnRlcm5ldHQvZGlza2lvLltjaF0pOiBSYWduYXIgS2pyc3RhZCdzIGRpc2tpbyBtaWIuCiAgIAoyMDAwLTAxLTI1IDEzOjUyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIG9mIHRjX2luZGV4CiAgIAoyMDAwLTAxLTI1IDEyOjA1ICBtYXJ6CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFkZGl0aW9uYWwgd2luMzIgaW5zdGFsbCBub3RlcwogICAKMjAwMC0wMS0yNSAxMTo0NyAgbWFyegoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBtaXNzaW5nIHN5bmJvbHMgZm9yIHBlcmwvU05NUCBtb2R1bGUKICAgCjIwMDAtMDEtMjUgMDY6NDkgIG1hcnoKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgc3ludGF4IGZvciB3aW4zMiBidWlsZAogICAKMjAwMC0wMS0yNCAxMDozNiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjQgMTA6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggcHJpbnRpbmcgSU1QTElFRCBpbmRleCAoZnJvbSBhc3NvY2lhdGUgb2YgSi4gS21pZXRzY2gpIG1vZGlmaWVkIGFuZCBhcHBsaWVkLgogICAKMjAwMC0wMS0yNCAxMDowNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBJdG9qdW4ncyBuZXRic2QgRUxGIHBhdGNoICsgcmVtb3ZlIHdvbWJhdCBbRGF2ZSdzIGV4YW1wbGUgZml4XQogICAKMjAwMC0wMS0yNCAwOTo1NSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgRml4IEJ1ZyAjMTQ0IGl0ZW1zIDEsMyw0OiBjYXNlIGluc2Vuc2l0aXZlIGNoZWNrIGZvciAiYWxsIiBrZXl3b3JkLgogICAKMjAwMC0wMS0yNCAwOTo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBNYWtlIHN1cmUga3N0YXRfZmQgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQuCiAgIAoyMDAwLTAxLTI0IDA4OjU5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yNCAwNzoyMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBleGFtcGxlLmMsIGV4YW1wbGUuaCwKICAgd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSAoZXhhbXBsZXMve2V4YW1wbGUsd29tYmF0fS5bY2hdKToKICAgICAtIENvbnNvbGlkYXRlZCBleGFtcGxlIG1vZHVsZXMgaW50byBvbmUsIGluY2x1ZGluZyBjb25maWcgYW5kIFNFVCBzdXBwb3J0LgogICAKMjAwMC0wMS0yMyAxNjo0MSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGhhbmRsZSBhZGRpbmcgT1BBUVVFIHZhcnMgZm9yIHNldHRpbmcgYW5kIHRyYXBzIGV0Yy4KICAgCjIwMDAtMDEtMjMgMTI6NDMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGVycmVub3VzID0+IGVycm9uZW91cwogICAKMjAwMC0wMS0yMyAxMjo0MiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IG1lcmdpbmcgb2YgYW5vbnltb3VzIG5vZGVzIHdoZW4gdGhleSBhcmUgbmFtZWQKICAgCjIwMDAtMDEtMjMgMDg6NTEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGFkZCBzb21lIG1vcmUgZXJyb3IgY2hlY2tpbmcgdG8gZ2V0b2lkCiAgIAoyMDAwLTAxLTIxIDExOjE5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgY29uZmlnX2FyY2hfcmVxdWlyZSBzb2xhcmlzMiB2ZXJzaW9uIG9mIHZtc3RhdC4KICAgCjIwMDAtMDEtMjEgMTA6NDcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjEgMTA6MjMgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjEgMDg6MTMgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbmZvcm0KICAgCjIwMDAtMDEtMjEgMDg6MDAgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbmZvcm0uCiAgIAoyMDAwLTAxLTIxIDA3OjI3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBhZGRlZCB2MyBpbmZvcm0KICAgCjIwMDAtMDEtMjEgMDE6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pbmltaXplIGRhdGEgaGFuZGxpbmcgYW5kIHVzZSByZWdpc3RlciB2YXJpYWJpZXMgaW4KICAgc25tcF9vaWRfY29tcGFyZSBhbmQgY29tcGFyZV90cmVlLgogICAKMjAwMC0wMS0yMSAwMTo0NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgKOgoKICAgQWRkIGNvbnN0IHRvIGNsZWFudXAgYSBmZXcgc2lnbmF0dXJlcy4KICAgCjIwMDAtMDEtMjEgMDE6NDYgIG1zbGlmY2FrCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBSZW1vdmUgcGFydHkgY3J1ZDsgc3BlbGwgY2hlY2suCiAgIAoyMDAwLTAxLTIwIDA0OjI1ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTdXBwb3J0IHNlbGVjdGl2ZSBiaW5kaW5nIG9mIHNlcnZlciBhZGRyZXNzZXMuCiAgIAoyMDAwLTAxLTE4IDIxOjM3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIENvbnNpc3RlbnQgZ2V0cGFnZXNpemUgKGZpcnN0IGRpdmlkZSBieSAxMDI0KS4KICAgCjIwMDAtMDEtMTggMjE6MjggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIDEuTWFrZSBzbm1wX2dldF9kb19sb2dnaW5nIHZpc2libGUgZnJvbSBETEwKICAgMi5BcHBseSBXaW4zMiBwYXRjaCBmcm9tIFIuU3RvcnkgdG8gYWN0aXZhdGUgbWliIHN0YXRzIG1vZHVsZSAoc25tcF9taWIpLgogICAKMjAwMC0wMS0xOCAyMToyNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBSZW1vdmUgY29tbWVudGVkIG91dCBvYmplY3RzIHRoYXQgYXJlIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUuCiAgIAoyMDAwLTAxLTE4IDIxOjIyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENsZWFudXAgYXJvdW5kIGlwNl92YXJzLmggaW5jbHVkZSAobm8gI2lmIDApCiAgIAoyMDAwLTAxLTE4IDE0OjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIExhdGVzdCB2bXN0YXRfc29sYXJpczIgZnJvbSB0aGUgYXV0aG9yIEpvY2hlbiBLbWlldHNjaC4KICAgCjIwMDAtMDEtMTggMDg6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFByZXZlbnQgYXJyYXkgYm91bmRzIGVycm9yIHdoZW4gY3JlYXRpbmcgc3BlY2lmaWMgdHJhcCBvaWQuCiAgIAoyMDAwLTAxLTE4IDA3OjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gdmFscyBmb3IgdHJhcCBmdW5jcywgY2xlYW4gdXAgcGR1CiAgIAoyMDAwLTAxLTE4IDA3OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtb2RpZmllZCBmb3IgdjItdHJhcC4KICAgCjIwMDAtMDEtMTcgMTI6NDcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGFkZGVkIHYyIHRyYXAKICAgCjIwMDAtMDEtMTcgMDk6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBEaXNjYXJkICJ0b28tbGF0ZSIgcmVzcG9uc2VzIGZyb20gb3ZlcmxhcHBlZCByZWdpb25zLgogICAKMjAwMC0wMS0xNyAwNjoxMyAgZGF2ZXMKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAobWFuL3NubXB0cmFwZC44KTogRGVzY3JpYmUgZGVmYXVsdCBsb2dnaW5nIGJlaGF2aW91ci4KICAgCjIwMDAtMDEtMTQgMTY6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogcmVtb3ZlIGV4cG9ydCBjb250cm9sIG5vdGUgYWJvdXQgREVTLgogICAKMjAwMC0wMS0xNCAxNjowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGltcGxlbWVudCBERVMgZW5jcnlwdGlvbi4KICAgCjIwMDAtMDEtMTQgMTE6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogZ3JlcCBmb3IgY29uZmlndXJlIGZsYWdzCiAgIAoyMDAwLTAxLTE0IDA5OjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgc211eC9zbm1wX2JncC5jCiwgc211eC9zbm1wX29zcGYuYywgc211eC9zbm1wX3JpcDIuYzoKCiAgIFNtYWxsIGNvbXBpbGUgZml4IGFuZCBkZWJ1ZyBtZXNzYWdlIHJlc3RvcmF0aW9uLgogICAKMjAwMC0wMS0xMyAwNjozMyAgZGF2ZXMKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcGxpYi9wYXJzZS5jKTogTW9yZSBjb21wbGV0ZSBoYW5kbGluZyBvZiB1bmxvYWRpbmcgTUlCIG1vZHVsZXMuCiAgIAoyMDAwLTAxLTEzIDA2OjMxICBkYXZlcwoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHNubXBsaWIvcGFyc2UuW2NoXSk6IFVubG9hZCBNSUIgbW9kdWxlCiAgIAkoTi5COiBTb21ld2hhdCBzaW1wbGlzdGljIHdpdGggcmVnYXJkIHRvIG11bHRpcGx5LWxvYWRlZCBub2RlcykKICAgCjIwMDAtMDEtMTMgMDU6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBObyBnZXRfYm9vdHRpbWUgc3VwcG9ydCBmb3IgY3lnd2luICh5ZXQpLiBIb3BlZnVsbHkgYSB0ZW1wb3JhcnkgY29uZGl0aW9uLgogICAKMjAwMC0wMS0xMyAwMjo0NiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IFJlbW92ZSBleHRyYW5lb3VzIGJyYWNrZXQuCiAgIAoyMDAwLTAxLTEyIDIxOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgYXBwcy9zbm1wdXNtLmMKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oCjoKCiAgIFVzZSBERUJVR01TR09JRCBsaWJlcmFsbHksIHJlcGxhY2luZyBzcHJpbnRfb2JqaWQ7IHNtYWxsIHNwZWVkdXAuCiAgIAoyMDAwLTAxLTEyIDExOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBjYXN0IG1hbGxvYyByZXR1cm5zLgogICAKMjAwMC0wMS0xMSAxNTowNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBVc2UgQ0ZMQUdTIHdoZW4gbGlua2luZyAoY291bGQgaGF2ZSBwcm9maWxlIHN3aXRjaCwgZXRjKS4KICAgCjIwMDAtMDEtMTEgMTA6MzcgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvZ2V0LnQ6CgogICByZW1vdmUgYmFkIHNlc3Npb24gdGVzdCAtIHNlc3Npb24udCBoYXMgaXQgYWxyZWFkeSAtIG5vdGUgdGhlIGNhbGwgdG8gZ2V0aG9zdGJ5bmFtZSBjYW4gaGFuZyBmb3Igc29tZSB0aW1lIGlmIEROUyBpcyBub3Qgc2V0dXAgY29ycmVjdGx5IC0gYW55b25lIGtub3cgYSB3YXkgYXJyb3VuZCB0aGlzPwogICAKMjAwMC0wMS0xMSAwOToxMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgKOgoKICAgUmVzdG9yZSBtZW1kdXAgdXNhZ2UgdG8gaXRzIGZvcm1lciBsdXN0ZXIuCiAgIAoyMDAwLTAxLTExIDA4OjEwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSW5pdCBmaWxlIGNvdW50IGF0IHplcm8sIG5vdCBieSBpbmNyZW1lbnRpbmcgcmFuZG9tIHZhbHVlLgogICAKMjAwMC0wMS0xMSAwNzo1OSAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBLZWVwIHdpbjMyIHJlbGVhc2UgYnVpbGQgZnJvbSBicmVha2luZy4KICAgCjIwMDAtMDEtMTEgMDc6NDQgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgQWRkIElOX1VDRF9TTk1QX1NPVVJDRSB0byBub3QgYnJlYWsgV2luMzIgYnVpbGRzLgogICAKMjAwMC0wMS0xMSAwMTo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBHbGVhbiByZWZzIHRvIG1pYklJLm8gZnJvbSB0aGlzIG1ha2VmaWxlLgogICAKMjAwMC0wMS0xMSAwMTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgc25tcGxpYi92YWNtLmMKOgoKICAgVHJvbGxpbmcgZm9yIG1hbGxvYyBlcnJvcnM7IG1vcmUgZ3JhY2VmdWwgZGVncmFkYXRpb24uCiAgIAoyMDAwLTAxLTEwIDE2OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc2NhcGkuaCwgc25tcF9hcGkuYwo6CgogICBzbm1wX2FwaS5jICAgIC0gYmV0dGVyIGNvbW1lbnQgZm9yIHNubXBfb2lkX2NvbXBhcmUuCiAgIHJlYWRfY29uZmlnLmMgLSByZW1vdmUgc2l6ZW9mKHVfY2hhcikgZnJvbSBtYWxsb2Mgc2l6ZSBjYWxjLgogICBzY2FwaS5oICAgICAgIC0gc3BlbGwgY2hlY2suCiAgIAoyMDAwLTAxLTEwIDE2OjMxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIHNubXB0cmFuc2xhdGUuYyAgLSBzaW1wbGUgZGVmYXVsdCBjYXNlLgogICAKMjAwMC0wMS0xMCAxNjozMSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIHNubXB0cmFuc2xhdGUuMSAgIC0gcmVtb3ZlIGp1bmsgbGluZS4KICAgCjIwMDAtMDEtMTAgMTY6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHVjZERlbW9QdWJsaWMuYyAtIHJlbW92ZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBmcm9tIHdyaXRlIG1ldGhvZC4KICAgc25tcF92YXJzLmMgICAgIC0gcHJvcGVyIG9pZCBjb21wYXJlOyBubyBjb3B5IGZyb20gc2F2ZSBpZiBvaWRzIGV4YWN0IG1hdGNoCiAgIHNubXBkLmMgICAgICAgICAtIHRlcm1pbmF0ZSBzdGF0ZW1lbnQuCiAgIAoyMDAwLTAxLTEwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFrZSAtLXdpdGhvdXQtZWZlbmNlIHdvcmsuCiAgICAgLSBjaGVjayBmb3IgLWxuc2wgbW9yZSBleHBsaWNpdGx5LgogICAKMjAwMC0wMS0xMCAxNTozNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICAtIChTdjNjb25maWcpOiByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlLgogICAKMjAwMC0wMS0xMCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzdGRsaWIuaCBhbmQgbWFsbG9jLmguCiAgIAoyMDAwLTAxLTEwIDE0OjQwICBtYXJ6CgogICAqIHBlcmwvU05NUC9NQU5JRkVTVDoKCiAgIGFkZCBtaWJsb2FkCiAgIAoyMDAwLTAxLTEwIDE0OjM0ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L21pYmxvYWQudDoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMTAgMTQ6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QLzogQlVHLCBNQU5JRkVTVCwgTUFOSUZFU1QuU0tJUCwKICAgTWFrZWZpbGUuUEwsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cywgVE9ETwosIHBlcmxzbm1wLmgsIHR5cGVtYXAsIGV4YW1wbGVzL2FzeW5jMS5wbCwKICAgZXhhbXBsZXMvYXN5bmMyLnBsLCBleGFtcGxlcy9pcGZvcndhcmQucGwsCiAgIGV4YW1wbGVzL21pYnRyZWUucGwsIGV4YW1wbGVzL21pYndhbGsucGwsCiAgIGV4YW1wbGVzL3BpbmdtaWIucGwsIGV4YW1wbGVzL3RhYmxld2Fsay5wbCwKICAgZXhhbXBsZXMvdGVzdGxlYWsucGwsIGhpbnRzL2lyaXgucGwsIGhpbnRzL3NvbGFyaXMucGwKLCB0L1JFQURNRSwgdC9hc3luYy50LCB0L2dldC50LCB0L2dldG5leHQudAosIHQvbWliLnQsIHQvbWliLnR4dCwgdC9zZXNzaW9uLnQsIHQvc2V0LnQKLCB0L3NubXBkLmNvbmY6CgogICBDaGVja2luZyBpbiBTTk1QLTMuMS4wYjEKICAgCjIwMDAtMDEtMTAgMTM6MjEgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVhbGlmeSB1c2Ugb2Ygd2l0aHZhbCB0byBkZWZpbmUgbGlicmFyeSBhbmQgaW5jbHVkZSBzZWFyY2ggcGF0aHMuCiAgIAoyMDAwLTAxLTEwIDEzOjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBBbGxvdyBNU1ZDKysgNS54IHVzZXJzIHRvIGJ1aWxkIHVzaW5nIHRoaXMgd29ya3NwYWNlLgogICAKMjAwMC0wMS0xMCAwNjoxMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiBSZS1zdHJ1Y3R1cmUgZ2V0X3VwdGltZSgpIHRvIGNhY2hlIGJvb3QgdGltZS4KICAgCjIwMDAtMDEtMTAgMDM6MDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IENvdW50IG51bWJlcnMgb2YgdmFyaWFibGVzIHJlcXVlc3RlZC9zZXQKICAgCjIwMDAtMDEtMTAgMDI6MzEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERpZmZlcmVudGlhdGUgbWF4LXJlcGV0aXRpb24gYW5kIG5vbi1yZXBlYXRlciBlcnJvcnMuCiAgIAoyMDAwLTAxLTEwIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkuaCk6IFJlLXJlbW92ZSByZWR1bmRhbnQgcHJvdG90eXBlLgogICAKMjAwMC0wMS0wOCAxMjowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgVXNlIGtubGlzdCBpZmYgYWl4NCBhbmQgSEFWRV9LTkxJU1QgW25vdCBjb21wbGV0ZSB3L28gY29uZmlndXJlIG1vZHNdCiAgIAoyMDAwLTAxLTA4IDExOjQ0ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBidWlsZCBmb3IgTGludXggUmVkSGF0IDYuMSAoY2FudCBsaW5rIGxpYndyYXAgd2l0aG91dCBsaWJuc2wpLgogICAKMjAwMC0wMS0wOCAwMDo1NiAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IGJ1Z2ZpeCBmb3IgYSBidWdmaXggYnVnCiAgIAoyMDAwLTAxLTA3IDIzOjQzICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGNvbmZpZ3VyZS5pbjogc29tZSBtaXNzaW5nICJ4IiBpbiB0ZXN0cyBmb3IgLS13aXRoLW9wZW5zc2wgYW5kCiAgIAktLWRpc2FibGUtZGV2ZWxvcGVyCiAgIAoyMDAwLTAxLTA3IDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogcHJvcGVybHkgZ3JvdXAgcncvcm91c2VycyBpbnRvIHVzbSBub3QgdjEvdjJjLgogICAKMjAwMC0wMS0wNyAxMToyMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGhhbmRsZSBtdWx0aXBsZSB0cmFuc2xhdGVkIE9JRHMuCiAgIAoyMDAwLTAxLTA3IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IHVwZGF0ZSB0byB2NCBBUEkgc2V0IGNvZGUuCiAgIAoyMDAwLTAxLTA3IDA5OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBiZXR0ZXIgaGFuZGxpbmcgb2Ygd3JpdGUgZmFpbHVyZXMuCiAgIAoyMDAwLTAxLTA2IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IHVucXVvdGVkIHF1b3RlcyBxdW90ZWQuCiAgIAoyMDAwLTAxLTA2IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogcmVtb3ZlZCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAwLTAxLTA2IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IHkyayBidWcuCiAgIAoyMDAwLTAxLTA2IDEzOjE0ICBtYXJ6CgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIHVwZGF0ZSBjb25maWcgYWNjZXNzIHN5bnRheCAoZXhhY3QpCiAgIAoyMDAwLTAxLTA2IDEzOjA3ICBtYXJ6CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB3ZSBzaG91bGQgbm90IHByaW50IHRvIHN0ZGVyciBpZiBzdGRlcnIgbG9nZ2luZyBpcyBkaWFibGVkIC0gdGhpcyB0aG93cyBvZmYgdGhlIGFsaWdubWVudCBvZiB0ZXN0IG91dHB1dCBmb3IgJ21ha2UgdGVzdCcgaW4gYm90aCB1Y2Qtc25tcCBhbmQgUGVybC9TTk1QCiAgIAoyMDAwLTAxLTA2IDEyOjU2ICBtYXJ6CgogICAqIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWc6CgogICB1cGRhdGUgc3ludGF4IChleGFjdCkKICAgCjIwMDAtMDEtMDYgMDg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuaCk6IHByb3Blcmx5IHdyYXAgc3RydWN0LmggaW5jbHVkZSBkaXJlY3RpdmUgZm9yCiAgICAgbm9uLXNvdXJjZS1kaXJlY3RvcnkgaW5jbHVkZS4KICAgCjIwMDAtMDEtMDYgMDE6NTggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmM6CgogICAtIChtaWJncm91cC9taWJJSS5jKTogUmVtb3ZlIHJlZHVuZGFudCBmaWxlCiAgIAoyMDAwLTAxLTA0IDIzOjUxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGltcGxlbWVudCB0cmFuZCBoYW5kbGVycyBmb3Igd2luMzIKICAgCjIwMDAtMDEtMDQgMjM6NTAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6ICNpZmRlZiBzb21lIHZhcmlhYmxlcyBub3QgdXNlZCB1bmRlciB3aW4zMgogICAKMjAwMC0wMS0wNCAyMjoxMiAgbmJhCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgc25tcGQuY29uZi41LmRlZjogcmVtb3ZlIGFsbCB0cmFjZXMgb2Ygc2VjdXJpdHkKICAgCW1vZGVsICJhbnkiIGluICJncm91cCIgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzCiAgIAoyMDAwLTAxLTA0IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNhbmRlciBTdGVmZmFubjoKICAgICAtIEFkZCAtSS91c3IvaW5jbHVkZS9ycG0gYmVjYXVzZSBvZiBiYWRseSB3cml0dGVuIHJwbSBoZWFkZXIgZmlsZXMuCiAgIAoyMDAwLTAxLTA0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBkZWFsIHdpdGggYmxvY2tpbmcgYmV0dGVyIGluIHNubXBfYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KICAgCjIwMDAtMDEtMDQgMTA6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHN0cnVjdC5oCiAgIAoyMDAwLTAxLTA0IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKFJFQURNRSwgRkFRKTogSmFwYW4gbWlycm9yIGxvY2F0aW9uIGNoYW5nZS4KICAgCjIwMDAtMDEtMDMgMTU6MzkgIG5iYQoKICAgKiBtYW4vOiBzbm1wY21kLjEsIHNubXB0cmFuc2xhdGUuMSwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBjbWQuMTogYWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwbGljYXRpb25zCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBleHBsYWluIC1UIG91dHB1dHMKICAgLSBzbm1wdHJhcGQuY29uZi41LmRlZjogZGVmYWx0IHRyYXBoYW5kbGVyIGlzIGltcGxlbWVudGVkCiAgIAoyMDAwLTAxLTAzIDE1OjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGFsc28gbm90ZSBURVhUVUFMIENPTlZFTlRJT04gaW4gLVRkIG91dHB1dAogICAKMjAwMC0wMS0wMyAxNTozMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IEZpbGUgdmFyaWFibGUgYmVpbmcgbGVmdCBwb2ludGluZyBpbnRvIHRoZSBzdGFjay4KICAgCUlnbm9yZSAuaW5kZXggZmlsZSBvbiBXSU4zMiBwbGF0Zm9ybQogICAKMjAwMC0wMS0wMyAxNTozMCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIHN5c3RlbS5oOiBhZGQgcHJvdG90eXBlIGZvciBzdHJjYXNlY21wCiAgIAoyMDAwLTAxLTAzIDE1OjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiB3b21iYXQuYywgd29tYmF0Lmg6CgogICAtIHdvbWJhdC5bY2hdOiBjb3JyZWN0IHByb3RvdHlwZSBmb3Igd29tYmF0X3BhcnNlX2NvbmZpZwogICAKMjAwMC0wMS0wMyAxNToyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIG1pYklJLmg6IGFkZCBwcm90b3R5cGUgZm9yIGluaXRfbWliSUkKICAgCjIwMDAtMDEtMDMgMTU6MjYgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiBhZGQgYSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcgogICAKMjAwMC0wMS0wMyAxNToyNiAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogaW5jbHVkZSBhZ2VudF9yZWdpc3RyeS5oIG9ubHkgb25jZQogICAKMjAwMC0wMS0wMyAxNToyMyAgbmJhCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIEVYQU1QTEUuY29uZi5kZWY6IGFkYXB0IHRvIGNoYW5nZXMgaW4gdmFsaWQgdmFjbSBzeW50YXgKICAgCjE5OTktMTItMzEgMTM6MjcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgQXBwbHkgc29tZSBOZXRCU0QgMS4zLngsIDEuNCBwYXRjaGVzIGMvbyBHcmVhIEEuIFdvb2RzIDx3b29kc0BwbGFuaXguY29tPgogICAKMTk5OS0xMi0zMSAxMjo0MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IGJ1ZyAjNDg6IG5vIHN0cmNhc2VjbXAvc3RybmNhc2VjbXAgZm9yIFNpbml4CiAgIAoxOTk5LTEyLTMxIDEwOjM2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IHdhcm5pbmdzIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMi0zMSAxMDozMyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBBdXRvY29uZiBwYXRjaCBjL28gQWxiZXJ0IENoaW4tQS1Zb3VuZyA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgogICAKMTk5OS0xMi0zMSAxMDoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBGaXggYnVnICMxMjUgLSBpbnNlcnQgdW5kZXJzY29yZSBpbnRvIHN0cnVjdCBzbm1wX2lwYWRkciBtZW1iZXIgbmFtZXMuCiAgIAoxOTk5LTEyLTMxIDA5OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBBcHBseSBwYXRjaCBwcm92aWRlZCBieSBTZXJnIFRydXNobmlrb3YgPHNhdEB6bWFpbC5ydT4gZm9yIEFJWCA0LjIuMSBrbmxpc3QKICAgCjE5OTktMTItMzEgMDk6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYzoKCiAgIEZpeCBidWcgIyAxMjIKICAgCjE5OTktMTItMzAgMTI6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgc25tcGxpYi90b29scy5jOgoKICAgRml4IGNvbXBpbGUgZXJyb3JzLgogICAKMTk5OS0xMi0zMCAwNzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB1c2FnZSBsaW5lIG9yZGVyIG1lc3NlZCB1cCwgYXMgcG9pbnRlZCBvdXQgYnkgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMi0yOCAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogcmVtb3ZlIHRoZSAhIGluIGZyb250IG9mIGluX2Ffdmlldywgd2hpY2ggY2hhbmdlZC4KICAgCjE5OTktMTItMjMgMDg6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIG5vbiA4MC1jb2x1bW4gd3JhcHBlZCB2ZXJzaW9uLgogICAKMTk5OS0xMi0yMiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIGZpcnN0IHBhc3MgYXQgdm1zdGF0IHN1cHBvcnQgZm9yIHNvbGFyaXMuCiAgIAoxOTk5LTEyLTIyIDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBpbmNyZWFzZSBtYXggdmFycyB0byA2NCAod2FzIDE2KS4gIEkgaGF2ZSBhCiAgICAgdGFibGUgd2l0aCBtb3JlIHRoYW4gdGhhdCBudW1iZXIgaW4gY29sdW1ucywgd2hpY2ggYnJlYWtzIHNubXB0YWJsZS4KICAgCjE5OTktMTItMjIgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gKG1hc3Rlci5jKTogdXNlIHNubXBfc2Vzc19vcGVuIGZvciB0aGUgc2Vjb25kIHRyeSBhdCBvcGVuaW5nIHRoZQogICAgIG1hc3RlciBwb3J0LgogICAKMTk5OS0xMi0yMiAwNTo1OCAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gdmFjbSByb3V0aW5lczogYWxpZ25tZW50IHdpdGggUkZDIG1pYnMsIHByZXBhcmluZyBmb3IgdHJhcCBnZW5lcmF0aW9uCiAgIAlhbmQgYSBiZXR0ZXIgaW50ZWdyYXRpb24gd2l0aCB2YXJpYWJsZSB0cmVlIHdhbGtpbmcKICAgCjE5OTktMTItMjIgMDU6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIHN5c3RlbV9taWIuYzogdXNlIHNvbWUgI2RlZmluZXMgaSBwbGFjZSBvZiBudW1iZXJzCiAgIAoxOTk5LTEyLTIyIDA1OjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IG5hdWdodHksIG5hdWdodHkgTmllbHMsIGp1c3QgcmVpbmRlbnRpbmcgLi4uCiAgIAoxOTk5LTEyLTIyIDAyOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIGhyX3N0b3JhZ2UuYzoga2lsbCBhIGR1bW15IHZhbHVlCiAgIAoxOTk5LTEyLTIyIDAyOjQxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICAtIG1lbW9yeV9mcmVlYnNkMi5jOiBtYWtlIGl0IHdvcmsgKGFnYWluKSBmb3IgRnJlZUJTRC0yOi0pCiAgIAoxOTk5LTEyLTIxIDAyOjM3ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcGQuYywgc211eC5jLCBzbm1wX2FwaS5jOiB0YWtlIGF3YXkgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMi0yMCAxNzozNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTEgKQogICAKMTk5OS0xMi0yMCAxNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3RyYXAuaAogICAKMTk5OS0xMi0yMCAxNzozMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIFNNSXYyIHVwZGF0ZXMuCiAgIAoxOTk5LTEyLTIwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIG5vdGUuCiAgIAoxOTk5LTEyLTIwIDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRGlnaXRhbCBVbml4IGhhY2sgZm9yIGJhZCByZWN2ZnJvbSBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTktMTItMjAgMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBtYWtlIGEgdGhpbmdzIHNpemVfdCBpbnN0ZWFkIG9mIHVfaW50IChmb3IgNjRiaXQgY29kZSkuCiAgIAoxOTk5LTEyLTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBtYWtlIHVwdGltZSBhIGxvbmcgZm9yIDY0Yml0IGFyY2hpdGVjdHVyZXMuCiAgIAoxOTk5LTEyLTIwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBJUEZXQUNDLU1JQi50eHQgLT4gVUNELUlQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmM6CgogICAtIChpcGZ3YWNjLmMpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgogICAKMTk5OS0xMi0yMCAxMzozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRhYmxlIHRvIG9uZSBsZXZlbCBkZWVwZXIgdW5kZXIgbWliIG5vZGUuCiAgIAoxOTk5LTEyLTIwIDEzOjI2ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELUlQRldBQ0MtTUlCLmluYywgVUNELUlQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCBhbmQgdXBkYXRlZCBmcm9tIElQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0byBVQ0QtSVBGV0FDQy1NSUIudHh0CiAgIAoxOTk5LTEyLTIwIDEzOjIzICBoYXJkYWtlcgoKICAgKiBtaWJzL0lQU0VDLU1JQi50eHQ6CgogICAtIChJUFNFQy1NSUIudHh0KTogcmVtb3ZlZAogICAKMTk5OS0xMi0yMCAwNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1vdmVkIGtlcm5lbC5vIGludG8gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCiAgIAoxOTk5LTEyLTIwIDA2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBGb3JjZSBzZXQgdG8gMSBmb3IgLUQgc28gbXVsdGlwbGUgc3dpdGNoZXMgY2FuCiAgICAgYmUgZ2l2ZW4gKGllLCBkb24ndCB0b2dnbGUgdGhlIHZhbHVlKS4KICAgCjE5OTktMTItMjAgMDQ6MTUgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBzbm1wX3ZhcnMuYywKICAgbWliZ3JvdXAvbWliSUkuaCwgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL2lwdjYuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS90Y3AuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIC0gKGFnZW50X3RyYXAuYyBzbm1wX3ZhcnMuYyBtaWJJSS5bY2hdIG1pYklJLyouYyBtaWJJSS9zeXNPUlRhYmxlLmgpOgogICAgIC0gVXNlIFNOTVBfT0lEIHByZWZpeCBkZWZpbml0aW9ucyBpbiBPSUQgc3BlY2lmaWNhdGlvbnMuCiAgICAgLSBSZWdpc3RlciB0aGUgdmFyaW91cyBNSUItMiBtb2R1bGVzIHNlcGFyYXRlbHkgaW4gc3lzT1JUYWJsZS4KICAgCjE5OTktMTItMjAgMDM6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgLSAoYWdlbnR4L1JFQURNRS5hZ2VudHgpOiBVcGRhdGVkIHRvIGRlc2NyaWJlIGN1cnJlbnQgc3RhdHVzLgogICAKMTk5OS0xMi0xNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGNvbXBsZXRlbHkgcmVzdHJ1Y3R1cmVkLgogICAgIC0gZHJhc3RpY2x5IHJlZHVjZXMgbWVtb3J5IHVzYWdlIGZvciBsYXJnZSBkYXRhIHNldHMgKDEvMykuCiAgIAoxOTk5LTEyLTE3IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMpOgogICAgIC0gaW5jbHVkZSAic25tcF9hbGFybS5oIiBmb3IgbWliIG1vZHVsZXMgdGhhdCBuZWVkIHRoZSBjYWxsYmFjayBkZWYuCiAgIAoxOTk5LTEyLTE3IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gLUkuCiAgIAoxOTk5LTEyLTE3IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IG1pc3NpbmcgISBvcGVyYXRlciBvbiBzaWduYWwgdGVzdC4KICAgCjE5OTktMTItMTcgMTU6NDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdC5jCiwgdm1zdGF0X2ZyZWVic2QyLmM6CgogICBObyBkdW1teSB2YWx1ZXMgZm9yIEZyZWVCU0QsIHBsZWFzZS4KICAgCjE5OTktMTItMTcgMTU6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKLCB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIEFkZCBCaWxsIEZ1bWVyb2xhJ3MgcGF0Y2ggZm9yIEZyZWVCU0QgNC54IHRvIHVzZSBzd2FwaW5mby4KICAgSW5jbHVkZSBGcmVlQlNEIDQueCBzcGVjaWZpYyBtZW1vcnkgYW5kIHZtc3RhdCB3aGVuIGJ1aWxkaW5nIHRoYXQgYWdlbnQuCiAgIAoxOTk5LTEyLTE3IDE0OjIzICBtc2xpZmNhawoKICAgKiBtYW4vOiBSRUFETUUsIG1pYl9hcGkuMywgc25tcC5jb25mLjUuZGVmLAogICBzbm1wY21kLjEsIHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICBzbm1wbmV0c3RhdC4xLCBzbm1wdGVzdC4xLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEKOgoKICAgRml4ZWQgYSBmZXcgc3BlbGlsbmcgZXJyb3JzLgogICAKMTk5OS0xMi0xNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAtIChzbm1wX2FnZW50X2FwaS4zKTogcmUtc3RydWN0dXJlIGJhc2VkIG9uIHJlY2VudCBjaGFuZ2VzLgogICAKMTk5OS0xMi0xNyAxMDoxOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBzZWNvbmQgcGFzcy4KICAgCjE5OTktMTItMTcgMTA6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZWQgLVIgZnJvbSB0aGUgLWggb3V0cHV0LgogICAKMTk5OS0xMi0xNyAxMDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IGNoYW5nZWQgaGVscCBsaW5lIG9mIGNyZWF0ZVVzZXIgdG8gc2VwZXJhdGUgREVTIHRva2VuCiAgICAgZnJvbSB0aGUgcGFzc3BocmFzZS4KICAgCjE5OTktMTItMTcgMTA6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBwdXQgc25tcGQubyBpbnRvIHRoZSBvYmplY3QgbGlzdCwgYW5kIHJlbW92ZSBpdCBmcm9tCiAgICAgZGlyZWN0IGNvbXBpbGF0aW9uIGluIHRoZSBDQyBsaW5rIGxpbmUuCiAgIAoxOTk5LTEyLTE3IDEwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHJlb3JkZXIgaW5pdCgpIHJvdXRpbmVzIGZvciAtSCB0byBwcmV2ZW50IHNlZ2ZhdWx0aW5nLgogICAKMTk5OS0xMi0xNyAxMDoxMSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogUEVSU0lTVEVOVF9ESVJFQ1RPUlkgdG9rZW4gYWRkZWQuCiAgIAoxOTk5LTEyLTE3IDEwOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGZpcnN0IHBhc3MgYXQgY2hhbmdlcy4KICAgCjE5OTktMTItMTcgMDc6NDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGNyZWF0ZVVzZXIuCiAgIAoxOTk5LTEyLTE3IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0aGUgZmlsZSBkaXJlY3RpdmUuCiAgIAoxOTk5LTEyLTE3IDA3OjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCByb2NvbW11bml0eSwgcndjb21tdW5pdHksIHJvdXNlciwgcnd1c2VyLgogICAKMTk5OS0xMi0xNyAwNzoxMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGEgYnVuY2ggb2YgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjE5OTktMTItMTcgMDc6MDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBtZW50aW9uIHRoYXQgLUlSIGFuZCAtSWIgYXJlIGFjdHVhbGx5IHVzZWQgYnkgZGVmYXVsdC4KICAgCjE5OTktMTItMTcgMDc6MDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSSBhbmQgLU8gZmxhZ3MuCiAgIAoxOTk5LTEyLTE3IDAzOjIyICBuYmEKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICAtIGxpYnNubXAuZGVmOiBhZGQgc29tZSBmdW5jdGlvbiBuYW1lcwogICAKMTk5OS0xMi0xNyAwMjoxOCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBtYWtlIHRoZSBvaWRzIGdpdmVuIHRvIHRyYXBkIGhhbmRsZXJzIHByb3Blcmx5IC4wIHRlcm1pbmF0ZWQuCiAgIAlBZGQgYSBTTk1QLUNPTU1VTklUWS1NSUI6OnNubXBUcmFwQWRkcmVzcy4wCiAgIAlBZGQgc3lzbG9nIG9mIHYyIHRyYXBzIGFuZCBpbmZvcm1zCiAgIAoxOTk5LTEyLTE3IDAyOjE0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGNsZWFudXAgb2YgdGhlICJuZXciIG1pYiB3YWxrIHRvIGRldGVybWluZSBmaWVsZHMuIE1ha2UgaXQKICAgCWRlZmF1bHQgKGRvbid0IGV2ZW4gZG9jdW1lbnQgdGhlIC1DIGNvbXBhdGliaWxpdHkgb3B0aW9uKS4gSWdub3JlCiAgIAlub3QtYWNjZXNzaWJsZSBmaWVsZHMgaW4gdGhlIHdhbGsuCiAgIAoxOTk5LTEyLTE3IDAyOjA5ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIHVzYWdlKCkgY2FsbHMuCiAgIAoxOTk5LTEyLTE3IDAyOjA4ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGtpbGwgdGhhdCB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiwgaXQganVzdCBhZGRzIHRvbyBtYW55CiAgIAljb25kaXRpb25hbHMuIFByb3Blcmx5IG91dHB1dCBhbiBlbXB0eSBzdHJpbmcgaW5kZXguCiAgIAoxOTk5LTEyLTE2IDIzOjEwICBuYmEKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gc25tcHYzLmM6IGEgbW9yZSBzcGV2aWZpYyBoZWxwIG1lc3NhZ2UgZm9yIGRlZlZlcnNpb24KICAgCjE5OTktMTItMTYgMjM6MDkgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IGEgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24gcHJvYmxlbSBwcmludGluZyBvaWRzCiAgIAoxOTk5LTEyLTE2IDIzOjA4ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogYmUgZXhwbGljaXQgaW4gdGhlIC10IHdhcm5pbmcKICAgCjE5OTktMTItMTYgMjM6MDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIHNtdXguW2NoXTogZml4IHNvbWUgcHJvdG90eXBlcyBhbmQgaW5jbHVkZXMuCiAgIAoxOTk5LTEyLTE2IDIzOjA2ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogXG4gdGVybWluYXRlIHNvbWUgbG9nIG1lc3NhZ2VzCiAgIAoxOTk5LTEyLTE2IDIzOjA1ICBuYmEKCiAgICogYWdlbnQva2VybmVsLmM6CgogICAtIGtlcm5lbC5jOiBvdXRwdXQgZXJyb3Igc3RyaW5nLCBub3QgbnVtYmVyCiAgIAoxOTk5LTEyLTE1IDExOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBSZXBsYWNlIGtjIGZyb20gbWVtb3J5X3NvbGFyaXMyLmMgd2l0aCBrc3RhdF9mZCwgZGVmaW5lZCBpbiBrZXJuZWxfc3Vub3M1LmMuCiAgIAoxOTk5LTEyLTE1IDA5OjU2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgIEFkZCB0aW1lIG1hcmtlciBjcmVhdGUsIHNldCwgYW5kIGRlbHRhIHRpbWUgY2hlY2sgbWV0aG9kcy4KICAgCjE5OTktMTItMTUgMDk6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICBSZW1vdmUgc25tcF9sb2dfc3lzbG9nLCBzbm1wX2xvZ19maWxlbG9nLCBzbm1wX2xvZ19zdGRlcnJsb2c7CiAgIFNpbXBsaWZ5IHNubXBfbG9nX3N0cmluZy4KICAgCjE5OTktMTItMTUgMDk6MTkgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgU05NUHYyLU0yTS1NSUIudHh0LAogICBTTk1QdjItUEFSVFktTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0IFNOTVB2Mi1NMk0tTUlCLnR4dCApOiByZW1vdmVkLgogICAKMTk5OS0xMi0xNSAwOToxNyAgaGFyZGFrZXIKCiAgICogbWlicy86IEV0aGVyTGlrZS1NSUIudHh0LCBJUEZJTFRFUi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIuaW5jLCBVQ0QtSVBGSUxURVItTUlCLnR4dDoKCiAgIC0gKEV0aGVyTGlrZS1NSUIudHh0LCBJUEZJTFRFUi50eHQsIFVDRC1JUEZJTFRFUi1NSUIuaW5jLAogICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBFdmVuIG1vcmUgdXBkYXRlcy4KICAgCjE5OTktMTItMTUgMDU6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFNoYXJlIGtzdGF0IGZkIGlmZiB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIgaXMgYWxzbyBjb25maWd1cmVkLgogICAKMTk5OS0xMi0xNSAwNDoyMSAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmM6CgogICBJc29sYXRlIGFuZCByZXRvdWNoIGRlcHJlY2F0ZWQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgIAoxOTk5LTEyLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IGdldCBuZXh0IGluIGxpbmsgbGlzdCBiZWZvcmUgZGVsZXRpbmcgcm9vdC4KICAgCjE5OTktMTItMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtb3ZlIC1sZWZlbmNlIGNoZWNrIHVwIHRvIGZyb250IChsYXN0IGluIGxpbmspLgogICAKMTk5OS0xMi0xNCAxNToxOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRExNT0QgLT4gVUNELURMTU9ECiAgIAoxOTk5LTEyLTE0IDE0OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogcmV2ZXJzZSBnZW5lcmF0ZV9LdSBvcHRpbWl6YXRpb25zLCBhcyB0aGV5IGRvbid0IHdvcmsuCiAgIAoxOTk5LTEyLTE0IDA4OjQxICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSB1cGRhdGVzLgogICAKMTk5OS0xMi0xNCAwODowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGRlZmF1bHRfc3RvcmUuaCwKICAgICBtaWIuYywgbWliLmgpOgogICAgIC0gYXJndW1lbnQgc2h1ZmZsaW5nLi4uCiAgICAgICAtSSBmb3IgaW5wdXQgYXJncyBjcmVhdGVkLCBhbmQgLU9SIG1vdmVkIHRoZXJlLgogICAgICAgLUliIGNyZWF0ZWQuCiAgICAgICAtVEIgY3JlYXRlZCBmb3Igc25tcHRyYW5zbGF0ZSAod2FzIC1CKS4KICAgCjE5OTktMTItMTMgMTY6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBbGxvdyBzcHJpbnRfdmFyaWFibGUgdG8gd29yayBldmVuIGlmIG5vIE1JQiBmaWxlcyB3ZXJlIHJlYWQuCiAgIAoxOTk5LTEyLTEzIDE1OjEyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRmluaXNoIHN5bWJvbCBjb252ZXJzaW9uIHdpdGggbnVtZXJpYyB3aGVuIHN1YnRyZWUgaXMgbGVhZiBub2RlLgogICAKMTk5OS0xMi0xMyAxNDo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBwcm9ibGVtIHByaW50aW5nIElNUExJRUQgaW5kaWNlcyBvZiBPQkpFQ1RJRCB0eXBlLgogICAKMTk5OS0xMi0xMyAxNDoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS13aXRoLWVmZW5jZSBpbXBsZW1lbnRlZC4KICAgICAtIChmb3JjZWQgY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgQ1ZTIGNoZWNrb3V0cykKICAgCjE5OTktMTItMTMgMTM6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTYW5pdHkgY2hlY2tzIGFkZGVkIHRvIF9nZXRfc3ltYm9sLgogICAKMTk5OS0xMi0xMyAxMjowNCAgbXNsaWZjYWsKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQ2xlYW4gYWxzbyByZW1vdmVzIGdlbmVyYXRlZCBkZWZhdWx0X3N0b3JlLjMuaCAuCiAgIAoxOTk5LTEyLTEzIDA5OjU3ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsCiAgIFVDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsIFVDRC1ETE1PRC1NSUIudHh0KToKICAgICAtIEp1ZXJnZW5zIHBhdGNoIHRvIG1vdmUgRExNT0QtTUlCIC0+IFVDRC1ETE1PRC1NSUIgYW5kIC0+IFNNSXYyLgogICAgIC0gbW92ZWQgdG8gdGhlIGV4cGVyaW1lbnRhbCB0cmVlLgogICAKMTk5OS0xMi0xMyAwOTo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgQWRkZWQgcGF0Y2ggZnJvbSBNLk1pY2hhdWQgdG8gdXNlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMuCiAgIAoxOTk5LTEyLTEzIDA0OjQzICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3NtdXgvc211eC5jLAogICBtaWJncm91cC9zbXV4L3NtdXguaDoKCiAgIC0gKGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LltjaF0pOgogICAgIC0gUGF0Y2ggdG8gZ2V0IFNNVVggc3VwcG9ydCB3b3JraW5nIHdpdGggdGhlIG5ldyBhZ2VudCBhcmNoaXRlY3R1cmUuCiAgICAgICBUaGlzIGlzIHByb2JhYmx5IG5vdCBUaGUgUmlnaHQgV2F5IFRvIERvIFRoaW5ncyBOb3csIGJ1dCBpdCB3b3Jrcy4KICAgICAgIFRoYW5rcyB0byBOaWNrIEFtYXRvIGFuZCBNaWtlIE1pY2hhdWQuCiAgIAoxOTk5LTEyLTEzIDAzOjE4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGVudGVycHJpc2UgT0lEIHdoZW4gc2VuZGluZyB0cmFwcwogICAKMTk5OS0xMi0xMyAwMzoxNyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBIYW5kbGUgZGVsZWdhdGVkIE1JQiByZWdpb25zIHByb3Blcmx5IHdoZW4gc3BsaXQuCiAgIAoxOTk5LTEyLTEwIDEzOjAzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgRml4IEhQLVVYIHByb2JsZW0gd2l0aCBpcERlZmF1bHRUVEwuCiAgIAoxOTk5LTEyLTEwIDEwOjQ0ICBtYXJ6CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAoc25tbGliL3NubXBfYXBpLmMpOiBmaXggYnVnIGluIF9zZXNzX2NvcHkgd2hlcmUgcG9pbnRlcnMgdGhhdCB3ZXJlIG5vdCBvd25lZCBieSBuZXdseSBjcmVhdGVkIHNlc3Npb24gY291bGQgZ2V0IG1pc3Rha2VubHkgZnJlZWQgaWYgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZHVyaW5nIHNlc3Npb24gY29weSAtIGFsc28gZWxpbWluYXRlIHNvbWUgcmVkdW5kYW50IGNvcHlpbmcgb2Ygc2VjdXJpdHl7QXV0aHxQcml2fUtleSBkYXRhCiAgIAoxOTk5LTEyLTEwIDEwOjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBBcHBseSBEYXZlJ3MgcGF0Y2ggdG8gZml4IG1heCB2YXJiaW5kcyB0ZXN0aW5nIG9uIEdFVEJVTEsuCiAgIAoxOTk5LTEyLTEwIDA3OjI4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEZpeCB0byBidWlsZCBleGVjdXRhYmxlIGFnZW50IG9uIEhQLVVYLgogICAKMTk5OS0xMi0xMCAwMzoxOSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICAtICh2YXJpb3VzKTogY2hhbmdlcyB0byBjb21waWxlIHNubXBkIHdpdGggVkMrKyA1LjAgKFJlbGVhc2UgbW9kZSkKICAgCjE5OTktMTItMTAgMDM6MTAgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IGFkZCBzb21lIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVycwogICAKMTk5OS0xMi0xMCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCiAgIAoxOTk5LTEyLTEwIDAzOjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSBwYXNzLmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgogICAKMTk5OS0xMi0xMCAwMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gbWFzdGVyLmM6IGFkZCBhIG1pc3NpbmcgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gKGF0IGxlYXN0IGZvciBTb2xhcmlzKS4KICAgCjE5OTktMTItMDkgMTc6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQgb24gaHB1eAogICAKMTk5OS0xMi0wOSAxNjo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBuZXRzdGF0L01ha2VmaWxlLmluKTogZml4IGZvciAtLWVuYWJsZS1zaGFyZWQKICAgCjE5OTktMTItMDkgMTY6MTYgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIGFsbCBpbnN0YW5jZXMgb2Yga2IgdG8ga0IuCiAgIAoxOTk5LTEyLTA5IDE1OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBMZW9uYXJkIEdvbWVsc2t5OgogICAgIC0gZ2VuZXJhdGVfS3UoKSBzcGVlZCBpbXByb3ZlbWVudHMuCiAgIAoxOTk5LTEyLTA5IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOgogICAgIC0gZml4ZWQgLS1lbmFibGUtc2hhcmVkIChhdCBsZWFzdCBvbiBsaW51eCkuCiAgIAoxOTk5LTEyLTA5IDA4OjE0ICBtc2xpZmNhawoKICAgKiBtaWJzLzogRElTTUFOLVNDUklQVC1NSUIudHh0LCBVQ0QtREVNTy1NSUIuaW5jLAogICBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0CjoKCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSnVlcmdlbiBTY2hvZW53YWVsZGVyLgogICAKMTk5OS0xMi0wOSAwNzo0OSAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIHNubXBjbWQuMTogc3VwcG9ydCBNSUI6OmxhYmVsCiAgIAoxOTk5LTEyLTA5IDA3OjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGltcGxlbWVudCBNSUI6OmxhYmVsCiAgIAoxOTk5LTEyLTA5IDA3OjM0ICBkYXZlcwoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zOgoKICAgLSAobWFuL3NubXBfdHJhcF9hcGkuMyk6IEluaXRpYWwgZG9jdW1lbnRhdGlvbiBmb3IgYWdlbnQgdHJhcCBnZW5lcmF0aW9uLgogICAKMTk5OS0xMi0wOCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtYXN0ZXIuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAtIGltcGxlbWVudCBta2RpcmhpZXIoKSBhbmQgdXNlIGl0IGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UgYW5kIGFnZW50eAogICAgICAgc29ja2V0IGZpbGUgY3JlYXRpb24uCiAgIAoxOTk5LTEyLTA4IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcwo6CgogICAtIChtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcyk6CiAgICAgLSBtb3ZlIHRoZSBtYWtlIGRlcGVuZCBwZXJsIHNjcmlwdHMgdG8gdGhlIHRvcCBsZXZlbCB3aGVyZSB0aGV5IG9ubHkKICAgICAgIG5lZWQgdG8gYmUgZWRpdGVkIG9uY2UuCiAgIAoxOTk5LTEyLTA4IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCouLk1ha2VmaWxlLmluKTogQSByZWFsIG1ha2UgZGVwZW5kIHdpdGggbm8gc3NsIGRlcGVuZGFuY2llcywgZXRjLgogICAKMTk5OS0xMi0wOCAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBtb3ZlIHN5cy9wYXJhbSBvdXQgb2YgaWZkZWYgRkRfU0VULgogICAKMTk5OS0xMi0wOCAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMTItMDggMTU6MjYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZCBKdWVyZ2VuLgogICAKMTk5OS0xMi0wOCAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIC0gcmVtZW1iZXJlZCBJTVBMSUVEIGluZGV4ZXMuCiAgICAgLSBwcm9wZXJseSBwcmludCBPSURzIHdpdGggbGVuZ3RoIHByZWZpeGVzIG9uIHBhcnNlZCBPSURzIHNvCiAgICAgICBjdXR0aW5nL3Bhc3Rpbmcgb2YgdGhlbSB3b3Jrcy4KICAgICAtIHByb3Blcmx5IHByaW50IHN0cmluZ3MgYW5kIG9pZHMgdGhhdCBhcmUgSU1QTElFRC4KICAgICAtIHByaW50IHN0cmluZ3MgaW4gZWl0aGVyICcgb3IgIiBxdW90ZXMgZGVwZW5kaW5nIG9uIGlmIHRoZWlyIElNUExJRUQuCiAgIAoxOTk5LTEyLTA4IDE1OjA0ICBtc2xpZmNhawoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGQgbWlzc2luZyBkc2tQZXJjZW50Tm9kZSB0byBEc2tFbnRyeSAodGhhbmtzIHRvCiAgICAgICAgICAgIE1pY2hhZWwgS2lya2hhbSA8c3VwcG9ydEBpd2wuY29tPikuCiAgIAoxOTk5LTEyLTA4IDE1OjAxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBJbmNsdWRlIGdldG9wdC5oIHRvIGRlZmluZSBvcHRhcmcuCiAgIAoxOTk5LTEyLTA4IDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBmaXggLU9zIGFuZCBpbmRleCBiYXNlZCBvaWQgcHJpbnRpbmcgdG8gd29yayBhZ2Fpbi4KICAgCjE5OTktMTItMDggMTQ6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIG1ySW5kZXggSU1QTElFRCBzaW5jZSBpdCBpcyBpbiB0aGUgY29kZS4KICAgCjE5OTktMTItMDggMDk6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHJlZ2lzdGVyIGEgY29uZmlnIHRva2VuIGZvciBzdWZmaXggcHJpbnRpbmcuCiAgIAoxOTk5LTEyLTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBFbGltaW5hdGUgbXVsdGlwbHlpbmcgYnkgc2l6ZW9mKGNoYXIpIG9yIHNpemVvZih1bnNpZ25lZCBjaGFyKTsKICAgYWdlbnR4L2NsaWVudC5jIC0gc25tcF9mcmVlX3ZhcmJpbmQgcmVwbGFjZXMgZnJlZSBpbiBmb3VyIHBsYWNlczsKICAgc25tcHYzL3VzbVVzZXIuYyAtIHVzbV9mcmVlX3VzZXIgcmVwbGFjZXMgZnJlZSBpbiBvbmUgcGxhY2UuCiAgIAoxOTk5LTEyLTA3IDEzOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHdhbGsuMToKCiAgIC0gKHNubXB3YWxrLjEpOiBkb2N1bWVudCAtQ2kgYW5kIC1DcCAoYmFkbHkpLgogICAKMTk5OS0xMi0wNyAxMzo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6CiAgICAgLSBOZXcgYWJpbGl0eSB0byBwZWZvcm0gYSBnZXQgb24gdGhlIHJlcXVlc3RlZCBPSUQgd2hlbiBlaXRoZXIgbm8KICAgICAgIHJlc3VsdHMgYXJlIHJldHVybmVkIG9yIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgYW4gaW5jbHVzaXZlIG9wdGlvbi4KICAgICAtIE5ldyBhYmlsaXR5IHRvIHByaW50IG51bWJlciBvZiB2YXJpYWJsZXMgZm91bmQgYXQgdGhlIGVuZC4KICAgCjE5OTktMTItMDcgMDk6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGNvbnZlcnQgdG8gU01JdjIgYW5kIGNsZWFudXAuCiAgIAoxOTk5LTEyLTA3IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChzeXNPUlRhYmxlLmMpOiBtYWtlIHN5c09ySW5kZXggbm90LWFjY2Vzc2libGUsIGFzIGl0IHNob3VsZCBiZS4KICAgCjE5OTktMTItMDcgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYzoKCiAgIC0gKGhyX290aGVyLmMpOiBzaG9ydGVuIGNwdSBkZXNjcmlwdGlvbiBsZW5ndGguCiAgIAoxOTk5LTEyLTA3IDA4OjI5ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0gYWdlbnQvc25tcGQuW2NoXQogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLltjaF0gc25tcGxpYi9zbm1wX2FwaS5jKToKICAgICAgLSAgVXNlIHRoZSBzYXZlZCBhcHBsaWNhdGlvbiBuYW1lIGZvciByZWdpc3RlcmluZyBjb25maWcgaGFuZGxlcnMKICAgCShOLkI6IFRoaXMgY2hhbmdlIHdpbGwgbmVlZCB0byBiZSBhcHBsaWVkIHRvIE1JQiBtb2R1bGVzIGFzIHdlbGwpCiAgIAoxOTk5LTEyLTA3IDA4OjAzICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB1c20uYzoKCiAgIFVzZSBhcmd2WzBdIHNpbmNlIHRoZSBhcHAgd29udCBiZSBzbm1wZ2V0bmV4dCwgcHJvYmFibHkuCiAgIAoxOTk5LTEyLTA2IDE2OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB1c20uYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBNb3JlIGZ1biB1cGRhdGluZyBNUyBWQyBidWlsZCBvZiBhcHBzIGFuZCBsaWJyYXJ5LgogICAKMTk5OS0xMi0wNiAxNToxMSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi93aW4zMi5kc3cKLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AKLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCjoKCiAgIC0gc3lzdGVtLmMsIGNvbmZpZy5oLCB3aW4zMi5kc3csICouZHNwLCBsaWJzbm1wLmRlZjogY2xlYW5pbmcgdXAgZm9yIFZDIGJ1aWxkcwogICAKMTk5OS0xMi0wNiAxNTowOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYywgc25tcHVzbS5oOgoKICAgQ29udmVydCBVU01fRVJSKiB0byBTTk1QRVJSX1VTTSouCiAgIAoxOTk5LTEyLTA2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGZpeCB1c2FnZSBmb3IgbmV3IGFyZ3MuCiAgIAoxOTk5LTEyLTA2IDE0OjU2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgLSAoU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKTogbWFrZSB2MyB0ZXN0aW5nIHdvcmsgYWdhaW4uCiAgIAoxOTk5LTEyLTA2IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6CiAgICAgLSBtYWtlIHNubXB1c20gdXNhYmxlIGFnYWluLCBjaGFuZ2luZyBhcmd1bWVudHMgc2xpZ2h0bHkuCiAgICAgLSBtYWtlIGl0IGFsc28gdXNlIGRlZmF1bHRzIGZvciBwYXNzcGhyYXNlcywgdXNlciwgZXRjLgogICAKMTk5OS0xMi0wNiAxNDozMiAgbmJhCgogICAqIHdpbjMyLzogYmluLy5jdnNpZ25vcmUsIGxpYi8uY3ZzaWdub3JlOgoKICAgLSAuY3ZzaWdub3JlOiBNYWtlIENWUyBzaWxlbnQgYWJvdXQgaW5zdGFsbGF0aW9uIGZpbGVzCiAgIAoxOTk5LTEyLTA2IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwcmludCBlcnJvciBzdHJpbmdzIHJldHVybmVkIGJ5IGdlbmVyYXRlX0t1KCkuCiAgIAoxOTk5LTEyLTA2IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBkZWZhdWx0IHNwZWNpZmljYXRpb25zIGZvciBhdXRoL3ByaXYgdHlwZXMuCiAgIAoxOTk5LTEyLTA2IDA5OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU2hvdyBhbGwgbm9uLXByaW50YWJsZSBzdWJpZHMgaW4gZHVtcF9vaWRfdG9fc3RyaW5nLgogICBSZWN1cnNlIGNsZWFyX3RyZWVfZmxhZ3Mgb25seSBpZiBuZWNlc3NhcnkuCiAgIAoxOTk5LTEyLTA1IDIxOjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBlbnN1cmUgcHJvcGVyIGJ5dGUgb3JkZXJpbmcgd2hlbiBwYXNzJ2luZwogICAJaXBhZGRyZXNzLgogICAKMTk5OS0xMi0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAtICh2bXN0YXQuYyk6IHJlbW92ZSBkdXBsaWNhdGUgbGltaXRzLmggaW5jbHVkZS4KICAgCjE5OTktMTItMDMgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB1c2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UuCiAgIAoxOTk5LTEyLTAzIDE2OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3dpdGNoIHRvIFBJQyBmcm9tIHBpYy4KICAgCjE5OTktMTItMDMgMTU6MDUgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IHJlbWVtYmVyIHRvIE5VTEwgYSBmcmVlZCBwb2ludGVyCiAgIAoxOTk5LTEyLTAzIDE1OjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gc25tcHRyYXBkX2hhbmRsZXJzLmM6IGEgbGl0dGxlIG5pY2VyIGVycm9yIG1lc3NhZ2UKICAgCjE5OTktMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdCBoYW5kbGluZyBvZiBTSUdIVVAgdHAgcmVjb25maWd1cmUuCiAgIAoxOTk5LTEyLTAyIDE2OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogdHVybiBvbiBSRUdFWF9FWFRFTkRFRC4KICAgCjE5OTktMTItMDIgMDk6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4IGJ1ZyAjODEgLSBjb250aW51ZSBpbnN0YWxsIGFmdGVyIGVycm9yIGNyZWF0aW5nIHBlcnNpc3RlbnQgZGlyZWN0b3J5LgogICAKMTk5OS0xMi0wMiAwNTowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc25tcHYzLmg6CgogICAtIHVzbVVzZXIuYyBzbm1wdjMuW2NoXTogbW92ZSB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIgZnJvbSB0aGUgYWdlbnQKICAgIAl0byB0aGUgbGlicmFyeSwgc28gdGhhdCBzbm1wdHJhcGQgY2FuIHVzZSBpdC4KICAgCjE5OTktMTItMDIgMDQ6NDIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogZml4IHNubXBfY2xvbmVfcGR1MiBieSB1c2luZyB0aGUgc25tcGxpYiB2ZXJzaW9uCiAgIAoxOTk5LTEyLTAyIDA0OjQxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGFjY2Vzc2luZyBhbmQgZnJlZWVpbmcgZW52X3ZhciBtaXNwbGFjZXMgYXJvdW5kIE5VTEwgdGVzdAogICAKMTk5OS0xMi0wMSAxNjozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgVXNlIFNOTVBfTUFYQlVGIHdoZW4gZGVmaW5pbmcgbGFyZ2Ugc3RhdGljIGJ1ZmZlciBzdG9yYWdlLgogICAKMTk5OS0xMi0wMSAxNTo1NSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IGJ1ZyAjMTEyIGFuZCBmaW5pc2ggcGF0Y2ggc3VwcGxpZWQgYnkgQW50aG9ueSBTaGlwbWFuLgogICAKMTk5OS0xMi0wMSAxMDozOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgUHJldmVudCBvdmVyZmxvdyBvZiBvYmplY3QgSUQgaW4gZ2V0X21vZHVsZV9ub2RlLgogICBJbiBmaW5kX2Jlc3RfdHJlZV9ub2RlLCB0cmVhdCByZXN1bHQgZnJvbSByZWN1cnNlZCBjYWxsIHNhbWUgZm9yIG1hdGNoID0gMC4KICAgCjE5OTktMTItMDEgMDY6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEVycm9yIGNoZWNrIGFuZCBmcmVlIHJlc291cmNlcyBkdXJpbmcgcmVnZXggcHJvY2Vzc2luZy4KICAgCjE5OTktMTEtMzAgMTY6NTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jOgoKICAgQWRkIG11bHRpcGxlIG1hdGNoIGNhcGFiaWxpdHkgdG8gZmluZF9iZXN0X3RyZWVfbm9kZSwgYW5kIHVzZSBpdCBpbgogICBzbm1wdHJhbnNsYXRlIChuZXcgLUIgb3B0aW9uKS4KICAgCjE5OTktMTEtMzAgMTQ6NDcgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgVXNlIFdlcycgY29vbCBuZXcgZ2V0X3dpbGRfbm9kZSBtYXRjaCBtZXRob2QuCiAgIAoxOTk5LTExLTMwIDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jKTogaW1wbGVtZW50IHJlZ2V4IG1hdGNoaW5nCiAgICAgZXZlcnl3aGVyZS4KICAgCjE5OTktMTEtMzAgMTM6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBJbmNsdWRlIGN0eXBlLmgKICAgCjE5OTktMTEtMzAgMTM6MTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgRml4IC1UZCB1c2FnZSBkZXNjcmlwdGlvbjsgdXNlIHN3aXRjaCB3aGVuIGN1cnJlbnRfbmFtZSBpcyBOVUxMLgogICAKMTk5OS0xMS0zMCAwNzowOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBoYW5kbGluZyBvZiBtdWx0aS12YXJpYWJsZSByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCiAgIAoxOTk5LTExLTMwIDA3OjA3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhZ2VudHgvbWFzdGVyLmMpOiBSZW1vdmUgcmVkdW5kZW50IHJvdXRpbmUuCiAgIAoxOTk5LTExLTMwIDAzOjAxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaDoKCiAgIC0gc25tcF9hcGkuaCwgc25tcF9taWIuW2NoXTogQSBjb3VwbGUgYWRkaXRpb25hbCBTTk1QIHN0YXRpc3RpY3MgcG9pbnRzCiAgIAoxOTk5LTExLTI5IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhbm90aGVyIG5hbWUuCiAgIAoxOTk5LTExLTI5IDE0OjAzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hlY2sgZm9yIHJlZ2V4LmgsIHJlZ2NvbXAsIHN0cmNhc2VzdHIuCiAgIAoxOTk5LTExLTI5IDE0OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogbWFrZSBiZXN0IG1hdGNoaW5nICgtYikgdXNlIHJlZ2V4IHdoZW4gYXZhaWxhYmxlLgogICAKMTk5OS0xMS0yOSAxNDowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHN5c3RlbS5jLCBzeXN0ZW0uaDoKCiAgIC0gKHN5c3RlbS5jLCBzeXN0ZW0uaCk6IGltcGxlbWVudCBzdHJjYXNlc3RyIChmcm9tIE1pY2hhZWwgU2xpZmNhaykuCiAgIAoxOTk5LTExLTI5IDEyOjQzICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmM6CgogICBVc2Ugc2l6ZV90IGZvciBuYW1lX2xlbiBtZW1iZXIuCiAgIAoxOTk5LTExLTI5IDExOjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGcmVlIFNUUkVBTSBwYWNrZXQgYnVmZmVyIHdoZW4gc2Vzc2lvbiBpcyBjbG9zZWQ7CiAgIFRlc3QgZm9yIGNsb3NlIGluIHByb2dyZXNzIGZvciByZWFkLCB3cml0ZSwgc2VsZWN0LCBhbmQgdGltZW91dCBmdW5jdGlvbnMuCiAgIAoxOTk5LTExLTI5IDEwOjM2ICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcHRyYXAuYywgc25tcHdhbGsuYywgc25tcG5ldHN0YXQvbWFpbi5jCjoKCiAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIERFQlVHX01BTExPQ19JTkMgZnJhZ21lbnRzLgogICAKMTk5OS0xMS0yOSAxMDozMyAgbXNsaWZjYWsKCiAgICogd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwOgoKICAgRml4IHJlZmVyZW5jZSB0byBzbm1wbGliLgogICAKMTk5OS0xMS0yOSAxMDozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIG50b2hzIG1hY3JvIHRvIGNhcmVmdWxseSBvYnRhaW4gdGhlIGRlZmF1bHQgc2VydmljZSBwb3J0LgogICAKMTk5OS0xMS0yOSAwNTo1MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wYnVsa2dldC5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1vcmUgSFAtVVggYUNDIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4uCiAgIAoxOTk5LTExLTI3IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogcmVkbyByd3VzZXIvcm91c2VyIHRvIGFsbG93IHNwZWNpZmljYXRpb24gb2YgYXV0aCB0eXBlLgogICAKMTk5OS0xMS0yNyAwNjozMSAgbWFyegoKICAgKiBhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgIChhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZml4IC1yIHN3aXRjaCB0byBzdXByZXNzIGVycm9yIG1lc3NhZ2VzIGFib3V0IGZhaWxlZCBrZXJuZWwgYW5kIGFkZCAtciB0byBkZWZhdWx0IHRlc3RpbmcgY29kZSBzbyAnbWFrZSB0ZXN0IGNhbiBiZSBydW4gYnkgdXNlcgogICAKMTk5OS0xMS0yNiAxMToxOCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSBkZWZhdWx0X3N0b3JlLmM6IGFsdGhvdWdoIHJlYWRfY29uZmlnIGlzIGNhc2UgaW5zZW5zaXRpdmUsIGRzX2hhbmRsZV9jb25maWcKICAgCXdhcyBub3QuIEF0IHRoZSBzYW1lIHRpbWUgaXQgZmFpbGVkIHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0aGF0CiAgIAlpdCB3YXMgY2FsbGVkIGJ1dCBkaWRuJ3Qga25vdyB3aGF0IHRvIGRvLgogICAKMTk5OS0xMS0yNSAxNDo1NyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBraWxsIHlldCBhbm90aGVyIHNpbGx5IHdhcm5pbmcgZnJvbSBnY2MKICAgCjE5OTktMTEtMjUgMTQ6NTYgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGRlZmF1bHRzX3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXBfcGFyc2VfYXJncy5jOiBhZGQgZGVmQ29tbXVuaXR5CiAgIAlkaXJlY3RpdmUKICAgLSBzbm1wX2FwaS5oLCBzbm1wX2FwaS5jOiBhZGQgZXJyb3Jjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQogICAKMTk5OS0xMS0yNSAxNDo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtIHVzbVVzZXIuYzogbmV3IHVzZXIgaXMgbm90IGFkZGVkIHVubGVzcyBib3RoIGF1dGggYW5kIHByaXYgaXMgc3BlY2lmaWVkCiAgIAlvbiBjcmVhdGVVc2VyIGRpcmVjdGl2ZQogICAKMTk5OS0xMS0yNSAxNDozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6CgogICAtIHNubXBfbWliLmg6IGZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwogICAKMTk5OS0xMS0yNSAxNDozMiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAtIHNubXBfYXBpLmMsIGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLCBzbm1wX21pYi5oLCBzbm1wX21pYi5jOgogICAJZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIAoxOTk5LTExLTI0IDExOjA3ICBtc2xpZmNhawoKICAgKiBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIEZpeCBCVUcjNTcgdXNpbmcgMi8zIG9mIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCiAgIAoxOTk5LTExLTI0IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gYWxsb3cgc2VwZXJhdGlvbiBvZiBtYXNrIHdpdGggYm90aCAuIGFuZDouCiAgIAoxOTk5LTExLTI0IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGNoYW5nZSBlZGl0aW5nIG9mIGNvbmZpZy5oIG5vdGUuCiAgIAoxOTk5LTExLTI0IDA5OjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi90b29scy5jCiwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1c21Vc2VyLmMsCiAgICAga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgbGNkX3RpbWUuYywgc2NhcGkuaCwgdG9vbHMuYywKICAgICBrZXltYW5hZ2V0ZXN0LmMsIHNjYXBpdGVzdC5jLCBjb25maWcuaCk6CiAgICAgLSBmb3JjZSAtLWVuYWJsZS1kZXZlbG9wZXIgZm9yIENWUyBjaGVja291dHMuCiAgICAgLSByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gS01ULgogICAKMTk5OS0xMS0yNCAwOTowMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogUmVsZWFzZSBhbGxvY2F0ZWQgaW5kZXhlcyBvbiBzdWJhZ2VudCBzaHV0ZG93bi4KICAgCjE5OTktMTEtMjMgMDU6NDAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgIC0gTWFrZSBpbmRleCByZWdpc3RyYXRpb24gQVBJIG1vcmUgaW1tZWRpYXRlbHkgY29udmVuaWVudAogICAgIC0gQXNzb2NpYXRlIHN1Y2ggcmVnaXN0cmF0aW9ucyB3aXRoIHRoZSBtYWluIHNlc3Npb24KICAgICAtIG5ldyByb3V0aW5lIHRvIHVucmVnaXN0ZXIgYWxsIGluZGV4ZXMgZm9yIGEgZ2l2ZW4gc2Vzc2lvbgogICAgIC0gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEFOWSBpbmRleCBhbmQgTkVXIGluZGV4CiAgICAgLSBjbGVhbiB1cCBhc3NvcnRlZCBjb21waWxlciB3YXJuaW5ncwogICAKMTk5OS0xMS0yMyAwNToyMSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgTWFrZSBtYWluIHNlc3Npb24gc3RydWN0dXJlIHZpc2libGUgdGhyb3VnaG91dCB0aGUgYWdlbnQsCiAgICAgIGFuZCB1c2UgdGhpcyBmb3IgQWdlbnRYIHN1YmFnZW50IGFzIHdlbGwuCiAgIAoxOTk5LTExLTIzIDAyOjIwICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBzbm1wX2FnZW50LmM6ICNpbmNsdWRlIDx1bmlzdGQuaD4gZm9yIHNlbGVjdCBwcm90b3R5cGUKICAgCjE5OTktMTEtMjMgMDI6MTEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmM6CgogICAtIChob3N0L2hyX3N0b3JhZ2UuYyBob3N0L2hyX3N3cnVuLmMpOiBHdWFyZCBhZ2FpbnN0IGNhbGN1bGF0aW9uIG92ZXJmbG93CiAgIAoxOTk5LTExLTIzIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChob3N0L2hyX3N3cnVuLmMpOiBGaXggbGludXggcHJvY2VzcyBtZW1vcnkgdXNhZ2UgZmlndXJlcy4KICAgCShSZXBvcnRlZCBieSBNaXRjaCBTaGllbGRzKQogICAKMTk5OS0xMS0yMyAwMToyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzX3BlcnNpc3QuYzogZml4IHNvbWUgYXJndW1lbnRzIChpbnQgPT4gc2l6ZV90KS4gVGhhbmtzIHRvCiAgIAlBbnRob255IFNoaXBtYW4gPGFzaGlwbWFuQGVyZ2dyb3VwLmNvbT4KICAgCjE5OTktMTEtMjMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lQU0VDLU1JQi50eHQ6CgogICAtIElQU0VDLU1JQi50eHQ6IGNoYW5nZSBzb21lIHVuZGVybGluZXMgaW50byBkYXNoZXMsIGFuZCByZXBhaXIgdGhlCiAgIAk6Oj0gKG1heWJlIEkgc2hvdWxkIGhhdmUgbG9va2VkIGF0IHRoaXMgZmlsZSBiZWZvcmUgYWRkaW5nIGl0Oi0pKQogICAKMTk5OS0xMS0yMyAwMToyMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaDoKCiAgIC0gaXB2Ni5oOiByZW1vdmUgYW4gX19QIHRoYXQgaGFkIHNuZWFrZWQgaW4KICAgCjE5OTktMTEtMjIgMTc6NTIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlIHRvIHJlZmxlY3QgbmV3IGFuZCBlYXNpZXIgLmNvbmYgbWVjaGFuaXNtcy4KICAgCjE5OTktMTEtMjIgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBmaXggbGVuZ3RoIGNoZWNrIG9mIGtleSBzcGFjZS4KICAgCjE5OTktMTEtMjIgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdmFjbV92YXJzLmMsIHNubXB2My91c21Vc2VyLmMKOgoKICAgLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYyk6IG5ldyBjb25maWcgdG9rZW5zIGFsbG93aW5nIGVhc3kgdXNlciBhbmQKICAgICB2YWNtL3VzZXIgY29uZmlndXJhdGlvbiBhbmQgc2V0dXAuCiAgIAoxOTk5LTExLTIyIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlIGNyZWF0aW9uIG9mIGluaXRpYWwgYW5kIHRlbXBsYXRlKiB1c2Vycy4KICAgCjE5OTktMTEtMjIgMTM6MDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHRjcC5jKTogUGF0Y2gKICAgICBmcm9tIEdhcnJldHQgV29sbG1hbjoKICAgICAtIEZyZWVCU0QgNC54IGZpeGVzLgogICAKMTk5OS0xMS0yMiAxMjo1MyAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L2FnZW50X3RyYXAuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKOgoKICAgLSAqOiBjaGFuZ2UgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucyB0byBhCiAgIAljb25zdCBzdHJpbmcKICAgCjE5OTktMTEtMjIgMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdmFjbV92YXJzLmMsIHVjZC1zbm1wL3Bhc3MuYwo6CgogICAtICh2YWNtX3ZhcnMuYywgcGFzcy5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zLgogICAKMTk5OS0xMS0yMiAxMjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0X2ZyZWVic2QyLmMKOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogdXNlIGhlYWRlcl9nZW5lcmljIG5vdCBoZWFkZXJfc2ltcGxlX3RhYmxlCiAgIAoxOTk5LTExLTIyIDA5OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsCjoKCiAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSB0ZXN0cyBmb3IgbmV3CiAgICAgZXJyb3IgbWVzc2FnZXMuCiAgIAoxOTk5LTExLTIyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhvc3RfcmVzLmgsIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gYnNkaSBzdXBwb3J0IGZvciB0aGUgaG9zdCByZXNvdXJjZXMgbWliLgogICAKMTk5OS0xMS0yMiAwOTowNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgbW9yZSBwZW9wbGUgdG8gdGhlIHRoYW5rcyBsaXN0LgogICAKMTk5OS0xMS0yMiAwOTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IGZpeCBvaWQgLT4gY2hhciBjb252ZXJzaW9ucyBwb2ludGVkIG91dCBieSBNaWNoYWVsIFNsaWZjYWsuCiAgIAoxOTk5LTExLTIyIDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIEFkZGVkIGFiaWxpdHkgdG8gdXNlIE1JQiB0byBxdWVyeSB0YWJsZXMgd2l0aCBub24tc2VxdWVudGlhbCBjb2x1bW4gT0lEcy4KICAgICAtIEFkZGVkIGNvZGUgdG8gaGFuZGxlIHNwYXJzZSB0YWJsZXMuCiAgIAoxOTk5LTExLTIyIDA4OjIxICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlOgoKICAgQWRkIENWUyBpZ25vcmUgbGlzdCBmb3Igd2luMzIvbGliYWdlbnQuCiAgIAoxOTk5LTExLTIyIDA4OjIwICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3A6CgogICBSZXRyeSBhZGQgTVNWQysrIHByb2plY3QgZmlsZS4KICAgCjE5OTktMTEtMjIgMDc6MzAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgSW5kZXggZGUtYWxsb2NhdGlvbiwgYW5kIEFnZW50WCBpbmRleCBzdXBwb3J0LgogICAKMTk5OS0xMS0yMiAwNzoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIC0gaXB2Ni5jOiBzb21lIG1vcmUgQU5TSSBwcm90b3R5cGVzCiAgIAoxOTk5LTExLTIyIDA2OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBpcHY2LmM6IHVwZ3JhZGUgdG8gdGhlIGN1cnJlbnQgS2FtZSBwYXRjaAogICAKMTk5OS0xMS0yMiAwNTozMiAgbmJhCgogICAqIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwgbWlicy9JUFY2LVVEUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCjoKCiAgIC0gSVBWNi1UQ1AtTUlCLCBJUFY2LVVEUC1NSUIsIGlwdjYuYywgdGNwLmM6IG1vdmUgdGhlIElQdjYgdGNwIGFuZCB1ZHAKICAgCXRhYmxlcyB0byB0aGVpciBwcm9wZXIgcG9zaXRpb24gaW4gdGhlIHRyZWUsIGFjY29yZGluZyB0byB0aGUgUkZDLgogICAKMTk5OS0xMS0yMiAwNToyOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gcGFzcy5jOiByZW1vdmUgYSBjb25zdCBjYXN0aW5nIHdhcm5pbmcKICAgCjE5OTktMTEtMjIgMDU6MjggIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiByZWluc3RhdGUgc25tcGQgLWEgZnVuY3Rpb25hbGl0eQogICAKMTk5OS0xMS0yMiAwNToyOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAgc25tcF9sb2dnaW5nLmM6IG9ubHkgdGltZXN0YW1wIGVmdGVyIGEgbmV3bGluZQogICAKMTk5OS0xMS0yMiAwNToyNyAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluOiBjb25maWd1cmUgdGVzdCBmb3IgbmV0aW5ldC9pcC5oCiAgIAoxOTk5LTExLTE5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgIGRpc2suYywgZGlzay5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgLSBtb25pdG9yIGRpc2sgaW5vZGUgcGVyY2VudGFnZXMuCiAgIAoxOTk5LTExLTE5IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgIC0gbWFrZSBzbm1wX3NlbGVjdF9pbmZvIHBvc3NpYmx5IGhhbmRsZSBhbGFybSB0aW1lcnMuCiAgICAgLSBtYWtlIHNubXBkIHVzZSB0aGVtIGFuZCBjYWxsIHNubXBfcnVuX2FsYXJtcygpLgogICAKMTk5OS0xMS0xOSAxMzo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZml4IG1pYjJjLnN0b3JhZ2UuY29uZi4KICAgCjE5OTktMTEtMTkgMTE6MDYgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogUHJvdmlkZSBtaXNzaW5nIGluZGV4IGFsbG9jYXRpb24gZGVmaW5lcy4KICAgCjE5OTktMTEtMTggMTg6MjAgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9jb25maWcuaCwgbWliX21vZHVsZV9kb3RfY29uZi5oLAogICBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJ1Y2RtaWJzLy5jdnNpZ25vcmUsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIHNubXBkLy5jdnNpZ25vcmUsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIE1vcmUgTVNWQysrIFdpbjMyIGFnZW50IGZpbGVzLCBncmF0aXMgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMS0xOCAxODoxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3OgoKICAgTW9yZSB0b3VjaHVwIHBlciBNU1ZDKysgV2luMzIgYWdlbnQgd29yay4KICAgCjE5OTktMTEtMTggMTc6NTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9rZXJuZWwuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFwcHMvc25tcGJ1bGtnZXQuYwo6CgogICBDaGVjay1pbiBhZ2VudCBjaGFuZ2VzIHRvIHN1cHBvcnQgV2luMzIgYWdlbnQgYnVpbHQgd2l0aCBNU1ZDKysuCiAgIFRoYW5rcyB0byBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE3IDIxOjUxICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAtIGRlZmF1bHRfc3RvcmUuYzogZHNfdG9nZ2xlX2Jvb2xlYW4gbWlzc2VkIGEgbWFzawogICAKMTk5OS0xMS0xNyAxMzowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogdXBkYXRlLiAgRGVhbHMgd2l0aCBSb3dTdGF0dXMgb2JqZWN0cyBiZXR0ZXIuCiAgIAoxOTk5LTExLTE3IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiB1cGRhdGUuCiAgIAoxOTk5LTExLTE3IDEzOjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiB1cGRhdGUgdGhlIHNvIExEIGZvciBsaW51eCB0byAkKENDKS4KICAgCjE5OTktMTEtMTcgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jCiwgbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoZHNfYWdlbnQuaCwga2VybmVsLmMsIHNubXBkLmMsIHNubXBkLjEuZGVmKToKICAgICAtIHJ1biB0aW1lIHJvb3RsZXNzIHJ1bm5pbmcgc3VwcG9ydCBmb3Igc25tcGQsIGJ5IHJlcWVzdCBvZiBKb2UuICgtcikKICAgCjE5OTktMTEtMTcgMDc6MzYgIG1zbGlmY2FrCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIEFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcHMgdG8gYnVpbGQuCiAgIAoxOTk5LTExLTE3IDA3OjM1ICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wYnVsa2dldC86IC5jdnNpZ25vcmUsIHNubXBidWxrZ2V0LmRzcDoKCiAgIFByb2plY3QgZmlsZSBmb3IgYnVpbGRpbmcgc25tcGJ1bGtnZXQgdXNpbmcgTVNWQysrIGdyYXRpcyBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE3IDA1OjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBSZXBsYWNlIHVfaW50MTZfdCB3aXRoIG1vcmUgdW5pdmVyc2FsbHkgc3VwcG9ydGVkIHVfc2hvcnQuCiAgIAoxOTk5LTExLTE2IDE0OjU2ICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIEJ1aWxkIHdpdGggZ2V0b3B0LgogICAKMTk5OS0xMS0xNiAxNDo0MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHdpbjMyL3dpbjMyLmRzdywKICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcAosIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgTVNWQyB0b3VjaHVwczoKICAgQWRkZWQgc25tcHRyYXBkIHByb2plY3QgLkRTUCBmaWxlOyBBbGwgLkRTW1BXXSBmaWxlcyBDUi1MRiBsaW5lIHRlcm1pbmF0ZWQ7CiAgIEZpeCB3YXJuaW5ncyBpbiBhc24xLmMgYW5kIHNubXBfYXBpLmM7IFJlbW92ZSB1bnVzZWQgdmFyIGluIHNubXB0cmFuc2xhdGUuYy4KICAgCjE5OTktMTEtMTYgMTA6MjYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCB0aGUgVDogZmxhZyBmb3IgLVQgdG8gZ2V0b3B0CiAgIAoxOTk5LTExLTE2IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKHByb3RvY29sLmMpOiBhZGQgdGhlIGhlYWRlciBsZW5ndGggdG8gdGhlIHBhY2tldCBsZW5ndGggZXN0aW1hdGUuCiAgIAoxOTk5LTExLTE2IDA5OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKHNubXBsaWIvYXNuMS5jKTogRml4IGVuY29kaW5nIG9mIHJvb3QgT0lEcy4KICAgCjE5OTktMTEtMTYgMDg6NDggIG1zbGlmY2FrCgogICAqIGNvbmZpZy5ndWVzczoKCiAgIEVtYnJhY2UgYWxsIEhQLTkwMDAvNnh4LDd4eCwgOHh4IHNlcmllcyBwbGF0Zm9ybXMsIHdpdGhvdXQgcmVncmV0cy4KICAgCjE5OTktMTEtMTYgMDY6MjEgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmM6IHJlZG8gdGhlIHNubXB0cmFuc2xhdGUgb3B0aW9ucwogICAJdG8gZm9sbG93IHRoZSBjb21tb24gb3B0aW9uIHNldC4gSXNzdWUgd2FybmluZ3Mgd2hlbiBzb21lb25lCiAgIAl1c2VzIHRoZSBvbGQgZm9ybSwgYWR2aXNpbmcgYWJvdXQgdGhlIG5ldy4KICAgCjE5OTktMTEtMTYgMDM6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRml4IHNwZWxsaW5nIG1pc3RlYWsuCiAgIAoxOTk5LTExLTE1IDIxOjU3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIEZpeCBidWcjNzU6IGJ1aWxkIC0td2l0aG91dC1vcGFxdWUtdHlwZXMKICAgCjE5OTktMTEtMTUgMTc6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FnZW50LmMsIG1hc3Rlci5jLCBwcm90b2NvbC5jLCBwcm90b2NvbC5oLCBzdWJhZ2VudC5jLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbWFrZSBUQ1Agc3VwcG9ydCBiZXR0ZXIgZm9yIGFnZW50eC4gIFN0aWxsIGhhcyBhIHByb2JsZW0gKEkgYnJva2UgYWdlbnR4KS4KICAgCjE5OTktMTEtMTUgMTY6NDMgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IGFkZCBOVUxMIHZhcmJpbmQgd2hlbiBFTkRPRk1JQlZJRVcgaXMgcmVhY2hlZC4KICAgCjE5OTktMTEtMTUgMTU6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgICAtIGltcGxlbWVudCBzdXBwb3J0IGZvciBUQ1AgYnJva2VuIFNOTVAgcGFja2V0cyBieSBzdG9yaW5nIGJ1ZmZlcnMKICAgICAgIGFuZCBkZWFsaW5nIHdpdGggcGllY2VzIG9mIGluY29taW5nIGRhdGEgdGlsbCB3ZSBoYXZlIGEgZnVsbCBwYWNrZXQuCiAgIAoxOTk5LTExLTE1IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgCjE5OTktMTEtMTUgMTU6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIHNubXBuZXRzdGF0L21haW4uYwo6CgogICAtIChzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMpOgogICAgIC0gYWRkIGRlZmF1bHRfc3RvcmUuaAogICAKMTk5OS0xMS0xNSAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oOgoKICAgLSAoYXNuMS5jLCBhc24xLmgpOiBuZXcgZnVuY3Rpb246IGFzbl9jaGVja19wYWNrZXQoKS4KICAgCjE5OTktMTEtMTUgMTU6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGluc2VydGVkLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAtIChzbm1wX2FnZW50X2FwaS4zKTogZG9uJ3QgY2FsbCBzdWJhZ2VudF9wcmVfaW5pdCgpLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgdGttaWI6CgogICAtIChtaWIyYywgdGttaWIpOiByZW1vdmUgLXcuCiAgIAoxOTk5LTExLTE1IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNldCB0byAnXDAnIGluc3RlYWQgb2YgTlVMTCBmb3IgLVdhbGwuCiAgIAoxOTk5LTExLTE1IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IG1lbW9yeSBpbnQgLT4gdWludC4KICAgCjE5OTktMTEtMTUgMTU6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICAtIChtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYyk6IG1vdmUgc3ViYWdlbnRfcHJlX2luaXQoKSB0byBpbml0X2FnZW50KCkuCiAgIAoxOTk5LTExLTE1IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogbmV3IG1pcnJvciBpbiBBdXN0cmFsaWEuCiAgIAoxOTk5LTExLTE1IDE0OjA5ICBuYmEKCiAgICogLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAuY3ZzaWdub3JlOiB1cGRhdGVzIHRvIGtlZXAgY3ZzIHNpbGVudCBhYm91dCBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoxOTk5LTExLTE1IDE0OjA1ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggYSBzcGVsbGluZyBlcnJvciBpbiB0aGUgTUlCIHJlcGxhY2VtZW50IHRhYmxlLgogICAKMTk5OS0xMS0xNSAxNDowMyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiwgUkZDMTI3MS1NSUIudHh0LCBSTU9OLU1JQi50eHQKOgoKICAgLSBtaWJzLzogcmVwbGFjZSBSRkMxMjcxLU1JTi50eHQgd2l0aCBSTU9OLU1JQi50eHQgKFJGQyAxNzU3IHZlcnNpb24pCiAgIAoxOTk5LTExLTE1IDE0OjAwICBuYmEKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wYnVsa2dldC5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZnVydGhlciBlcnJvciBjaGVja2luZywgY291cnRlc3kgbXNsaWZjYWsKICAgICBzbm1wYnVsa2dldC5jOiBuZWVkcyAjaW5jbHVkZSA8Z2V0b3B0Lmg+IChUaGFua3MgdG8gUm9iZXJ0IFN0b3J5KQogICAKMTk5OS0xMS0xNSAwODoyOSAgbXNsaWZjYWsKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIEZpeCBkZXNjcmlwdGlvbiBvZiByZWFkX29iamlkIHJldHVybiB2YWx1ZS4KICAgCjE5OTktMTEtMTUgMDc6NTYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggaGFuZGxpbmcgb2YgZmFpbGVkIEdFVC9TRVQgcmVxdWVzdHMKICAgCjE5OTktMTEtMTQgMDY6MzIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIG1ha2V0YXJnZXQsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIG1pYnMvSVBTRUMtTUlCLnR4dCwKICAgbWlicy9JUFY2LUlDTVAtTUlCLnR4dCwgbWlicy9JUFY2LU1JQi50eHQsCiAgIG1pYnMvSVBWNi1UQy50eHQsIG1pYnMvSVBWNi1UQ1AtTUlCLnR4dCwKICAgbWlicy9JUFY2LVVEUC1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluOgoKICAgLSBpcGM2OiBBZGQgdGhlIElQdjYgY29kZSBmcm9tIHRoZSBLYW1lIHByb2plY3QuIEkgaGF2ZSBvbmx5IG1hc3NhZ2VkCiAgIAlpdCBzbyBtdWNoIGFzIHRvIHN0aWxsIGNvbXBpbGUgb24gbm9uLUlQdjYgc3lzdGVtcywgYW5kIGRldGVjdAogICAJTGludXgsIElOUklBLCBTb2xhcmlzIElQdjYuIE5vIGNvZGUgZm9yIHRoZW0geWV0LiBPcmlnaW5hbAogICAJYXV0aG9yOiBpdG9qdW5AaWlqbGFiLm5ldAogICAKMTk5OS0xMS0xNCAwNjoxNSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gc25tcHRyYXBkLjg6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CiAgIAoxOTk5LTExLTE0IDA2OjEyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CiAgIAoxOTk5LTExLTE0IDAyOjQyICBuYmEKCiAgICogbWlicy9TTk1QdjItQ09ORi50eHQ6CgogICAtIFNOTVB2Mi1DT05GLnR4dDogY29tbWVudCBvdXQgdGhlIElNUE9SVCBjbGF1c2UKICAgCjE5OTktMTEtMTQgMDI6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmMsIHNubXB0cmFuc2xhdGUuYzogbW92ZSB0aGUgTUlCOmlkIGhhbmRsaW5nIGluc2lkZSByZWFkX29iamlkIGZvcgogICAJY29uc2lzdGVuY3kuIEFsc28gZml4ZXMgYSBidWZmZXIgb3ZlcnJ1biBpbiBtaWIuYwogICAKMTk5OS0xMS0xNCAwMjowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSBwYXNzLmMsIHNubXBkLmNvbmYuNS5kZWY6IGFkZCBhbiBVTlNJR05FRCByZXR1cm4gdHlwZQogICAKMTk5OS0xMS0xNCAwMjowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzoga2lsbCBhIHdhcm5pbmcKICAgCjE5OTktMTEtMTQgMDE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgbWlicy9NYWtlZmlsZS5pbiwKICAgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LCBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQKLCBtaWJzL1NOTVAtTVBELU1JQi50eHQsIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dAosIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQKLCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LAogICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsCiAgIG1pYnMvU05NUHYyLVNNSS50eHQsIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gbWlicy8qLCB2YWNtX3ZhcnMuaDogdXBkYXRlIHRoZSBtaWIgZmlsZXMgdG8gcmZjIDI1NzEtMjU3NS4gQWxzbyBhZGQKICAgCVNOTVBfQ09NTVVOSVRZX01JQiBmcm9tIHRoZSBjb2V4IGRyYWZ0LgogICAKMTk5OS0xMS0xNCAwMTo1NCAgbmJhCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIHNubXBfcGFyc2VfYXJnczogY2hhbmdlcyB0byBzdXBwb3J0IG11bHRpLXZhbHVlZCBvcHRpb25zCiAgIAoxOTk5LTExLTE0IDAxOjUzICBuYmEKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBtYW4vc25tcGJ1bGtnZXQuMSwgbWFuL01ha2VmaWxlLmluOgoKICAgLSBzbm1wYnVsa2dldDogbmV3IHRvb2wgdG8gaXNzdWUgYSBzaW5nbGUgR0VUQlVMSyByZXF1ZXN0CiAgIAoxOTk5LTExLTE0IDAxOjUxICBuYmEKCiAgICogbWFuL3NubXB0YWJsZS4xOgoKICAgLSBzbm1wdGFibGU6IGFkZCBpbiB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgc25tcHRhYmxlIG9wdGlvbnMgYmV0d2VlbgogICAJdGhlIG5vcm1hbCBvcHRpb25zLgogICAKMTk5OS0xMS0xNCAwMTo0OCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZSwgc25tcF9wYXJzZV9hcmdzOiBhbGxvdyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgb3B0aW9ucyB0bwogICAKMTk5OS0xMS0xMiAxMzowMSAgbWFyegoKICAgKiBzbm1wbGliLzogbGNkX3RpbWUuYywgbGNkX3RpbWUuaCwgc25tcHVzbS5jOgoKICAgIChsY2RfdGltZS5bY2hdLCBzbm1wdXNtLmMpOiBmaXggZW5naW5ldGltZSB1cGRhdGUgYWxnb3JpdGhtIHRvIGNvbmZvcm0gdG8gc3BlYyByZmMyNTc0IDMuMi43LmIuMQogICAKMTk5OS0xMS0xMiAwODo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogUHJvdmlkZSBhIHVuaXF1ZSBJRCBmb3IgYWxsIGluY29taW5nIFBEVXMKICAgCjE5OTktMTEtMTEgMjI6NDkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL21pYi5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmM6IGFsaWdubWVudCBvZiBvcHRpb24gY29kZS4KICAgCVNvbWUgZW5oYW5jZW1lbnRzIHRvIHRoZSBzbm1wdHJhbnNsYXRlIC1kIG91dHB1dC4KICAgCjE5OTktMTEtMTEgMjI6MTQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSBzbm1wY21kLjE6IHVwZGF0ZSBtYW4gcGFnZSB0byBjb3JyZXNwb25kIHRvIHRoZSBuZXcgZ2V0b3B0IHNpdHVhdGlvbgogICAJTm90ZTogZXZlbiB0aG91Z2ggc29tZSBvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcwogICAJcGFnZSwgdGhleSBzdGlsbCB3b3JrIQogICAKMTk5OS0xMS0xMSAwMzozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSAoYWdlbnR4L2NsaWVudC5jKTogU2lsbHkgdHlwbyBpbiBzdGFydCB0aW1lIHN5bmNocm9uaXNhdGlvbgogICAKMTk5OS0xMS0xMCAyMjoxMCAgbmJhCgogICAqIHdpbjMyLzogLmN2c2lnbm9yZSwgZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLAogICBsaWJzbm1wLy5jdnNpZ25vcmUsIGxpYnNubXAvbGlic25tcC5wbGcsCiAgIGxpYnNubXBfZGxsLy5jdnNpZ25vcmUsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLAogICBzbm1wZGVsdGEvLmN2c2lnbm9yZSwgc25tcGRlbHRhL3NubXBkZWx0YS5wbGcsCiAgIHNubXBnZXQvLmN2c2lnbm9yZSwgc25tcGdldC9zbm1wZ2V0LnBsZywKICAgc25tcGdldG5leHQvLmN2c2lnbm9yZSwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLAogICBzbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBzbm1wc2V0Ly5jdnNpZ25vcmUsCiAgIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvLmN2c2lnbm9yZSwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywgc25tcHRhYmxlLy5jdnNpZ25vcmUsCiAgIHNubXB0ZXN0Ly5jdnNpZ25vcmUsIHNubXB0ZXN0L3NubXB0ZXN0LnBsZywKICAgc25tcHRyYW5zbGF0ZS8uY3ZzaWdub3JlLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnCiwgc25tcHRyYXAvLmN2c2lnbm9yZSwgc25tcHRyYXAvc25tcHRyYXAucGxnLAogICBzbm1wdHJhcGQvLmN2c2lnbm9yZSwgc25tcHVzbS8uY3ZzaWdub3JlLAogICBzbm1wd2Fsay8uY3ZzaWdub3JlLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtIHdpbjMyLyo6IGNsZWFuIHVwIHJlcG9zaXRvcnkgZmlsZXMsIGFuZCBhZGQgcHJvcGVyIC5jdnNpZ25vcmUgZmlsZXMKICAgCjE5OTktMTEtMTAgMTU6MjkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcsCiAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3A6CgogICAtIGFwcHMvKjogY2hhbmdlcyBmb3IgZ2V0b3B0IHVzYWdlLCBhbmQgcmV3b3JraW5nIG9mIHNubXBfcGFyc2VfYXJncwogICAKMTk5OS0xMS0xMCAxMjoyMCAgbmJhCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICAtIHdpbjMyLyouZHNwOiB5ZXQgYW5vdGhlciByb3VuZCBvZiBtYWtpbmcgdGhpcyBjcmFwIHdvcmsKICAgCjE5OTktMTEtMTAgMDg6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggQWdlbnRYIG5vdGlmeSBzdXBwb3J0CiAgIAoxOTk5LTExLTEwIDA4OjU4ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5bY2hdKTogbWlub3IgcmUtc3RydWN0dXJlIHRvIGFsbG93IHN1YmFnZW50IHRyYXAgInNpbmtzIgogICAKMTk5OS0xMS0xMCAwODo1NyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMpOiBPbmx5IHNldCB1cCB0cmFwIHNpbmtzIG9uIHRoZSBtYXN0ZXIgYWdlbnQKICAgCjE5OTktMTEtMTAgMDg6MzEgIG5iYQoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgLSB3aW4zMi8qOiBWQysrIHByb2plY3QgdXBkYXRlcwogICAKMTk5OS0xMS0xMCAwODozMCAgbmJhCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCBzbm1wZ2V0L3NubXBnZXQucGxnLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLnBsZzoKCiAgIC0gd2luMzIvKjogZml4ZXMgdG8gdGhlIFZDKysgYnVpbGQgcHJvamVjdHMKICAgCjE5OTktMTEtMDkgMjM6MzAgIG5iYQoKICAgKiBzbm1wbGliL2dldG9wdC5oOgoKICAgLSBnZXRvcHQuaDogYXJndW1lbnRzIHRvIGdldG9wdCBkaWQgbm90IG1hdGNoIHRob3NlIGluIGdldG9wdC5jCiAgIAoxOTk5LTExLTA5IDIyOjIwICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC4gc25tcF9wYXJzZV9hcmdzLmM6IGEgZ2xpdGNoIGluIHRoZSBjb252ZXJzaW9uIHRvIGdldG9wdCAodGhhbmtzIHRvCiAgIAlkcmllaHVpc0BwbGF5YmVpbmcub3JnKQogICAKMTk5OS0xMS0wOSAxNToxNSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2dldG9wdC5jLAogICBzbm1wbGliL2dldG9wdC5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5vcHQsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGcsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZwosIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnBsZwo6CgogICAtIHZhcmlvdXM6IGFkYXB0IHRvb2xzIHRvIHVzZSBnZXRvcHQgKGFuZCBwdXQgb25lIGluIGZvciBXaW4zMikKICAgCjE5OTktMTEtMDkgMTM6MDkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIERFTU8tTUlCLgogICAKMTk5OS0xMS0wOSAxMzowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOiBzaW1wbGUgbmV3IC5jb25mIHRva2Vuczogcm9jb21tdW5pdHksIHJ3Y29tbWl0eS4KICAgCjE5OTktMTEtMDkgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogcmVxdWlyZSB0aGUgREVNTy1NSUIgKGp1c3QgZm9yIHR1dG9yaWFsIHB1cnBvc2VzKS4KICAgCjE5OTktMTEtMDkgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IC1ILgogICAKMTk5OS0xMS0wOSAxMjo1OSAgbmJhCgogICAqIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSBzbm1wdHJhcGQuYyxzbm1wdHJhcGRfaGFuZGxlcnMuYzogbWFrZSBpdCBjb21waWxlIHdpdGggVkMrKyA1LjAKICAgCShidXQgbm8gaGFuZGxlcnMgKHlldCkpCiAgIAoxOTk5LTExLTA5IDAxOjUwICBuYmEKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMsCiAgIHBhcnNlLmg6CgogICAtIG1pYi5jLHBhcnNlLmM6IG1ha2UgZXJyb3IgcmVwb3J0aW5nIGluIHBhcnNlciB3b3JrIGFjY29yZGluZyB0byBzcGVjICgtUGUpCiAgIAlzaG93IGRlZmluaW5nIG1vZHVsZXMgaW4gc25tcHRyYW5zbGF0ZSAtZAogICAJdXNlIGRzX3RvZ2dsZV9ib29sZWFuCiAgIAoxOTk5LTExLTA1IDA2OjIyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIFNheSBnb29kYnllIHRvIFNOTVBfTUFMTE9DLCBtYWxsb2NfemVybywgeGNhbGxvYywgeG1hbGxvYywgYW5kIHhzdHJkdXAuCiAgIFJlc3BlY3RpdmVseSByZXBsYWNlZCB3aXRoIGNhbGxvYywgY2FsbG9jLCBjYWxsb2MsIG1hbGxvYywgYW5kIHN0cmR1cC4KICAgCjE5OTktMTEtMDQgMTM6NDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTcGVlZCB1cCBzcHJpbnRfdmFyaWFibGU6IGhhbHZlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gZ2V0X3N5bWJvbC4KICAgCjE5OTktMTEtMDQgMTA6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogbW92ZSAtcSBmbGFncyB0byAtTy4KICAgCjE5OTktMTEtMDQgMTA6MTkgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlZG8gRnJlZUJTRCA0LjA6IGRlZmluZSBmcmVlYnNkMyBpbiBzL2ZyZWVic2Q0Lmg7IHJlZHVjZSAiZGVmaW5lIiB0aHJhc2hpbmcuCiAgIAoxOTk5LTExLTA0IDEwOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IGluY2x1ZGUgaGVhZGVycyBmb3IgY29tcGlsYXRpb24gZm9yIGJvdGggaW50ZXJuYWwgYW5kCiAgICAgZXh0ZXJuYWwgdG8gdGhlIHVjZC1zbm1wIHNvdXJjZS4KICAgCjE5OTktMTEtMDQgMTA6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYyk6CiAgICAgLSBkZWZpbmUgSU5fVUNEX1NOTVBfU09VUkNFIGluIGNvbmZpZy5oIGJ1dCBub3QgaW4gdWNkLXNubXAtY29uZmlnLmguCiAgICAgLSBtb3ZlIHVjZC1zbm1wLWNvbmZpZy5oIHVwIGluIHRoZSBidWlsZCBvcmRlciBiZWZvcmUgc3ViZGlycy4KICAgICAtIE1ha2UgZGVmYXVsdCBNSUJESVJTIHNlYXJjaCBwYXRoIGluY2x1ZGUgJEhPTUUvLnNubXAvbWlicy4KICAgICAtIE1ha2UgTUlCRElSUyBwYXJzaW5nIGhhbmRsZSAkSE9NRSB2YXJpYWJsZXMgaW4gaXQuCiAgIAoxOTk5LTExLTA0IDA1OjEyICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZpcnN0IHBhc3Mgc3VwcG9ydCBmb3IgRnJlZUJTRCA0LjAgW3Byb2JsZW1zIHdpdGggcHJvYyB0YWJsZSBsb29rdXBzXS4KICAgCjE5OTktMTEtMDQgMDQ6MzMgIG1zbGlmY2FrCgogICAqIEFHRU5ULnR4dDoKCiAgIENoYW5nZSBleGFtcGxlIGF3YXkgZnJvbSBTVERDX0hFQURFUlMuCiAgIAoxOTk5LTExLTA0IDA0OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBtaWJncm91cC9taWJJSS9hdC5jLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taXNjL2RsbW9kLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jOgoKICAgTW9yZSBTVERDX0hFQURFUlMgY2xlYW51cDogdXNlIEhBVkVfU1RSSU5HX0gsIEhBVkVfU1RETElCX0ggaW5zdGVhZC4KICAgCjE5OTktMTEtMDQgMDI6NDIgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIHRvIGJ1aWxkIEJTRC9PUyA0LjAuMTsgZnJvbSBCZXJ0IERyaWVodWlzIC0tIGRyaWVodWlzQHBsYXliZWluZy5vcmcKICAgCjE5OTktMTEtMDMgMTM6MjAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBGaXggYnVpbGQgcHJvYmxlbSBvbiBMaW51eCBSZWRIYXQgNi4wOiBrZXkgb2ZmIEdOVV9MSUJSQVJZIHZhbHVlLgogICAKMTk5OS0xMS0wMyAxMzoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYwosIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwosIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcHJvYy5jLAogICB1Y2Qtc25tcC9wcm9jLmg6CgogICBGb2xsb3dpbmcgY2FsbCB0byBmZG9wZW4gKG5lYXIgZ2V0X2V4ZWNfb3V0cHV0KSwgZG8gbm90IGNsb3NlKGZkKS4KICAgCjE5OTktMTEtMDMgMDY6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIE5lYXIgbGluZSA2NjM6IGNsb3NlKGZkKSBiZWZvcmUgaW52b2tpbmcgd2FpdF9vbl9leGVjCiAgIAoxOTk5LTExLTAzIDA2OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBkZWNsYXJlIGZpbmRfYmVzdF90cmVlX25vZGUgZm9yIE1TVkMgYnVpbGQuCiAgIAoxOTk5LTExLTAyIDE1OjQ2ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHNubXBfYWdlbnRfYXBpLjMKICAgCjE5OTktMTEtMDIgMTU6MzYgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvY29uZmlnLmg6CgogICBVc2UgSEFWRV9TVERBUkdfSCB3aGVuIGRlY2lkaW5nIHRvIHVzZSB2YXJhcmdzIHZzIEFOU0ktQyBwcm90b3R5cGVzLgogICAKMTk5OS0xMS0wMiAwOTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBvdGhlciBoZWFkZXIgZmlsZXMgbmVlZGVkIGJ5IFNOTVAucG0uCiAgIAoxOTk5LTExLTAxIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcF9hbGFybS5jKToKICAgICAtIGRvbid0IGJyZWFrIG9pZHMgaW50byBwaWVjZXMgaWYgcXVpY2tfcHJpbnQgaXMgdHVybmVkIG9uLgogICAgIC0gZGl0dG8gaWYgdGhlIG5ldyBkZWZhdWx0X3N0b3JlIG9wdGlvbiBpcyB0dXJuZWQgb24uCiAgICAgLSBtYWRlIGEgZGVmYXVsdF9zdG9yZSBvcHRpb24gdG8gbm90IHVzZSBzaWdhbHJtIGZvciBzbm1wX2FsYXJtcy4KICAgCjE5OTktMTAtMjkgMTk6NTQgIG1hcnoKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgc2V0dXAgY29uZGl0aW9uYWwgb24gYXBwIHR5cGUgdG8gcHJldmVudCBhcHBzIGZyb20gZWFzaWx5IGVuZGluZyB1cCB3aXRoIHRoZSBzYW1lIGVuZ2luZUlEIGFzIGFnZW50IG9uIHNhbWUgaG9zdAogICAKMTk5OS0xMC0yOSAxNjo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG1ha2UgaXQgZG8gc25tcHYzLiAgQWRkZWQgbWFueSB0aGluZ3MgdG8gdGhlIG9wdGlvbnMgbWVudS4KICAgCjE5OTktMTAtMjkgMTA6MTUgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBkZWZhdWx0X3N0b3JlLjN7LC5ofQogICAKMTk5OS0xMC0yOSAxMDoxNSAgaGFyZGFrZXIKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLCBkZWZhdWx0X3N0b3JlLjMuaDoKCiAgIC0oZGVmYXVsdF9zdG9yZS4zeywuaH0pOiByZW1vdmVkIGZyb20gQ1ZTIHNpbmNlIHRoZXkgYXJlIGJ1aWx0CiAgIAoxOTk5LTEwLTI5IDEwOjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLVQgYW5kIC1xW29lXQogICAKMTk5OS0xMC0yOSAxMDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMpOgogICAgIC0gc25tcCBvdmVyIFRDUCBvcHRpb25zOiAtVCBUQ1AuCiAgICAgLSBuZXcgcXVpY2sgcHJpbnQgb3B0aW9uczogLXFvIC1xZSBmb3IgbnVtZXJpYyBvaWRzIGFuZCBlbnVtcy4KICAgCjE5OTktMTAtMjkgMDk6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IHR3byBuZXcgcHJpbnRpbmcgb3B0aW9uczoKICAgICAtIHByaW50TnVtZXJpY09pZHMKICAgICAtIHByaW50TnVtZXJpY0VudW1zCiAgIAoxOTk5LTEwLTI5IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIHZhcl9zdHJ1Y3QuaCBhbmQgYWdlbnRfcmVhZF9jb25maWcuaAogICAKMTk5OS0xMC0yOSAwOToyOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogYWRkZWQgcmVmZXJlbmNlIHRvIGFuIGFib3ZlIHF1ZXN0aW9uIGZvciBwZXJsIGluc3RhbGxhdGlvbi4KICAgCjE5OTktMTAtMjkgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBQYXRjaCBmcm9tIEtlaXRoIFR1c29uOgogICAgIC0gbWlzYyBmaXhlcy4KICAgCjE5OTktMTAtMjggMDY6NDkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICByZXBocmFzZSBzdWJ0cmVlIG5vdCBmb3VuZCBjb2RlIGluIF9nZXRfc3ltYm9sLgogICAKMTk5OS0xMC0yOCAwNToyNSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaDoKCiAgIE9vcHMhIHJlc3RvcmUgdmVyc2lvbiByMS4xMzEuCiAgIAoxOTk5LTEwLTI4IDA1OjIzICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaDoKCiAgIHVfaW50OC8xNi8zMl90IHR5cGVzIG5vIGxvbmdlciBuZWVkZWQgZm9yIFdJTjMyIGJ1aWxkcy4KICAgCjE5OTktMTAtMjggMDQ6NTUgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERhdmUncyBjb21tZW50IGFib3V0IHByZV9wYXJzZSBldGMuIHdhcyB0b28gZ29vZCB0byBsb3NlIGluIGUtbWFpbC4KICAgCjE5OTktMTAtMjcgMTc6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiB3YXRjaCBmb3IgbnVsbCBjb21tdW5pdGllcyB3aGVuIHByaW50aW5nIGRlYnVnIHN0YXRlbWVudHMuCiAgIAoxOTk5LTEwLTI3IDE3OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBiYWlsIGlmIHdlIGNhbid0IGZpbmQgYW4gaW5kZXggaW4gdGhlIG1pYiB0cmVlIHRvIHVzZSBmb3IKICAgICBicmVha2luZyBhbiBvaWQgYXBhcnQuCiAgIAoxOTk5LTEwLTI3IDE3OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkZWQgbW9yZSBpbmNsdWRlIGZpbGVzLgogICAKMTk5OS0xMC0yNyAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZCBkZWZhdWx0X3N0b3JlLmggYW5kIHNubXBfbG9nZ2luZy5oCiAgIAoxOTk5LTEwLTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmg6CgogICAtIChsY2RfdGltZS5oKTogZGVmaW5lIGFuZCBjb21tZW50IExDRF9USU1FX1NZTkNfT1BUIGJldHRlci4KICAgCjE5OTktMTAtMjcgMTQ6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oKToKICAgICAtIG1hcmsgcmVnaW9ucyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZGVmYXVsdF9zdG9yZS4zIG1hbnVhbCBwYWdlLgogICAKMTk5OS0xMC0yNyAxNDozNiAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywKICAgZGVmYXVsdF9zdG9yZS4zLmJvdCwgZGVmYXVsdF9zdG9yZS4zLmgsCiAgIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjM6CgogICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICAgIGRlZmF1bHRfc3RvcmUuMy5oLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBzbm1wX2FnZW50X2FwaS4zKToKICAgICAtIG5ldyBtYW51YWwgcGFnZXM6IGRlZmF1bHRfc3RvcmUuMywgc25tcF9hZ2VudF9hcGkuMy4KICAgCjE5OTktMTAtMjcgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogc2ltcGxlIGRlYnVnZ2luZyBzbyB5b3UgY2FuIHdhdGNoIHN0dWZmIHJlZ2lzdGVyLgogICAKMTk5OS0xMC0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gKE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgYSBoZWFkZXIgZmlsZSB0bwogICAgIHdyYXAgYXJvdW5kIHRoZSB2YXJpb3VzIGFnZW50IGluY2x1ZGUgZmlsZXMuCiAgIAoxOTk5LTEwLTI3IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmgpOiBwcm90b3R5cGUgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KICAgCjE5OTktMTAtMjcgMTQ6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggdXAgdWNkLXNubXAtY29uZmlnLmggYnVpbGRpbmcuCiAgIAoxOTk5LTEwLTI2IDEwOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBBbGxvdyB1bnNpZ25lZCByYW5nZSBmb3IgY291bnRlci9nYXVnZS90aW1ldGlja3MgKGZpeCBCVUcjODQgcGVyIFNhbmRlciBTdGVmZmFubikuCiAgIAoxOTk5LTEwLTI1IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBwYXJzZS5jKTogaGFjayB0byBkbyB3aWxkIGNhcmQgc2VhcmNoZXMgZm9yIGEgbWliIG5vZGUuCiAgIAoxOTk5LTEwLTI1IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGVuYWJsZSAtcCBwcmludGluZyBvZiBvbmx5IGEgc2VjdGlvbiBvZiB0aGUgbWliIHRyZWUuCiAgIAoxOTk5LTEwLTI1IDE0OjEyICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMKLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgLSAqOiBjb25maWd1cmUgc3VwcG9ydCBmb3IgZG1hbGxvYyBtYWxsb2MgZGVidWdnZXIgKHd3dy5kbWFsbG9jLmNvbSkKICAgCjE5OTktMTAtMjUgMTQ6MDggIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcGQuY29uZi41LmRlZjogbWlub3IgcXVpcmsKICAgCjE5OTktMTAtMjUgMTQ6MDcgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSBzbm1wZGVsdGEuYzogQ09VTlRFUjY0IHdpbGwgZGVyZWZlcmVuY2UgZnJlZWQgcG9pbnRlcgogICAKMTk5OS0xMC0yNSAxMzo1NiAgbmJhCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoCiwgZXZhbF90b29scy5zaDoKCiAgIC0gUlVOVEVTVFMsIFRFU1RDT05GLnNoIGV2YWxfb25lc2NyaXB0LnNoIGV2YWxfdG9vbHMuc2g6IHN1cHBvcnQgbm9uLWJhc2gKICAgCXNoZWxscyAoZWNobyAtbiB2cyBlY2hvIFxcYykuIERvbid0IHJlcXVpcmUgLiBpbiBQQVRICiAgIAoxOTk5LTEwLTI1IDEzOjQwICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gY29uZmlndXJlLmluLCBwcm9jLmM6IHN1cHBvcnQgZm9yIEZyZWVCU0QgMi4xIHdoZXJlIHBzIGRvZXNuJ3QgaGF2ZSBjIGZsYWcKICAgCjE5OTktMTAtMjUgMTM6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogZml4IGEgbWVtb3J5IGxlYWsgaW4gdGhlIExpbnV4IHBhcnQKICAgCjE5OTktMTAtMjUgMDg6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtaWIuYywgc2NhcGkuYzoKCiAgIG1pbm9yIHJld29yayB0byBjbGFyaWZ5IHNpZ25lZCBjb21wYXJlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoxOTk5LTEwLTI0IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIHByZW1pYiBkaXJlY3RpdmVzIHdlcmVuJ3QgZ2V0dGluZyByZWFkIGR1ZSB0byBhIG1pc3NpbmcgbmVnYXRpb24gKCEpLgogICAgIC0gbW9yZSBwYXJzaW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgogICAKMTk5OS0xMC0yNCAwODoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZml4ICJtaWJzIiBhbmQgIm1pYmRpcnMiIC5jb25mIGRpcmVjdGl2ZXMgdG8gcHJvcGVybHkKICAgICBoYW5kbGUgbXVsdGlwbGUgY2FsbHMgKGFkZGl0aXZlKSBhbmQgJysncyBhbmQgdGhpbmdzLgogICAKMTk5OS0xMC0yNCAwODoyNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiB0eXBvLgogICAKMTk5OS0xMC0yNCAwODoyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNOTVBDT05GUEFUSCB1c2VzIHN5c2NvbmZkaXIgbm90IGRhdGFkaXIuCiAgIAoxOTk5LTEwLTIyIDE1OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBwcmludCBzdHJpbmcgYmFzZWQgT0lEcyBiZXR0ZXIuCiAgIAoxOTk5LTEwLTIyIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oCiwgc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBrZXl0b29scy5jLAogICAgIGtleXRvb2xzLmgsIHNjYXBpLmMpOgogICAgIC0gdXNlIG9wZW5zc2wgZm9yIG1kNS9zaGEgc3VwcG9ydCAoZnJvbSBPbGFmdXIgR3VkbXVuZHNzb24pLgogICAKMTk5OS0xMC0yMiAxMDoxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERpc3BsYXkgX3NvbWVfIG9jdGV0IHN0cmluZyBpbmRpY2VzIG9mIG9iamVjdCBpZGVudGlmaWVycyBhcyBxdW90ZWQgcHJpbnRhYmxlLgogICBTaG91bGQgYmUgZXhwYW5kZWQgdG8gaGFuZGxlIG90aGVyIElOREVYIHR5cGVzLgogICAKMTk5OS0xMC0yMiAwOTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIGhleCBzdHJpbmdzIGluc2lkZSBvaWRzLgogICAKMTk5OS0xMC0yMiAwNzozOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZWQgZHVwbGljYXRlZCB2YXJpYWJsZSBpbiBhIG5lc3RlZCBibG9jay4gQVJnIQogICAKMTk5OS0xMC0yMiAwNjoyOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgRml4IEJVRyAjODMuCiAgIAoxOTk5LTEwLTIxIDEyOjU0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIG1lbW9yeV9zb2xhcmlzMi5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KICAgCjE5OTktMTAtMjEgMTI6MzEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNtYWxsIHBhdGNoIGZyb20gTS4gTGF1a2thbmVuIHRvIGZpeCBIUCBhQ0MgYnVpbGQuCiAgIAoxOTk5LTEwLTIxIDEyOjA5ICBtc2xpZmNhawoKICAgKiBtYW4vOiBzbm1wX2FwaS4zLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBkLjEuZGVmCiwgc25tcG5ldHN0YXQuMSwgc25tcHRlc3QuMToKCiAgIEZpeCBCVUcjNzgKICAgCjE5OTktMTAtMjEgMTA6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB1c2Ugc25tcF9vcGVuX2V4LgogICAKMTk5OS0xMC0yMSAxMDo0MSAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wbmV0c3RhdC9tYWluLmM6CgogICByZW1pbmRlcnMgZm9yIHNubXBfc2Vzc19wZXJyb3IgdXNhZ2UgYWZ0ZXIgb3Blbi4KICAgc25tcHRhYmxlLmMgLSBvcGVuL2Nsb3NlIHNlc3Npb24gZnJvbSBtYWluKCkuCiAgIG5ldHN0YXQvbWFpbi5jIC0gdXNlIHNubXBfc2Vzc19wZXJyb3IuCiAgIAoxOTk5LTEwLTIxIDEwOjM5ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBGaXh1cHMgZm9yIGJ1aWxkaW5nIHdpdGggTVNWQysrLiAobm8gaHB1eC5jLCBzdXBwbHkgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUykuCiAgIAoxOTk5LTEwLTIxIDEwOjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMKLCBzbm1wX2FwaS5oOgoKICAgbWliLmMgLSByZXN0b3JlIGxpbmUgc3RvbXBlZCBpbiBteSBsYXN0IHVwZGF0ZS4KICAgcmVhZF9jb25maWcuYyAtIGRyb3AgdW51c2VkIHZhcmlhYmxlLgogICBzbm1wX2FwaS5jIC0gbmV3IG1ldGhvZCBzbm1wX29wZW5fZXggcmVwbGFjZXMgc2V0IGludGVybmFsIGhvb2sgZnVuY3Rpb25zLgogICAKMTk5OS0xMC0yMSAxMDoyNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciBmcm9tIHdpdGhpbiB0aGUgbGlicmFyeS4KICAgCjE5OTktMTAtMjEgMTA6MjAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3Igd2l0aG91dCBzcGVjaWZ5aW5nIHNubXBfZXJybm8gX291dHNpZGVfIHRoZSBsaWJyYXJ5LgogICAKMTk5OS0xMC0yMSAxMDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZG5hbWUuImhpIi4ndGhlcmUnIGluIGdldF9tb2R1bGVfbm9kZSgpIGFzIHdlbGwuCiAgIAoxOTk5LTEwLTIwIDE4OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBlbmFibGUgb2lkIHBhcnNlciB0byBoYW5kbGUgc2ltcGxlIGVtYmVkZGVkIHN0cmluZ3MgaW4gb2lkcwogICAgIGFuZCB0byB0cmFuc2xhdGUgdGhlbSBpbnRvIG9pZCBzZWdtZW50cy4KICAgICBFRzogLjEuMy5cImhlbGxvXCIuXCdoaVwnIC0+IC4xLjMuNS4xMDQuMTAxLjEwOC4xMDguMTExLjEwNC4xMDUKICAgCjE5OTktMTAtMjAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogcGFyc2VkIHN0cmluZ3MgZnJvbSBvaWQncyBpbmNsdWRlIG51bGwgdGVybWluYXRvcnMuCiAgIAoxOTk5LTEwLTE1IDA3OjA5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgZGVmYXVsdF9zdG9yZS5jOgoKICAgLShkZWZhdWx0X3N0b3JlLmMsIGNhbGxiYWNrLmMpIGZpeAogICBidWcgaW4gYXJyYXktYm91bmRhcnkgY2hlY2sgaW4gc25tcGxpYi9jYWxsYmFjay5jCiAgIHJlcG9ydGVkIGJ5IEJlcnQgSG9sc3RlaW4gMTUgT2N0IDE5OTkuCiAgIAoxOTk5LTEwLTEzIDA3OjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvbWFzdGVyX2FkbWluLmMsIG1pYklJL3N5c3RlbV9taWIuYwo6CgogICAtIG1hc3Rlcl9hZG1pbi5jLCBzeXN0ZW1fbWliLmg6IGluY2x1ZGVzIGZvciBwcm90b3R5cGVzCiAgIAoxOTk5LTEwLTEzIDAzOjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICBhZGQgbWlzc2luZyBwcm90byBmb3Igc2F2ZV9wZXJzaXN0ZW50LgogICAKMTk5OS0xMC0xMiAwNjowNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVmaW5lIGFkZHJlc3MgbGVuZ3RoIGZvciBGcmVlQlNEIHBsYXRmb3JtLgogICAKMTk5OS0xMC0xMiAwNTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIG1pYi5jOgoKICAgbWliLmM6IHF1aWNrX3ByaW50IGlzIGV4cG9zZWQgZm9yIENNVV9DT01QQVRJQkxFIGJ1aWxkcy4KICAgbGNkX3RpbWUuYzogY29tbWVudGVkIHVudXNlZCBkdW1wX2V0aW1lbGlzdF9lbnRyeSB1bmRlciBTTk1QX1RFU1RJTkdfQ09ERS4KICAgCjE5OTktMTAtMDcgMDk6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogTm90aWZpY2F0aW9uIHN1cHBvcnQKICAgCjE5OTktMTAtMDcgMDg6NDIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudF90cmFwLltjaF0pOiBJbXByb3ZlIGFjY2Vzc2liaWxpdHkgZm9yIHN1YmFnZW50cwogICAKMTk5OS0xMC0wNyAwNzoyNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaCwgc25tcGQuaDoKCiAgIC0gKGFnZW50X3RyYXAuYyBhZ2VudF90cmFwLmggYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wZC5oKToKICAgICAtICBSZS13cml0ZSBvZiBhZ2VudCB0cmFwIGhhbmRsaW5nOgogICAJUHJvdmlzaW9uIGZvciB2MSB0cmFwcyB3aXRoIHZhcmJpbmRzCiAgIAlDb25zb2xpZGF0ZSB2MSBhbmQgdjIgdHJhcCBzaW5rIGxpc3RzCiAgIAlQcmVsaW1pbmFyeSBJTkZPUk0gc3VwcG9ydAogICAKMTk5OS0xMC0wNiAxNjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgIC0gU2F2ZSBhbmQgcGFyc2Ugb2xkZXIgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzIHRvIG1ha2Ugc3VyZSBkYXRhIGlzCiAgICAgICBub3QgbG9zdCBkdXJpbmcgc3RvcmFnZSBjcmFzaGVzLgogICAgIC0gRml4IFNOTVB2MyBlbmdpbmVJRCBwcm9iZXM6IFBEVSdzIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBOVUxMIHZhcmJpbmRsaXN0LgogICAKMTk5OS0xMC0wNiAwODo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIC0gKGZpeHByb2MpOiBuZXcgY29tbWVudGVkIHZlcnNpb24uCiAgIAoxOTk5LTEwLTA1IDIyOjIyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIHN1YmFnZW50LmM6IGluY2x1ZGUgc3lzdGVtLmggZm9yIHByb3RvdHlwZSBmb3IgY2FsY3VsYXRlX3RpbWVfZGlmZgogICAKMTk5OS0xMC0wNSAyMjoxOCAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiBmaXhlcyB0byByZXBvcnQgaW52YWxpZCBlbmdpbmVJZAogICAKMTk5OS0xMC0wNSAyMTo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSBzbm1wX2RlYnVnLmg6IG1ha2UgdGhlIERFQlVHKiBtYWNyb3Mgc2FmZSBmb3IgdXNlIGluIGNvbXBvdW5kIHN0YXRlbWVudHMKICAgCjE5OTktMTAtMDUgMDc6MjMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMsIHN1YmFnZW50LmMKOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOiBXb3JraW5nIFNFVCBzdXBwb3J0CiAgIAoxOTk5LTEwLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogYWRkZWQgaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSgpLgogICAKMTk5OS0xMC0wNCAxMzo1MiAgbmJhCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgLSBzdWJhZ2VudC5oLCBzdWJhZ2VudC5jLCBtaWJfbW9kdWxlcy5jOiBwcmVfaW5pdF9zdWJhZ2VudCBjb25mdXNlcwogICAJY29uZmlndXJlIGludG8gYmVsaWV2aW5nIHRoZXJlIGlzIGEgaW5pdF9zdWJhZ2VudCBmdW5jdGlvbi4KICAgCVJlbmFtZSB0byBzdWJhZ2VudF9wcmVfaW5pdAogICAKMTk5OS0xMC0wNCAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNTZXJ2aWNlcyBjb25maWd1cmFibGUuCiAgIAoxOTk5LTEwLTA0IDEzOjM4ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgKOgoKICAgLSB2YXJpb3VzOiBpbmNsdWRlIGFkZGl0aW9ucyBhbmQgZml4ZXMgdG8ga2lsbCB3YXJuaW5ncwogICAKMTk5OS0xMC0wNCAxMTo1MiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBjb25maWd1cmUuaW46CXJlbW92ZSAtcGVkYW50aWMgZnJvbSAtLXdpdGgtZGV2ZWxvcGVyLCBhbmQgdGhlIHN5c3RlbSBoZWFkZXJzCiAgIAlhcmUgbm90IHByZXBhcmVkIGZvciBpdCAoYXQgbGVhc3Qgb24gTGludXggYW5kIE5ldEJTRCkKICAgCjE5OTktMTAtMDQgMTE6NTAgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46CWFsd2F5cyB1c2UgJChNQUtFKSBmb3IgbWFrZSBpbiBNYWtlZmlsZXMKICAgCjE5OTktMTAtMDQgMTE6NDggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIGFwcHMvc25tcHRyYXAuYwo6CgogICAtIChzbm1wX2FwaT8sIGludDY0Lj8gc25tcHRyYXAuYyk6IGFkZCBzb21lIGVycm9yIGNoZWNraW5nIGZvciB2YXJpYWJsZXMKICAgCjE5OTktMTAtMDQgMTA6MjIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogVHJpdmlhbCAncGluZycgaW1wbGVtZW50YXRpb24KICAgCjE5OTktMTAtMDQgMTA6MTcgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaAo6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5bY2hdCiAgICAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gQ29tcGxldGUgc3ViYWdlbnQgaGFuZGxpbmcgb2YgQWdlbnQgQ2FwYWJpbGl0aWVzIC8gc3lzT1JUYWJsZQogICAKMTk5OS0xMC0wNCAxMDoxNSAgZGF2ZXMKCiAgICogc25tcGxpYi9jYWxsYmFjay5oOgoKICAgLSAoc25tcGxpYi9jYWxsYmFjay5oKTogSW5jcmVhc2UgbnVtYmVyIG9mIGFwcGxpY2F0aW9uIGNhbGxiYWNrcyBzdXBwb3J0ZWQKICAgCjE5OTktMTAtMDQgMDk6NTggIGRhdmVzCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgLSAobWliX21vZHVsZXMuYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuW2NoXSk6CiAgICAgLSBFbnN1cmUgc3ViYWdlbnQgaXMgaW5pdGlhbGlzZWQgZWFybHkgKHByaW9yIHRvIE1JQiByZWdpc3RyYXRpb24sIGV0YykKICAgCjE5OTktMTAtMDQgMDk6NTMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgc25tcF92YXJzLmgsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBzbm1wX3ZhcnMuaCBtaWJJSS9zeXNPUlRhYmxlLmMKICAgICAgYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgIC0gSGFuZGxlIE1JQiByYW5nZSByZWdpc3RyYXRpb24sIGFuZCBjbGVhbiB1cCB3cmFwcGVyIGludGVyZmFjZXMKICAgCjE5OTktMTAtMDQgMDM6NTggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgpOgogICAgIC0gY29uc29saWRhdGUgZGVmaW5pdGlvbnMgb2YgZGVmYXVsdCBNSUIgcmVnaXN0cmF0aW9uIHByaW9yaXR5CiAgIAoxOTk5LTEwLTAyIDE0OjI4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgc3ViYWdlbnQuYzoKCiAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgLSBGaXggYSBwcm9ibGVtIHdpdGggcmUtdXNlZCBQRFUgc3RydWN0dXJlcyBiZWluZyBmcmVlZCB0d2ljZS4KICAgCjE5OTktMTAtMDEgMDk6NDggIGRhdmVzCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBGaXggaW5jb21wYXRhYmlsaXR5IGluIGFnZW50IGxpYnJhcnkgbmFtZXMKICAgCjE5OTktMDktMzAgMDE6MDkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICAtIChtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jKToKICAgICAtIHByb3RlY3QgYWdhaW5zdCBOVUxMIHV0bXAgZmlsZSAoZnJvbSBGYWJyaWNlIER1cHJlKQogICAKMTk5OS0wOS0yOSAyMzo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9ocHV4LmM6CgogICBSZW1vdmUgdW51c2VkIGZpbGUuLiBzbm1wbGliL2hwdXguYwogICAKMTk5OS0wOS0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIC0gKG1pYl9tb2R1bGVzLmMpOiBpbmNsdWRlIG5ldGluZXQvaW4uaAogICAKMTk5OS0wOS0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCk6IGZpeCBidWdzLgogICAKMTk5OS0wOS0yOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gKG1pYjJjLnZhcnR5cGVzLmNvbmYpOiByZW1vdmVkIGV4dHJhIFxuLgogICAKMTk5OS0wOS0yOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogcnVuIG50b2hsIG9uIGlwIGFkZHJlc3NlcyBzdG9yZWQgaW4gYSBsb25nLgogICAKMTk5OS0wOS0yOSAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAobWFzdGVyX2FkbWluLmMpOiAtV2FsbCBmaXhlcyBhbmQgZm91bmQgYSBtaXNzaW5nIH0uCiAgIAoxOTk5LTA5LTI5IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50Lmg6CgogICAtIChjbGllbnQuaCk6IGRlZmluZSBERUZBVUxUX01JQl9QUklPUklUWSB0byAyNTUuCiAgIAoxOTk5LTA5LTI5IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIChjbGllbnQuYyk6IHRoYXRzICJ0aW1ldmFsIiBub3QgInRpbWV2YWxlIiBEYXZlIChoZWhlKS4KICAgCjE5OTktMDktMjkgMTY6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gbmV3IGV4dHJhY3Rpb24gYW5kIGZyZWVpbmcgZnVuY3Rpb25zLgogICAgIC0gYnVnIGZpeCwgbWlzc2luZyBhIG1hbGxvYyBzaXplIGJ5IG9uZSAoZWxlY3RyaWMgZmVuY2UgaXMgdmVyeSBjb29sKS4KICAgCjE5OTktMDktMjkgMTY6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZGVkIE1pa2UgTWljaGF1ZCB0byB0aGUgdGhhbmsgeW91IGxpc3QuCiAgIAoxOTk5LTA5LTI5IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gZml4IFJBTkxJQiB0ZXN0aW5nIGZvciAtLWVuYWJsZS1zaGFyZWQuCiAgIAoxOTk5LTA5LTI5IDE0OjMxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSb2J1c3QgY29weSBvZiBpbmZvcm1hdGlvbiB0byB0cmVlLCBpbXBvcnRfbGlzdCwgZGlzcGxheSBoaW50cy4KICAgCjE5OTktMDktMjkgMTI6MTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsCiAgIHByb3RvY29sLmgsIHN1YmFnZW50LmM6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvKik6ICBBc3NvcnRlZCBpbXByb3ZlbWVudHMhCiAgIAoxOTk5LTA5LTI5IDExOjQ4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOiBDaGFuZ2UgaW4gTUlCIHJlZ2lzdHJhdGlvbiBpbnRlcmZhY2UKICAgCjE5OTktMDktMjkgMTE6NDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOgogICAgIC0gTW92ZSBzZXR0aW5nIGFnZW50IHN0YXJ0IHRpbWUgdG8gZWFybGllciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UKICAgICAgIChzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZGVuIGluIHN1YmFnZW50cyB3aXRoIHRoZSBtYXN0ZXIncyB2YWx1ZSkKICAgCjE5OTktMDktMjkgMTE6NDMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aXNpb24gdG8gdW5yZWdpc3RlciBNSUJzIGJ5IHNlc3Npb24KICAgCjE5OTktMDktMjkgMTE6MzggIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtICdDaGlsZHJlbicgbm9kZXMgbm93IGhhdmUgYSBkaWZmZXJlbnQgc3RhdHVzLCBhbmQgc2hvdWxkbid0IGJlIGZyZWVkLiBPb3BzIQogICAKMTk5OS0wOS0yOSAxMTozNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgLSBJbXByb3ZlIHJlZ2lzdHJ5IGVycm9yIGhhbmRsaW5nCiAgICAgLSBDb3JyZWN0bHkgaGFuZGxlIHVucmVnaXN0ZXJpbmcgTUlCIHJlZ2lvbnMKICAgCjE5OTktMDktMjkgMTE6MjMgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogQ29ycmVjdCB2YWx1ZSBvZiBkZWZhdWx0IHJlZ2lzdHJhdGlvbiBwcmlvcml0eQogICAKMTk5OS0wOS0yOSAxMToxNyAgZGF2ZXMKCiAgICogc25tcGxpYi86IG10X3N1cHBvcnQuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaAo6CgogICAtIChtdF9zdXBwb3J0Lmggc25tcF9hcGkuW2NoXSk6IFN1cHBvcnQgZm9yIHNlc3Npb24gYW5kIGluY29taW5nIHRyYW5zYWN0aW9uIElEcwogICAKMTk5OS0wOS0yOSAxMToxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogcHJvdGVjdCBzbm1wX2Nsb3NlKCkgYWdhaW5zdCBhIG51bGwgU2Vzc2lvbnMgbGlzdAogICAKMTk5OS0wOS0yOCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaAosIHNubXBfdmFycy5jLCBzbm1wZC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAtIG1ha2UgbGlidWNkYWdlbnQgYW5kIGxpYnVjZG1pYnMgYXMgc2VwZXJhdGUgbGlicmFyaWVzLiAgSW4gdGhlb3J5LAogICAgICAgeW91IHNob3VsZG4ndCBuZWVkIGxpYnVjZG1pYnMgdG8gdXNlIGxpYnVjZGFnZW50LgogICAKMTk5OS0wOS0yNyAxNjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IE9wcHM6IERTX0xJQl9ET05UX1JFQURfQ09ORklHUyBuZWVkZWQgYW4gIS4KICAgCjE5OTktMDktMjIgMTI6NTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgLSBJbXByb3ZlZCBlcnJvciBzdGF0dXMgYWdncmVnYXRpb24uCiAgIAoxOTk5LTA5LTIyIDEwOjAxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSW1wcm92ZWQgQWdlbnRYIHJlc3BvbnNlIGhhbmRsaW5nCiAgIAoxOTk5LTA5LTIyIDEwOjAwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEVuc3VyZSByZWdpc3RyeSBpcyBpbml0aWFsaXNlZCBjb3JyZWN0bHkgb24gc3ViYWdlbnRzCiAgIAoxOTk5LTA5LTIyIDA5OjU4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IHJlbW92ZSByZWR1bmRhbnQgcm91dGluZXMKICAgCjE5OTktMDktMjIgMDk6NTQgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgdmFyX3N0cnVjdC5oKToKICAgICBDaGFuZ2UgdGhlIHdheSB0aGUgTUlCIHJlZ2lzdHJ5IGhhbmRsZXMgcmVnaXN0ZXJlZCByYW5nZXMuCiAgICAgVGhpcyBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IChhcyB3ZWxsIGFzIGJlaW5nIHJhdGhlciBzaW1wbGVyLCBJTUhPKQogICAKMTk5OS0wOS0yMiAwOTozNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAtIEVuc3VyZSBsb2NhbCBzeXNPUlRhYmxlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBzdWJhZ2VudCB2ZXJzaW9ucwogICAKMTk5OS0wOS0yMiAwOTozMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3ZpZGUgbWV0aG9kIGZvciBwcmlvcml0aXNlZCByZWdpc3RyYXRpb24KICAgCjE5OTktMDktMjIgMDk6MzEgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jKTogc3R1cGlkIHR5cG8KICAgCjE5OTktMDktMjIgMDk6MjcgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogc3R1cGlkIHR5cG8KICAgCjE5OTktMDktMjEgMTA6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtKG1pYi5jKSB1bmRvIGVycm9uZW91cyBjaGFuZ2UgdG8gaW5pdF9taWIgKHRoYW5rcyBOQiEpCiAgIAoxOTk5LTA5LTIxIDA5OjMyICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBkLmMpOiBTaW1wbGUgcnVuLXRpbWUgZHVtcCBvZiByZWdpc3RlcmVkIE1JQnMKICAgCjE5OTktMDktMjEgMDk6MjUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMpOiBIYW5kbGUgcGFyc2luZyBudWxsLWxlbmd0aCB2YXJpYWJsZXMKICAgCjE5OTktMDktMjEgMDk6MjEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGhhbmRsZSBhZGRpbmcgJ2Vycm9yJyB0eXBlIHZhcmlhYmxlcyB0byBhIFBEVQogICAKMTk5OS0wOS0xNyAxNTozNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogdXBkYXRlIHRvIDIuMTMuCiAgIAoxOTk5LTA5LTE3IDExOjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBtYWtlIG1vZHVsZV9tYXAqIGFuZCB0b2tlbnMgc3RydWN0dXJlcyBzdGF0aWMgKG9ubHkgdXNlZCBpbiBwYXJzZS5jID8pCiAgIAoxOTk5LTA5LTE3IDExOjI0ICBtc2xpZmNhawoKICAgKiBGQVEsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oOgoKICAgLXJlbW92ZSBvbGQtc3R5bGUgaW5pdCBmb3IgcmVwbGFjZSBtaWIgZmVhdHVyZS4KICAgCjE5OTktMDktMTcgMTE6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgLSByZW1vdmUgdW5uZWVkZWQgdXNlIG9mIHN0YXRpYyB2YXIgImxhc3QiCiAgIAoxOTk5LTA5LTE3IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hcGkuMzoKCiAgIC0gKHNubXBfYXBpLjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAtIGZpeCBjb21tZW50cy4KICAgCjE5OTktMDktMTYgMTQ6MTYgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLXBlciBhZ3JlZW1lbnQgd2l0aCBNYXJra3UsIG5vIHN1cHBvcnQgbmVlZGVkIGZvciBTb2xhcmlzLXNwZWNpZmljIHRocmVhZHMuCiAgIAoxOTk5LTA5LTE1IDExOjMwICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbXRfc3VwcG9ydC5jLAogICBzbm1wbGliL210X3N1cHBvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZmluZSB0dW5pbmcgbXQgc3VwcG9ydAogICAKMTk5OS0wOS0xNSAwOTo0NSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zCiwgc25tcF9vcGVuLjMsIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMKLCBzbm1wX3NlbmQuMywgc25tcF9zZXNzX2FzeW5jX3NlbmQuMywKICAgc25tcF9zZXNzX2Nsb3NlLjMsIHNubXBfc2Vzc19lcnJvci4zLCBzbm1wX3Nlc3NfaW5pdC4zCiwgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsCiAgIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywgc25tcF9zZXNzX3Nlc3Npb24uMywKICAgc25tcF90aW1lb3V0LjM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMsIHNubXBfb3Blbi4zLAogICAgIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMsIHNubXBfc2VuZC4zLAogICAgIHNubXBfc2Vzc19hc3luY19zZW5kLjMsIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywKICAgICBzbm1wX3Nlc3NfaW5pdC4zLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLCBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsCiAgICAgc25tcF9zZXNzX3Nlc3Npb24uMywgc25tcF90aW1lb3V0LjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAtIGNyZWF0ZSBzb21lIGZha2Ugc291cmNpbmcgbWFuIHBhZ2VzIGZvciBmdW5jdGlvbnMuCiAgIAoxOTk5LTA5LTE1IDA2OjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgaW5jbHVkZSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmggZm9yIGJlbmVmaXQgb2YgbWliX21vZHVsZV9kb3RfY29uZi5oCiAgIAoxOTk5LTA5LTE0IDEzOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwYXJzZS5jIC0gYW5vdGhlciBmaXggZm9yIG5vZGU6IGNvbnNpZGVyIE5VTEwgbmFtZSBvciBOVUxMIHBhcmVudAogICAKMTk5OS0wOS0xNCAxMzowMCAgbWFyegoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IGZpeCBzcHVyaW91cyBlcnJvciBtZXNzYWdlIHdoZW4gc25tcF9wYXJzZV9vaWQgZmFpbHMKICAgCjE5OTktMDktMTQgMDk6NTMgIG1zbGlmY2FrCgogICAqIEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCjoKCiAgIC0oRkFRLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL3BhcnNlLiopIGFkZCByZXBsYWNlIE1JQiBjYXBhYmlsaXR5KGV4cGVyaW1lbnRhbCkKICAgCjE5OTktMDktMTMgMjA6MjAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgcmUtYXNzZXJ0IE5pZWxzJyBwYXRjaCB0byBzbm1wX3NlbmQgdG8gZnJlZSB2Mi92MSBUcmFwLVBEVXMKICAgCjE5OTktMDktMTMgMTU6MDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYwosIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaDoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICAgIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIHN1YmFnZW50LmMsCiAgICAgc3ViYWdlbnQuaCwgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgIC0gZnVydGhlciBzZXBhcmF0aW9uIG9mIGFnZW50IGNodXJjaCBhbmQgc3RhdGU6CiAgICAgICAtIHVzZSBjYWxsYmFja3MgZXZlcnl3aGVyZSBuZWVkZWQgdG8gbm90IGNhbGwgbWliIG1vZHVsZSBjb2RlIGRpcmVjdGx5LgogICAgICAgLSBnZXQgcmlkIG9mIGFsbCBpbnN0YW5jZXMgb2YgVVNJTkdfIGluIGxpYmFnZW50IGNvZGUuCiAgIAoxOTk5LTA5LTEyIDIyOjAwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gc25tcF9pbXBsLmg6IHJlbW92ZWQgc29tZSB1bnVzZWQvdW5uZWVkZWQgZGVmaW5lcy9zdHJ1Y3RzCiAgIAoxOTk5LTA5LTEyIDIxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGFkZCBhIG1pc3NpbmcgaW5jbHVkZSBmaWxlLgogICAKMTk5OS0wOS0xMiAyMTo1OCAgbmJhCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICAtIFRFU1RDT05GLnNoOiBmaXggc29tZSBleHBvcnRzIHRvIGV4cG9ydCB0aGUgcmlnaHQgdmFyaWFibGUuCiAgIAoxOTk5LTA5LTEyIDIxOjU3ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBhZ2VudC8qLCBzbm1wbGliLyo6IG1hbGxvYyBmaXhlcywgc29tZSBwcm92b2tlZCBieSB0aGUgY29ycmVjdGVkCiAgIAlzbm1wX3NlbmQgc2VtYW50aWNzLgogICAKMTk5OS0wOS0xMiAyMTo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCiAgIAoxOTk5LTA5LTA5IDEzOjU5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtKG1pYi5jLCBwYXJzZS5jKSBtaWIuYyBwcmludF90cmVlX25vZGUgdGVzdCBkaXNwbGF5IG51bGwgdHlwZSB3aXRoIHJhbmdlCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlLmMgd29yayBhcm91bmQgY29yZSBkdW1wIGZyZWVpbmcgVENzIHRoYXQgc3BlY2lmeSByYW5nZXMuCiAgIAoxOTk5LTA5LTA5IDAyOjMxICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHdpbjMyL2NvbmZpZy5oOgoKICAgLSgqY29uZmlnKikgdHVybiBvbiByZXNvdXJjZSBsb2NraW5nIHdpdGggLS1lbmFibGUtcmVlbnRyYW50LgogICAKMTk5OS0wOS0wOSAwMjoyMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICAtKHdpbnN0dWIuYykgSGFjayB0byBhbGxvdyBzbm1wbmV0c3RhdCAtYSB0byB3b3JrIG9uIEFJWDQgKHNpYykuCiAgIAoxOTk5LTA5LTA4IDIyOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtKG1pYmluY2wuaCkgY29tbWVudCBvdXQgZHVwbGljYXRlICNpbmNsdWRlIGhlYWRlciBsaW5lcy4KICAgCjE5OTktMDktMDggMjI6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIHZhcl9zbXV4X3dyaXRlIGZpeGVkIHBlciBNaWtlIE1pY2hhdWQgYW5kIE5pY2sgQW1hdG8KICAgCjE5OTktMDktMDggMTc6NTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtdF9zdXBwb3J0LmMsIG10X3N1cHBvcnQuaDoKCiAgIC0obXRfc3VwcG9ydC4qKSBPcmlnaW5hbCBieSBNYXJra3UgTGF1a2thbmVuLCBjaGFuZ2VzIGJ5IE0uIFNsaWZjYWsKICAgCjE5OTktMDktMDggMTc6NDggIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtKGNvbmZpZyosd2luMzIvKixzbm1wbGliLyopIHJlc291cmNlIGxvY2tpbmcgb3JpZ2luYWxseSBmcm9tIE1hcmtrdSBMYXVra2FuZW4KICAgCjE5OTktMDktMDggMTc6MDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBtaWJJSS9pY21wLmMsCiAgIG1pYklJL2ludGVyZmFjZXMuYywgbWliSUkvaXAuYywgbWliSUkvdGNwLmMsCiAgIG1pYklJL3VkcC5jOgoKICAgbWliaW5jbC5oLCBtaWJncm91cC9taWJJSS8qIC0gZml4dXAgZm9yIEN5Z1dpbjMyIGJ1aWxkCiAgIAoxOTk5LTA5LTA4IDEzOjA0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIC0oc25tcGxpYi9zbm1wX2NsaWVudC4qKSBhZGQgc25tcF9zcGxpdF9wZHUsIHNubXBfdmFyYmluZF9sZW4gbWV0aG9kcy4KICAgCjE5OTktMDktMDggMTM6MDAgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKHRlc3RpbmcvUlVOVEVTVFMpIHByZWZpeCBQQVRIIHdpdGggLiBhbmQgLi4gLCBhcyB0aGUgc2NyaXB0IGNoYW5nZXMgZGlyLgogICAKMTk5OS0wOS0wOCAwNzo1MiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwcm9jZXNzaW5nICgtbGQgYW5kIHNpbWlsYXIpCiAgIAoxOTk5LTA5LTA4IDA3OjUxICBuYmEKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSBzbm1wZC4xLmRlZjogZml4IGEgZm9ybWF0dGluZyBwcm9ibGVtCiAgIAoxOTk5LTA5LTA4IDA3OjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJpbmNsLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIGFnZW50eC9zdWJhZ2VudC5jLAogICBtaWJJSS9zeXNPUlRhYmxlLmM6CgogICAtICh2YXJpb3VzKTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoxOTk5LTA5LTA4IDA3OjQ4ICBuYmEKCiAgICogYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSB2YXJfc3RydWN0Lmg6IHRoZSBBZ2VudHggY29kZSB1c2VzIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIHR5cGUuCiAgIAoxOTk5LTA5LTA4IDA3OjQ2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSBzbm1wX2FwaS5oOiBtb3ZlIGluY2x1c2lvbiBwcm90ZWN0aW9uIHRvIHRoZSByZWFsIGJlZ2lubmluZy9lbmQgb2YgdGhlIGZpbGUKICAgCjE5OTktMDktMDggMDc6NDUgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgbG9hZGF2ZS5jKTogU29sYXJpcyAyLjcgaGFzIGdldGxvYWRhdmcgcHJvdG90eXBlCiAgIAoxOTk5LTA5LTA4IDA1OjE2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpbmNsdWRlIHJlYWRfY29uZmlnLmgKICAgCjE5OTktMDktMDcgMjA6MTkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIHNubXB0cmFwLmMgLSByZXdvcmsgZml4IGJ1ZyAjNTQgKG1pc3NlZCBlbHNlKS4KICAgCjE5OTktMDktMDcgMjA6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIG1hbi9zbm1wX2FwaS4zLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKGFnZW50X3RyYXAuYyxzbm1wdHJhcC5jLHNubXBfYXBpLlszY10pIC0gc25tcF9mcmVlX3BkdSBmaXggQnVnICM1NCBwZXIgTmllbHMgQi4KICAgLShzbm1wbmV0c3RhdC9pZi5jKSAtIGZpeCBmb3IgR0VUTkVYVCBwZXIgTmllbHMgQi4KICAgCjE5OTktMDktMDcgMTU6NTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgZml4IFVubGlua2VkIE9JRCBwcmludCB3aGVuIG9iamVjdCBpZGVudGlmaWVyIGhhcyBubyBwYXJlbnQuCiAgIAoxOTk5LTA5LTA3IDE1OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtKHBhcnNlLmMpIHJlbW92ZSB1bm5lZWRlZCBzdHJkdXAgdG8gRmlsZSB2YXJpYWJsZSBmcm9tIGluaXRfbWliX2ludGVybmFscy4KICAgCjE5OTktMDktMDcgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0oc25tcF9hcGkuaCkgc3RydWN0IHBkdSBhbmQgc25tcF9zZXNzaW9uIGFncmVlOiBsb25nIHR5cGUgZm9yIHZlcnNpb24gbWVtYmVyLgogICAKMTk5OS0wOS0wNyAxNToyMyAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAod2luMzIvY29uZmlnLmgpIC0gc2V0IFNOTVBDT05GUEFUSCB0byBzdWNjZWVkIGNvbXBpbGU7CiAgICh3aW4zMipsaWJzbm1wLmRlZikgLSBhZGQgbmV3IHNubXBfZ2V0X3Rva2VuIHRvIGxpc3QuCiAgIAoxOTk5LTA5LTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmg6CgogICAoZGVmYXVsdF9zdG9yZS4qKSAtIG1ha2UgM3JkIHBhcmFtIHRvIGRzX3NldF9zdHJpbmcgdHlwZSBvZiBjb25zdCBjaGFyICouCiAgIAoxOTk5LTA5LTA3IDE1OjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzLmMgLSBzaWxlbmNlIHR5cGUgd2FybmluZyBmcm9tIE1TVkMrKy4KICAgCjE5OTktMDktMDcgMTQ6NDcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLShwYXJzZS4qKSBmaXggc21hbGwgbWVtb3J5IGxlYWtzOyBhbGxvdyBJTkRFWHtJTlRFR0VSLi4ufSBjbGF1c2VzOwogICAgICAgICAgICAgIGFsbG93IGxhcmdlciBERVNDUklQVElPTiBjbGF1c2VzIFttYXggODE5Ml0uCiAgIAoxOTk5LTA5LTAzIDE1OjAxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtb3JlIEJTREkgc3lzdGVtIHZlcnNpb25zIGxpc3RlZC4KICAgCjE5OTktMDktMDMgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCBmYWxsIG9mZiB0aGUgZW5kIG9mIHRoZSBzZWFyY2ggdHJlZS4KICAgCjE5OTktMDktMDMgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChzbm1wbGliL01ha2VmaWxlLmluKTogaW5zdGFsbCBtb3JlIGxpYnJhcnkgaGVhZGVycy4KICAgCjE5OTktMDktMDMgMTM6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOgogICAgIC0gaW5zdGFsbCBsaWJhZ2VudC5hLgogICAgIC0gbWtkaXJoZWlyIG9uIG5lZWRlZCBuZXcgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzLgogICAKMTk5OS0wOS0wMyAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgYWdlbnQgaGVhZGVyIGZpbGVzLgogICAKMTk5OS0wOS0wMyAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgc25tcF92YXJzLmxpbnV4LmgKOgoKICAgLSAoaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oKTogcmVtb3ZlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KICAgCjE5OTktMDktMDIgMDg6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IG9wcHMuICBGb3Jnb3QgYSBzaHV0ZG93biBuYW1lIGNoYW5nZSBpbnN0YW5jZS4KICAgCjE5OTktMDktMDIgMDc6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IHNodXRkb3duX3N1YmFnZW50IC0+IHN1YmFnZW50X3NodXRkb3duIHNvIGNvbmZpZ3VyZQogICAgIGRvZXNuJ3QgZmluZCBpdC4KICAgCjE5OTktMDktMDIgMDY6MzggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCiAgIAoxOTk5LTA4LTMxIDA5OjI2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtKGFnZW50X3RyYXAuYykgYWx3YXlzIGZyZWUgUERVIGFmdGVyIHNubXBfc2VuZC4KICAgCjE5OTktMDgtMzEgMDg6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0oYWdlbnRfdHJhcC5jKSBmaXggcmVjZW50IG1lbW9yeSBsZWFrLCBhbmQgc2l6ZW9mKG9iamlkX3NubXB0cmFwKSBidWcuCiAgIAoxOTk5LTA4LTMwIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jKTogeWV0IG1vcmUgZGVidWdnaW5nLgogICAKMTk5OS0wOC0zMCAwOTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIG1hc3Rlci5jLAogICBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jOgoKICAgLSAoY2xpZW50LmMsIG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jKToKICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAgIC0gdXNlIG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzIGluc3RlYWQgb2YgZXh0ZXJuYWwgdmFyaWFibGVzLgogICAKMTk5OS0wOC0zMCAwOTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5oLCBhZ2VudC9kc19hZ2VudC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywKICAgICBhZ2VudF90cmFwLmgsIGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywKICAgICBzbm1wZC5jLCB1dGlsX2Z1bmNzLmMsIHN5c09SVGFibGUuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgIC0gcmVzdHJ1Y3R1cmUgdGhlIGFnZW50IGludG8gdHdvIHBpZWNlczogYSBsaWJyYXJ5IGFuZCBhIGFwcGxpY2F0aW9uLgogICAgICAgLSBuZWVkcyBtdWNoIG1vcmUgd29yay4KICAgICAgIC0gbWFueSBwYXJhbWV0ZXJzIGFyZSBub3cgY29udHJvbGxlZCBieSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncwogICAgICAgICB0byBoZWxwIHJlbGlldmUgY29tcGlsZSB0aW1lIGJpbmRpbmdzLgogICAgIC0gbWVyZ2UgaW5pdF9zbm1wIGFuZCB0aGUgY3VzdG9tIHZlcnNpb24gY2FsbGVkIGluc2lkZSB0aGUgYWdlbnQuCiAgICAgLSBhZGQgYSBuZXcgcGxhY2UgZm9yIHRyYXAgc3BlY2lmaWMgYWdlbnQgY29kZSAoYWdlbnRfdHJhcC5bY2hdKS4KICAgICAtIHByb2JhYmx5IG90aGVyIHRoaW5ncyBJJ3ZlIGZvcmdvdHRlbiB0aGF0IEkgZGlkLgogICAKMTk5OS0wOC0yOCAwNzoyOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgIC0gYWRkIC9ldGMvc25tcCB0byBkZWZhdWx0IGNvbmYgZmlsZSBwYXRoIHRvIG1ha2UgUmVkSGF0IGhhcHB5LgogICAKMTk5OS0wOC0yOCAwNzoxOSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfYWxhcm0uMy4KICAgCjE5OTktMDgtMjcgMDk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgIC0gU3VzYW5uZSBPc3RlZCBwb2ludGVkIG91dCBhIGxhY2sgb2YgI2lmIEhBVkVfU1lTX1BBUkFNX0guCiAgIAoxOTk5LTA4LTI3IDA4OjAzICBtc2xpZmNhawoKICAgKiBUT0RPOgoKICAgSG93YXJkIFNwaW5kZWwgc3VnZ2VzdHMgYW4gQVBJIGZvciB0cmFwcyB3aXRoIHBhc3NfcGVyc2lzdC4KICAgCjE5OTktMDgtMjcgMDc6MzUgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW46CgogICAtKGNvbmZpZ3VyZSosIHNlZHNjcmlwdCopIGNoYW5nZSAuLi5FWFRFTklTLi4uICB0byAuLi5FWFRFTlNJLi4uCiAgIAoxOTk5LTA4LTI2IDEzOjQwICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBkb24ndCBidWlsdCB0YXJnZXRzIHRoYXQgYXJlIG5vIGxvbmdlciB1c2VkCiAgIAoxOTk5LTA4LTI2IDEzOjE4ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBpbXByb3ZlZCBQQVRIIHNldAogICAKMTk5OS0wOC0yNCAxNzo0MyAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgbm8gbmVlZCB0byBidWlsZCB0YXJnZXRzIGluIHRlc3QgcnVsZS4KICAgCjE5OTktMDgtMjQgMTc6MzkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKFJVTlRFU1RTKSBleHBvcnQgUEFUSCBiZWZvcmUgdXNlCiAgIAoxOTk5LTA4LTI0IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAuMSApCiAgIAoxOTk5LTA4LTI0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMC4xCiAgIAoxOTk5LTA4LTI0IDE2OjQ5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBUMi5zaCwKICAgVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0X2tleWNoYW5nZS5zaCwgdGVzdF9rdWwuc2g6CgogICAtKHRlc3RpbmcvKikgcnVuIHRlc3RzIHdoZW4gcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLCBhbmQgd2hlbgogICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgogICAKMTk5OS0wOC0yNCAxNjowNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtKGNvbmZpZ3VyZS4qKSBtb3ZlIHN0YXRlbWVudCBhYm91dCB1Y2REZW1vUHVibGljIGludG8gY29tbWVudCBmaWVsZC4KICAgCjE5OTktMDgtMjQgMTY6MDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogNC4wLjEgdXBkYXRlCiAgIAoxOTk5LTA4LTI0IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHZlcnNpb24gc2V0dGluZyBpbiBzbm1wX2FwaS5jLiAgTm90IG5lZWRlZCB0aGVyZS4KICAgCjE5OTktMDgtMjQgMTU6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIGFwcGx5IE5pY2sgQW1hdG8ncyBwYXRjaDogcHJldmVudCBTTVVYIGNsb3NlIG9uIHBhcnNlIG9yIGVycm9yLgogICAKMTk5OS0wOC0yNCAxNDoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N3cnVuLmMsIG1pYklJL2ljbXAuYywKICAgbWliSUkvaXAuYywgdWNkLXNubXAvZGlzay5jLCB1Y2Qtc25tcC9wcm9jLmM6CgogICAtKGhvc3QvaHJfc3dydW47bWliSUkvaWNtcCxpcDt1Y2Qtc25tcC9kaXNrLHByb2MpIGxvZ19wZXJyb3IgLS0+IHNubXBfbG9nX3BlcnJvcgogICAKMTk5OS0wOC0yNCAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hbGxfc3lzdGVtLmg6CgogICAtIChhbGxfc3lzdGVtLmgpOiByZW1vdmUuICBhZ2Fpbi4KICAgCjE5OTktMDgtMjQgMTQ6MDUgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSh0b3AvTWFrZWZpbGUuaW4pIC0gcmVtb3ZlIG1vcmUgZ2VuZXJhdGVkIGZpbGVzIHdpdGggZGlzdGNsZWFuIHJ1bGUuCiAgIAoxOTk5LTA4LTI0IDEzOjQxICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlbW92ZSBzbm1wdjMgc3VwcG9ydDotKQogICAKMTk5OS0wOC0yNCAxMzozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXB2My5jKToKICAgICAtIHByb3ZpZGUgZGVmVmVyc2lvbiB0b2tlbiBzdXBwb3J0IGluIHNubXAuY29uZiAoc29ydCBvZiBoYWNraXNoKS4KICAgCjE5OTktMDgtMjQgMTM6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogY2hlY2sgZm9yIG51bGwgcmVzcG9uc2UgcG9pbnRlci4KICAgCjE5OTktMDgtMjQgMTI6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBjb3JyZWN0IHN5c09SVGFibGUgZW50cnkuCiAgIAoxOTk5LTA4LTI0IDEwOjI1ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCiAgIAoxOTk5LTA4LTI0IDA2OjE5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFQuYywgZXRpbWV0ZXN0LmMsCiAgIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmM6CgogICBBZGQgIi4iIHRvIFBBVEggZm9yIFJVTlRFU1RTOyBEcm9wIG9wdHJlc2V0IHRvIGJ1aWxkIG1vc3QgcGxhdGZvcm1zCiAgIAoxOTk5LTA4LTI0IDA1OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgQVNOX1NIT1JUX0xFTiBoYWNrIC0ga25vd24gdG8gZHVtcCBjb3JlIGluIGFnZW50LgogICAKMTk5OS0wOC0yNCAwNDo0NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfbG9nZ2luZy5jOgoKICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KICAgCjE5OTktMDgtMjMgMTY6NDQgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgc25tcHVzbS4xIG1hbnVhbCBwYWdlLgogICAKMTk5OS0wOC0yMyAxNjoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wICkKICAgCjE5OTktMDgtMjMgMTY6MTcgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogcmVtb3ZlIHZlcnNpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24KICAgCjE5OTktMDgtMjMgMTY6MTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWw6CgogICAtIChUMDI4c25tcHYzZ2V0ZmFpbCk6IHNubXB2MyBnZXQgZmFpbHVyZSB0ZXN0LgogICAKMTk5OS0wOC0yMyAxNjowNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdmVyc2lvbiB1cGRhdGUKICAgCjE5OTktMDgtMjMgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhBQ0shIGZpeHVwIHNob3J0IGxlbmd0aCAoZmlyc3QgcHV0IGNvcnJlY3QgY29tbXVuaXR5IHN0cmluZyBpbiBwZHUtPiApLgogICAKMTk5OS0wOC0yMyAxNDowMiAgbXNsaWZjYWsKCiAgICogRkFRLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZXNjcmliZSBVU0VfQVNOX1NIT1JUX0xFTiBpbiBGQVEsIGFuZCBpbXBsZW1lbnQgaW4gX3NubXBfYnVpbGQuCiAgIAoxOTk5LTA4LTIzIDEzOjU0ICBuYmEKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBfdmFycy5jOiBtb3ZlIHNvbWUgLXYgbG9nZ2luZyB0byBhIG1vcmUgcmF0aW9uYWwKICAgCXBsYWNlLgogICAKMTk5OS0wOC0yMyAxMjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChwcm90b2NvbC5jKTogYWxsb3cgTlVMTCBzdHJpbmdzIGluIGFnZW50WCBwYWNrZXRzLgogICAKMTk5OS0wOC0yMyAwOTowMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBUZXN0IHBvaW50ZXIgYmVmb3JlIGRlcmVmZXJlbmNlIGluIHVzbV9mcmVlX3VzZXIKICAgCjE5OTktMDgtMjMgMDk6MDIgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFNwZWxsIGNoZWNrOiBzaW1pbGFyCiAgIAoxOTk5LTA4LTIzIDA5OjAwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzIgYnVpbGQgZml4ZXMKICAgCjE5OTktMDgtMjMgMDc6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYW5zaSBtZW50aW9uZWQuCiAgIAoxOTk5LTA4LTIzIDA2OjE0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgd2luMzIvY29uZmlnLmg6CgogICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBjb25maWdfbG9hZF9taWIKICAgCjE5OTktMDgtMjIgMjM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIGFnZW50eC9tYXN0ZXJfYWRtaW4uYzogZmFpbHVyZSB3aGVuIGNsb3NpbmcgZmlyc3QgYWdlbnRzIHNlc3Npb24KICAgCSh1bmluaXRpYWxpemVkIHZhcmlhYmxlKS4KICAgCjE5OTktMDgtMjIgMTc6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiB2ZXJzaW9uIC0+IHVfbG9uZy4KICAgCjE5OTktMDgtMjIgMTc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTA4LTIyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIC0td2l0aG91dC1kdW1teS12YWx1ZXMgaXMgZGVmYXVsdCBhZ2Fpbi4KICAgICAtIGNsZWFudXAgb2YgLS1oZWxwIHN0dWZmLgogICAgIC0gZml4IG9mIHBlcmlzdGVudCBkaXJlY3RvcnkgY3JlYXRpb24uCiAgIAoxOTk5LTA4LTIyIDE3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLzogSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUKLCBpcGZ3Y19rZXJuZWxfaGVhZGVycy5oLCBpcGZ3Y2hhaW5zLmMsCiAgIGlwZndjaGFpbnMuaCwgbGliaXBmd2MuYywgbGliaXBmd2MuaDoKCiAgIC0gKGlwZmNoYWlucyk6IHJlbW92ZWQgZnJvbSBkaXN0cmlidXRpb24uICBOZXdlciBvbmUgaW4gZnRwJ3MgY29udHJpYiBkaXIuCiAgIAoxOTk5LTA4LTIwIDE3OjEwICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNyApCiAgIAoxOTk5LTA4LTIwIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGxhc3QgbWludXRlIGNoYW5nZXMKICAgCjE5OTktMDgtMjAgMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBzbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfYXBpLmgsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCwgYXNuMS5jKTogNjRiaXQgY2xlYW51cC4KICAgCjE5OTktMDgtMjAgMTM6NTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSAoc25tcC5jb25mLjUuZGVmLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfbG9nZ2luZy5jKToKICAgICAtIHR1cm4gb2ZmIHRpbWUgc3RhbXAgbG9nZ2luZyBieSBkZWZhdWx0LiAgSXQgbXVzdCBiZSBleHBsaWNpdGx5CiAgICAgICByZXF1ZXN0ZWQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRvIHR1cm4gaXQgb24uCiAgICAgICAodGhlIHJlYXNvbiBpcyB0aGF0IGEgbG90IG9mIGxvZ2dpbmcgaXMgaW5jcmVtZW50YWwgaW4gbmF0dXJlIGFuZAogICAgICAgaXMgbm90IGxpbmUgYnVmZmVyZWQgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIGxvZ2dpbmcgcm91dGluZXMuCiAgICAgICBUaGUgb3RoZXIgc29sdXRpb24gaXMgdG8gaGF2ZSB0aGUgbG9nZ2luZyByb3V0aW5lcyBkZXRlY3Qgd2hlbiB0bwogICAgICAgcHJpbnQgdGltZXN0YW1wcyBieSB3YXRjaGluZyBvdXQgZm9yIFxuJ3MuICBCdXQsIG5vdCB0aGlzIHJvdW5kLgogICAKMTk5OS0wOC0yMCAxMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywKICAgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgIC0gbWFrZSBsb2dnaW5nIG9mIHRpbWVzdGFtcHMgb3B0aW9uYWwgYnkgYSBzbm1wLmNvbmYgZGlyZWN0aXZlLgogICAKMTk5OS0wOC0yMCAwMzo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gYWdlbnR4Lyo6IHZhcmlvdXMgcHJvdG90eXBlIGZpeGVzLCB0byBrZWVwIG51bWJlciBvZiB3YXJuaW5ncyBkb3duCiAgIAoxOTk5LTA4LTE5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmM6CgogICAtIChzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYyk6IFBhdGNoIGZyb20gZGxlbmdlbEBob21lLmNvbToKICAgICAtIGNoZWNrIGFyZ3VtZW50IGNvdW50IGZvciBtaW5pbXVtIG51bWJlci4KICAgCjE5OTktMDgtMTkgMTQ6MDkgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9hcGkuPywgc25tcGQuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6IHJlaW5zdGF0ZSBhZ2VudF9hZGRyIGluCiAgIAl0aGUgcGR1IHN0cnVjdHVyZSAodXNlZCBmb3IgdjEgdHJhcHMpLgogICAKMTk5OS0wOC0xOSAxMDo0MCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzOiBmcm9tIHNubXBfbG9nX3BlcnJvci4KICAgCUxvZyB3aGVuIHNubXBkIHJlY29uZmlndXJlcyBmb2xsb3dpbmcgYSBTSUdIVVAKICAgCjE5OTktMDgtMTkgMTA6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiByZW1vdmUgc29tZSBleHRyYW5lb3VzIFxuIGZyb20gc25tcF9sb2dfcGVycm9yIGNhbGxzLgogICAKMTk5OS0wOC0xOSAxMDozOCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzoJY29ycmVjbHkgY2FsbCBwcmUtcGFyc2UgaG9vaywgYWxzbyB3aGVuIG5vdCBkZWJ1Z2dpbmcKICAgCSh0aGlzIGtpbGxlZCB0aGUgbGlid3JhcCBjaGVjayBpbiBzbm1wZCkKICAgCjE5OTktMDgtMTkgMDI6MzUgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIHNubXBfbG9nZ2luZy5jLCBhZ2VudC92YXJpb3VzOiByZWluc3RhdGUgLWEgYW5kIC1WIGxvZ2dpbmcgKGFsbW9zdCkuCiAgIAl0aW1lc3RhbXAgZmlsZSBhbmQgc3RkZXJyIGxvZ2dpbmcuCiAgIAoxOTk5LTA4LTE5IDAyOjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IHJlbW92ZSBzb21lIGxlZnQgb3ZlciBkZWJ1ZyBvdXRwdXQKICAgCjE5OTktMDgtMTggMDk6MzAgIG5iYQoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgLSAobWFueSk6CWNoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIGxvZ2dpbmcgZnVuY3Rpb25zIHRvIGJlIHNubXBfKgogICAJZGVmYXVsdCBkb19zdGRlcnJfbG9nZ2luZyB0byAxLgogICAKMTk5OS0wOC0xOCAwOToyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAtIGludGVyZmFjZXMuPzogdXBkYXRlcyBmb3IgTGludXggdG8gaGFuZGxlIGxhcmdlIGNvdW50ZXJzIGFuZCB2aXJ0dWFsCiAgIAlpbnRlcmZhY2VzLgogICAKMTk5OS0wOC0xOCAwMjo1MSAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwKICAgc25tcGQuYywgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gc25tcGQuYywgYWdlbnRfcmVhZF9jb25maWcuPywgdmVyc2lvbmluZm8uYzogbW92ZSB0aGUgcmVjb25maWd1cmF0aW9uCiAgIAlvdXRzaWRlIHRoZSBzaWduYWwgaGFuZGxlci4KICAgCjE5OTktMDgtMTggMDI6NDAgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWdlbnQvc25tcGQuYzoJbW92ZSB0aGUgdGVybWluYXRpb24gcHJvY2Vzc2luZyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgogICAJdG8gYWZ0ZXIgdGhlIG1haW4gbG9vcCBoYXMgdGVybWluYXRlZC4KICAgCjE5OTktMDgtMTYgMTU6MDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwOgoKICAgLSAoVDEwMGFnZW50aHVwKTogYWRkZWQgbmV3IGFnZW50IGNhcGFiaWxpdHkgdGVzdCB0byB0ZXN0IGtpbGwgLUhVUC4KICAgCjE5OTktMDgtMTYgMTQ6NTkgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIHNubXBuZXRzdGF0L21haW4uYzogZW5hYmxlX3N0ZGVycmxvZygpIHNvIHRoYXQgd2UgZ2V0IGFuIGVycm9yIG1lc3NhZ2UKICAgCWZvciBiYWQgaG9zdCBuYW1lcy4KICAgCjE5OTktMDgtMTYgMTQ6NTggIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOiBhbGxvdyAtaSBhbmQgLW8gb3V0cHV0cyBldmVuIHdpdGggaW5jb21wbGV0ZSByZXNwb25zZXMKICAgCWZyb20gc25tcGQgKHN1Y2ggYXMgTGludXggdGhhdCBkb2VzIG5vdCByZXR1cm4gaWZJbk5VQ2FzdFBrdHMKICAgCXdpdGggdGhlIG5ldyBEVU1NWSBzZXR1cCkKICAgCjE5OTktMDgtMTMgMTY6MDYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTYgKQogICAKMTk5OS0wOC0xMyAxNjowNSAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgLSAocmVtb3ZlLWZpbGVzKTogcmVtb3ZlIHRoZSBJU1NVRVMgZmlsZSBmb3IgcmVsZWFzZXMuCiAgIAoxOTk5LTA4LTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSAoVEVTVENPTkYuc2gpOiBzdG9yZSB0aGUgcGVyaXN0ZW50IGRhdGEgaW4gYSB0ZW1wb3JhcnkgZmlsZS4gIHJlYWxseS4KICAgCjE5OTktMDgtMTMgMTU6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsCiwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIC0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6CiAgICAgLSBmaXhlZCB0byBjaGVjayBmb3IgIm5vc3VjaCIgZXJyb3JzIGFjdHVhbGx5IHJldHVybmVkLgogICAgIC0gc2hvcnRlbmVkIHRoZSBzbm1wdXNtIHRlc3QgZGVzY3JpcHRpb24uCiAgIAoxOTk5LTA4LTEzIDE1OjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgcmVtb3ZlIG1pYl9tb2R1bGVfbG9hZHMuaC4KICAgCjE5OTktMDgtMTMgMTU6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgY29uZmlnX2xvYWRfbWliIHBhcnNpbmcuCiAgIAoxOTk5LTA4LTEzIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcHJvcGVybHkgZG8gd2hhdCAtLXdpdGhvdXQtZHVtbXktdmFsdWVzCiAgICAgc2hvdWxkIGRvLgogICAKMTk5OS0wOC0xMyAxMjoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICB2YXJfcm91dGUuYyAtICNpZmRlZiBOT19EVU1NWSAtLT4gI2lmIE5PX0RVTU1ZIChsaWtlIHRoZSBvdGhlciB1c2VzKS4KICAgCjE5OTktMDgtMTMgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCBkbyBjYWNoaW5nIGZvciBOT19EVU1NWV9WQUxVRVMuCiAgIAoxOTk5LTA4LTEzIDExOjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfcHJpbnQuYywKICAgaG9zdC9ocl9wcm9jLmMsIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3aW5zdC5jCiwgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9hdC5jCiwgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLAogICBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAoaG9zdC9ocl9kZXZpY2UuYyxob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLGhvc3QvaHJfc3RvcmFnZS5jLAogICBob3N0L2hyX3N3aW5zdC5jLGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYyxtaWJJSS9hdC5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmMsbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLG1pYklJL3RjcC5jLAogICBtaWJJSS91ZHAuYyxtaWJJSS92YXJfcm91dGUuYykgLSAjaWYgTk9fRFVNTVlfVkFMVUVTIChoZWxwIG91dCBjb25maWd1cmUpCiAgIAoxOTk5LTA4LTEzIDA5OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgdXNlIE5PX0RVTU1ZX1ZBTFVFUyBieSBkZWZhdWx0LgogICAKMTk5OS0wOC0xMyAwNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDgtMTMgMDc6MTIgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCjoKCiAgIC0gKE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgogICAKMTk5OS0wOC0xMyAwNzoxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6ICJtYWtlIHRlc3QiIGluIHRvcCBsZXZlbCBNYWtlZmlsZS4KICAgCjE5OTktMDgtMTMgMDI6NDYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBleGFtcGxlcy91Y2REZW1vUHVibGljLmgsIGlwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuaCwgbWlzYy9pcGZ3YWNjLmMsIG1pc2MvaXBmd2FjYy5oCiwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbXV4L3NubXBfYmdwLmMKLCBzbXV4L3NubXBfYmdwLmgsIHNtdXgvc25tcF9vc3BmLmMsCiAgIHNtdXgvc25tcF9vc3BmLmgsIHNtdXgvc25tcF9yaXAyLmMsIHNtdXgvc25tcF9yaXAyLmgKOgoKICAgLSAoZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5bY2hdCiAgICAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5bY2hdIG1pc2MvaXBmd2FjYy5bY2hdCiAgICAgIHRhcmdldC9zbm1wVGFyZ2V0e0FkZHIsUGFyYW1zfUVudHJ5LltjaF0KICAgICAgc211eC9zbm1wXyouW2NoXSk6CiAgICAgIC0gUmVnaXN0ZXIgbW9kdWxlcyBkeW5hbWljYWxseSBhdCBydW4tdGltZQogICAKMTk5OS0wOC0xMyAwMjo0NCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBEcm9wIHN1cHBvcnQgZm9yICdzdGF0aWMnIG1vZHVsZSByZWdpc3RyYXRpb24gdmlhIGNvbmZpZ3VyZQogICAKMTk5OS0wOC0xMiAxNjo0NiAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FOgoKICAgLSAoTkVXUywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KICAgCjE5OTktMDgtMTIgMTY6NDEgIGhhcmRha2VyCgogICAqIEZBUSwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwLjE6CgogICAtIChGQVEsIHNubXBjbWQuMSwgc25tcHRyYXAuMSk6IG1pbm9yIGRvYyB1cGRhdGVzLgogICAKMTk5OS0wOC0xMiAxNjoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAyMHNubXB2M2dldCwKICAgVDAyMXNubXB2M2dldG5leHQsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICAtIChTdjNjb25maWcsIFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0LAogICAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiB0ZXN0IHVwZGF0ZXMsIGluY2x1ZGluZyBhIG5ldyBzbm1wdXNtIHRlc3QuCiAgIAoxOTk5LTA4LTEyIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xOgoKICAgLSAoc25tcHVzbS4xKTogbm8tZmlsbCB0aGUgLmNvbmYgZmlsZSBlbnRyaWVzLgogICAKMTk5OS0wOC0xMiAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gKHNubXAuY29uZi41LmRlZik6IHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgdG9rZW4gbGlzdC4KICAgCjE5OTktMDgtMTIgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjE6CgogICAtIChzbm1wdXNtLjEpOiBhZGRlZCB0byBkZXNjcmliZSB0aGUgc25tcHVzbSBjb21tYW5kLgogICAKMTk5OS0wOC0xMiAwOTozMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtKHNubXB1c20uYykgLSBmaXggcG90ZW50aWFsIHJlcGVhdGVkICJmcmVlIiBvbiBtYWxsb2MgZmFpbHVyZS4KICAgCjE5OTktMDgtMTEgMjE6NTMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOgloYW5kbGUgbm9uLWNvbnRpZ3VvdXMgaWZUYWJsZS4gQWxzbyBtYWtlIHRoZQogICAJY291bnRlcnMgdW5zaWduZWQuCiAgIAoxOTk5LTA4LTExIDIxOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBocl9zdG9yYWdlLmM6CXJlbW92ZSB0byBmb3Jnb3R0ZW4gZGVidWcgbGluZXMuCiAgIAoxOTk5LTA4LTExIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAtIE1ha2UgcGVyc2lzdGVudCBjYWNoZSBjb25mb3JtIHRvIGEgbW9yZSBzZWN1cmUgdW1hc2suCiAgIAoxOTk5LTA4LTExIDEwOjUwICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzLCBhcHBzL3NubXB1c20uYzoKCiAgIC0gKFJFQURNRS5zbm1wdjMsIHNubXB1c20uYyk6IHVzZSBzcyBzZXNzaW9uIHRvIGdldCBwcm9iZWQgZW5naW5lSUQuCiAgIAoxOTk5LTA4LTEwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmM6CgogICAtIChsY2RfdGltZS5jKTogZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoxOTk5LTA4LTEwIDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHByaW50IC1IIHVzYWdlIHRvIHN0ZGVyci4KICAgCjE5OTktMDgtMTAgMTc6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlLgogICAKMTk5OS0wOC0xMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZm9yY2UgdjMgZW5naW5lSUQgc2V0dGluZyB0byBzb21ldGhpbmcgYm9ndXMgdG8KICAgICBnZXQgYXJvdW5kIGxvY2FsIGNvbmZpZ3VyYXRpb24gZGF0YSBzdG9yZSB0aW1lIHN5bmNocm9uaXphdGlvbiBjb25mbGljdHMuCiAgIAoxOTk5LTA4LTEwIDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSAodXNtVXNlci5jKTogVW0sIGNvdWdoLCBhY3R1YWxseSByZWdpc3RlciB1cyBpbiB0aGUgKmluaXQqIGZ1bmN0aW9uLi4uCiAgIAoxOTk5LTA4LTEwIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcHJvdGVjdCBhZ2FpbnN0IGV2aWwgbWliIG1vZHVsZXMgZnJvbSBtb2RpZnlpbmcKICAgICBtZW1vcnkgdGhleSBzaG91bGRuJ3QgYmUgbW9kaWZ5aW5nIHlldC4KICAgICAtIChpZmRlZidlZCBmb3Igc3BlZWQgcHJvZmlsaW5nIGxhdGVyKS4KICAgCjE5OTktMDgtMTAgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogbG9nIHZlcnNpb24gbnVtYmVyIGFmdGVyIHN0ZGVyciBpcyBvcHRpb25hbGx5IGNsb3NlZC4KICAgCjE5OTktMDgtMTAgMTA6MDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRml4IGZvciBidWlsZCAobm8gcGFnZXNpemUgdmFyIGRlZmluZWQgZm9yIGxpbnV4KS4KICAgCjE5OTktMDgtMTAgMDk6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jOgoKICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUixXQVJOSU5HKQogICAKMTk5OS0wOC0xMCAwNDo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgaW50ZXJmYWNlcy5jIHZhcl9yb3V0ZS5jIHNubXBfbG9nZ2luZy5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjE5OTktMDgtMTAgMDQ6NDggIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBzbm1wbmV0c3RhdC9pZi5jOglmaXhlcyBmb3Igc25tcG5ldHN0YXQgLWkgb24gdmlydHVhbCBpbnRlcmZhY2VzCiAgIAoxOTk5LTA4LTEwIDA0OjQ3ICBuYmEKCiAgICogYWdlbnQva2VybmVsLmM6CgogICBhZ2VudC9rZXJuZWwuYzoJYWJvcnQgb24ga3ZtX29wZW4gZmFpbHVyZXMKICAgCjE5OTktMDgtMTAgMDQ6NDYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc25tcGxpYi9taWIuYzoJZml4IGhhbmRsaW5nIG9mIG51bWVyaWMgb2lkcyBhbmQgcmVwb3J0aW5nIGVycm9ycwogICAKMTk5OS0wOC0xMCAwNDo0NSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBjb25maWd1cmUuaW4gY29uZmlnLmguaW4gY29uZmlndXJlIHMvbmV0YnNkIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgogICAJc3VwcG9ydCBmb3IgTmV0QlNEL3NwYXJjIGFuZCBOZXRCU0QgMS40CiAgIAoxOTk5LTA4LTA5IDE1OjA3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgc25tcHVzbS5jIC0gYWx3YXlzIGNsZWFyIGZpZWxkX2xlbiBpZiByZWYgaXMgdmFsaWQgcHRyOwogICBzbm1wX2FwaS5jIC0gZG9uJ3Qgb3ZlcndyaXRlIGNvbW11bml0eSBwb2ludGVyIHdpdGggc2VjdXJpdHlBdXRoUHJvdG8gcG9pbnRlcgogICAKMTk5OS0wOC0wOSAxNDoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBlcnJvciBjaGVjay9udWxsIHNldCAqYWZ0ZXIqIGZyZWVpbmcgdGhlIG9sZCBtZW1vcnkuCiAgIAoxOTk5LTA4LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IG1vcmUgZXJyb3IgY2hlY2tpbmcgaW4gdGhlIE1BS0VfRU5UUlkgbWFjcm8uCiAgIAoxOTk5LTA4LTA5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgL2Rldi9yYW5kb20gdGVzdC4KICAgCjE5OTktMDgtMDkgMTE6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtZDUuYywgc25tcF9hcGkuYzoKCiAgIC0obWQ1LmMpIGZpeCByZWFkIHBhc3QgZW5kIHByb2JsZW0KICAgLShzbm1wX2FwaS5jKSBmaXggbG9zaW5nIGNvbW11bml0eSBzdHJpbmcgcHJvYmxlbQogICAKMTk5OS0wOC0wOSAxMDo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgKG1hbnkpOgludWtlIHZhcmlvdXMgcHJvdG90eXBlIHdhcm5pbmdzCiAgIAoxOTk5LTA4LTA5IDA5OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0oc25tcC5jKSBmaXggYnVmZmVyIG92ZXJmbG93IGluIHhkdW1wLCBvZiBhbGwgcGxhY2VzICg3NyBzL2IgNzg7IHVzaW5nIDgwKQogICAKMTk5OS0wOC0wOSAwNjo1NCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBsaWJzbm1wLmRlZiAtIHJlbW92ZSBwcmludF9vaWRfcmVwb3J0IGRpc2FibGUgb3B0aW9ucwogICAKMTk5OS0wOC0wOSAwNjo1MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHNubXBkLmMgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlCiAgIAoxOTk5LTA4LTA5IDA2OjUwICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMKOgoKICAgIHNubXBkZWx0YSwgdHJhbnNsYXRlLCB0cmFwZCkgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlOyByZW1vdmUgZGlzYWJsZXMgZm9yIHByaW50X29pZF9yZXBvcnQgaW4gdHJhbnNsYXRlLgogICAKMTk5OS0wOC0wOSAwNjo0OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaAo6CgogICBtaWIuKiwgcGFyc2UuKiAtIG1vdmUgcHJpbnRfb2lkX3JlcG9ydCBhbmQgbWluaW9ucyB3aG9sbHkgaW50byBtaWIuYwogICAKMTk5OS0wOC0wOSAwMTowMiAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogTmluZSBuZXcgcXVlc3Rpb25zLCBwbHVzIGFzc29ydGVkIHR3ZWFrcyBmb3IgdGhlIG5ldyByZWxlYXNlLgogICAKMTk5OS0wOC0wOSAwMDoyNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlLmM6CXBhcnNlIGFnZW50IGNhcGFiaWxpdGllcwogICAKMTk5OS0wOC0wNiAwNzozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oc25tcF9sb2dnaW5nLiopIC1hZGRlZCBSYWduYXIncyBwYXRjaCAjMyB3aXRoIHNtYWxsIHRvdWNoZXMuCiAgIAoxOTk5LTA4LTA2IDA2OjAyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL2F0LmMsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywKICAgbWliSUkvdWRwLmMsIG1pYklJL3Zhcl9yb3V0ZS5jLCBob3N0L2hyX2RldmljZS5jCiwgaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYywKICAgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMsIGhvc3QvaHJfc3dydW4uYwosIGhvc3QvaHJfc3lzdGVtLmM6CgogICAtIChtaWJJSS8qLmMgaG9zdC8qLmMpOiBEb24ndCBwcm92aWRlICJkdW1teSIgdmFsdWVzICh1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkKQogICAKMTk5OS0wOC0wNiAwNTo1OSAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIGNvbmZpZ3VyZS10aW1lIGZsYWcgdG8gY29udHJvbCBwcm92aXNpb24gb2YgImR1bW15IiB2YWx1ZXMKICAgCjE5OTktMDgtMDUgMTE6MTEgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wX2FwaS4zOgoKICAgc25tcF9hcGkuMyAtIGRlc2NyaWJlIHNubXBfZXJyb3IoKSwgcmVwbGFjZXMgc25tcF9lcnJubyBhbmQgc25tcF9nZXRfZXJybm8oKQogICAKMTk5OS0wOC0wNSAxMDo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgYWdlbnR4L2NsaWVudC5jIC0gcmVtb3ZlIHJlZnMgdG8gc25tcF9zeW5jaHtzZXR1cCxyZXNldH0gb3JpZ2luYWwgdmVyc2lvbgogICAKMTk5OS0wOC0wNSAwMzoyNSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIGNvbmZpZy5zdWIgLSBwYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW4gdG8gc3VwcG9ydCBIUFVYIDExCiAgIAoxOTk5LTA4LTA0IDEyOjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jIC0gZHVtbXkgZnVuY3Rpb25zIHNubXBfc3luY2hfe3NldHVwLHJlc2V0fSBhbmQgc25tcF9nZXRfZXJybm8uCiAgIAoxOTk5LTA4LTA0IDA5OjE3ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0oY29uZmlndXJlKikgLSBLZW4gSG9ybnN0ZWluOiBmaXggdGVzdCB4eGdldGhvc3RieW5hbWUsIHh4Z2V0c2VydmJ5bmFtZS4KICAgCjE5OTktMDgtMDQgMDU6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVuZG8gcGF0Y2ggYXJvdW5kIFNvbGFyaXMnIGNvbmZpZ3VyZSBmYWlsdXJlIHRvIHJlZ2lzdGVyIEhBVkVfR0VUSE9TVEJZTkFNRS4KICAgCjE5OTktMDgtMDQgMDM6NDggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLShzbXV4LmMpIC0gcGF0Y2ggc3VwcGxpZWQgYnkgTmljayBBbWF0byB0byBmaXggQVNOX0lQQUREUkVTUyBwYXJzZS4KICAgCjE5OTktMDgtMDQgMDE6NDYgIGRhdmVzCgogICAqIG1pYnMvVUNELURFTU8tTUlCLnR4dDoKCiAgIC0gKG1pYnMvVUNELURFTU8tTUlCLnR4dCk6IFJlLXJlc29sdmUgZmlsZSAmIHVjZERlbW8gT0lEIGNvbmZsaWN0CiAgIAoxOTk5LTA4LTAzIDE0OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHNubXBfZGVidWcuYyAtIHNpZ25lZCBjb21wYXJpc29uIGZvciBsZW4gaW4gZGVidWdtc2dfaGV4dGxpLgogICAKMTk5OS0wOC0wMyAxMjo1MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICBzbm1wX2RlYnVnLmggLSBmaXggIndhcm5pbmc6IEFOU0kgQyBmb3JiaWRzIGNvbmRpdGlvbmFsIGV4cHIgd2l0aCBvbmx5IG9uZSB2b2lkIHNpZGUiLgogICAKMTk5OS0wOC0wMyAwODozNyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUkVBRE1FLndpbjMyIC0gcnVudGltZSBsaWIgYW5kIGRlYnVnIGluZm8gY291cnRlc3kgb2YgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0wOC0wMyAwNzo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICB2YWNtX3ZhcnMuYyAtIGNvcHkgY29tbXVuaXR5IHN0cmluZywgbnVsbCB0ZXJtaW5hdGUsIHRoZW4gZGVidWcgcHJpbnQKICAgCjE5OTktMDgtMDMgMDc6MDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1Zy5oIC0gbW92ZSBERUJVR1RSQUNFIGZyb20gZGVidWdtc2dfaGV4dGxpIHRvIERFQlVHRFVNUFNFVFVQCiAgIAoxOTk5LTA4LTAzIDA3OjAwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHNubXBfZGVidWcuYyAtIHJlbW92ZSB0cmFjZSBtZXNzYWdlcyBmcm9tIGRlYnVnbXNnX2hleHRsaS4KICAgCjE5OTktMDgtMDMgMDY6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgYXNuMS5jIC0gZml4IG91dC1vZi1ib3VuZCBhcnJheSB3cml0ZSBhbmQgbWVtb3J5IGxlYWsgaW4gcGFyc2luZyBzdHJpbmdzLgogICAKMTk5OS0wOC0wMyAwNDo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYyAtIHJlbW92ZSAiQlkiIGZyb20gSEFWRV9HRVRIT1NUQllOQU1FIChTb2xhcmlzIDIuNS4xIHdyb25nISkKICAgCjE5OTktMDgtMDIgMjI6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1ZyAtIERFQlVHTVNHIG1hY3JvcyBjYWxsIHNubXBfZ2V0X2RvX2RlYnVnZ2luZyBiZWZvcmUgaW52b2tpbmcgZGVidWdtc2cqIGZ1bmN0aW9ucy4KICAgCjE5OTktMDgtMDIgMDQ6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlIC0gc2hhbWUgb24gbWUgZm9yIG5vdCBjb21waWxlIHRlc3RpbmcgZmlyc3QhCiAgIAoxOTk5LTA4LTAyIDA0OjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBwYXJzZS5jOgoKICAgYXNuMSwgcGFyc2UpIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4gKE1KUy11c2UgeGNhbGxvYyBpbiBwYXJzZSkKICAgCjE5OTktMDctMzAgMTQ6MTkgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCBSRUFETUUKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU1ICkKICAgCjE5OTktMDctMzAgMTQ6MTggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0zMCAxNDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgL3Zhci91Y2Qtc25tcCBleGlzdC4gIFdlIHNob3VsZCBkbyBhIHBlcm1pc3Npb24KICAgICBzZXQgYXMgd2VsbC4KICAgCjE5OTktMDctMzAgMTQ6MTAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bi4KICAgCjE5OTktMDctMzAgMTQ6MDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogZ2VuZXJpYyB2MyBpbnN0cnVjdGlvbnMsIGJ1dCBoYXMgZXJyb3JzLgogICAKMTk5OS0wNy0zMCAwODozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbm8gc3RydWN0IHNvY2thZGRyX2RsIGluIEFJWCAzLgogICAKMTk5OS0wNy0zMCAwODowMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIHZzbnByaW50ZiBjaGVjayBhbmQgSEFWRV9WU05QUklOVEYgY29uc3RhbnQKICAgCjE5OTktMDctMzAgMDc6MzEgIGRhdmVzCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CiAgIAoxOTk5LTA3LTMwIDA3OjAxICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKICAgCjE5OTktMDctMzAgMDY6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbm9uLWV4aXN0ZW50IHNubXBfdmFyc19tMm0uaAogICAKMTk5OS0wNy0zMCAwNjo0NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIHVzZSB0cmFkaXRpb25hbCBLJlIgY29tbWVudGluZzsgbm90IGFsbCAiQyIgY29tcGlsZXJzIGFjY2VwdCAiLy8iIGNvbW1lbnRzLgogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICB3aW4zMi9jb25maWcuaCAtIGRlZmluZSBIQVZFX0dFVEhPU1ROQU1FCiAgIAoxOTk5LTA3LTMwIDA2OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgc3lzdGVtIC0gdXNlIHNpemVvZgogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNubXB2MyAtIGtleSBvZmYgSEFWRV9HRVRIT1NUTkFNRTsgdXNlIHNpemVvZiBidWYKICAgCjE5OTktMDctMzAgMDY6MjMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFyc19tMm0uaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMgYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnNfbTJtLmgpOgogICAgIC0gUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiBvYnNvbGV0ZSB2MnBhcnR5IE1hbmFnZXItdG8tTWFuYWdlciBzdXBwb3J0CiAgIAoxOTk5LTA3LTMwIDA2OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzIC0gd3JhcCBwb3NzaWJseSB1bnVzZWQgdmFycyBpbiAjaWZkZWYgSEFWRV9HRVRIT1NUTkFNRQogICAKMTk5OS0wNy0zMCAwNjowMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYwogICAgICBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgICBzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuYyBhZ2VudC9taWJncm91cC92MnBhcnR5LmgpOgogICAgICAtICBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIHYycCBzdXBwb3J0CiAgIAoxOTk5LTA3LTMwIDA1OjQyICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgaHJfc3RvcmFnZS5jIC0gYXV0b19ubGlzdCBmb3IgSFJfU1RPUkVfU0laRQogICBocl9zd3J1bi5jIC0gZml4IGdsb2JhbCBzaGFkb3cgZGVjbAogICBzbm1wX2xvZ2dpbmcuYyAtIGNoYW5nZSBmaWx0ZXIgZm9yIG9wZW5sb2cgcGVyIEEuIFN5bW9ucyBwYXRjaAogICAKMTk5OS0wNy0zMCAwNDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgcmVuYW1lIHNkIHRvIGlmc2QgLSBhdm9pZCBnbG9iYWwgc2hhZG93IGRlY2wKICAgCjE5OTktMDctMzAgMDQ6MzkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsIGxvZ19wZXJyb3IKICAgCjE5OTktMDctMzAgMDQ6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHJlbmFtZSBsb2NhbCB2YXIgJ2xhc3QnIHRvICdsYXN0X2lwY2gnIC0gYXZvaWQgc2hhZG93IGdsb2JhbCBkZWNsCiAgIAoxOTk5LTA3LTMwIDA0OjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oaXN0b3J5LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmM6CgogICAtKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsYWdlbnQvaGlzdG9yeS5jLGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLHNubXBsaWIvcmVhZF9jb25maWcuYyxzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLHNubXBsaWIvc25tcF9sb2dnaW5nLmMsc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zeXN0ZW0uYykgLSBwc29zIGRpZmZzIG9mZmVyZWQgYnkgQW50aG9ueSBTeW1vbnMKICAgCjE5OTktMDctMzAgMDM6NTcgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgUmVtb3ZlZCBoaW50IG9mIHYycGFydHkgZnJvbSBjb21tZW50LgogICAKMTk5OS0wNy0zMCAwMzo1MSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICBSZW1vdmVkIGR1cGxpY2F0ZSBIQVZFX0dFVD8/P0JZTkFNRTsgUmVtb3ZlZCB1bnVzZWQgX0NSVElNUAogICAKMTk5OS0wNy0zMCAwMzo0OCAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgUkVBRE1FLndpbjMyIC0gY2xlYW5lZCB1cCwgYWRkZWQgbW9yZSBhY2tub3dsZWRnZW1lbnRzCiAgIAoxOTk5LTA3LTI5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHh4Lmg6CgogICAtIChhZ2VudHh4LmgpOiByZW1vdmVkCiAgIAoxOTk5LTA3LTI5IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5LzogYWNsX3ZhcnMuYywgYWNsX3ZhcnMuaCwKICAgYWxhcm0uYywgYWxhcm0uaCwgY29udGV4dF92YXJzLmMsCiAgIGNvbnRleHRfdmFycy5oLCBldmVudC5jLCBldmVudC5oLCBwYXJ0eV92YXJzLmMKLCBwYXJ0eV92YXJzLmgsIHZpZXdfdmFycy5jLCB2aWV3X3ZhcnMuaDoKCiAgIC0gKG1pYmdyb3VwL3YycGFydHkpOiByZW1vdmVkIGZpbGVzLgogICAKMTk5OS0wNy0yOSAxNzowMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiByZW1vdmUgdHJhcF9zcGVjaWFsIHN0dWZmLgogICAKMTk5OS0wNy0yOSAxNjowNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHVzZSBmcHV0cywgYXMgdnNwcmludGYgaGFzIGFscmVhZHkgZG9uZSB0aGUgaGFyZCB3b3JrLgogICAKMTk5OS0wNy0yOSAxNTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGZsdXNoIGZpbGUgYW5kIHN0ZGVyciBhZnRlciB3cml0ZS4KICAgCjE5OTktMDctMjkgMTU6NTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtKHNubXBfbG9nZ2luZykgaW5jb3Jwb3JhdGUgUmFnbmFyJ3MgaW1wcm92ZW1lbnRzIHdpdGggaW50ZXJlc3QKICAgCjE5OTktMDctMjkgMTU6MDQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBrZXJuZWwuYzoKCiAgIGF1dG9fbmxpc3QsIGtlcm5lbDogcGxhY2UgbG9nX3BlcnJvciB0byBjYXRjaCBlcnJubyB2YWx1ZSBpbiByZXBvcnQuCiAgIAoxOTk5LTA3LTI5IDEzOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLShhZ2VudC9zbm1wZC5jKSAtIGxvZyBzdGFuZGFyZCBlcnJvciB1bnRpbCBpbml0IGlzIGNvbXBsZXRlZC4KICAgCjE5OTktMDctMjkgMTM6MjggIG1zbGlmY2FrCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtKGFwcHMvTWFrZWZpbGUuaW4pIC0gY29tbWVudCB1bm5lZWRlZCBUUkFQU1BFQ0lBTCBsaW5lCiAgIAoxOTk5LTA3LTI5IDEyOjUxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcpIC0gZml4IGxvZ19wZXJyb3IKICAgCjE5OTktMDctMjkgMDg6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLAogICB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIG1lbW9yeV9zb2xhcmlzMjogaGFuZGxlIG1hbGxvYyBlcnJvcnMKICAga2VybmVsX3N1bm9zNTogc2hhcmUga3N0YXQgZmlsZGVzIFtTSEFSRV9LU1RBVF9GRF0KICAgCjE5OTktMDctMjkgMDM6MjkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAobWliSUkvdmFjbV92YXJzLmMpOiBDYXRjaCB1c2Ugb2YgdW5jb25maWd1cmVkIEVYQU1QTEUuY29uZiBmaWxlcwogICAKMTk5OS0wNy0yOCAxMzozMyAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLVJFQURNRS53aW4zMiAtIGJ1aWxkIGd1aWRlIGZvciBXaW4zMi4gQ3lnd2luIGZyaWVuZGx5IHNjcmlwdCBpbmNsdWRlZC4KICAgCjE5OTktMDctMjggMDk6NDEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBzbm1wX2xvZ2dpbmcuYzogYWRqdXN0IGhlYWRlcnMgZm9yIHRoYXQgV2luMzIgcGxhdGZvcm0uCiAgIAoxOTk5LTA3LTI4IDA5OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcpIFN1cHBvcnQgaHB1eDkgYW5kIHNvbGFyaXMyLjUuMSB3aXRoIHZzcHJpbnRmIGluc3RlYWQuCiAgIAoxOTk5LTA3LTI4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IGNoYW5nZSBtYWlsIGFkZHIgdG8gdWNkLXNubXAtYnVncwogICAKMTk5OS0wNy0yOCAwMjo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jCjoKCiAgIGhyX3N3cnVuIC0gcmVzZXQgcG9pbnRlciBpbiBtb2R1bGUgaW5pdCAoaGVscCBIUC9VWCA5KQogICBzbm1wX2xvZ2dpbmcgLSB1c2UgdnNwcmludGYgZm9yIEhQL1VYLTkKICAgCjE5OTktMDctMjcgMjM6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtZDUuYywgbWQ1LmgsIHNjYXBpLmMKLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jOgoKICAgLShrZXl0b29scy5jLG1kNS5jLG1kNS5oLHNjYXBpLmMsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMpIGNhdGNoIE1ENSBlcnJvcnMKICAgCjE5OTktMDctMjcgMjM6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtKHNubXBkLmMpIGludm9rZSBsb2cgZnVuY3Rpb25zIGZyb20gY2hpbGQgKGNvcnJlY3QgcHJvY2VzcyBJRCBpbiBzeXNsb2cpCiAgIAoxOTk5LTA3LTI3IDIxOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLShzbm1wX2xvZ2dpbmcuYykgZml4IHN5c2xvZyBieSB2c25wcmludGYgdG8gYnVmZmVyLgogICAKMTk5OS0wNy0yNyAxOTowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0obWliLmMpIGZpeCB3YWxraW5nIE9JRCBsZW5ndGggcG9pbnRlciwgbnVtZXJpYyBzdWItaWQgbm90IGZvdW5kCiAgIGluIHJlYWRfb2JqaWQgYW5kIHBhcnNlX3N1YnRyZWUuCiAgIAoxOTk5LTA3LTI3IDE5OjAyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLShzbm1wX3BhcnNlX2FyZ3MpIGluIHNubXBfcGFyc2Vfb2lkLCB0cnkgZ2V0X25vZGUgaWYgcmVhZF9vYmppZCBmYWlscy4KICAgCjE5OTktMDctMjcgMTc6MTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgaW5jbHVkaW5nIG1pYi5oIHJlcXVpcmVzIHN0ZGlvLmggdG8gZGVmaW5lIEZJTEUgKi4KICAgCjE5OTktMDctMjcgMTY6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogZml4IGhlYWRlciBkdW1wLgogICAKMTk5OS0wNy0yNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jCiwgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYzoKCiAgIC0gKGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAtIGNsZWFuZWQgdXAgZGVidWdnaW5nIGR1bXAgb3V0cHV0LgogICAgIC0gYWRkZWQgbW9yZSBkdW1wIHBhcnNlIGhlYWRlcnMgZm9yIHYzIGR1bXBzLgogICAKMTk5OS0wNy0yNyAxNjowNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLShpbnRlcmZhY2VzLmMpIC0gZml4IGVycm9yIHNldHRpbmcgaWZfaWJ5dGVzIGZvciBMaW51eCAyLjAKICAgCjE5OTktMDctMjcgMTI6MjMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB1c20uYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0oYXBwczplbmNvZGVfa2V5Y2hhbmdlLmMsc25tcGRlbHRhLmMsc25tcHRhYmxlLmMsIHNubXB1c20uYzsKICAgc25tcGxpYjpyZWFkX2NvbmZpZy5jLHNubXB2My5jOyB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZikgLQogICAgYWRqdXN0IGhlYWRlcnMsIGJ1aWxkIFdpbjMyIHNubXB1c20rZW5jb2RlX2tleWNoYW5nZQogICAKMTk5OS0wNy0yNyAxMjowMCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwOgoKICAgLShlbmNvZGVfa2V5Y2hhbmdlLmRzcCxzbm1wdXNtLmRzcCkgLWJ1aWxkIHVzaW5nIGNvbW1vbiBXaW4zMiBjb21waWxlcgogICAKMTk5OS0wNy0yNyAwOTo0MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICAtKG1hc3Rlci5jLCBzdWJhZ2VudC5jKSB1bi1jb21tZW50IGluaXRfbWFzdGVyIGFuZCBpbml0X3N1YmFnZW50LgogICAKMTk5OS0wNy0yNyAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L3NubXBkLmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYyxhcHBzL3NubXBkZWx0YS5jLGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsYXBwcy9zbm1wc2V0LmMsYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsYXBwcy9zbm1wdGVzdC5jLGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYyxhcHBzL3NubXB1c20uYyxhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsc25tcGxpYi9wYXJzZS5jLHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdjMuYykgZml4IHNubXBfc2Vzc19wZXJyb3IgdXNlOyB1c2UgbG9nX3BlcnJvciBmb3IgcGVycm9yCiAgIAoxOTk5LTA3LTI3IDA3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBzbm1wbGliL2FzbjEuYyxzbm1wbGliL3NjYXBpLmMsc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgpICBFUlJPUl9NU0csIHByaW50ZiAtLT4gREVCVUdNU0dUTAogICAKMTk5OS0wNy0yNyAwNjozOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGVycm9ybWliLmMsCiAgIGV4dGVuc2libGUuYywgZmlsZS5jLCBocHV4LmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmMsIG1lbW9yeV9mcmVlYnNkMi5jLCBtZW1vcnlfc29sYXJpczIuYywKICAgcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLyouYyk6IHR3ZWFrIHJlZ2lzdHJ5IGxhYmVscwogICAKMTk5OS0wNy0yNyAwNDoyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGluY2x1ZGUgbmV0L2lmX2RsLmggc3VnZ2VzdGVkIGJ5IFRvbSBJdmFyIEhlbGJla2ttbwogICAKMTk5OS0wNy0yNiAxNzoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5oOgoKICAgLSAoc2NhcGkuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHNpemVfdCBmaXguCiAgIAoxOTk5LTA3LTI2IDE3OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywKICAgc2NhcGkuYzoKCiAgIC0gKGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIHBhcnNlLmMsIHNjYXBpLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBzaXplX3QgY2hhbmdlcy4KICAgCjE5OTktMDctMjYgMTc6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHZhcmlhYmxlIG5hbWluZyBjaGFuZ2UuCiAgIAoxOTk5LTA3LTI2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wNy0yNiAxNToxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMKLCBzbm1wX2F1dGguYywgc25tcHVzbS5jOgoKICAgLShhc24xLmMsYXNuMS5oLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jLHNubXB1c20uYykgbW9yZSBkZXRhaWxlZCBwYXJzZSBlcnJvciBtZXNzYWdlcy4KICAgCjE5OTktMDctMjYgMTQ6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IEJJVF9zdHJpbmc6IC0+IEJJVFM6CiAgIAoxOTk5LTA3LTI2IDExOjUxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU0ICkKICAgCjE5OTktMDctMjYgMDk6MTQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlZCBhIGJpdAogICAKMTk5OS0wNy0yNiAwOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0yNiAwNzozNyAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QdjItQ09ORi50eHQ6CgogICAtIChTTk1QdjItQ09ORi50eHQpOiByZW1vdmVkIGJvZ3VzIElNUE9SVFMgY2xhdXNlCiAgIAoxOTk5LTA3LTI0IDA4OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLShtZDUuYykgLSB3cmFwIHVudXNlZCBNRDVwcmludCB3aXRoIFNOTVBfVEVTVElOR19DT0RFIGlmZGVmCiAgIAoxOTk5LTA3LTI0IDA4OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suaCwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FsYXJtLmgKLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oY2FsbGJhY2suaCxkZWZhdWx0X3N0b3JlLmgsc25tcF9hbGFybS5oLHNubXBfbG9nZ2luZy5oKSBleHRlcm4gIkMiIHdyYXBwZWQKICAgCjE5OTktMDctMjQgMDc6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0oc25tcF9jbGllbnQuYykgLSB1c2UgU0VUX1NOTVBfRVJST1IgZm9yIHJlc3RvcmVkIHNubXBfZXJybm8gc2V0cy4KICAgCjE5OTktMDctMjQgMDc6MTggIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLShsaWJzbm1wLmRlZikgLSBhZGQgZGVjbHMgZm9yIG5ldyBlcnJvciBsb2dnaW5nIGZ1bmN0aW9ucy4KICAgCjE5OTktMDctMjQgMDc6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLShhc24xLmMpIC0gZml4IGNvbXBhcmUgZXJyb3IgYXQgbGluZSAzODY7IHJlbW92ZSB1bnVzZWQgdmFycyBlbHNld2hlcmUKICAgCjE5OTktMDctMjMgMTU6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgICBzbm1wdHJhcGQuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgIHNubXBfY2xpZW50LmMpOgogICAgIC0gbWFrZSBhbmQgdXNlIHNubXBfc2Vzc19wZXJyb3Ioc3RyLCBzZXNzKSBmb3IgZXJyb3IgcHJpbnRpbmcuCiAgIAoxOTk5LTA3LTIzIDE0OjMxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVC5zaCwgVDIuc2gsIGRlbW8ucmVtb3RlLCBkZW1vMgosIGRlbW8yLmZ1bmN0aW9ucywgZGVtbzIuc2V0dXBmaWxlOgoKICAgLSAoVC5zaCwgVDIuc2gsIGRlbW8ucmVtb3RlLCBkZW1vMiwgZGVtbzIuZnVuY3Rpb25zLCBkZW1vMi5zZXR1cGZpbGUpOgogICAgIC0gcmVtb3ZlZCBzb21lIHVuLW5lZWRlZCBvbGRlciBkZW1vIGZpbGVzLgogICAKMTk5OS0wNy0yMyAxNDoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbAosIHRlc3RzL1QwMjBzbm1wdjNnZXQsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsIFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICAgIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dCwgVDAyMnNubXB2M2dldE1ENSwKICAgICBUMDIzc25tcHYzZ2V0TUQ1REVTKTogc3VwcG9ydCBhIFNOTVBfRkxBR1MgZW52IHZhcmlhYmxlLgogICAKMTk5OS0wNy0yMyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBpbml0IGRlYnVnZ2luZy4KICAgCjE5OTktMDctMjMgMTQ6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jCiwgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oOgoKICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAtIHJldmVydCB0byBub24tZHBhcnNlIHZlcnNpb25zIG9mIGFzbiBkZWNvZGluZy4KICAgCjE5OTktMDctMjMgMTM6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBhIGxpdHRsZSBtb3JlIHZlcmJvc2UgYWJvdXQgd2hhdCBpcyBydW5uaW5nLgogICAKMTk5OS0wNy0yMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMKLCBzbm1wX2FwaS5jOgoKICAgLSAoa2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IHNubXBfbG9nIGNvbnZlcnNpb25zLgogICAKMTk5OS0wNy0yMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtIChzbm1wLmMpOiB4ZHVtcCBmaXhlcy4KICAgCjE5OTktMDctMjMgMTM6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogbnVsbCB0ZXJtaW5hdGUgcGFyc2VkIHN0cmluZ3MsIGp1c3QgaW4gY2FzZS4KICAgCjE5OTktMDctMjMgMTM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IGNoYW5nZSBtYWxsb2Mgc2l6ZSgpLgogICAKMTk5OS0wNy0yMyAxMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBtb3JlIHNubXBfbG9nIGNvbnZlcnNpb25zLgogICAKMTk5OS0wNy0yMyAxMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmgpOiBhZGRlZCBmb3IgYSBwcm90b3R5cGUgZGVmaW5pdGlvbi4KICAgCjE5OTktMDctMjMgMTA6NDIgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0LAogICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwgbWlicy9JRi1NSUIudHh0LAogICBtaWJzL0lQLU1JQi50eHQsIG1pYnMvVENQLU1JQi50eHQsIG1pYnMvVURQLU1JQi50eHQKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGtlcm5lbF9zdW5vczUuYywgdXRpbF9mdW5jcy5jLCBpbnRlcmZhY2VzLmMsCiAgICAgaW50ZXJmYWNlcy5oLCBzeXN0ZW1fbWliLmMsIHZhcl9yb3V0ZS5jLCBzbm1wRW5naW5lLmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXB0cmFwZC5jLCBIT1NULVJFU09VUkNFUy1NSUIudHh0LAogICAgIElBTkFpZlR5cGUtTUlCLnR4dCwgSUYtTUlCLnR4dCwgSVAtTUlCLnR4dCwgVENQLU1JQi50eHQsCiAgICAgVURQLU1JQi50eHQsIHBhcnNlLmMsIHNubXBfYWxhcm0uYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAtIG1lcmdlIGZyb20gVjMtbGluZSBwb3N0IDMuNi4yIHRvIGN1cnJlbnQuCiAgICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgICAtIG1ha2UgYXBwcyB0dXJuIG9uIHN0ZGVyciBsb2dnaW5nIGJ5IGRlZmF1bHQuCiAgIAoxOTk5LTA3LTIzIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBsb2cgdG8gc3RkZXJyLgogICAKMTk5OS0wNy0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuc3RvcmFnZS5jb25mLCB0a21pYjoKCiAgIC0gKHRrbWliLCBtaWIyYyk6IHVkcGF0ZSB0byB1c2UgaW5kZXhlcyAocmVxdWlyZXMgYSBwZXJsIHBhdGNoLgogICAKMTk5OS0wNy0yMCAxOTozMyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIG5vIHByaW50ZiBpbiBhc2NpaV90b19iaW5hcnkKICAgCjE5OTktMDctMjAgMTg6MTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtbWlub3IgY2hhbmdlcyB0byBidWlsZCBXaW4zMiBwbGF0Zm9ybXMgdXNpbmcgQ3lnV2luLWVnY3MgYW5kIE1TVkMgY29tcGlsZXJzLgogICAKMTk5OS0wNy0yMCAxNzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IC1XYWxsIGZpeGVzIChBTlNJKS4KICAgCjE5OTktMDctMjAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMKLCBkbG1vZHMvZGxtb2RfbWliLmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIG1pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMKLCBtaWJncm91cC92MnBhcnR5L2FsYXJtLmM6CgogICAtIChhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywKICAgICBpcGZ3Y2hhaW5zLmMsIGludGVyZmFjZXMuYywgZGxtb2QuYywgc211eC5jLCB2ZXJzaW9uaW5mby5jLAogICAgIGFsYXJtLmMpOgogICAgIC0gY29udmVydCBzbm1wX2xvZyhMT0dfREVCVUcpIHRvIERFQlVHTVNHVEwoKS4KICAgCjE5OTktMDctMjAgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvaGlzdG9yeS5jLCBhZ2VudC9rZXJuZWwuYwosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKGF1dG9fbmxpc3QuYywgaGlzdG9yeS5jLCBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCwgdXRpbF9mdW5jcy5jLCBpcGZ3Y2hhaW5zLmMsCiAgICAgYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YWNtX3ZhcnMuYywgdmFyX3JvdXRlLmMsIGRsbW9kLmMsIHNtdXguYywgZGlzay5jLCBleHRlbnNpYmxlLmMsCiAgICAgbG9hZGF2ZS5jLCBtZW1vcnlfc29sYXJpczIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLAogICAgIHZlcnNpb25pbmZvLmMsIGFsYXJtLmMsIGV2ZW50LmMsIE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmMsCiAgICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBQYXRjaCBmcm9tIFJhZ25hcgogICAgIEtq+HJzdGFkOgogICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCiAgIAoxOTk5LTA3LTE1IDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmg6CgogICAtIChhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgLSBiZWdpbm5pbmcgb2YgYSAtRGR1bXAgdmVyc2lvbiBvZiBwYWNrZXQgZHVtcGluZy4KICAgICAtIG5lZWRzIGEgbG90IG1vcmUgd29yayBhbmQgY2xlYW4gdXAuCiAgICAgLSBJIG5lZWQgY29tbWVudHMuLi4gIFRlbGwgbWUgd2hhdCB5b3UgdGhpbmsuLi4KICAgCjE5OTktMDctMTUgMDg6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0gKHRvb2xzLmMpOiBpbmNsdWRlIGFycGEvaW5ldC5oLgogICAKMTk5OS0wNy0xNCAxMzo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0oc25tcGxpYi9taWIuYykgLSBjb25kaXRpb25hbGx5IGFsbG93IGZvciBub3Qgc2V0dGluZyBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDEzOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC0gc25tcF9hZGRfdmFyIHJldHVybnMgU05NUEVSUjsgTUFZIHNldCBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDA3OjE5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogV2FybmluZyAtIGhlcmUgYmUgZHJhZ29ucy4uLi4KICAgCjE5OTktMDctMTIgMDg6MzIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsCiAgIGhyX2Rpc2suYywgaHJfZGlzay5oLCBocl9maWxlc3lzLmMsCiAgIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsCiAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywKICAgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLCBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYwosIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywKICAgaHJfc3lzdGVtLmg6CgogICAtIChtaWJncm91cC9ob3N0LyopOiBEeW5hbWljYWxseSByZWdpc3RlciBhbGwgSG9zdCBSZXNvdXJjZSBtb2R1bGVzCiAgIAoxOTk5LTA3LTEyIDA3OjE0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogcmVtb3ZlIGRlcGVuZGVuY3kgb24gc25tcGxpYi9hZ2VudHguaAogICAKMTk5OS0wNy0xMSAxODozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICBSZWR1Y2UgdXNlIG9mIHNubXBfZXJybm8gLSBmaXggbWVtb3J5IGxlYWssIHVudXNlZCB2YXJzLCBhbmQgdW5zZXQgdmFyLgogICAKMTk5OS0wNy0wOSAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBmaXggY2xpZW50cmVnIGVycm9yLgogICAKMTk5OS0wNy0wOSAxNDoxOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0od2luMzIsc25tcGxpYixhcHBzLGFnZW50KSBhZGQgc25tcF9zb2NrZXRfbGVuZ3RoIHRvIGhpZGUgc29ja2FkZHJfdW47IFdpbjMyIHRvdWNodXBzCiAgIAoxOTk5LTA3LTA5IDEyOjEyICBtc2xpZmNhawoKICAgKiBSRUFETUUudGhyZWFkLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wX3Nlc3NfYXBpLjMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKHNubXBfY2xpZW50LiopIHJlbW92ZSBzbm1wX3N5bmNoX3NldHVwLCBzbm1wX3N5bmNoX3Jlc2V0CiAgIAoxOTk5LTA3LTA5IDA4OjM1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oLCBhZ2VudHhfY2xpZW50LmM6CgogICAtIChzbm1wbGliL2FnZW50eCopOiBNb3ZlZCBBZ2VudFggaGFuZGxpbmcgb3V0IG9mIHRoZSBtYWluIFNOTVAgbGlicmFyeQogICAKMTk5OS0wNy0wOSAwODozNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHguaCwgYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudHgvY2xpZW50LmgsIGFnZW50eC9tYXN0ZXIuYywgYWdlbnR4L21hc3Rlci5oCiwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50eC9wcm90b2NvbC5oLCBhZ2VudHgvc3ViYWdlbnQuYwosIGFnZW50eC9zdWJhZ2VudC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmggYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOgogICAgIC0gTW92ZSBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcgdG8gYSAobW9zdGx5KSBzZWxmLWNvbnRhaW5lZCBtb2R1bGUKICAgCjE5OTktMDctMDkgMDg6MjcgIGRhdmVzCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCjoKCiAgIC0gKCovTWFrZWZpbGUuaW4gc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdCiAgICAgIGFnZW50L3NubXBkLltjaF0gYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgLSBNb3ZlIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5CiAgIAoxOTk5LTA3LTA5IDAxOjQ5ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IENsZWFuIHVwIGdpZC91aWQgY2hhbmdlIGxvZ2dpbmcKICAgCjE5OTktMDctMDggMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2r4cnN0YWQ6CiAgICAgLSBBZGQgb3B0aW9ucyBmb3Igc3dpdGNoaW5nIHRvIGEgZ2l2ZW4gdWlkIGFuZCBnaWQuCiAgIAoxOTk5LTA3LTA4IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaAo6CgogICAtIChzbm1wZGVsdGEuYywgaW50NjQuYywgaW50NjQuaCk6IG1pbmltYWwgYzY0IHN1cHBvcnQgZm9yIHNubXBkZWx0YS4gVW50ZXN0ZWQuCiAgIAoxOTk5LTA3LTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKICAgCjE5OTktMDctMDggMTQ6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaAosIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvY29udGV4dC5jLAogICBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaAosIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCB2aWV3X3BhcnNlLmMsIHZhY21fdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1haW4uYywgTWFrZWZpbGUuaW4sIGFjbC5jLAogICAgIGFjbC5oLCBhY2xfcGFyc2UuYywgY29udGV4dC5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICBsaWJzbm1wLmgsIHBhcnR5LmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgdmlldy5jLCB2aWV3LmgpOgogICAgIC0gdjJwYXJ0eSBzdXBwb3J0IGlzIGZpbmFsbHkgZ29uZSEKICAgCjE5OTktMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA3LTA4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oOgoKICAgLSAoYWdlbnR4LmMsIGFnZW50eC5oKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA3LTA4IDE0OjI5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGNvbmZpZy5oKTogY29tbWVudCBjaGFuZ2UgZm9yIGludGVybmFsIG1kNS4KICAgCjE5OTktMDctMDggMTQ6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0gKHRvb2xzLmMpOiB0eXBvIGluICNpZmRlZi4KICAgCjE5OTktMDctMDggMDY6MjUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYywgc3lzdGVtX21pYi5jOgoKICAgLSAobWliSUkvc3lzdGVtX21pYi5jIG1pYklJL3NubXBfbWliLmMpOgogICAgIC0gVXBkYXRlICd3cml0ZScgcm91dGluZXMgZm9yIFY0IGFyY2hpdGVjdHVyZSwKICAgICAgIGFuZCB1c2luZyB0aGUgZnVsbCBTRVQgbXVsdGktcGFzcyBhbGdvcml0aG0KICAgCjE5OTktMDctMDggMDI6MTYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBSZXRhaW4gY29tbXVuaXR5IHN0cmluZyBpbiByZXNwb25zZXMKICAgCjE5OTktMDctMDcgMDY6NTQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgYWdlbnR4LmMsIHNubXBfaW1wbC5oOgoKICAgLSAoYXNuMS5jIGFzbjEuaCBzbm1wLmMgc25tcC5oIHNubXBfYXBpLmMgc25tcF9hcGkuaAogICAgICBzbm1wX2F1dGguYyBzbm1wX2ltcGwuaCBhZ2VudHguYyk6CiAgICAgIC0gRmlyc3QgYXR0ZW1wdCBhdCBmb3JtYXR0ZWQgZGlzcGxheSBvZiBwYWNrZXQgZGF0YQogICAKMTk5OS0wNy0wNiAwMjoyMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIFNOTVB2MSBub1N1Y2hOYW1lCiAgIAoxOTk5LTA3LTAyIDA4OjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHJlZ2lzdGVyIGRlYnVnZ2luZyB0b2tlbnMgd2l0aCAtRAogICAKMTk5OS0wNy0wMiAwNToxOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHh4LmgsIGFnZW50eC9tYXN0ZXIuYywKICAgYWdlbnR4L21hc3Rlci5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50eC9tYXN0ZXJfYWRtaW4uaCwgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5oOgoKICAgLSAobWliZ3JvdXAvYWdlbnR4eC5oIG1pYmdyb3VwLmFnZW50eC8pOiBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEFnZW50WCBtYXN0ZXIKICAgCjE5OTktMDctMDIgMDU6MTYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBzdXBwb3J0IGxpc3RzIG9mIHNlc3Npb25zIChhbmQgc3Vic2Vzc2lvbnMpCiAgIAoxOTk5LTA3LTAyIDA1OjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKHZhcl9zdHJ1Y3QuaCBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtIG1hcCBiZXR3ZWVuIE1JQiByZWdpc3RyYXRpb25zIGFuZCB0aGUgc3VwcG9ydGluZyAoc3ViYWdlbnQpIHNlc3Npb24KICAgCjE5OTktMDctMDIgMDU6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvYXNuMS5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5oOgoKICAgLSAoc25tcGxpYi9hc24xLmggYWdlbnQvc25tcF92YXJzLmggYWdlbnQvc25tcF9hZ2VudC5jKToKICAgICAtIGltcGxlbWVudCBhbiBpbnRlcmZhY2UgZm9yIGRlbGVnYXRpbmcgcmVxdWVzdHMgdG8gc3ViYWdlbnRzCiAgIAoxOTk5LTA3LTAyIDAyOjM5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4IHRoYXQgbGFzdCAnc2VuZHRvJyBjYXNlICpjb3JyZWN0bHkqIHRoaXMgdGltZQogICAKMTk5OS0wNy0wMiAwMjowNCAgZGF2ZXMKCiAgICogc25tcGxpYi9hZ2VudHguYzoKCiAgIC0gKGFnZW50eC5jKTogQmV0dGVyIGhhbmRsaW5nIG9mIGJ1aWxkaW5nIG51bGwgc3RyaW5ncwogICAKMTk5OS0wNi0zMCAxOTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYwosIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgKOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywKICAgICBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgIC0gY29udmVydCBtb3JlIHN0dWZmIHRvIHRoZSBkZWZhdWx0X3N0b3JlIHNwYWNlLgogICAKMTk5OS0wNi0zMCAxOTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHRvb2xzLmM6CgogICAtIChrZXl0b29scy5jLCB0b29scy5jKTogLVdhbGwgZml4ZXMgd2hlbiBURVNUSU5HX0NPREUgaXMgZW5hYmxlZC4KICAgCjE5OTktMDYtMzAgMDU6NDggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBNaXNzZWQgb25lICdzZW5kdG8nIGNhbGwKICAgCjE5OTktMDYtMzAgMDU6MDYgIGRhdmVzCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBjaGVjayBmb3Igc3lzL3VuLmgKICAgCjE5OTktMDYtMzAgMDU6MDUgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQcm92aWRlIHRoZSBjb3JyZWN0IHNpemUgb2Ygc29ja2V0IGFkZHJlc3NlcwogICAKMTk5OS0wNi0zMCAwMzoyMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiBvbWl0IHJlZHVuZGFudCBkZWNsYXJhdGlvbnMKICAgCjE5OTktMDYtMzAgMDI6MzIgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBDb3JyZWN0IHRoZSBzZXR1cCBvZiBzdHJlYW0tYmFzZWQgYWNjZXB0ZWQgaW50ZXJuYWwgc2Vzc2lvbnMKICAgCjE5OTktMDYtMzAgMDE6NDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogJ2FnZW50X3NubXBfc2Vzc2lvbicgaW5pdGlhbGlzYXRpb24gcm91dGluZQogICAKMTk5OS0wNi0zMCAwMTo0NSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgogICAKMTk5OS0wNi0zMCAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgogICAKMTk5OS0wNi0yOCAxNTowMSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogaW5pdF9zbm1wX2FsYXJtKCk7CiAgIAoxOTk5LTA2LTI4IDE1OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICAtICh1Y2REZW1vUHVibGljLmMpOiBjb252ZXJ0IHRvIHNpemVfdAogICAKMTk5OS0wNi0yOCAxNDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKS4KICAgCjE5OTktMDYtMjggMDk6NTIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnMuaCB2YXJfc3RydWN0LmgpOgogICAgIC0gTm9uLXJlY3Vyc2l2ZSBNSUIgcmVnaXN0cnkgaW1wbGVtZW50YXRpb24KICAgCjE5OTktMDYtMjggMDg6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oLAogICBzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgsIHVzbVN0YXRzLmMsCiAgIHVzbVN0YXRzLmgsIHVzbVVzZXIuYywgdXNtVXNlci5oOgoKICAgLSAoc25tcEVuZ2luZS5jIHNubXBFbmdpbmUuaCBzbm1wTVBEU3RhdHMuYyBzbm1wTVBEU3RhdHMuaAogICAgICB1c21TdGF0cy5jIHVzbVN0YXRzLmggdXNtVXNlci5jIHVzbVVzZXIuaCk6CiAgICAgIC0gUnVuLXRpbWUgcmVnaXN0cmF0aW9uIChyYXRoZXIgdGhhbiB2aWEgJ2NvbmZpZ3VyZScpCiAgIAoxOTk5LTA2LTI4IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDIxc25tcHYzZ2V0bmV4dCwKICAgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFN2M2NvbmZpZywgVDAyMXNubXB2M2dldG5leHQsIFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVMpOgogICAgIC0gMyBuZXcgdjMgdGVzdHMuCiAgIAoxOTk5LTA2LTI4IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICAtIChSVU5URVNUUywgZXZhbF90b29scy5zaCk6IGFjY2VwdCBhZ2VudCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgCjE5OTktMDYtMjggMDQ6MDcgIGRhdmVzCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jOgoKICAgLSB7TWFrZWZpbGUuaW4gYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wX3ZhcnMuYyBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtIENvbnNvbGlkYXRlIGFsbCByZWdpc3RyeSBoYW5kbGluZyBpbnRvIG9uZSBmaWxlCiAgIAoxOTk5LTA2LTI4IDAzOjA4ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6IG1ha2UgU05NUCBwYWNrZXQgaGFuZGxpbmcgcm91dGluZSByZS1lbnRyYW50LgogICAKMTk5OS0wNi0yMyAxMDowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluLCBSVU5URVNUUywgVEVTVENPTkYuc2gsCiAgIGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2M2NvbmZpZzoKCiAgIC0gKE1ha2VmaWxlLmluLCBSVU5URVNUUywgVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsIFN2M2NvbmZpZyk6CiAgICAgLSBnaXZlIFJVTlRFU1RTIGxvdHMgb2YgYXJndW1lbnRzLgogICAgIC0gIm1ha2UgdGVzdCIgbm93IGNhbGxzICJSVU5URVNUUyAtYSIKICAgCjE5OTktMDYtMjIgMDU6MjUgIG5iYQoKICAgKiBUT0RPOgoKICAgVE9ETzoJbmVlZCBmb3IgQ291bnRlcjY0IHN1cHBvcnQgaW4gc25tcGRlbHRhCiAgIAoxOTk5LTA2LTIyIDA1OjIxICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIGludm9rZSBzbm1wX3Nlc3NfaW5pdCBiZWZvcmUgYW55IE1JQiBwcm9jZXNzaW5nIChmaXhlcyBtYXN0ZXIgYWdlbnQpLgogICAKMTk5OS0wNi0xOCAxMjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHhfY2xpZW50LmM6CgogICAtKGFnZW50eCouYykgZml4IGhlYWRlcnMgdG8gY29tcGlsZSBvbiBDeWdXaW4sIFdpbjMyIE1TVkMrKwogICAKMTk5OS0wNi0xOCAxMDowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLShzeXNPUlRhYmxlLmMpIGZpeCBwdHIgdGVzdAogICAKMTk5OS0wNi0xOCAwOToxNCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jCiwgc25tcGQuaCwgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChzbm1wZC5jIHNubXBkLmggc25tcF92YXJzLmMgc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaAogICAgICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIGluaXRpYWwgQWdlbnRYIHN1Yi1hZ2VudCBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0wNi0xOCAwOTowMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG1lYW5zIG9mIGJ5cGFzc2luZyBWQUNNIGNoZWNrcwogICAKMTk5OS0wNi0xOCAwODo1NSAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHguaCwgYWdlbnR4X2NsaWVudC5jLAogICBzbm1wX2FwaS5oLCBNYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBfYXBpLmggTWFrZWZpbGUuaW4gYWdlbnR4LmMgYWdlbnR4LmggYWdlbnR4X2NsaWVudC5jKToKICAgICAtIGJhc2ljIEFnZW50WCBwcm90b2NvbCBoYW5kbGluZwogICAKMTk5OS0wNi0xOCAwODo0OSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6CiAgICAgLSBhY2NvbW9kYXRlIHNlcnZlcnMgdGhhdCByZXF1aXJlIGFuIGFjY2Vzc2libGUgY2xpZW50LWVuZCB1bml4IHN0cmVhbSBzb2NrZXQKICAgICAgICAgICAgICAgICAoaW4gcGFydGljdWxhciwgdGhlIENNVSBBZ2VudFggbWFzdGVyIGFnZW50KQogICAKMTk5OS0wNi0xOCAwODo0NyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG5vbi1yZXNwb25zZSBoYW5kbGluZyBpbiAnc25tcF9zZXNzX3JlYWQnCiAgIAoxOTk5LTA2LTE4IDA4OjQ0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogTmV3IHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQogICAKMTk5OS0wNi0xOCAwODowNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGFzbjEuaCBzbm1wX2FwaS5jKTogTmV3IHByaXZhdGUgdHlwZXMgZm9yIE9JRCByYW5nZXMKICAgCjE5OTktMDYtMTggMDg6MDAgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBFbmFibGUgYWNjZXNzIHRvICJlbXB0eSIgcmVzcG9uc2UgUERVcyAoaS5lLiBoZWFkZXIgb25seSkuCiAgIAkoYWxzbyBtYWtlICdzbm1wX2Nsb25lX21lbScgYWNjZXNzaWJsZSB0byBvdGhlciBmaWxlcykKICAgCjE5OTktMDYtMTggMDc6NTYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyk6IGRpc3Rpbmd1aXNoIGJldHdlZW4gU05NUCBwcm90b2NvbCAmIFBEVSBoYW5kbGluZyBmbGFncwogICAKMTk5OS0wNi0xOCAwNjo1OCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBuZXcgcm91dGluZSBmb3IgcmVtb3Zpbmcgc3lzT1JUYWJsZSBlbnRyaWVzCiAgIAoxOTk5LTA2LTE4IDA1OjAxICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdXNtLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgYXBwbGllZCBmaXhlcyBmcm9tIE0uIExhdWtrYW5lbgogICAKMTk5OS0wNi0xNyAxMzoxOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIGZpeHVwcyB0byBidWlsZCBtb3N0IGFwcHMgdW5kZXIgV2luMzIgKE1TVkMrKyA1LjAgb3IgbGF0ZXIpCiAgIAoxOTk5LTA2LTE3IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IC0taGVscC4KICAgCjE5OTktMDYtMTYgMTY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaAo6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgLSAyIG5ldyBzbm1wLmNvbmYgdG9rZW5zOiBkb0RlYnVnZ2luZywgZGVidWdUb2tlbnMuCiAgIAoxOTk5LTA2LTE2IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jCiwgcGFyc2UuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgcGFyc2UuYyk6CiAgICAgLSBmaXJzdCB1c2FnZSBvZiB0aGUgZGVmYXVsdF9zdG9yZSgpIHJvdXRpbmVzOiBtb3ZlIGFsbCB0aGUgbWliCiAgICAgICBwYXJzZXIgdmFyaWFibGVzIHRvIGl0LCBhbmQgYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRoZW0uCiAgICAgICAtIHByZW1pYiBhdXRvLXJlZ2lzdHJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlIG5lZWRzIGNsZWFuaW5nIHVwLi4uICBzaWdoLi4uCiAgIAoxOTk5LTA2LTE2IDA2OjU2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IEhvb2tzIGZvciBidWlsZGluZy9wYXJzaW5nIG5vbi1TTk1QIHBhY2tldHMKICAgCjE5OTktMDYtMTYgMDU6NDkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBoYW5kbGUgcmVzcG9uc2VzIGluIGEgbW9yZSBwcm90b2NvbC1pbmRlcGVuZGVudCBtYW5uZXIKICAgCjE5OTktMDYtMTYgMDU6MTEgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyk6IG1vdmUgUERVIHZhbGlkYXRpb24sIGV0YyBmcm9tICdzZW5kJyB0byAnYnVpbGQnIHJvdXRpbmVzCiAgIAoxOTk5LTA2LTE1IDE2OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQ6CgogICAtIChUMDIwc25tcHYzZ2V0KTogbmV3IHRlc3Q6ICBzbm1wZ2V0IHVzaW5nIHYzIGFuZCB1c2VyICJpbml0aWFsIi4KICAgCjE5OTktMDYtMTUgMTY6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dDoKCiAgIC0gKFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0KToKICAgICAtIENoZWNrIGZvciBUaW1ldGlja3M6IGluIG91dHB1dCwgc2luY2Ugb3V0cHV0IGhhcyBjaGFuZ2VkIGluIDQuMC4KICAgCjE5OTktMDYtMTUgMTY6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBkaXNwbGF5IG1vcmUgb3V0cHV0IHN0dWZmIHdoZW4gaW4gdmVyYm9zZSBtb2RlLgogICAKMTk5OS0wNi0xNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIC0gKFRFU1RDT05GLnNoKTogc2F2ZSBwYWNrZXQgZHVtcC4KICAgCjE5OTktMDYtMTUgMTY6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggYWxsb3dlZCB6ZXJvbGVuZ3RoIHBkdS0+c2VjdXJpdHlOYW1lIHByb2JsZW0gZm9yCiAgICAgdjMgZW5naW5lSUQgZGlzY292ZXJ5IHByb2Jlcy4KICAgCjE5OTktMDYtMTUgMDg6MjcgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKToKICAgICAtIE1vdmUgcHJvY2Vzc2luZyBmcm9tICdoYW5kbGVfbmV4dF9wYXNzKCknIHRvICdoYW5kbGVfc25tcF9wYWNrZXQoKScKICAgCjE5OTktMDYtMTUgMDM6NTkgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgZHVwbGljYXRlIGNvZGUKICAgCjE5OTktMDYtMTEgMTc6NDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjFjb25maWcsIFN2MmNjb25maWcsIFN2YW55Y29uZmlnCiwgVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsCiAgIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0CiwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsOgoKICAgLSAoU3YxY29uZmlnLCBTdjJjY29uZmlnLCBTdmFueWNvbmZpZywgVDAwMXNubXB2MWdldCwKICAgICBUMDAyc25tcHYxZ2V0bmV4dCwgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LAogICAgIFQwMTVzbm1wdjJjZ2V0bmV4dCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOgogICAgIC0gaW5pdGlhbCBwYXNzIG9mIHRlc3Rpbmcgc3VpdGUgdGVzdHMuLi4gIEFnYWluLCBzdGlsbCBuZWVkcyB3b3JrLgogICAKMTk5OS0wNi0xMSAxNzo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBUMi5zaCwgVEVTVENPTkYuc2gsCiAgIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoOgoKICAgLSAoUlVOVEVTVFMsIFQyLnNoLCBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2gpOgogICAgIC0gdGVzdGluZyBzdWl0ZSBzY3JpcHRzLi4uICBzdGlsbCBuZWVkIGhlYXZ5IHdvcmsuCiAgIAoxOTk5LTA2LTA5IDE4OjI5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIEZBUQosIElOU1RBTEwsIE5FV1MsIFJFQURNRSwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWFrZXRhcmdldCwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIC0gKCopOiBtZXJnZWQgMy42LjIgY2hhbmdlcyBpbnRvIG1haW4gYnJhbmNoLgogICAKMTk5OS0wNi0wOSAwNjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHJlb3JkZXIgUERVIGFuZCBzZXNzaW9uIGZpZWxkcyBtb3JlIGNsZWFybHkKICAgCjE5OTktMDYtMDggMDk6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHZtc3RhdF9mcmVlYnNkMi5jOgoKICAgLSh4eF9fZnJlZWJzZDIuYykgLSBmaXggc2l6ZV90IHRvIGJ1aWxkIG9uIEZyZWVCU0QgMi4yLngKICAgCjE5OTktMDYtMDggMDg6NDMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgKICAgICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oKToKICAgICAgLSAgcmVtb3ZlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHBhY2tldF9pbmZvJyAoc3Vic3VtZWQgaW50byAnc3RydWN0IHNubXBfcGR1JykKICAgCjE5OTktMDYtMDggMDc6NDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFYzLWxpbmUuNCksIGhyX2ZpbGVzeXMuYwo6CgogICAtKGhyX2ZpbGVzeXMuYykgZml4IG1lbW9yeSBsZWFrIHdoZW4gSEFWRV9HRVRGU1NUQVQgaXMgZGVmaW5lZC4KICAgCjE5OTktMDYtMDcgMTM6MDQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgogICAKMTk5OS0wNi0wNyAwNzo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jCiwgdWRwLmM6CgogICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQogICAKMTk5OS0wNi0wNCAwOTo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgbG9jYWwvTWFrZWZpbGUuaW46CgogICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCiAgIAoxOTk5LTA2LTAyIDEyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hbGFybS4zOgoKICAgLSAoc25tcF9hbGFybS4zKTogZG9jdW1lbnQgdGhlIG5ldyBzbm1wX2FsYXJtKCkgY2FsbHMuCiAgIAoxOTk5LTA2LTAxIDE3OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oCiwgc25tcF9hcGkuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICB3aGljaCBpcyBuZXh0IGFuZCBjYWxsaW5nIGFsYXJtKCkgYW5kIHNpZ25hbCgpIGFwcHJvcHJpYXRlbHkuCiAgIAoxOTk5LTA2LTAxIDA3OjMwICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwogICAKMTk5OS0wNi0wMSAwMjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQogICAKMTk5OS0wNi0wMSAwMjoxNyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2FyYmFnZSBjb2xsZWN0aW9uIGZvciBUcmFkaXRpb25hbCBTQVBJIHNlc3Npb25zCiAgIAoxOTk5LTA1LTI4IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywKICAgZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAtIGNyZWF0ZWQgZ2VuZXJpYyBkZWZhdWx0IHZhbHVlIHN0b3JhZ2Ugc3BhY2UgYW5kIHBhcnNlcnMgdG8gcmVkdWNlCiAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgIGxpYnJhcnkuCiAgIAoxOTk5LTA1LTI4IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IHNhdmUgYW5kIHVzZSBpbmRleCBjbGF1c2VzLgogICAKMTk5OS0wNS0yOCAwOToyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSAtY2F0Y2ggb25lIG1vcmUgZXJyb3IgY2xvc2UgZnJvbSBzbm1wX3Nlc3NfY29weQogICAKMTk5OS0wNS0yOCAwOToxMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQogICAKMTk5OS0wNS0yOCAwODo1NyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAogICAKMTk5OS0wNS0yOCAwODoxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2F2ZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBpbiBpbnRlcm5hbCBzZXNzaW9uIHN0cnVjdHVyZQogICAKMTk5OS0wNS0yOCAwNzowMSAgZGF2ZXMKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwogICAKMTk5OS0wNS0yNyAxNDozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCiAgIAoxOTk5LTA1LTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCiAgIAoxOTk5LTA1LTI3IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBuZWVkIGFuIGluaXRfbWliKCkuCiAgIAoxOTk5LTA1LTI3IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgogICAKMTk5OS0wNS0yNyAwNToxNiAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQogICAKMTk5OS0wNS0yNiAxNzozOCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQRldBQ0MtTUlCLnR4dCAoVjMtbGluZS4yKSwgSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCiAgIAoxOTk5LTA1LTI2IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgogICAKMTk5OS0wNS0yNiAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy86IGlwZndhY2MuaCAoVjMtYjMuMiksIGlwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KICAgCjE5OTktMDUtMjYgMTU6MTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUEZXQUNDLU1JQi50eHQgKFYzLWIzLjEpLCBJUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCiAgIAoxOTk5LTA1LTI2IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFYzLWIzLjEpLCBocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCiAgIAoxOTk5LTA1LTI2IDExOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogaXBmd2FjYy5oIChWMy1iMy4xKSwgaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCiAgIAoxOTk5LTA1LTI2IDA4OjE2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpIC0gaW5jbCBzeXMvdHlwZXMgdG8gZml4IEhQLVVYIDkueCBidWlsZAogICAKMTk5OS0wNS0yNCAwNTozNiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlOgoKICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwogICAKMTk5OS0wNS0yMyAwODowNCAgbWFyegoKICAgKiB0ZXN0aW5nL3BhY2tldDEudHh0OgoKICAgZmlsZSBwYWNrZXQxLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMjEgMTU6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92aWV3LmMKLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLSBsaWJyYXJ5IGNoYW5nZXMgdG8gYnVpbGQgb24gV2luMzIuCiAgIAoxOTk5LTA1LTIxIDExOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgLSBjb252ZXJ0IHRvIHNpemVfdCBzdG9yYWdlcy4KICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCiAgIAoxOTk5LTA1LTIxIDExOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIGhlYWRlcl9jb21wbGV4X3BhcnNlX29pZCgpIGNyZWF0ZWQuCiAgICAgLSBjb252ZXJ0IGV2ZXJ5dGhpbmcgdG8gc2l6ZV90LgogICAKMTk5OS0wNS0yMSAwNTo1NCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgIC0gIE5ldyBBUEkgY2FsbCB0byBjbG9zZSBkb3duIGFsbCBvcGVuIHNlc3Npb25zCiAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQogICAKMTk5OS0wNS0yMSAwNToyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgogICAKMTk5OS0wNS0yMSAwMToyNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBGaXggaW5jb3JyZWN0IHBvaW50ZXIgY2FzdAogICAKMTk5OS0wNS0yMCAwMzo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKICAgCjE5OTktMDUtMTkgMTg6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdF9yZXMuaCAoVjMtbGluZS4xKSwgaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKICAgCjE5OTktMDUtMTkgMTg6MDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFYzLWxpbmUuMiksIHZhcl9yb3V0ZS5jCjoKCiAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQogICAKMTk5OS0wNS0xOSAwODowMiAgbWFyegoKICAgKiB0ZXN0aW5nL3BrdGdlbi50eHQ6CgogICBmaWxlIHBrdGdlbi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTA1LTE5IDA3OjE2ICBtYXJ6CgogICAqIHRlc3RpbmcvcGFja2V0LnR4dDoKCiAgIGZpbGUgcGFja2V0LnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDc6MTQgIG1hcnoKCiAgICogdGVzdGluZy9wa3RnZW4ucGw6CgogICBmaWxlIHBrdGdlbi5wbCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDU6MTEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKICAgCjE5OTktMDUtMTkgMDI6MzMgIGRhdmVzCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCiAgIAoxOTk5LTA1LTE4IDA5OjIzICBkYXZlcwoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHYzLmMgc25tcGxpYi9zeXN0ZW0uYwogICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGFibGUuYyBhcHBzL3NubXB0ZXN0LmMKICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICggI2lmIEhBVkVfV0lOU09DS19IIC8gI2Vsc2UgLyAjZW5kaWYgKQogICAKMTk5OS0wNS0xOCAwOTowMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgogICAKMTk5OS0wNS0xOCAwNjoyNiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCiAgIAoxOTk5LTA1LTE3IDA3OjE3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCjoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmggYWdlbnQvc25tcGQuYwogICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIGEgc2luZ2xlIGFkZHJlc3MgZmllbGQgd2l0aGluIHRoZSBQRFUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKICAgCjE5OTktMDUtMTcgMDQ6MzYgIGRhdmVzCgogICAqIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAKICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwogICAKMTk5OS0wNS0xNyAwNDozNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKICAgCjE5OTktMDUtMTcgMDM6MjAgIGRhdmVzCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjMtbGluZS4xKSwgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKICAgCjE5OTktMDUtMTcgMDM6MTcgIGRhdmVzCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKICAgCjE5OTktMDUtMTQgMTM6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgc25tcGxpYi9zbm1wdXNtLmMKOgoKICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCiAgIAoxOTk5LTA1LTE0IDA5OjQ2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmggYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKICAgCjE5OTktMDUtMTQgMDY6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwogICAKMTk5OS0wNS0xMyAwOTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjMtbGluZS4zKSwgdmFjbV92YXJzLmMKOgoKICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCiAgIAoxOTk5LTA1LTEzIDAzOjUyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwLmMgKFYzLWxpbmUuMiksIGlwLmM6CgogICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQogICAKMTk5OS0wNS0xMiAxMToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMKOgoKICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCiAgIAoxOTk5LTA1LTEyIDEwOjUzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCiAgIAoxOTk5LTA1LTExIDE0OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGhwdXguYywgaHB1eC5oOgoKICAgLSAoaHB1eC5jLCBocHV4LmgpOiBpbnQgLT4gc2l6ZV90IGNvbnZlcnNpb25zLgogICAKMTk5OS0wNS0xMSAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCiAgIAoxOTk5LTA1LTExIDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgogICAKMTk5OS0wNS0xMCAxNDo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBsaWIvc25tcF9hcGkuYzogTWl4LXVwIG9mIFYxX0lOX1YyL1YyX0lOX1YxIGVycm9yIGNvZGUgd2hlbiBHRVRCVUxLCiAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KICAgCjE5OTktMDUtMTAgMTQ6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi90b29scy5jOgoKICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgogICAKMTk5OS0wNS0wNiAwOToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCiAgIAoxOTk5LTA1LTA0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogQWRkZWQgLS1lbmFibGUtZGV2ZWxvcGVyIGZsYWcuCiAgIAoxOTk5LTA1LTA0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKToKICAgICAtIGZpeGVzIGZvciBrbXQuCiAgICAgLSBwb3J0YWJpbGl0eSBlbmhhbmNlbWVudHMuCiAgIAoxOTk5LTA1LTA0IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogZG9uJ3QgdXNlIElTREYoKS4KICAgCjE5OTktMDUtMDQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBkb24ndCBkdW1wIGtleWxpc3QuCiAgIAoxOTk5LTA1LTA0IDAwOjUwICBuYmEKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHNubXBkLmMsIHNubXBkLmgsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jCiwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS91ZHAuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiwgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMKLCBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIG1pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYwosIG1pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywgbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIG1pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmM6CgogICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKICAgCjE5OTktMDUtMDQgMDA6NDcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAgCjE5OTktMDUtMDMgMTU6MzggIG5iYQoKICAgKiBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oCiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9hbGxfc3lzdGVtLmgsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAtdGMuaAosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25tcHYzLmgsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCBzbm1wbGliL3ZhY20uYwosIHNubXBsaWIvdmFjbS5oLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgCXdpdGggZ2NjIC1XYWxsIC1wZWRhbnRpYyAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwpCiAgIAoxOTk5LTA1LTAzIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgdGVzdGluZy9NYWtlZmlsZS5pbgosIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLAogICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9taXNjdGVzdC5jLAogICB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgIE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICBldGltZXRlc3QuYywga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYyk6CiAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCiAgIAoxOTk5LTA1LTAzIDA3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCAtQSBmbGFnLCB3aGljaCBnb3QgYnJva2VuIGR1cmluZyBzb21lb25lcyBjaGFuZ2VzLgogICAKMTk5OS0wNS0wMyAwNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwosIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc25tcHYzLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNubXB0cmFwZC5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCiAgIAoxOTk5LTA1LTAzIDA3OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogLVdhbGwgZml4IGluaXRpYWxpemluZyBhIHZhcmlhYmxlLgogICAKMTk5OS0wNS0wMSAwNzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICAtIChjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogcmVuYW1lZCBzbm1wX2NhbGxiYWNrIHRvIHNubXBfZ2VuX2NhbGxiYWNrLgogICAKMTk5OS0wNC0yOSAwODo0NCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLSAoUkVBRE1FLndpbjMyKTogTm90ZSBjaGFuZ2UgZnJvbSBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTA0LTI5IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wZC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25tcHYzLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAtIHVzZSB0aGUgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBwb3N0LWNvbmZpZyBzdHVmZi4KICAgCjE5OTktMDQtMjkgMDc6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgogICAKMTk5OS0wNC0yOCAwNzo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZW51bSAjZGVmaW5lcyBjcmVhdGVkCiAgIAoxOTk5LTA0LTI3IDA5OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCiAgIAoxOTk5LTA0LTI2IDEyOjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKSAtIGZpeCBvdGhlciB1c2Ugb2YgcmVxdWVzdCdzIGNhbGxiYWNrIGRhdGEKICAgCjE5OTktMDQtMjYgMTI6MTEgIG5iYQoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC92aWV3X3BhcnNlLmMKLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgsIHRlc3RpbmcvTWFrZWZpbGUuaW4KOgoKICAgCiAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAJZnVuY3Rpb25zLgogICAKMTk5OS0wNC0yNiAxMjowOSAgbmJhCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgIHNubXB0YWJsZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB1c20uYywgc25tcHdhbGsuYzoKCiAgIAogICAKICAgYXBwcy8qLmM6IHVzZSBzbm1wX3BlcnJvciB0byByZXBvcnQgZXJyb3JzIGZyb20gcmVhZF9vYmppZCBhbmQgZnJpZW5kcwogICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCiAgIAoxOTk5LTA0LTI2IDEyOjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgCiAgIChpZi5jKSBtYWtlIHRoZSB3aWR0aCBvZiBzbm1wbmV0IC1pIChhbmQgLW8pIGFkYXB0IHRvIHRoZSBsZW5ndGggb2YgcmV0dXJuZWQKICAgCXN0cmluZ3MKICAgCjE5OTktMDQtMjYgMTE6NDggIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIAogICAKICAgLSBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogbmV3IG1pYiBwcmludGVyOiBtaWJfcHJpbnRfdHJlZQogICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgIC0gc25tcGxpYi9zbm1wX2FwaS5jOiBzb21lIGxlZnQgb3ZlciBfX1AgbWFjcm9zCiAgIAoxOTk5LTA0LTI2IDExOjIxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgCiAgIChwYXJzZS5oKSBTaWxseSBzcGVsaW5nIG1pc3RlYWsgKEFDQ0VTU19DUkFFVEUpCiAgIAoxOTk5LTA0LTI2IDA5OjIxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliLmMpIC0gdXNlIHJlcXVlc3QgY2FsbGJhY2sncyBkYXRhIGlmIHJlcXVlc3Qgc3BlY2lmaWVzIGEgY2FsbGJhY2suCiAgIAoxOTk5LTA0LTIzIDEzOjA1ICBtc2xpZmNhawoKICAgKiBSRUFETUUudGhyZWFkOgoKICAgLSBSRUFETUUudGhyZWFkIC0gbG9uZyBuZWVkZWQgZG9jdW1lbnQgZGVzY3JpYmluZyBob3cgdG8gdXNlIFNpbmdsZSBBUEkKICAgCjE5OTktMDQtMjIgMTA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCiwgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCiAgIAoxOTk5LTA0LTIyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBDcmVhdGVkIGEgbmV3IHN1cGVyLWR1cGVyIG1pYjJjIGNvbmZpZ3VyYXRpb24KICAgICBmaWxlIHRoYXQgdGFrZXMgY2FyZSBvZiBqdXN0IGFib3V0IGV2ZXJ5dGhpbmcgaWYgeW91IGhhdmUgYSBtaWIgdGhhdAogICAgIGRvZXMgaXRzIG93biBzdG9yYWdlIChyYXRoZXIgdGhhbiBoYXZpbmcgdG8gcG9rZSBzb21ldGhpbmcgZWxzZSBmb3IKICAgICBpbmZvcm1hdGlvbikuCiAgIAoxOTk5LTA0LTIyIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhbGxvdyBOb0FjY2VzcyB0byBiZSBwcm9jZXNzZWQsIGFuZCB1c2Ugc2tpcGlmOgogICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCiAgIAoxOTk5LTA0LTIyIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CiAgIAoxOTk5LTA0LTIyIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IG1ha2UgaGVhZGVyX2NvbXBsZXgoKSBhY2NlcHQgTlVMTHMuCiAgIAoxOTk5LTA0LTIwIDIxOjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZSB1bi11c2VkIHZ0eXBlLCBwYXJzZXIgZmllbGRzLgogICAKMTk5OS0wNC0yMCAyMTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYpOiBjbGVhbiB1cCBza2lwaWYgcmVnZXhwcyBhIGJpdC4KICAgCjE5OTktMDQtMjAgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IGEgbGl0dGxlIG1vcmUgY2xlYW4gdXAuCiAgIAoxOTk5LTA0LTIwIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB2YXJpYWJsZSBuYW1lIGNvbnZlcnNpb25zOgogICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAtIGNuYW1lIC0+IE5BTUUKICAgCjE5OTktMDQtMjAgMTU6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICB0aGUgbWliMmMgcHJvZ3JhbS4gIFRoaXMgc2hvdWxkIGVudGl0bGUgbWliMmMgdG8gYmUgdXNlZCBtb3JlCiAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICBhYmxlIHRvIHByb2R1Y2UgQyBjb2RlIGZvciBhIG5vbi11Y2Qtc25tcCBhZ2VudCwgb3IgZXZlbiBiZXR0ZXIsCiAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAtIFRoZSBkb3duIHNpZGUsIGlzIHRoYXQgdGhlIGN1cnJlbnQgLmNvbmYgZmlsZXMgYXJlIG5vdyBhbWJpZ3VvdXMKICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgIGl0IHVwIGZvciBtZSBsaWtlIGhlIGRpZCBsYXN0IHRpbWUuICBIYSBoYS4gIEkgd29uZGVyIGlmIGhlJ2xsCiAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgogICAKMTk5OS0wNC0yMCAxMToyOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IG1vcmUgdXBkYXRlcy4KICAgCjE5OTktMDQtMTkgMjE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIC0gKHRvb2xzLmgpOiBuZXcgY29udmVuaWVuY2UgbWFjcm86IFNOTVBfTUFMTE9DX1NUUlVDVChzdHJ1Y3ROYW1lKS4KICAgCjE5OTktMDQtMTkgMjE6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogZG9uJ3QgZnJlZSB0aGluZ3MgdGhhdCBhcmUgTlVMTC4KICAgCjE5OTktMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgpLgogICAKMTk5OS0wNC0xOSAyMToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgLSBjbGVhbmVkIHVwIHBlcnNpc3RlbnQgc3RvcmFnZSBwYXJzaW5nIHJvdXRpbmVzLgogICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCiAgIAoxOTk5LTA0LTE5IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IE5VTEwgY2hlY2tpbmcuCiAgIAoxOTk5LTA0LTE5IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KICAgCjE5OTktMDQtMTkgMjE6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgIC0gcmV3cm90ZSBtaWIyYyB0byBiZSBtb3JlIGRlcGVuZGVudCBvbiAuY29uZiBmaWxlcy4gIFRoZSBtYWluIC5jb25mCiAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgogICAKMTk5OS0wNC0xOCAwNjo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpIHN1YmRpciBjaGFuZ2UgcGVyIEpvZSBQcnVldHR0OiA5IC0+IDEwCiAgIAoxOTk5LTA0LTE2IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKICAgCjE5OTktMDQtMTYgMjE6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKICAgCjE5OTktMDQtMTYgMjE6MjcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlZAogICAKMTk5OS0wNC0xNiAyMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KICAgCjE5OTktMDQtMTYgMjE6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCiAgIAoxOTk5LTA0LTE2IDIxOjEzICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dDoKCiAgIC0gKERJU01BTi1TQ1JJUFQtTUlCLnR4dCk6IGFkZGVkIHRvIG1pYnMgZGlyLgogICAKMTk5OS0wNC0xNiAyMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmgpOiBwcm90b3R5cGVzLgogICAKMTk5OS0wNC0xNiAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKICAgCjE5OTktMDQtMTYgMjE6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KICAgCjE5OTktMDQtMTYgMDg6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYykgIi1tIiBvciBNSUJTOiBjYW4gc3BlY2lmeSBNSUIgbW9kdWxlIGJ5IGZpbGUgbmFtZS4KICAgCjE5OTktMDQtMTYgMDc6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvSVBGV0NIQUlOUy1NSUIudHh0OgoKICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKICAgCjE5OTktMDQtMTYgMDc6MzAgIG1zbGlmY2FrCgogICAqIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KICAgCjE5OTktMDQtMTQgMTY6NTYgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wc3RhdHVzLmM6CgogICAtIGFwcHMgdGhhdCB1c2Ugc25tcF9maXhfcGR1IG11c3QgY2xlYW4gdXAgdGhlIHJlc3BvbnNlIFBEVSAhCiAgIAoxOTk5LTA0LTE0IDE2OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCiAgIAoxOTk5LTA0LTE0IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGluaXRfc25tcCgic25tcGFwcCIpLgogICAKMTk5OS0wNC0xNCAxNTozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYykgRmlsZSBwb2ludGVyIGluaXRpYWxpemVkIHRvICIiIGJlZm9yZSBmaXJzdCB1c2UuCiAgIAoxOTk5LTA0LTE0IDE1OjI5ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgogICAKMTk5OS0wNC0xMyAxNjowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KICAgCjE5OTktMDQtMTMgMTY6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBuaWNlciBwYXJzZXIgbWVzc2FnZXMgKGluY2x1ZGUgZmlsZSBuYW1lcykuIENvcnJlY3QgaGVscCBmb3IgLVBjLgogICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CiAgIAoxOTk5LTA0LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBjbGVhbiB1cCBzbWFsbCBidWdzLgogICAKMTk5OS0wNC0xMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc3VwcG9ydCAtUC4KICAgCjE5OTktMDQtMTMgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KICAgCjE5OTktMDQtMTMgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGxvZyB3aXRoIHRpbWVzdGFtcCBhdCBzaHV0ZG93bi4KICAgCjE5OTktMDQtMTMgMTU6MzYgIGhhcmRha2VyCgogICAqIG1pYnMvOiBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dDoKCiAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgogICAKMTk5OS0wNC0xMyAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgIC0gYWRkIGNhcGFiaWxpdHkgZm9yIGJpbmFyeSBvY3RldCBzdHJpbmdzIGluIHBhc3Mgc2NyaXB0cy4KICAgCjE5OTktMDQtMTMgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzRGVzY3IgcmVhZC1vbmx5LgogICAKMTk5OS0wNC0xMyAxNToxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgLSBmaXggbGlid3JhcCB0byBvbmx5IGFkZCB0aGUgbGlicmFyeSB0byB0aGUgYWdlbnQuCiAgIAoxOTk5LTA0LTEzIDA4OjQzICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGFkZCBhIFVSTCByZWZlcmVuY2UgdG8gY3lnd2luLgogICAKMTk5OS0wNC0xMiAyMjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgdmFybGlzdCBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyB0byBpdC4KICAgCjE5OTktMDQtMTIgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBtYWtlIGRpc3BsYXllZCBtaWIgbm9kZSBpbmZvIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCBvZiBvbmUuCiAgIAoxOTk5LTA0LTEyIDIyOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmg6CgogICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgogICAKMTk5OS0wNC0xMiAyMjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgogICAKMTk5OS0wNC0xMiAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGRlYWwgd2l0aCBtb3JlIGNvbXBsZXggZGF0YQogICAgIHN0cnVjdHVyZXMgd2l0aCBtdWx0aXBsZSBhbmQgdmFyaWFibGUgbGVuZ3RoIGluZGV4ZXMuCiAgIAoxOTk5LTA0LTEyIDIyOjEyICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBuZXcgUkVBRE1FIGZyb20gSm9lIE1hcnpvdC4KICAgCjE5OTktMDQtMDcgMTU6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KICAgCjE5OTktMDQtMDcgMTI6MjMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICAtKGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jIHNubXBsaWIvdG9vbHMuYykgbW92ZSBrZXlzdHJva2UgZnVuY3Rpb25zIHRvIGFwcGxpY2F0aW9uLgogICAKMTk5OS0wNC0wNyAxMjoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmM6CgogICAtKGlwZndjaGFpbnMuYykgcmVtb3ZlIG11bHRpcGxlIGRlZmluaXRpb25zIG9mIE1BVENIX0ZBSUxFRAogICAKMTk5OS0wNC0wNyAxMTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3ZhY20uaCwgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgIGFnZW50L3ZpZXdfcGFyc2UuYyBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMKICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KICAgCjE5OTktMDQtMDcgMTE6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKTogcmVtb3ZhbCBvZiBkdXBsaWNhdGUgZnVuY3Rpb25zLgogICAKMTk5OS0wNC0wNyAxMTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHVzbS5jOgoKICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdXNtLmMpOiBkZWJ1Z2dpbmcgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA0LTA3IDExOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS92YWNtX3ZhcnMuYywgc211eC9zbXV4LmMKLCBzbm1wdjMvc25tcEVuZ2luZS5jLCBzbm1wdjMvdXNtVXNlci5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKOgoKICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICB1c21Vc2VyLmMsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCiAgIAoxOTk5LTA0LTA3IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc25tcHYzLmM6CgogICAtIChzY2FwaS5jLCBzbm1wdjMuYyk6IGRlYnVnIHR5cG9zIGFuZCBpbmNsdWRlIGZpbGUgYWRkaXRpb25zLgogICAKMTk5OS0wNC0wNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIC0gKHNubXBfbWliLmMpOiByZW1vdmVkIHVubm5lZWRlZCBoZWFkZXJfc25tcCgpLgogICAKMTk5OS0wNC0wNyAxMDo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWJ1Zy5oOgoKICAgLSAoZGVidWcuaCk6IHJlbW92ZWQuCiAgIAoxOTk5LTA0LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmgsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaAo6CgogICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgTWFrZWZpbGUuaW4sIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsCiAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgLSBtaXNjIG1lcmdpbmcsIGluY2x1ZGluZyBmaXhlcyBhbmQgZGVidWdnaW5nIHN0YXRlbWVudCBjaGFuZ2VzIHRvCiAgICAgICBuZXdlciBtb2RlbC4KICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgogICAKMTk5OS0wNC0wNyAwNjoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9kZWJ1Zy5oLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYwosIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmgKLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAogICAKMTk5OS0wNC0wNiAyMjoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKICAgCjE5OTktMDQtMDYgMjI6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpIC0gc2V0IGdsb2JhbCBwdHJzID0gMC4KICAgCjE5OTktMDQtMDYgMjE6MjMgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKOgoKICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCiAgIAoxOTk5LTA0LTA2IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KICAgCjE5OTktMDQtMDYgMTU6MTIgIGhhcmRha2VyCgogICAqIElTU1VFUywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaAosIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L2F1dG9fbmxpc3QuaCwgYWdlbnQvbTJtLmgsIGFnZW50L3NubXAycC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLCBhcHBzLy5jdnNpZ25vcmUKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYwosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL3NubXAtdWNkLnNoCiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dAosIG1pYnMvU05NUHYyLVRDLnR4dCwgbWlicy9VQ0QtREVNTy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaCwgc25tcGxpYi9hbGxfc3lzdGVtLmgsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2RlYnVnLmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLmMKLCBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwKICAgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3ZhY20uaCwKICAgc25tcGxpYi92aWV3LmMsIHRlc3RpbmcvLmN2c2lnbm9yZSwKICAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SRUFETUUsIHRlc3RpbmcvVC5jLAogICB0ZXN0aW5nL1Quc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LAogICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMKLCB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLAogICB0ZXN0aW5nL2RlbW8ucmVtb3RlLCB0ZXN0aW5nL2RlbW8yLAogICB0ZXN0aW5nL2RlbW8yLmZ1bmN0aW9ucywgdGVzdGluZy9kZW1vMi5zZXR1cGZpbGUsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLAogICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90ZXN0bGlzdCwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywKICAgdGVzdGluZy9taXNjdGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jLAogICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KICAgCjE5OTktMDQtMDYgMTE6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfcHJvYy5jLAogICBpcGZ3Y2hhaW5zL2xpYmlwZndjLmMsIG1pYklJL2ljbXAuYywgbWliSUkvaXAuYwosIG1pYklJL3JvdXRlX3dyaXRlLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYwosIHNtdXgvc211eC5jLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIC0gYW5vdGhlciByb3VuZCBvZiBBTlNJLWZ5aW5nIHRoZSBhZ2VudCBjb21wbGV0ZWQuCiAgIAoxOTk5LTA0LTA2IDEwOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAtIChleHRlbnNpYmxlLmMpIHF1ZWxsIHdhcm5pbmcgYWJvdXQgY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBub24tcG9pbnRlci4KICAgCjE5OTktMDQtMDYgMDk6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlnLnN1Yik6IG5ldyB2ZXJzaW9ucyBmcm9tIGF1dG9jb25mIDIuMTMuCiAgIAoxOTk5LTA0LTA1IDE1OjU5ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIEJ1aWxkIHVzaW5nIEN5Z1dpbjMyIChpbmNsdWRlcyBOaWVscyBCLidzIHNubXBfdmFycy5jIHBhdGNoKS4KICAgCjE5OTktMDQtMDUgMTQ6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIEJ1aWxkIHdpdGggQ3lnV2luMzIKICAgCjE5OTktMDQtMDUgMTQ6MTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBNYWtlZmlsZS5pbiwgaWYuYywgd2luc3R1Yi5jCiwgd2luc3R1Yi5oOgoKICAgLSBidWlsZCBzbm1wbmV0c3RhdCB3aXRoIEN5Z1dpbjMyCiAgIAoxOTk5LTA0LTA1IDExOjA2ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYywgbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYykgSm9lIE1hcnpvdCdzIGZpeCB0byBjb3B5IGV2ZW4gYW4gZW1wdHkgY29tbXVuaXR5IG5hbWUuCiAgIAoxOTk5LTA0LTAxIDEzOjEwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2xpYnNubXAuaDoKCiAgIC0gKGxpYnNubXAuaCkgQXN5bXB0b3RpY2FsbHkgY2xvc2VyIHRvIHN1cHBvcnRpbmcgQ01VIGNvbnN0YW50cy4KICAgCjE5OTktMDMtMjggMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAtIHdoZW4gdXNpbmcgY29weV93b3JkKCkgZG9uJ3Qgc2tpcCBzcGFjZXMsIHNpbmNlIGl0IGRvZXMgdGhhdC4KICAgCjE5OTktMDMtMjggMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKTogcmVsb2NhdGUgdG8KICAgICBzbm1wTW9kdWxlcy4xMiwgd2hlcmUgdGhleSBzaG91bGQgYmUuCiAgIAoxOTk5LTAzLTIzIDEwOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHJlZ2V4cCBmaXguCiAgIAoxOTk5LTAzLTIzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChtaWJkZWZzLmgsIHN0cnVjdC5oLCBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaCwgcHJvYy5jLCBwcm9jLmgsCiAgICAgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBwZXItcHJvY2Vzcy9leGVjIGZpeCBzY3JpcHRzIGNyZWF0ZWQuCiAgIAoxOTk5LTAzLTIzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSByZXR1cm4gdGhlIG5leHQgdG9rZW4sIG5vdCB0aGUKICAgICBuZXh0IHNwYWNlLgogICAKMTk5OS0wMy0yMyAxMDowOSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgbW9yZSB0YXJnZXRzLgogICAKMTk5OS0wMy0xOSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBnZXQuYywgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBnZXQuYywgc25tcHdhbGsuYyk6IGZpeGVkIGluaXRpYWxpemF0aW9uIGFuZCB1c2FnZSBvZiAiZmFpbHVyZXMiLgogICAKMTk5OS0wMy0xOCAwODozNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gKG1pYklJL2lwLmMpIGZpeCBNSUJfSVBDT1VOVEVSX1NZTUJPTCB1c2FnZQogICAKMTk5OS0wMy0xNyAxMzo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLShocl9zd3J1bi5jKSAtIHByZXZlbnQgU3VuT1MgNC4xIGNvcmUgKHN1bm9zNCBzdGlsbCBwcmltaXRpdmUpCiAgIAoxOTk5LTAzLTE2IDExOjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBtaWJncm91cC9taWJpbmNsLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuaCwgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwo6CgogICAtIG1vdmUgTUFUQ0hfRkFJTEVEL01BVENIX1NVQ0NFRURFRCBmcm9tIHV0aWxfZnVuY3MuaCB0byBtaWJpbmNsLmgKICAgCjE5OTktMDMtMTYgMTE6MjMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgY29uc2lzdGVudCBlcnJvciByZXR1cm4uCiAgIAoxOTk5LTAzLTE2IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogZml4IGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGZyZWVic2QuCiAgIAoxOTk5LTAzLTE2IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKTogcmVtb3ZlZCBhIGJvZ3VzIG5ldy1saW5lLgogICAKMTk5OS0wMy0xNSAxNjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IGRvbid0IGRvIGEgbWFrZSBpbnN0YWxsIG9mIGRsbW9kcwogICAKMTk5OS0wMy0xNSAxNjowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRSwgRkFRLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4xICkKICAgCjE5OTktMDMtMTUgMTY6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG1hcmsgd2l0aCB2ZXJzaW9uIG51bS4KICAgCjE5OTktMDMtMTUgMTY6MDAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy42LjEuCiAgIAoxOTk5LTAzLTE1IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1M6CgogICAtIChGQVEsIE5FV1MpOiB1cGRhdGVzIHRvIHRhbGsgYWJvdXQgdGhlIEFHRU5ULnR4dCBmaWxlLgogICAKMTk5OS0wMy0xNSAxNTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCiAgIAoxOTk5LTAzLTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBmaXhlcyBmb3IgbGludXggMi4yIGludGVyZmFjZSBzY2FubmluZy4KICAgCjE5OTktMDMtMTUgMTU6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW50ZXJmYWNlcy5jLCBsaW51eC5oKTogZGV0ZWN0CiAgICAgL3Byb2MvbmV0L2RldiB2ZXJzaW9uIGF0IHJ1biB0aW1lLCBub3QgY29tcGlsZSB0aW1lLgogICAKMTk5OS0wMy0xNSAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgaG9zdC9ocl9wcm9jLmgsCiAgIHVjZC1zbm1wL2xvYWRhdmUuYywgdWNkLXNubXAvbG9hZGF2ZS5oOgoKICAgLSAoaHJfcHJvYy5jLCBocl9wcm9jLmgsIGxvYWRhdmUuYywgbG9hZGF2ZS5oKTogZml4IHRyeV9sb2FkYXZlIGZvciBzb2xhcmlzLgogICAKMTk5OS0wMy0xNSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiBhZGRlZCBDTVVfQ09NUEFUSUJMRQogICAKMTk5OS0wMy0xNSAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICAtIChzbm1wLmgpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudGVkIG91dCBkZWZpbmUuCiAgIAoxOTk5LTAzLTE1IDA5OjQyICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gc2Vjb25kIHBhc3MgYXQgQ01VX0NPTVBBVDogRGlzYWJsZSBieSBkZWZhdWx0LCBsZWF2ZSBzbm1wX3BhcnNlIGFsb25lLgogICAKMTk5OS0wMy0xNSAwODo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMpOgogICAgIC0gcmV2ZXJ0IHRvIHNubXBfcGFyc2UuCiAgICAgLSBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4KICAgCjE5OTktMDMtMTUgMDU6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgbGlic25tcC5oLCBtaWIuYywKICAgc25tcC5oLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4gbGlic25tcC5oIG1pYi5jIHNubXAuaCBzbm1wX2FwaS5jKSB1cGRhdGUgQ01VX0NPTVBBVElCTEUKICAgCjE5OTktMDMtMTIgMTU6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvOiBJUEZXQ0hBSU5TLU1JQi50eHQsCiAgIGlwZndjaGFpbnMuaDoKCiAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCwgaXBmd2NoYWlucy5oKTogbW92ZSB0byBhIHN1Yi1vaWQgaW4gdGhlCiAgICAgZXhwZXJpbWVudGFsIHRyZWUuCiAgIAoxOTk5LTAzLTEyIDE1OjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9JUEZXQ0hBSU5TLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjX2tlcm5lbF9oZWFkZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9saWJpcGZ3Yy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2xpYmlwZndjLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUsCiAgICAgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLCBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsCiAgICAgbGliaXBmd2MuaCk6IFBhdGNoIGZyb20gRGlkaWVyIERoYWVuZW5zOgogICAgIC0gbmV3IG1vZHVsZXM6IGlwZndjaGFpbnMuCiAgIAoxOTk5LTAzLTEyIDE1OjIzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGRvbid0IHByaW50IG1vZHVsZSBsaXN0IGhlcmUuLi4gIHRlbGwgdGhlbSB0byBsb29rIGF0CiAgICAgY29uZmlndXJlIC0taGVscC4KICAgCjE5OTktMDMtMTIgMTQ6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIGhvc3QvaHJfc3lzdGVtLmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gcmVzdG9yZSBjb25maWdfcmVxdWlyZSBsb2dpYzsgZml4IHNwcmludGYgY2FsbHMgdG8gY29tcGlsZSB1bmRlciBTdW5PUyA0LjEueC4KICAgCjE5OTktMDMtMTIgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuaCk6IE1BVENIX0ZBSUxFRCAtPiAtMSwgc2luY2Ugc29tZSB1c2UgaXQuCiAgIAoxOTk5LTAzLTEyIDE0OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHRhcmdldC5oLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAodGFyZ2V0LmgsIHRhcmdldC8qLmgpIHJlcXVpcmUgdXRpbF9mdW5jcyBvbmNlLgogICAKMTk5OS0wMy0xMiAxNDozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5oOgoKICAgLSAoaHJfc3lzdGVtLmgpIC0gZG9uJ3QgcmVxdWlyZSBocl91dGlsOyBkb25lIGluIG1pYmdyb3VwL2hvc3QuaAogICAtIChocl9zd3J1bi5jKSAtIHNvbGFyaXMyOiBtYWtlIHN1cmUga3ZtX29wZW4gaXMgY2FsbGVkIGJlZm9yZSBrZCBpcyB1c2VkLgogICAtIChocl9zd3J1bi5jKSAtIGFkZCBsYW1lIHN1bm9zNCBlcXVpdmFsZW50IGluIEhSU1dSVU5QRVJGX0NQVS4KICAgCjE5OTktMDMtMTIgMTQ6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogcHJvdGVjdCBzdHJjcHkoKSBhZ2FpbnN0IGEgbnVsbCBwYXNzd29yZCBzcGVjaWZpZWQgb24gdGhlCiAgICAgY29uZmlnIGxpbmUuCiAgIAoxOTk5LTAzLTEyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZS4KICAgCjE5OTktMDMtMTIgMTI6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBmaXggYXNuX3BhcnNlIGZ1bmN0aW9ucyB0byBwYXNzIGEgcG9pbnRlciB0byB0aGUgc2l6ZSB2YXJpYWJsZS4KICAgCjE5OTktMDMtMTIgMTE6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogZXhwbGljaXQgdGVzdCBmb3IgTUFUQ0hfRkFJTEVECiAgIAoxOTk5LTAzLTEyIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgZHVtbXkvZHVtbXkuYywKICAgZXhhbXBsZXMvd29tYmF0LmMsIGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfZGlzay5jCiwgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfbmV0d29yay5jLAogICBob3N0L2hyX3BhcnRpdGlvbi5jLCBob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jCiwgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMsCiAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvaWNtcC5jCiwgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLAogICBtaWJJSS9zbm1wX21pYi5jLCBtaWJJSS9zeXNPUlRhYmxlLmMsCiAgIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jLAogICBtaXNjL2RsbW9kLmMsIHVjZC1zbm1wL3JlZ2lzdHJ5LmM6CgogICAtIChtaWJpbmNsLmgsIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBzbm1wX21pYi5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLCBkbG1vZC5jLAogICAgIHJlZ2lzdHJ5LmMpOiBmaXhlZCBNQVRDSF9GQUlMRUQvU1VDQ0VFREVEIGRlZmluZXMgLT4gdXRpbF9mdW5jcy5oLgogICAKMTk5OS0wMy0xMiAwNzowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiBVc2UgTUFUQ0hfRkFJTC9TVUNDRUVERUQgaW4gdXRpbF9mdW5jcy5oCiAgIAoxOTk5LTAzLTExIDE2OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oOgoKICAgLSAoc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oKTogUGF0Y2ggZnJvbSBFcmlrIEphY29ic2VuOgogICAgIC0gZml4ZWQgcHJvdG90eXBlcyBmb3IgREVCVUdQKCkgYW5kIERFQlVHUE9JRCgpLgogICAKMTk5OS0wMy0xMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKTogbW92ZSBNQVRDSF9TVUNDRUVERUQgZGVmcyB0byAuaC4KICAgCjE5OTktMDMtMTEgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBmaXhlZCBhIGNvdXBsZSBvZiBidWdzIGFuZCBhbnNpJ2lmaWVkIHRoaW5ncy4KICAgCjE5OTktMDMtMTEgMTY6MTAgIGhhcmRha2VyCgogICAqIEFHRU5UOgoKICAgLSAoQUdFTlQpOiByZW1vdmVkIEFHRU5UCiAgIAoxOTk5LTAzLTExIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogY2hhbmdlZCBzb21lIGNvbW1lbnRzIHRvIC8qICovIGluc3RlYWQgb2YgLy8uCiAgIAoxOTk5LTAzLTExIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBNaWtlIEJhZXIuCiAgIAoxOTk5LTAzLTEwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBOQU1FIC0+IE9JRC4KICAgCjE5OTktMDMtMTAgMTU6MDcgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogZ3JvdXAgbGluZXMgd2VyZSBiYWNrd2FyZHMuCiAgIAoxOTk5LTAzLTEwIDE1OjA3ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBtb3ZlZCBmcm9tIEFHRU5UIHRvIGF2b2lkIG5vbi1jYXNlLXNlbnNpdGl2ZSB3MzIgY29uZmxpY3RzLgogICAKMTk5OS0wMy0wOCAxNDoyOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIHJvdXRlLmM6CgogICAtIChzbm1wbmV0c3RhdDppZi5jLCByb3V0ZS5jKSBsaW1pdCBpbnRlcmZhY2UgbmFtZSBzaXplcyB0byBmaXQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAoxOTk5LTAzLTA4IDA5OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpIENvbXBsZXRlIERhdmUgU2hpZWxkcycgcGF0Y2ggZm9yIGNvbnRpbnVlIGFmdGVyIGVycm9yLgogICAKMTk5OS0wMy0wOCAwNTowNyAgbXNsaWZjYWsKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCkgTUFYX05BTUVfTEVOIC0tPiBNQVhfT0lEX0xFTiBpbiBleGFtcGxlCiAgIAoxOTk5LTAzLTA4IDA1OjAxICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0od2luMzIvY29uZmlnLmgpIHJlbW92ZSB1bnVzZWQgU1lTX1RJTUVfTkFNRSxHTE9CQUxTRUNVUklUWS4gYWRkIG5ldyBjb25zdGFudHMuCiAgIAoxOTk5LTAzLTA4IDA0OjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKSB1c2UgcmVxdWVzdCBkYXRhIHdpdGggcmVxdWVzdCBjYWxsYmFjawogICAKMTk5OS0wMy0wOCAwNDowMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgKHBhcnNlLmMpIC0gZml4IHN1YmlkIGluaXQ7IHJlbW92ZSB1c2VsZXNzICctUGwnIG9wdGlvbi4KICAgCjE5OTktMDMtMDUgMTc6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNzozNSAgaGFyZGFrZXIKCiAgICogRkFRLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAo6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNiApCiAgIAoxOTk5LTAzLTA1IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBmaW5hbCB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wMy0wNSAxNzoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogYXV0b2NvbmYgdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNzoxOSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTOgoKICAgLSAoRkFRLCBORVdTKTogZmluYWwgdXBkYXRlcy4KICAgCjE5OTktMDMtMDUgMTc6MTIgIGhhcmRha2VyCgogICAqIEFHRU5UOgoKICAgLSAoQUdFTlQpOiBEYXZlIFNoaWVsZCdzIG5ldyBkb2N1bWVudC4KICAgCjE5OTktMDMtMDUgMTc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oOgoKICAgLSAobWliSUkvc3lzdGVtLmgpOiByZW1vdmVkCiAgIAoxOTk5LTAzLTA1IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiByZWZlcmVuY2UgQUdFTlQgZG9jdW1lbnQuCiAgIAoxOTk5LTAzLTA1IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogZG8gZXJyb3IgcmVwb3J0aW5nIGZvciBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgogICAKMTk5OS0wMy0wNSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICAtICh2bXN0YXQuaCk6IGRlY2xhaXIgaW5pdF92bXN0YXQoKS4KICAgCjE5OTktMDMtMDUgMTY6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscCdzIG1vZHVsZSBsaXN0LgogICAKMTk5OS0wMy0wNSAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGV4YW1wbGVzL3dvbWJhdC5jCiwgaG9zdC9ocl9uZXR3b3JrLmMsIG1pYklJL3NubXBfbWliLmgsCiAgIG1pYklJL3N5c3RlbV9taWIuaCwgdWNkLXNubXAvZGlzay5oLAogICB1Y2Qtc25tcC9lcnJvcm1pYi5oLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIHVjZC1zbm1wL2ZpbGUuaCwgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIHVjZC1zbm1wL3Bhc3MuaCwgdWNkLXNubXAvcHJvYy5oLCB1Y2Qtc25tcC9yZWdpc3RyeS5oCiwgdWNkLXNubXAvdmVyc2lvbmluZm8uaDoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYywgd29tYmF0LmMsIGhyX25ldHdvcmsuYywgc25tcF9taWIuaCwgc3lzdGVtX21pYi5oLAogICAgIGRpc2suaCwgZXJyb3JtaWIuaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsIG1lbW9yeV9zb2xhcmlzMi5oLCBwYXNzLmgsCiAgICAgcHJvYy5oLCByZWdpc3RyeS5oLCB2ZXJzaW9uaW5mby5oKToKICAgICAtIC1XYWxsIGZpeGVzLCBtb3N0bHkgaW5pdF8oKSByb3V0aW5lcyBkZWNsYWlyZWQgaW4gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgogICAKMTk5OS0wMy0wNSAxNTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IGNyZWF0ZSBVTkRPCiAgIAoxOTk5LTAzLTA1IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlIHBlcnNpc3RlbnQgc3RvcmFnZSBpbmZvLCBzaW5jZSBpdHMgbm90IHVzZWQgdGhpcyByZWxlYXNlLgogICAKMTk5OS0wMy0wNSAxMTowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAKICAgKHRjcC5jKSAtIGJyZWFrIG91dCBvZiBpbmZpbml0ZSBsb29wIHdoZW4ga2xvb2t1cCBmYWlscy4KICAgCjE5OTktMDMtMDUgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzd2l0Y2ggQ09NTUlUIGFuZCBBQ1RJT04gcGhhc2VzLgogICAKMTk5OS0wMy0wNSAxMDoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZTogcmVhcnJhbmdpbmcgYW5kIGNsZWFuaW5nLgogICAKMTk5OS0wMy0wNSAxMDoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHRoZSB1c2Ugb2YgJ2hlYWRlcl9zaW1wbGVfdGFibGUnIHJhdGhlciB0aGFuICdjaGVja21pYicKICAgICAtIGV4cGxpY2l0IGNvbXBhcmlzb24gd2l0aCBNQVRDSF9GQUlMRUQKICAgICAtIGRvbid0IHNldCBkZWZhdWx0cyBmb3IgJ3dyaXRlX21ldGhvZCcgYW5kICd2YXJfbGVuJwogICAJCShzaW5jZSBib3RoICdoZWFkZXJfZ2VuZXJpYycgYW5kICdjaGVja21pYicgZG8gdGhpcyBhbnl3YXkpCiAgICAgLSBVc2UgZGVmaW5lZCBjb25zdGFudHMgZm9yIHZhcmlhYmxlIGluaXRpYWxpc2F0aW9uIGluIHRoZQogICAJCXdyaXRlIHJvdXRpbmUgKHNpbWlsYXJseSBpbiB0aGUgbWliMmMuY29uZiBwYXRjaCkKICAgICAgICAgW1RoaXMgaXMgb25lIG9mIG15IGhvYmJ5LWhvcnNlcyB3aXRoIG91ciBzdHVkZW50cywgc28gSSBkb24ndAogICAJCSBzZWUgd2h5ICJwcm9mZXNzaW9uYWwiIHByb2dyYW1tZXJzIHNob3VsZCBiZSBleGVtcHQhXQogICAKICAgICAtIE1ha2UgcHJvcGVyIHVzZSBvZiB0aGUgdGhyZWUtcGhhc2UgbmF0dXJlIG9mIFNFVHMKICAgCjE5OTktMDMtMDUgMDk6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAKICAgRml4IFdpbjMyIHZlcnNpb24gb2YgZ2V0dGltZW9mZGF5OiB0dl91c2VjIHdhcyBtaWxsaXNlY3MgLCByZXR1cm4gbm93ID0gMAogICAKMTk5OS0wMy0wNCAxODoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAKICAgKHNubXBfYXBpLmMpIC0gZXhwb3NlIHNubXBfZnJlZTsgc25tcF9wZHVfYWRkX3ZhcmlhYmxlIHJldHVybnMgcHRyIHRvIHZhciBmb3IKICAgZnV0dXJlIGltcHJvdmVkIGVycm9yIHJlY292ZXJ5LgogICAKMTk5OS0wMy0wNCAxNzo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgd2luMzIvY29uZmlnLmgKOgoKICAgCiAgIFJlcGxhY2UgdXNlcyBvZiBiemVybyB3aXRoIG1lbXNldCwgYmNvcHkgd2l0aCBtZW1jcHkuCiAgIEZpeCBwcm90b3R5cGVzLgogICAKMTk5OS0wMy0wNCAxNzowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgCiAgIChzeXNPUlRhYmxlLmMpIC0gcmVtb3ZlIHN0YXRpYyB1X2xvbmcgbG9uZ19yZXR1cm4sIGZvciBjb25zaXN0ZW5jeS4KICAgCjE5OTktMDMtMDQgMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYwosIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtICh1dGlsX2Z1bmNzLmMsIGR1bW15LmMsIGV4YW1wbGUuYywgd29tYmF0LmMsIHRjcC5jLCBocHV4LmMsCiAgICAgbWVtb3J5LmMsIGFsYXJtLmMsIHNubXBfYXBpLmMpOgogICAgIC0gbWlzYyBmaXhlcywgLVdhbGwgbW9zdGx5LgogICAKMTk5OS0wMy0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5OS0wMy0wNCAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtICh2bXN0YXRfZnJlZWJzZDIuYyk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIHR5cG8gZml4ZWQuCiAgIAoxOTk5LTAzLTA0IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIC0gKFJFQURNRS5zbXV4KTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gdXBkYXRlLgogICAKMTk5OS0wMy0wNCAxNTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwKICAgZXhhbXBsZXMvZXhhbXBsZS5jLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pc2MvaXBmd2FjYy5jCiwgdWNkLXNubXAvZGlzay5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL2ZpbGUuYywgdWNkLXNubXAvbG9hZGF2ZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwosIHVjZC1zbm1wL3Byb2MuYywgdWNkLXNubXAvdm1zdGF0LmMsCiAgIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIGV4YW1wbGUuYywgc3lzT1JUYWJsZS5jLCBpcGZ3YWNjLmMsCiAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB2bXN0YXQuYywKICAgICB2bXN0YXRfZnJlZWJzZDIuYyk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBoZWFkZXJfc2ltcGxlX3RhYmxlIHRvIHJlcGxhY2UgY2hlY2ttaWIoKS4KICAgCjE5OTktMDMtMDQgMTU6MjkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgCiAgIChocl9kaXNrLmMpIC0gY29uZGl0aW9uYWxseSB1c2UgZGVmaW5lZCBES0MgZGlzayB0eXBlcwogICAKMTk5OS0wMy0wNCAxNToyNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgCiAgIChkaXNrLmMpIC0gZXhwbGljaXQgYnJhY2VzIHRvIGF2b2lkIGFtYmlndW91cyBgZWxzZScKICAgCjE5OTktMDMtMDQgMTU6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9wcm9jLmMsIHVjZC1zbm1wL2xvYWRhdmUuYwo6CgogICAKICAgCiAgIChocl9wcm9jLmMsIGxvYWRhdmUuYykgLSBmaXhlZCBjb3JlIG9uIGdldGxvYWRhdmcgaW4gYSBkaWZmZXJlbnQgd2F5CiAgIAoxOTk5LTAzLTA0IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHZvaWQgY2hlY2suCiAgIAoxOTk5LTAzLTA0IDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgLSBXaGVuIHRoZSBhZ2VudCBpcyBjb21waWxlZCB3aXRoIEhBVkVfTElCUlBNIHNldCwgeWV0IG5vIGRhdGFiYXNlCiAgICAgICBpcyBmb3VuZCwgYWdlbnQgd2lsbCBjb3JlLi4uCiAgIAoxOTk5LTAzLTA0IDA5OjM4ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXMsIGxvY2FsL2VjZS1zbm1wZC5jb25mLAogICBsb2NhbC9maXhwcm9jLmNvbmY6CgogICAtIChyZW1vdmUtZmlsZXMsIGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLmNvbmYpOgogICAgIC0gcmVtb3ZlZCBlY2Ugc3BlY2lmaWMgY29uZmlnIGZpbGVzIGZyb20gdGhlIHJlcG9zaXRvcnkuCiAgICAgLSBkb24ndCByZW1vdmUgbG9jYWwvKi5jb25mIGluIHRoZSBmaXJzdCBwbGFjZSBhbnltb3JlLgogICAKMTk5OS0wMy0wNCAwOTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgLSBmaXggbG9hZCBhdmVyYWdlIG9uIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTA0IDA5OjI0ICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIAogICAKICAgKE1ha2VmaWxlLmluKSAtIGZpbmQgbWliZGVmcy5oIHdoZW4gbm90IGJ1aWxkaW5nIGluIHRoZSBzb3VyY2UgdHJlZQogICAKMTk5OS0wMy0wNCAwOToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYwosIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIAogICAKICAgKGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYyk6IHJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZXMKICAgCiAgIChhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jKTogY2hhbmdlICIqd29yZCIgdG8gIip0b2tlbiIgdG8gaGVscCBzb21lIGNvbXBpbGVyCiAgIAoxOTk5LTAzLTA0IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZml4IHZvaWQgdGVzdCBmb3IgYW5zaSBjb21waWxlcnMuCiAgIAoxOTk5LTAzLTA0IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIC0gKFJFQURNRS5zbXV4KTogYWRkIE5pY2suCiAgIAoxOTk5LTAzLTA0IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHJlcG9zaXRvcnkgbW92ZS4KICAgCjE5OTktMDMtMDQgMDQ6MDggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIAogICAoc25tcG5ldHN0YXQvaWYuYykgLSBhZGQgdm9pZCB0byBlbXB0eSBmb3JtYWwgcGFyYW1ldGVyIGxpc3QKICAgCjE5OTktMDMtMDMgMTg6MDIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMTAgKQogICAKMTk5OS0wMy0wMyAxODowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIFNNVVguCiAgIAoxOTk5LTAzLTAzIDE4OjAwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gbmFtZSBjaGFuZ2UuCiAgIAoxOTk5LTAzLTAzIDE3OjUxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUE9SVElORywgUkVBRE1FCiwgVE9ETywgYnVnLXJlcG9ydCwgYWdlbnQvc25tcGQuYywKICAgbG9jYWwvUkVBRE1FLm1pYjJjOgoKICAgLSAoQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwgVE9ETywgYnVnLXJlcG9ydCwgc25tcGQuYywKICAgICBSRUFETUUubWliMmMpOiBlY2UudWNkYXZpcy5lZHUgLT4gdWNkLXNubXAudWNkYXZpcy5lZHUuCiAgIAoxOTk5LTAzLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtIChwcm9jLmMsIHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gQ2hyaXMgSHVnaGVzOgogICAgIC0gVXNlIC9wcm9jIG9uIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTAzIDEwOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogYW5zaSdpZnkgdGhlIGNvbmZpZyBmdW5jdGlvbi4KICAgCjE5OTktMDMtMDMgMDg6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHJhbiBhdXRvY29uZi4uLgogICAKMTk5OS0wMy0wMyAwODoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgTmljay4KICAgCjE5OTktMDMtMDIgMTU6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBMaW51eCBjb21waWxlcyBkaWUgYXQgU09fUkNWVElNRU8uCiAgICAgLSAtV2FsbCB0eXBlIGZpeGVzLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdHlwby4KICAgCjE5OTktMDMtMDIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiB0eXBlY2FzdCBmdW5jdGlvbiB3aXRoICh2b2lkKS4KICAgCjE5OTktMDMtMDIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguaDoKCiAgIC0gKHNtdXguaCk6IHRvcCBsZXZlbCBzbXV4IGZha2UgbW9kdWxlIGhlYWRlci4KICAgCjE5OTktMDMtMDIgMTU6MTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2RlYnVnLmMsCiAgICAgc25tcF9kZWJ1Zy5oKToKICAgICAtIG5ldyBmbGFnOiAgLS1kaXNhYmxlLWRlYnVnZ2luZyB0byBjb21wbGV0ZWx5IHR1cm4gb2ZmIGl0cyBzdXBwb3J0LgogICAgIC0gcmVuYW1pbmcgb2YgRE9ERUJVRyB0byBTTk1QX0FMV0FZU19ERUJVRy4KICAgICAtIGNsZWFuIHVwIG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IG9wdGlvbnMgbGlzdGVkLCBpbmNsdWRpbmcgcHV0dGluZwogICAgICAgYSBsaXN0IG9mIGF2YWlsYWJsZSBtb2R1bGVzIGZvciBjb21waWxhdGlvbiBpbnRvIHRoZSBhZ2VudC4KICAgCjE5OTktMDMtMDIgMTM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCByZXR1cm4gYSBwb2ludGVyIHRvIGEgcG9pbnRlci4KICAgCjE5OTktMDMtMDIgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS92YWNtX3ZhcnMuYwosIG1pc2MvaXBmd2FjYy5jOgoKICAgLSAoc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgaXBmd2FjYy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBTdWdnZXN0ZWQgZml4ZXMgdG8gZWxpbWluYXRlIG1vcmUgc2hhZG93ZWQgZ2xvYmFsIHJlZmVyZW5jZXMuCiAgICAgLSBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZyAoKV0uCiAgIAoxOTk5LTAzLTAyIDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBEb24ndCBkZWZpbmUgTUFYX05BTUVfTEVOIGlmIGRlZmluZWQgc29tZXdoZXJlIGVsc2UuCiAgIAoxOTk5LTAzLTAxIDE3OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6CiAgICAgLSBhbGxvdyBudWxsIGxlbmd0aCBwYXNzd29yZHMuCiAgICAgLSBjbGVhbiB1cCBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMTk5OS0wMy0wMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmg6CgogICAtIChhc24xLmgpOiBwdXQgYmFjayBpbiBNQVhfTkFNRV9MRU4gdGVtcG9yYXJpbHkuCiAgIAoxOTk5LTAzLTAxIDE2OjIwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBkZXMuMSwgZGVzLjM6CgogICAtIChkZXMuMSwgZGVzLjMpOiByZW1vdmVkIHVudXNlZCBtYW51YWwgcGFnZXMuCiAgIAoxOTk5LTAzLTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZgosIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gRUNFIGRlcHQuCiAgIAoxOTk5LTAzLTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgdGFyZ2V0cy4KICAgCjE5OTktMDMtMDEgMTY6MTcgIGhhcmRha2VyCgogICAqIG1hbi86IG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZgosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwKICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYKLCB2YXJpYWJsZXMuNToKCiAgIC0gKG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLAogICAgIHZhcmlhYmxlcy41KTogTWljaGFlbCBTbGlmY2FrOgogICAgIC0gc3BlbGwgY2hlY2suCiAgIAoxOTk5LTAzLTAxIDE2OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAtIHJlbW92ZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggdGhhdCB3YXNuJ3QgbmVlZGVkLgogICAKMTk5OS0wMy0wMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jOgoKICAgLSAoYWxhcm0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gQ2FzdCB0byBwb2ludGVyIHRvIGludCBtYXkgb3ZlcmZsb3cgdGhlIHJldHVybiBidWZmZXIuCiAgIAoxOTk5LTAzLTAxIDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IDMuNmlmaWVkLgogICAKMTk5OS0wMy0wMSAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSBjb21wbGV0ZWx5IHJlLXdyaXR0ZW4gc211eCBtb2R1bGVzLgogICAKMTk5OS0wMy0wMSAxMzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmg6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIGNvbXBhcmVfdHJlZSgpIGdsb2JhbC4KICAgCjE5OTktMDMtMDEgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjb250ZXh0X3BhcnNlLmMsIG1pYi5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwZWNhc3RpbmcgZm9yIGNlcnRhaW4gZnVuY3Rpb25zIHRvIChjaGFyICopLgogICAKMTk5OS0wMy0wMSAxMjozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmg6CgogICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIGFkZGVkIE1JTl9PSURfTEVOIGZvciBpbnN0cnVjdGlvbmFsIHVzZSBtb3N0bHkgKGl0cyB1bnVzZWQpLgogICAKMTk5OS0wMy0wMSAxMjoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgIAoxOTk5LTAzLTAxIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHV0IGEgcHJvcGVyICh2b2lkKSBpbnRvIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUuCiAgIAoxOTk5LTAzLTAxIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogc3ByaW50ZiBhcmcgbWlzbWF0Y2guCiAgIAoxOTk5LTAzLTAxIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGNhc2UgZW50cmllcy4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIGZyZWUgdGhlIGludGVyZmFjZSB0YWJsZS4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmM6CgogICAtIChlcnJvcm1pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZXJybm8gdmFyaWFibGUuCiAgIAoxOTk5LTAzLTAxIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gcmVuYW1pbmcgb2YgdmFyaWFibGVzIGF3YXkgZnJvbSBzeXN0ZW0gZnVuY3Rpb24gbmFtZXMgKGluZGV4IC0+IGxpbmRleCkuCiAgIAoxOTk5LTAzLTAxIDEyOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gaW5pdGlhbGl6ZSB2YXJpYWJsZSB0byAwLgogICAKMTk5OS0wMy0wMSAxMDo0OCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHR5cG86IGZpbGVNYXggLT4gZmlsZUVycm9yRmxhZyBuYW1lIGNoYW5nZS4KICAgCjE5OTktMDItMjYgMTY6MzMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOSApCiAgIAoxOTk5LTAyLTI2IDE2OjExICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsCiAgIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYKLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjgsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAtIG5ldyBkb2N1bWVudGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzLgogICAKMTk5OS0wMi0yNiAxNjoxMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogdXNhZ2UgdXBkYXRlLCBhbmQgLUggc3VwcG9ydC4KICAgCjE5OTktMDItMjYgMTY6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlIGZvciAzLjYgcmVsZWFzZS4KICAgCjE5OTktMDItMjYgMTY6MDYgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlIGFuZCBtYWRlIGJldHRlciBleGFtcGxlcy4KICAgCjE5OTktMDItMjYgMTU6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBVbmxpbmtlZCBPSUQgLi4uIGNjaXR0IDAgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgIC0gQ29udGludWUgYWZ0ZXIgcmVzZXJ2ZWQgd29yZCBlcnJvciBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgLSBNb2RpZmljYXRpb24gdG8gIzIgY291cnRlc3kgb2YgTmllbHMgQmFnZ2VzZW4uCiAgICAgLSBNb2RpZmljYXRpb24gdG8gcHJpbnQgc3ViLWlkZW50aWZpZXIgPT0gMAogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgICAgLSBJbnN0ZWFkIG9mIHJlLW9yZGVyaW5nIGFsbCBzaW5nbHktbGlua2VkIGxpc3RzLCB1c2UgYSBuZXcgbWVtYmVyCiAgICAgICB0aGF0IGZsYWdzIHdoZW4gYSByZXBvcnQgaGFzIGJlZ3VuLgogICAKMTk5OS0wMi0yNiAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChsb2FkYXZlLmMsIGxvYWRhdmUuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBpbXBsZW1lbnQgbG9hZCBhdmVyYWdlIHJlcG9ydGluZyBhcyBhIGludGVnZXIgYW5kIGFzIGEgZmxvYXQuCiAgIAoxOTk5LTAyLTI1IDEwOjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIC0gKFJFQURNRSwgdWNkX3NubXAuaCwgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oKTogUGF0Y2gKICAgICBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAtIG1lbW9yeSBzdXBwb3J0IGZvciBzb2xhcmlzMi4KICAgCjE5OTktMDItMjQgMTc6MTAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbGludXguaCk6CiAgICAgLSBDaGVjayBmb3IgYW5kIGhhbmRsZSAyLjIgL3Byb2MvbmV0L2RldiBjaGFuZ2VzLgogICAKMTk5OS0wMi0yNCAxNDo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiB1cGRhdGUuCiAgIAoxOTk5LTAyLTIyIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBEb24ndCBwcmludCAiY2FuJ3QgZmluZCBtb2R1bGUgWFhYIiBtZXNzYWdlcyB3aXRob3V0IHdhcm5pbmdzIHR1cm5lZCBvbi4KICAgCjE5OTktMDItMjIgMDk6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgLSBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBzZWxlY3QgImFsbG93IHVuZGVyc2NvcmUgaW4gTUlCCiAgICAgICBzeW1ib2xzIiBpcyBtaXNzaW5nLgogICAKMTk5OS0wMi0xNyAxNjoyMyAgZHJlZWRlcgoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIGZpbGUgc25tcC11Y2Quc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTAyLTE3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0Lzogd2luc3R1Yi5jLCB3aW5zdHViLmg6CgogICAtICh3aW5zdHViLmMsIHdpbnN0dWIuaCk6IHBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZ2VuZXJpYyB3aW5kb3dzIEFQSSByZXBsYWNlbWVudHMuCiAgIAoxOTk5LTAyLTE3IDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGQuYywgZHVtbXkuYywgd29tYmF0LmMsIHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGRsbW9kLmMsCiAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICBtZW1vcnlfZnJlZWJzZDIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCBtaWIuYywKICAgICByZWFkX2NvbmZpZy5jKTogd29yZCAtPiB0b2tlbiAoIndvcmQiIGlzIHJlc2VydmVkIGluIHNvbWUgY29tcGlsZXJzLgogICAKMTk5OS0wMi0xNyAxNToyOCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AKOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB3aW4zMiB1cGRhdGVzLgogICAKMTk5OS0wMi0xNyAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHNubXBfYXV0aC5jCjoKCiAgIC0gKHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHNubXBfYXV0aC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0IGZpeGVzLgogICAKMTk5OS0wMi0xNyAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChzbm1wX2RlYnVnLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGRlYnVnX2FyZ3Mgd2FzIGRlY2xhcmVkIHR3aWNlLgogICAgIC0gaGVhZGVyIGZpeGVzIGZvciB3aW4zMi4KICAgCjE5OTktMDItMTcgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGZwcmludF92YXJpYWJsZSB0byBub3QgcmVjdXJzZS4KICAgCjE5OTktMDItMTcgMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY29udGV4dF9wYXJzZS5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBkb24ndCB1c2UgYSB2YXJpYWJsZSBjYWxsZWQgJ3RpbWUnLiAgVHNrIHRzay4KICAgCjE5OTktMDItMTcgMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBjb21tZW50IHJlZm9ybWF0dGluZy4KICAgCjE5OTktMDItMTcgMTU6MTggIGhhcmRha2VyCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB1c2UgYSAnLScgaW5zdGVhZCBvZiBhICcuJyBmb3IgSUVFRTgwMi0xMS4KICAgCjE5OTktMDItMTcgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogc2VwYXJhdGUgdGFyZ2V0IGZvciBnZW5lcmF0ZWQgbWFudWFsIHBhZ2VzLgogICAKMTk5OS0wMi0xNyAxNToxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlIGFnYWluIGZvciBiZXR0ZXIgc3RpbGwgb3V0cHV0LgogICAKMTk5OS0wMi0xNyAxNToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgbWFpbi5jLAogICBuZXRzdGF0LmgsIHJvdXRlLmM6CgogICAtIChpZi5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtYWtlIHNubXBuZXRzdGF0IHdpbjMyIGNvbXBhdGlibGUuCiAgIAoxOTk5LTAyLTE3IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdXNhZ2UgZml4LgogICAKMTk5OS0wMi0xNyAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuaDoKCiAgIC0gKHNubXBkLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgcHJvdG90eXBlLgogICAKMTk5OS0wMi0xNyAxNToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEwuIEhpdGNoOgogICAgIC0gZml4IGlmX25hbWUgdmFyaWFibGUgYnkgbWFraW5nIGl0IHN0YXRpYy4KICAgCjE5OTktMDItMTYgMTc6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZWQgbWliMmMgcHJvZ3JhbS4uLiAgc3RpbGwgaW4gcHJvZ3Jlc3MuLi4KICAgCjE5OTktMDItMTEgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdXBkYXRlLgogICAKMTk5OS0wMi0xMSAxNjo0OCAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU4ICkKICAgCjE5OTktMDItMTEgMTY6NDYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFeHQtMy02LXByZTggKQogICAKMTk5OS0wMi0xMSAxNjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAtICh0Y3AuYyk6IHZhcl90Y3BFbnRyeSB3YXMgY2hlY2tpbmcgYWdhaW5zdCB0aGUgaW5jb21pbmcgb2lkIHdpdGggdGhlCiAgICAgd3JvbmcgbGVuZ3RoIGFuZCBjb3VsZCBzdWNjZWVkIGF0IHRpbWVzIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUuCiAgIAoxOTk5LTAyLTExIDE2OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywKICAgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYzoKCiAgIC0gKGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgIC0gTW9yZSBidWYgc2l6ZSBzdGFuZGFyZGl6YXRpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCiAgICAgLSBBIGZldyBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4gY29udmVyc2lvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KICAgCjE5OTktMDItMTEgMTY6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogaW5jbHVkZSBzbm1wX3ZhcnMuaCBhaGVhZCBvZiB2YXJfc3RydWN0LmguCiAgIAoxOTk5LTAyLTExIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKCopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGNvbnZlcnQgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOLgogICAgIC0gY29udmVydCB0ZW1wb3JhcnkgY2hhcmFjdGVyIHN0b3JhZ2UgYnVmZmVycyB0byBTUFJJTlRfTUFYX0xFTi4KICAgICAtIG1ha2UgdGhlIGxpYnJhcmllcyBwcmludF8gZnVuY3Rpb25zIHVzZSB0aGUgZnByaW50XyBmdW5jdGlvbgogICAgICAgYWxyZWFkeSBkZWZpbmVkIGFuZCBwYXNzIGl0IHN0ZG91dC4KICAgCjE5OTktMDItMDkgMTQ6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGluY3JlYXNlIGJ1ZmZlciBzaXplIGZvciBvaWQgcHJpbnRpbmcuCiAgIAoxOTk5LTAyLTA5IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IGRlZmluZSBhIHN5bWJvbCBmb3IgT0lEIHByaW50aW5nJ3Mgc3RvcmFnZSBidWZmZXIgc2l6ZS4KICAgCjE5OTktMDItMDkgMTQ6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiB0eXBvLgogICAKMTk5OS0wMi0wOSAxNDoxMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgRkFRLmh0bWwuCiAgIAoxOTk5LTAyLTA4IDIzOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvOiBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYwosIGV4YW1wbGUuaDoKCiAgIC0gKGFnZW50L2RsbW9kcyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWlzYyBmaXhlcy4KICAgCjE5OTktMDItMDggMjM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmg6CgogICAtIChrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCkgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbmNsdWRlIHVwZGF0ZXMuCiAgIAoxOTk5LTAyLTA4IDIzOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgc25tcDJwLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsCiAgIHNubXBfdmFycy5oLCBzbm1wZC5oLCB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlZGVmIGFsbCBvZiB0aGUgdmFyX3h4eCBhbmQgd3JpdGUgbWV0aG9kIGZ1bmN0aW9ucy4KICAgCjE5OTktMDItMDggMjM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZHVtbXkvZHVtbXkuYywgZXhhbXBsZXMvZXhhbXBsZS5jLAogICBleGFtcGxlcy9leGFtcGxlLmgsIGV4YW1wbGVzL3dvbWJhdC5jLCBob3N0L2hyX2RldmljZS5jCiwgaG9zdC9ocl9kZXZpY2UuaCwgaG9zdC9ocl9kaXNrLmMsIGhvc3QvaHJfZGlzay5oCiwgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfZmlsZXN5cy5oLAogICBob3N0L2hyX25ldHdvcmsuYywgaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcmludC5oLCBob3N0L2hyX3Byb2MuYywKICAgaG9zdC9ocl9wcm9jLmgsIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N0b3JhZ2UuaAosIGhvc3QvaHJfc3dpbnN0LmMsIGhvc3QvaHJfc3dpbnN0LmgsCiAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zd3J1bi5oLCBob3N0L2hyX3N5c3RlbS5jCiwgaG9zdC9ocl9zeXN0ZW0uaCwgbWliSUkvYXQuYywgbWliSUkvYXQuaCwKICAgbWliSUkvaWNtcC5jLCBtaWJJSS9pY21wLmgsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaW50ZXJmYWNlcy5oLCBtaWJJSS9pcC5jLCBtaWJJSS9pcC5oLAogICBtaWJJSS9yb3V0ZV93cml0ZS5oLCBtaWJJSS9zbm1wX21pYi5jLCBtaWJJSS9zbm1wX21pYi5oCiwgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS9zeXNPUlRhYmxlLmgsCiAgIG1pYklJL3N5c3RlbS5oLCBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3N5c3RlbV9taWIuaAosIG1pYklJL3RjcC5jLCBtaWJJSS90Y3AuaCwgbWliSUkvdWRwLmMsCiAgIG1pYklJL3VkcC5oLCBtaWJJSS92YWNtX3ZhcnMuYywgbWliSUkvdmFjbV92YXJzLmgKLCBtaWJJSS92YXJfcm91dGUuYywgbWliSUkvdmFyX3JvdXRlLmgsCiAgIG1pc2MvaXBmd2FjYy5jLCBtaXNjL2lwZndhY2MuaCwgc211eC9zbm1wX2JncC5jLAogICBzbXV4L3NubXBfYmdwLmgsIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9vc3BmLmgKLCBzbXV4L3NubXBfcmlwMi5jLCBzbXV4L3NubXBfcmlwMi5oLAogICB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL2Rpc2suaCwgdWNkLXNubXAvZXJyb3JtaWIuYwosIHVjZC1zbm1wL2Vycm9ybWliLmgsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCB1Y2Qtc25tcC9maWxlLmMsIHVjZC1zbm1wL2ZpbGUuaAosIHVjZC1zbm1wL2hwdXguYywgdWNkLXNubXAvaHB1eC5oLAogICB1Y2Qtc25tcC9sb2FkYXZlLmMsIHVjZC1zbm1wL2xvYWRhdmUuaCwKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeS5oLAogICB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcGFzcy5oLAogICB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIHVjZC1zbm1wL3Byb2MuYywgdWNkLXNubXAvcHJvYy5oLCB1Y2Qtc25tcC9yZWdpc3RyeS5jCiwgdWNkLXNubXAvcmVnaXN0cnkuaCwgdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgdWNkLXNubXAvdm1zdGF0LmMsCiAgIHVjZC1zbm1wL3Ztc3RhdC5oLCB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsIHYycGFydHkvYWNsX3ZhcnMuYywKICAgdjJwYXJ0eS9hY2xfdmFycy5oLCB2MnBhcnR5L2FsYXJtLmMsIHYycGFydHkvYWxhcm0uaAosIHYycGFydHkvY29udGV4dF92YXJzLmMsIHYycGFydHkvY29udGV4dF92YXJzLmgsCiAgIHYycGFydHkvZXZlbnQuYywgdjJwYXJ0eS9ldmVudC5oLCB2MnBhcnR5L3BhcnR5X3ZhcnMuYwosIHYycGFydHkvcGFydHlfdmFycy5oLCB2MnBhcnR5L3ZpZXdfdmFycy5jLAogICB2MnBhcnR5L3ZpZXdfdmFycy5oOgoKICAgLSAoYWdlbnQvKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwZWRlZiBhbGwgb2YgdGhlIHZhcl94eHggYW5kIHdyaXRlIG1ldGhvZCBmdW5jdGlvbnMuCiAgIAoxOTk5LTAyLTA4IDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IHN5cy90eXBlcy5oCiAgIAoxOTk5LTAyLTA4IDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2Ugc25tcF9vaWRfY29tcGFyZSB1c2UgY29uc3Qncy4KICAgCjE5OTktMDItMDggMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHVzZSBzaXplX3QgaW5zdGVhZCBvZiAidW5zaWduZWQiIGZvciB4bWFsbG9jLCBldGMuCiAgIAoxOTk5LTAyLTA4IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IHByb3BlciBicmFja2V0IGluZGVudGF0aW9uLgogICAKMTk5OS0wMi0wOCAxNToxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAocm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gSWZJbmRleC4KICAgCjE5OTktMDItMDggMTU6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IG5vdGhpbmcuICByZWFsbHkuCiAgIAoxOTk5LTAyLTA4IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIHRpbWUgLT4gbV90aW1lLgogICAKMTk5OS0wMi0wOCAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IGlpbmRleC4KICAgCjE5OTktMDItMDggMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2UgdHJlZV9jb21wYXJlKCkgYmUgYSByZWFsIHR5cGVkZWYnZWQgZnVuY3Rpb24gYWdhaW4gbm93IHRoYXQKICAgICAgIHFzb3J0aW5nIGlzIG5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk5LTAyLTA4IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFRrLnBtIG1lbnRpb24uCiAgIAoxOTk5LTAyLTA4IDEyOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9obiBQb2xzdHJhOgogICAgIC0gY2FsbCBhY2NlcHQoKSB0byBnZXQgdGhlIHNvY2tldCBmaWxlIGRlc2NyaXB0b3IuCiAgIAoxOTk5LTAyLTAyIDIyOjAyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIG1lbnRpb24gdGhhdCB0aGUgbWVtb3J5IHNlY3Rpb24gaXNuJ3Qgc3VwcG9ydGVkIG9uIGFsbAogICAgICAgYXJjaGl0ZWN0dXJlcy4KICAgCjE5OTktMDItMDIgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSAoaHJfcHJvYy5jKTogdXNlIFswXSBpbmRleCBvZiBsb2FkIGF2ZXJhZ2UgdGFibGUuCiAgIAoxOTk5LTAyLTAyIDIyOjAxICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IFJlbW92ZSB1bnN1cHBvcmVkIG1pYiBub2RlcyBmcm9tIG91dHB1dCBpbnN0ZWFkIG9mIHJldHVybmluZyAwJ3MuCiAgIAoxOTk5LTAyLTAyIDIyOjAwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIGxhY2sgb2Ygc29sYXJpcyBtZW1vcnkgc3VwcG9ydC4KICAgCjE5OTktMDItMDIgMTQ6NDggIGJhZXJtCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHRhcmdldC5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgogICAtIENvZGUgYWRkZWQgdG8gc3VwcG9ydCB0aGUgdGFyZ2V0IE1JQiwgc3BlY2lmaWNhbGx5IHRoZSBhZGRyZXNzIGFuZAogICAgIHBhcmFtcyB0YWJsZS4KICAgCjE5OTktMDItMDIgMTQ6MzQgIGJhZXJtCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gVXBkYXRlZCBjb3B5X3dvcmQgdG8gYWNjZXB0IHF1b3RlZCBzdHJpbmdzLCB3aXRoIGluY2x1ZGVkIHdoaXRlCiAgICAgICBzcGFjZXMuICdcJyBlc2NhcGVzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyLgogICAKMTk5OS0wMi0wMiAxMzozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB0eXBvOiAtTCAtPiAtQSBpbiBoZWxwIHN0cmluZ3MgZG9jcy4KICAgCjE5OTktMDItMDIgMTM6MzMgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIDIwMzYgLT4gMjAzOAogICAKMTk5OS0wMS0yNiAwOTo0NSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcmVmZXJlbmNlIElQIG5ldCBhZGRyZXNzZXMgdG8gMTAuMTAuMTAuMC4KICAgCjE5OTktMDEtMjUgMTY6MjUgIGhhcmRha2VyCgogICAqIFJFQURNRSwgbG9jYWwvUkVBRE1FLm1pYjJjOgoKICAgLSAoUkVBRE1FLCBSRUFETUUubWliMmMpOiBtaWIyYyByZWFkbWUgZmlsZS4KICAgCjE5OTktMDEtMjUgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwKICAgICBmaWxlLmMsIGluZXQuYywgcGFyc2UuYywgc25tcF9kZWJ1Zy5jKToKICAgICAtIC1XYWxsIGZpeGVzLgogICAKMTk5OS0wMS0yNSAxMToxMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHRlc3QgaWYgX19GVU5DVElPTl9fIGlzIHN1cHBvcnRlZCBieSB0aGUgY29tcGlsZXIuCiAgIAoxOTk5LTAxLTI1IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIC0gKHNubXBfZGVidWcuaCk6IHNwZWNpYWwgdGVzdCBmb3IgX19GVU5DVElPTl9fIGJlZm9yZSB1c2luZyBpdC4KICAgCjE5OTktMDEtMjUgMTA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IGZpeCBzdHJpbmdzLmggaW5jbHVkZS4KICAgCjE5OTktMDEtMjUgMTA6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjb250ZXh0X3BhcnNlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jLAogICBzeXN0ZW0uYzoKCiAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgICAgc25tcF9jbGllbnQuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpIGZpeGVzLgogICAKMTk5OS0wMS0yNSAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgogICAKMTk5OS0wMS0yNSAxMDoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMKLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wZGVsdGEuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpbmV0LmMsIG1haW4uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIG1vcmUgYW5zaSBmaXhlcy4KICAgCjE5OTktMDEtMjIgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIENoZWNrIGZvciBOVUxMIG9uIHNlc3Npb24gY2xvc2VzLgogICAKMTk5OS0wMS0yMSAwODo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJlbW92ZSB1Y2Qgc3BlY2lmaWMgbW9kdWxlIGRlcGVuZHMuCiAgIAoxOTk5LTAxLTIxIDA4OjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiwgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9hcGkuYywgY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwKICAgICBKLiBTbGlmY2FrOgogICAgIC0gTk9fTlVMTF9DT01VTklUWSAtPiBOT19aRVJPTEVOR1RIX0NPTU1VTklUWS4KICAgCjE5OTktMDEtMjEgMDg6MzkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBKLiBTbGlmY2FrOgogICAgIC0gdHlwbyBvbiBKb2UncyBuYW1lIGZpeGVkLgogICAKMTk5OS0wMS0yMCAxNzoxMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU3ICkKICAgCjE5OTktMDEtMjAgMTc6MDQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNyApCiAgIAoxOTk5LTAxLTIwIDE3OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogcmFuIGF1dG9oZWFkZXIKICAgCjE5OTktMDEtMjAgMTY6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgbWFpbi5jLCBzbm1wX2FwaS5jKToKICAgICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGFsbG93IHplcm8gbGVuZ3RoIChsZWdhbCkgY29tbXVuaXR5IHN0cmluZ3MuCiAgIAoxOTk5LTAxLTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IGRlYnVnZ2luZyBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBleHBvcnQgc2RsaXN0IGFuZCBzZGxlbiB2YXJpYWJsZXMuCiAgIAoxOTk5LTAxLTIwIDE1OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtaWIgbW9kdWxlIG1ha2UgcmVxdWlyZW1lbnRzLgogICAKMTk5OS0wMS0yMCAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdCk6ICNpZmRlZiBSUE0gcHJvdGVjdCBhIGZyZWUgcm91dGluZS4KICAgCjE5OTktMDEtMjAgMTU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogdHlwbwogICAKMTk5OS0wMS0yMCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogaGVscGluZyBvdXQgY2hhbmdlcy4KICAgCjE5OTktMDEtMjAgMTU6MzAgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogSXQncyAxOTk5CiAgIAoxOTk5LTAxLTIwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogYWRkZWQgdmVyc2lvbiBzdGFtcC4KICAgCjE5OTktMDEtMjAgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTAxLTIwIDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHVjZC1zbm1wLWluY2x1ZGVzLmguCiAgIAoxOTk5LTAxLTIwIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogbWluaW1hbGlzaCBpbmNsdWRlIHNldCBmb3IgbGlicmFyeSBjbGllbnRzLgogICAKMTk5OS0wMS0yMCAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGVycm9ybWliLmMsCiAgIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKToKICAgICAtIGxpbnV4IDIuMSBrZXJuZWwgbmVlZHMgYXNtL3BhZ2UuaCAoYWxsIGluY2x1ZGVzIG5lZWQgdG8gYmUgcmUtd3JpdHRlbikuCiAgIAoxOTk5LTAxLTIwIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXAuYwosIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMKOgoKICAgLSAoYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFyX3JvdXRlLmMpOgogICAgIC0gc3lzL3N0cmVhbS5oIG5lZWRlZCBieSBTQ08uCiAgICAgLSBpbnRlcmZhY2VzIHNjYW4gZml4ZXMgZm9yIGxpbnV4IDIuMCB2cyAyLjEgY2FuIGJlIGNvbmZpZ3VyZWQgZWxzZXdoZXJlIG5vdy4KICAgICAtIHByb3RlY3QgZ2V0X2FkZHJlc3MgY2FsbHMgYWdhaW5zdCBOVUxMIHBvaW50ZXIgcmV0dXJucy4KICAgCjE5OTktMDEtMjAgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdmVyc2lvbiB0YWdnaW5nIGFiaWxpdHkgdG8gZG8gbWFueSB0aGluZ3MuCiAgIAoxOTk5LTAxLTIwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOiBpbmNsdWRlIHN5cy9zdHJlYW0uaCBmb3IgU0NPLgogICAKMTk5OS0wMS0yMCAxNToxNCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIGZvciBhc20vcGFnZS5oIChsaW51eCkuCiAgICAgLSBjaGVjayBmb3Igc3lzL3N0cmVhbS5oIChTQ08pLgogICAgIC0gRml4IHJ0ZW50cnkgdGVzdC4KICAgCjE5OTktMDEtMjAgMTU6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB2ZXJzaW9uIHRhZyBjcmVhdGlvbi4KICAgCjE5OTktMDEtMjAgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFwcHMvLmN2c2lnbm9yZSwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgaG9zdF9yZXMuaCwgbWliaW5jbC5oLCAuY3ZzaWdub3JlLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGlmLmMsIE1ha2VmaWxlLmluLCBtaWIuYywgcGFyc2UuYywKICAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwKICAgICB2YWNtLmMpOiBkZWJ1Z2dpbmcgc3VwcG9ydCBjb2RlIG1vdmVkIHRvIHNubXBfZGVidWcuW2NoXS4KICAgCjE5OTktMDEtMjAgMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IHR5cG8gaW4gYW5zaSBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiB1bm5lZWRlZCBjb21tZW50IHJlbW92ZWQuCiAgIAoxOTk5LTAxLTIwIDEyOjIwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBwZXJsLVNOTVAgYW5kIHkyayBxdWVzdGlvbnMgYWRkZWQuCiAgIAoxOTk5LTAxLTIwIDEyOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC8ucHVyZSwgc25tcGxpYi8ucHVyZToKCiAgIC0gKC5wdXJlLCAucHVyZSwgLnB1cmUpOiByZW1vdmVkLgogICAKMTk5OS0wMS0xOSAyMDowMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgLSAoc25tcHRhYmxlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2F1dGguYywgbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tCiAgICAgTWljaGFlbCBKLiBTbGlmY2FrOgogICAgIC0gYXBwcy9zbm1wdGFibGUuYyAtIHNvbWUgY29tcGlsZXJzIHdhcm4gY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBpbnRlZ2VyCiAgICAgLSBzbm1wbGliL21pYi5jIC0gYWxyZWFkeSBtZW50aW9uZWQgYmVmb3JlOyBoZXJlIGZvciBjb21wbGV0ZS1uZXNzCiAgICAgLSBzbm1wbGliL3BhcnNlLmMgLSBtaW5vciB0b3VjaHVwIG9mIGluY2x1ZGVzOyBzeXN0ZW0uaCBkdXAgcmVtb3ZlZAogICAgIC0gc25tcGxpYi9zbm1wX2FwaS5oIC0gTVNWaXN1YWwgQysrIGRvZXNuJ3QgaGF2ZSBfX0ZVTkNUSU9OX18KICAgICAtIHNubXBsaWIvc25tcF9hdXRoLmMgLSBtaW5vciBmaXggb2YgY29tbWVudAogICAgIC0gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLSBzbm1wX3BhcnNlX2FyZ3MgbmVlZHMgYSBuZXcgZnVuY3Rpb24KICAgCjE5OTktMDEtMTkgMTk6NTkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBfX1AgY2hlY2tpbmcuCiAgIAoxOTk5LTAxLTE4IDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChSRUFETUUsIGFwcHMsIGFnZW50LCBhY2NvbmZpZy5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gYW5zaSdpZnkgZXZlcnl0aGluZy4KICAgCjE5OTktMDEtMTggMTA6NDMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYwosIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L3Zhcl9zdHJ1Y3QuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuaCwKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuaAosIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgogICAKMTk5OS0wMS0xNiAyMzoxMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU2ICkKICAgCjE5OTktMDEtMTYgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2wuYywgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMKLCBhc24xLmgsIGNvbnRleHQuYywgY29udGV4dC5oLAogICBjb250ZXh0X3BhcnNlLmMsIGludDY0LmMsIGludDY0LmgsIG1kNS5jLAogICBtZDUuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oCiwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcC5jLCBzbm1wLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsCiAgIHN5c3RlbS5jLCBzeXN0ZW0uaCwgdmFjbS5jLCB2YWNtLmgsCiAgIHZpZXcuYywgdmlldy5oOgoKICAgLSAoc25tcGxpYi8qLltjaF0pOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhc25pJ2lmeSBhbGwgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0xNiAyMzowNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IHVwZGF0ZWQgLUQgZGVzY3JpcHRpb24uCiAgIAoxOTk5LTAxLTE1IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIHNtdXggcGF0Y2hlcy4KICAgCjE5OTktMDEtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgLSAodmFjbS5jKTogREVCVUdNU0cgdHlwby4KICAgCjE5OTktMDEtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgogICAKMTk5OS0wMS0xNSAxNToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBtaWJncm91cC9NYWtlZmlsZS5pbgosIG1pYmdyb3VwL21pYklJLmgsIG1pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIG1pYmdyb3VwL2R1bW15L2R1bW15LmgsIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLCBtaWJncm91cC9leGFtcGxlcy93b21iYXQuYwosIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9hdC5oLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuaCwgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmgsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmgsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCBtaWJncm91cC9taWJJSS9zeXN0ZW0uYywKICAgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwLmgsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS91ZHAuaCwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaAosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmgsIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYwosIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwLyopOgogICAgIC0gbWFkZSBhbGwgKG9rLCBzb21lLiAhaG9zdCkgbWliIG1vZHVsZXMgdXNlIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkuCiAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2UgcmVnaXN0ZXJfbWliKCkuCiAgIAoxOTk5LTAxLTE1IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCiAgIAoxOTk5LTAxLTE1IDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wMnAuYzoKCiAgIC0gKHNubXAycC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgogICAKMTk5OS0wMS0xNCAwOTowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHVwZGF0ZSBmb3IgU05NUC5wbSAxLjguCiAgIAoxOTk5LTAxLTA5IDIxOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGF1dG9fbmxpc3QuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIG1pYmdyb3VwL2R1bW15L2R1bW15LmMsIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBtaWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW0uYywKICAgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMKLCBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSAoYWdlbnQvKi5jKToKICAgICAtIHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgICAgLSBpbXBsZW1lbnQgbmVlZGVkIC1EIGZsYWcgY2hhbmdlcy4KICAgCjE5OTktMDEtMDkgMjA6NTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkaXNjdXNzIC1EIHVzYWdlIGNoYW5nZS4KICAgCjE5OTktMDEtMDkgMjA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IERFQlVHUE9JRCByZXBsYWNlbWVudDogREVCVUdNU0dPSUQuCiAgIAoxOTk5LTAxLTA5IDIwOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogcmVtb3ZlIG9sZCB0b2tlbiBzcGVjaWZpZXIgaW4gYSBkZWJ1Z2dpbmcgc3RhdGVtZW50CiAgICAgZm9ybWF0IGxpbmUuCiAgIAoxOTk5LTAxLTA5IDIwOjUwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgbWFpbi5jOgoKICAgLSAoaWYuYywgbWFpbi5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgCjE5OTktMDEtMDkgMjA6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0wOSAyMDo0OSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IFVSTCBjaGFuZ2VzLgogICAKMTk5OS0wMS0wOSAyMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbWFrZSAtRCByZWdpc3RlciB0aGUgZGVidWdnaW5nIHRva2VucyBzcGVjaWZpZWQuCiAgIAoxOTk5LTAxLTA5IDIwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBjaGFuZ2UgaW50ZXJuYWwgZGVidWcgdmFyaWFibGUgdG8gbG9jYWxkZWJ1Zy4KICAgCjE5OTktMDEtMDkgMjA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHZhY20uYyk6CiAgICAgLSBJbXBsZW1lbnQgdGhlIG5ldyB0b2tlbiBiYXNlZCBkZWJ1Z2dpbmcgbWVzc2FnZSBzdXBwb3J0LgogICAKMTk5OS0wMS0wNSAxMDo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgICBzbm1wdGFibGUuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIG1ha2UgbWFpbigpIHJldHVybiBhbiBpbnQgaW5zdGVhZCBvZiB2b2lkLgogICAKMTk5OS0wMS0wNSAxMDo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogTWFrZSBmaWVsZCBzZXBhcmF0b3IgdGFrZSBhcmd1bWVudHMgZGlyZWN0bHkgYWZ0ZXIgdGhlIC1mLgogICAKMTk5OS0wMS0wMiAwODo0OCAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgLSBuZXcgY29tcGxldGUgbGlzdCBvZiBpZlR5cGVzLgogICAKMTk5OC0xMi0zMSAxNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgIC0gb2lkTGVuJ3Mgd2VyZSB3cm9uZyBmb3IgbTJtIG9pZHMuCiAgIAoxOTk4LTEyLTMxIDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBuZWVkIHRvIHJlYWRfb2JqaWQoKSB0aGUgY29udGV4dCBvaWQgYmFzZSwgbm90IHRoZSBwYXJ0eSBvaWQgYmFzZQogICAgICAgaW4gb25lIGxvY2F0aW9uLgogICAKMTk5OC0xMi0zMSAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jOgoKICAgLSAoZXZlbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgIC0gbWVtY21wJ3Mgc2l6ZXMgd2VyZSB3cm9uZy4KICAgCjE5OTgtMTItMjkgMTc6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB2YWNtLmMgKFYzLWIzLjIpLCB2YWNtLmM6CgogICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgIHRyZWUuICBUaGUgdmlld3MgYWxyZWFkeSBleGlzdGVkLCBidXQgd2VyZW4ndCBjaGVja2VkIGFuZCBvbmx5IHRoZQogICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICBzaG91bGQgYmUgcmV3cml0dGVuIHdpdGggc3ViLXBpZWNlcyB0byBkbyBpdCBwcm9wZXJseSB3aXRoIGdyZWF0ZXIKICAgICAgIHNwZWVkLgogICAKMTk5OC0xMi0yOSAxNjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgbmV3bGluZXMgZnJvbSBzcHJpbnRfdmFsdWUoKSB3aGVyZSBhcHBsaWNhYmxlLgogICAKMTk5OC0xMi0yNiAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGRsbW9kIGNvbXBpbGF0aW9uIGluIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkgY2FsbC4KICAgCjE5OTgtMTItMjIgMTQ6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggbXkgYnJva2VuIHNldF9sb2NhbGUgc3R1ZmYuCiAgIAoxOTk4LTEyLTIyIDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgY29tcGlsZSBkbG1vZHMKICAgCjE5OTgtMTItMjEgMTg6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gV2luMzIgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIG9wZW5kaXIoKSwgZXRjLgogICAKMTk5OC0xMi0yMSAxODoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAoZmlsZS5oLCBVQ0QtU05NUC1NSUIudHh0KTogbW92ZSB0aGUgZmlsZSBtaWIgdG8gLjE1IHNvIGl0IGRvZXNuJ3QKICAgICBjb25mbGljdCB3aXRoIHRoZSBkZW1vIG1pYi4KICAgCjE5OTgtMTItMjEgMTg6MTggIGhhcmRha2VyCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYSAuZ2RiIGZpbGUgb2YgbWluZS4KICAgCjE5OTgtMTItMjEgMDk6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL2lwZi1tb2QucGwsIG1pYnMvSVBGSUxURVIudHh0OgoKICAgLSAoaXBmLW1vZC5wbCwgSVBGSUxURVIudHh0KTogUGF0Y2ggZnJvbSBZYXJvc2xhdiBUZXJsZXRza3k6CiAgICAgLSBpcGZpbHRlciBwYXNzIHNjcmlwdCBhbmQgbWliIGZpbGUuCiAgIAoxOTk4LTEyLTE4IDE4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgKOgoKICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IG1pYiBvYmplY3QgdG8gZGlzcGxheSBjb25maWd1cmUgb3B0aW9ucy4KICAgCjE5OTgtMTItMTggMTg6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBzdG9yZSBjb25maWd1cmUgZmxhZ3MgdG8gYSBkZWZpbmUuCiAgIAoxOTk4LTEyLTE4IDE4OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBpbmNsdWRlIHJlYWRfY29uZmlnLmguCiAgIAoxOTk4LTEyLTE4IDE4OjExICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogdXBkYXRlIGZyb20gTWljaGFlbCBTbGlmY2FrLgogICAKMTk5OC0xMi0xOCAxODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgKOgoKICAgLSAocGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBmaXhlcyBmcm9tIE1pY2hhZWwgU2xpZmNhay4KICAgICAtIG1pc2MgcmVhZF9jb25maWcgZnVuY3Rpb25zIHB1bGxlZCBpbiBmcm9tIHRoZSB2MyB3b3JrLgogICAKMTk5OC0xMi0xOCAxMTozNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwby4KICAgCjE5OTgtMTItMTcgMDg6MDUgIGRyZWVkZXIKCiAgICogbG9jYWwvc25tcGQtdWNkLnNoOgoKICAgZmlsZSBzbm1wZC11Y2Quc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk4LTEyLTE2IDA3OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBwb2ludGVyIGNoZWNrcyBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCiAgIAoxOTk4LTEyLTEzIDA4OjU5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTUgKQogICAKMTk5OC0xMi0xMyAwODo1NyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgSmVmZiBKb2huc29uIHRvIHRoZSBjb250cmlidXRvcnMgbGlzdC4KICAgCjE5OTgtMTItMTMgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gSmVmZiBKb2huc29uOgogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG1lbW9yeSBsZWFrcyB3aXRoIHRoZSBSUE0gcGFja2FnZSBpbmZvIGNhbGxzLgogICAKMTk5OC0xMi0xMyAwODo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICAtIChpbmV0LmMpOiBpbml0IHBvaW50ZXIgdG8gTlVMTC4KICAgCjE5OTgtMTItMTMgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogd2F0Y2ggb3V0IGZvciBOVUxMIGZpbGUgcG9pbnRlcnMuCiAgIAoxOTk4LTEyLTEzIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiByZW1vdmUgYSBmZXcgZGVmaW5lcyB0aGF0IHdlcmUgbWVzc2luZyB1cCBzb2xhcmlzIDcuCiAgIAoxOTk4LTEyLTEzIDA4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmUgLXcvLVcgZmxhZyBpbiB1c2FnZS4KICAgCjE5OTgtMTItMTMgMDg6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBzcGFjaW5nIGluIG1pYiBvcHRpb24gdXNhZ2UgZml4ZXMuCiAgIAoxOTk4LTEyLTEzIDA4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBmaXggZGlzayBzaXplIGVycm9yIGZsYWcgcmVwb3J0aW5nIG9uIFNvbGFyaXMuCiAgIAoxOTk4LTEyLTEzIDA4OjA2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGJlZ2lubmluZyBub3RlcyBmb3IgMy42LgogICAKMTk5OC0xMi0xMyAwNzo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogLVAgZmxhZyBmb3IgdG9nZ2xpbmcgbmV3IG1pYiBwYXJzaW5nIG9wdGlvbnMuCiAgIAoxOTk4LTEyLTEzIDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBuZXcgZnVuY3Rpb25zOiBzbm1wX21pYl90b2dnbGVfb3B0aW9ucygpIGFuZCB1c2FnZS4KICAgCjE5OTgtMTItMTMgMDc6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgLSB1c2Ugc2V0bG9jYWxlKCkgaWYgYXZhaWxhYmxlIHRvIGNvcnJlY3QgaXNwcmludCBwcm9ibGVtcy4KICAgCjE5OTgtMTItMDUgMTY6NTIgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vLnJlbW90ZToKCiAgIGZpbGUgZGVtby5yZW1vdGUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY21kczoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5jbWRzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmg6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NDUgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURFTU8tTUlCLnR4dDoKCiAgIGZpbGUgVUNELURFTU8tTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTE6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgZmlsZSBzbm1wdXNtLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzIuZnVuY3Rpb25zOgoKICAgZmlsZSBkZW1vMi5mdW5jdGlvbnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzI6CgogICBmaWxlIGRlbW8yIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMyAxODo0NCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8yLnNldHVwZmlsZToKCiAgIGZpbGUgZGVtbzIuc2V0dXBmaWxlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMiAxNToxOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGZpbGUgc25tcC5jb25mLjUuZGVmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yNyAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wcGFzcy5jOgoKICAgZmlsZSBzbm1wcGFzcy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yNCAxNjo0MyAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmg6CgogICBmaWxlIHRyYW5zZm9ybV9vaWRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI0IDE2OjQzICBkcmVlZGVyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgZmlsZSBlbmNvZGVfa2V5Y2hhbmdlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgLSAtdyAmIC1XIG9wdGlvbnMgdG8gZGVmYXVsdCBhcHBsaWNhdGlvbiBwYXJzZV9hcmdzLgogICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCiAgIAoxOTk4LTExLTIzIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtaXNjIHBhcnNpbmcgYnVnIGZpeGVzLgogICAgIC0gLXcgJiAtVyBvcHRpb25zIHRvIGRlZmF1bHQgYXBwbGljYXRpb24gcGFyc2VfYXJncy4KICAgICAtIHJ1bnRpbWUgb3B0aW9ucyB0byBjb250cm9sIHVuZGVyc2NvcmUgYW5kIGNvbW1lbnQgcGFyc2luZyBpbiBtaWJzLgogICAKMTk5OC0xMS0yMyAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jLCBpcml4LmgpOiBmaXggbG9jYXRpb24gb2YgX0tFUk5FTCBkZWZpbmUgZm9yIGlyaXguCiAgIAoxOTk4LTExLTIyIDA3OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLy5jdnNpZ25vcmU6CgogICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTIyIDA3OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2RlbW86CgogICBmaWxlIGRlbW8gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTE2IDIyOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogdG9vIG1hbnkgaW1wcm92ZW1lbnRzIHRvIGNvdW50LgogICAKMTk5OC0xMS0wNiAxNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB2MiB0cmFwIHNlbmQgZGVidWdnaW5nLgogICAKMTk5OC0xMS0wNiAxNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiB1c2UgdHJhcDJzaW5rIGZvciB2MiBoYW5kbGVycwogICAKMTk5OC0xMS0wNiAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggdjIgdHJhcCBnZW5lcmF0aW9uLgogICAKMTk5OC0xMC0yNCAyMzowNyAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL21pc2N0ZXN0LmM6CgogICBmaWxlIG1pc2N0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDE1OjM5ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXRpbWV0ZXN0LmM6CgogICBmaWxlIGV0aW1ldGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAxMzo1OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcGQuYywgd29tYmF0LmgsCiAgICAgc3lzdGVtLmgsIHZhY21fdmFycy5oLCBkbG1vZC5jLCBkaXNrLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLAogICAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5oLCBwYXNzLmgsIHBhc3NfcGVyc2lzdC5oLAogICAgIHByb2MuaCwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtaWIuYywgcmVhZF9jb25maWcuYywKICAgICByZWFkX2NvbmZpZy5oKToKICAgICAtIG5ldyBvcHRpb24gLUggb24gY29tbWFuZCBsaW5lIHRvIHByaW50IG91dCAuY29uZiBmaWxlIGRpcmVjdGl2ZXMKICAgICAgIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyc3RhbmRzLgogICAgIC0gY3JlYXRlZCBhIG5ldyBvcHRpb24gdG8gdGhlIHJlYWQgY29uZmlnIHJlZ2lzdHJhdGlvbiB0byBhbGxvdwogICAgICAgc3BlY2lmeWluZyBvZiBhIGhlbHAgbGluZS4KICAgCjE5OTgtMTAtMjMgMTM6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBlZGl0YWJsZSBvaWQgZmllbGQuCiAgIAoxOTk4LTEwLTIzIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCjoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jKTogYnVnIGZpeGVzLCBtaXNzaW5nICNlbmRpZi4KICAgCjE5OTgtMTAtMjMgMTM6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnNlcnQgQCBzaWduLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL1Quc2g6CgogICBmaWxlIFQuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF90ZXN0bGlzdDoKCiAgIGZpbGUgZXZhbF90ZXN0bGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgZmlsZSBldmFsX3Rvb2xzLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICBmaWxlIGV2YWxfc3VpdGUuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoOgoKICAgZmlsZSBldmFsX29uZXByb2dyYW0uc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvVC5jOgoKICAgZmlsZSBULmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvUkVBRE1FOgoKICAgZmlsZSBSRUFETUUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBOVUxMIGNoZWNraW5nIG9uIHRoZSBmaWxlc3lzdGVtIG1vdW50IHBvaW50LgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgZmlsZSB0ZXN0X2t1bC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaDoKCiAgIGZpbGUgdGVzdF9rZXljaGFuZ2Uuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvdGVzdF90b29scy5zaDoKCiAgIGZpbGUgdGVzdF90b29scy5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmt1bC1tZDU6CgogICBmaWxlIGRhdGEua3VsLW1kNSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlczoKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMToKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2Utc2hhMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDU6CgogICBmaWxlIGRhdGEua2V5Y2hhbmdlLW1kNSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmt1bC1zaGExOgoKICAgZmlsZSBkYXRhLmt1bC1zaGExIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxNzowMSAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmCjoKCiAgIC0gKC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZik6CiAgICAgLSBuZXcgdW5wcm9vZnJlYWQgbWFudWFsIG9uIHRoZSByZWFkX2NvbmZpZyBhcGkgKG1vc3Qgb2YgaXQpLgogICAKMTk5OC0xMC0yMSAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gd2F0Y2ggb3V0IGZvciBlbXB0eSBmaWxlIG5hbWVzIHBhc3NlZCBpbi4KICAgCjE5OTgtMTAtMjEgMTA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gRml4IHBhcnNlciB0byBkZWFsIHdpdGggYW5vbnltb3VzIGNoaWxkcmVuIHByb3Blcmx5LgogICAKMTk5OC0xMC0yMCAxMTozOCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYzoKCiAgIGZpbGUga2V5bWFuYWdldGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xOCAyMToxNCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZmlsZSBNYWtlZmlsZS5pbiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTggMjE6MTQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGZpbGUgc2NhcGl0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCjoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBhaXguaCk6IGFpeCBoZWFkZXIgZmlsZSBmaXhlcy4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgZmlsZSB0b29scy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBmaWxlIHRvb2xzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuaDoKCiAgIGZpbGUgbGNkX3RpbWUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgZmlsZSBzY2FwaS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICBmaWxlIHNjYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIGZpbGUgbGNkX3RpbWUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5oOgoKICAgZmlsZSBrZXl0b29scy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBmaWxlIGtleXRvb2xzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaDoKCiAgIGZpbGUgYWxsX2dlbmVyYWxfbG9jYWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9hbGxfc3lzdGVtLmg6CgogICBmaWxlIGFsbF9zeXN0ZW0uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9kZWJ1Zy5oOgoKICAgZmlsZSBkZWJ1Zy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IGZpeCBmb3IgaHB1eDkuCiAgIAoxOTk4LTEwLTE0IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBmb3IgYnJva2VuIGNvbXBpbGVyIHdhcm5pbmdzIG9uIE5ULgogICAKMTk5OC0xMC0xNCAxNjo0MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtQS4KICAgCjE5OTgtMTAtMTQgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZG9jdW1lbnQgLUEuCiAgIAoxOTk4LTEwLTE0IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IC1BOiBhcHBlbmQgdG8gbG9nIGZpbGUuCiAgIAoxOTk4LTEwLTE0IDA5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gKGhyX3N0b3JhZ2UuYyk6IG1hY2hpbmUvdHlwZXMuaCBhbmQgc3lzL3ZtbWV0ZXIuaCBmb3IgZnJlZWJzZDMuCiAgIAoxOTk4LTEwLTE0IDA5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IG5ldC9pbl92YXIuaCBmb3IgZnJlZWJzZDMuCiAgIAoxOTk4LTEwLTE0IDA5OjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbWFjaGluZS90eXBlcy5oLgogICAKMTk5OC0xMC0xNCAwOToxNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcHVibGljIGNvbW11bml0eSBleGFtcGxlcyAtPiBwcml2YXRlLgogICAKMTk5OC0xMC0wOSAyMzoyMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSBTaGllbGQgZXhwbGFpbnMgaW4gd29uZGVyb3VzIGRldGFpbCBhbGwgYWJvdXQgdGhlIFZBQ00gbW9kdWxlLgogICAKMTk5OC0xMC0wOSAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzdXBwb3J0IGZvciBzdHJpY3QgKGNhc2Ugc2Vuc2l0aXZlKSBvcHRpb24gdG8gdGhlIG1pYiBjb21waWxlci4KICAgCjE5OTgtMTAtMDkgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gQ2hlY2sgZm9yIGZ1bGx5IHF1YWxpZmllZCBvaWQgc3RhdGVtZW50cy4KICAgCjE5OTgtMTAtMDkgMDg6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVzZSB6bGliIHdoZW4gdXNpbmcgcnBtIGxpYnJhcmllcy4KICAgCjE5OTgtMTAtMDcgMTc6MDAgIGhhcmRha2VyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIC0gKGxpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHdpbk5UIHByb2plY3QgZmlsZSB1cGRhdGVzLgogICAKMTk5OC0xMC0wNyAxNjo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZXhpdGluZyBwcm9ibGVtcyBvbiBOVC4KICAgCjE5OTgtMTAtMDcgMTY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggZGVmYXVsdCBwb3J0IHByb2JsZW1zIChhZ2FpbikuCiAgIAoxOTk4LTEwLTA3IDE2OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgdW4tbmVlZGVkIGhlYWRlcnMuCiAgIAoxOTk4LTEwLTA3IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IG1ha2UgaHRtbC4KICAgCjE5OTgtMTAtMDcgMTY6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHByb3Blcmx5IGxvY2F0ZSB2ZXJzaW9uLmggaW4gJChzcmNkaXIpLgogICAKMTk5OC0xMC0wNiAxNTozOCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUzICkKICAgCjE5OTgtMTAtMDYgMTU6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdHlwby4KICAgCjE5OTgtMTAtMDYgMTU6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogZml4IGZvciBjdnMgMS4xMC4KICAgCjE5OTgtMTAtMDYgMTU6MzQgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IHVwZGF0ZS4KICAgCjE5OTgtMTAtMDYgMTU6MzAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLU9MRC50eHQ6CgogICAtIChVQ0QtU05NUC1NSUItT0xELnR4dCk6IGFkZGVkCiAgIAoxOTk4LTEwLTA2IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogc2V0dXAgZGVmaW5lIGZvciBIQVZFX1VTTEVFUC4KICAgCjE5OTgtMTAtMDYgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBoYWNrIGZpeGVzIGZvciBocHV4MTAgYW5kIHJ0ZW50cnkuCiAgIAoxOTk4LTEwLTA1IDE3OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIC0gKGhyX3Byb2MuYyk6IHBvc3NpYmxlIGZpeCBmb3Igc29sYXJpcydzIHByb2Nlc3MgcGVyY2VudGFnZS4KICAgCjE5OTgtMTAtMDUgMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15LzogZHVtbXkuYywgZHVtbXkuaDoKCiAgIC0gKGR1bW15LmMsIGR1bW15LmgpOiB1cGRhdGUgdG8gcmVtb3ZlIGNvbW1vbl9oZWFkZXIuaAogICAKMTk5OC0wOS0zMCAxNDo1NiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBORVdTLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW50ZXJmYWNlcy5jLCBtZW1vcnkuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgcGFyc2UuYyk6CiAgICAgLSBtZXJnZSAzLjUuMyBjaGFuZ2VzIGludG8gbWFpbiB0cnVuay4KICAgCjE5OTgtMDktMjUgMTg6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXRpbF9mdW5jcy5jKTogdXNlIFVTTEVFUCBpZiBhdmFpbGFibGUgZm9yCiAgICAgc21hbGwgc2xlZXAgdGltZXMgd2hpbGUgd2FpdGluZyBmb3IgcHJvY2Vzc2VzIHRvIGZpbmlzaC4KICAgCjE5OTgtMDktMjUgMTg6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudC1vdXQuCiAgIAoxOTk4LTA5LTI1IDE4OjAzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB2ZXJzaW9uLmgsIGFuZCBzdHJpcCBpbmNsdWRlcyBvdXQgb2YgY29uZmlnLmgKICAgCjE5OTgtMDktMjUgMTc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGluc3RhbGwgbGlic25tcC5oLiAgSXQncyBnb2luZyB0byBjaGFuZ2UgdG9vCiAgICAgbXVjaCBpbiB0aGUgZnV0dXJlLgogICAKMTk5OC0wOS0yNSAxNzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbnN0YWxsIG1vcmUgaGVhZGVycy4KICAgCjE5OTgtMDktMjUgMTc6MzIgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcDoKCiAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgICBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzdHVwaWQgT1MgdXBkYXRlLgogICAKMTk5OC0wOS0yNSAxNzoyNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMzoKCiAgIC0gKHNubXBfc2Vzc19hcGkuMyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gc2Vzc2lvbiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KICAgCjE5OTgtMDktMjUgMTc6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IHByb2Nlc3MgYXJncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZ2V0X29wdCgpLgogICAKMTk5OC0wOS0yNSAxNzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20KICAgICBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggY29tcGlsZXIgd2FybmluZ3MsIGVycm9ycy4KICAgCjE5OTgtMDktMjUgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jCjoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgIC0gVGhlIENNVSBsaWJyYXJ5IGhhcyBhbiBvcHRpbWl6YXRpb24gaW4gc25tcF9jbG9uZV9wZHUoKSB0aGF0IGRvZXMKICAgICAgbm90IGNvcHkgemVybyBsZW5ndGggc3RyaW5ncy4gIEkgaGFkIG1lcmdlZCB0aGlzIGluIHdpdGggY2hhbmdlcwogICAgICBtYWRlIGZvciBtdWx0aS10aHJlYWQgc3VwcG9ydC4gIFVuZm9ydHVuYXRlbHksIEkgZGlkIG5vdCBtYWtlIHN1cmUKICAgICAgdGhlIGNsb25lZCBQRFUgaGFkIG5vIHBvaW50ZXIgZm9yIHRoaXMgY2FzZS4gIE9vcHMhCiAgICAtIEFub3RoZXIgcHJvYmxlbSBpbiBzbm1wX2Nsb25lX3BkdSgpIHdhcyB0aGUgdGVzdCBmb3IgemVybyBsZW5ndGgKICAgICAgc3RyaW5nIHdhcyBub3QgYmVpbmcgcGVyZm9ybWVkIG9uIHRoZSBmaXJzdCB2YXJiaW5kIGluIHRoZSBjaGFpbi4KICAgCjE5OTgtMDktMjUgMTc6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChFeHQtMy01LXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZG9uJ3QgcmVseSBvbiB0aGUgZ2V0c2VydmJ5bmFtZSBwb2ludGVyIHRvIHN0YXkgYXJvdW5kLgogICAKMTk5OC0wOS0yMyAxMzowNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBhcnNlLmMpOiBOZXcgZmxhZzoKICAgICAtIC0tZW5hYmxlLWVvbC10ZXJtaW5hdGVkLWNvbW1lbnRzLgogICAKMTk5OC0wOS0yMyAxMjoxNSAgaGFyZGFrZXIKCiAgICogSVNTVUVTOgoKICAgZmlsZSBJU1NVRVMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTIxIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jIChFeHQtMy01LXBhdGNoZXMuNSksIHNubXBfdmFycy5jCiAgIChWMy1iMS5bNSwyXSksIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KICAgCjE5OTgtMDktMjEgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZmlsZS5jLCBmaWxlLmg6CgogICAtIChmaWxlLmMsIGZpbGUuaCk6IGFsbG93IC0xIHNpemUgdG8gaW5kaWNhdGUgc2ltcGxlIHNpemUgbW9uaXRvcmluZy4KICAgCjE5OTgtMDktMTggMTQ6MDQgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDaGFuZ2UgZmlsZSByZXR1cm4gY29kZSBmcm9tIFRydXRoVmFsdWUgdG8KICAgICBpbnRlZ2VyIHNpbmNlIDEvMiBkb2VzIG5vdCBmaXQgdGhlIGN1cnJlbnQgMC8xIHJldHVybiBjb2RlIHNjaGVtZS4KICAgCjE5OTgtMDktMTggMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaDoKCiAgIC0gKGZpbGUuaCk6IHJlbWFwIHRvIHRoZSAxMDAvMTAxIGNvbnZlbnRpb25zIG9mIHRoZSB1Y2Qtc25tcCB0YWJsZXMuCiAgIAoxOTk4LTA5LTE4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IGFkZCB0aGUgZmlsZSBtaWIgbW9kdWxlLgogICAKMTk5OC0wOS0xOCAxMzo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gKGZpbGUuYywgZmlsZS5oKTogUGF0Y2ggZnJvbSBKb25hcyBPbHNzb246CiAgICAgLSBJbXBsZW1lbnQgYSBmaWxlIHNpemUgd2F0Y2hpbmcgbWliIG1vZHVsZSAodWNkLXNubXAvZmlsZSkuCiAgIAoxOTk4LTA5LTE4IDEzOjIwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogYWRkZWQgdGhlIEZpbGVUYWJsZSBzdWJtaXR0ZWQgYnkgSm9uYXMgT2xzc29uLgogICAKMTk5OC0wOS0xOCAxMjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmg6CgogICBmaWxlIHNubXAtdGMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgZmlsZSBzbm1wdXNtLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgIGZpbGUgc25tcHVzbS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGZpbGUgdXNtVXNlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIGZpbGUgdXNtVXNlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNiAwNzowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmg6CgogICBmaWxlIHVzbVN0YXRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE2IDA3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYzoKCiAgIGZpbGUgdXNtU3RhdHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTUgMTM6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBpbml0X3NubXAgY2FsbHMgZnJvbSBzZXNzaW9uIHJvdXRpbmVzLgogICAKMTk5OC0wOS0xNSAxMzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogLy8gY29tbWVudCAtPiAvKiAqLyBjb21tZW50LgogICAKMTk5OC0wOS0xNSAxMzowMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICAtIChpbmV0LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1lbW9yeSByZWxhdGVkIGZpeGVzLgogICAKMTk5OC0wOS0xNCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jOgoKICAgZmlsZSBzbm1wTVBEU3RhdHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaDoKCiAgIGZpbGUgc25tcE1QRFN0YXRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBmaWxlIHNubXB2M21pYnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMTI6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsOgogICAgIC0gZG8gZGxtb2RzIGNvbXBpbGF0aW9uIGJldHRlciBhdCBsZWFzdCBvbiBzb2xhcmlzIGFuZCBsaW51eC4KICAgCjE5OTgtMDktMTQgMTI6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgZGxtb2RfbWliLmMsIHV0aWxfZnVuY3MuYywKICAgICBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHNubXBfYmdwLmMsCiAgICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBocHV4LmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsCiAgICAgcmVnaXN0cnkuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsCiAgICAgcGFydHlfdmFycy5jLCB2aWV3X3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbmFtZSBjb21wYXJlIC0+IHNubXBfb2lkX2NvbXBhcmUoKS4KICAgCjE5OTgtMDktMTQgMTI6MzUgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbnN0YWxsIHNubXBfc2Vzc19hcGkuMy4KICAgCjE5OTgtMDktMTQgMDk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmM6CgogICBmaWxlIHNubXBFbmdpbmUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMDk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmg6CgogICBmaWxlIHNubXBFbmdpbmUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMDk6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmaWxlIHNubXB2My5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuaDoKCiAgIGZpbGUgc25tcHYzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTEzIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdXBkYXRlOiAzLjYucHJlMgogICAKMTk5OC0wOS0xMyAyMTowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSAobWliLmMsIHJlYWRfY29uZmlnLmMpOiByZWZpeCB0aGUgbm9uLW1hbGxvY2VkIGNvbmZpZ3VyYXRpb24gdmFycy4KICAgCjE5OTgtMDktMTMgMjE6MDUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IE5hbWUgYWRkaXRpb24uCiAgIAoxOTk4LTA5LTEzIDIwOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJldmVudCBkb3VibGUgaW5pdF9zbm1wKClzLgogICAKMTk5OC0wOS0xMyAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IG5vdCBmaW5kaW5nIGEgY29uZmlnIGZpbGUgaXMgcHJpbnRlZCB3aXRoIERFQlVHUCgpIGluc3RlYWQuCiAgIAoxOTk4LTA5LTEzIDIwOjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZGVmaW5lIHVzYWdlIG1pc3BlbGxpbmcgU05NUF9CQURfUEFSU0UgLT4gU05NUEVSUl9CQURfUEFSU0UuCiAgIAoxOTk4LTA5LTEzIDIwOjExICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmg6CgogICAtIChzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIC0gbWVyZ2UgaW50byBtYWluIGxpbmUgZnJvbSB0aGUgMy02LXByZTEtdHJhbnMgYnJhbmNoLgogICAKMTk5OC0wOS0xMyAxODoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZXhpdCAtPiByZXR1cm4uCiAgIAoxOTk4LTA5LTEyIDA5OjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogTW92ZSBDQU5fVVNFX05MSVNUIHRlc3RzIGJlbG93IGFyY2ggLmggZmlsZXMuCiAgIAoxOTk4LTA5LTEyIDA5OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCiAgIAoxOTk4LTA5LTEyIDA4OjU2ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKG92L01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIHNlY3Rpb25zIGFscmVhZHkgZGVmaW5lZCBpbiBNYWtlZmlsZS50b3AuCiAgIAoxOTk4LTA5LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCBtaWJfbW9kdWxlX3NodXRkb3duLmgKICAgCjE5OTgtMDktMTIgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBEb24ndCBmb3JjZSBjYyBhbnltb3JlLCBhbGxvdyBnY2MgdG8gZ28gZmlyc3QuCiAgIAoxOTk4LTA5LTEyIDA4OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbW92ZSB1bi1jb25maWd1cmVkIGRlZmluZXMgYWJvdmUgQFRPUEAuCiAgIAoxOTk4LTA5LTEyIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJvdG90eXBlIG1vdmUgaW5pdF9zbm1wKCkgYWJvdmUgaW5pdF9zbm1wX3Nlc3Npb24uCiAgIAoxOTk4LTA5LTExIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIG1hbi9zbm1wX3Nlc3NfYXBpLjMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaAosIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCB3aW4zMi9jb25maWcuaAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAoKik6IE1lcmdlZCB0aGUgTVQgY2hhbmdlcyBpbnRvIHRoZSBtYWluIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMjE6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbGlic25tcC5oOgoKICAgZmlsZSBsaWJzbm1wLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS0xLU1ULgogICAKMTk5OC0wOS0wOSAyMTozNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMzoKCiAgIGZpbGUgc25tcF9zZXNzX2FwaS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtMS1NVC4KICAgCjE5OTgtMDktMDkgMTY6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IHRyYXAgc3R1ZmYgYnJva2VuIGJ5IHRoZSBjb2RlIG1lcmdlLgogICAKMTk5OC0wOS0wOSAxNjowOSAgaGFyZGFrZXIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnCiwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEucGxnCiwgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldC9zbm1wZ2V0LnBsZywKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc2V0L3NubXBzZXQucGxnLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LnBsZywKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5wbGcsIHNubXB3YWxrL3NubXB3YWxrLmRzcCwKICAgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGFjbC5oLCBhc24xLmMsIGFzbjEuaAosIG1kNS5oLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwKICAgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLAogICBzeXN0ZW0uYywgdmFjbS5oLCB2aWV3Lmg6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMTU6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL21pYl9hcGkuMywKICAgbWFuL3NubXBfYXBpLjMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBtYW4vc25tcHRyYW5zbGF0ZS4xLCBtYW4vc25tcHRyYXBkLjgsCiAgIG1hbi92YXJpYWJsZXMuNToKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgQ09QWUlORywgQ2hhbmdlTG9nLCBNYWtlZmlsZS5pbgosIE5FV1MsIFJFQURNRSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L3NubXAycC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmg6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3A6CgogICBmaWxlIHNubXBkZWx0YS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnBsZzoKCiAgIGZpbGUgc25tcGRlbHRhLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnBsZzoKCiAgIGZpbGUgc25tcHRlc3QucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwOgoKICAgZmlsZSBzbm1wdHJhcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3A6CgogICBmaWxlIHNubXB0ZXN0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnBsZzoKCiAgIGZpbGUgc25tcHRyYXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oOgoKICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaDoKCiAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wMyAxNDoyOSAgbmJhCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICAtIChmaXhwcm9jKTogYWRkZWQgY29tbWVudCB0byB0ZXN0IENWUy4KICAgCjE5OTgtMDktMDIgMTg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwKICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBkLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICBzbm1wZC5oKToKICAgICAtIHN1cHBvcnQgbWliLW1vZHVsZSBzaHV0ZG93biBmdW5jdGlvbnMuCiAgICAgLSBkbyBhIG1pbmltYWwgcGVyc2lzdGVudCBjYWNoZSBpbXBsZW1lbnRhdGlvbiBhbmQgcmVhZCBpdCBhdCBzdGFydCB1cC4KICAgICAtIHRlc3Qgd2l0aCBiZWdpbm5pbmdzICh3cm9uZyBwbGFjZSkgb2YgYWdlbnRCb290cyB2YXJpYWJsZS4KICAgCjE5OTgtMDktMDIgMTg6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHVzZSBpbml0X3NubXAgaW5zdGVhZCBvZiBpbml0X21pYigpLgogICAKMTk5OC0wOS0wMiAxODo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IGZpbmRfbW9kdWxlLgogICAKMTk5OC0wOS0wMiAxODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogaW5pdF9zbm1wKCkuCiAgIAoxOTk4LTA5LTAyIDE4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLAogICByZWFkX2NvbmZpZy5oOgoKICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIHByZS9wb3N0IG1pYiBsb2FkaW5nIGNvbmZpZyBmaWxlcy4KICAgICAtIGNyZWF0ZSBpbml0X3NubXAoKSB0byB3cmFwIG90aGVyIGZ1Y3Rpb25zLgogICAgIC0gbmV3IHNubXAuY29uZiBkaXJlY3RpdmVzOiBtaWJzLCBtaWJkaXJzLCBtaWJmaWxlLgogICAKMTk5OC0wOS0wMiAxODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHR5cG8uCiAgIAoxOTk4LTA5LTAyIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcGVyc2lzdGVudCBjb25maWcgZmlsZSBxdWVzdGlvbi4KICAgCjE5OTgtMDktMDIgMTg6NDMgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogYWRkZWQgc2VjdXJpdHkgY2hlY2tzLgogICAKMTk5OC0wOC0zMSAxMzozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCiAgIAoxOTk4LTA4LTMxIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoRXh0LTMtNS1wYXRjaGVzLjIpLAogICBpbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCiAgIAoxOTk4LTA4LTE0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOC0xNCAwODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDctMjIgMTY6MjMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogZml4IHNlZHNjcmlwdCBpbmNsdWRlcy4KICAgCjE5OTgtMDctMjIgMTU6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGRvbid0IGNoYW5nZSBydW5uaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHN0cnRvay4KICAgCjE5OTgtMDctMjAgMTc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KICAgCjE5OTgtMDctMTcgMTM6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvUkZDLTEyMTUudHh0OgoKICAgLSAoUkZDLTEyMTUudHh0KTogY3JlYXRlZCBhbiBlbXB0eSBtaWIgbW9kdWxlIGZvciBpbXBvcnRpbmcgb2YgVFJBUC1UWVBFLgogICAKMTk5OC0wNy0xNyAxMzoxMSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZWQgc21pY25nIGlucHV0IGZpbGUuCiAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgogICAKMTk5OC0wNy0xNSAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICAtIChtZW1vcnkuaCk6IE1FTVNXQVBNSU5JTVVNIHdhc24ndCBiZWluZyB1c2VkLgogICAKMTk5OC0wNy0xNSAxNTo0NiAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdXNpbmdfbW9kdWxlIGNoYW5nZXMuCiAgIAoxOTk4LTA3LTEwIDA5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHdyb25nIHBkdSBwb2ludGVyIGZvciBzbm1wdjJjIHRyYXBzLgogICAKMTk5OC0wNy0wOCAxNTo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxICkKICAgCjE5OTgtMDctMDggMTU6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiAtV2FsbCBjb3JyZWN0aW9ucy4KICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGJ1ZyBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaAogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgKOgoKICAgLSAocGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oKTogY2xlYW5lZCB1cCBhbmQgLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSAodmVyc2lvbmluZm8uYyk6IGluY2x1ZGUgc3lzdGVtLmgKICAgCjE5OTgtMDctMDggMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAogICAKMTk5OC0wNy0wOCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiByZW1vdmVkIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdCBmcm9tIGRlZmF1bHQgaW5jbHVkZSBsaXN0LgogICAKMTk5OC0wNy0wOCAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAosIHBhc3MtcGVyc2lzdC5jLCBwYXNzLXBlcnNpc3QuaDoKCiAgIC0gKHBhc3MtcGVyc2lzdC5jIHBhc3MtcGVyc2lzdC5oKTogbW92ZWQgdG8gcGFzc19wZXJzaXN0LltjaF0uCiAgIAoxOTk4LTA3LTA4IDE0OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGUgdW5yZWdpc3Rlcl9yZWFkLi4oKSBmdW5jdGlvbi4KICAgCjE5OTgtMDctMDggMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgICAtIChkbG1vZC5jKTogdXNlIHNubXBkXyByZWdpc3Rlcl9yZWFkX2NvbmZpZygpIHdyYXBwZXJzLgogICAKMTk5OC0wNy0wOCAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCk6IHdyYXBwZXJzIGZvciByZWFsIHJlYWRfY29uZmlnKClzLgogICAKMTk5OC0wNy0wOCAxNDowNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9kbG1vZHMvLmN2c2lnbm9yZSwgYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuaCwKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbWlicy9ETE1PRC1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLAogICAgIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYywKICAgICBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBETE1PRC1NSUIudHh0LCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEV1Z2VuZQogICAgIFBvbG92bmlrb3Y6CiAgICAgLSBuZXcgZGxtb2Qgc2V0LgogICAgIC0gZml4IGNvbmZpZ3VyZSBzY3JpcHQuCiAgIAoxOTk4LTA3LTA4IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBmb3IgbWlzc2luZyBvYmplY3QgaWRlbnRpZmllciBsYWJlbHMuCiAgIAoxOTk4LTA3LTA4IDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgogICAKMTk5OC0wNy0wOCAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCiAgIAoxOTk4LTA3LTA4IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgIC0gcmVtb3ZlIG9kZCB0aW1lb3V0IGNhbGN1bGF0aW9uIGNvZGUgZm9yIHJldHJpZXMgPiAzLgogICAKMTk5OC0wNy0wOCAxMjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiBhZGRlZCBwYXNzLXBlcnNpc3QgbW9kdWxlLgogICAKMTk5OC0wNy0wOCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IHJlbW92ZWQgZnJvbSBhZ2VudCBkaXIuCiAgIAoxOTk4LTA3LTA4IDEyOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHN0cnVjdC5oLCB1dGlsX2Z1bmNzLmMsCiAgIHV0aWxfZnVuY3MuaCwgdWNkLXNubXAvcGFzcy1wZXJzaXN0LmMsCiAgIHVjZC1zbm1wL3Bhc3MtcGVyc2lzdC5oOgoKICAgLSAoc3RydWN0LmgsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBwYXNzLXBlcnNpc3QuYywKICAgICBwYXNzLXBlcnNpc3QuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAtIGNyZWF0ZSBhIHBhc3MtcGVyc2lzdCBtb2R1bGUgdG8gaGFuZGxlIGNvbnRpbnVvdXNseSBydW5uaW5nIHBhc3MgdGhyb3VnaHMuCiAgIAoxOTk4LTA3LTA4IDEyOjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC9zbm1wZ2V0LmRzcAosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcAosIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgc25tcHNldC9zbm1wc2V0LmRzcAosIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQuZHNwLCBzbm1wc2V0LnBsZywKICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgTWFyem90OgogICAgIC0gd2luMzIgdXBkYXRlLgogICAKMTk5OC0wNy0wMSAxNTo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6CiAgICAgLSBmaXggZXh0ZW5zaWJsaXR5IGNoZWNraW5nIG9mIG9pZHMuCiAgICAgLSBzZXBlcmF0ZSBydW5uaW5nIG9mIGV4dGVybmFsIGNvbW1hbmQgaW50byBuZXcgZnVuY3Rpb24uCiAgIAoxOTk4LTA3LTAxIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBtaW5vciBzcGFjaW5nIGNoYW5nZXMuCiAgIAoxOTk4LTA3LTAxIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc3lzdGVtLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzeXN0ZW0uaCk6CiAgICAgLSBhZGRlZCBERUJVR1BPSUQobmFtZSwgbmFtZWxlbik7CiAgICAgLSBtb3ZlZCBERUJVR1AgZGVmaW5pdGlvbiBpbnRvIHNubXBfYXBpLmggd2hlcmUgaXQgYmVsb25ncy4KICAgCjE5OTgtMDctMDEgMTE6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBNYWtlZmlsZS5pbiwKICAgICBzdHJ1Y3QuaCwgcGFzcy5oLCBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1vdmVkIHJlYWRfY29uZmlnIHN1cHBvcnQgaW50byB0aGUgbGlicmFyeSBhbmQgdXNlIGl0LgogICAgIC0gYmVnaW5uaW5ncyBvZiBzbm1wdHJhcGQgZXh0ZW5zaWJpbGl0eS4KICAgCjE5OTgtMDctMDEgMTE6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgLSBiZWdpbm5pbmdzIG9mIHNubXB0cmFwZCBleHRlbnNpYmlsaXR5LgogICAKMTk5OC0wNi0yOCAwOTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBzbm1wX2FkZF92YXIoKS4KICAgCjE5OTgtMDYtMjYgMTA6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jCiwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oOgoKICAgLSAoc211eC5jLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKTogUGF0Y2gKICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KICAgCjE5OTgtMDYtMjYgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAtIGZpeCBjYWxjdWxhdGlvbiBvZiB0b3RhbGRpc2sgYnkgZG9pbmcgYmxvY2sgZGl2aXNpb24gZmlyc3QgdG8KICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgogICAKMTk5OC0wNi0yNCAxMTo0MCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhZGRlZCAuaW5kZXguCiAgIAoxOTk4LTA2LTI0IDExOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAtIGNyZWF0ZWQgKHBvb3JseSkgc2VuZF90cmFwX3BkdSgpIGZvciBzZW5kaW5nIHYyIHRyYXBzIGZyb20gbWliIG1vZHVsZXMuCiAgIAoxOTk4LTA2LTI0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogLmN2c2lnbm9yZSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc2h1dGRvd24gdHJhcCBzcGVjaWZpY2F0aW9ucy4KICAgICAtIG1pc2MgbWliIGZpeGVzLgogICAKMTk5OC0wNi0yNCAxMDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSwgLmN2c2lnbm9yZSk6IGEgZmV3IHVwZGF0ZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKG1hbi8uY3ZzaWdub3JlKTogaWdub3JlIC5odG1sIGZpbGVzLgogICAKMTk5OC0wNi0yNCAxMDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wc2V0LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgaGV4X3RvX2JpbmFyeSwgYXNjaWlfdG9fYmluYXJ5LCBhbmQgc25tcF9hZGRfdmFyIHRvIHNubXBsaWIuCiAgIAoxOTk4LTA2LTI0IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9wZHVfYWRkX3ZhcmlhYmxlKCkuCiAgIAoxOTk4LTA2LTI0IDEwOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCiAgIAoxOTk4LTA2LTIyIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKG1haW4uYyk6IFBhdGNoIGZyb20gSmVycnkgRy4gRGVMYXBwOgogICAgIC0gY29tbWVudGVkIG91dCB0cmFpbGluZyAjZW5kaWYgY29tbWVudC4KICAgCjE5OTgtMDYtMTkgMTM6MTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy41LgogICAKMTk5OC0wNi0xOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNSApCiAgIAoxOTk4LTA2LTE5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IExhc3QgdXBkYXRlIGZvciAzLjUuCiAgIAoxOTk4LTA2LTE5IDEzOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA2LTE5IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogbWVtc2V0IHRvIDAgdGhlIGVudGlyZSBzdWJ0cmVlIHN0cnVjdC4KICAgCjE5OTgtMDYtMTkgMTI6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IGZpeCBjaGVja21pYigpIGluIGNhc2Ugd2UgZ2V0IGNhbGxlZCBvbiBhIGdldCB3aGVuCiAgICAgd2UgcmVhbGx5IHNob3VsZG4ndCAoYmFkIGFydGlmYWN0IG9mIG5ldyB0cmVlIHN0cnVjdHVyZSkuCiAgIAoxOTk4LTA2LTE5IDEyOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jOgoKICAgLSAoZHVtbXkuYyk6IG1lbnRpb24gYXV0b19ubGlzdCgpLgogICAKMTk5OC0wNi0xOSAxMjowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvQWRkTW9kdWxlRm9yRHVtbWllcy50eHQ6CgogICAtIChBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCk6IHVwZGF0ZSB0byBmaXggcGF0aHMgYW5kIG1pc2Mgc3R1ZmYuCiAgIAoxOTk4LTA2LTE5IDEyOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZml4IHJlZ2lzdGVyX21pYigpIHRvIGluaXQgcG9pbnRlcnMgdG8gbnVsbC4KICAgCjE5OTgtMDYtMTkgMDg6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSBpbnN0YWxsIElQRldBQ0MgbWliLgogICAKMTk5OC0wNi0xOSAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gdHVybiBpbnRvIGEgY29ycmVjdCB0YWJsZS4KICAgCjE5OTgtMDYtMTkgMDg6NTggIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGV4YW1wbGUgb3V0cHV0IGNvcnJlY3Rpb25zLgogICAKMTk5OC0wNi0xOSAwODo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gQlNESSB1c2VycyBhZ2FpbnN0IC91c3IvdWNiL2NjLgogICAKMTk5OC0wNi0xOSAwODo0MSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQ6IG5vdCBmb3VuZCBtb2R1bGVzIHdpdGggY29uZmlndXJlPy4KICAgCjE5OTgtMDYtMTcgMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15Lmg6CgogICAtIChkdW1teS5oKTogYWRkIERVTU1ZLU1JQiBieSBkZWZhdWx0LgogICAKMTk5OC0wNi0xNyAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWVudGlvbiBkdW1teSBncm91cC4KICAgCjE5OTgtMDYtMTcgMDg6MjEgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvQWRkTW9kdWxlRm9yRHVtbWllcy50eHQKLCBhZ2VudC9taWJncm91cC9kdW1teS9EVU1NWS1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oCjoKCiAgIC0gKFJFQURNRSwgQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15LmgpOgogICAgIFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAtIG1pYiBtb2R1bGUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZSBmb3IgZHVtbWllcy4KICAgCjE5OTgtMDYtMTcgMDg6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmg6CgogICAtIChtaWIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSByZW1vdmUgMm5kIGluaXRfbWliKCkgcHJvdG90eXBlLgogICAKMTk5OC0wNi0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYmNvcHkgLT4gbWVtY3B5LgogICAKMTk5OC0wNi0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsCiAgIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMQosIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwLjEsCiAgIHNubXB3YWxrLjE6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgICBzbm1wZ2V0bmV4dC4xLCBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwLjEsCiAgICAgc25tcHdhbGsuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2N1bWVudGF0aW9uIGNsZWFudXAgYW5kIGNlbnRyYWxpemF0aW9uIG9mIGNvbW1vbiBvcHRpb25zLgogICAKMTk5OC0wNi0xNyAwODowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKHNubXBkZWx0YS5jKTogdXNhZ2UoKSB1cGRhdGUuCiAgIAoxOTk4LTA2LTE3IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbWlzYyB0eXBlIGZpeGVzLgogICAKMTk5OC0wNi0xMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBhIHVjZEV4cGVyaW1lbnRhbCBzZWN0aW9uIGZvciB0aGUgaXBmd2FjYyBtaWIgdGlsbAogICAgICAgaXQgc3RhYmlsaXplcy4KICAgCjE5OTgtMDYtMTIgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgLSAoa2VybmVsLmMpOiBkb24ndCBwcmludCBrbHJlYWQgZXJyb3JzIHVubGVzcyBpbiBkZWJ1Z2dpbmcgbW9kZS4KICAgCjE5OTgtMDYtMTIgMTM6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogNjRiaXQgZml4IG1lbnRpb25lZC4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiBhZGQgc2V0ZW52IHRvIHRoZSBsaXN0LgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAtICh3aW4zMi9jb25maWcuaCk6IGRvbid0IGhhdmUgc2V0ZW52LgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGZ1bmN0aW9uIG5hbWUgdHlwby4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiB0cmFwIHR5cGVzIHdlcmUgaW50J3Mgbm90IGxvbmdzIChmYWlsZWQgdW5kZXIgNjRiaXQgYXJjaCkuCiAgIAoxOTk4LTA2LTEyIDEzOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBwZXJjZW50YWdlIGNoZWNrIHdhcyBiYWNrd2FyZHMuCiAgIAoxOTk4LTA2LTEyIDEwOjEyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1pbm9yIHVwZGF0ZS4KICAgCjE5OTgtMDYtMTIgMTA6MTIgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogc2hvdyB2YWNtIGV4YW1wbGUgZm9yIHB1YmxpYy9wcml2YXRlIGZyb20gYW55d2hlcmUuCiAgIAoxOTk4LTA2LTEyIDA4OjUyICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBGQVE6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gdXBkYXRlIGZvciBWQUNNIHN0dWZmLgogICAKMTk5OC0wNi0xMCAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oKTogLVdhbGwgY2xlYW51cHMuCiAgIAoxOTk4LTA2LTEwIDE1OjMxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZS4KICAgCjE5OTgtMDYtMTAgMTU6MzAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogYWRkZWQgRGF2ZSdzIGxpc3QuCiAgIAoxOTk4LTA2LTEwIDE0OjE1ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy41LnByZTIgKQogICAKMTk5OC0wNi0xMCAwODo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gIHN0YXJ0cyB0byBzZXBhcmF0ZSBvdXQgdGhlIGhpc3RvcmljIFNOTVB2MiBzdHVmZi4KICAgICAtICBkb2VzIGEgYml0IG9mICdjb2RlIHRpZHlpbmcnLgogICAgIC0gIHN0YXJ0cyB0byBtb3ZlIHRvd2FyZHMgcG9ydC1zcGVjaWZpYyBoYW5kbGVycy4KICAgCjE5OTgtMDYtMTAgMDc6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBoYXZlX3NldGVudi4KICAgCjE5OTgtMDYtMDggMTQ6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiB1bmRpZCByZWRvIG9mIGNvbW1lbnQgb2YgZ2V0dGltZW9mZGF5KCkuCiAgIAoxOTk4LTA2LTA4IDE0OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYzoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaAogICAgZnJvbSBKb2UgTWFyem90OgogICAgIC0gYXN5bmMgc3R1ZmYgYWRkZWQuCiAgICAgLSBnZXRfdGMgYWRkZWQuCiAgICAgLSBiZXR0ZXIgY29tbWVudHMgaW4gc29tZSBwbGFjZXMuCiAgIAoxOTk4LTA2LTA4IDE0OjE2ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiB3MzIgdXBkYXRlLgogICAKMTk5OC0wNi0wOCAxNDoxMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIHJlbW92ZSBtb3JlIGNvbmZpZyBjcmVhdGVkIGhlYWRlcnMgb24gbWFrZSBjb25maWdjbGVhbi4KICAgCjE5OTgtMDYtMDggMTM6NTkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSByZmMgIyBmb3IgdmFjbSByZWZlcmVuY2UuCiAgIAoxOTk4LTA2LTA4IDEzOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBFdWdlbmUncyBuYW1lLgogICAKMTk5OC0wNi0wOCAxMjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGNyZWF0ZSBhIC5jIC0+IC5vIHJ1bGUgdG8gbWFrZSBzdXJlIGFuZCBwbGFjZSB0aGUKICAgICBvYmplY3QgZmlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIHN1YmRpcmVjdG9yaWVzLgogICAKMTk5OC0wNi0wOCAxMDo1MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXJsIHR5cGUgc3BsaXR0aW5nLgogICAKMTk5OC0wNi0wNSAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6CiAgICAgLSBjaGFuZ2Uge2RlLH1pbml0IGZ1bmN0aW9ucyB0byBfZHluYW1pY197ZGUsfWluaXRfTU9EVUxFLgogICAgIC0gdXNlIFNOTVBMSUJQQVRIIGluc3RlYWQgb2YgaGFyZCBjb2RlZCAvdXNyL2xvY2FsL2xpYi4KICAgCjE5OTgtMDYtMDUgMTA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYwosIHN5c3RlbS5oOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgcGFyc2UuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIE1JQl9BQ0NFU1MgZGVmaW5lIGNoYW5nZXMuCiAgICAgLSBzZXRlbnYgaW1wbGVtZW50YXRpb24uCiAgICAgLSBpZmRlZiB3cmFwcGVycyBmb3IgT1BBUVVFX1NQRUNJQUxfVFlQRVMuCiAgIAoxOTk4LTA2LTA1IDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRlc3QgZm9yIG51bGwgcG9pbnRlci4KICAgCjE5OTgtMDYtMDUgMTA6NTIgIGhhcmRha2VyCgogICAqIG1ha2V0YXJnZXQ6CgogICAtIChtYWtldGFyZ2V0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHN1cHBvcnQgZm9yIGxhcmdlciB0cmVlIGRlcHRocy4KICAgCjE5OTgtMDYtMDUgMTA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGVzdCBmb3Igc2V0ZW52LgogICAKMTk5OC0wNi0wMyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUxICkKICAgCjE5OTgtMDYtMDMgMTQ6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZWFkX2NvbmZpZy5vIGlzIG1pYm1vZHVsZSBoZWFkZXIgZGVwZW5kYW50IHRvby4KICAgCjE5OTgtMDYtMDMgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluJ3MpOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDYtMDMgMTQ6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFwcHMvc25tcHNldC5jLAogICBzbm1wbGliL2FzbjEuaCwgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGhyX2Rpc2suYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBzbm1wc2V0LmMsIGFzbjEuaCwKICAgICBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgLSAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDYtMDMgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggbmV3IC0td2l0aC1jYyBhbmQgLS13aXRoLWNmbGFncyBhcmd1bWVudHMuCiAgIAoxOTk4LTA2LTAzIDEzOjUyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGZyZWVic2QyLmgpOgogICAgIC0gbW92ZSBjb25maWd1cmFibGUgZGVmaW5lcyB0byBjb25maWd1cmUgcmF0aGVyIHRoYW4gaW4gZnJlZWJzZDIuaC4KICAgCjE5OTgtMDYtMDMgMTM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcHRyYXBkLmMpOgogICAgIC0gY2hlY2sgZm9yIGdldGR0YWJsZXNpemUgYW5kIHVzZSBhIGdlbmVyaWMgaWYgbm90IGF2YWlsYWJsZS4KICAgCjE5OTgtMDYtMDMgMTM6MzkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBOZXcgZmxhZ3M6CiAgICAgLSAtLXdpdGgtY2M9Q0MKICAgICAtIC0td2l0aC1jZmxhZ3M9Q0ZMQUdTCiAgIAoxOTk4LTA2LTAzIDEyOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAtIGZpeCBwZHUtPnZlcnNpb25zIHRvIGJlIGFsbCBpbnRzLgogICAKMTk5OC0wNi0wMyAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogbWlzc2VkIGEgbmVlZGVkIE9QQVFVRV9TUEVDSUFMX1RZUEVTIGlmZGVmLgogICAKMTk5OC0wNi0wMyAxMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbmNsdWRlIG1pYklJL3NubXBfbWliLmguCiAgIAoxOTk4LTA2LTAzIDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRSwgZXhhbXBsZS5jLCBleGFtcGxlLmgsCiAgIHdvbWJhdC5jLCB3b21iYXQuaCwgZXhhbXBsZXMvZXhhbXBsZS5jLAogICBleGFtcGxlcy9leGFtcGxlLmgsIGV4YW1wbGVzL3dvbWJhdC5jLAogICBleGFtcGxlcy93b21iYXQuaDoKCiAgIC0gKFJFQURNRSwgZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCwgZXhhbXBsZS5jLAogICAgIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKToKICAgICAtIG1vdmVkIHdvbWJhdCBhbmQgZXhhbXBsZSB0byBleGFtcGxlcy8gZGlyZWN0b3J5LgogICAKMTk5OC0wNi0wMyAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIGV4YW1wbGUuaCwgbWlzYy9kbG1vZC5jCiwgbWlzYy9kbG1vZC5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgpOiBQYXRjaCBmcm9tIEV1Z2VuZSBQb2xvdm5pa292OgogICAgIC0gaW1wbGVtZW50IGEgZHluYW1pYyBsb2FkaW5nIG1vZHVsZSBmb3IgbG9hZGluZyBzaGFyZWQgb2JqZWN0IG1pYiBtb2R1bGVzLgogICAKMTk5OC0wNi0wMyAxMDo1OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWVudGlvbiBDcmlzdGlhbiBFc3RhbiBpbiB0aGUgY29kZXJzIGxpc3QuCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IG1lbnRpb24gaXBmd2FjYwogICAKMTk5OC0wNi0wMyAxMDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCBtaWJzL0lQRldBQ0MtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBtb3ZlZCBpcGZ3YWNjIHRvIHVjZGF2aXMuMTMgYW5kIHJlbW92ZWQgXk1zIGFuZCBzb21lIGJsYW5rIGxpbmVzLgogICAKMTk5OC0wNi0wMyAxMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpOiBjb25maWdfYWRkX21pYihJUEZXQUNDLU1JQikuCiAgIAoxOTk4LTA2LTAzIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCk6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSBpcCBmaXJld2FsbCBhY2NvdW50aW5nIGluZm9ybWF0aW9uIG1pYiBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTgtMDYtMDMgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwKICAgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oCiwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBzbXV4L3NtdXguYywKICAgc211eC9zbXV4LmgsIHNtdXgvc25tcF9iZ3AuYywgc211eC9zbm1wX2JncC5oLAogICBzbXV4L3NubXBfb3NwZi5jLCBzbXV4L3NubXBfb3NwZi5oLCBzbXV4L3NubXBfcmlwMi5jCiwgc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKHNtdXguYywgc211eC5oLCBzbXV4X2dhdGVkLmgsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLAogICAgIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICAgIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKToKICAgICAtIG1vdmVkIHNtdXggc3R1ZmYgaW50byBhIHNtdXggc3ViLWRpcmVjdG9yeS4KICAgCjE5OTgtMDYtMDIgMTQ6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaHJfdXRpbHMuYywgYXQuYywgaW50ZXJmYWNlcy5jLAogICAgIHZhcl9yb3V0ZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGZyZWVic2QyLmgsIGhwdXguaCwgbGludXguaCwgbmV0YnNkLmgsCiAgICAgc29sYXJpcy5oLCBzeXN2LmgsIGFzbjEuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXV0aC5jLAogICAgIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgLSBtYWtlIGhvc3QgcmVzb3VyY2VzIHdvcmsgdW5kZXIgTmV0QlNELCBGcmVlQlNELCBTb2xhcmlzIGFuZCBMaW51eC4KICAgICAgIC0gU3VuT1M0IGFsbW9zdCB3b3Jrcy4KICAgICAtIEFkZCAtcy8tUyB0byBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJpbnRpbmcgb2Ygc2hvcnRlciBvaWRzLgogICAgIC0gbnVtZXJvdXMgYnVnIGZpeGVzLgogICAKMTk5OC0wNS0zMSAxNzo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG1ha2UgaXQgcG9zc2libGUgbm90IHRvIHVzZSBvcGFxdWUgc3BlY2lhbCB0eXBlcyB3aXRoIG5ldyBjbWQgbGluZSBmbGFnLgogICAKMTk5OC0wNS0zMSAxNzo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChzbm1wc2V0LmMpOiBlbmFibGUgc2V0dGluZyBvZiBvcGFxdWUgZmxvYXRzLCBkb3VibGVzLCBpbnQ2NHMsIHVpbnQ2NHMuCiAgIAoxOTk4LTA1LTMxIDE3OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIGludDY0LmMsIGludDY0LmgKLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCiwgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMsIGFzbjEuaCwgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCk6CiAgICAgLSBpbXBsZW1lbnQgc3BlY2lhbCBkYXRhIHR5cGVzIHZpYSBvcGFxdWVzOiBmbG9hdCwgZG91YmxlLCBpbnQ2NCwgdWludDY0cy4KICAgCjE5OTgtMDUtMjkgMTY6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IGNoYW5nZSBwZHUgdmVyc2lvbiBmcm9tIGxvbmcgdG8gaW50LgogICAKMTk5OC0wNS0yOSAxNjoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmgsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ocl9vdGhlci5jLCBhZ2VudC9taWJncm91cC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYywgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmgKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMKLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmgsIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMKLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9pY21wLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYwosIGFnZW50L21pYmdyb3VwL2lwLmgsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYwosIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMKLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuYwosIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jCiwgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLCBhZ2VudC9taWJncm91cC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuaCwgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYwosIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3N5c09SVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3RjcC5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsCiAgIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYwosIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMsIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlZCBtb3N0IG1pYmdyb3VwIHBpZWNlcyBpbnRvIHJlbGV2ZW50IHN1Yi1kaXJlY3Rvcmllcy4KICAgICAgIC0gY2hhbmdlZCBhbGwgaGVhZGVyIGZpbGUgYW5kICNpZmRlZiBVU0lOR18qIGxpbmVzIHRvIHJlZmxlY3QgdGhpcy4KICAgCjE5OTgtMDUtMjkgMTU6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhYmlsaXR5IHRvIHNwZWNpZnkgbWliIGluZm9ybWF0aW9uIG9uIHRoZSBjbWQgbGluZS4KICAgCjE5OTgtMDUtMjkgMTU6MjAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogd2luU05NUCBtZW50aW9uLgogICAKMTk5OC0wNS0yOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgLSBBZGQgYSBkZXBlbmRhbmN5IGxpbmUgZm9yIHNubXBfdmFycy5vIGZvciBhbGwgdGhlIG1vZHVsZSBpbmNsdWRlcy4KICAgCjE5OTgtMDUtMjkgMTE6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IG1ha2Ugb2YgY29uZmlndXJlLgogICAKMTk5OC0wNS0yOSAxMToyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogcGF0Y2ggZnJvbSBOaWVsczogaW5jbHVkZSBzeXMvc29ja2V0IGluIGlmX210dSB0ZXN0LgogICAKMTk5OC0wNS0yOSAxMDoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBmaXggY29tbXVuaXR5IG5hbWUgbGVuZ3RoIHByb2JsZW1zIGFuZCBpbmNyZWFzZSBzaXplLgogICAKMTk5OC0wNS0yOSAxMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuYzoKCiAgIC0gKGF0LmMpOiBQYXRjaCBmcm9tIENocmlzIFNtaXRoOiBmaXggZm9yIGlyaXguCiAgIAoxOTk4LTA1LTI0IDE1OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggZm9yIG5ldGJzZCA8IDEuMy4KICAgCjE5OTgtMDUtMjQgMTU6MjIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogY2hhbmdlIHZhY20gbmV3cyB3b3JkaW5nLgogICAKMTk5OC0wNS0yNCAxNToyMiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIHRvIGNoYW5nZSBhIGZldyB0aGluZ3MuCiAgIAoxOTk4LTA1LTIwIDA4OjMzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40ICkKICAgCjE5OTgtMDUtMjAgMDg6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZS4KICAgCjE5OTgtMDUtMjAgMDg6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDUtMjAgMDg6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogY29uZmlnX3BlcnJvcigpIC0+IGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIHRva2Vucy4KICAgCjE5OTgtMDUtMjAgMDc6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IHZlcnNpb24gc2hvdWxkIGJlIGEgbG9uZy4KICAgCjE5OTgtMDUtMjAgMDc6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IG1ha2UgY2hlY21pYigpIHVzZSBvaWQgbm90IGludCBmb3IgbmV3bmFtZS4KICAgCjE5OTgtMDUtMjAgMDc6MzQgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5OC0wNS0yMCAwNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZXh0ZW5kIHJhbmRvbSBsb29rdXBzIGZ1cnRoZXIuCiAgIAoxOTk4LTA1LTE5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogZml4IHN3YXBpbmZvIG9uIGhwdXgxMCBzeXN0ZW1zLiAoL2V0Yy9zd2FwaW5mbyAtcikuCiAgIAoxOTk4LTA1LTE5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hdC5jOgoKICAgLSAoYXQuYyk6IHNldCB0byBkbyBub3RoaW5nIHdoZW4gQ0FOX1VTRV9TWVNDVEwuCiAgIAoxOTk4LTA1LTE4IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIChpbnQ2NC5jKToKICAgICAtIGluY2x1ZGUgaGVhZGVyIGNoYW5nZXMgZm9yIHdpbjMyLgogICAKMTk5OC0wNS0xOCAxNTozOSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU5ICkKICAgCjE5OTgtMDUtMTggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBwcm90ZWN0IHVzaW5nIHRoZSBkYXRlIHBvaW50ZXIgYWdhaW5zdCBOVUxMIHNldHRpbmdzLgogICAKMTk5OC0wNS0xOCAxMjo1MiAgaGFyZGFrZXIKCiAgICogbWlicy8uaW5kZXg6CgogICAtIChtaWJzLy5pbmRleCk6IHJlbW92ZWQuCiAgIAoxOTk4LTA1LTE4IDExOjE3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gZml4IHJ0ZW50cnkgc3RydWN0dXJlIHRlc3Qgb24gcmUtY29uZmlndXJlcy4KICAgCjE5OTgtMDUtMTUgMTE6MTggIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZwosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0L3NubXBnZXQucGxnCiwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCBzbm1wc2V0L3NubXBzZXQucGxnCiwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5wbGcsCiAgICAgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LnBsZywgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUucGxnLAogICAgIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIHdpbjMyIGZpbGUgdXBkYXRlcy4KICAgCjE5OTgtMDUtMTUgMTE6MTcgIGhhcmRha2VyCgogICAqIEZBUSwgc25tcGxpYi9taWIuYzoKCiAgIC0gKEZBUSwgbWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gaGFuZGxlIHJhbmRvbSBsb29rdXBzIHdpdGggbXVsdGlwbGUgb2lkIHNlZ21lbnRzLgogICAKMTk5OC0wNS0xNSAxMDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHByb3ZpZGUgYWJpbGl0eSB0byBkbyByYW5kb20gc2VhcmNoZXMgc3BlY2lmeWluZyBhIG1vZHVsZSBuYW1lIHRvIGxvb2sgaW4uCiAgIAoxOTk4LTA1LTE1IDEwOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAocmVhZF9jb25maWcuYywgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgIGhyX3N5c3RlbS5oLCBocl91dGlscy5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhbnNsYXRlLjEsCiAgICAgYnNkLmgsIHNvbGFyaXMuaCwgc3Vub3MuaCwgaW50NjQuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcHRyYW5zbGF0ZSBzdXBwb3J0cyAtUiBhbmQgLXIuCiAgICAgLSBtaXNjZWxsYW5lb3VzIHdhcm5pbmcgZml4ZXMuCiAgICAgLSBvaWQgc2VhcmNoZXIgYWx3YXlzIGlnbm9yZXMgY2FzZS4KICAgICAtIGZpeGVkIGhyX3N5c3RlbSB0byBjb21waWxlIG9uIFN1bk9TNC4KICAgCjE5OTgtMDUtMTUgMTA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBzaW5nbGUgcXVvdGUgbWlzc2luZyBtb2R1bGUgbmFtZXMuCiAgIAoxOTk4LTA1LTE0IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogdHlwb3MuCiAgIAoxOTk4LTA1LTE0IDA4OjIyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1pYjJjIG1lbnRpb25lZC4KICAgCjE5OTgtMDUtMTQgMDg6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG5ldyBGQVEgZnJvbSBEYXZlIFNoaWVsZHMuCiAgIAoxOTk4LTA1LTE0IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogbW92ZSBzeXMvcGFyYW0uaCB1cCBhYm92ZSBmcy5oIGhlYWRlcnMuCiAgIAoxOTk4LTA1LTEzIDIxOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBzcHJpbnRfYnlfdHlwZSgpIGRpZG4ndCBoYW5kbGUgY291bnRlcjY0J3MuCiAgIAoxOTk4LTA1LTEzIDIxOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCBmb3IgYnNkaQogICAKMTk5OC0wNS0xMyAyMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKGlwLmMpOiBpbmNsdWRlIG5ldC9yb3V0ZS5oIGFuZCBzeXNsb2cuaCBmb3IgYnNkaS4KICAgCjE5OTgtMDUtMTMgMjE6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCByZXR1cm4gYSBjb3VudGVyNjQgdG8gYSBzbm1wdjEgcmVxdWVzdC4KICAgCjE5OTgtMDUtMTMgMjE6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYzoKCiAgIC0gKGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogbWFrZSBpbnQ2NC5jIHVzZSBjb3VudGVyNjQncyBzdHJ1Y3R1cmUuCiAgIAoxOTk4LTA1LTEyIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTggKQogICAKMTk5OC0wNS0xMiAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jCiwgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMKLCB1dGlsX2Z1bmNzLmgsIHZtc3RhdC5jOgoKICAgLSAoZGlzay5jLCBleGFtcGxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLAogICAgIHByb2MuYywgdXRpbF9mdW5jcy5oLCB2bXN0YXQuYyk6CiAgICAgLSBpbmNsdWRlIHRpbWUuaCBwcm9wZXJseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdXRpbF9mdW5jcy5oIHRvIGRvIGl0LgogICAKMTk5OC0wNS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHN5c3RlbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc3lzdGVtLmMpOgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgY29kZSBmcm9tIHN5c3RlbS5jIHRvIHNubXBfYXBpLmMsIHdoZXJlIGl0IHNob3VsZCBiZS4KICAgCjE5OTgtMDUtMTIgMTE6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jOgoKICAgLSAodm1zdGF0LmMpOiBjb3JyZWN0IHN0cmluZ3MgaW5jbHVzaW9uLgogICAKMTk5OC0wNS0xMiAxMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogTlVMTCAtPiAwLgogICAKMTk5OC0wNS0xMiAxMToxMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG11bmdlIHJwbSBsaWIgY2hlY2sgdG8gbGluayB3aXRoIC1sZGIgYXMgd2VsbC4KICAgCjE5OTgtMDUtMTIgMTE6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbW9yZSB1cGRhdGVzLgogICAKMTk5OC0wNS0xMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGluY2x1ZGUgYSBnZXRkdGFibGVzaXplKCkgZnVuY3Rpb24gZm9yIGhwdXg5LgogICAKMTk5OC0wNS0xMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBtb3JlIHN3aW5zdCBmaXhlcyBmb3IgcnBtIG1vZHVsZXMuCiAgIAoxOTk4LTA1LTExIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsCiAgIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbQogICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAtIGZpeCB0aGUgcGFyc2VyIHRvIHJlcG9ydCB1bmxpbmtlZCBPSURzLiBUaGlzIGRpZCByZXZlYWwgYW4gZXJyb3IgaW4gYQogICAgICAgQ2lzY28gTUlCIChDSVNDTy1JUE1DQVNULU1JQikgdGhhdCBJIGhhZCBiZWVuIHVzaW5nIChpdCBuZWVkcyBhbgogICAgICAgSU1QT1JUUyBjaXNjb0V4cGVyaW1lbnQgRlJPTSBDSVNDTy1TTUkpCiAgICAgICBBY3R1YWxseSB0aGUgcGFyc2VyIHdvcmtlZCBvaywgZXhjZXB0IGZvciB0aGUgbWlzc2luZyBlcnJvciBtZXNzYWdlcy4KICAgICAtIHJld3JpdGUgb2YgdGhlIHBhcnNlcnMgbGV4aWNhbCBhbmFseXNlciwgdG8gY29ycmVjdCB0aGUgZXJyb3JzIHRoYXQKICAgICAgIERhdmUgUGVya2lucyBhbmQgb3RoZXJzIGhhdmUgcG9pbnRlZCBvdXQgcmVjZW50bHkgKG5hbWU6Oj0gLCBERVNDUklQVElPTiIKICAgICAgIGFuZCBwcm9wZXIgaGFuZGxpbmcgb2YgLS0gcGFydGlhbCBsaW5lIGNvbW1lbnRzIC0tKS4gV2F0Y2ggb3V0ISB0aGlzIGxhc3QKICAgICAgIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZSB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0CiAgICAgICB3ZSBzaGlwKS4gTXkgRm9yZSBTeXN0ZW1zIE1JQnMgaGFkIGVycm9ycyB3aXRoIHRoaXMuCiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKICAgCjE5OTgtMDUtMTEgMTA6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gQ29ycmVjdGlvbnMgb2YgZGlzayBlbnRyeSBjYXBpdGlsYXphdGlvbiBwcm9ibGVtcy4KICAgCjE5OTgtMDUtMTEgMTA6MzEgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGhpcyBsYXN0IFtwYXJzZXJdIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZQogICAgICAgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdCB3ZSBzaGlwKS4KICAgCjE5OTgtMDUtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIChzbm1wdHJhbnNsYXRlLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlLgogICAKMTk5OC0wNS0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCiAgIAoxOTk4LTA1LTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmM6CgogICAtIChocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbQogICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc29tZSBwcm90b3R5cGVzIGZvciB0aGUgaHJfKi5jIGZpbGVzIChuZWVkcyBEYXZlJ3MgcmVjZW50IHBhdGNoKQogICAgICAgV2FybmluZzogdGhlIHByb2MgcGFydCBzdGlsbCBkb2VzIG5vdCB3b3JrIHdpdGggU29sYXJpcyEKICAgCjE5OTgtMDUtMTEgMTA6MjkgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsCiAgIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBzbm1wZC5oLCB2YXJfc3RydWN0LmgpOiBQYXRjaAogICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdGhlIHRyYXBzaW5rIGRpcmVjdGl2ZXMgaW4gc25tcGQKICAgCjE5OTgtMDUtMTEgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gKGludDY0LmMpOiBhZGQgaW5jckJ5VTMyKCkuCiAgIAoxOTk4LTA1LTExIDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogb3BhcXVlJ3MgY2FuIGhhdmUgYSBzaXplIHNwZWNpZmllci4KICAgCjE5OTgtMDUtMTEgMDg6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOgogICAgIC0gY291bnRlcjY0cy4KICAgICAtIGNvbnNvbG9kYXRpb24gb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zLgogICAgIC0gbW9yZSBlcnJvciBzdGluZ3MgaW4gYWxsIGZpbGVzIGZvciB1bmtub3duIHZhcmlhYmxlIHR5cGVzLgogICAKMTk5OC0wNS0xMSAwODowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG9wdGlvbmFsIHBvcnQgbnVtYmVyLgogICAKMTk5OC0wNS0xMSAwODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogYmxhbmsgbGluZSByZW1vdmFsLgogICAKMTk5OC0wNS0wOCAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogd29yZGluZyBjaGFuZ2UuCiAgIAoxOTk4LTA1LTA4IDExOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2Rpc2suYywgaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYywgaHJfZGlzay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMuCiAgIAoxOTk4LTA1LTA4IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIHBrZ2xvY3MuaC4KICAgCjE5OTgtMDUtMDcgMDk6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZGVidWcgaW5mbyBmb3IgY29uZmlnIGZpbGVzIHJlYWQuCiAgIAoxOTk4LTA1LTA3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3lzL3N0YXQgaW5jbHVzaW9uIGluIGZzIGNoZWNrcy4KICAgCjE5OTgtMDUtMDcgMDk6MDUgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogY29ycmVjdGlvbiBmb3IgZGF0ZXMuCiAgIAoxOTk4LTA1LTA2IDIyOjI4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKHdpbjMyL2NvbmZpZy5oKTogdXBkYXRlIGZyb20gSm9lIE1hcnpvdC4KICAgCjE5OTgtMDUtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBjcmVhdGVkIGEgbWliMmMgdGVtcGxhdGUgY3JlYXRvci4KICAgCjE5OTgtMDUtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIGJvZ3VzIGluZGV4J3MgYmUgMC4KICAgCjE5OTgtMDUtMDYgMjE6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgLSBuZXcgZnVuY3Rpb246IGNhbGN1bGF0ZV90aW1lX2RpZmYodDEsIHQyKS4KICAgCjE5OTgtMDUtMDYgMjE6MDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWlub3Igd29yZGluZyBjaGFuZ2UuCiAgIAoxOTk4LTA1LTA2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jCiwgZXhhbXBsZS5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmMsIHByb2MuYywgc3lzT1JUYWJsZS5jLCBzeXN0ZW0uYwosIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jCiwgdm1zdGF0LmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jLCB2bXN0YXQuYyk6CiAgICAgLSByZW1vdmUgdGhlIG5ld25hbWUgcmVxdWlyZW1lbnQgZnJvbSBjaGVja21pYigpLgogICAgIC0gY3JlYXRlIGhlYWRlcl9nZW5lcmljKCkgZm9yIHNpbXBsZSBzY2FsYXIgdGVzdHMuCiAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMoKSBpbiBhbGwgdWNkIHNwZWNpZmljIHNjYWxhciBtaWJzLCBhbmQgZXhhbXBsZS5bY2hdLgogICAKMTk5OC0wNS0wNiAxNDowNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBhZGRlZCBpbnRlcm5hbCB0YWJsZSBzZWN0aW9uLgogICAgIC0gbWliIG51bWJlciBjb3JyZWN0aW9ucyB0byBtYXRjaCB0aGUgc291cmNlLgogICAKMTk5OC0wNS0wNiAxMToyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGttaWIuCiAgIAoxOTk4LTA0LTI5IDExOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKToKICAgICAtIGRpc3BsYXkgdW5sb2FkZWQgbW9kdWxlIGVycm9yLgogICAgIC0gZG9uJ3QgdHJ5IHRvIGxvYWQgYSBmaWxlIG9uIGEgY2FuY2VsLgogICAKMTk5OC0wNC0yOSAxMTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHB1dCB2bXN0YXQgYmFjayBpbiBhbmQgcmVuYW1lZCB0byBzeXN0ZW1TdGF0cy4KICAgCjE5OTgtMDQtMjkgMTE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdm1zdGF0LmMsIHZtc3RhdC5oOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oKTogbW92ZXMsIGNoYW5nZXMsIHJlbW92YWxzLCBhbmQgZml4ZXMuCiAgIAoxOTk4LTA0LTI5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYwosIHdvbWJhdC5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6IG1vcmUgY2xlYW4gdXBzLgogICAKMTk5OC0wNC0yOSAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIHByb2MuYywgdmFyX3JvdXRlLmMKLCB3b21iYXQuYzoKCiAgIC0gKGV4YW1wbGUuYywgcHJvYy5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgIC0gbmxpc3QgY2xlYW51cHMuCiAgIAoxOTk4LTA0LTI5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AuYzoKCiAgIC0gKHRjcC5jKTogZG9uJ3QgdXNlIFRDUFNUQVRfU1lNQk9MIHVubGVzcyBkZWZpbmVkLgogICAKMTk5OC0wNC0yOSAwODo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCAtSCBoZWFkZXIgcHJpbnRpbmcuCiAgIAoxOTk4LTA0LTI3IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogYnVnIGZpeGVzLgogICAKMTk5OC0wNC0yNyAxNjo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IE5ldyBtaWIgbWVudSBjb21tYW5kOiBsb2FkIGEgbWliIG1vZHVsZSBieSBJRCBuYW1lLgogICAKMTk5OC0wNC0yNyAxNjoyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IGJ1ZyBmaXhlcyBhbmQgbmV3IG1pYiBtZW51IHRvIGxvYWQgbmV3IG1pYnMuCiAgIAoxOTk4LTA0LTI3IDEzOjMxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTcgKQogICAKMTk5OC0wNC0yNyAxMTowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYyk6CiAgICAgLSBQdXQgdGhlIHdvcmQgIlRpbWVvdXQ6ICIgaW4gZnJvbnQgb2YgdGhlICJObyBSZXNwb25zZSIgZXJyb3JzLgogICAKMTk5OC0wNC0yNyAxMTowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBTSExJQl9MRENPTkZJR19DTUQgYXMgIjoiIGZvcgogICAgIHN0YXRpYyBsaWJyYXJ5IGNhc2VzLgogICAKMTk5OC0wNC0yNyAxMDo1OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlZCB1bm5lZWRlZCB2YXJpYWJsZS4KICAgCjE5OTgtMDQtMjQgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiB3YXRjaCBvdXQgZm9yIHNpbmdsZSByb3V0ZSBsb29wcy4KICAgCjE5OTgtMDQtMjQgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvX25saXN0Lmg6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCk6IG5fdmFsdWUgaXMgYSBsb25nOgogICAgIC0gcmV0dXJuIHRoZSB2YWx1ZSBmcm9tIGF1dG9fbmxpc3RfdmFsdWUgYXMgYW4gdW5zaWduZWQgbG9uZy4KICAgCjE5OTgtMDQtMjQgMTY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBpbmNsdWRlIG5ldGluZXQvdGNwaXAuaCBmb3IgRFU0LjAuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBjYWxjdWxhdGUgdmZzIGJsb2NrIHNpemUgaWYgcG9zc2libGUgYW5kIHNpemUgPiAyNTUgYnl0ZXMuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYzoKCiAgIC0gKGhyX3BhcnRpdGlvbi5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGp1c3Qgb3BlbmVkLgogICAKMTk5OC0wNC0yNCAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBkZWZpbmUgTUFYUEFUSExFTi4KICAgCjE5OTgtMDQtMjQgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjaGVjayBzdGF0dmZzLmggZm9yIGZfYmF2YWlsLgogICAKMTk5OC0wNC0yNCAxNDowMyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vcmUgY2xlYW5pbmcgYW5kIHJlbmFtaW5nLgogICAKMTk5OC0wNC0yNCAxMDoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9ucyB3ZXJlIHVwZGF0ZWQgc29tZS4KICAgCjE5OTgtMDQtMjQgMTA6MDIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcmVuYW1lZCBsYWJlbHMgdG8gYmUgdW5pcXVlIGZyb20gdGhlIG9sZCBkZWZpbml0aW9ucy4KICAgICAtIHJlbnVtYmVyZWQgYWdhaW4uCiAgICAgLSBjb21tZW50ZWQgb24gdGhlIGRlc2dpbiBvZiB0aGUgbWliIGF0IHRoZSB0b3AuCiAgICAgLSBDaGFuZ2VkIGJhY2sgdG8gU01JdjEuCiAgICAgLSByZW1vdmVkIGxvY2tkIHNlY3Rpb24uCiAgICAgLSByZW1vdmVkIHZtc3RhdCBzZWN0aW9uIHRpbGwgaXQgZ2V0cyBpbXBsZW1lbnRlZC4KICAgICAtIHJlbW92ZWQgc2VxdWVuY2VzIG9mIHNjYWxlcnMuCiAgIAoxOTk4LTA0LTI0IDEwOjAwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbWliIG9pZCBsb2NhdGlvbiB1cGRhdGVzIGZvciB1Y2Qtc25tcCBtaWIuCiAgIAoxOTk4LTA0LTIyIDA4OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHBhcnNlIEJJVFMga2V5d29yZHMuCiAgIAoxOTk4LTA0LTIyIDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCB3b3JkaW5nLCBjbGVhbmVkIHVwIGEgYml0LgogICAKMTk5OC0wNC0yMCAxNjowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBuZWVkZWQgcG9pbnRlciBjb3BpZXMuCiAgIAoxOTk4LTA0LTIwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmM6CgogICAtICh0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtICNpZmRlZiBjaGVja3Mgb24gc3ltYm9scyBhbmQgaGVhZGVyIG1vdmVtZW50LgogICAKMTk5OC0wNC0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0eXBlY2FzdCBhIHBvaW50ZXIuCiAgIAoxOTk4LTA0LTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZ2V0aG9zdGJ5YWRkciBtb3ZlcyB1cC4KICAgICAtIGluY2x1ZGUgc3lzL3dhaXQuaC4KICAgICAtIHN5c2xvZyAlZCAtPiAlbGQgZm9yIGxvbmcgc3BlY2lmaWNfdHlwZS4KICAgCjE5OTgtMDQtMjAgMTY6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwcm90b3R5cGluZyBhbmQgb3RoZXIgY2xlYW51cHMuCiAgIAoxOTk4LTA0LTIwIDE2OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0ZXN0IHN5bWJvbCBkZWZpbmVzIGFuZCBjbGVhbnVwLgogICAKMTk5OC0wNC0yMCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGhlYWRlciBtb3Zlcy4KICAgCjE5OTgtMDQtMjAgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGFwcHJvcHJpYXRlIHVzZSBvZiBzdHJkdXAgZHVyaW5nIHN0YXJ0dXAgYW5kIGJldHRlciBmbGFnIGNoZWNraW5nLgogICAKMTk5OC0wNC0yMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9maWxlc3lzLmMsIGhyX3N3cnVuLmM6CgogICAtIChocl9maWxlc3lzLmMsIGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IHNvbWUgaG9zdCByZXNvdXJjZXMgZm9yIHNvbGFyaXMuCiAgIAoxOTk4LTA0LTIwIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3Igc3lzL2RraW8uaAogICAKMTk5OC0wNC0yMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0X3Jlcy5oLCBocl9kaXNrLmMsCiAgIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYzoKCiAgIC0gKGhvc3RfcmVzLmgsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jKToKICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgICAtIGNvbnNvbGlkYXRlIHRoZSBzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYgYSBiaXQgKHNob3VsZCBtYWtlIGl0IGVhc2llcgogICAgICAgICB0byBmb2xsb3cpCiAgICAgICAtIFJlLXN0cnVjdHVyZXMgdGhlIERpc2sgc2VhcmNoaW5nLCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIHNldCB1cAogICAgICAgICB2aWEgdGhlIGNvbmZpZyBmaWxlLiAod2hpY2ggSSBzdGlsbCBuZWVkIHRvIGRvKQogICAgICAgLSBTcGVlZCB1cCBkaXNrIHNlYXJjaGluZyAoYnkgY2FjaGluZyBpbnZhbGlkIHJlc3VsdHMgLSBhICptYWpvciogd2luISkKICAgICAgIC0gSGFuZGxlIHBhcnRpdGlvbnMgc2Vuc2libHkgKGFydGhlciB0aGFuIG9uZSBwZXIgZGlzaykKICAgICAgIC0gSW1wcm92ZSBTb2xhcmlzIHN1cHBvcnQgZm9yIHRoZSBEZXZpY2UgZ3JvdXAKICAgCjE5OTgtMDQtMjAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogY2hhbmdlIG9pZCBmcm9tIHRleHR1YWwgdG8gbnVtZXJpYyB0byBhbGxvdyBub3cgbWlicyB0bwogICAgIGJlIGxvYWRlZC4KICAgCjE5OTgtMDQtMDEgMTY6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGFsd2F5cyBzZW5kIGVudGVycHJpc2UgYW5kIHRyYXBvaWQgdG8gc2NyaXB0cy4KICAgCjE5OTgtMDQtMDEgMTQ6NDMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNiApCiAgIAoxOTk4LTA0LTAxIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgdW5yZWdlc3RlcmluZyBvZiBtaWJzIHdvcmsuCiAgICAgLSAoaW4gbW9zdCBjYXNlczotPykKICAgCjE5OTgtMDQtMDEgMTQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA0LTAxIDE0OjEwICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlbW92ZWQgYSBmZXcgdGhpbmdzIQogICAKMTk5OC0wNC0wMSAxMzo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogbW92ZWQgdGhlIHZpZXcgZXhhbXBsZSBzZWN0aW9uIGFib3ZlIHRoZSBhY2Nlc3Mgc2VjdGlvbi4KICAgCjE5OTgtMDQtMDEgMTM6NTMgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgdmFjbSBleGFtcGxlIGNvbmZpZ3VyYXRpb24uCiAgIAoxOTk4LTA0LTAxIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogbW9yZSAzLjQgdXBkYXRlcy4KICAgCjE5OTgtMDQtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIE5FV1MsIFBPUlRJTkc6CgogICAtIChORVdTLCBQT1JUSU5HKTogdXBkYXRlcyBmb3IgMy40LgogICAKMTk5OC0wNC0wMSAxMzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKToKICAgICAtIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIG9mIHRyZWUgdHJhdmVyc2FsLgogICAKMTk5OC0wNC0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IGVudGVycHJpc2VfbGVuZ3RoIGlzIHNpemVvZihvaWQpIGRlcGVuZGVudC4KICAgCjE5OTgtMDMtMjcgMTY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL3JlZ2lzdHJ5LmM6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIGludGVyZmFjZXMuYywgaXAuYywgcmVnaXN0cnkuYyk6CiAgICAgLSBwcm90b3R5cGluZyBhbmQgLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTAzLTI3IDE2OjQyICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGRvY3VtZW50IGxpYndyYXAuCiAgIAoxOTk4LTAzLTI3IDE2OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOgogICAgIC0gY29ycmVjdGx5ICNpZmRlZiBvdXQgdGhlIHRjcHdyYXBwZXJzIHBhdGNoLgogICAKMTk5OC0wMy0yNyAxNjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogSW50ZXJmYWNlc19TY2FuX05leHQgbmVlZGVkIGEgNHRoIChOVUxMKSBhcmd1bWVudC4KICAgCjE5OTgtMDMtMjcgMTY6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOiBQYXRjaCBmcm9tCiAgICAgQXJ0aHVyIEh5dW46CiAgICAgLSB0Y3B3cmFwcGVycyBzdXBwb3J0LgogICAKMTk5OC0wMy0yNyAxMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmM6CgogICAtIChocl9kZXZpY2UuYyk6IGNoZWNrIGRldmljZSBpbmRleCBhZ2FpbnN0IG1heGltdW0gKHNlZ2ZhdWx0IG9uIEhQVVgpLgogICAKMTk5OC0wMy0yNyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogdXNlIGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIGRpc2tzLgogICAKMTk5OC0wMy0yNyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBjcmVhdGUgY29uZmlnX3B3YXJuKCkgdGhhdCBkb2Vzbid0IGluY3JlYXNlIHRoZSBlcnJvciBjb3VudCB0bwogICAgICAgcHJldmVudCBleGl0aW5nLiAgVXNlZCBmb3IgZGlza3MsIHNpbmNlIHNvbWUgbWlnaHQgYnkgcHJvY2VzcyBvcgogICAgICAgbmZzIG1vdW50ZWQuCiAgIAoxOTk4LTAzLTI3IDA5OjIwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gQmV0YSB2ZXJzaW9uIG9mIGFuIGV4dGVuc2libGUgdHJhcCBkZW1vbi4KICAgICAgIC0gLUMgJ2NvbW1hbmQnIG9uIHRoZSBjb21tYW5kIGxpbmUgcnVucyB0aGUgY29tbWFuZCBhbmQgZmVlZHMgaXQKICAgICAgICAgc3RkaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyYXAuCiAgICAgICAtIHYxIHRyYXBzIGFyZSBjb252ZXJ0ZWQgdG8gdjIgdHJhcHMgZm9yIGNvbnNpc3RhbmN5IG9mCiAgICAgICAgIGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIHNjcmlwdHMuCiAgIAoxOTk4LTAzLTI2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jLAogICBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMKLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYwosIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5jCiwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX3JpcDIuYywgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZpZXcuYwo6CgogICAtICgqLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbWlzYyBwb3J0aW5nIGltcHJvdmVtZW50cyAodGhlIGJzZCBncm91cHMsIHN1bm9zLCAuLi4pLgogICAgIC0gc3dpdGNoIGF1dG9fbmxpc3RzIGNhbGxpbmcgb3JkZXIgb2YgXyB2cyBub24gXyBsb29rdXBzLgogICAgIC0gcmV2ZXJzZSBhbGwgc3RyaW5nLmgvc3RyaW5ncy5oIGluY2x1ZGUgcG9zc2liaWxpdGllcy4KICAgCjE5OTgtMDMtMjUgMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hwdXguYzoKCiAgIC0gKGhwdXguYyk6IGZpeCB3cml0ZV9tZXRob2QgZGVjbGFyYXRpb24uCiAgIAoxOTk4LTAzLTI1IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmMsIHYycGFydHkuYywgdmFjbV92YXJzLmMKOgoKICAgLSAodjJwYXJ0eS5jLCBtaWJJSS5jLCB2YWNtX3ZhcnMuYyk6IGRlY2xhaXIgcmVnaXN0cmF0aW9uIHZhcmlhYmxlcyBzdGF0aWNseS4KICAgCjE5OTgtMDMtMjUgMTI6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMKOgoKICAgLSAoTWFrZWZpbGUuaW4sIGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogQ29kZSBmcm9tIERhdmlkIFQuIFBlcmtpbnM6CiAgICAgLSBpbnRlZ3JhdGVkIERhdmlkJ3MgY29kZSB0byBwcmludCBjb3VudGVyNjRzIGFzIGludGVnZXJzIHJhdGhlciB0aGFuIGhleC4KICAgCjE5OTgtMDMtMjUgMTA6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBBZGQgYW4gJiB0byBhcnBjb20uYWNfZW5hZGRyIGluIG1lbXNldC4KICAgCjE5OTgtMDMtMjUgMTA6NDYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGxpbnV4LmgpOiBuZXcgZGVmaW5lOiBET05UX1VTRV9OTElTVC4KICAgCjE5OTgtMDMtMjUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBkLmMsIHNubXBfYXBpLmMpOiBTcGVsbGluZyBlcnJvcnMgZnJvbSB0aGUgQ01VIGNvZGUgZml4ZWQuCiAgIAoxOTk4LTAzLTI1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2ltcGx5IGRvbid0IGRlZmluZSBDQU5fVVNFX05MSVNUIG9uIGxpbnV4LgogICAKMTk5OC0wMy0yNSAxMDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYwosIG1pYmdyb3VwL3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL3JlZ2lzdHJ5Lmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6CiAgICAgLSBmaXggdGhlIHJlZ2lzdHJ5IG1pYiB0byB1c2UgdGhlIG5ldyBtb2R1bGUgc3RydWN0dXJlLgogICAgIC0gY3JlYXRlIGEgd29ya2luZyBmaW5kX3N1YnRyZWUoKSBhbmQgZmluZF9zdWJ0cmVlX25leHQoKS4KICAgCjE5OTgtMDMtMjUgMDk6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBpbmNsdWRlIHRjcGlwLmggZm9yIGRpZ2l0YWwgdW5peC4KICAgCjE5OTgtMDMtMjIgMTg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogcGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jOgoKICAgLSAocGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIG1vdmUgc3lzL3R5cGVzLmggdXAgZm9yIHVsdHJpeC4KICAgCjE5OTgtMDMtMTggMTQ6MDkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNSApCiAgIAoxOTk4LTAzLTE4IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBkLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgbWFuL21pYl9hcGkuMywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMsCiAgICAgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtYWluLmMsIG1pYl9hcGkuMywKICAgICBjb25maWcuaCk6CiAgICAgLSBTTk1QTElCUEFUSCAtPiBTTk1QU0hBUkVQQVRICiAgICAgLSBhIHJlYWwgU05NUExJQlBBVEgKICAgICAtIG1ha2UgdGhlIGFnZW50IHJlYWQgLmNvbmYgZmlsZXMgZnJvbSBTTk1QU0hBUkVQQVRIOlNOTVBMSUJQQVRILgogICAKMTk5OC0wMy0xOCAxMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMKLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAoZXh0ZW5zaWJsZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAtIHdhaXQgZm9yIHBpZCBhZnRlciBnZXRfZXhlY19vdXRwdXQoKSB3aXRoIG5ldyB3YWl0X29uX2V4ZWMoKSBmdW5jdGlvbi4KICAgCjE5OTgtMDMtMTggMTM6MTAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4sCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcmUtbnVtYmVyaW5nIG9mIHRoZSBuZXcgdGFibGUgbW9kdWxlcy4KICAgCjE5OTgtMDMtMTggMDk6MTcgIGhhcmRha2VyCgogICAqIG92L1JFQURNRToKCiAgIC0gKFJFQURNRSk6IGNoYW5nZWQgT1YgcGF0aCdzIHRvIG5ld2VyIHJlbGVhc2UgcGF0aHMuCiAgIAoxOTk4LTAzLTExIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgY2hvbXAgbmV3IGxpbmUgb24gcmVhZF9jb25maWcgdXRpbHMuCiAgIAoxOTk4LTAzLTExIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZGVwZW5kIHVwZGF0ZS4KICAgCjE5OTgtMDMtMTEgMTU6NTYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG5hbWUgdXBkYXRlLgogICAKMTk5OC0wMy0xMSAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKTogYmV0dGVyIGRlYnVnZ2luZyBwcmludGZzCiAgIAoxOTk4LTAzLTExIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYwosIHNubXBfdmFycy5jLCBzbm1wZC5jLCBtaWJncm91cC9ob3N0X3Jlcy5oCiwgbWliZ3JvdXAvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hyX2RldmljZS5oLAogICBtaWJncm91cC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hyX2Rpc2suaCwKICAgbWliZ3JvdXAvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ocl9maWxlc3lzLmgsCiAgIG1pYmdyb3VwL2hyX25ldHdvcmsuYywgbWliZ3JvdXAvaHJfbmV0d29yay5oLAogICBtaWJncm91cC9ocl9vdGhlci5jLCBtaWJncm91cC9ocl9wYXJ0aXRpb24uYywKICAgbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgsIG1pYmdyb3VwL2hyX3ByaW50LmMsCiAgIG1pYmdyb3VwL2hyX3ByaW50LmgsIG1pYmdyb3VwL2hyX3Byb2MuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5oLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N0b3JhZ2UuaCwgbWliZ3JvdXAvaHJfc3dpbnN0LmMsCiAgIG1pYmdyb3VwL2hyX3N3aW5zdC5oLCBtaWJncm91cC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ocl9zd3J1bi5oLCBtaWJncm91cC9ocl9zeXN0ZW0uYywKICAgbWliZ3JvdXAvaHJfc3lzdGVtLmgsIG1pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvaXAuYywgbWliZ3JvdXAvbWliSUkuYywgbWliZ3JvdXAvbWliSUkuaAosIG1pYmdyb3VwL3N5c09SVGFibGUuYywgbWliZ3JvdXAvdjJwYXJ0eS5jLAogICBtaWJncm91cC92MnBhcnR5LmgsIG1pYmdyb3VwL3ZhY21fdmFycy5jLAogICBtaWJncm91cC92YWNtX3ZhcnMuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgaG9zdF9yZXMuaCwgaHJfZGV2aWNlLmMsIGhyX2RldmljZS5oLCBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgICBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsIGhyX290aGVyLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5jLCBocl9wcmludC5oLCBocl9wcm9jLmMsCiAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaCwgaW50ZXJmYWNlcy5jLAogICAgIGlwLmMsIG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgdjJwYXJ0eS5jLCB2MnBhcnR5LmgsCiAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIG1hc3NpdmUgcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBmaXhlcy4KICAgICAtIGZpeGVkIHRoaW5ncyBicm9rZW4gYnkgdGhlIGZyZWVic2QgcGF0Y2ggKG9ubHkgc29tZSBJJ20gc3VyZSkuCiAgIAoxOTk4LTAzLTExIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpY21wLmMsCiAgICAgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBHYXJyZXR0CiAgICAgV29sbG1hbjoKICAgICAtIGZyZWVic2QgMyBzeXNjdGwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5OC0wMy0xMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oOgoKICAgLSAoaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2YXJfcm91dGUuaCk6IFBhdGNoIGZyb20KICAgICBDcmFpZyBCZXZpbnM6CiAgICAgLSBwb3J0IHRvIE9wZW5CU0QuCiAgIAoxOTk4LTAzLTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYwosIHN5c3RlbS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgLSBmaXggdGltZSB2YWx1ZXMgYW5kIG1vdmUgc3lzT1JMYXN0Q2hhbmdlZCB0byB0aGUgc3lzdGVtIGdyb3VwLgogICAKMTk5OC0wMy0xMSAwOTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmgsIGhyX2ZpbGVzeXMuaCwgbWVtb3J5LmgKLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmgsCiAgIHN5c09SVGFibGUuaCwgdm1zdGF0Lmg6CgogICAtIChocHV4LmgsIGhyX2ZpbGVzeXMuaCwgbWVtb3J5LmgsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5oLAogICAgIHNubXBfcmlwMi5oLCBzeXNPUlRhYmxlLmgsIHZtc3RhdC5oKToKICAgICAtIGZpbmlzaCBjb252ZXJ0aW5nIGEgZmV3IG9mIHRoZSBmaWxlcyB0aGF0IE5pZWxzIG1pc3NlZC4KICAgCjE5OTgtMDMtMTEgMDg6MDYgIGhhcmRha2VyCgogICAqIG1pYnMvLmluZGV4OgoKICAgLSAobWlicy8uaW5kZXgpOiB1cGRhdGUuLi4KICAgCjE5OTgtMDMtMTEgMDg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvY29tbW9uX2hlYWRlci5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovKi8qLyopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGF1dG9fbmxpc3Qgb24gcHJlY2VlZGluZyBfIGFyY2hpdGVjdHVyZXMuCiAgICAgLSBDaGFuZ2UgKmFsbCogZGVmaW5lIHVzYWdlIHRvIG5ldyBTTk1QXyBhbmQgQVNOXyBwcmVmaXhlcy4KICAgICAtIGxlYXZlIG1pYiBhY2Nlc3Mgb3BlbiBpZiBubyBjb20yc2VjIHN0YXRlbWVudHMgd2VyZSBmb3VuZCBpbiBzbm1wZC5jb25mLgogICAKMTk5OC0wMy0wOSAxNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMKLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaDoKCiAgIC0gKG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgdjJwYXJ0eS5jLAogICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgLSBpbXBsZW1lbnQgc3lzT1JUYWJsZS4KICAgICAtIHJlZ2lzdGVyIG1pYnMgdW5kZXIgaXQuCiAgIAoxOTk4LTAzLTA2IDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlIHNlY3VyaXR5IHR5cGUgcHJvbXB0cy4KICAgCjE5OTgtMDMtMDYgMTU6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogbW92ZSBzbm1wX2FwaS5oIHVwIGFib3ZlIHNubXBfaW1wbC5oLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gKG1pYklJLmgpOiBhZGQgdmFjbV92YXJzLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKToKICAgICAtIHJlbW92ZSBHTE9CQUwtU0VDVVJJVFkgY2hlY2tzLgogICAKMTk5OC0wMy0wNiAxNDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvcmVhZF9jb25maWcuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXB0YWJsZS4xLCBtaWJzLy5pbmRleAosIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dCwKICAgbWlicy9TTk1QLU1QRC1NSUIudHh0LCBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsCiAgIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQsCiAgIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuYwosIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKLCBzbm1wbGliL3ZpZXcuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWwuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLAogICAgIGV2ZW50LmMsIGV4dGVuc2libGUuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIG1pYmluY2wuaCwKICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCByb3V0ZV93cml0ZS5jLAogICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwKICAgICB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICAgIGlmLmMsIGluZXQuYywgcm91dGUuYywgc25tcGQuY29uZi41LmRlZiwgc25tcHRhYmxlLjEsIC5pbmRleCwKICAgICBNYWtlZmlsZS5pbiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgICBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwKICAgICBNYWtlZmlsZS5pbiwgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgIG1pYi5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgc25tcF9pbXBsLmgsIHN5c3RlbS5jLCB2YWNtLmMsIHZhY20uaCwKICAgICB2aWV3LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gSW1wbGVtZW50IHRoZSBTTk1QdjMgVmlldyBCYXNlZCBBY2Nlc3MgQ29udHJvbCBNb2RlbCAoUkZDIDIyNzUpLgogICAgIC0gaGVhZGVyIGZpeGVzLgogICAgIC0gYmV0dGVyIGhlYWRlci1maWxlICNkZWZpbmUgbmFtZXMgdG8gaW5jbHVkZSBTTk1QXywgQVNOXywgZXRjLiBwcmVmaXhlcy4KICAgCjE5OTgtMDMtMDQgMTU6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogZG9jdW1lbnRhdGlvbiByZXF1aXJlbWVudCBjaGFuZ2UuCiAgIAoxOTk4LTAyLTI1IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCByZWFkX2NvbmZpZyBwYXJzZXIncyBlbmQgb2YgbGluZSBwcm9ibGVtcy4KICAgCjE5OTgtMDItMjAgMTE6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgogICAKMTk5OC0wMi0yMCAxMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZCB0byBsb29rIGZvciBhbmQgc3RyaXAgL3Vzci9saWIvKi4KICAgCjE5OTgtMDItMjAgMDk6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gZml4IGluY2x1ZGUgZmlsZSBkZXBlbmRhbmNpZXMgb24gaXJpeCB3aXRoIF9LRVJORUwgZGVmaW5lZC4KICAgCjE5OTgtMDItMTggMTY6NTEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNCApCiAgIAoxOTk4LTAyLTE4IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTAyLTE4IDE2OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogb3BlbmJzZCBkZWZpbmVzLgogICAKMTk5OC0wMi0xOCAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYwosIHZhcl9yb3V0ZS5jOgoKICAgLSAoYXQuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBic2QuaCwgYnNkaS5oLCBmcmVlYnNkLmgsCiAgICAgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oKToKICAgICAtIHRyaWVkIHRvIG1lcmdlIHNvbWUgdGhpbmdzIGludG8gcy8qLmggZGVmaW5lcyBpbnN0ZWFkLiAgVGhlcmUgaXMgYQogICAgICAgbG90IHRvIGdvIHN0aWxsLgogICAKMTk5OC0wMi0xOCAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZW1vdmVkIHVubmVlZGVkIHN0dWZmLgogICAgIC0gYWRkZWQgb3BlbmJzZC4KICAgCjE5OTgtMDItMTggMTQ6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IHByb3RvdHlwaW5nIGNoZWNrcy4KICAgCjE5OTgtMDItMTggMTQ6MzIgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGNoZWNrcy4KICAgCjE5OTgtMDItMTggMTQ6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMKLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICBocl9zd3J1bi5jLCBocl91dGlscy5jLCBpY21wLmMsIGludGVyZmFjZXMuYwosIGludGVyZmFjZXMuaCwgaXAuYywgbWVtb3J5LmMsCiAgIG1pYmluY2wuaCwgcGFydHlfdmFycy5jLCBwYXNzLmMsIHByb2MuYywKICAgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYwosIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsCiAgIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLCB2bXN0YXQuYzoKCiAgIC0gKGFjbF92YXJzLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsCiAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbWVtb3J5LmMsIG1pYmluY2wuaCwKICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsCiAgICAgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLAogICAgIHZtc3RhdC5jKToKICAgICAtIG1hc3NpdmUgLVdhbGwgYW5kIC0tc3RyaWN0LXByb3RvdHlwZXMgY2hlY2tpbmcuCiAgICAgLSBiemVybyAtPiBtZW1zZXQuCiAgIAoxOTk4LTAyLTE4IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGV4YW1wbGUuYywgaHB1eC5jLAogICBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsCiAgIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCiwgaXAuYywgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMKLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jCiwgdmFyX3JvdXRlLmMsIHdvbWJhdC5jOgoKICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHBhc3MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLAogICAgIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgLSBhbGwgYmNvcHlzIC0+IG1lbWNweS4KICAgICAtIGluY2x1ZGUgYSBmZXcgZXh0cmEgaGVhZGVycyBmb3IgREVCVUdQIHN0YXRlbWVudHMuCiAgIAoxOTk4LTAyLTE4IDEzOjM0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCiAgIAoxOTk4LTAyLTE4IDEzOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBsb2FkYXZlLmgsIHByb2MuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSB0dXJuIHRoZXNlIG1pYnMgaW50byByZWFsIHRhYmxlcy4gIFJlcXVpcmVkIGNoYW5naW5nIHRoZSBtaWIgdGhvdWdoLgogICAKMTk5OC0wMi0xOCAxMTo0NiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZik6IGNoYW5nZSB0byBEQVRBRElSIGZyb20gTElCRElSLgogICAKMTk5OC0wMi0xOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogZGVmaW5lIExJQkRJUiBhbmQgREFUQURJUi4KICAgCjE5OTgtMDItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIGlyaXguaCk6CiAgICAgUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBwb3J0IHRvIGlyaXguCiAgIAoxOTk4LTAyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIGZpeCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQgKG1pc3NpbmcgYSB2YXJpYWJsZSkuCiAgIAoxOTk4LTAyLTE4IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIGNoZWNrIGZvciBzeXMvc3lzbXAuaC4KICAgCjE5OTgtMDItMTggMDg6MDUgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5oOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgdm1zdGF0LmMsIHZtc3RhdC5oLCB1Y2Rfc25tcC5oLAogICAgIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAtIGltcGxtZW50IGEgdm1zdGF0IG1pYiBncm91cCBvbiBsaW51eC4KICAgCjE5OTgtMDItMTcgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLmMsIHVkcC5jOgoKICAgLSAodGNwLmMsIHVkcC5jKToKICAgICAtIG5saXN0IHN5bWJvbCBuYW1lIGVycm9ycy4KICAgCjE5OTgtMDItMTcgMDk6NTMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMKOgoKICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMpOgogICAgIC0gdXNlIGFwcHJvcHJpYXRlIG1hbGxvY3MsIGFuZCBOVUxMIGluaXRpYWxpemF0aW9uIG9mIHBvaW50ZXJzLgogICAgIC0gbWFsbG9jIHRoZSBzeW1ib2wgcmF0aGVyIHRoYW4gdXNpbmcgYSBmaXhlZCBsZW5ndGguCiAgICAgLSBpbnNlcnQgZGVidWdnaW5nIGNvZGUuCiAgICAgLSBlbmFibGUgcHJpbnRpbmcgb2YgdGhlIG5saXN0IHRyZWUgaWYgVEVTVElORyBpcyBkZWZpbmVkLgogICAKMTk5OC0wMi0xNyAwOTo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIHVzZSBzbm1wX2lwYWRkciBpbnN0ZWFkIG9mIGlwYWRkciB0byBhdm9pZCBocHV4IGNvbmZsaWN0cy4KICAgCjE5OTgtMDItMTMgMDk6MDcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHR5cG86IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KICAgCjE5OTgtMDItMTEgMTY6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzZWQgZG9lc24ndCBsaWtlIFthLXpdKyB0eXBlIGV4cHJlc3Npb25zLgogICAKMTk5OC0wMi0xMSAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jOgoKICAgLSAoaHJfbmV0d29yay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHNvbGFyaXMgZml4ZXMuCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBkb24ndCBpbmNsdWRlIGNvbmZpZy5oCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHBzIGF1eCBzaG91bGQgZGVmaW5lIGF1eCBub3QgLWF1eC4KICAgCjE5OTgtMDItMTEgMDk6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvaHJfcHJvYy5jLAogICBtaWJncm91cC9ocl9zdG9yYWdlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdWRwLmMsIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYXV0b19ubGlzdC5jOgoKICAgLSAoZ2VuZXJpYy5oLCBhdXRvX25saXN0LmMsIGF0LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBtZW1vcnkuYywKICAgICB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGZpeCBhbGwgbXkgdHlwb3MgOy0pLgogICAgIC0gY3JlYXRlIGF1dG9fbmxpc3RfdmFsdWUgdG8gcmV0dXJuIHRoZSBsb29rZWQtdXAgdmFsdWUuCiAgIAoxOTk4LTAyLTA5IDExOjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBpb2N0bHMuaC4KICAgCjE5OTgtMDItMDkgMTE6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6ICBpbmNsdWRlIGlvY3Rscy5oIGlmIGF2YWlsYWJsZS4KICAgCjE5OTgtMDItMDkgMTE6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpb2N0bHMuaAogICAKMTk5OC0wMi0wOSAxMToxNyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUzICkKICAgCjE5OTgtMDItMDkgMTE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IHByb3RvdHlwZXMgb24gbXkgYnJva2VuIHRhYmxlIHdhbGtpbmcgcm91dGluZXMuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoYW5nZWQgLS13aXRoLXNoYXJlZC1saWJyYXJpZXMgdG8gLS1lbmFibGUtc2hhcmVkIHRvIG1hdGNoIG90aGVyIHBrZ3MuCiAgICAgLSBkaXNwbGF5IGFyZ3VtZW50cyBmb3VuZCBmb3IgLS1lbmFibGUtc2hhcmVkLgogICAKMTk5OC0wMi0wOSAxMTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgLSAoYXV0b19ubGlzdC5oKTogcHJvdG90eXBlIHdyYXBwZXIuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jCiwgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywKICAgaW50ZXJmYWNlcy5jLCBpcC5jLCBrZXJuZWxfc3Vub3M1LmMsIGxvYWRhdmUuYwosIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChhdC5jLCBkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaHB1eC5jLCBocl9wcm9jLmMsCiAgICAgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAga2VybmVsX3N1bm9zNS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YXJfcm91dGUuYyk6CiAgICAgLSB1c2UgYXV0b19ubGlzdC4KICAgCjE5OTgtMDItMDYgMTc6MTAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvYXV0b25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oLCBhdXRvbmxpc3QuaCwga2VybmVsLmMsIHNubXBfdmFycy5jLCBpcC5jKToKICAgICAtIGNyZWF0ZWQgYSBuZXcgYXV0b19ubGlzdCBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIGlwLmMuCiAgIAoxOTk4LTAyLTA2IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9kaXNrLmM6CgogICAtIChocl9kaXNrLmMpOiBjbG9zZSgpIGdvdCBjYXVnaHQgaW5zaWRlIGFuIGVsc2UgaXQgc2hvdWxkbid0IGhhdmUgZHVlCiAgICAgdG8gYW4gaWZkZWYgZXJyb3IuCiAgIAoxOTk4LTAyLTA2IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICBpcC5jLCB0Y3AuYywgdWRwLmM6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKTogcHJvdGVjdCBhZ2FpbnN0IG5saXN0LmgKICAgCjE5OTgtMDItMDIgMDg6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gSGF3a2luc29uOgogICAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIGZvciBzaGFyZWQgbGlicmFyeSBleHRlbnNpb24gdy9vIHNoYXJlZCBsaWJyYXJpZXMuCiAgIAoxOTk4LTAxLTMwIDE1OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYyk6IGZpeCBkZWZhdWx0IHBvcnQgZm9yIHNubXB0cmFwLgogICAKMTk5OC0wMS0zMCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogZmluaXNoIGxpbnV4IHByb2JsZW1zIGFuZCB1c2UgaWZfc3BlZWQuCiAgIAoxOTk4LTAxLTMwIDE0OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaWZfc3BlZWQuCiAgIAoxOTk4LTAxLTMwIDEzOjUwICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUpOiBkZWZpbmUgaWZuZXQgZm9yIGxpbnV4LgogICAKMTk5OC0wMS0zMCAxMzo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogSSBjYW4ndCByZWFsbHkgaGF2ZSBmb3Jnb3R0ZW4gU2ltb24ncyBuYW1lIGluIHRoZSBsaXN0CiAgICAgY291bGQgST8KICAgCjE5OTgtMDEtMzAgMTA6NTUgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMiApCiAgIAoxOTk4LTAxLTMwIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGRpc2suYywgaG9zdF9yZXMuaCwgcGFzcy5jLCByZWdpc3RyeS5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywKICAgICB2ZXJzaW9uaW5mby5jLCBzbm1wX2FwaS5oKToKICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGZvciBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjE5OTgtMDEtMzAgMTA6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2UgbW9kdWxlIGluZGV4aW5nIHRvIHVzZSBvaWQgaW5zdGVhZCBvZiBhIG51bWVyaWMuCiAgIAoxOTk4LTAxLTMwIDEwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5Lmg6CgogICAtIChyZWdpc3RyeS5jLCByZWdpc3RyeS5oKTogYmVnaW4gbXVuZ2luZyBmb3IgbmV3IGhpZXJhcmNoeS4KICAgCjE5OTgtMDEtMzAgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgpOgogICAgIC0gbWVyZ2UgRGF2ZSdzIGNvZGUgd2l0aCBtaW5lLiAgU3RpbGwgYSBmZXcgYnVncyB0byB3b3JrIHRocm91Z2guCiAgIAoxOTk4LTAxLTMwIDEwOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBwdXQgcGFzc19jb21hcHJlIGhlcmUuCiAgIAoxOTk4LTAxLTMwIDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgIC0gcmVwb3J0IGNhY2hlZCwgYnVmZmVyLCBhbmQgc2hhcmVkIHN0YXRpc3RpY3MgZm9yIGxpbnV4LgogICAKMTk5OC0wMS0zMCAwODo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHRlc3QgZm9yICdwcyBhdXgnIChyZWRoYXQgNS4wKS4KICAgCjE5OTgtMDEtMjMgMTY6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgsCiAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gbWFrZSB0aGUgbWliIHJlZ2lzdHJ5IHJlY29yZCBhbmQgZGlzcGxheSBhIG1pYiBtb2R1bGUgbmFtZSBhcyB3ZWxsLgogICAKMTk5OC0wMS0yMyAxNjoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsCiAgIGhyX290aGVyLmgsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVjZF9zbm1wLmgsCiAgIHVkcC5jLCB2ZXJzaW9uaW5mby5jOgoKICAgLSAoYXQuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9vdGhlci5oLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVjZF9zbm1wLmgsIHVkcC5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAtICNpbmNsdWRlICJzbm1wX2FwaS5oIgogICAKMTk5OC0wMS0yMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oOgoKICAgLSAocmVnaXN0cnkuW2NoXSwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjcmVhdGUgYSBuZXcgdGFibGUgYXQgdWNkYXZpcy4xMDMgdG8gZGlzcGxheSByZWdpc3RlcmVkIG1pYnMuCiAgIAoxOTk4LTAxLTIzIDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2V4dGVuc2libGUuYywgcmVhZF9jb25maWcuYywKICAgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICBtaWJncm91cC9wYXNzLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMpOgogICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbnM6CiAgICAgICAtIHJlZ2lzdGVyX3N1YnRyZWUoKQogICAgICAgLSByZWdpc3Rlcl9taWIoKQogICAgICAgLSB1bnJlZ2lzdGVyX21pYigpLgogICAgIC0gZ2V0IHJpZCBvZiByZWFkX2NvbmZpZyBzcGVjaWFsIHN0dWZmIGZvciBleHRlbnNpYmlsaXR5IGFuZCBwdXQgaXQKICAgICAgIGluIHRoZWlyIG93biBzdWJtb2R1bGVzIHdoaWNoIG5vdyBjYWxsIHJlZ2lzdGVyX21pYigpLgogICAKMTk5OC0wMS0yMyAwODozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb24ndCBjbG9zZSBmaWxlIGRlc2NyaXB0b3IgaW4gbGludXgncyBGSUxFX1RPX0JVRiBtYWNyby4KICAgCjE5OTgtMDEtMjEgMjI6MDUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjcmVhdGUgbS8gYW5kIHMvIGRpcmVjdG9yaWVzIGFuZCB1c2UgdGhlbSBmb3Igc3VwcGxlbWVudGFsIGNvbmZpZwogICAgICAgaW5jbHVkZSBmaWxlcyBiYXNlZCBvbiB0aGUgY29uZmlnLmd1ZXNzIG91dHB1dC4KICAgCjE5OTgtMDEtMjEgMTc6MzIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgLSBEbyBhIGJldHRlciB2ZXJzaW9uIG9mIHNobGliIHN1cHBvcnQuICBTaG91bGQgYmUgdXNlYWJsZSBub3cgYXQgbGVhc3QuCiAgIAoxOTk4LTAxLTIxIDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jCiwgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICBwYXNzLmMsIHByb2MuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsCiAgICAgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICB2ZXJzaW9uaW5mby5jKToKICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KICAgCjE5OTgtMDEtMjEgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYwosIHNubXBkLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KICAgCjE5OTgtMDEtMjEgMTE6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBiZWdpbiBzdXBwb3J0IGZvciBjcmVhdGluZyBhbmQgdXNpbmcgc2hhcmVkIGxpYnJhcmllcy4KICAgICAtIGFsbCBNYWtlZmlsZXMgbm93IGluY2x1ZGUgYSBNYWtlZmlsZS50b3AgZm9yIGVhc2llciBmdXR1cmUgZ2xvYmFsIGNoYW5nZXMuCiAgIAoxOTk4LTAxLTIxIDExOjA4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IHVwZGF0ZS4KICAgCjE5OTgtMDEtMTYgMDk6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBTaGVzaGFkcmkgWWFnYXRpOgogICAgIC0gc2lnbmFsIGEgdHJhcCAoMikgd2hlbiB0aGUgYWdlbnQgaXMgc2h1dCBkb3duLgogICAKMTk5OC0wMS0xMiAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGluY3JlYXNlIGJ1ZmZlciBzaXplIHRvIGluY3JlYXNlIG1heCBpbnRlcmZhY2VzIHJlcG9ydGVkIG9uIFNvbGFyaXMuCiAgIAoxOTk4LTAxLTEyIDA5OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogVW5kaWQgYW5vbi1jaGlsZHJlbiBjaGFuZ2UuCiAgIAoxOTk4LTAxLTEyIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYywgc25tcF9hcGkuaCwKICAgc25tcF9pbXBsLmgsIHN5c3RlbS5oOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgc25tcF9hcGkuaCwgc25tcF9pbXBsLmgsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscwogICAgIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIGNoYW5nZXMgYW5kIGJvb2xlYW4gY2hlY2sgY29ycmVjdGlvbnMuCiAgIAoxOTk4LTAxLTEyIDA5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jCjoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAtIHNubXBfcGVycm9yIHVzYWdlLgogICAKMTk5OC0wMS0xMiAwOTo0MCAgaGFyZGFrZXIKCiAgICogRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbjoKCiAgIC0gKEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gZml4IHBhdGhzIGZyb20gcmVjZW50IGNoYW5nZXMuCiAgIAoxOTk4LTAxLTEyIDA5OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGFsYXJtLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jCiwgZXZlbnQuYywgaHJfZGV2aWNlLmMsIGhyX2ZpbGVzeXMuYywKICAgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgIGhyX3N3cnVuLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBwcm9jLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgLSAoYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsIGhyX2RldmljZS5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGljbXAuYywKICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggaGVhZGVycyBmb3IgRnJlZUJTRCBhbmQgTmV0QlNELgogICAKMTk5OC0wMS0xMiAwOToxOSAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIHNubXB3YWxrLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHJlbW92ZSB1bnVzZWQgaGVhZGVycy4KICAgICAtIHNubXBfcGVycm9yIGNoYW5nZXMuCiAgIAoxOTk4LTAxLTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBsaW5rIGRpcmVjdGx5IHRvIGxpYi4KICAgCjE5OTgtMDEtMTIgMDk6MTggIGhhcmRha2VyCgogICAqIG1hbi86IG1pYl9hcGkuMywgc25tcF9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMywgc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2MgdXBkYXRlIHRvIHJlZmxlY3QgbW92ZWQgaGVhZGVycy4KICAgCjE5OTgtMDEtMTIgMDk6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgZml4IGFub25fY2hpbGRyZW4gaW52YWxpZCBtZW1vcnkgYWNjZXNzLgogICAKMTk5OC0wMS0wNSAxNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHN3YXAgYXJncyB0byBtZXJnZV9hbm9uX2NoaWxkcmVuKCkuCiAgIAoxOTk4LTAxLTA1IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggYXNuMV9idWlsZF9vYmppZC4KICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogc25tcHYzCiAgIAoxOTk4LTAxLTA1IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHB1dCBpbml0X21pYiBiYWNrIGluIHBsYWNlIChvcHBzKS4KICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogYWRkIGEgZmluZF9tb2R1bGUoKSByb3V0aW5lLgogICAKMTk5OC0wMS0wNSAxMzoyNyAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IGNoYW5nZSAiYWxsIiB0byAiQUxMIi4KICAgCjE5OTctMTItMzAgMTc6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBDcmVhdGUgYSBncmFwaGluZyB3aWRnZXQuCiAgIAoxOTk3LTEyLTMwIDE0OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKToKICAgICAtIG5ldyBjb21tYW5kOiB0YWJsZSB0byBkaXNwbGF5IHNubXB0YWJsZXMgYXMgYSB0YWJsZS4KICAgICAtIG1pc2MuLi4KICAgCjE5OTctMTItMjkgMDk6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBGaXJzdCBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTctMTItMjMgMTY6MzAgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMSApCiAgIAoxOTk3LTEyLTIzIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQgaWYgZGVidWdnaW5nCiAgICAgaXMgb24gb3Igb2ZmLgogICAKMTk5Ny0xMi0yMyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oOgoKICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0CiAgICAgaWYgZGVidWdnaW5nIGlzIG9uIG9yIG9mZi4KICAgCjE5OTctMTItMjMgMTU6MjcgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvYXQuaCwKICAgbWliZ3JvdXAvaG9zdF9yZXMuaCwgbWliZ3JvdXAvaWNtcC5oLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2ludGVyZmFjZXMuaCwKICAgbWliZ3JvdXAvaXAuaCwgbWliZ3JvdXAvdGNwLmMsIG1pYmdyb3VwL3RjcC5oLAogICBtaWJncm91cC91ZHAuYywgbWliZ3JvdXAvdWRwLmgsIHJlYWRfY29uZmlnLmMsCiAgIHNubXBfdmFycy5jOgoKICAgLSAoYXQuYywgYXQuaCwgaG9zdF9yZXMuaCwgaWNtcC5oLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuaCwKICAgICB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaCwgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgIC0gY2xlYW4gdXAgcmVxdWlyZWQgaGVhZGVycyBmb3IgbGludXguCiAgIAoxOTk3LTEyLTIzIDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2ljbXAuYywKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9pcC5jLAogICBtaWJncm91cC9zbm1wX21pYi5jLCBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvdGNwLmMKLCBtaWJncm91cC91ZHAuYywgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBicmVhayB1cCBjb21tb25faGVhZGVyLmguCiAgIAoxOTk3LTEyLTIzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLjg6CgogICAtIChzbm1wZC4xLmRlZiwgc25tcHRyYXBkLjgpOiBkZWJ1Z2dpbmcgZmxhZyBhZGRpdGlvbnMuCiAgIAoxOTk3LTEyLTIzIDE0OjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ocHV4LmMsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYwosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX29zcGYuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoKik6IFR1cm4gYWxsIGRlYnVnZ2luZyByb3V0aW5lcyBpbnRvIGxpYnJhcnkgY2FsbHMgdGhhdCBjYW4gYmUKICAgICB0dXJuZWQgb24gYW5kIG9mZiBhdCBydW4gdGltZS4KICAgICAtIERFQlVHUCgpIGlzIG5vdyBhIHR5cGljYWwgcHJpbnRmIHN0eWxlIGZ1bmN0aW9uIGFuZCBpcyB1c2VkIGV2ZXJ5d2hlcmUuCiAgICAgLSB2b2lkIHNubXBfc2V0X2RvX2RlYnVnZ2luZyhpbnQpLgogICAgIC0gaW50IHNubXBfZ2V0X2RvX2RlYnVnZ2luZygpLgogICAKMTk5Ny0xMi0yMyAxNDo0MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkIFRlZCBSdWxlIHRvIGNvZGVycyBsaXN0LgogICAKMTk5Ny0xMi0yMyAxMjo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKToKICAgICAtIENoYW5nZSAtZiBmbGFnIHRvIC1sIGFuZCBtYWtlIC1mIG5vLWZvcmsuCiAgICAgLSBmaXggcGF0Y2ggd2hpY2ggbXVuZ2VkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgYm90aCAtUCBhbmQgLXMgc2ltdWx0YW5lb3VzbHkuCiAgIAoxOTk3LTEyLTIzIDEyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgIC0gVXNlIHN5c2xvZyBvcHRpb24gTE9HX1BJRCBvbiBzdGFydHVwLgogICAgIC0gZm9yayBpZiBzeXNsb2cgZW5hYmxlZC4KICAgICAtIEVuYWJsZSBsb2dnaW5nIHRvIG90aGVyIHN5c2xvZyBmYWNpbGl0aWVzLgogICAgIC0gcHJpbnQgYWxsIHRyYXAgZGF0YSB0byBhIHNpbmdsZSBzeXNsb2cgbGluZS4KICAgCjE5OTctMTItMjMgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hwdXguYzoKCiAgIC0gKGhwdXguYyk6ICNpZmRlZidlZCBvdXQgdW51c2VkIHdyaXRlSFAgZnVuY3Rpb24uCiAgIAoxOTk3LTEyLTIzIDExOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvZGlzay5jLCBtaWJncm91cC9lcnJvcm1pYi5jLAogICBtaWJncm91cC9leHRlbnNpYmxlLmMsIG1pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5jLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmMsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9sb2FkYXZlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBjb21tb25faGVhZGVyLmg6CgogICAtIChtaWJncm91cC8qLmMsIGNvbW1vbl9oZWFkZXIuaCk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTozNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4pOiBCU0RJIGRlZmluaXRpb24gZml4ZXMuCiAgIAoxOTk3LTEyLTIzIDExOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBTb2xhcmlzIHNwZWNpZmljIGZpeGVzLgogICAKMTk5Ny0xMi0yMyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBDb3JyZWN0IGEgbm9uLWNhc3RlZCBtYWxsb2MuCiAgIAoxOTk3LTEyLTE1IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBhY2NvbmZpZy5oKToKICAgICAtIFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgogICAKMTk5Ny0xMi0xNSAxNTowNyAgaGFyZGFrZXIKCiAgICogb3YvOiBVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbjoKCiAgIC0gKFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluKTogUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCiAgIAoxOTk3LTEyLTE1IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5jLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmMsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9pY21wLmMsIG1pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBtaWJncm91cC9pcC5jLAogICBtaWJncm91cC9sb2FkYXZlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBtaWJncm91cC9yb3V0ZV93cml0ZS5jLCBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdWRwLmMKLCBtaWJncm91cC92YXJfcm91dGUuYywgbWliZ3JvdXAvd29tYmF0LmMsCiAgIGNvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGF0LmMsIGV4YW1wbGUuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMsIGNvbW1vbl9oZWFkZXIuaCk6CiAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbiB0byBpbXByb3ZlIGlyaXggNi4yIHN1cHBvcnQuCiAgIAoxOTk3LTEyLTE1IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QuaCwgdWNkX3NubXAuaCwgdjJwYXJ0eS5oOgoKICAgLSAoaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5LmgpOgogICAgIC0gdXNlIGNvbmZpZ19hZGRfbWliKCkuCiAgIAoxOTk3LTEyLTE1IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbmV3IG1hY3JvIHRvIGNoYW5nZSBkZWZhdWx0IE1JQlMgd2hlbiBtb2R1bGVzIGFyZSBjb21waWxlZDoKICAgICAgIGNvbmZpZ19hZGRfbWliKCkuCiAgIAoxOTk3LTEyLTA1IDE0OjMwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBpbnN0ZWFkIG9mIGVycm9yIGZvciBjb25maWdfcmVxdWlyZSBtYWNybydzLgogICAKMTk5Ny0xMi0wNSAxMTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsCiAgIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IHN1cHBvcnQgcmFuZG9tIGFjY2VzcyByZXF1ZXN0cyBvbiBhbGwgYXBwcyB2aWEgLVIgc3dpdGNoLgogICAKMTk5Ny0xMi0wNSAwODo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtYWtlIHRyYXAgdmFyaWFibGVzIGxvbmcncyBub3QgaW50cyBmb3IgNjRiaXQgbWFjaGluZXMgdG8gbWF0Y2gKICAgICAgIGFzbl9idWlsZF9pbnQgZnVuY3Rpb25zLgogICAKMTk5Ny0xMi0wMSAxMjo0NCAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMi0wMSAxMjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXBfYXBpLjMKLCBtaWJzL1JGQzEyNzEtTUlCLnR4dCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMi0wMSAxMjozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBJTlNUQUxMLCBORVdTLCBSRUFETUUsCiAgIGFjY29uZmlnLmgsIGJ1Zy1yZXBvcnQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMS0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBwYXJ0eV92YXJzLmMgKEV4dC0zLTMtcGF0Y2hlcy4xKSwgcGFydHlfdmFycy5jCjoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IHVzZSBzdHJpbmdzLmggZGVmaW5lIG5vdCBzdHJpbmcuaC4KICAgCjE5OTctMTEtMTQgMTI6MzYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMgKQogICAKMTk5Ny0xMS0xNCAxMjozNiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdmVyc2lvbiB1cGRhdGUuCiAgIAoxOTk3LTExLTE0IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRToKCiAgIC0gKEZBUSwgTkVXUywgUkVBRE1FKTogbGFzdCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCiAgIAoxOTk3LTExLTE0IDEyOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuYzoKCiAgIC0gKHdvbWJhdC5jKTogcXVpY2sgZG9jIGNoYW5nZS4KICAgCjE5OTctMTEtMTQgMDg6MzIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGNvZGVyIGxpc3QgdXBkYXRlLgogICAKMTk5Ny0xMS0xNCAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvd29tYmF0LmM6CgogICAtICh3b21iYXQuYyk6IGNvZGUgY29tbWVudHMgZnJvbSBBbGFuIEJhdGllLgogICAKMTk5Ny0xMS0xMiAyMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC92YXJfcm91dGUuYywgcmVhZF9jb25maWcuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogU1REQyB0eXBvcy4KICAgCjE5OTctMTEtMTIgMjA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IGZpeCBxc29ydCBwYXJhbXMgZm9yIFNUREMuCiAgIAoxOTk3LTExLTEyIDIwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgIC0gRml4ZXMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMjA6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtICgpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAtIEZpeGVzIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDIwOjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBmdW5jdGlvbiBjaGFuZ2VzLgogICAKMTk5Ny0xMS0xMiAxNjowNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMSApCiAgIAoxOTk3LTExLTEyIDE1OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTExLTEyIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYzoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDE1OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoc3lzdGVtLmgpOiBEb24ndCBpbmNsdWRlIGNvbmZpZy5oIQogICAKMTk5Ny0xMS0xMiAxMTo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkZWQgc25tcHRhYmxlLgogICAKMTk5Ny0xMS0xMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBkb2MgdXBkYXRlLgogICAKMTk5Ny0xMS0xMiAxMDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmM6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHBhcnNlciBpbXByb3ZlbWVudHMuCiAgICAgLSBwYXJzZXIgZGlyZWN0b3J5IGNhY2hpbmcuCiAgICAgLSBzYXZlX2Rlc2NyaXB0aW9ucy9taWJfd2FybmluZ3Mgc2V0IGZ1bmN0aW9ucy4KICAgCjE5OTctMTEtMTIgMTA6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkZWx0YS4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXBkLjg6CgogICAtIChtYW4vc25tcGRlbHRhLjEsc25tcHRhYmxlLjEsc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCBhZGRpdGlvbnMuCiAgIAoxOTk3LTExLTEyIDEwOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wdjJjIHN1cHBvcnQgYW5kIGFyZ3VtZW50IHBhcnNpbmcgY2hhbmdlcy4KICAgCjE5OTctMTEtMTIgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jCiwgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6CgogICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB2YXJpb3VzIChyZW1vdmUgdW5uZWVkZWQgdmFycywgZXRjKS4KICAgICAtIGFkZCBzbm1wdGFibGUuCiAgICAgLSBtYWtlIHNubXB0cmFwZCBtdWx0aS1saW5ndWFsLgogICAKMTk5Ny0xMS0xMiAxMDoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KICAgCjE5OTctMTEtMTIgMTA6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYzoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBpZiBhdmFpbGFibGUuCiAgIAoxOTk3LTExLTEyIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc29sYXJpcyBwYXRjaGVzLgogICAKMTk5Ny0xMS0xMiAxMDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCiAgIAoxOTk3LTExLTEyIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBORVdTLCBUT0RPOgoKICAgLSAoTkVXUywgVE9ETyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2MgdXBkYXRlLgogICAKMTk5Ny0xMS0xMiAwOToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIGZvciBsaW51eC9ocHV4MTAgcHJvYmxlbXMuCiAgIAoxOTk3LTExLTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0xMS0xMiAwOToxNyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0xMS0xMiAwODoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIEZyZWUgYSBwZHUgaW4gYSBzcG90IHRoYXQgc2hvdWxkIHRlY2huaWNhbGx5IG5ldmVyIGJlIG5lZWRlZCwgYnV0CiAgICAgICBpcyBuaWNlIGZvciBwZW9wbGUgcmVhZGluZyB0aGUgY29kZS4KICAgCjE5OTctMTEtMTIgMDc6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBXMzIgc3BlY2lmaWMgZml4ZXMuCiAgIAoxOTk3LTExLTA3IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTEwICkKICAgCjE5OTctMTEtMDcgMTY6MzcgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRSwgVE9ETzoKCiAgIC0gKE5FV1MsIFJFQURNRSwgVE9ETyk6IERvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTctMTEtMDcgMTY6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHdhdGNoIG91dCBmb3IgL3Vzci91Y2IvY2Mgb24gc29sYXJpcyBhbmQgZG9uJ3QgdXNlIGl0LgogICAKMTk5Ny0xMS0wNyAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFwcHMvc25tcGdldG5leHQuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgd2luMzIvY29uZmlnLmgsIHdpbjMyL3dpbjMyLm9wdAosIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGcsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLAogICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAosIHdpbjMyL3NubXBzZXQvc25tcHNldC5wbGcsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsucGxnCjoKCiAgIC0gKCopOiBtZXJnZSB0byBtYWluIGJyYW5jaDogIHBhdGNoZXMgZnJvbSBKb2UgTWFyem90LgogICAKMTk5Ny0xMS0wNyAxMzozOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6IHN0b3Agb24gbm8gcmVzcG9uc2UgZnJvbSBob3N0LgogICAKMTk5Ny0xMS0wNyAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jOgoKICAgLSAoaHJfbmV0d29yay5jKTogZG9uJ3QgcGFzcyBjaGFyICoqIHRvIGludGVyZmFjZXNfc2Nhbl9uZXh0KCkuCiAgIAoxOTk3LTExLTA3IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFVTSU5HLipfTUlCX01PRFVMRSAtPiBVU0lORy4qX01PRFVMRS4KICAgCjE5OTctMTEtMDcgMTI6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHBhdGNoIGZyb20gTmllbHMgZm9yIHNvbGFyaXMgPjIuNi4KICAgCjE5OTctMTEtMDcgMTI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogZG9uJ3QgcHJpbnQgYSB2YXJpYWJsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgdW5kZXIgbGludXguCiAgIAoxOTk3LTExLTA3IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGludXgvaGRyZWcuaAogICAKMTk5Ny0xMS0wNSAxNToyOSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU5ICkKICAgCjE5OTctMTEtMDUgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBwcm90ZWN0IHZtbWV0ZXIuaCBmcm9tIG11bHRpcGxlIGluY2x1c2lvbnMgb24gbmV0YnNkLgogICAKMTk5Ny0xMS0wNSAxMzo1OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIHNubXBsaWIvbWliLmM6CgogICAtIChNYWtlZmlsZS5pbiwga2VybmVsX3N1bm9zNS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBvY3RldCBjb3VudGVycyBmb3Igc29sYXJpcy4KICAgICAtIE1ha2VmaWxlLmluIHBhdGNoZXMuCiAgIAoxOTk3LTExLTA1IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICBpcC5jLCB0Y3AuYywgdWRwLmM6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKToKICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIgogICAKMTk5Ny0xMS0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9kaXNrLmMsIG1pYmdyb3VwL3Byb2MuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgZGlzay5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYyk6CiAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIuCiAgIAoxOTk3LTExLTA1IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGNvbW1vbl9oZWFkZXIuaCwgbWliZ3JvdXAvaHJfZGlzay5jLAogICBtaWJncm91cC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hyX3V0aWxzLmMsIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAoKik6IG1lcmdlIGZyb20gRGF2ZSdzIHByZTYgcGF0Y2hlcy4KICAgCjE5OTctMTEtMDUgMTM6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChhcHBzL01ha2VmaWxlLmluKTogcHV0IHNubXB0cmFwZCBpbiBAc2JpbmRpckAKICAgCjE5OTctMTEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIENoZWNrIGZvciAkcHJlZml4IGJlaW5nIGRlZmluZWQgYXMgTk9ORSBmb3Igb3RoZXIgdmFycy4KICAgCjE5OTctMTEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtICNpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgICAtIFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRSAtPiBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUKICAgCjE5OTctMTAtMjkgMTQ6MDAgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOCApCiAgIAoxOTk3LTEwLTI5IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IGRvbid0IGluY2x1ZGUgY29uZmlnLmggdHdpY2UuCiAgIAoxOTk3LTEwLTI5IDEyOjU3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgYW5kIGluY2x1ZGUgc3lzL2NkZWZzLmggaW4gY29uZmlnLmguCiAgIAoxOTk3LTEwLTI5IDEyOjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwKICAgYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvcmVhZF9jb25maWcuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgYWdlbnQvdmlld19wYXJzZS5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLCBhZ2VudC9taWJncm91cC9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5oLCBhZ2VudC9taWJncm91cC9hdC5jLAogICBhZ2VudC9taWJncm91cC9hdC5oLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9ldmVudC5oLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuaCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgsIGFnZW50L21pYmdyb3VwL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaAosIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXguaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgKLCBhZ2VudC9taWJncm91cC93b21iYXQuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmgKLCBhcHBzLy5jdnNpZ25vcmUsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmgKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKCouKi4qKTogX19VQ0RfUCAtPiBfX1AsIGFuZCBhIGNvbmZpZ3VyZSBjaGVjayB0byBsb29rIGZvciBpdC4KICAgCjE5OTctMTAtMjkgMTI6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmgpOiBTVEFUVVNfS1dfT1BUSU9OQUwgLT4gU1RBVFVTX09QVElPTkFMCiAgIAoxOTk3LTEwLTI5IDExOjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wd2Fsay5jLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZGVsdGEuMQosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAoYWNjb25maWcuaCwgYXNuMS5jLCBtaWIuW2NoXSwgcGFyc2UuaCxhcHBzLyosZXJyb3JtaWIuYyxsb2FkYXZlLmMsCiAgICAgIGV4dGVuc2libGUuYywgZGlzay5jLCBzbm1wZGVsdGEqKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRoZSBub3cgd2VsbGtub3duIE5ldEJTRCBmaXgsCiAgICAgLSBTdW5PUzQgY2MgZG9lc24ndCBsaWtlIHVuc2lnbmVkIGxpdGVyYWxzIG9yIHN0cnRvdWwsCiAgICAgLSBhZGRlZCBhIGNoYXIgdmVyc2lvbiBvZiAiOyIsCiAgICAgLSBhZGRlZCBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBldGMKICAgICAtIGNoYW5nZWQgdGhlIGFwcHMgdG8gcHJpbnQgYWxsIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVyciwKICAgICAtIGNvbXBsZXRlZCB0aGUgYWNjZXNzIGFuZCBzdGF0dXMgdmFsdWVzIGluIHNubXBsaWIvcGFyc2UuaAogICAgIC0gYWRkZWQgYSByb3VnaGx5IHBhdGNoZWQgdmVyc2lvbiBvZiBzbm1wZGVsdGEuCiAgIAoxOTk3LTEwLTI5IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogb3BwcywgZm9yZ290IHRvIHB1dCBpbiBAZXhlY19wYXRoQC4KICAgCjE5OTctMTAtMjkgMTA6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluCiwgb3YvTWFrZWZpbGUuaW46CgogICAtIChjb25maWcqLCAqL01ha2VmaWxlLmluKToKICAgICAtIE1vdmUgc25tcGxpYnBhdGggdG8gQGRhdGFkaXJAIHdoaWNoIGRlZmF1bHRzIHRvIC91c3IvbG9jYWwvc2hhcmUvc25tcC4KICAgCjE5OTctMTAtMjkgMTA6MjUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sCiAgIG1hbi9taWJfYXBpLjMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBtaWJzL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4sIG1hbi8qKToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBwYXRocy4KICAgICAgIC0gKG1vZGlmaWVkIHRvIHBvaW50IGFnZW50IHRvIHNiaW5kaXIgaW5zdGVhZCBvZiBldGNkaXIpLgogICAKMTk5Ny0xMC0yOSAxMDowNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogcmVtb3ZlIHNwYWNlIGJlZm9yZSAlIHNpZ24uCiAgIAoxOTk3LTEwLTI5IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBmaXggcG9pbnRlciBwcm9ibGVtcyBmcm9tIG9sZCByZWFkX2NvbmZpZyBmb3JtIHRvIG5ldy4KICAgCjE5OTctMTAtMjkgMDk6NTcgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoZGlzay5bY2hdLCBzdHJ1Y3QuaCwgc2Vkc2NyaXB0LmluLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gYWxsb3cgYSBtaW5pbXVtIHBlcmNlbnRhZ2Ugb24gZGlzayBzcGFjZS4KICAgICAgIC0gKHdhcyBvcmlnaW5hbGx5IGEgbWF4aW11bSwgYnV0IEkgY2hhbmdlZCBpdCB0byBtaW5pbXVtIGluc3RlYWQpLgogICAKMTk5Ny0xMC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHN5cy9zZWxlY3QuaCBmb3IgYWl4LgogICAKMTk5Ny0xMC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6IHJlbW92ZSB1bnVzZWQgbmxpc3Qgc3RydWN0LgogICAKMTk5Ny0xMC0yOCAxNzoxMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU3ICkKICAgCjE5OTctMTAtMjggMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IFBhdGNoIGZyb20gTm9idW9fT2thYmVAeW9rb2dhd2EuY28uanA6CiAgICAgLSBmaXggdW53cmFwcGVkIGZvcGVuKCkgYnkgYWRkaW5nIHJldHVybiBOVUxMIGNoZWNrLgogICAKMTk5Ny0xMC0yOCAxNzowOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KTogZGVmaW5lIGJzZGkgYWdlbnQgdHlwZS4KICAgCjE5OTctMTAtMjggMTU6NDkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtIChjb25maWcqLCByb3V0ZV93cml0ZS5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSBmaXggcnRlbnRyeSBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgcHJvYmFibHkgbmV2ZXIuCiAgIAoxOTk3LTEwLTI4IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQva2VybmVsLmgsIGFnZW50L3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3JlYWRfY29uZmlnLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgKLCBhZ2VudC92YXJfc3RydWN0LmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hwdXguaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgKLCBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaAosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuaAosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmgKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKCouKi4qLiopOiByZW5hbWUgbWFjcm8gX19QIC0+IF9fVUNEX1AgdG8gcmVkdWNlIHN0dXBpZCBjb25mbGljdHMuCiAgIAoxOTk3LTEwLTI4IDE0OjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgY2hlY2tzIGZvciB0aGUgKmJzZCBncm91cHMuCiAgIAoxOTk3LTEwLTI4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKGFjY29uZmlnLmgsIG1pYi5jKTogdXNlICc7J3MgZm9yIERPUyBlbnYgcGF0aHMuCiAgIAoxOTk3LTEwLTI4IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zeXN0ZW0uYwosIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChhY2NvbmZpZy5oLCBzeXN0ZW0uW2NoXSwgc25tcC5jKTogbW92ZSBzdHJkdXAgZGVmIHRvIHN5c3RlbS5bY2hdLgogICAKMTk5Ny0xMC0yNyAxODozMSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU2ICkKICAgCjE5OTctMTAtMjcgMTg6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUgbWFjcm8gdG8gYWN0dWFsbHkgd29yay4KICAgCjE5OTctMTAtMjcgMTg6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBsaWIvKi5jKTogdXNlIHNubXBfc2V0X2RldGFpbCB0byBoYW5kbGUgbWFsbG9jL2ZyZWUgb2Ygc25tcF9kZXRhaWwuCiAgIAoxOTk3LTEwLTI3IDE4OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogcmVtb3ZlIGdvdHJvb3QgdmFyLgogICAKMTk5Ny0xMC0yNyAxODowNSAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wL2xpYnNubXAucGxnLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsIHNubXBnZXQvc25tcGdldC5kc3AKLCBzbm1wZ2V0L3NubXBnZXQucGxnLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AKLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQvc25tcHNldC5kc3AKLCBzbm1wc2V0L3NubXBzZXQucGxnLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsvc25tcHdhbGsuZHNwCiwgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAod2luMzIpOiAgYWRkIGZpbGVzIG9uIG1haW4gYnJhbmNoLgogICAKMTk5Ny0xMC0yNyAxODowMiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCB3aW4zMi5vcHQ6CgogICB3aW4zMiBmaWxlcwogICAKMTk5Ny0xMC0yNyAxNzo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IG1lcmdlIGJ1Z3M6IGVsc2UgY2hlY2sgYWdhaW5zdCBwZHUgY29tbWFuZCB0eXBlLgogICAKMTk5Ny0xMC0yNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHNubXBfYXV0aC5jKTogbWVyZ2UgYnVncy4gIE1pc3NpbmcgYnJhY2tldHMuCiAgIAoxOTk3LTEwLTI3IDE3OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtaXNzaW5nIGEgZWxzZSBzdGF0ZW1lbnQgKHNpZ2gpLgogICAKMTk5Ny0xMC0yNyAxNzo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kZXZpY2UuaCwgaHJfZGlzay5oLCBocl9maWxlc3lzLmgKLCBocl9uZXR3b3JrLmgsIGhyX3ByaW50LmgsIGhyX3Byb2MuaCwKICAgaHJfc3dpbnN0LmgsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvaHJfKi5oKTogcHJvcGVyIGluaXRfIHByb3RvdHlwZXMuCiAgIAoxOTk3LTEwLTI3IDE3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogdHdvIG1vZHVsZXMgZm9yIGV4dGVuc2libGUgY291bnQuCiAgIAoxOTk3LTEwLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gKHNubXBzdGF0dXMuYyk6IHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFpcmF0aW9uLgogICAKMTk5Ny0xMC0yNyAxNzowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMKLCBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLAogICBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMKLCBocl9zeXN0ZW0uYzoKCiAgIC0gKGhyXyouYyk6IEVSUk9SIC0+IEVSUk9SX01TRy4KICAgCjE5OTctMTAtMjcgMTY6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuW2NoXSk6IGZpeCBwZXJyb3IgbG9zc2VzIGZyb20gbWVyZ2UuCiAgIAoxOTk3LTEwLTI3IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHNubXBsaWIvdmlldy5jOgoKICAgLSAoKik6IG1lcmdlIG9mIFczMiBwb3J0IGFuZCBtYWluIHZlcnNpb24gYnJhbmNoLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgZmlsZSBzbm1wd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZmlsZSBzbm1wd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcDoKCiAgIGZpbGUgc25tcHRyYW5zbGF0ZS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZzoKCiAgIGZpbGUgc25tcHRyYW5zbGF0ZS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcDoKCiAgIGZpbGUgc25tcHN0YXR1cy5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZzoKCiAgIGZpbGUgc25tcHN0YXR1cy5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHNldC9zbm1wc2V0LnBsZzoKCiAgIGZpbGUgc25tcHNldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcDoKCiAgIGZpbGUgc25tcHNldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwOgoKICAgZmlsZSBzbm1wZ2V0bmV4dC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQucGxnOgoKICAgZmlsZSBzbm1wZ2V0bmV4dC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcDoKCiAgIGZpbGUgc25tcGdldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZzoKCiAgIGZpbGUgc25tcGdldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGc6CgogICBmaWxlIHNubXBidWxrd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3A6CgogICBmaWxlIHNubXBidWxrd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBmaWxlIGxpYnNubXAuZGVmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIGZpbGUgbGlic25tcF9kbGwuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZzoKCiAgIGZpbGUgbGlic25tcF9kbGwucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBmaWxlIGxpYnNubXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGc6CgogICBmaWxlIGxpYnNubXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIGZpbGUgd2luMzIuZHN3IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgZmlsZSBjb25maWcuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBmaWxlIHdpbjMyLm9wdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvKi5oKToKICAgICAtIG5ldyBjb25maWcgbWFjcm86ICBjb25maWdfYXJjaF9yZXF1aXJlKGFyY2gsIG1vZHVsZSkuCiAgICAgLSBtb3ZlZCBhcmNoIGRlcGVuZGFudCBtb2R1bGVzIChtZW1vcnksIGhwdXgsIGtlcm5lbF9zdW5vczUpIGxvYWRzCiAgICAgICBmcm9tIHRoZSBjb25maWd1cmUgaW50byB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCiAgIC0gKGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMpOgogICAgIC0gdHlwZWNhc3Qga2xvb2t1cCBjYWxscyBmb3IgZnJlZWJzZDIuCiAgIAoxOTk3LTEwLTIyIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCwgcmVhZF9jb25maWcuYywgZGlzay5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgLSBUeXBvJ3MgZml4ZWQgYnkgTmllbHMuCiAgIAoxOTk3LTEwLTIxIDEyOjM2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTUgKQogICAKMTk5Ny0xMC0yMSAxMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGRpZCBhIG1ha2UgZGVwZW5kLgogICAKMTk5Ny0xMC0yMSAxMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQuLgogICAKMTk5Ny0xMC0yMSAxMjozMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQgc2V0dXAuCiAgIAoxOTk3LTEwLTIxIDEyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oCiwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvZGlzay5oLCBtaWJncm91cC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuaCwgbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBtaWJncm91cC9wYXNzLmgsIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oCiwgbWliZ3JvdXAvcmVhZF9jb25maWcuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuaCwKICAgbWliZ3JvdXAvc3lzdGVtLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAoYWdlbnQvcmVhZF9jb25maWcuW2NoXSwgc25tcGQuYywgc25tcF92YXJzLmMsIG1pYmdyb3VwLyopOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcuW2NoXSB1cCBhIGxldmVsIHRvIGFsd2F5cyBiZSBjb21waWxlZCBpbi4KICAgCjE5OTctMTAtMjEgMTE6MDIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNCApCiAgIAoxOTk3LTEwLTIxIDExOjAxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGJlZ2lubmluZ3Mgb2YgTkVXUyB1cGRhdGVzLgogICAKMTk5Ny0xMC0yMSAxMTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIG1lbW9yeS5jCjoKCiAgIC0gKGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMpOiBjbG9zZSBvcGVuIGZpbGVzIG9uIGxpbnV4LgogICAKMTk5Ny0xMC0yMSAxMDo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWxsb3cgLXYgMmggYW5kIDJwIGZvciBwYXJ0eSBjb2RlLgogICAKMTk5Ny0xMC0yMSAxMDoxNSAgaGFyZGFrZXIKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KICAgCjE5OTctMTAtMjAgMTk6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkZWZpbmUgYXQgbGVhc3QgYmxhbmsgZnVuYyBubGlzdF9pbml0KCkgb24gbGludXguCiAgIAoxOTk3LTEwLTIwIDE5OjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIGxpbnV4J3MgT1MgdHlwZS4KICAgCjE5OTctMTAtMjAgMTg6MDEgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXhfZ2F0ZWQuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCBhZ2VudC9taWJncm91cC93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIHVjZF9zbm1wLmgsIHNtdXhfZ2F0ZWQuaCk6CiAgICAgLSBjcmVhdGVkIG5ldyB3cmFwcGVycyBmb3IgdGhlIHZhcmlvdXMgbW9kdWxlcyB0byBtYWtlIHRoZW0gZWFzeSB0bwogICAgICAgYWRkIGFuZCByZW1vdmUgYXMgbmVlZGVkLgogICAKMTk5Ny0xMC0yMCAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0LmMsIGhvc3QuaCwgaHJfZGV2aWNlLmMsCiAgIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMKLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLAogICBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLAogICBocl9zeXN0ZW0uYzoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgogICAKMTk5Ny0xMC0yMCAxNzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSRUFETUUsIHdvbWJhdC5jLCB3b21iYXQuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSwgd29tYmF0LltjaF0pOgogICAgIC0gZG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gcmVmbGVjdCBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB1c2FnZS4KICAgCjE5OTctMTAtMjAgMTc6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCiAgIAoxOTk3LTEwLTIwIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBwYXRjaCBhbGwgb3RoZXIgZW52LXZhcnMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCiAgIAoxOTk3LTEwLTIwIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBGcm9tIERhdmU6ICBwYXRjaCBERUZBVUxUX01JQlMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCiAgIAoxOTk3LTEwLTIwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBkb24ndCByZXBvcnQgYW4gZXJyb3IgaWYgeW91IGNhbid0IGZpbmQgYSBzbm1wZC5jb25mIGZpbGUuCiAgICAgLSBkb24ndCByZXBvcnQgYWxsIGxpbmVzIGFzIGFuIGVycm9yIChvcHBzKS4KICAgCjE5OTctMTAtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYykgZG9uJ3QgbnVsbCBsYXN0IGNoYXIgaW4gY29tbWFuZCBsaW5lLgogICAKMTk5Ny0xMC0yMCAxMTo1MSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaAosIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsCiAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmgsIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgKOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvc25tcCosIGFnZW50L21pYmdyb3VwLyouW2NoXSk6CiAgICAgLSBDcmVhdGVkIGEgbmV3IG1pYm1vZHVsZS5oIGNvbmZpZ3VyYXRpb24gbWFjcm8gY2FsbGVkCiAgICAgICBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB3aGljaCBjYW4gYmUgY2FsbGVkIHRvIHJlcXVlc3QgcGFyc2luZyBvZgogICAgICAgdGhlIHNubXBkLmNvbmYgZmlsZShzKSBvbiBhIHBlciBtb2R1bGUgYmFzaXMuCiAgICAgLSBBbGwgcmVsYXRlZCBwYXJzaW5nIGhhcyBiZWVuIHN0cmlwZWQgZnJvbSByZWFkX2NvbmZpZy5jIGFuZCBtb3ZlCiAgICAgICB0byB0aGVpciBjb3JyZWN0IG1vZHVsZSBpbnN0ZWFkLgogICAgIC0gTmV3IGZ1bmN0aW9uOiBjb25maWdfcGVycm9yKGNoYXIgKik6IHByaW50IGVycm9yIHdpdGggZmlsZSAmIGxpbmUgIy4KICAgICAtIGJhc2ljIC1XYWxsIGNsZWFudXBzIGluIGhyKiBhcyB3ZWxsIChub3QgbmVhcmx5IGRvbmUgeWV0KS4KICAgCjE5OTctMTAtMjAgMTE6NDUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0xMC0xNSAxODo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5oLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmgsIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuYwosIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmgKLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuaAosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jCjoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyKik6IEhvc3QgcmVzb3VyY2VzIG1pYiBmcm9tIERhdmUgU2hpZWxkLgogICAgIC0gbWlub3IgcGF0Y2hlcyBieSBtZSwgbW9zdGx5IHBvaW50ZXIgZXJyb3JzLgogICAtIChtZW1vcnkuYyk6IGZpeGVkIGEgbnVsbCBwb2ludGVyIHByb2JsZW0gdW5kZXIgbGludXguCiAgIAoxOTk3LTEwLTE1IDEyOjEyICBoYXJkYWtlcgoKICAgKiBtaWJzLy5jdnNpZ25vcmU6CgogICAtIChtaWJzLy5jdnNpZ25vcmUpOiAgYWRkZWQgTWFrZWZpbGUuCiAgIAoxOTk3LTEwLTE1IDEyOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwo6CgogICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOgogICAgIC0gY3JlYXRlIGFuZCB1c2UgbmV3IGZ1bmN0aW9uOiAgc25tcF9wZXJyb3IoY2hhciAqKQogICAgIC0gZnJlZSBhbGxvY2F0ZWQgc3BhY2Ugb2Ygc25tcF9kZXRhaWwgdXBvbiB1c2FnZSBieSBzbm1wX2FwaV9lcnJzdHJpbmcoKS4KICAgCjE5OTctMTAtMTUgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvdmlldy5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKTogUGF0Y2ggZnJvbSBOaWVsczoKICAgICAtIHdhcm5pbmcgZml4ZXMuCiAgICAgLSByZW1vdmUgdGhlIHByaW50ZidzIGZyb20gdGhlIGxpYnJhcnkgYW5kIHNldCBhIHNubXAgJ2Vycm5vJyBlcXVpdmFsZW50LgogICAKMTk5Ny0xMC0xNSAwOTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jOgoKICAgLSAodmlld19wYXJzZS5jLCBzbm1wX3ZhcnMuYyk6IEZyb20gTmllbHM6IHdhcm5pbmcgcmVtb3ZhbHMgYW5kIHN0YW5kYXJkaXphdGlvbi4KICAgCjE5OTctMTAtMTQgMTU6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMKLCBldmVudC5jLCBldmVudC5oLCBpbnRlcmZhY2VzLmMsCiAgIGtlcm5lbF9zdW5vczUuYywgbWVtb3J5LmMsIG1lbW9yeS5oLCBwYXJ0eV92YXJzLmMKLCByZWFkX2NvbmZpZy5jLCB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYwosIHZpZXdfdmFycy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvKi5jKTogWU1XUkFNRlNGTjoKICAgICAtICh5ZXQgbW9yZSB3YXJuaW5nIHJlbW92YWxzIGFuZCBtZW1vcnkgZnVuY3Rpb24gc3RhbmRhcmRpemF0aW9ucyBmcm9tIE5pZWxzKS4KICAgICAtIG1pbm9yIGxpbnV4L25ldGJzZC9ic2RpIGNsZWFuIHVwcy4KICAgCjE5OTctMTAtMTQgMTU6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEZyb20gRGF2ZSBTaGllbGRzOiByZWZlciByZWFkZXIgdG8gYW5vdGhlciBhbnN3ZXIgYXMgd2VsbC4KICAgCjE5OTctMTAtMTQgMTU6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oKTogZHluaXggZG9lc24ndCBoYXZlIG5ldC9yb3V0ZS5oLgogICAKMTk5Ny0xMC0xNCAxNToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IEZyb20gRGF2ZSBTaGllbGRzOgogICAgIC0gc2VsZiBjb250YWluZWQgbWliIC50eHQgZmlsZXMgd2l0aCBtdWx0aXBsZSBtb2R1bGVzLgogICAKMTk5Ny0xMC0xNCAxNToxNSAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IGRvYyBhZGRpdGlvbjogIGFkZF9taWJkaXIoKSByZXR1cm4gdmFsdWUuCiAgIAoxOTk3LTA4LTI1IDAwOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgbmV0YnNkLgogICAKMTk5Ny0wOC0yNSAwMDoyMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiBjaGVja2luIHZlcnNpb24uaC4KICAgCjE5OTctMDgtMjUgMDA6MjEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiB0eXBvIGluIGlmZGVmLgogICAKMTk5Ny0wOC0xNSAwNjo0NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0LCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUzICkKICAgCjE5OTctMDgtMTUgMDI6MzAgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc3lzdGVtLmMsIGFnZW50L3NubXBkLmMKLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoY29uZmlnKiwgc25tcGQuYywgc25tcF9jbGllbnQuW2NoXSwgc3lzdGVtLltjaF0pOgogICAgIC0gZml4IG1vcmUgbG9uZy9pbnQgcHJvYmxlbXMgb24gNjQgYml0IG1hY2hpbmVzIHVfbG9uZyAtPiBpbl9hZGRyX3QuCiAgICAgLSBDaGVjayBmb3IgU0lPQ0dJRkFERFIgaW4gc3lzL2lvY3RsLmggYW5kIHVzZSBpdCBpbiBnZXRfbXlhZGRyKCkgaWYKICAgICAgIGRlZmluZWQuCiAgIAoxOTk3LTA4LTE0IDA4OjIxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmlkIEMuIExhd3JlbmNlIGZvciBuZXRic2QgKiBic2Qvb3MgMi4wLgogICAKMTk5Ny0wOC0xNCAwODoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvcHJvYy5jOgoKICAgLSAocHJvYy5jKTogZG9uJ3QgdXNlIHNldGVycm9yc3RhdHVzKCkgaWYgbm90IHVzaW5nIHRoZSBlcnJvcm1pYi4KICAgCjE5OTctMDgtMTQgMDg6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IFBvaW50IG91dCB0aGF0IG1pYiBsaXN0IG11c3QgYmUgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgCjE5OTctMDgtMTQgMDg6MTUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKik6CiAgICAgLSBUeXBvJ3Mgd2hlbiBjb3B5aW5nIGluIGEgYXV0b2NvbmYgdGVzdC4KICAgICAtIEFkZCBlcnJvcm1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IChzaW5jZSBpdHMgbm8gbG9uZ2VyIHJlcXVpcmVkKS4KICAgICAtIGJhY2txdW90ZSBhIC4gaW4gYSBzZWQgcmVnZXhwIHRvIHdhdGNoIG91dCBmb3IgbW9kdWxlIG5hbWVzCiAgICAgICBiZWdpbm5pbmcgd2l0aCB0aGUgbGV0dGVyIG8uCiAgIAoxOTk3LTA4LTE0IDA3OjM3ICB3aGFyZGFrZQoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhcHBzL3NubXBidWxrd2Fsay5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChjb25maWcqLCBGQVEsIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvKi5jLCBhcHBzLyouYyk6CiAgICAgLSBQYXRjaCBmcm9tIERhdmlkIFBhdWwgWmltbWVybWFuOgogICAgICAgLSBwb3J0IHRvIEFJWCA0LjEuNS4KICAgICAgIC0gZml4IG1vcmUgdHlwZSBjYXN0aW5nIHByb2JsZW1zLgogICAKMTk5Ny0wOC0xNCAwMDo0NiAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYwosIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgbWFpbi5jKToKICAgICAtIGFkZCAtViB2ZXJzaW9uIGZsYWdlLgogICAKMTk5Ny0wOC0xMyAwODoxMCAgd2hhcmRha2UKCiAgICogdmVyc2lvbi5oLCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgKLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oLCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnCiwgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvcGFydHkuaDoKCiAgIC0gKHZlcnNpb24uaCwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlIHZlcnNpb24gc3RyaW5nIHRvIGEgZ2xvYmFsIGhlYWRlci4KICAgICAtIGluc2VydCBVU0lOR18qX01PRFVMRSBtYWNybydzIGluIG1hbnkgcGxhY2VzIHRvIG1ha2UgbW9kdWxlCiAgICAgICByZW1vdmFsIG1vcmUgcG9zc2libGUuICBZb3UgY2FuIG5vdyBjb21waWxlIHdpdGggYWxtb3N0IG5vIG1vZHVsZXMKICAgICAgIGluc3RhbGxlZC4KICAgCjE5OTctMDgtMTMgMDQ6NDcgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSAoc25tcHN0YXR1cy5jKTogb3B0YXJnL29wdGluZCBuZWVkIHRvIGJlIGRlY2xhaXJlZCB1bmRlciB1bHRyaXg0LgogICAKMTk5Ny0wOC0wNyAwMjozNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKToKICAgIC0gZml4IHN3YXAgb24gSFBVWCAxMC4yMAogICAKMTk5Ny0wOC0wNyAwMTozMyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgbWliZ3JvdXAvcHJvYy5jOgoKICAgLSAoa2VybmVsLmMsIHByb2MuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgLSBJbXBsZW1lbnQgcmVhbCBwcm9jZXNzIHRhYmxlIHdhbGtzIG9uIFVsdHJpeC4KICAgCjE5OTctMDgtMDcgMDE6MTAgIHdoYXJkYWtlCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmM6CgogICAtIChjb25maWcqLCBsb2FkLmMsIGRpc2suYywgcGFyc2UuYywgc25tcC5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIFVsdHJpeCBmaXhlcyBmb3Igc3RhdGZzLCBsb2FkYXZlLgogICAgIC0gaW1wbGVtZW50IHN0cmR1cCBpZiBub3QgZm91bmQgaW4gc3lzdGVtLgogICAgIC0gdGVzdCBmb3IgdGVzdCBmbGFncyBmb3Iga2VybmVsIGNoZWNraW5nLgogICAgIC0gd2F0Y2ggb3V0IGZvciBwcydlcyB0aGF0IHJldHVybiBlZ3JlcCB3aXRoIHRoZSBwcyBhcmcgb24gdGhlIGxpbmUuCiAgICAgLSB1cCBtYXhpbXVtIGRpc2tzIHRvIDUwLgogICAKMTk5Ny0wOC0wNyAwMDoyOSAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgYnkgYXBwcy4KICAgCjE5OTctMDctMjQgMjM6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEVkZHkgSi4gR3VybmV5OiAgdW5jb21tZW50IGdldHRpbWVvZmRheSgpIGNhbGwuCiAgIAoxOTk3LTA3LTAzIDIzOjM0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUyICkKICAgCjE5OTctMDctMDMgMjM6MzMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChzbm1wdHJhbnNsYXRlLmMsIG1pYi5bY2hdLCBwYXJzZS5bY2hdKToKICAgICAtIE5ldyBvcHRpb24gdG8gc25tcHRyYW5zbGF0ZSAoLWEpIHRvIG91dHB1dCBhIGFzY2lpIGR1bXAgb2YgdGhlIG1pYgogICAgICAgZGF0YWJhc2UgY2FwYWJsZSBvZiBiZWluZyB1c2VkIGJ5IHRoZSBwYXJzZXIgZm9yIHF1aWNrIE9JRCB0cmFuc2xhdGlvbnMuCiAgIAoxOTk3LTA3LTAxIDA4OjM3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxICkKICAgCjE5OTctMDctMDEgMDc6MjAgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgogICAKMTk5Ny0wNy0wMSAwNjo0MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGVycm9ybWliLmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgogICAKMTk5Ny0wNy0wMSAwNjowMiAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IEJldHRlciB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgdXNhZ2UoKSBzdGFuZGFyaXphdGlvbi4KICAgCjE5OTctMDctMDEgMDU6NDEgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oLCBpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGZpeCBmcmVlYnNkMyBzcGVjaWZpYyBwcm9ibGVtcyAoYmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBCaWxsIEZlbm5lcikuCiAgIAoxOTk3LTA3LTAxIDAxOjEwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBmaXggcHJvdG90eXBpbmcgZmFpbHVyZXMuCiAgIAoxOTk3LTA2LTMwIDA3OjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmM6CgogICAtIChtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYyk6IFN1Z2dlc3Rpb25zIGZyb20gTGF1a2thbmVuIE1hcmtrdSBOUkMvSGtpOgogICAgIC0gTWFsbG9jIHR5cGVjYXN0cyBhbmQgb3RoZXIgY29ycmVjdGlvbnMgaW4gY2FzdGluZy4KICAgCjE5OTctMDYtMzAgMDY6NTggIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCjoKCiAgIC0gKG1pYl9hcGkuMywgcGFyc2UuW2NoXSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBIYW5kbGUgbWliIG1vZHVsZSByZXBsYWNlbWVudHMgdGhyb3VnaCBuZXcgZnVuY3Rpb24gYW5kIHJlcGxhY2VtZW50IHRhYmxlLgogICAKMTk5Ny0wNi0zMCAwNjo0OSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKTogUGF0Y2ggZnJvbSB2bGFkQG1pc2VyeS5yb3NwcmludC5ydToKICAgICAtIGltcGxlbWVudCBtZW1vcnkgc2VjdGlvbiBvZiB1Y2QgbWliIG9uIGxpbnV4LgogICAKMTk5Ny0wNi0zMCAwNjozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtICh3b21iYXQuaCk6IGJldHRlciBkb2N1bWVudCBjb25maWdfbG9hZF9taWIoKSBleGFtcGxlLgogICAKMTk5Ny0wNi0zMCAwNjozMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgLSAoc25tcHRlc3QuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IGdldCAtPiBmZ2V0ICdcbicgcHJvYmxlbS4KICAgICAtIEFsc28gbWFrZXMgc3VyZSBpdCBoYW5kbGVzIHVwIGFuZCBsb3dlciBjYXNlcy4KICAgCjE5OTctMDYtMzAgMDU6NTQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYyk6IERvbid0IHB1dCAmIGluIGZyb250IG9mIG9zZjQgYWNfZW5hZGRyLgogICAKMTk5Ny0wNi0zMCAwNTo1MyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoYWdlbnQvc25tcF97YWdlbnQsdmFyc30uYywgYWxhcm0uYywgZXZlbnQuYywgYXBwcy8qLAogICAgICBzbm1wbGliL3NubXB7LF9hcGksX2F1dGh9LmMpOgogICAgICAtIEFkZGVkIGJhc2ljIChtb3N0bHkgY29uZm9ybWluZz8pIHYyYyBzdXBwb3J0LgogICAgICAtIE1lcmdlZCBhcmcgcGFyc2luZyBvZiBhcHBzLyogY2xpZW50cyBpbnRvIG9uZSBmaWxlLgogICAKMTk5Ny0wNi0yNiAyMzozOSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoc211eC5jKTogX19QIG1hY3JvcyB3ZXJlIGNhbGxlZCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cyAobmVlZGVkIChhcmdzKSkuCiAgIAoxOTk3LTA2LTIzIDIzOjQyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBuZWVkIDIgbGVhZGluZyAnLSdzIG9uIC0td2l0aC1taWItbW9kdWxlcyBmbGFnLgogICAKMTk5Ny0wNi0yMyAyMzo0MSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqKTogYnNkaTMgbmVlZHMgdG8gZGVmaW5lIGJzZGkyLCBub3QgaXRzZWxmIChkdWgpLgogICAKMTk5Ny0wNi0yMyAyMzo0MCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9obiBDaGFybHRvbiB0byBmaXggbGVhZGluZyBzcGFjZXMgaW4gc2Vkc2NyaXB0LgogICAKMTk5Ny0wNi0xMSAwNTo0NiAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogd2hvb3BzLgogICAKMTk5Ny0wNi0xMSAwNDo1MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBtYWtlIE1JQkZJTEVTIGVudiB2YXIgd29yayBjb3JyZWN0bHkuCiAgIAoxOTk3LTA1LTI2IDAyOjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBuaWVscyBCYWdnZXNlbiB0bzoKICAgICAtIGNsb3NlIG1pYmZpbGVzIGZvciBNSUJTPUFMTC4KICAgICAtIEFsbG93IFNZTlRBWCBEaXNwbGF5U3RyaW5nIChTSVpFKSBpbnNpZGUgT0JKRUNULVRZUEUuCiAgIAoxOTk3LTA1LTI2IDAxOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMiApCiAgIAoxOTk3LTA1LTI2IDAxOjU3ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUgZm9yIDMuMi4KICAgCjE5OTctMDUtMjYgMDE6NTYgIHdoYXJkYWtlCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChzbm1wY2hlY2suZGVmKTogbmV3IHZhcmlhYmxlcyB0byBzZXQgd2Fsay9nZXQvc2V0IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjE5OTctMDUtMjYgMDE6NTIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiB0cmFwIGxvbmcncyBiYWNrIHRvIGludHMsIGJhZCBzb2x1dGlvbi4KICAgCjE5OTctMDUtMjYgMDE6NTAgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoSU5TVEFMTCwgY29uZmlndXJlKTogZGVmYXVsdCBtaWJzIGxpc3RlZCBjb3JyZWN0bHkuCiAgIAoxOTk3LTA1LTIzIDA3OjM0ICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogTW9kaWZpeSB0byBub3RlIGRlZmF1bHQgbWlicy4KICAgCjE5OTctMDUtMjMgMDc6MjMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlOCApCiAgIAoxOTk3LTA1LTIzIDA0OjQwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogQ2hhbmdlIHRyYXAgdHlwZXMgZnJvbSBpbnQgdG8gbG9uZy4KICAgCjE5OTctMDUtMjMgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBTTk1QIHBlcmwgYWdhaW4uCiAgIAoxOTk3LTA1LTIzIDA0OjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggbXVsdGlwbGUgZnJlZXMgaW4gdjIgcGR1J3MuCiAgIAoxOTk3LTA1LTIzIDA0OjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggZW5kaWVubmVzIHByb2JsZW1zLgogICAKMTk5Ny0wNS0yMyAwNDozNiAgd2hhcmRha2UKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQ6CgogICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0LCBTTk1QdjItVEMudHh0KTogRnJvbSBOaWVsczogY2hhbmdlIGltcG9ydCBjbGF1c2VzLgogICAKMTk5Ny0wNS0yMyAwNDozNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpYW5uZXMgcHJvYmxlbXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM1ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogU2V0IGRlZmF1bHQgTUlCIGxpc3QuCiAgIAoxOTk3LTA1LTIyIDA0OjEzICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NMk0tTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IHJlc3RvcmVkLiAgR290IHRydW5jYXRlZC4KICAgCjE5OTctMDUtMjEgMDY6NDAgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0wNS0yMSAwNjozOCAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KICAgCjE5OTctMDUtMjEgMDE6MTMgIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKTogVXBkYXRlIGZvciAzLjIuCiAgIAoxOTk3LTA1LTIwIDA3OjUwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogY29kZSBmcm9tIERhdmUgU2hpZWxkOiBhZGQgYmFjayBpbiBmaW5kX25vZGUoKSBmb3IgcGVybCB1c2FnZS4KICAgCjE5OTctMDUtMjAgMDc6NTAgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogc25tcHNldCBzaG91bGQgY2hlY2sgYWdhaW5zdCBzaXplIGRlZmluZWQgaW4gbWliLgogICAKMTk5Ny0wNS0yMCAwMjoyNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjogIEZpeCBteSBjcHAgc3R1cGlkaXR5LgogICAKMTk5Ny0wNS0yMCAwMTowOCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU3ICkKICAgCjE5OTctMDUtMTkgMjM6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hdXRoLmM6CgogICAtIChtaWIuYywgc25tcF9hdXRoLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgogICAKMTk5Ny0wNS0xOSAyMzoxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGltcG9ydCBjYWxscy4KICAgCjE5OTctMDUtMTkgMjM6MTggIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBDb21tZW50IG91dCBPYmplY3RTeW50YXggaW1wb3J0LgogICAKMTk5Ny0wNS0xOSAyMzowMyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IE9ubHkgZG8gTWFydGluIEphY29ic3NlbidzIGZpeGVzIGZvciBmcmVlYnNkMi4KICAgCjE5OTctMDUtMTYgMDI6MjUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQcm90ZWN0IG1hbGxvYyBhZ2FpbnN0IDAgZXh0ZXJuYWwgaW1wb3J0cy4KICAgCjE5OTctMDUtMTUgMDc6NDMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC5jOgoKICAgLSAodWRwLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzZW46CiAgICAgLSBGaXggdWRwX2lucGNiIHN0cnVjdHVyZXMuCiAgIAoxOTk3LTA1LTE1IDA3OjI2ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgIC0gV29yZGluZyBhbmQgb3JkZXIgY2hhbmdlcyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgogICAKMTk5Ny0wNS0xNSAwNzoyMiAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAtIERpc3BsYXkgZGVmYXVsdHMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KICAgCjE5OTctMDUtMTUgMDc6MDEgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKGNvbmZpZyosIG1pYi5jKToKICAgICAtIENoYW5nZWQgZW52IHZhcmlhYmxlIE1JQkZJTEUgLT4gTUlCRklMRVMgKHNpbmNlIGl0IGlzIGEgbGlzdCBub3cpLgogICAgICAgKHdpbGwgYWNjZXB0IE1JQkZJTEUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KS4KICAgICAtIEJ5IGRlZmF1bHQsICpubyogYWRkaXRpb25hbCBtaWJmaWxlcyBhcmUgbG9hZGVkIChpZSwgbWliLnR4dCBpcyBubwogICAgICAgbG9uZ2VyIGxvYWRlZCkgYW5kIG11c3QgYmUgdHVybmVkIG9uIHRocm91Z2ggY29uZmlndXJlIG9yIHRoZSBlbnYgdmFyLgogICAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zIHRvIHNldCBkZWZhdWx0IE1JQlMsIE1JQkZJTEVTLCBNSUJESVJTLgogICAKMTk5Ny0wNS0xNSAwNjoyMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBBZGQgbmV3IG5vZGUgc3RydWN0dXJlIGVudHJpZXMuCiAgIAoxOTk3LTA1LTE1IDA1OjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogcGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGRlYWwgd2l0aCBtdWx0aXBsZSBtb2R1bGUgSUQncyBiZWluZyByZWZlcmVuY2VkIG9yIG5vZGVzIGRlZmluZWQuCiAgICAgLSBzdXByZXNzICJuYW1lIGNsYXNoIiB3YXJuaW5ncyBmb3IgYW5vbnltb3VzIG5vZGVzLgogICAKMTk5Ny0wNS0xNSAwMjozMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcHJvdG90eXBpbmcgYW5kIG51bGwgY2hlY2tpbmcuCiAgICAgLSBpZiBNSUJTIGlzIHNldCB0byBBTEwsIHBhcnNlIGV2ZXJ5dGhpbmcgZm91bmQuCiAgIAoxOTk3LTA1LTE1IDAyOjMxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1TTUkudHh0OgoKICAgLSAoU05NUHYyLVNNSS50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgY2NpdHQgLT4gMC4KICAgCjE5OTctMDUtMTUgMDI6MzAgIHdoYXJkYWtlCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgaW1wb3J0IGluZGVudGlmaWVycy4KICAgCjE5OTctMDUtMTUgMDI6MjkgIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgTUlCUyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIEFMTC4KICAgCjE5OTctMDUtMTUgMDI6MjggIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byByZWZlcmVuY2UgdGhlIG1ha2V0YXJnZXQgc2NyaXB0LgogICAKMTk5Ny0wNS0xNSAwMjoyMyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IHB1cmVseSBudW1lcmljIE9JRHMuCiAgIAoxOTk3LTA1LTE1IDAyOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBwYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gZm9yIEZyZWVCU0QKICAgCjE5OTctMDUtMTQgMDY6MDAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNiApCiAgIAoxOTk3LTA1LTE0IDA0OjQ1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6ICBUeXBlY2FzdCBtYWxsb2MuCiAgIAoxOTk3LTA1LTE0IDA0OjE3ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gT2RkYmpvcm4gU3RlZmZlbnNlbjoKICAgICAtIFByb3RlY3QgYWdhaW5zdCBiYXNoIG5lZWRpbmcgJzsncyBvbiBtdWx0aXBsZSBzdWJkaXIgbWFrZXMuCiAgIAoxOTk3LTA1LTE0IDA0OjEzICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogd2FybiBpZiBtaWIudHh0IGlzIGluc3RhbGxlZCBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4KICAgCjE5OTctMDUtMTQgMDI6NDEgIHdoYXJkYWtlCgogICAqIG1pYi50eHQsIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYi50eHQpOiByZW1vdmVkIG1pYi50eHQgZnJvbSBkaXN0cmlidXRpb24uICBObyBsb25nZXIgbmVlZGVkLgogICAKMTk5Ny0wNS0xMyAwNzoyMiAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoY29uZmlnKixtaWIuYyk6IE5ldyBjb25maWd1cmUgb3B0aW9uIC0td2l0aC1kZWZhdWx0LW1pYnM9Imxpc3Q6bGlzdCIuCiAgIAoxOTk3LTA1LTEzIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHVjZC1zbm1wLnR4dCAtPiBVQ0QtU05NUC1NSUIudHh0LgogICAKMTk5Ny0wNS0xMyAwNjozNiAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBVQ0QtU05NUC1NSUIudHh0CiAgIAoxOTk3LTA1LTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW92ZWQgZnJvbSB1Y2Qtc25tcC50eHQuCiAgIAoxOTk3LTA1LTEzIDA2OjA1ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhcmNoaXRlY3R1cmUgbGlzdCB1cGRhdGUuCiAgIAoxOTk3LTA1LTEzIDA2OjA1ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIElOU1RBTEwpOiBOZXcgZmxhZ3MgdG8gc2V0IHByb21wdGVkIHZhbHVlcyBpbnN0ZWFkIG9mIHByb21wdGluZy4KICAgCjE5OTctMDUtMTMgMDU6NDggIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogQ2hhbmdlZCBJRCB0byBVQ0QtU05NUAogICAKMTk5Ny0wNS0xMyAwMzowMyAgd2hhcmRha2UKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiByZW1vdmVkIHNubXB2Mi50eHQsIHJmYzEyNzEudHh0LgogICAKMTk5Ny0wNS0xMyAwMzowMiAgd2hhcmRha2UKCiAgICogbWlicy9zbm1wdjIudHh0OgoKICAgLSAoc25tcHYyLnR4dCk6IHJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAyOjU3ICB3aGFyZGFrZQoKICAgKiBtaWJzL3JmYzEyNzEudHh0OgoKICAgLSAocmZjMTI3MS50eHQpOiByZW1vdmVkLgogICAKMTk5Ny0wNS0xMyAwMTo1MiAgd2hhcmRha2UKCiAgICogbWlicy86IHVjZC1zbm1wLnR4dCwgdWNkLnR4dDoKCiAgIC0gKHVjZC50eHQpOiB3aG9vcHMuICBSZW1vdmVkLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9SRkMxMjEzLU1JQi50eHQ6CgogICAtIChSRkMxMjEzLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvUkZDMTE1NS1TTUkudHh0OgoKICAgLSAoUkZDMTE1NS1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1JGQzEyNzEtTUlCLnR4dDoKCiAgIC0gKFJGQzEyNzEtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItTTJNLU1JQi50eHQ6CgogICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVBBUlRZLU1JQi50eHQ6CgogICAtIChTTk1QdjItUEFSVFktTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9VRFAtTUlCLnR4dDoKCiAgIC0gKFVEUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1RDUC1NSUIudHh0OgoKICAgLSAoVENQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRNLnR4dDoKCiAgIC0gKFNOTVB2Mi1UTS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVNNSS50eHQ6CgogICAtIChTTk1QdjItU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1DT05GLnR4dDoKCiAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JUC1NSUIudHh0OgoKICAgLSAoSVAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dDoKCiAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvRXRoZXJMaWtlLU1JQi50eHQ6CgogICAtIChFdGhlckxpa2UtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy91Y2QudHh0OgoKICAgLSAodWNkLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JRi1NSUIudHh0OgoKICAgLSAoSUYtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMSAyMzo1MiAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtIChtaWJzL3VjZC1zbm1wLnR4dCk6IFBhdGNoIGZyb20gTWFyaW8gRGVGYXppbyB0byBmaXggdHlwb3MuCiAgICAgLSBjb21waWxlcyB1bmRlciBTTk1QYyA0LjFnLgogICAKMTk5Ny0wNS0xMSAyMzo0OSAgd2hhcmRha2UKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBtaWJfYXBpLjMuCiAgIAoxOTk3LTA1LTExIDIzOjQ4ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBSRUFETUUsIFRPRE86CgogICAtIChJTlNUQUxMLCBSRUFETUUsIFRPRE8pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KICAgCjE5OTctMDUtMTEgMjM6NDQgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiByZW1vdmVkIENDSEFDSyA/Pz8uCiAgIAoxOTk3LTA1LTExIDIzOjQzICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYzoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6ICBCU0RJMyBzcGVjaWZpYyBoZWFkZXJzIGFuZCBkZWZpbmVzLgogICAKMTk5Ny0wNS0xMCAwODoyMyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5jLAogICBtaWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHNubXBkLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRlZmF1bHQgdHJhcCBjb21tdW5pdHkuCiAgICAgLSBtdWx0aXBsZSB0cmFwIHNpbmtzLgogICAKMTk5Ny0wNS0xMCAwNzo1MiAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IE5ldyBmaWxlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTA1LTEwIDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIHVwZGF0ZS4KICAgCjE5OTctMDUtMTAgMDc6NDEgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkb24ndCBzdWJtaXQgYmxhbmsgYnVnLXJlcG9ydHMuCiAgIAoxOTk3LTA1LTA5IDE1OjUwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcyAoZXZlbiBiZXR0ZXIpLgogICAKMTk5Ny0wNS0wOSAxNTo0NiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMuCiAgIAoxOTk3LTA1LTA5IDE1OjI4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBuZWdhdGl2ZSBudW1iZXJzIGluIG1pYnMuCiAgIAoxOTk3LTA1LTA5IDE1OjAzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcgKG1vc3RseSkuCiAgIAoxOTk3LTA1LTA5IDE0OjUyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5bY2hdKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZy4KICAgCjE5OTctMDUtMDkgMTM6NDYgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogVXBkYXRlLgogICAKMTk5Ny0wNS0wOSAxMzo0NiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5jLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZQosIGNvbmZpZy5oLmluOgoKICAgLSAoc211eC5jLCBjb25maWcqKToKICAgICAtIGNoZWNrIGZvciBzZ3R0eS5oIGFuZCBwcm90b3R5cGUgYmV0dGVyLgogICAKMTk5Ny0wNS0wOSAxMzozOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBtaWIuYywgbWliLmgsIHBhcnNlLmMKLCBwYXJzZS5oOgoKICAgLSAobWliLltjaF0sIHBhcnNlLltjaF0sIE1ha2VmaWxlLmluKTogTmV3IHBhcnNlciBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gUnVuLXRpbWUgY29udHJvbCBvZiBpbml0aWFsIG1vZHVsZSBsb2FkaW5nCiAgICAgICAgICAgICAodXNlcyBlbnYgdmFyaWFibGVzIE1JQkRJUlMsIE1JQlMsIGFuZCBNSUJGSUxFKQogICAgIC0gRGVmaW5lZCBpbnRlcmZhY2VzIGZvciBsb2FkaW5nIG1vZHVsZXMgYW5kIHJldHJlaXZpbmcgZW50cmllcwogICAgIC0gTW9kdWxlIHNjb3Bpbmcgbm93IGluY2x1ZGVzIFRleHR1YWwgQ29udmVudGlvbnMKICAgICAtIFRva2VucyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5IG5vIGxvbmdlciByZXF1aXJlIGltcG9ydGluZyB0aGUKICAgICAgIGNvcnJlc3BvbmRpbmcgbW9kdWxlcwogICAKMTk5Ny0wNC0yMiAxMTo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU1ICkKICAgCjE5OTctMDQtMjIgMDg6NDMgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoY29uZmlnKiwgc211eC5jKTogQ2hlY2sgZm9yIGhlYWRlcnMgYW5kIGRlZmluZSBGRF9DT1BZIGlmIG5vdCBkZWZpbmVkLgogICAKMTk5Ny0wNC0yMiAwNzo0MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywKICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jOgoKICAgLSAoc25tcF9iZ3AuYywgc25tcF9yaXAyLmMsIHNubXBfb3NwZi5jLCBzbXV4LltjaF0pOgogICAgIC0gc3RhbmRhcmRpemUgaGVhZGVycyBmb3IgYXV0b2NvbmYuCiAgICAgLSBzbXV4X2luaXQoKSAtPiBpbml0X3NtdXgoKS4KICAgICAtIFNNVVhERUJVRyAtPiBET0RFQlVHICgtLWVuYWJsZS1kZWJ1Z2dpbmcgdHVybnMgdGhpcyBvbiBhdXRvbWF0aWNhbGx5KS4KICAgCjE5OTctMDQtMjIgMDY6NTEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMKLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oOgoKICAgLSAoc25tcF9iZ3AuW2NoXSwgc25tcF9yaXAyLltjaF0sIHNubXBfb3NwZi5bY2hdKToKICAgICAtIGNvbmZvcm0gdG8gbmV3IG1vZHVsZSBzdGFuZGFyZHMgb2YgY29kaW5nLgogICAKMTk5Ny0wNC0yMiAwNjo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29tbW9uX2hlYWRlci5oKTogcmVtb3ZlIGR1cGxpY2F0ZSAod2FybmluZykgVENQIGRlZmluZXMgb24gb3NmNCBzeXN0ZW1zLgogICAKMTk5Ny0wNC0yMiAwNjoyMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSRUFETUUuc211eCwgc211eC5jLCBzbXV4LmgsCiAgIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYzoKCiAgIC0gKFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jKToKICAgICAtIHNtdXggc3VwcG9ydCBmb3IgZ2F0ZWQgZnJvbSBSb2hpdCBEdWJlLgogICAKMTk5Ny0wNC0yMiAwNjowMiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgogICAKMTk5Ny0wNC0yMiAwNTo1OSAgd2hhcmRha2UKCiAgICogbWFrZXRhcmdldCwgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9rZXJuZWwuYwosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmxpbnV4LmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3RjcC5oLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaDoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgogICAKMTk5Ny0wNC0yMSAyMzo0MiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmFyaW91cyB1cGRhdGVzLgogICAKMTk5Ny0wMy0yNiAwODowNSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmM6CgogICAtIChtaWJncm91cC9zeXN0ZW0uYyk6IHJlcG9ydCBhZ2VudCB1cHRpbWUgcmF0aGVyIHRoYW4gc3lzdGVtIHVwdGltZS4KICAgCjE5OTctMDMtMjUgMDQ6MzAgIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogbWlub3IgZG9jIHVwZGF0ZSBmb3IgbmV3IGZsYWdzLgogICAKMTk5Ny0wMy0yNSAwMDozOSAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCBzeXNsb2NhdGlvbiBhbmQgc3lzY29udGFjdCBleGFtcGxlcy4KICAgCjE5OTctMDMtMjQgMDQ6NTYgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTI0IDAwOjUxICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBydW5zIG9uIGJzZGkgMi4xLgogICAKMTk5Ny0wMy0yNCAwMDo1MSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFdhdGNoIG91dCBmb3IgbXVsdGlwbGUgc3BhY2VzIGluIEMgZGVmcy4KICAgCjE5OTctMDMtMjQgMDA6NTAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChleGFtcGxlLmMsLmgpOiBOZXcgZXhhbXBsZSBtaWIgbW9kdWxlIGR1cGxpY2F0aW5nIHRoZSBwYXNzdGVzdAogICAgIHNjcmlwdCBpbiBDIGNvZGUuCiAgIAoxOTk3LTAzLTI0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogcHJvdG90eXBlIHdyaXRlIGZ1bmN0aW9uIGJldHRlci4KICAgCjE5OTctMDMtMTggMDc6NTMgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHNubXAuY29uZiAtPiBzbm1wZC5jb25mCiAgIAoxOTk3LTAzLTE4IDA3OjUyICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMTQgMDc6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xNCAwNDo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc2Vkc2NyaXB0LmluLAogICBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU0ICkKICAgCjE5OTctMDMtMTQgMDQ6NTQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIHVjZC1zbm1wLnR4dCk6IHJlY29nbml6ZSBuZXcgaG9zdHMgZm9yIHN5c09iamVjdElkLgogICAKMTk5Ny0wMy0xNCAwNDo1MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgYWdlbnQvc25tcGQuYwo6CgogICAtIChzbm1wZC5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHN5c3RlbS5bY2hdKToKICAgICAtIDY0Yml0IGZpeDogZ2V0X215YWRkcigpIHNob3VsZCByZXR1cm4gaW50IG5vdCBsb25nLgogICAKMTk5Ny0wMy0xNCAwNDo1MSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pOiBmaXggdHJhcCBieSBpbmNsdWRpbmcgb3B0aW9uYWwgLm8gZmlsZXMuCiAgIAoxOTk3LTAzLTE0IDAyOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2dyb3VwdmFycy5oOgoKICAgLSAoc25tcF9ncm91cHZhcnMuaCk6IGF4ZS4KICAgCjE5OTctMDMtMTQgMDI6MjAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyc19ldmVudC5oOgoKICAgLSAoc25tcF92YXJzX2V2ZW50LmgpOiBheGUuCiAgIAoxOTk3LTAzLTE0IDAyOjE4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTAzLTE0IDAyOjE3ICB3aGFyZGFrZQoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IHJ1biBvbiBzbm1wbmV0c3RhdCBkaXIgYWxzby4KICAgCjE5OTctMDMtMTQgMDI6MDcgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggc2Vkc2NyaXB0IHRvIGluY2x1ZGUgcyMgYXMgd2VsbCBhcyBzLyBjb21tYW5kcy4KICAgCjE5OTctMDMtMTQgMDI6MDEgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogVXBkYXRlZCB0byBpbmNsdWRlIC1jLy1DIGFuZCBTTk1QQ09ORlBBVEggZW52IHZhci4KICAgCjE5OTctMDMtMTQgMDE6NDkgIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogcmVtb3ZlIHRoZSBsYXN0IG9mIHRoZSBzZWQgc2NyaXB0IGRlZnMuCiAgIAoxOTk3LTAzLTE0IDAxOjQ4ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgY29uZmlnKiwgbWlicy9NYWtlZmlsZS5pbik6IGVuYWJsZSBtaWJzLyBtYWtlIGluc3RhbGwuCiAgIAoxOTk3LTAzLTE0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBtaWJzLzogcmZjMTI3MS50eHQsIHNubXB2Mi50eHQsIHVjZC1zbm1wLnR4dDoKCiAgIC0gKG1pYnMve3JmYzEyNzEsc25tcHYyLHVjZC1zbm1wfS50eHQpOiBOZXcgbWlicyBkaXJlY3RvcnkgZm9yIHN1Yi1taWJzLgogICAKMTk5Ny0wMy0xNCAwMDo0NyAgd2hhcmRha2UKCiAgICogbWliLnR4dDoKCiAgIC0gKG1pYi50eHQpOiBzdHJlYW1lZCBkb3duLgogICAKMTk5Ny0wMy0xNCAwMDo0NiAgd2hhcmRha2UKCiAgICogdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gbWlicy8uCiAgIAoxOTk3LTAzLTE0IDAwOjM4ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgZWNlLW1pYi5kZWYsIG1pYi50eHQsIG1pYklJLnR4dAosIHVjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCwgbWliLnR4dCwgTWFrZWZpbGUuaW4pOiBEb24ndCBidWlsZCBtaWIgZmlsZXMgYW55bW9yZS4KICAgCjE5OTctMDMtMTMgMDg6NDUgIHdoYXJkYWtlCgogICAqIG1ha2V0YXJnZXQsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXBuZXRzdGF0LjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAtIEEgbGFyZ2UgbnVtYmVyIG9mIHByb2JsZW1zIHdpdGggdGhlIExpbnV4IHBvcnQKICAgICAtIFNvbWUgcHJvYmxlbXMgd2l0aCBOZXRCU0QgMS4yQywgYnV0IGl0J3Mgc3RpbGwgbm90IHBlcmZlY3QKICAgICAtIE1vcmUgKHN5bWJvbGljKSBkZWJ1ZyBvdXRwdXQgZnJvbSBzbm1wZCwgd2hlbiB1c2luZyAtVi4gLWQgaW1wbGllcyAtVgogICAgICAgU2hvd3MgeW91IHZhcmlhYmxlIHJlcXVlc3RlZCBhbmQgdmFsdWUgcmV0dXJuZWQKICAgICAtIFJldHVybiBpcFJvdXRlTWFzayB1bmRlciBTb2xhcmlzCiAgICAgLSBzbm1wbmV0c3RhdCAtciBzaG93cyBub24tc3RhbmRhcmQgbmV0bWFza3MKICAgICAtIHNubXBuZXRzdGF0IC1vIChuZXcpIHNob3dzIGludGVyZmFjZSBvY3RldHMsIHdpdGhvdXQgZW5xdWlyaW5nIGZvciBtdHUKICAgICAgIGFuZCBvdGhlciB2YXJpYWJsZXMgbm90IHByZXNlbnQgZm9yIGEgQ2lzY28gRnJhbWUtUmVsYXkgdmlydHVhbCBjaXJjdWl0CiAgICAgICBpbnRlcmZhY2UKICAgICAtIHNubXBuZXRzdGF0IHRjcC91ZHAgcHJpbnQtb3V0IGhhZCBudG9ocy9odG9ucyBpbiB3cm9uZyBwbGFjZXMgZm9yIHBvcnQKICAgICAgIG51bWJlcnMgKHNob3dzIHVwIG9uIGxpdHRsZS1lbmRpYW4gYXJjaGl0ZWN0dXJlcykKICAgICAtIGFkZHMgYSBtYWtldGFyZ2V0IHNjcmlwdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHBhcmFsbGVsIHN5bWxpbmtlZAogICAgICAgc291cmNlIGRpcmVjdG9yeS4gVXNlZnVsIGlmIHlvdXIgbWFrZSBkb2VzIG5vdCBzdXBwb3J0IFZQQVRICiAgIAoxOTk3LTAzLTEzIDA4OjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiBmaXggcGF0aCB0byBhbGFybS5oLgogICAKMTk5Ny0wMy0xMyAwNzoxNyAgd2hhcmRha2UKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvKi9NYWtlZmlsZS5pbik6IGRlcGVuZCBwcm9ibGVtcyBmaXguCiAgIAoxOTk3LTAzLTEzIDA3OjEwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiByZW1vdmUgZHVwbGljYXRlIGdldGhvc3RuYW1lIGNoZWNrLgogICAKMTk5Ny0wMy0xMyAwNzowNyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgcnVsZSBmaXhlcyBhcyB3ZWxsLgogICAKMTk5Ny0wMy0xMyAwNjo0NSAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IE5ldyBtYWtlIGRlcGVuZCBydWxlcyB0byBzZXBlcmF0ZSBzeXN0ZW0vbm9uIGRlcGVuZGVudCBzdHVmZi4KICAgCjE5OTctMDMtMTMgMDY6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBzeXN0ZW0gZGVwZW5kZW50IG1vZHVsZXMuCiAgIAoxOTk3LTAzLTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHZpZXdfdmFycy5jLCBjb250ZXh0X3ZhcnMuYywKICAgYWNsX3ZhcnMuYzoKCiAgIC0gKHZpZXdfdmFycy5jLCBjb250ZXh0X3ZhcnMuYywgYWNsX3ZhcnMuYyk6IGRvbid0IGluY2x1ZGUgc25tcHYyX3ZhcnMuaC4KICAgCjE5OTctMDMtMTMgMDY6MzUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogaHB1eC5jLCBtZW1vcnkuYywgbWVtb3J5Lmg6CgogICAtIChocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBtaW5vciBwcm9ibGVtcy4KICAgCjE5OTctMDMtMTMgMDU6NDQgIHdoYXJkYWtlCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFjbC5jb25mLCBrZXJuZWxfc3Vub3M1LmMKLCBrZXJuZWxfc3Vub3M1LmgsIHJvdXRlX3dyaXRlLmMsCiAgIHNubXBfdmFyX3JvdXRlLmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oOgoKICAgLSAoa2VybmVsX3N1bm9zNS5bY2hdKTogbW92ZWQgdG8gbWliZ3JvdXAvLgogICAtIChyb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jKTogZGVsZXRlIGZyb20gYWdlbnQgZGlyLgogICAKMTk5Ny0wMy0xMyAwNTozNCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWNsX3ZhcnMuYywgYWxhcm0uYywKICAgYWxhcm0uaCwgY29tbW9uX2hlYWRlci5oLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYwosIGV2ZW50LmgsIHBhcnR5X3ZhcnMuYywgc25tcF92YXJzLmMsCiAgIHNubXBkLmMsIHZpZXdfdmFycy5jLCBtaWJncm91cC9hY2xfdmFycy5jLAogICBtaWJncm91cC9hY2xfdmFycy5oLCBtaWJncm91cC9hbGFybS5jLCBtaWJncm91cC9hbGFybS5oCiwgbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIG1pYmdyb3VwL2NvbnRleHRfdmFycy5oCiwgbWliZ3JvdXAvZXZlbnQuYywgbWliZ3JvdXAvZXZlbnQuaCwKICAgbWliZ3JvdXAvcGFydHlfdmFycy5jLCBtaWJncm91cC9wYXJ0eV92YXJzLmgsCiAgIG1pYmdyb3VwL3NubXB2Ml9zdWJ0cmVlcy5oLCBtaWJncm91cC9zbm1wdjJfdmFycy5oLAogICBtaWJncm91cC92aWV3X3ZhcnMuYywgbWliZ3JvdXAvdmlld192YXJzLmg6CgogICAtIChhZ2VudC8qLCBtaWJncm91cC8qKTogbW92ZWQgYWxhcm0sIGNvbnRleHQsIHZpZXdzLCBldmVudCwgcGFydHksCiAgICAgYW5kIGFjbCB2YXJpYWJsZSBncm91cHMgdG8gbWliZ3JvdXAvLgogICAKMTk5Ny0wMy0xMyAwMToxNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oOgoKICAgLSAoZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oKTogUmVtb3ZlZCBmaWxlLgogICAKMTk5Ny0wMy0xMyAwMDozNyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYzoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAtIChhcHBzLyouYywgcGFydHlfcGFyc2UuYyk6IHVzZSBpdC4KICAgCjE5OTctMDMtMTMgMDA6MzIgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB3YWxrLmM6CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIGluX2FkZHJfdCBhbmQgZGVmaW5lIGFzIHVfaW50ICgzMiBiaXRzKSBpZiBub3QgcHJlc2VudC4KICAgLSAoYXBwcy8qLmMsIHBhcnR5X3BhcnNlLmMpOiB1c2UgaXQuCiAgIAoxOTk3LTAzLTEyIDA4OjE1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcmV0dXJucyBmcm9tIGluZXRfYWRkciBhcmUgaW5fYWRkcl90ICh1X2ludCkgbm90IHVfbG9uZy4KICAgCjE5OTctMDMtMTIgMDY6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IGRvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMTIgMDY6NDggIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIHVwZGF0ZS4KICAgCjE5OTctMDMtMTIgMDY6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oCiwgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaDoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgc25tcGQuYywgc25tcF9hZ2VudC5jLCByb3V0ZV93cml0ZS5bY2hdLAogICAgIHZhcl9yb3V0ZS5bY2hdLCBpcC5bY2hdLCBzbm1wLltjaF0gLT4gc25tcF9taWIuW2NoXSk6CiAgICAgLSBNb3ZlZCBzbm1wIG1pYiBtb2R1bGUgLT4gc25tcF9taWIgZm9yIG5hbWluZyBjb25mbGljdHMgd2l0aCBzbm1wbGliLgogICAgIC0gTW92ZWQgc25tcF92YXJfcm91dGUuYyAtPiBtaWJncm91cC92YXJfcm91dGUuYwogICAgIC0gTW92ZWQgd3JpdGVfcm91dGUuYyAtPiBtaWJncm91cC93cml0ZV9yb3V0ZS5jCiAgIAoxOTk3LTAzLTEyIDAwOjI4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXBfbWliLmMsIHNubXBfbWliLmg6CgogICAtIChtaWJncm91cC9zbm1wLltoY10gLT4gbWliZ3JvdXAvc25tcF9taWIuW2hjXSk6IE1vdmVkIGR1ZSB0byBuYW1lIGNsYXNoZXMuCiAgIAoxOTk3LTAzLTExIDA4OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9hdC5oLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIHNubXBsaWIvbWliLmM6CgogICAtIChtaWJncm91cC8qKToKICAgICAtIHJlbW92ZSB0cmFpbGluZyA7cyBvbiBidW5jaGVzIG9mIGZ1bmN0aW9ucy4KICAgICAtIG1ha2UgZXZlcnl0aGluZyBidXQgaW50ZXJmYWNlcy5jIGNvbXBpbGUgb24gaXJpeDYuMy4KICAgLSAoY29uZmlnKixzeXN0ZW0uYyk6IHVzZSB1bmFtZSBhbmQgZ2V0aG9zdG5hbWUgaWYgYXZhaWxhYmxlLgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IERvbid0IGNoZWNrIF9LRVJORUwgaWYgaWZuZXQuaWZfbXR1IGFscmVhZHkgd29ya3MuCiAgIAoxOTk3LTAzLTExIDAwOjA0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IGZyZWVic2QyIHBhdGNoLgogICAKMTk5Ny0wMy0xMCAwODoyOCAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBzcGFjZSBwcm90ZWN0IG1vZHVsZXMgd2hlbiBjaGVja2luZyBmb3Igd2l0aCBncmVwLgogICAKMTk5Ny0wMy0xMCAwNzo1NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBOZXcgY29uZmlndXJlIG9wdGlvbjogIC0td2l0aC1vdXQtbWliLW1vZHVsZXM9Imxpc3QiLgogICAKMTk5Ny0wMy0wNyAwNzoxMSAgd2hhcmRha2UKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29tbW9uX2hlYWRlci5oKTogY29tbWVudCBvdXQgZW5kIG9mICNlbmRpZi4KICAgCjE5OTctMDMtMDcgMDc6MDkgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBtYWtlIG5ldyBjb25maWd1cmUgb3B0aW9ucyByZXNwZWN0ICQoc3JjZGlyKS4KICAgCjE5OTctMDMtMDcgMDY6MDIgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgogICAKMTk5Ny0wMy0wNyAwNjowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5oLCBkaXNrLmgsIGVycm9ybWliLmgsCiAgIGV4dGVuc2libGUuaCwgaWNtcC5oLCBpbnRlcmZhY2VzLmgsIGlwLmgsCiAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIHByb2MuaCwgc25tcC5oLAogICBzeXN0ZW0uaCwgdGNwLmgsIHVkcC5oLCB2ZXJzaW9uaW5mby5oLAogICB3b21iYXQuaDoKCiAgIC0gKG1pYmdyb3VwLyopOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCiAgIAoxOTk3LTAzLTA3IDA1OjAxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTMgKQogICAKMTk5Ny0wMy0wNyAwNDo1MSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtIChzbm1wbGliL3NubXAuYyk6IHJlbW92ZSBzZWNvbmQgY3R5cGUuaCBpbmNsdWRlLgogICAKMTk5Ny0wMy0wNyAwNDo1MCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogaWZkZWYgYSBmZXcgaGVhZGVycyBmb3IgY29ycmVjdCBtYWtlIGRlcGVuZC4KICAgCjE5OTctMDMtMDcgMDQ6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAobWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOiBkZXBlbmQuCiAgIAoxOTk3LTAzLTA3IDA0OjQ4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogcmVtb3ZlIGV4dHByb3RvLmggaW5jbHVkZS4KICAgCjE5OTctMDMtMDcgMDQ6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgZXh0ZW5zaWJsZS8gcmVtb3Zlcy4KICAgCjE5OTctMDMtMDcgMDQ6NDYgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IEZpeCBzZWRzY3JpcHQgZ2VuZXJhdGlvbi4gIHNpZ2guCiAgIAoxOTk3LTAzLTA3IDA0OjQ0ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoxOTk3LTAzLTA3IDA0OjQwICB3aGFyZGFrZQoKICAgKiByZW1vdmUtZmlsZXM6CgogICAtIChyZW1vdmUtZmlsZXMpOiBhZGQgbWFrZWRlcGVuZC5pbgogICAKMTk5Ny0wMy0wNyAwNDozOSAgd2hhcmRha2UKCiAgICogbWFrZWRlcGVuZC5pbjoKCiAgIC0gKG1ha2VkZXBlbmQuaW4pOiBuZXcgbWFrZSBkZXBlbmQgc2NyaXB0CiAgIAoxOTk3LTAzLTA3IDAyOjQyICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBnZW5lcmF0ZSBhIG1pYl9tb2R1bGVfY29uZmlnLmggd2l0aCBkZWZpbmVzIG9mIHdoYXRzIGJlaW5nIHVzZWQuCiAgIAoxOTk3LTAzLTA3IDAxOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaDoKCiAgIC0gKG1pYmdyb3VwL3N0cnVjdC5oKTogbW92ZWQgdG8gaGVyZS4KICAgCjE5OTctMDMtMDcgMDE6MzQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogaHB1eC5jLCBocHV4Lmg6CgogICAtIChocHV4LltjaF0pOiBBZGRlZCBocHV4IHNwZWNpZmljIGZpbGVzIGZyb20gZXh0ZW5zaWJsZSBkaXIuCiAgIAoxOTk3LTAzLTA3IDAxOjA3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAobWlibW9kdWxlL3ZlcnNpb250YWcpOiBtb3ZlZCBpbnRvIHBsYWNlIGZyb20gZXh0ZW5zaWJsZS8KICAgCjE5OTctMDMtMDcgMDA6NTggIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIG1pYmdyb3VwL2Rpc2suYywgbWliZ3JvdXAvZGlzay5oCiwgbWliZ3JvdXAvZXJyb3JtaWIuYywgbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBtaWJncm91cC9leHRlbnNpYmxlLmgsCiAgIG1pYmdyb3VwL2lwLmMsIG1pYmdyb3VwL2lwLmgsIG1pYmdyb3VwL2xvYWRhdmUuYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5oLCBtaWJncm91cC9wYXNzLmMsIG1pYmdyb3VwL3Bhc3MuaAosIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oLAogICBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zbm1wLmMsIG1pYmdyb3VwL3N5c3RlbS5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHNubXBfdmFycy5oLCBtaWJncm91cC8qKTogc3RyaWN0LXByb3RvdHlwaW5nIGFuZCBjb25maWdfcmVxdWlyZSgpcy4KICAgCjE5OTctMDMtMDcgMDA6MDcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1vcmUgbm9uLW1pYmdyb3VwIHNwZWNpZmljIGNhbGxzIGFuZCBoZWFkZXJzLgogICAKMTk5Ny0wMy0wNyAwMDowNSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBtaWJncm91cC9NYWtlZmlsZS5pbiwgbWliZ3JvdXAvZGlzay5jLAogICBtaWJncm91cC9kaXNrLmgsIG1pYmdyb3VwL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL2Vycm9ybWliLmgsIG1pYmdyb3VwL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC9sb2FkYXZlLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuaCwgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL21lbW9yeS5oLCBtaWJncm91cC9taWJkZWZzLmgsCiAgIG1pYmdyb3VwL21pYmluY2wuaCwgbWliZ3JvdXAvcGFzcy5jLCBtaWJncm91cC9wYXNzLmgKLCBtaWJncm91cC9wcm9jLmMsIG1pYmdyb3VwL3Byb2MuaCwKICAgbWliZ3JvdXAvcmVhZF9jb25maWcuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuaCwKICAgbWliZ3JvdXAvc3lzdGVtLmMsIG1pYmdyb3VwL3N5c3RlbS5oLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdmVyc2lvbmluZm8uaCwKICAgTWFrZWZpbGUuaW46CgogICAtIChleHRlbnNpYmxlLyogLT4gbWliZ3JvdXAvKik6IG1vdmVkIGV4dGVuc2libGUgc3R1ZmYgdG8gbWliIG1vZHVsZXMuCiAgIAoxOTk3LTAzLTA1IDA3OjI5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogWWVwLiBJdCB3YXMgd3JvbmcuICBUZXN0ZWQgYW5kIHdvcmtzIG5vdy4KICAgCjE5OTctMDMtMDUgMDc6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgaW4gc25tcF9wYXJzZS4gIFBvc3NpYmx5IHdyb25nLgogICAKMTk5Ny0wMy0wNSAwNzoxMyAgd2hhcmRha2UKCiAgICogYWdlbnQvYWNsX3ZhcnMuYzoKCiAgIC0gKGFjbF92YXJzLmMpOiBpbmNvcnJlY3RseSBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgZm9yIHdyaXRlX2FjbCgpLgogICAKMTk5Ny0wMy0wNSAwNjowNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IGFjbC5jLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYwosIGFzbjEuaCwgY29udGV4dC5jLCBjb250ZXh0LmgsCiAgIGNvbnRleHRfcGFyc2UuYywgbWQ1LmMsIG1kNS5oLCBtaWIuYywKICAgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgsIHBhcnR5LmMsIHBhcnR5LmgKLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLAogICBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHN5c3RlbS5oCiwgdmlldy5jLCB2aWV3Lmg6CgogICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KICAgCjE5OTctMDMtMDUgMDY6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjJfdmFycy5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgogICAKMTk5Ny0wMy0wNSAwNTo1OCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L2FjbF92YXJzLmMsCiAgIGFnZW50L2FsYXJtLmMsIGFnZW50L2FsYXJtLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L2NvbnRleHRfdmFycy5jLCBhZ2VudC9ldmVudC5jLAogICBhZ2VudC9ldmVudC5oLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvcGFydHlfdmFycy5jCiwgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBfdmFyc19ldmVudC5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L3ZpZXdfdmFycy5jOgoKICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCiAgIAoxOTk3LTAzLTA1IDAyOjM3ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBDb250cmlidXRlciBuYW1lIGFkZGl0aW9uLgogICAKMTk5Ny0wMy0wNSAwMjoyOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuaDoKCiAgIGZpbGUgc25tcGQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KICAgCjE5OTctMDMtMDUgMDI6MjggIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgZmlsZSBrZXJuZWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KICAgCjE5OTctMDMtMDUgMDI6MTcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEVsd3luIEIgRGF2aWVzOgogICAgIC0gRml4IGEgUERVIGNsb25pbmcgYnVnLgogICAKMTk5Ny0wMy0wNSAwMTowNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIC0gKG1pYmdyb3VwLy5jdnNpZ25vcmUpOiBuZXcgdG8gaWdub3JlIGNyZWF0ZWQgLmggZmlsZXMuCiAgIAoxOTk3LTAzLTA1IDAxOjAzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogcmVtb3ZlZCBzeXN0ZW0gbmxpc3QgKHVudXNlZCkuCiAgIAoxOTk3LTAzLTA1IDAwOjQ4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBBZGRlZCAubyBmaWxlIGxpc3QgdG8gYWdlbnQvTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KICAgICAtIG5ldyBmaWxlcyBnZW5lcmF0ZWQgYnkgY29uZmlndXJlOgogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmg6ICBBIGxpc3Qgb2YgbWliIC5oIGZpbGVzIGZvciBzbm1wX3ZhcnMuaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgbW9kdWxlICptdXN0KiBoYXZlIGEgLmggZmlsZSkKICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbml0cy5oOiBBIGxpc3Qgb2YgaW5pdF93b21iYXQoKSB0eXBlIGZ1bmN0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25seSBwcmVzZW50IGlmIGV4aXN0IGluIHdvbWJhdC5jKS4KICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9sb2Fkcy5oOiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgbmV3IG1hY3JvIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1pYi5oIGZpbGVzIGNhbGxlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19sb2FkX21pYigpLCB3aGljaCBzaW1wbGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxvYWRpbmcgb2YgdGhlIG1pYiBzZWN0aW9ucy4KICAgCjE5OTctMDMtMDQgMDY6NDQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChjb25maWcqLCBtaWJncm91cC9NYWtlZmlsZS5pbik6CiAgICAgLSBtaWJncm91cCBjb21waWxlIGxpc3QgaXMgYnVpbGQgYnkgY29uZmlndXJlIGFuZCBjYW4gYmUgYXVnbWVudGVkCiAgICAgICBieSB0aGUgLS13aXRoLW1pYi1tb2R1bGVzPSJsaXN0IG9mIG1vZHVsZXMiIGNvbW1hbmQgbGluZSB0byBjb25maWd1cmUuCiAgIAoxOTk3LTAyLTE3IDA3OjExICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTIgKQogICAKMTk5Ny0wMi0xNyAwNjozMiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUmVtb3ZlIE1BWF9OQU1FX0xFTkdUSCByZXF1aXJlbWVudHMuCiAgIAoxOTk3LTAyLTE3IDA2OjMxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pY21wLmM6CgogICAtIChpY21wLmMpOiBkb24ndCB1c2UgcmV0IHZhcmlhYmxlLCBzaW5jZSBpdCdzIG5vdCBkZWZpbmVkLgogICAKMTk5Ny0wMi0xNyAwNjozMCAgd2hhcmRha2UKCiAgICogYWdlbnQvZXZlbnQuYzoKCiAgIC0gKGV2ZW50LmMpOiBXYXMgcGFzc2luZyBhbiBpbnQgdG8gYmNvcHkgaW5zdGVhZCBvZiAmaW50LgogICAKMTk5Ny0wMi0xNyAwNjozMCAgd2hhcmRha2UKCiAgICogYWdlbnQvYWxhcm0uYzoKCiAgIC0gKGFsYXJtLmMpOiB0eXBlZGVmIGZvciBnZXRTdGF0UHRyKCkuCiAgIAoxOTk3LTAyLTE3IDA1OjUzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6ICBNYWtlIGRlcGVuZC4KICAgCjE5OTctMDItMTcgMDU6NDcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byByZW1vdmUKICAgICBBTlNJIHNwZWNpZmljIHJlcXVpcmVtZW50cy4KICAgCjE5OTctMDItMTcgMDU6NDYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICAtIChhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlKTogQWRkZWQuCiAgIAoxOTk3LTAyLTE3IDA1OjM4ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SRUFETUUKLCBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlX3N1YnRyZWVzLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvc25tcC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3NubXB2Ml9zdWJ0cmVlcy5oCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYyX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKGFnZW50L3NubXBfdmFycywgYWdlbnQvbWliZ3JvdXApOiBEYXZlIFNoaWVsZCBzcGxpdCB1cCB0aGUKICAgICBzbm1wX3ZhcnMuYyBhbmQgcmVsYXRlZCBmaWxlcyBpbnRvIHBpZWNlcyBmb3IgZWFzaWVyIG1hbmFnZW1lbnQuCiAgICAgVGhlIHJlc3VsdHMgb2YgaGlzIHdvcmsgYXJlIGluIHRoZSBuZXcgYWdlbnQvbWliZ3JvdXAgZGlyZWN0b3J5LgogICAKMTk5Ny0wMi0xMSAwODowMCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFJlc3Qgb2YgUGhpbGlwJ3MgcGF0Y2ggdG8gZml4IHNyY2RpciBwcm9ibGVtcyAoc2ggdmFycykuCiAgIAoxOTk3LTAyLTExIDA3OjQ0ICB3aGFyZGFrZQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBmaXggc3JjZGlyIHByb2JsZW1zLgogICAKMTk5Ny0wMi0xMSAwNzo0MiAgd2hhcmRha2UKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBkZXNjZW5kIHdoZW4gbWFrZSBjbGVhbmluZy4KICAgCjE5OTctMDItMTEgMDU6MTQgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMSApCiAgIAoxOTk3LTAyLTExIDA1OjEzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmUgbm9uLXN0YXRpYyBtZDVkaWdlc3QgcHJvdG90eXBlLgogICAKMTk5Ny0wMi0xMSAwNToxMSAgd2hhcmRha2UKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwgb3YvTWFrZWZpbGUuaW4KOgoKICAgLSAoe2xvY2FsLG1hbixvdn0vTWFrZWZpbGUuaW4pOiBSZW1vdmUgc3BhY2VzIGluIGZyb250IG9mIHRhYnMuCiAgIAoxOTk3LTAyLTExIDA1OjEwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5saW51eC5oKTogRml4ICNpZmRlZi4KICAgCjE5OTctMDItMTEgMDQ6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoYWxsIC5jIHdpdGggbWFpbigpLCBzbm1wbGliLyopOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAtIE1ha2UgYmV0dGVyIHN1cHBvcnQgZm9yIHNoYXJlZCBsaWIgcG9zc2liaWxpdGllcy4KICAgCjE5OTctMDItMTEgMDQ6MTIgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZSBwZW9wbGUgc3VwcGx5aW5nIHBhdGNoZXMgbGlzdC4KICAgCjE5OTctMDItMTEgMDQ6MTAgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluCiwgbWFuL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCpNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgIC0gRml4IGFsbCBNYWtlZmlsZS5pbidzIHRvIHN1cHBvcnQgYSBkaWZmZXJlbnQgc3JjIGRpci4KICAgCjE5OTctMDItMTEgMDM6NTQgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgRml4IGhwdXggc3BlY2lmaWMgcHJvYmxlbXMuCiAgIAoxOTk3LTAyLTExIDAzOjUwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5saW51eC5oKTogUmVtb3ZlZCBub24tbGludXggc3BlY2lmaWMgc3R1ZmYuCiAgIAoxOTk3LTAyLTExIDAzOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLAogICBzbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMubGludXguaCk6IFBhdGNoIGZyb20gSmVubmlmZXIgQnJheToKICAgICAtIEdldCBhZ2VudCB3b3JraW5nIG9uIGxpbnV4LgogICAKMTk5Ny0wMi0xMCAwMDo1NCAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBXaG9vcHMuCiAgIAoxOTk3LTAyLTEwIDAwOjUxICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zICkKICAgCjE5OTctMDItMTAgMDA6NTAgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgMy4xLjMKICAgCjE5OTctMDItMTAgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUmVtb3ZlIG1hbGxvYyBwcm90b3R5cGUsIG5vdyBpbiBzdGRsaWIuaC4KICAgCjE5OTctMDItMTAgMDA6MjIgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERhdmUgU2hpZWxkcycgYWRkaXRpb25zOiAgZmluZGluZyBtb3JlIGluZm8uCiAgIAoxOTk3LTAyLTA1IDA4OjQxICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTQgKQogICAKMTk5Ny0wMi0wNSAwODoyOSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdGNsIHN0dWZmLgogICAKMTk5Ny0wMi0wNSAwODoyNCAgd2hhcmRha2UKCiAgICogTkVXUywgbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKE5FV1MpOiByZW1vdmVkIHRjbCBzdHVmZi4KICAgCjE5OTctMDItMDUgMDg6MjAgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogQ2hhbmdlIHN1YmplY3QgbGluZSB0byBzaG9ydGVuIGFuZCBmb3JjZSBiZXR0ZXIgZGVzY3JpcHRpb24uCiAgIAoxOTk3LTAyLTA1IDA4OjEzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBubGlzdCBwcm9ibGVtcy4KICAgCjE5OTctMDItMDUgMDg6MDkgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9ncm91cHZhcnMuaCwKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wIG1pYiBncm91cCBjbGVhbnVwcy4KICAgICAtIHRyYXAgZ2VuZXJhdGlvbiBjbGVhbnVwcy4KICAgICAtIGFkZGVkIG1hbiBlbnRyaWVzIGZvciB0cmFwIGdlbmVyYXRpb24uCiAgICAgLSBpbXByb3ZlZCBhZ2VudCBkZWJ1Z2dpbmcgb3V0cHV0IHdpdGggYWdlbnQncyAtZCBmbGFnLgogICAKMTk5Ny0wMi0wNSAwODowNyAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFB1dCAvZGV2L2tzeW1zIGFoZWFkIG9mIC9rZXJuZWwvdW5peC4KICAgCjE5OTctMDItMDUgMDc6MzMgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogbWlzYyByZXF1ZXN0ZWQgYWRkaXRpb25zLgogICAKMTk5Ny0wMi0wNSAwNzozMyAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSB1cGRhdGVkIGFyY2hpdGVjdHVyZSBsaXN0cy4KICAgCjE5OTctMDItMDQgMDA6NDEgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEFkZGVkIFRPQyBhbmQgYXV0b3Igbm90ZXMgOy0pLgogICAKMTk5Ny0wMi0wNCAwMDozNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBTaW1vbjogY29tbWVudCAjaWZkZWYgZW5kaW5ncyBmb3IgQU5TSSBjb21wbGllcnMuCiAgIAoxOTk3LTAyLTA0IDAwOjM2ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRml4IGhwdXggcHJvYmxlbXMsICphZ2FpbiouCiAgIAoxOTk3LTAyLTA0IDAwOjM1ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IEFkZGVkIHN1Z2dlc3Rpb25zIGZyb20gdWNkLXNubXAtY29kZXJzLgogICAKMTk5Ny0wMi0wNCAwMDozNSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSdzIGxhdGVzdCByZXZpc2lvbi4KICAgCjE5OTctMDItMDMgMDQ6NTUgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMyApCiAgIAoxOTk3LTAyLTAzIDA0OjUzICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IG1vdmUgY29uZmlnLmNhY2hlIHRvIGVuZCBvZiBtZXNzYWdlLgogICAKMTk5Ny0wMi0wMyAwNDozMyAgd2hhcmRha2UKCiAgICogTkVXUywgUkVBRE1FLCBUT0RPOgoKICAgLSAoUkVBRE1FLCBORVdTLCBUT0RPKTogVXBkYXRlIGZvciAzLjEuMy4KICAgCjE5OTctMDItMDMgMDQ6MTUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6CiAgICAgLSBhZGRlZCBGQVEgcG9pbnRlci4KICAgICAtIERhdmUncyBFbmdsaXNoIHBvaW50ZXJzIChpZSwgaGUgcHJvb2ZlZCBpdCBhbmQgSSwgdWgsIGRvbid0Li4uKS4KICAgICAtIHN3aXRjaCBmdHAgbWlycm9yLgogICAgIC0gYnVnLXJlcG9ydCBzY3JpcHQgbWVudGlvbmVkLgogICAgIC0gSSAtPiBXZSwgbWUgLT4gdXMuLi4KICAgCjE5OTctMDItMDMgMDM6NTEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHJlbW92ZSBwcm9qZWN0IGhpc3RvcnkuCiAgIAoxOTk3LTAyLTAzIDAzOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogYWRkIHNvbWUgaXJpeCBhcHByb3ByaWF0ZSBpbmNsdWRlcy4KICAgCjE5OTctMDItMDMgMDM6NDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogdHlwbzogIG5lZWRzIGEgc3BhY2UgYmV0d2VlbiAnc3RhdGljJyBhbmQgJ3N0cnVjdCcuCiAgIAoxOTk3LTAyLTAzIDAyOjUwICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKToKICAgICAtIENoZWNrIGZvciBpcml4IDYuMiBoZWFkZXJzLgogICAgIC0gQ2hlY2sgaWYgX0tFUk5FTCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciBpcml4IGFuZCBpZm5ldCB1c2FnZS4KICAgICAtIFVzZSB0aGUgZm91bmQgVU5BTUUgcHJvZ3JhbSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHdlIGhhdmUgaXQuCiAgIAoxOTk3LTAyLTAzIDAxOjQ4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6ICBVc2UgQ0FOX1VTRV9TWVNDVEwgaW5zdGVhZCBvZiBic2RsaWtlLgogICAKMTk5Ny0wMi0wMyAwMTo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQKICAgICAtIE1hcmsgc3R1ZmYgZm9yIGxhdGVyIGNoYW5nZXMuCiAgIAoxOTk3LTAyLTAzIDAxOjQ1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgLSBDaGVjayBmb3Igd2hvYW1pLCBsb2duYW1lLgogICAgIC0gRG9uJ3QgcGFzcyBudWxsIGFyZ3MgdG8ga3NoLgogICAKMTk5Ny0wMi0wMyAwMTowMyAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjb21tZW50IG91dCBwb3NzaWJsZSBzZWN1cml0eSBwcm9ibGVtIGxpbmVzLgogICAKMTk5Ny0wMi0wMyAwMTowMiAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZG9tYWluIG5hbWUgZml4IGFuZCBlZGl0b3IgYm9tYiBvdXQuCiAgIAoxOTk3LTAxLTMxIDAyOjAzICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyB1cGRhdGUKICAgCjE5OTctMDEtMzEgMDE6NTkgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBjaGFuZ2VkIGFyY2ggdG8gaHBwYSBhbmQgbWFrZSBzdXJlIC9iaW4va3NoIGV4aXN0cy4KICAgCjE5OTctMDEtMzEgMDE6NDkgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXJlIG9mZiBrc2ggaWYgaHB1eCAmJiBzaC4KICAgCjE5OTctMDEtMzEgMDE6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjoKICAgICAtIENoYW5nZSBzb21lIHN5c3RlbSBzcGVjaWZpYyBpZmRlZnMgdG8gQ0FOX1VTRV9TWVNDVEwuCiAgICAgLSBGaXggY29tcGxpYXRpb24gZXJyb3JzIG9uIGJzZGkyLgogICAgIC0gRml4IHJvdXRpbmcgdGFibGVzIGZvciBzaW1pbGFyLgogICAKMTk5Ny0wMS0zMSAwMDo1NyAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGNvbmZpZy5oLmluLAogICBhY2NvbmZpZy5oOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBrc3RhdC5oIGFuZCBpZiBzeXNjdGwgY2FuIHJlYWQgdGhlIGJvb3R0aW1lLgogICAKMTk5Ny0wMS0yOSAwNDowOCAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgIC0gY2hhbmdlIHRvIGFkZHJlc3MgKGJhY2spIHRvIHVjZC1zbm1wLWNvZGVycy4KICAgICAtIEFkZCBhIHRyYXAgb24gc2lnbmFscyB0byByZW1vdmUgdG1wIGZpbGVzLgogICAKMTk5Ny0wMS0yOSAwMzo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAoa2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggdmFyaW91cyB3YXJuaW5ncy9lcnJvcnMuCiAgICAgLSBJbXBsZW1lbnQgcmVhbCB0cmFwcy4KICAgCjE5OTctMDEtMjkgMDM6MTEgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogdXBkYXRlCiAgIAoxOTk3LTAxLTI5IDAzOjExICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiByZXZpc2lvbiBvbmUhCiAgIAoxOTk3LTAxLTI5IDAzOjEwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBOZXcgcHMgb3B0aW9ucyB0byBjaGVjayBmb3IuCiAgIAoxOTk3LTAxLTI5IDAzOjA5ICB3aGFyZGFrZQoKICAgKiBhY2xvY2FsLm00OgoKICAgLSAoYWNsb2NhbC5tNCk6IEZpeCBjaGVja19zdHJ1Y3RfZm9yIHRvIGRlZmluZSB0aGluZ3MgY29ycmVjdGx5LgogICAKMTk5Ny0wMS0yOSAwMzowOCAgd2hhcmRha2UKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgLnNvZnR3YXJlLmRiLnNoCiAgIAoxOTk3LTAxLTI5IDAzOjA3ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6CiAgICAtIFNOTVBCTE9DSyA9ICFTTk1QQkxPQ0sKICAgCjE5OTctMDEtMjkgMDM6MDcgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KToKICAgIC0gQWx3YXlzIHVzZSBtdWx0aXBhcnQ6IHZlcnNpb24gaW5mbyBhbmQgY29uZmlnLmNhY2hlIGFyZSBvbmUuCiAgICAtIHJlLWFycmFuZ2VkIGEgYml0LgogICAgLSBBZGRlZCBpbnRyb2R1Y3Rpb24uCiAgICAtIEd1ZXNzIGF0IGRvbWFpbiBuYW1lIGlmIHBvc3NpYmxlLgogICAKMTk5Ny0wMS0yOSAwMTo0NyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIGJ1ZyByZXBvcnRpbmcgc2NyaXB0IGFkZAogICAKMTk5Ny0wMS0yMSAwMDoxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKToKICAgICAtIFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPgogICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgaW50ZXJmYWNlIG5hbWVzID4gMTAgcHJvcGVybHkuCiAgIAoxOTk3LTAxLTIwIDIzOjM0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtIChzbm1wX2NsaWVudC5oKTogcmVtb3ZlIHNlY29uZCAod3JvbmcpIGZ1bmN0aW9uIHByb3RvdHlwZS4KICAgCjE5OTctMDEtMjAgMjM6MzMgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogcmVtb3ZlIHNlY29uZCBjaGFyIGRlZmluaXRpb24uCiAgIAoxOTk3LTAxLTIwIDA3OjU5ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTEgKQogICAKMTk5Ny0wMS0yMCAwNzo0MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmgKOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9jbGllbnQuW2NoXSk6CiAgICAgLSBQYXRjaCBmcm9tIFBhdHJpY2UgVkFOQUNLRVIgPHZhbmFja2VyQHdvcmxkbmV0LmZyPjoKICAgICAgIC0gZml4IHJlcXVlc3QgZGVsZXRpb25zIGluIHNubXBfcmVhZCgpLgogICAgICAgLSBhZGRlZCByZXR1cm4gYXJndW1lbnQgdG8gc25tcF9hZGRfbnVsbF92YXIoKS4KICAgCjE5OTctMDEtMjAgMDY6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gPG1hcnRpbkBleG1hbmRhdG8uc2U+OgogICAgIC0gYWRkIGJzZGkgdG8gc29tZSAjaWZkZWZzLgogICAKMTk5Ny0wMS0yMCAwNjozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogUmVtb3ZlIEFOU0kgY3BwICNlbGlmJ3MuCiAgIAoxOTk3LTAxLTIwIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQXV0b2hlYWRlciBpcyBkdW1iOiAgUHV0IG1hY3JvIGRlZmluZXMgYmVsb3dlIEBCT1RUT01AIHN5bWJvbC4KICAgCjE5OTctMDEtMjAgMDY6MjIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAtIChzbm1wX2NsaWVudC5jKTogV2FpdCAxMjAgc2Vjb25kcyBiZWZvcmUgcmV0dXJuaW5nLgogICAKMTk5Ny0wMS0yMCAwNjowOCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wdHJhcGQuOCwgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZpZXcuaDoKCiAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgLSBpbXBsZW1lbnRlZDogaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZTcGVjaWZpYywKICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1hc2sgLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgdWRwLnVkcFRhYmxlLgogICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgIC0gaXBOZXRUb01lZGlhLgogICAKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAtIGxpbnV4IGFwcGxpY2F0aW9uIHN1cHBvcnQuCiAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgLSBNSUIgcGFyc2VyIGZpeGVzLgogICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgogICAKMTk5Ny0wMS0yMCAwNjowNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hbGFybS5oLCBhZ2VudC9ldmVudC5jLAogICBhZ2VudC9ldmVudC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2dyb3VwdmFycy5oLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCjoKCiAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgLSBpbXBsZW1lbnRlZDogaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZTcGVjaWZpYywKICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1hc2sgLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgdWRwLnVkcFRhYmxlLgogICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgIC0gaXBOZXRUb01lZGlhLgogICAKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAtIGxpbnV4IGFwcGxpY2F0aW9uIHN1cHBvcnQuCiAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgLSBNSUIgcGFyc2VyIGZpeGVzLgogICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgogICAKMTk5Ny0wMS0xNyAwMjo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOgogICAgIC0gVXNhZ2UoKSB1cGRhdGUgYW5kIHZlcnNpb24gcHJpbnRvdXQgdXBkYXRlLgogICAKMTk5Ny0wMS0xNyAwMjo1MSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMsIGV4dGVuc2libGUuYyk6CiAgICAgLSBOZXcgYXJnIC1jIEZJTEU6ICAJICAgUmVhZCBGSUxFIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGFzIHdlbGwuCiAgICAgLSBOZXcgYXJnIC1DOiAgICAgICAJICAgRG9uJ3QgcmVhZCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAgICAgLSBOZXcgZW52IFNOTVBDT05GUEFUSDogIFJlYWQgc25tcGR7LC5sb2NhbH0uY29uZiBmaWxlcyBpbjogc2VwZXJhdGVkIHBhdGguCiAgIAoxOTk3LTAxLTE0IDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUUsIFRPRE86CgogICAtIChQT1JUSU5HLCBSRUFETUUsIFRPRE8pOiAgQWRkZWQgdWNkLXNubXAtY29kZXJzIGFzIGRlZmF1bHQgbWFpbCBhZGRyZXNzLgogICAKMTk5Ny0wMS0wOSAyMzo0NiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUmVtb3ZlIGJyb2tlbiBGRF9TRVQgY29kZS4KICAgCjE5OTctMDEtMDkgMjM6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciAvZGV2L2tzeW1zIGZvciBzb2xhcmlzIGtlcm5lbC4KICAgCjE5OTctMDEtMDkgMjM6NDMgIHdoYXJkYWtlCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogIFVwZGF0ZSBmb3IgOTcuCiAgIAoxOTk2LTEyLTA1IDAwOjE5ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4yLjEgKQogICAKMTk5Ni0xMi0wNSAwMDoxOSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlLgogICAKMTk5Ni0xMi0wNSAwMDoxNCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0gKG1kNS5jKTogcmVtb3ZlIGFuc2kgc3BlY2lmaWMgQyBmZWF0dXJlcyAodW5zaWduZWQgY29uc3RhbnRzKS4KICAgCjE5OTYtMTItMDUgMDA6MTMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiAjaWZuZGVmIC0+ICNpZmRlZiBmb3Igc2lnc2V0LgogICAKMTk5Ni0xMi0wNCAwMTowMyAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMiApCiAgIAoxOTk2LTEyLTA0IDAxOjAxICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgogICAKMTk5Ni0xMi0wNCAwMDo0OSAgd2hhcmRha2UKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORywgUkVBRE1FKTogIFVwZGF0ZSBmb3IgcmVsZWFzZSAzLjEuMi4KICAgCjE5OTYtMTItMDQgMDA6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmM6CgogICAtIChhc24xLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgICAgLSBQYXJzZXIgZml4ZXMgZm9yIG11bHRpcGxlIG5vZGVzLgogICAgICAgLSBtZW1tb3ZlL2NvcHkgZGVsZXRlcy4KICAgCjE5OTYtMTItMDMgMDU6NTEgIHdoYXJkYWtlCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpOiBVc2VkIC0+IEF2YWlsIGluIG1lbW9yeSBzZXF1ZW5jZS4KICAgCjE5OTYtMTItMDMgMDI6MTQgIHdoYXJkYWtlCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIGxvY2FsL3Bhc3N0ZXN0OgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgcGFzc3Rlc3QpOiBNb3ZlIHBhc3N0ZXN0IHRvIHVjZGF2aXMgc3VidHJlZS4KICAgCjE5OTYtMTItMDMgMDI6MDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogRnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIEZpeCBhcnAgdGFibGUgZm9yIGhwdXguCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3IgYXJwaGQuYXRfbmV4dCBhbmQgdXNlIGluIGFib3ZlLgogICAKMTk5Ni0xMi0wMyAwMTowNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0gKG1kNS5jKTogUHV0ICdVJ25zaWduZWQgbWFya2VyIGF0IGVuZCBvZiBjb25zdGFudHMgdG8gcmVtb3ZlIGdjYyB3YXJucy4KICAgCjE5OTYtMTItMDMgMDE6MDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBXcm90ZSBBQ19DSEVDS19TVFJVQ1RfRk9SIGFuZCB1c2UgaXQuCiAgICAgLSBNYWtlIEFDX0NIRUNLX0lGTkVUX0ZPUiB1c2UgYWJvdmUuCiAgICAgLSBDaGFuZ2VxdW90ZSAnW10nIC0+ICcnIGFyb3VuZCBzZWQgZXhwcmVzc2lvbiB3aXRoIFtdcyAoLURvc3R5cGUpLgogICAKMTk5Ni0xMi0wMSAyMzo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBpZlBoeXNBZGRyIC0gaW4gSW50ZXJmYWNlX0dldF9FdGhlcl9CeV9JbmRleCwgSFAtVVggaGFzIHRoZSBzYW1lCiAgICAgICAgICAgRXRoZXJBZGRyIHN0cnVjdXJlIGFzIE1JUFMuCiAgIAogICAgIC0gaXBBZEVudElmSW5kZXggLSBpbiB2YXJfaXBBZGRyRW50cnksIHRoZXJlIGlzIGEgZmFsc2UgbWF0Y2ggb24KICAgICAgICAgICB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlLCBnaXZpbmcgdGhlIHdyb25nIGFuc3dlciBvZiB0aGUgZmlyc3QKICAgICAgICAgICBpbnRlcmZhY2UgaW5kZXguCiAgIAogICAgIC0gdWRwSW5FcnJvcnMgLSBpbiB2YXJfdWRwLCB0aGUgY291bnQgb2YgVURQIGVycm9ycyBvbWl0cyBkaXNjYXJkZWQKICAgICAgICAgICBwYWNrZXRzLiAgU29tZSBzeXN0ZW1zIChpLmUuIEhQLVVYKSBoYXZlIGV4dGVuZGVkIHRoZSB1ZHBzdGF0CiAgICAgICAgICAgc3RydWN0dXJlIHRvIGluY2x1ZGUgdGhlc2UuICBJJ3YgdHdlYWtlZCB0aGlzIGFuYWxvZ291cyB0byBhCiAgICAgICAgICAgc2ltaWxhciBhZGRpdGlvbiBpbiB0aGUgdGNwc3RhdCBzdHJ1Y3R1cmUuCiAgIAogICAgIC0gdGNwQ29ublN0YXRlIC0gSFAtVVggaGFzIGFkZGVkIGFuIGV4dHJhIHN0YXRlIGludG8gdGhlIGxpc3QsIHdoaWNoCiAgICAgICAgICAgdGhyb3dzIHRoZSByZXN0IG9mIHRoZW0gb3V0LgogICAKMTk5Ni0xMS0yNiAyMzo1NiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IFRydW5jYXRlIHN5c3RlbSBuYW1lcyBiZXlvbmQgWy1fXS4qLgogICAKMTk5Ni0xMS0yNiAyMzo0NSAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFJlc2V0IHNpZ25hbCBvbiBhbGwgdHlwZXMgb2Ygc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KICAgCjE5OTYtMTEtMjYgMjM6MzQgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gV2F0Y2ggb3V0IGZvciBpbnRlcmZhY2UgbmFtZXMgd2l0aCAnICcgaW4gdGhlbS4KICAgICAtIFJlc2V0IHNpZ25hbCBvbiBCU0Qgc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KICAgCjE5OTYtMTEtMjYgMjM6MjEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZS4KICAgCjE5OTYtMTEtMjYgMjM6MjEgIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogVHlwbzogIDMuMS4zIC0+IDMuMC4zLgogICAKMTk5Ni0xMS0yNiAyMzowNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERlZmF1bHQgc3lzbG9jIFVDRGF2aXMgLT4gVW5rbm93bi4KICAgCjE5OTYtMTEtMjYgMjM6MDIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gQ2hhbmdlIGNvbW1lbnRzIHRvIHJlZmxlY3Qgd2hhdCBpdHMgYWN0dWFsbHkgbG9va2luZyBhdC4KICAgICAtIFJlbW92ZSBpZmRlZiBhcm91bmQgaWZuZXQgZGVjbGFyYXRpb25zLgogICAKMTk5Ni0xMS0yNSAwMDoxNSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoY29uZmlnKiwgc25tcF9pbXBsLmgpOiBNb3ZlZCB2b2lkIC0+IGNoYXIgZGVmaW5lIHRvIGEgY29uZmlndXJlIHRlc3QuCiAgIAoxOTk2LTExLTI0IDIzOjQzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKHthZ2VudCxhcHBzfS9NYWtlZmlsZS5pbik6IFB1dCBsaWJzbm1wLmEgaW4gZnJvbnQgb2YgLWwgbGlicy4KICAgCjE5OTYtMTEtMjQgMDc6NDUgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjIucHJlMSApCiAgIAoxOTk2LTExLTI0IDA3OjI0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9rZXJuZWwuYywgSU5TVEFMTCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoa2VybmVsLmMsIGNvbmZpZyosIElOU1RBTEwpOiAgTmV3IGNvbmZpZ3VyZSBzd2l0Y2g6ICAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MuCiAgICAgLSBUaGUgYWdlbnQgZG9lc24ndCBleGl0IGlmIGl0IGNhbid0IG9wZW4gL2Rldi9rbWVtLgogICAKMTk5Ni0xMS0yMiAwNTozNyAgd2hhcmRha2UKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzOgoKICAgLSAoY29uZmlnKiwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IFVwZ3JhZGVkIHRvIGF1dG9jb25mIDIuMTEuCiAgIAoxOTk2LTExLTIyIDAwOjE0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgogICAKMTk5Ni0xMS0yMiAwMDowNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1lcmdlIGZyb20gRnJlZUJTRDItMy0xLTEuCiAgICAgLSBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCiAgIAoxOTk2LTExLTIxIDIzOjE4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogVHJhc2ggaW50ZXJmYWNlIGNhY2hpbmcuCiAgIAoxOTk2LTExLTE1IDA3OjQ0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogIEFkZCBiYWNrIGluICJyZWFkaW5nIG1pYi4uLiIgZGVidWdnaW5nIHN0YXRtZW50cy4KICAgCjE5OTYtMTEtMTUgMDc6NDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IE1ha2UgdW5hbWUgY2FsbHMgd29yayBjb3JyZWN0bHkuCiAgIAoxOTk2LTExLTE0IDA2OjI0ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcHRyYXAuYywgc25tcG5ldHN0YXQvaW5ldC5jLAogICBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAoc25tcHRyYXAuYywgaW5ldC5jLCByb3V0ZS5jKTogdHlwZWNhc3Rpbmcgd2FybmluZyBmaXhlcy4KICAgCjE5OTYtMTEtMTQgMDY6MTcgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOgogICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcC4KICAgICAtIENoZWNrIGZvciBzeXMvdmZzLmguCiAgIAoxOTk2LTExLTE0IDA2OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKToKICAgICAtICNpZmRlZiB0eXBvLgogICAgIC0gcHJvdG90eXBlIGZvciBJbnRlcmZhY2VfU2Nhbl9Jbml0KCkuCiAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wIGJlZm9yZSB1c2luZy4KICAgCjE5OTYtMTEtMDggMDg6MDYgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXhlZCAndG91Y2hpdCcuCiAgIAoxOTk2LTExLTA4IDA4OjAzICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogQ3JlYXRlZCBhICd0b3VjaGl0JyB0byB0b3VjaCBjb25maWcgZmlsZXMgcHJvcGVybHkuCiAgIAoxOTk2LTExLTA3IDA1OjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiB0eXBlY2FzdCBmb3Igc3ByaW50X29iamlkKCkuCiAgIAoxOTk2LTExLTA3IDA1OjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogaWZkZWYgdHlwb3MuCiAgIAoxOTk2LTExLTA3IDA1OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGlmZGVmJ3MgYXJvdW5kIHN0cmluZ3MuaC4KICAgCjE5OTYtMTEtMDcgMDU6MTUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBDaGFuZ2VkIGRlZmF1bHQgU05NUFYyQVVUSCB0byBTTk1QVjEuCiAgIAoxOTk2LTExLTA3IDAwOjM0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBCU0RpMiAzLjEuMSBicmFuY2ggbWVyZ2UuCiAgIAoxOTk2LTExLTA3IDAwOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMSwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmg6CgogICAtIE5pZWxzIDMuMS4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDcgMDA6MTUgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmg6CgogICAtIE5ldEJTRCAzLjEuMC4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDQgMDE6MDggIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Igbmxpc3QgaW4gLWxtbGQgKGlyaXgpLgogICAKMTk5Ni0xMS0wNCAwMDozMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiAgTW9yZSBpbmNsdWRlIGNoZWNrcyBmb3IgbGludXguCiAgIAoxOTk2LTEwLTMxIDIzOjU0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuICA8c2ltb25Ac3dpdGNoLmNoPjoKICAgICAtIGFzbl9idWlsZF91bnNpZ25lZF9pbnQsIGFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NDoKICAgICAgIC0gRG9uJ3QgdHJ5IHRvIHN0cmlwIEZGcyBmcm9tIHRoZSBoaWdoIGVuZCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgICAgICAtIFNraXAgdGhlIHN0cmlwcGluZyBjb2RlIGVudGlyZWx5IGlmIHdlIGhhdmUgdG8gYWRkIGEgbnVsbCBieXRlLgogICAKMTk5Ni0xMC0zMCAwNDo0OCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZjoKCiAgIC0gKGNvbmZpZyosIGVjZS1taWIuZGVmKToKICAgICAtIENoYW5nZSBleHRlbnNpYmxlIG1pYiBsb2NhdGlvbiB0byB1Y2RhdmlzIGVudGVycHJpc2UgbWliOiAyMDIxLgogICAgIC0gUmVtb3ZlIGFzc29jaWF0ZWQgcHJvbXB0aW5nIGZyb20gY29uZmlndXJlIHNjcmlwdCBhbmQgZXRjLgogICAKMTk5Ni0xMC0zMCAwNDo0NyAgd2hhcmRha2UKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORyxSRUFETUUpOiBBZGQgYSBuZXcgUE9SVElORyBmaWxlIHRvIHJlZmVyZW5jZSBhdXRvY29uZiBwbGVlLgogICAKMTk5Ni0xMC0xNiAyMzowMiAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMS5CU0RJICkKICAgCjE5OTYtMTAtMDkgMDc6NDYgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjEgKQogICAKMTk5Ni0xMC0wOSAwNzo0NSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogdXBkYXRlIGZvciAzLjEuMS4KICAgCjE5OTYtMTAtMDkgMDc6MjIgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIHRoYW5rcyBuYW1lLgogICAKMTk5Ni0xMC0wOSAwNzoxOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZyb206IGdhaEBiZWxsY29yZS5jb20gKEdhcnkgQS4gSGF5d2FyZCkKICAgICAtIEZyZWUgcGR1IGNvbW11bml0eSB0byBxdWVsY2ggcHVyaWZ5LgogICAKMTk5Ni0xMC0wOSAwMDozMCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6CiAgICAgLSBwcmludCBhIG5ldyBsaW5lIGluIHByaW50X2Vycm9yKCkgaWYgZGVidWdnaW5nIGlzIHR1cm5lZCBvbi4KICAgICAtIHRvc3NPYmplY3RJZGVudGlmaWVyKCk6IGNhdGNoIG11bHRpcGxlIGJyYWNrZXQgY2xhdXNlcyAoSUUgeyB7MCAwfSB9ICkuCiAgIAoxOTk2LTEwLTA5IDAwOjA0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKToKICAgICAtIFBhcnNlIE9CSkVDVC1JREVOVFkgYXMgT0JKRUNULUdST1VQIChzYXZlcyBvbmx5IGRlc2NyaXB0aW9uKS4KICAgICAtIENoYW5nZSBwcmludF9lcnJvcigpLCByZWFkX21pYigpIHRvIHJlZmxlY3QgZmlsZSBhbmQgY29ycmVjdCBsaW5lIG51bWJlci4KICAgCjE5OTYtMTAtMDcgMDQ6MjMgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IEFkZGVkIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uLgogICAKMTk5Ni0xMC0wNyAwNDoyMyAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBDaGFuZ2VkIHRvIHJlZmxlY3QgU05NUExJQi9taWJzLgogICAKMTk5Ni0xMC0wNyAwMzowNiAgd2hhcmRha2UKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiAgQWRkZWQgdWNkLXNubXAudHh0CiAgIAoxOTk2LTEwLTA3IDAzOjAwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgLSB0aW1lc3RhbXAgc3RhbXAtaCBhdCBlbmQuCiAgICAgLSBlbWFjcyBsb2NhbCB2YXJzLgogICAKMTk5Ni0xMC0wNyAwMjoyMiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBhZGRlZCAtLXJlY2hlY2sgdG8gY29uZmlnLnN0YXR1cyBjYWxsIHRvIHJlZ2VuZXJhdGUgc2VsZi4KICAgICAtIENoYW5nZWQgZWNlLW1pYi50eHQgLT4gdWNkLXNubXAudHh0IGFuZCBpbnN0YWxsIChhbmQgZ2VuZXJhdGUpIHByb3Blcmx5LgogICAKMTk5Ni0xMC0wNyAwMToxMSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBzbm1wIHZlcnNpb24gY2hlY2sgb24gZXJyb3IgcmV0dXJuIGZyb20gc2V0LgogICAKMTk5Ni0xMC0wNyAwMDo1MiAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGNvcnJlY3RseSBmb3IgZ2V0L3NldG1udGVudC4KICAgCjE5OTYtMTAtMDcgMDA6MDEgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBNaWIgaW5zdGFsbGF0aW9uIGNoYW5nZWQgdG8gcmVmbGVjdCBuZXcgbWliIGRpcmVjdG9yeS4KICAgCjE5OTYtMTAtMDYgMjM6NDkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiAgUHJvcGVyIGF1dG9jb25mIGRpcmVudCBoZWFkZXJzLgogICAKMTk5Ni0xMC0wNiAyMzo0MSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6ICBOb3cgbG9hZHMgYWxsIG1pYnMgKGZpbGVzKSBpbiB0aGUgZGlyZWN0b3J5IFNOTVBMSUIvbWlicy4KICAgCjE5OTYtMTAtMDQgMDI6MDEgIHdoYXJkYWtlCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGxpYiAtPiBsaWIvc25tcCBwYXRoIGNvcnJlY3Rpb24gaW4gRklMRVMgc2VjdGlvbi4KICAgLSAoc25tcGQuMS5kZWYpOgogICAgIC0gQWRkZWQgYSBGSUxFUyBzZWN0aW9uLgogICAgIC0gR2VuZXJhbCBjbGVhbiB1cC4KICAgCjE5OTYtMTAtMDQgMDE6NDYgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6CiAgICAgLSBDbGVhbmVkIHVwIG1hbiBwYWdlIGZvcm1hdHRpbmcuCiAgICAgLSBBZGRlZCBub3RlIGFib3V0IFNOTVBzZXQgY29tbXVuaXR5IHN0cmluZ3MuCiAgICAgLSBtaW5vciBwcm9vZi1yZWFkaW5nIChtYWpvciBwcm9vZmluZyBuZWVkZWQgc3RpbGwpLgogICAgIC0gUmUtb3JnYW5pemVkIGEgYml0LgogICAKMTk5Ni0xMC0wNCAwMTo0NCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgZnJvbSBzZWRzY3JpcHQgd2hlbiB1c2luZyBicm9rZW4gY3BwIChnY2MpLgogICAKMTk5Ni0xMC0wNCAwMTo0MyAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBBZGRlZCBzbm1wZ2V0L3NldCB0byBwYXNzIGV4YW1wbGUuCiAgIAoxOTk2LTEwLTAzIDA4OjEwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9pbXBsLmgpOiAgVHVybiBvbiBvbGQgQ01VIGRlYnVnZ2luZyBzdGF0bWVudHMgd2l0aCAtLWVuYWJsZS1kZWJ1Z2dpbmcuCiAgIAoxOTk2LTEwLTAzIDA4OjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOgogICAgIC0gTWFrZSBhZ2VudCBwcm9wZXJseSBjaGVjayBzbm1wc2V0IGV4aXQgY29kZXMgYW5kIHVzZSB0aGVtIChvbiBDT01NSVQpLgogICAKMTk5Ni0xMC0wMSAwODoyOCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgcmVhZF9jb25maWcuYyk6CiAgICAgLSBDaGVjayBmb3IgbW50ZW50LmggYW5kIGluY2x1ZGUgaXQuCiAgICAgLSBDaGVjayBmb3IgL2V0Yy9tbnR0YWIgb3IgL2V0Yy9tdGFiIGFuZCB1c2UgYXBwcm9wcmlhdGVseS4KICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBwaWNrIGdldG1udGVudCBvdmVyIGdldGZzZmlsZSBpZiBib3RoIGFyZSBhdmFpbGFibGUuCiAgICAgLSBkZWJ1ZyBjbGVhbnVwIChvZmlsZSAtPiBzdGRlcnIsIGNoZWNrIGZvciBET0RFQlVHIGluc3RlYWQgb2YgY29uc3QgdmFyKS4KICAgCjE5OTYtMTAtMDEgMDc6MzAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IEZyb20gSm9lIE1hcnpvdDoKICAgICAtIGFsbG93cyB0aGUgQ01VIGxpYiB0byByZXRhaW4gdGhlIFRDIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBhCiAgICAgICBwYXJ0aWN1bGFyIG9iamVjdC4gSW4gcGFydGljdWxhciB0aGlzIGFsbG93cyBEaXNwbGF5U3RyaW5ncyB0byBiZQogICAgICAgZGlmZmVyZW50aWF0ZWQgZnJvbSBPY3RldFN0cmluZ3Mgd2hlbiB0aGV5IGFyZSBsb29rZWQgdXAgaW4gdGhlCiAgICAgICBNaWIgVHJlZS4KICAgCjE5OTYtMDktMjUgMDU6MTQgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogZnJlZWJzZDIgdHlwZWNhc3QuCiAgIAoxOTk2LTA5LTI0IDA4OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IHR5cG8gZml4aW5nIGEgdHlwbyAoc2lnaC4uKS4KICAgCjE5OTYtMDktMjQgMDg6MDIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBNb3ZlZCBhIHZhcmlhYmxlIGRlY2xhaXJhdGlvbi4KICAgCjE5OTYtMDktMjQgMDc6NTkgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IHR5cG9zLgogICAKMTk5Ni0wOS0yNCAwNzo1NCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOiBBZGRlZCBzeXMvc2VsZWN0LmggZm9yIEFJWC4KICAgCjE5OTYtMDgtMzAgMDI6NTEgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IE1vcmUgbWlub3IgYnVncyBsaXN0ZWQKICAgCjE5OTYtMDgtMzAgMDI6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1hbGxvYyBwcm90b3R5cGUgZHVlIHRvIGNvbmZsaWN0aW9ucy4KICAgCjE5OTYtMDgtMzAgMDE6MTUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKICAgCjE5OTYtMDgtMzAgMDA6MzQgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjAuMSApCiAgIAoxOTk2LTA4LTMwIDAwOjM0ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChORVdTLCBDaGFuZ2VMb2cpOiBVcGRhdGVkIGZvciAzLjEuMC4xCiAgIAoxOTk2LTA4LTMwIDAwOjI0ICB3aGFyZGFrZQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6ICBBZGRlZCBrZXJuZWxfc3Vub3M1Lm8gdG8gc25tcHRyYXAgZm9yIGdldEtzdGF0LgogICAKMTk5Ni0wOC0zMCAwMDoyMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6IHBhdGNoIHNjcmV3ZWQgdXAuCiAgIAoxOTk2LTA4LTMwIDAwOjIyICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHJlbW92ZWQgLVhzIGZsYWcgZm9yIGdjYyBvbiBzb2xhcmlzLgogICAgIC0gbG9nZmlsZSBjaGVja3MgZm9yIGV4aXN0YW5jZSBvZiAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCiAgIAoxOTk2LTA4LTI5IDA3OjI5ICB3aGFyZGFrZQoKICAgKiBSRUFETUUsIFRPRE86CgogICAtIENoYW5nZWQgbXkgZW1haWwgYWRkcmVzcyB0byBteSBuZXcgb25lLgogICAKMTk5Ni0wOC0yOSAwNzoyMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGF1dG9jb25mKiwgc25tcF92YXJzLmMpOiBSZW1vdmVkIHNvbWUgc29sYXJpcyBpZmRlZnMuCiAgIAoxOTk2LTA4LTI5IDA3OjAzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogUmVtb3ZlZCBTVlI0IGlmZGVmcwogICAKMTk5Ni0wOC0yOSAwNjo1OCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIChzbm1wc3RhdHVzLmMpOiBQYXRjaCBmcm9tIFRyZXZvciBCb3VyZ2V0IDx0Ym91cmdldEBxdWFsY29tbS5jb20+CiAgICAgLSBtYWxsb2Mgc3lzZGVzYyBpbnN0ZWFkIG9mIGFzc3VtaW5nIDwgMTI4IGJ5dGVzLgogICAKMTk5Ni0wOC0yOSAwNjowOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIGdjYyB3YXJuaW5ncyBOVUxMIC0+IDAKICAgCjE5OTYtMDgtMjkgMDY6MDcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIHNubXB0cmFuc2xhdGUgYW5kIG90aGVyIGFwcHMgdGhhdCBuZWVkIGl0LgogICAKMTk5Ni0wOC0yOSAwNjowNiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gcHJvdG90eXBlcyBmb3IgZ2NjIHdhcm5pbmdzCiAgIAoxOTk2LTA4LTI5IDA2OjA2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHVjaGFyKHMpIGNhbid0IGJlIGxlc3MgdGhhbiAwLgogICAKMTk5Ni0wOC0yOSAwNjowMyAgd2hhcmRha2UKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwLjE6CgogICAtIChtYW4vc25tcHRyYXAuMSk6ICBhZGRlZCBieSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAKMTk5Ni0wOC0yOSAwNTo1OSAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgc25tcHRyYXBkLmMsIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHNldCBleGl0IGNvZGVzIG9mIDAgZm9yIGFsbCBhcHBzLgogICAgIC0gUmVtb3ZlZCBTVlI0ICNpZmRlZnMuCiAgICAgLSBHcmVhdGx5IGltcHJvdmVkIHNubXB0cmFwLgogICAKMTk5Ni0wOC0yNyAwMTowNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYXV0b2NvbmYqKToKICAgICAtIEZyZWVCU0QgYWRkaXRpb25zLgogICAgIC0gTmV3IGtlcm5lbCBsb2NhdGlvbjogIC9rZXJuZWwgKGljaykuCiAgICAgLSBMb2cgZmlsZSBkZWZhdWx0IGludGVsbGlnZW50bHkgY2hlY2tzIGZvciAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCiAgICAgLSBDaGVja3MgZm9yIGdldGxvYWRhdmcoKS4KICAgCjE5OTYtMDgtMjcgMDE6MDAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBNb3JlIHdhcnBlZCBGcmVlQlNEIGNoYW5nZXMKICAgCjE5OTYtMDgtMjcgMDA6MzggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgogICAKMTk5Ni0wOC0yNyAwMDowMSAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6CiAgICAgLSBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgICAgLSBtb3JlIGF1dG9jb25mIGNvbXBsZXRlOiBwYXRocyB0byBsaWJyYXJpZXMgYW5kIGtlcm5lbCBsb2NhdGlvbi4KICAgCjE5OTYtMDgtMjYgMjM6NDcgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IEZpeCBieXRlIG9yZGVyIHByb2JsZW0gKGNvbnZlcnQgdG8gbmV0d29yayBiZWZvcmUgc2VuZGluZykuCiAgIAoxOTk2LTA4LTI2IDA3OjU3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGV2ZW50LmMsIGtlcm5lbC5jLCByb3V0ZV93cml0ZS5jOgoKICAgLSAoZXZlbnQuYywga2VybmVsLmMsIHJvdXRlX3dyaXRlLmMpOiBGcmVlQlNEIG1vZGlmaWNhdGlvbnMKICAgCjE5OTYtMDgtMjYgMDc6NTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXhlZCBhIGdjYy9GcmVlQlNEIG9wdGltaXphdGlvbiBidWcgKHN0dXBpZCBjb21waWxlcikKICAgCjE5OTYtMDgtMjYgMDE6MzcgIHdoYXJkYWtlCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpOiAgY29tbWFzIG91dCBvZiBwbGFjZS4KICAgCjE5OTYtMDgtMjYgMDE6MzcgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKSBFeHRyYSBtaWIgcGFyc2luZyBpZGVhcyBhZGRlZC4KICAgCjE5OTYtMDgtMjYgMDE6MzYgIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKSBUeXBvLCBleHRyYSBxdW90YXRpb24gbWFyay4KICAgCjE5OTYtMDgtMjEgMDY6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3N0ZXN0OgoKICAgQWRkZWQgcGFzc3Rlc3QhCiAgIAoxOTk2LTA1LTI0IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMSApCiAgIAoxOTk2LTA1LTI0IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHVwZGF0ZQogICAKMTk5Ni0wNS0yNCAxNTo0MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogMy4xIHJlbGVhc2UgaW5mbyB1cGRhdGUuCiAgIAoxOTk2LTA1LTI0IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBzb21lIGlmZGVmIHJlcXVpcmVtZW50cy4KICAgCjE5OTYtMDUtMjQgMTU6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogI2lmZGVmIHR5cG9zCiAgIAoxOTk2LTA1LTI0IDE0OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIG1lbW1vdmUgYmVmb3JlIHlvdSBkZWZpbmUgaXQuCiAgIAoxOTk2LTA1LTI0IDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgcm91dGUuYzoKCiAgIC0gKGlmLmMsIHJvdXRlLmMpOiBjYXN0IHJldHVybnMgZnJvbSBpbmRleCB0byBjaGFyICouCiAgIAoxOTk2LTA1LTI0IDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogIGRlZmluZSBtZW1tb3ZlIGlmIG5vdCBkZWZpbmVkIGFuZCBtZW1jcHkgaXMuCiAgIAoxOTk2LTA1LTI0IDEzOjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiAgbm90ZSBvbiBjcmVhdGluZyBjb21tZW50cyBhZGRlZC4KICAgCjE5OTYtMDUtMjQgMTM6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBkZWNsYXJhdGlvbnMgY2xlYW51cAogICAKMTk5Ni0wNS0yNCAxMzowOSAgaGFyZGFrZXIKCiAgICogbWliSUkudHh0OgoKICAgLSAobWliSUkudHh0KTogcmVtb3ZlZCA7cyBhdCB0aGUgZW5kIG9mIHRoZSBCRUdJTiBsaW5lcy4KICAgCjE5OTYtMDUtMjQgMTM6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZyopOiAgQ2hlY2sgZm9yIHN5cy9tbnR0YWIuaAogICAKMTk5Ni0wNS0yNCAxMzowOCAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBleGFtcGxlIGZpbGUgY2hhbmdlcy4KICAgCjE5OTYtMDUtMjQgMTI6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIGEgdGhhbmtzIHNlY3Rpb24uCiAgIAoxOTk2LTA1LTI0IDEyOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiAgcGFyc2luZyBmaXhlcyBmcm9tIE1pa2UgUGVyaWsgPG1pa2VwQGNydC5jb20+CiAgIAoxOTk2LTA1LTIzIDE3OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIGdldG1udGVudC4KICAgCjE5OTYtMDUtMjMgMTc6MDkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IGZpeGVkIGRpc2sgY2hlY2tzIG9uIFNvbGFyaXMgYW5kIGFscGhhJ3MKICAgICAtIHVzZSBzdGF0dmZzIG92ZXIgZnN0YWIgaWYgYm90aCBwcmVzZW50LgogICAKMTk5Ni0wNS0yMyAxNjoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmM6CgogICAtIChhY2wuYywgcGFydHkuYyk6IGluY2x1ZGUgc3RkaW8uaAogICAKMTk5Ni0wNS0yMyAxNDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IHR5cGUgY2FzdGluZyBidWdzLgogICAKMTk5Ni0wNS0yMyAxNDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmM6CgogICAtIChhY2wuYywgcGFydHkuYywgdmlldy5jKTogcmVtb3ZlZCBOVUxMIGRlZmluZXMuCiAgIAoxOTk2LTA1LTIzIDE0OjQzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9uJ3QgZGVmaW5lIHJhbmRvbSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KICAgCjE5OTYtMDUtMjIgMTI6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHJld29ya2VkIHRoZSB3YXkgc25tcG5ldHN0YXQgLWkgd29ya3MuCiAgIAoxOTk2LTA1LTIyIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jLAogICAgICBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyxyZWFkY29uZmlnLmMsc25tcF92YXJzLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgIC0gZmluYWxseSBuYWlsZWQgdGhhdCBtaXNzaW5nIGluaXRpYWxpemF0aW9uIHRoYXQgZ2F2ZSBwcm9ibGVtcwogICAgICAgICB3aXRoIHRoZSBBVCBzdWJ0cmVlCiAgICAgICAtIEkgYWxzbyBpbXBsZW1lbnRlZCB0aGUgZGlzayBwYXJ0IG9mIHRoZSBleHRlbnNpYmlsaXR5IGluIHRoZQogICAgICAgICBhdHRhY2hlZCBwYXRjaC4KICAgCjE5OTYtMDUtMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBpbnN0YWxsLXNoLAogICBta2luc3RhbGxkaXJzOgoKICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMpOiBBdXRvY29uZi0yLjEwCiAgIAoxOTk2LTA1LTIyIDA4OjUwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pIFVwZGF0ZWQgdGhlIHdheSBzZWRzY3JpcHQgaXMgdXNlZC4KICAgCjE5OTYtMDUtMTUgMTI6MzUgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbikgRml4ZWQgYSBob3JyaWJsZSB0eXBvLiAgUCAtPiBQUkVGSVgKICAgCjE5OTYtMDUtMTUgMTI6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYykgcmVtb3ZlZCAmIGluIGZyb250IG9mIGFycmF5IHBhc3NlZCBhcyBhcmcuCiAgIAoxOTk2LTA1LTE1IDEyOjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIEFkZGVkIGEgbm90ZSAocG9pbnRlciB0byBkb2NzKSBvbiB0aGUgYWdlbnQncyBleHRlbnNpYmxpdHkuCiAgIAoxOTk2LTA1LTE1IDEyOjAwICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCiAgIAoxOTk2LTA1LTE1IDA5OjUxICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS5BMSApCiAgIAoxOTk2LTA1LTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIHBhdGNoIG1pc3Rha2UuCiAgIAoxOTk2LTA1LTE1IDA5OjI5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBSRUFETUUsIFRPRE86CgogICAtIChDT1BZSU5HLCBSRUFETUUsIFRPRE8pIFJlbGVhc2UgZG9jcyB1cGRhdGVkLgogICAKMTk5Ni0wNS0xNSAwOTowNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50ZWQgcGFzcyB0aHJ1IG1pYnMuCiAgIAoxOTk2LTA1LTE1IDA5OjA2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUuaW4sc2Vkc2NyaXB0LmluKSBBZGRlZCBQUkVGSVggdG8gdGhlIHNlZHNjcmlwdC4KICAgCjE5OTYtMDUtMTUgMDk6MDUgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIGFnZW50Ly5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZSwKICAgbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKCovLmN2c2lnbm9yZSkgaWdub3JlIGZpbGUgdXBkYXRlLgogICAKMTk5Ni0wNS0xNSAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaDoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgUGF0Y2ggZnJvbSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgICAgLSBCZXR0ZXIgY2FjaGluZyBhbGdvcml0aG0gZm9yIGltcHJvdmVkIHNwZWVkLgogICAKMTk5Ni0wNS0xNSAwODo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9wYXNzLmMpIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIEltcGxlbWVudGVkIG1pc3NpbmcgcGFydHMgb2YgaW50ZXJmYWNlIGFkZHJlc3MgYW5kIG5ldHdvcmsgb3V0cHV0ICgtaSkKICAgCjE5OTYtMDUtMTMgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wbGliL3NubXBfaW1wbC5oKTogQ2hhbmdlIFJXUklURSB0byBpbmNsdWRlIFdyaXRlIGZvciBWMiBiaXRzLgogICAKMTk5Ni0wNS0xMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgIC0gQnVnIGZpeDogR0xPQkFMU0VDVVJJVFkgYnVnOiAgc2F2ZSByaWdodG1vc3QgdHdvIGJpdHMgaW4gYWNsLgogICAKMTk5Ni0wNS0xMCAxODoxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wc3RhdHVzLjEsIHNubXBsaWIvcGFyc2UuYwo6CgogICAtIChtYW55KTogTWVyZWdlZCBiYWdnZXNlbi0zLTAtNy0yIGJyYW5jaCBpbnRvIG1haW4gdHJ1bmsuCiAgIAoxOTk2LTA1LTEwIDE3OjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHN0YXR1cy4xOgoKICAgZmlsZSBzbm1wc3RhdHVzLjEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQmFnZ2VzZW4tMy0wLTctMi4KICAgCjE5OTYtMDUtMTAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgZmlsZSBzbm1wc3RhdHVzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQmFnZ2VzZW4tMy0wLTctMi4KICAgCjE5OTYtMDUtMTAgMTA6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEEgcGF0Y2ggdG8gZml4IGEgdmlydHVhbCBpbnRlcmZhY2UgcHJvYmxlbS4KICAgICAtIHBhdGNoIHN1cHBsaWVkIGJ5ICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgCjE5OTYtMDUtMDkgMTY6MTMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IFNvbGFyaXMgc3BlY2lmaWMgY3BwIGZsYWdzIGFkZGVkIGZvciBTVU5zcHJvJ3MgY3BwLgogICAtIChhZ2VudC97c25tcF92YXJzLHNubXBkfS5jLGFnZW50L2V4dGVuc2libGUve2V4dGVuc2libGUsbWlzYyxwYXNzfS5jLAogICAgICBzbm1wbGliL3ttaWIsc25tcF9jbGllbnR9LmMpOgogICAgIC0gQ2xlYW5lZCB1cCBwcm90b3R5cGVzIHRvIG1hdGNoIG1vcmUgY2FyZWZ1bGx5ICh3aXRoIFNvbGFyaXMncyBzcHJvIGNjKS4KICAgCjE5OTYtMDUtMDkgMTM6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhY2NvbmZpZy5oLGFnZW50L3tNYWtlZmlsZSxzbm1wX3ZhcnMuY30sYWdlbnQvZXh0ZW5zaWJsZS9tYW55KToKICAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIHBhc3N0aHJ1IG1pYnMuICBUb3RhbCBjb250cm9sIGlzIGhhbmRlZCB0byBleGVjJ3MuCiAgIAoxOTk2LTA1LTA5IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KICAgCjE5OTYtMDUtMDkgMTM6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgLSAoYXBwcy9zbm1wc2V0LmMpIEFkZGVkICcuJyBhcyBhIGRlbGltaXRlciBmb3IgZGVjaW1hbCBlbmNvZGVkIHN0cmluZ3MuCiAgIAoxOTk2LTA1LTAzIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChhcHBzL3NubXB0cmFwLmMpIEFkZGVkICNpbmNsdWRlPHN5cy9zb2NraW8uaD4KICAgCjE5OTYtMDUtMDMgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIFNvbGFyaXMgZml4IGZvciBpbnRlcmZhY2VzLgogICAgIC0gRnJvbSBEYW4gQS4gRGlja2V5IDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAKMTk5Ni0wNS0wMyAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpCiAgICAgLSBDaGFuZ2VkIHRoZSBpbnRlcmZhY2UgY291bnRlciB0byBhIHNob3J0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcyAoYnVzIGVycikKICAgICAtIFVuZGVmZWQgYSBmdW5jdGlvbiB0aGF0IGlzIG5ldmVyIHVzZWQuCiAgIAoxOTk2LTA1LTAzIDE0OjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCiAgIAoxOTk2LTA1LTAxIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43LjIgKQogICAKMTk5Ni0wNS0wMSAxNDo1OSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpIHZlcnNpb24gdXBkYXRlIDMuMC43LjIKICAgCjE5OTYtMDUtMDEgMTQ6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oKTogcmVtb3ZlZCBjb21lbnRzL3NwYWNlcyBmcm9tIGRlZmluZXMuCiAgIAoxOTk2LTA1LTAxIDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pIGZvcmdvdCBORVRCU0QxSUQgZGVmLgogICAKMTk5Ni0wNS0wMSAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjaykgVGstYjEwIGZpeGVzLgogICAKMTk5Ni0wNS0wMSAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvcm91dGVfd3JpdGUuYzoKCiAgIC0gKGFnZW50L3JvdXRlX3dyaXRlLmMsYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgIC0gbmV0YnNkMS4xQiBzcGVjaWZpYyBmaXhlczogY2xhc2ggd2l0aCBzeXNfZXJybGlzdCBhbmQgcnRfZHN0IGRlZmluZXMuCiAgIAoxOTk2LTA1LTAxIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKG1hbi9zbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmKSAuQyAtPiAuQiwgdG8gaW5jcmVhc2UgbnJvZmYgcG9ydGFiaWxpdHkuCiAgIAoxOTk2LTA1LTAxIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqLCBhZ2VudC9leHRlbnNpYmxlL3tyZWFkX2NvbmZpZyxleHRlbmlzYmxlfS5jKToKICAgICAtIGNvbmZpZ3VyaWZpZWQgKG5ldyB3b3JkKSBzb21lIG9mIE5pZWxzJyBjaGFuZ2VzIGFuZCB0aGUgYmNvcHkvbWVtbW92ZSBzdHVmZi4KICAgCjE5OTYtMDUtMDEgMTI6MzcgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIGtlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmMKLCBzbm1wZC5jOgoKICAgLSAobWFueSkgRml4ZXMgZm9yIFNvbGFyaXMgKDIuNSkgc3VibWl0dGVkIGJ5CiAgICAgICAgICAgIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgIlNvbWUgYXJlIG15IG93biwgb3RoZXJzIGFyZSBmcm9tIFl1cmkgUmFib3ZlciB3aG8gb3JpZ2luYWxseQogICAgICAgIGNyZWF0ZWQgdGhlIHBhdGNoLiBTb21lIG9mIHRoaXMgaXMgdGhlcmUgdG8gZWxpbWluYXRlIHRoZQogICAgICAgIGRlcGVuZGVuY3kgb24gdGhlIHVjYmxpYiBjb21wYXRpYmlsaXR5IHN0dWZmLCBzb21lIGlzICJjb3NtZXRpYyIsCiAgICAgICAgYnV0IGl0IGFsc28gZml4ZXMgYSBzZXJpb3VzIHByb2JsZW0gaW4gdGhlIGFnZW50LCB3aGVyZSB3YWxraW5nCiAgICAgICAgdGhlIG1pYiB0cmVlIGNhbiBsb29wIGVuZGxlc3NseSBpZiB5b3UgaGF2ZSBtdWx0aXBsZSBuZXR3b3JrCiAgICAgICAgaW50ZXJmYWNlcy4iCiAgIAoxOTk2LTA0LTI1IDEyOjE5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43LjEgKQogICAKMTk5Ni0wNC0yNSAxMjoxOCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKENoYW5nZUxvZywgYWNjb25maWcuaCwgY29uZmlnLmguaW4pIERlZmluZWQgREVCVUdQIGlmIERPREVCVUcgaXMgbm90IGRlZmluZWQuCiAgIAoxOTk2LTA0LTI0IDE0OjU0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43ICkKICAgCjE5OTYtMDQtMjQgMTQ6NTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZyxORVdTKSB1cGRhdGUgZm9yIDMuMC43CiAgIAoxOTk2LTA0LTI0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrKSBuZXcgcHJlZjogIGRvbid0IHBvcCBmb3J3YXJkIG9uIG5ldyBwcm9ibGVtcy4KICAgCjE5OTYtMDQtMjQgMTM6MjUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosYWdlbnQvc25tcF92YXJfcm91dGUuYykgY29uZmlnIGNoZWNraW5nIGZvciBydGVudHJ5LnJ0X25leHQKICAgCjE5OTYtMDQtMjQgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBAIyQlaW5nIHNvbGFyaXMKICAgCjE5OTYtMDQtMjQgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBDaGVja2VkIGZvciBzeXMvbWJ1ZiBmb3IgZGV0ZXJtaW5pbmcgcnRlbnRyeS5ydF9uZXh0CiAgIAoxOTk2LTA0LTI0IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgdXBkYXRlZAogICAKMTk5Ni0wNC0yNCAwOTowMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSB1cGRhdGVkCiAgIAoxOTk2LTA0LTI0IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKG1hbi8uY3ZzaWdub3JlKSBhZGRlZCBzbm1wZC4xCiAgIAoxOTk2LTA0LTI0IDA4OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgZWNlLW1pYi5kZWYsCiAgIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluCjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBlY2UtbWliLmRlZiwgb3YvKikgQWRkZWQgTmV0QlNEIHRvIHN5cy1PSUQgcmV0dXJuZWQuCiAgIAoxOTk2LTA0LTI0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykgbW9yZSBjb25maWcgZmlsZXMgZm9yIE5ldEJTRC4KICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIHJlbW92ZWQgYXJwIHRhYmxlcyBmb3IgbmV0YnNkLgogICAKMTk5Ni0wNC0yNCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWxhcm0uYzoKCiAgIC0gKGFnZW50L2FsYXJtLmMpIEZpeGVkIHNvbWUgZGVmaW5lIG5hbWluZyBjb25mbGljdHMgZm9yIE5ldEJTRCAodGltZXJhZGQoKSkuCiAgIAoxOTk2LTA0LTI0IDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKSBGb3Jnb3QgYSBxdW90ZS4gICh3aHkgaGFzbid0IHRoaXMgYXBwZWFyZWQgYmVmb3JlPykKICAgCjE5OTYtMDQtMjQgMDg6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBoZWFkZXIgZmlsZSBjaGVja3MgKHZtL3ZtLmggKCsgb3RoZXJzKSBhbmQgdWZzL2Zmcy9mcy5oKQogICAKMTk5Ni0wNC0xNiAxODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIGZmbHVzaCBjYWxscyBhZnRlciBwcmludGluZyBwYWNrZXQgZHVtcHMKICAgCjE5OTYtMDQtMTYgMDk6NDggIGhhcmRha2VyCgogICAqIGFnZW50Lzogcm91dGVfd3JpdGUuYywgc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3tyb3V0ZV93cml0ZS5jLHNubXBfdmFyX3JvdXRlLmN9KSBPU0YzLjIgc3BlY2lmaWMgY2hhbmdlcy4gIGFyZy4KICAgCjE5OTYtMDQtMTYgMDk6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBJIGZvcmdvdCBETUVNX0xPQyBuZWVkcyB0byBiZSAjdW5kZWYnZWQgaWYgbm90IGZvdW5kCiAgIAoxOTk2LTA0LTE1IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYykgRml4ZWQgMiBnZXR0aW1lb2ZkYXkgY2FsbHMgLS0gYWRkZWQgYSBOVUxMIHRpbWV6b25lIHB0ci4KICAgCjE5OTYtMDQtMTUgMTQ6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLXdpdGgtZGVmYXVsdHMuICBEb24ndCBwcm9tcHQgdGhlIHVzZXIuCiAgIC0gKGNvbmZpZ3VyZSkgYnVnIGZpeGVzOiAgd2Fzbid0IHF1b3Rpbmcga2VybmVsIGFuZCBkbWVtIGxvY2F0aW9uLgogICAtIChjb25maWd1cmUpIGdjYyBjcHAgcmVxdWlyZXMgLXggYyB0byBhY2NlcHQgLmluIGZpbGUgc3VmZml4LgogICAKMTk5Ni0wNC0xNSAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0tZW5hYmxlLWRlYnVnZ2luZy4gIFR1cm5zIG9uIGRlYnVnZ2luZy4KICAgLSAoY29uZmlndXJlKSBGaXhlcyBmb3IgdHlwZSBjaGVja2luZyBvZiA0LjQgcnRlbnRyeSBzdHJ1Y3R1cmVzIG9uIGFscGhhcy4KICAgCjE5OTYtMDQtMTIgMTY6NDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZWNlLW1pYi5kZWYsCiAgIHNlZHNjcmlwdC5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgb3YvVUNELWZpZWxkcywKICAgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4sCiAgIG92L2JpdG1hcHMvVUNELmZpZWxkczoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpCiAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgIC0gKG1hbnkpIEFkZGVkIHN1cHBvcnQgZm9yIGhwcGExLjEtaHAtaHB1eDEwLjAxCiAgICAgLSB0b3RhbGx5ISByZWRpZCB0aGUgcm91dGluZyB0YWJsZXMgZm9yIEJTRCA0LjQgZGVyaXZlZCBzeXN0ZW1zCiAgICAgICAoYWxwaGEsIGhwdXgxMC4wMSssIG5ldGJzZCkgc2luY2UgaHB1eDEwIGRvZXNuJ3QgaGF2ZSA0LjMgY29tcGF0IHN0cnVjdHMuCiAgIC0gKGVjZS1taWIuZGVmKSBDYXBpdGFsaXphdGlvbiBwcm9ibGVtLgogICAtIChjb25maWd1cmUuaW4pCiAgICAgLSBDbGVhbmVkIHVwIGtlcm5lbCBjaGVja2luZwogICAgIC0gU3RhcnRlZCB1c2luZyBhIGF1dG9jb25mIDIuOCBmZWF0dXJlIHRvIGNoZWNrIGZvciBjYWNoZSB2YWx1ZXMuCiAgIAoxOTk2LTA0LTEyIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlLmMpCiAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgIAoxOTk2LTA0LTA1IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pIEFkZGVkIGEgJ2NsZWFuJyBkZWZpbml0aW9uIHRvIHRoZSBNYWtlZmlsZS4KICAgCjE5OTYtMDQtMDUgMTY6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoc25tcGxpYi9hc24xLmMpIHJlbW92ZWQgYSByZXF1aXJlZCAndW5peCcgZGVmaW5lIHN1cnJvdW5kaW5nIGEgaGVhZGVyIGZpbGUuCiAgIAoxOTk2LTA0LTA1IDE2OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpIGF1dG9jb25mLTIuNyAtPiBhdXRvY29uZi0yLjkKICAgCjE5OTYtMDQtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2suZGVmKSBUay1iOCA9PiBUay1iMTAgY2hhbmdlcwogICAKMTk5Ni0wMy0xMSAxNTo1OCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgc21hbGwgQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5Ni0wMy0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogZml4ZWQgYSB0aW1lb3V0IGJ1ZyBjYXVzZWQgYnkgYXJjaGl0ZWN0dXJlcwogICAgIHdpdGggYW4gdW5zaWduZWQgdGltZXZhbC50dl9zZWMgdmFsdWUuCiAgICAgLSBUaGFua3MgZ29lcyB0byBHaW92YW5uaSBTLiBNYXJ6b3QgPGdtYXJ6b3RAYmF5bmV0d29ya3MuY29tPiBmb3IKICAgICAgIHRoZSBwYXRjaCEKICAgCjE5OTYtMDMtMTEgMTU6NDEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjYgKQogICAKMTk5Ni0wMy0xMSAxNTo0MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nL05FV1MpOiB1cGRhdGVkIGZvciAzLjAuNgogICAKMTk5Ni0wMy0xMSAxNTozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbW9yZSBjbGVhbiB1cCBhbmQgYWRkZWQgcmVmZXJlbmNlIHRvIHRoZSB1Y2Qtc25tcCBtYWlsaW5nIGxpc3QuCiAgIAoxOTk2LTAzLTExIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBjbGVhbmVkIHVwLCByZS1hcnJhbmdlZCwgc2hvcnRlbmVkIChzZWN0aW9ucyBtb3ZlZCB0byBtYW4vKiBkb2NzKS4KICAgCjE5OTYtMDMtMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgLSAobWFuL3tNYWtlZmlsZS5pbixzbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmfSx2ZXJzaW9udGFnLHNlZHNjcmlwdC5pbik6CiAgICAgLSBjbGVhbmVkIHVwIGRvY3VtZW50YXRpb24gbW9yZSBhbmQgYWRkZWQgdGhlIHZlcnNpb24gbnVtYmVyIHRvIHRoZSB0cmFpbGVycy4KICAgCjE5OTYtMDMtMTEgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogY29tbWVudGVkIG91dCBubGlzdCB3YXJuaW5ncy4KICAgCjE5OTYtMDMtMDggMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCkgZml4ZWQgYSBmaXggdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIGZpeGVkLgogICAKMTk5Ni0wMy0wOCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2NsaWVudC5jKSBDaGVjayBpZiB2YXJpYWJsZSBjb250ZW50IGlzIE5VTEwgYmVmb3JlIHVzaW5nLgogICAKMTk5Ni0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBsaWIvbWliLmMpIHByaW50ZWQgdmFsdWVzIGZvciB0aW1ldGlja3MgYXJlIG5vIGxvbmdlciBuZWdhdGl2ZS4KICAgCjE5OTYtMDMtMDYgMTY6MzggIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpCiAgICAgLSBDaGFuZ2VkIGNhcGl0YWxpemF0aW9uIHNjaGVtZXMgdG8gYmUgbW9zeSBjb21wbGlhbnQuCiAgICAgLSBNYWRlIHRoZSBtZW1vcnkgbWliIFNZTlRBWCBwb2ludCB0byB0aGUgTWVtb3J5IHNlcXVlbmNlIGxpa2UgaXQgc2hvdWxkLgogICAKMTk5Ni0wMy0wNiAwOTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpIEFkZGVkIE9fVFJVTkMgdG8gdGhlIGxvZ2ZpbGUgb3BlbigpIGNhbGwuCiAgIAoxOTk2LTAyLTIxIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpCiAgICAgLSBDaGFuZ2VkIHRyYXBfdHlwZSAmIHNwZWNpZmljX3R5cGUgdG8gbG9uZyBmcm9tIGludCBmb3IgNjQgYml0IGFyY2hpdGVjdHVyZXMuCiAgICAgICAtIHN1Z2dlc3RlZCBieSBmcmFuY3VzQG1ldHNueS5kZWxwaGkuY29tLgogICAKMTk5Ni0wMi0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBzbm1wdHJhcC5jOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcC5jKQogICAgIC0gQWRkZWQgYXBwcy9zbm1wdHJhcAogICAgICAgLSBjb2RlIHRha2VuIGZyb20gMi4wLjEgYW5kIHN1Ym1pdHRlZCB0byBtZSBieSBmcmFuY3VzQG1ldHNueS5kZWxwaGkuY29tLgogICAgICAgLSBJIGhhdmUgeWV0IHRvIHRlc3QgaXQuCiAgIAoxOTk2LTAyLTIxIDE2OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluLCBtYW4vLmN2c2lnbm9yZSwKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpCiAgICAgLSBBZGRlZCB0aGUgYmVnaW5uaW5ncyBvZiBhIHNubXBkLmNvbmYgbWFudWFsIHBhZ2UuCiAgIAoxOTk2LTAyLTE2IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWNjb25maWcuaCxjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpCiAgICAgLSAuY29uZiBmaWxlIGFkZGl0aW9uOiAgImNvbW11bml0eSBOIFNUUklORyIgdG8gY2hhbmdlIGNvbW11bml0eSBuYW1lcwogICAKMTk5Ni0wMi0xMiAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaGluLCBhZ2VudC9leHRlbnNpYmxlL21pc2MuYykKICAgICAtIFRoZSBhZ2VudCBub3cgc2V0cyBhbiBhbGFybSB0byByZXN0YXJ0IHJhdGhlciB0aGFuIGRvaW5nIGF0IHRoZQogICAgICAgc25tcHNldCB0aW1lIHRvIHJldHVybiBhIHZhbHVlIHRvIHRoZSBzbm1wc2V0IHJlcXVlc3QuCiAgIAoxOTk2LTAyLTA5IDE3OjA0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBlY2UtbWliLmRlZiwgc2Vkc2NyaXB0LmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgb3YvLmN2c2lnbm9yZSwgb3YvTWFrZWZpbGUuaW4sIG92L1JFQURNRSwKICAgb3YvVUNELUNvbXB1dGVyLCBvdi9VQ0QtZmllbGRzLCBvdi9vaWRfdG9fc3ltLmluLAogICBvdi9vaWRfdG9fdHlwZS5pbiwgb3YvYml0bWFwcy9VQ0QuMjAubSwKICAgb3YvYml0bWFwcy9VQ0QuMjAucCwgb3YvYml0bWFwcy9VQ0QuMjYubSwKICAgb3YvYml0bWFwcy9VQ0QuMjYucCwgb3YvYml0bWFwcy9VQ0QuMzIubSwKICAgb3YvYml0bWFwcy9VQ0QuMzIucCwgb3YvYml0bWFwcy9VQ0QuMzgubSwKICAgb3YvYml0bWFwcy9VQ0QuMzgucCwgb3YvYml0bWFwcy9VQ0QuNDQubSwKICAgb3YvYml0bWFwcy9VQ0QuNDQucCwgb3YvYml0bWFwcy9VQ0QuNTAubSwKICAgb3YvYml0bWFwcy9VQ0QuNTAucCwgb3YvYml0bWFwcy9VQ0QuZmllbGRzOgoKICAgLSBCZXR0ZXIgT3BlblZpZXcgc3VwcG9ydAogICAgIC0gUmV0dXJucyBkaWZmZXJlbnQgc3lzT2JqZWN0SUQncyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUKICAgICAtIEFkZGVkIGEgJ292JyBkaXJlY3RvcnkgZm9yIE9wZW5WaWV3IHN1cHBvcnQgZmlsZXMKICAgICAgIC0gY3VycmVudGx5IGNvbnRhaW5zIG5lY2Vzc2FyeSBmaWxlcyB0byBzdXBwb3J0IGEgVUNEIGJpdG1hcCBmaWxlCiAgICAgICAgIGZvciBob3N0cyB1c2luZyB0aGUgdWNkLXNubXAgYWdlbnQuICBTZWUgdGhlIG92L1JFQURNRSBmaWxlIGZvciBkZXRhaWxzLgogICAKMTk5Ni0wMS0yNiAwODoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIFRoZSBTb2xhcmlzIDIuNSBrZXJuZWwgaGFzIG1vdmVkIHRvIC9rZXJuZWwvZ2VudW5peAogICAgIC0gVGhhbmtzIGdvZXMgdG8gcG9tbWllckB2b2xuYXkuc3RvcnRlay5jb20gKFZpbmNlbnQgUG9tbWllciAoVG91bG91c2UpKQogICAKMTk5Ni0wMS0yNCAxNjozNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBlY2UtbWliLmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUsIGNvbmZpZy5oLCBlY2UtbWliLiosIHNlZHNjcmlwdC5pbikKICAgICAtIGNoYW5nZWQgdGhlIHdheSBtaWIudHh0IGlzIGJ1aWx0CiAgICAgICAtIHNwbGl0IHRoZSBjb21tYW5kIGludG8gdHdvIHBhcnRzIHRvIGJ1aWxkIGEgZWNlLW1pYi50eHQgYXMgd2VsbAogICAgIC0gYWRkZWQgYSBuZXcgT2JqZWN0SUQgYWRkaXRpb24gdG8gZWNlLW1pYi50eHQKICAgICAtIERFRk1BWExPQURBVkUgLT4gRFJFTU9WRU1FRUZNQVhMT0FEQVZFCiAgIAoxOTk2LTAxLTI0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+CiAgICAgLSBmaXhlcyAtcCBQT1JUIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIHRoZSByZXF1ZXN0ZWQgcG9ydC4KICAgICAtIGZpeGVzIHRoZSAtbCBMT0dGSUxFIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIGl0LgogICAKMTk5Ni0wMS0yNCAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIFJldHVybmluZyBFWFRFTlNJQkxFRE9UTUlCLkFHRU5USUQgYXMgdGhlIG5ldyBvYmplY3RpZAogICAKMTk5Ni0wMS0yMiAxNzozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpCiAgICAgLSBQcmVwZWQgZm9yIDMuMC41IHJlbGVhc2UKICAgCjE5OTYtMDEtMjIgMTc6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2spCiAgICAgLSBhZGRlZCBhZ2VudCBjb250cm9sczogIHJlc3RhcnQsIHVwZGF0ZWNvbmZpZywgY2xlYXJjYWNoZS4KICAgICAtIHJlbW92ZWQgYW4gb2xkIGRlYnVnZ2luZyBwcmludGYuCiAgICAgLSBjdHJsLWYgPT4gZml4YWxsLgogICAgIC0gQWRkZWQga2V5Ym9hcmQgYWNjZWxlcmF0b3JzIHRvIHRoZSBhc3NvY2lhdGVkIG1lbnUgaXRlbXMuCiAgICAgLSBNYWRlIGhpZ2hsaWdodFRoaWNrbmVzcyBhIGdsb2JhbCBwYXJhbWV0ZXIgdmlhICR3aW5kb3ctPm9wdGlvbignYWRkJykuCiAgICAgLSBBZGRlZCBhIGVudHJ5IGJveCB0byB0aGUgZXhlY3V0YWJsZSBjb21tYW5kcyB3aXRoIHRoZSBjb21tYW5kIHRvIHJ1bi4KICAgCjE5OTYtMDEtMjIgMTc6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pIEFkZGVkIGEgY2htb2QgdG8gbWFrZSB0aGUgc25tcGNoZWNrIHNjcmlwdCBleGVjdXRhYmxlCiAgIAoxOTk2LTAxLTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgIC0gQWRkZWQgbmV3IGRlZmluZXMgdG8gdHVybiBvbi9vZmYgc2VjdGlvbnMgb2YgdGhlIGV4dGVuc2libGUgbWliLgogICAgIC0gVGhpcyBhbHNvIGZpeGVzIHRoZSBtaWIudHh0IGZpbGUgZGVmaW5pdGlvbnMgaWYgc29tZXRoaW5nIGlzIHR1cm5lZCBvZmYuCiAgIC0gKE1ha2VmaWxlLmluKSByZW1vdmVkICR7c3JjZGlyfSBmcm9tIHRoZSBmcm9udCBvZiBzdGFtcC1oLmluCiAgIAoxOTk2LTAxLTE5IDE3OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHJlbW92ZS1maWxlczoKCiAgIC0gKGNvbmZpZ3VyZSopCiAgICAgLSB1cGRhdGVkIHRvIGF1dG9jb25mIHYyLjcKICAgICAtIEhvcGVmdWxseSBub3cgdXNpbmcgY29ycmVjdCAnbWFrZScgZGVmaW5pdGlvbnMKICAgCjE5OTUtMTItMjggMTU6MjQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbikgTWlub3IgY2xlYW51cHMuCiAgIAoxOTk1LTEyLTI4IDEyOjE0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChDaGFuZ2VMb2csRVhBTVBMRS5jb25mLmRlZikgc3BlbGwgY2hlY2sgKHNpZ2gpCiAgIAoxOTk1LTEyLTI4IDEyOjA5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsCiAgIE1ha2VmaWxlLmluLCBORVdTLCBSRUFETUUsIHNlZHNjcmlwdC5pbjoKCiAgIC0gQ3JlYXRlZCBhIEVYQU1QTEUuY29uZiBmaWxlIGZvciBleGFtcGxlIHVzYWdlLgogICAKMTk5NS0xMi0yOCAxMDo0NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogIFVwZGF0ZWQgdGhlc2UgZm9yIDMuMC40IHJlbGVhc2UuCiAgIAoxOTk1LTEyLTI4IDEwOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogIE5ldmVyIGZpbmlzaGVkIHRoZSBpbnN0YWxsIGl0ZW0uCiAgIAoxOTk1LTEyLTI4IDEwOjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgVE9ETywgYWNjb25maWcuaCwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZWNlLW1pYi5kZWYsCiAgIHNlZHNjcmlwdC5pbiwgbG9jYWwvLmN2c2lnbm9yZSwgbG9jYWwvTWFrZWZpbGUuaW4KLCBsb2NhbC9zbm1wY2hlY2suZGVmLCBUT0RPOgoKICAgLSBBZGRlZCBhIHNlZHNjcmlwdCB3aGljaCBpcyBidWlsdCBmcm9tIGNvbmZpZy5oIGFuZCBhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaAogICAgIC0gdXNlZCB0byBkeW5hbWljYWxseSBidWlsZCBtaWIudHh0IGFuZCBsb2NhbC9zbm1wY2hlY2suCiAgIAoxOTk1LTEyLTI4IDEwOjAxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSBBZGRlZCBzZWRzY3JpcHQgdG8gdGhlIC5jdnNpZ25vcmUgZmlsZS4KICAgCjE5OTUtMTItMjAgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIEZvdW5kIGFuZCBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSByb3V0aW5nIHRhYmxlIG1pYi4KICAgCjE5OTUtMTItMjAgMDk6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9vcGVuIGNhbGxzIGdldHNlcnZieW5hbWUgb25seSBvbmNlIG5vdywgYXQgdGhlIHJlcXVlc3Qgb2YgR2FyeQogICAgIEhheXdhcmQgPGdhaEBkaXJhYy5iZWxsY29yZS5jb20+LgogICAKMTk5NS0xMi0wNSAxNTowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjaykKICAgICAtIE5ldyBmbGFnOiAgLWQsIGRvbid0IHN0YXJ0IGNoZWNraW5nIGFueXRoaW5nLiAgSnVzdCBicmluZyB1cCBpbnRlcmZhY2UuCiAgICAgLSBjaGVjayBmb3IgYmxhbmsgb3V0cHV0IG9mIHNubXBnZXQgYmVmb3JlIHBhcnNpbmcgd2l0aCBzLy8vZwogICAgICAgY29uc3RydWN0cy4KICAgCjE5OTUtMTItMDUgMTQ6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSopIGFkZGVkIEFDX1RZUEVfUElEX1QgdG8gdGhlIGNvbmZpZ3VyZSBjaGVja3MKICAgCjE5OTUtMTItMDEgMTY6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIGxvY2FsL3NubXBjaGVjazogICAgICAgKm5ldyBmZWF0dXJlcyoKICAgICAtIGhhbmRsZXMgZmFpbGVkIHNubXB3YWxrL2dldC9zZXRzIG11Y2ggbW9yZSBncmFjZWZ1bGx5IG5vdwogICAgIC0gbmV3IHByZWZlcmVuY2U6ICBZb3UgY2FuIHBpY2sgd2hhdCB0eXBlcyBvZiBwcm9ibGVtcyB0byBjaGVjayBmb3IKICAgICAgIC0gLWYgb24gdGhlIGNvbW1hbmQgbGluZSBvbmx5IGNoZWNrcyBmb3IgZml4YWJsZSBwcm9ibGVtcwogICAgIC0gbm8gbG9uZ2VyIHBpbmc6OmVjaG9zIGhvc3RzIGJlZm9yZSBjaGVja2luZyB0aGVtCiAgICAgICAtIGluc3RlYWQgcmVsaWVzIG9uICdObyBSZXNwb25zZScgdHlwZSByZXBsaWVzIGZyb20gc25tcHdhbGsvZ2V0IHRvCiAgICAgICAgIGRldGVybWluZSBpZiBhIGhvc3QgaXMgdXAuCiAgICAgICAtIHBpbmcgdGhlIGhvc3QgaXMgc3RpbGwgYW4gb3B0aW9uICh0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUgYW5kIG1lbnVzKQogICAgIC0gY29udmVydGVkIGZyb20gVGstYjQgdG8gVGstYjgKICAgICAtIEFkZGVkIGEgbG9nZ2luZyB3aW5kb3cgZm9yIGRlYnVnZ2luZyBhbmQgdHJhY2tpbmcgb2YgYWN0aW9ucy4KICAgICAgIC0gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOiAgLVYgTlVNICBpbml0aWFsIGxvZyB2ZXJib3NpdHkgbGV2ZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUwgICAgICBzaG93IHRoZSBsb2cgd2luZG93IGF0IHN0YXJ0dXAKICAgICAtIE5vdyB0cmFuc2xhdGVzIG1pYiBudW1iZXJzIGludG8gbW9yZSByZWFzb25hYmxlIG5hbWVzCiAgIAoxOTk1LTExLTIwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICAtICh0cmFwbm90aWYpIExvZ3Mgbm8tcmVzcG9uY2UgZXJyb3JzLgogICAtICh0cmFwbm90aWYpIEJldHRlciBzdHJpbmcgY2hlY2tpbmcgKHF1b3RlcyBhbGwgdmFyaWFibGVzIG5vdykKICAgCjE5OTUtMTEtMjAgMTY6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLAogICBta2luc3RhbGxkaXJzOgoKICAgLSAoYWxsIGF1dG9jb25mIGJ1aWx0IGZpbGVzKSBVcGRhdGVkIGV2ZXJ5dGhpbmcgdG8gYXV0b2NvbmYgMi41CiAgIAoxOTk1LTExLTIwIDE2OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCiAgIAoxOTk1LTExLTIwIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgLSAoY29uZmlndXJlLmluKSBNb3JlIHNvbGFyaXMgc3BlY2lmaWNzOiAgLURTVlI0CiAgIC0gKGNvbmZpZ3VyZS5pbikgQ2FjaGVzIGluaXRpYWwgcHJvbXB0IGluIHRoZSBjb25maWd1cmUgc2NyaXB0IHNvIHlvdQogICAgIHdvbid0IGJlIGJ1Z2dlZCB0d2ljZSBieSB0aGUgaW5pdGlhbCBxdWVzdGlvbi4KICAgCjE5OTUtMTEtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKSBGaW5kIGFuZCBmaXggbWVtb3J5IGxlYWsgc29tZXRpbWUKICAgCjE5OTUtMTEtMjAgMTY6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgQWRkZWQgcG9pbnRlciB0byB0aGlzIGZpbGUgdmlhIGZ0cAogICAKMTk5NS0xMC0xNyAxNzoyNyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5NS0xMC0xNyAxNzoxMCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlLWZpbGVzIG5lZWRzIHRvICdjZCcgdG8gdGhlIGNvcnJlY3QgZGlyZWN0b3J5IGZpcnN0CiAgIAoxOTk1LTEwLTE3IDE2OjU3ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICBhZGRlZCB0aGUgcmVtb3ZlLWZpbGVzIGV4cG9ydCBjb21tYW5kCiAgIAoxOTk1LTEwLTE2IDE3OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIE9uZSBsYXN0IGVjaG8gLW4gdnMgXGMgZml4CiAgIAoxOTk1LTEwLTE2IDE2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXBkLmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChhcHBzKSBhbGwgYXBwcyB3ZXJlIHN0aWxsIGxvb2tpbmcgaW4gL2V0Yy8gZm9yIC5jb25mIGZpbGVzCiAgIAoxOTk1LTEwLTE2IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpIGZpeGVkIFxjIHZzIC1uIGRlcGVuZGVuY3kKICAgCjE5OTUtMTAtMTYgMTY6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSB3YXMgc3RpbGwgbG9va2luZyBpbiAvZXRjIGZvciB0d28gLmNvbmYgZmlsZXMuCiAgIAoxOTk1LTEwLTE2IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSBBZGRlZCBpbmZvIHJlcXVlc3QgdG8gYm90dG9tIG9mIFRPRE8KICAgCjE5OTUtMTAtMTYgMTU6NTUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5NS0xMC0xNiAxNTowNSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIG1hcmtlZCBpbnN0YWxsIGFzIGZpbmlzaGVkIGFuZCBzb2xhcmlzIHBvcnQgYXMgY2xvc2UKICAgCjE5OTUtMTAtMTYgMTU6MDEgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIE1ha2VmaWxlLmluLCBSRUFETUUsCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGVzKSBtYWtlIGluc3RhbGwgZWNob3Mgd2hhdCBpdHMgZG9pbmcgaW4gYSBtb3JlIGNsZWFyIGZhc2hpb24KICAgLSAoSU5TVEFMTCkgYWRkZWQgYmV0dGVyIGluc3RydWN0aW9ucyB0byB0aGUgSU5TVEFMTCBmaWxlLgogICAtIChSRUFETUUpIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwogICAKMTk5NS0xMC0xNiAxMzowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIG1hbi8uY3ZzaWdub3JlLCBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZXMpIEZhaXJseSBkZWNlbnQgJ21ha2UgaW5zdGFsbCcgbm93IHBvc3NpYmxlLiAgSW5zdGFsbHMKICAgICBpbnRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IC0tcHJlZml4IGZvciB0aGUgLi9jb25maWd1cmUgc2NyaXB0LgogICAtIChleHRlbnNpYmxlLmMpIGNvbmZpZyBmaWxlIHJlLWxvY2F0aW9uOiBub3cgdXNlcyB0aGUgU05NUExJQlBBVEgKICAgICBkZWZpbmVkIGxvb3NlbHkgYXMgJChwcmVmaXgpL2xpYi9zbm1wLy4KICAgCjE5OTUtMTAtMTMgMTU6NDQgIGhhcmRha2VyCgogICAqIFRPRE8sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHN0YW1wLWgsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wZC5jKSBBZGRlZCAtcCBwb3J0IHRvIC0taGVscCBvdXRwdXQKICAgLSAoY29uZmlnKSBTZXR1cCB0byB1c2UgLS1wcmVmaXggdG8gbG9vayBmb3IgY29uZmlnIGZpbGVzLgogICAKMTk5NS0xMC0xMSAxNzozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIFRoZSBjb25maWd1cmUgc2NyaXB0IG5vdyBwcm9tcHRzIGZvciBpbXBvcnRhbnQgdmFsdWVzIHRvIGJlIHB1dCBpbgogICAgIGNvbmZpZy5oLiAgU29tZSB0aGluZ3MgbmVlZCB0byB1c2UgJChwcmVmaXgpIGluc3RlYWQgaG93ZXZlci4KICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluKQogICAgICsgbGlua2luZyB0byAuLi9zbm1wbGliL2xpYnNubXAuYSBpbnN0ZWFkIG9mIC4uL2xpYi9saWJzbm1wLmEgdG8KICAgICAgIHJlbW92ZSBpbnN0YWxsIHJlcXVpcmVtZW50LgogICAgICsgIHB1dCAuLi9saWIvbGlic25tcC5hIGluIGFwcGxpY2F0aW9uCiAgIAoxOTk1LTEwLTA2IDE2OjQxICBoYXJkYWtlcgoKICAgKiBORVdTLCBUT0RPOgoKICAgLSAoTkVXUy8tVE9ETykgLWgvLS1oZWxwLCAtdi8tLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbnMKICAgCjE5OTUtMTAtMDYgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSBVc2FnZSBvZiAtLWhlbHAgYW5kIC0tdmVyc2lvbiBzaG91bGQgd29yayBub3cuLi4gIEdOVSBzdGFuZGFyZC4KICAgCjE5OTUtMTAtMDYgMTY6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgcGFyc2UuYywgc25tcC5jOgoKICAgLSAocGFyc2UuYywgc25tcC5jKSBhZGRlZCBjb25maWcuaCB0byB0aGUgbGlzdCBvZiBpbmNsdWRlcy4KICAgCjE5OTUtMTAtMDYgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSBBZGRlZCB0d28gbmV3IGZsYWdzOgogICAgIC1oIGZvciBoZWxwCiAgICAgLXYgZm9yIHZlcnNpb24gaW5mb3JtYXRpb24KICAgCjE5OTUtMTAtMDYgMTE6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgTW92ZWQgSU5TVEFMTEFUSU9OIGluc3RydWN0aW9ucyB0byBJTlNUQUxMCiAgICAgICAgICAgICAgQ2hhbmdlZCBsaXN0aW5nIG9mIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzCiAgICAgICAgICAgICAgVXBkYXRlZCBBVkFJTEFCSUxJVFkgc2VjdGlvbgogICAKMTk5NS0xMC0wNiAxMToyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbikgbm93IGNhY2hlcyBtb3JlIHZhbHVlcyAocHMgYXJncywgZXRjKSBhbmQKICAgICBjaGVja3MgZm9yIHRoZSBsb2NhdGlvbiBvZiBwcyAobm8gbG9uZ2VyIGFzc3VtaW5nIHRvIGJlIC9iaW4vcHMpCiAgIAoxOTk1LTEwLTA2IDExOjI0ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBtb3ZlZCB0byBoZXJlCiAgIAoxOTk1LTEwLTA1IDE1OjIyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBUT0RPLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHN0YW1wLWguaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF92YXJfcm91dGUuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIE1vcmUgU29sYXJpcyBwb3J0aW5nLgogICAgIC0gTW9zdCBtaWJJSSBlbnRyaWVzIG5vdyB3b3JrLgogICAgICAgIC0gSGF2ZW4ndCBjaGVja2VkIHJldHVybmVkIGluZm9ybWF0aW9uIGZvciBhY2N1cmFjeQogICAgIC0gc3lzVXBUaW1lIHN0aWxsIGZhaWxzLgogICAgIC0gY2MgYW5kIGdjYyBib3RoIGNvbXBpbGUgZXZlcnl0aGluZyBub3cuCiAgIAoxOTk1LTEwLTAzIDA5OjQyICBoYXJkYWtlcgoKICAgKiBzdGFtcC1oLCBzdGFtcC1oLmluOgoKICAgKC5jdnNpZ25vcmUpIHJlbW92ZWQgZmlsZXMgc3RhbXAtaCBzdGFtcC1oLmluIGZpbGVzIHNpbmNlIG1ha2VmaWxlIG5lZWRlZCB0aGVtLgogICAKMTk5NS0xMC0wMyAwOTozNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAoTWFrZWZpbGUuaW4pIFJlbW92ZWQgLi9jb25maWd1cmUgYW5kIC4vY29uZmlnLmguaW4gZnJvbSAiYWxsOiIgZGVwZW5kZW5jaWVzCiAgIAoxOTk1LTEwLTAzIDA5OjMxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgKC5jdnNpZ25vcmUpIHJlbW92ZWQgY29uZmlnLmguaW4gZnJvbSBjdnMgaWdub3JlIGxpc3QgKGJhZCBiYWQpCiAgIAoxOTk1LTEwLTAzIDA5OjMxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIChjb25maWcuaC5pbikgQWRkZWQgZmlsZS4KICAgCjE5OTUtMTAtMDMgMDk6MjQgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAoVE9ETykgVXBkYXRlIG9mIHRoZSBUT0RPIGxpc3Q6ICBpbmNsdWRlZCBzbm1wdjEgY29uZmlnIGlkZWFzCiAgIAoxOTk1LTEwLTAzIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgKGFjY29uZmlnLmgpIE1pbm9yIGJ1ZzogIHJlY3Vyc2l2ZSBjb21tZW50cyBub3QgY29ycmVjdCBmb3IgY29tcGlsZXJzIChBSVgpCiAgIAoxOTk1LTA5LTI5IDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUykgdXBkYXRlZCB0aGUgbmV3cyBmaWxlLgogICAKMTk5NS0wOS0yOSAxMzo0MSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIFRPRE8sIGFjY29uZmlnLmgKLCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzLAogICBhZ2VudC8uY3ZzaWdub3JlLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWNsX3ZhcnMuYwosIGFnZW50L2FsYXJtLmMsIGFnZW50L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9ldmVudC5jLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvcGFydHlfdmFycy5jCiwgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3ZpZXdfcGFyc2UuYwosIGFnZW50L3ZpZXdfdmFycy5jLCBhcHBzLy5jdnNpZ25vcmUsCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliLy5jdnNpZ25vcmUsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMKLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdmlldy5jOgoKICAgLSBwb3J0ZWQgdG8gR05VJ3MgYXV0b2NvbmZpZzIuNAogICAgIC0gdG8gaW5zdGFsbCwgeW91IG11c3Qgbm93IHJ1biAuL2NvbmZpZ3VyZSBmaXJzdCB0byBnZW5lcmF0ZSB0aGUKICAgICAgIE1ha2VmaWxlcyBhbmQgY29uZmlnLmgKICAgICAtIGFsbW9zdCBhbGwgb2YgdGhlIGNvZGUgaXMgbm93IGR5bmFtaWNhbGx5IGNoZWNrZWQgZm9yIHByb2JsZW1zCiAgICAgICByYXRoZXIgdGhhbiBiZWluZyBkZXBlbmRhbnQgb24gYXJjaGl0ZWN0dXJlIG5hbWVzLgogICAtIHN5c3RlbSBuYW1lIG5vdyBkeW5hbWljYWxseSBkZXRlcm1pbmVkIGF0IHJ1biB0aW1lIChmcm9tIHVuYW1lIC1uKQogICAtIGNyZWF0ZWQgYSAnbWFrZSBkZXBlbmQnIGNhbGwgKGZpbmFsbHkpLgogICAtIChhZ2VudC9zbm1wX3ZhcnMuaCkgY2hhbmdlZCBTWVNOQU1FIGRlZmluZSB0byBTWVNURU1OQU1FIGRlZmluZSB0bwogICAgIGF2b2lkIGEgY29uZmxpY3Qgd2l0aCBhIHNvbGFyaXMgaGVhZGVyIGZpbGUuCiAgIC0gcHJvdGVjdGluZyBiZXR0ZXIgYWdhaW5zdCBpbmNsdWRlIGhlYWRlciBmaWxlcyB0d2ljZS4KICAgLSBNb3N0IG9mIHBvcnQgdG8gU29sYXJpcyAyLjQgZmluaXNoZWQuICBUaGUga2VybmVsIHJlYWRzIHN0aWxsIG5lZWQgd29yay4KICAgCjE5OTUtMDktMjEgMDk6MjkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIDMuMC4yLjEgcmVsZWFzZSAoY29tcGlsYXRpb24gYnVnIGZpeCkKICAgCjE5OTUtMDktMjEgMDk6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAoc25tcGxpYi9tZDUuYykgRm9yZ290IHRvIGluY2x1ZGUgc3lzL3R5cGVzLmggZm9yIHVfbG9uZyBkZWZpbml0aW9uLgogICAKMTk5NS0wOS0xOCAxNjoyNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgTmV3cy9DaGFuZ2Vsb2cgdXBkYXRlcwogICAKMTk5NS0wOS0xOCAxNjoxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgQmVnaW5uaW5ncyBvZiBhIG1hbnVhbCBwYWdlIGZvciBzbm1wZAogICAKMTk5NS0wOS0xOCAxNjowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTWlub3IgbW9kcyB0byBSRUFETUUgZmlsZS4KICAgCjE5OTUtMDktMDEgMTQ6NTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBBZGRlZCBhIE5FV1MgZmlsZSB0byByZXBvcnQvcmVjb3JkIG1ham9yIGNoYW5nZXMKICAgCjE5OTUtMDktMDEgMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jCjoKCiAgIC0gRml4ZWQgYWxwaGEncyBrZXJuZWwgbG9va3VwczoKICAgICAqIENNVSBjb2RlIHdhcyBwYXNzaW5nIGludHMgaW50byBsc2VlayAobmVlZHMgbG9uZykuCiAgIAoxOTk1LTA3LTMxIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSBzbm1wY2hlY2sgY2hhbmdlczoKICAgICAtIHRlcm1pbmFsIChhc2NpaSkgYmFzZWQgc3VwcG9ydGVkIGZpeGVkLgogICAgICAgLSBEZXRlY3RzIHByZXNlbmNlIG9mIGEgRElTUExBWSB2YXJpYWJsZS4KICAgICAgIC0gTm93IHJlcXVpcmVzIHRoZSBUZXJtOjpSZWFka2V5IHBhY2thZ2UuCiAgICAgICAtIGFza3MgdXNlcnMgd2VhdGhlciB0byBmaXggcHJvYmxlbXMKICAgICAtIHJhaXNlcyBhbmQgZGVpY29uaWZpZXMgd2hlbiBuZXcgcHJvYmxlbXMgYXJlIGZvdW5kCiAgICAgLSBzZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIG5ldyBwcm9ibGVtcyB0byBwaW5raXNoCiAgICAgLSBuZXcgcHJlZmVuY2U6ICBwaW5nIGhvc3Q/CiAgICAgLSBnbG9iYWwga2V5IGJpbmRpbmdzOgogICAgICAgICBjdHJsLXEgPSBxdWl0OyBjdHJsLWggPSBoaWRlOyBjdHJsLXMgPSBzZWVuIGFsbAogICAKMTk5NS0wNy0yOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBZZXQgbW9yZSBwcm9ibGVtcyBmaXhlZCBpbiB0aGUgYWxwaGEgcG9ydC4KICAgICAtLSBtb3JlIGludCAtPiBsb25nIGNoZWNraW5nLgogICAKMTk5NS0wNy0yNiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3JvdXRlX3dyaXRlLmMKLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWQ1LmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIEFkZGVkIGEgbmV3ICNkZWZpbmU6IEVYSVRfT05fQkFEX0tMUkVBRCB0byBjb25maWcuaAogICAgIElmIGRlZmluZWQsIGFuZCBhbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyB0aGUga2VybmVsIGNvbnRlbnRzLAogICAgIHRoZSBhZ2VudCB3aWxsIGV4aXQuICBUaGlzIHdhcyB0aGUgZGVmYXVsdC4gIEkgd2FudGVkIGl0IHRvCiAgICAgY29udGludWUuCiAgIAogICAtIFBvcnQgdG8gZGVjLWFscGhhL09TRiAzLjEKICAgICAtIGFscGhhJ3MgbG9uZyBpcyA4IGJ5dGVzLCBub3QgNC4KICAgICAtIHNob3VsZCBiZSAobW9zdGx5KSA2NCBiaXQgY2xlYW4gbm93LgogICAgIC0gY2xlYW5lZCB1cCBhIExPVCBvZiBidWdzIENNVSBjb2RlIGluIHRoZSBwcm9jZXNzLgogICAKMTk5NS0wNy0xNCAxNToyMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlbG9nIHVwZGF0ZQogICAKMTk5NS0wNy0xNCAxNToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gc25tcGNoZWNrICh0ay1wZXJsLWI0IHNjcmlwdCkgaXMgcHJldHR5IHN0YWJsZSBhdCB0aGlzIHBvaW50LiAgSQogICAgIGxvc3QgY3Vyc2VzIHN1cHBvcnQsIGFuZCBuZWVkIHRvIHJlLWFkZCBpdCBzdGlsbCwgc28gaXQgaXMgc3RpbGwKICAgICBiZXRhLiAgSXQgZG9lcyBleHBlY3QgYSBsb2cgZmlsZSBvZiBwcm9ibGVtcyB0byBleGlzdCAocG9pbnQgaXQgdG8KICAgICAvZGV2L251bGwpLCBhbmQgbmVlZHMgdG8ga25vdyB0aGUgbG9jYXRpb25zIG9mIHRoZSBtaWJzIHRvIGNoZWNrCiAgICAgKHdoaWNoIGFyZW4ndCBjb25maWd1cmVkIGJ5ICdtYWtlJyksIHNvIGl0IG5lZWRzIHNvbWUgd29yay4KICAgICBIb3dldmVyLCBpdCB3aWxsIHF1ZXJ5IGFuIGFnZW50LCBjaGVjayBpdHMgcHJvYmxlbXMgYmFzZWQgb24gdGhlCiAgICAgc3RhdHVzIG9mIHRoZSBlcnJvciBmbGFnIChvciByZXR1cm4gY29kZSkgYmVpbmcgPjEgYW5kIHJlcG9ydCB0aGVtCiAgICAgd2l0aCBuZWF0IEdVSS1idXR0b25zIGFuZCBzdHVmZiAob2ggd293KS4gIE5vIGRvY3VtZW50YXRpb24gb24gaXQgdGhvdWdoLgogICAKMTk5NS0wNy0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gRmluaXNoZWQgdGhlIHJlc3RhcnQgbWliLiAgVGhpcyBpcyBhIHNldGFibGUgc3ViLW1pYiBvZiB0aGUgdmVyc2lvbgogICAgIG1pYiwgZGVmYXVsdCB0byBWRVJTSU9OLjEyKC4xKS4gIElmIHNubXAtc2V0IHRvICcxJywgaXQgd2lsbCByZXN0YXJ0CiAgICAgdGhlIGFnZW50LgogICAKICAgICAqICBBIHNpZGUgZWZmZWN0IG9mIHRoaXMgaXMgdGhhdCBpdCByZXN0YXJ0cyAzIHRpbWVzIG9yIHNvLCBzaW5jZSBpdAogICAgICAgIG5ldmVyIHJldHVybnMgYSByZXNwb25jZSB0byB0aGUgcHJvZ3JhbSBnZW5lcmF0aW5nIHRoZSByZXF1ZXN0LgogICAgICAgIElmIHNhaWQgcHJvZ3JhbSB0cmllcyB0byByZXNlbmQgdGhlIHJlcXVlc3QgKHdoaWNoIG1vc3QgZG8pLCBpdAogICAgICAgIHdpbGwgQUdBSU4gcmVzdGFydCB0aGUgYWdlbnQuLi4gIG9oIHdlbGwuCiAgIAoxOTk1LTA3LTEwIDEyOjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgTWlub3IgY29tbWVudCBjaGFuZ2UgaW4gY29uZmlnLmgKICAgCjE5OTUtMDctMTAgMTE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBUd28gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOgogICAgIC1sIExPR0ZJTEUgICAgICAgT3V0cHV0cyBzdGRlcnIvb3V0IHRvIExPR0ZJTEUgKG92ZXJyaWRlcyBjb25maWcuaCBkZWYpCiAgICAgLUwgICAgICAgICAgICAgICBEbyBOT1Qgd3JpdGUgdG8gYSBsb2cgZmlsZSAob3ZlcnJpZGVzIGNvbmZpZy5oKQogICAKMTk5NS0wNi0yMSAwOToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgc25tcGxpYjoKICAgICBCdWcgZml4OiAgZmRzZXQgLT4gKGludCAqKSBmZHNldCBpbiBzZWxlY3QgY2FsbC4KICAgCjE5OTUtMDYtMjEgMDk6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDaGFuZ2VkIGRlZmF1bHQgQ0MgdG8gY2MgYWdhaW4uCiAgIAoxOTk1LTA2LTIxIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIGVjZS1taWIuZGVmOgogICBCdWcgRml4OgogICAgIExvYWRhdmUgbWliOiAgSW50ZWdlciAtPiBEaXNwbGF5U3RyaW5nCiAgICAgdmVyc2lvbkNsZWFyQ2FjaGU6ICAtPiByZWFkLXdyaXRlICh3YXMgcmVhZC1vbmx5KQogICAKICAgRmVhdHVyZToKICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KICAgCjE5OTUtMDYtMjEgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENoYW5nZWQgYW5vdGhlciAiZW1wdHkiIGVycm9yIG1lc3NhZ2UgaW4gdGhlIENNVSBjb2RlIHRvIGEgcmVhbCB3YXJuaW5nLgogICAKMTk5NS0wNi0xNiAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBIb3VzZSBDbGVhbmluZzoKICAgICBNaXNzZWQgYSBWRVJTSU9OX0lECiAgIAoxOTk1LTA2LTE2IDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEhvdXNlIENsZWFuaW5nOgogICAgIFRvb2sgb3V0IGdjYy9hbnNpIHJlcXVpcmVtZW50IGZvciB0aGUgYWdlbnQuCiAgICAgcGVycm9yKCkgaXMgY2FsbGVkIG1vcmUgZnJlcXVlbnRseSBmb3IgbG9nIGFyY2hpdmFsCiAgIAogICBOZXcgQnVnL0hhdmVuJ3Qgc29sdmVkOgogICAgIEhQLVVYOiAgaWYgYWdlbnQvKi5jIGFuZCBhZ2VudC9leHRlbnNpYmxlLyouYyBhcmUgYnVpbHQgd2l0aCBnY2MsCiAgIAkgIERpc3BsYXlTdHJpbmdzIHJldHVybiBnYXJiYWdlLiAgTm8gY2x1ZSBhcyB0byB3aHkuCiAgIAoxOTk1LTA2LTE2IDEwOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHNubXBkLmM6CgogICBIb3VzZSBjbGVhbmluZwogICAgIC0gQ29tcGlsZXMgY2xlYW5seSBvbiBocHV4L2djYwogICAJKGV4Y2VwdCBvbmUgaW5jbHVkZSBmaWxlIGVycm9yIEkgZG9uJ3QgaGF2ZSBjb250cm9sIG92ZXIuKQogICAgIC0gQ2hhbmdlIFZFUlNJT05fSUQgLT4gVkVSU0lPTklEIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIEhQJ3MgaW5jbHVkZXMuCiAgIAoxOTk1LTA2LTE2IDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZWQgJ2dtYWtlJyAtPiAnbWFrZScgaW4gYWdlbnQvTWFrZWZpbGUKICAgCjE5OTUtMDYtMTQgMTQ6MDkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgCjE5OTUtMDYtMTQgMTM6NTYgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgUkVBRE1FOgoKICAgVXBkYXRlZCB0aGUgQ2hhbmdlTG9nCiAgIEFkZGVkIGEgInJlYWwiIGRpc2NsYWltZXIgdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMTk5NS0wNi0xNCAxMzo0MyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAtIENyZWF0ZWQgYSBtYWlsaW5nIGxpc3QgdG8gaGFuZGxlIGFubm91bmNlbWVudHMKICAgICAodWNkLXNubXAtYW5ub3VuY2VAZWNlLnVjZGF2aXMuZWR1KQogICAKMTk5NS0wNi0xNCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIENsZWFuZWQgdXAvQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIGNvbmZpZy5oCiAgIC0gR0xPQkFMU0VDVVJJVFkgbm93IHVzZXMgdGhlIGxlZnQgbW9zdCBmb3VyIGJpdHMgaW4gdGhlIE1JQiBhY2wuCiAgICAgVGhpcyBpcyBtb3JlIGNvbXBhdGlibGUgd2l0aCB0aGUgQ01VIGNvZGUgdGhhbiB1c2luZyB0aGUgbGVmdCBtb3N0CiAgICAgMiwgd2hpY2ggd2FzIGRvbmUgcHJldmlvdXNseS4KICAgCjE5OTUtMDYtMTQgMTE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgYWdlbnQ6CiAgIC0gTWliIHRhYmxlIGlzIG5vdyBxc29ydGVkIGF0IHJ1biB0aW1lIGFuZCB0aGUgZXh0ZW5zaWJsZSB2YXJpYWJsZXMgYXJlCiAgICAgc29ydGVkIGluIGF0IHRoaXMgdGltZS4gIFRoaXMgYnJpbmdzIHRoZSBhZ2VudCB1cCB0byBjb3JyZWN0CiAgICAgU05NUHdhbGsvZ2V0bmV4dCBwcm90b2NvbHMuICBZb3UgY2FuIG5vdyB3YWxrIHRoZSBlbnRpcmUgdHJlZQogICAgIGluY2x1ZGluZyB0aGUgZXh0ZW5zaWJsZSBzZWN0aW9ucyBhbmQgaXQgd29uJ3Qgc3RvcC4KICAgICAqIFRoaXMgaGFzIGFuIGFkZGVkIGJvbnVzIG9mIGNoZWNraW5nIHRoZSBtaWIgdGFibGUKICAgICAgIChhZ2VudC9zbm1wX3ZhcnMuYykgZm9yIGNvcnJlY3Qgb3JkZXIuICBJIGhhdmUgYWRkZWQgdGhpbmdzIHRvIHRoZQogICAgICAgd3JvbmcgbG9jYXRpb24gdG9vIG1hbnkgdGltZXMgYW5kIGNhdXNlZCB0aGUgYWdlbnQgdG8gZnVuY3Rpb24KICAgICAgIGluY29ycmVjdGx5LiAgTWFqb3Igd2luLgogICAKMTk5NS0wNi0xMiAxMDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgbG9jYWwvdHJhcG5vdGlmOgogICAgIC0tIHVzZXMgc25tcHYyIG5vdyAoY29ycmVjdGx5KQogICAKMTk5NS0wNi0wOSAxNDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZWQgdGVzdCAteCB0byB0ZXN0IC1mIGluIHNubXBsaWIvTWFrZWZpbGUuICBOb3QgYWxsIE9TZXMKICAgICAoaWUgdWx0cml4KSBoYW5kbGUgdGhpcy4KICAgCjE5OTUtMDYtMDkgMTM6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBGaXhlZCBBdXRoZW50aWNhdGlvbiBlcnJvciAoYWdhaW4pIChjb3JyZWN0IHRoaXMgdGltZSkgYmV0d2VlbgogICAgICAgICByZXZlcnNlZCBieXRlIG9yZGVyIG1hY2hpbmVzLgogICAgIC0tICAjaWZkZWYgaHB1eC9TWVNWL3N1biBpbiBtZDUuYyByZXZlcnNlcyBieXRlIG9yZGVyCiAgIAoxOTk1LTA2LTA5IDEyOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgRml4ZWQgQXV0aGVudGljYXRpb24gZXJyb3IgYmV0d2VlbiByZXZlcnNlZCBieXRlIG9yZGVyIG1hY2hpbmVzLgogICAgIC0tICAjaWZkZWYgaHB1eC9TWVNWIGluIG1kNS5jIHJldmVyc2VzIGJ5dGUgb3JkZXIKICAgCjE5OTUtMDYtMDkgMTA6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQ29ycmVjdGx5IG9yZGVyZWQgdGhlIG1pYiB0YWJsZSBsaXN0LgogICAgIC0tICBOZWVkIHRvIHdyaXRlIGEgZHluYW1pYyBjaGVja2VyL3JlLW9yZGVyZXIuCiAgIAoxOTk1LTA2LTA5IDEwOjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBBZGRlZCBhIFNOTVBCTE9DSyBvcHRpb24gdG8gdGhlIGNvbmZpZy5oIGZpbGUuICBTdXBwb3NlZGlseSBzZXR0aW5nCiAgICAgdGhpcyB0byB6ZXJvIChub3cgdGhlIGRlZmF1bHQpIHdpbGwgYWxsb3cgc25tcCByZXF1ZXN0cyB0byB0aW1lIG91dC4KICAgICBIYXZlbid0IHRlc3RlZCBpdCB0aHJvdWdobHkuCiAgICAgICAtLSBDb250cmlidXRlZCBieSBTYW5qYWkgTmFyYWluIDxuYXJhaW5AdGh1bXBlci5iZWxsY29yZS5jb20+CiAgIAoxOTk1LTA2LTA1IDEyOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIFJFQURNRSwgYWdlbnQvc25tcF92YXJzLmM6CgogICAqIGFnZW50L2V4dGVuc2libGUvTWFrZWZpbGU6CiAgICAgICAtLSAgbm8gbG9uZ2VyIHJlcXVpcmVzIEdOVSBtYWtlCiAgICAgICAtLSAgZXRhZ3Mgbm8gbG9uZ2VyIHJ1biBieSBkZWZhdWx0CiAgIAogICAqIFN1bk9TIGFkZGl0aW9uczoKICAgICAgIC0tIGxvYWRhdmVyYWdlIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgICAgICAtLSBkaXNrIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgIAoxOTk1LTA2LTAyIDE2OjIxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBGaW5hbCBtb2RpZmljYXRpb24gZm9yIGluaXRhbCByZWxlYXNlCiAgIAoxOTk1LTA2LTAyIDE1OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICNpZmRlZiBocHV4IGFyb3VuZCBocHV4IHNwZWNpZmljIG1pYnMKICAgCjE5OTUtMDYtMDIgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICBFUlJPUigpIGRlZmluZSBub3cgZmx1c2hlcyBzdGRvdXQKICAgCjE5OTUtMDYtMDIgMTU6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIE5vdyB1c2VzIHYyIHJlcXVlc3QgcHJvdG9jb2wuCiAgIAoxOTk1LTA2LTAyIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcmludHMgTUlCIHRvIHN0ZG91dCBmb3IgZXhpc3RlbnQgbWlicwogICAKMTk5NS0wNi0wMiAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBhIGNoZWNrIGZvciBTTk1QVjIvU05NUFYyQVVUSCB0eXBlIGF1dGhvcml6YXRpb24uCiAgIAoxOTk1LTA2LTAyIDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgUmVvcmdhbml6ZWQgY29uZmlnLmggaW4gbW9yZSBvciBsZXNzIG9yZGVyIG9mIGltcG9ydGFuY2UKICAgQWRkZWQgZGVmaW5pdGlvbnMgZm9yIFNOTVBWMk9OTFkgdHlwZSBhdXRob3JpemF0aW9uLgogICAKMTk5NS0wNi0wMiAxNToyNiAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICByZW1vdmVkIGJvZ3VzIHR3byBsaW5lcwogICAKMTk5NS0wNS0zMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBOZXc6CiAgIAogICAgIEFkZGVkIHR3byBuZXcgQUNMIHR5cGVzOiAgUFJJVkFVVEhSVyBhbmQgUFJJVkFVVEhSTyB3aGljaCB3aWxsIG9ubHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmsgaWYgdGhlIHJlcXVlc3QgaXMgYXV0aGVudGljYXRlZCAoYnkgYW55dGhpbmcpLgogICAKMTk5NS0wNS0zMSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTmV3OgogICAKICAgICBBZGRlZCAtZiBvcHRpb24gdG8gUkVBRE1FCiAgIAoxOTk1LTA1LTMxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIE5ldzoKICAgCiAgICAgTmV3IE1JQjogIHNubXBFcnJvcnMgdG8gbG9nIHByb2JsZW1zIHdpdGggdGhlIGFnZW50CiAgIAoxOTk1LTA1LTMxIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIE5ldzoKICAgCiAgICAgTmV3IGRlZmluaXRpb24gaW5jbHVkZWQgZm9yIGEgZGVmYXVsdCBwbGFjZSB0byBsb2cgbWVzc2FnZXM6IExPR0ZJTEUKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgICBGb3JrcyBhd2F5IGZyb20gY2FsbGluZyBzaGVsbCBieSBkZWZhdWx0IG5vdyB1bmxlc3MgLWYgc3BlY2lmaWVkLgogICAKICAgTWlzYzoKICAgCiAgICAgSWZkZWZzIGFyb3VuZCBhbGwgYWRkZWQgc2VjdGlvbnMgb2YgY29kZSB0byBkaXNhYmxlIGR1cm5pbmcgY29tcGlsYXRpb24KICAgCjE5OTUtMDUtMzEgMTQ6NDUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBOZXc6CiAgIAogICAgIE5ldyBkZWZpbml0aW9uIGluY2x1ZGVkIGZvciBhIGRlZmF1bHQgcGxhY2UgdG8gbG9nIG1lc3NhZ2VzOiBMT0dGSUxFCiAgICAgTmV3IE1JQjogIHNubXBFcnJvcnMgdG8gbG9nIHByb2JsZW1zIHdpdGggdGhlIGFnZW50CiAgIAogICBCdWdzOgogICAKICAgICBocHV4IGNvbXBsaWVycyBkb24ndCBkZWZpbmUgU1lTViBieSBkZWZhdWx0Li4uCiAgIAoxOTk1LTA1LTE5IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQWRkZWQgbWVudXMgYW5kIG1vdmVkIHNvbWUgY29tbWFuZHMgdGhlcmUgYXMgd2VsbCBhcyBwcmVmcmVuY2VzLgogICBOb3cgcmVzY2FucyBhZnRlciA1IG1pbnV0ZXMgYW5kIGNoZWNrcyB0aGUgbG9nLgogICAKMTk5NS0wNS0xOSAxNTo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgZWdyZXBpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIGZvciBob3N0cyBub3cuCiAgIAoxOTk1LTA1LTE5IDE1OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1vcmUgZGVmaW5lcyBtb3ZlZCB0byBjb25maWcuaAogICAKMTk5NS0wNS0xOSAxNTo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBlY2UtbWliLmRlZjoKCiAgIFdvcmtpbmcgdG93YXJkIGFuIGV4cG9ydGFibGUgdmVyc2lvbi4KICAgCjE5OTUtMDUtMTcgMTI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBXb3JraW5nIHZlcnNpb24uCiAgICAgLS0gIG5vdyBvcGVyYXRlcyBvbiBhIHNlbGVjdGlvbgogICAgIC0tICBzdGlsbCBoYXMgYSBsb3Qgb2Ygcm9vbSBmb3IgaW1wcm92ZW1lbnQuCiAgIAoxOTk1LTA1LTA4IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgRmFpcmx5IGZ1bmN0aW9uaW5nIHZlcnNpb24uCiAgIE5lZWQgdG8gcG9ydCB0byBwZXJsNS4wMDEgJiB0azRiMwogICAKMTk5NS0wNS0wNSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBPcHBzLiAgU2V0IHRwLT5uYW1lbGVuIHRvIGJlIC0xLCB3aGVuIGl0IGlzIGEgdW5zaWduZWQgY2hhci4gIFVzaW5nIDAgbm93LgogICAKMTk5NS0wNS0wNSAxNjoxOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfdmFycy5jCjoKCiAgIFJlLWFycmFuZ2luZyBhbmQgUmUtbmFtaW5nIHN0dWZmIGZvciBleHRlcm5hbCBkaXN0cmlidXRpb24KICAgCjE5OTUtMDUtMDMgMTM6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTWFqb3IgYnVnOgogICAgIENoYW5naW5nIHRyZWUgc2l6ZSBjYXVzZWQgcHJvYmxlbXMuCiAgICAgZXh0ZW5zaWJsZSB0cmVlIG5vdyBhZGRzIGEgaGFsdCBjb25kaXRpb24gKG5hbWVsZW4gPSAtMSkgdG8gY2hlY2sgZm9yCiAgIAoxOTk1LTA1LTAzIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHByb3RvdHlwZSBkZWNsYWlyYXRpb24gZm9yIGZpbmRfZXh0ZW5zaWJsZSgpCiAgIAoxOTk1LTA1LTAzIDA5OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBDaGFuZ2VkIHRpbWVvdXQgdG8gYmUgMzAgc2Vjb25kcy4KICAgCjE5OTUtMDUtMDMgMDk6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgTmV3IHNjcmlwdDoKICAgICB3YWxrcyBhbiBleHRlbnNpYmxlIChvciBhbnkpIG1pYiB0cmVlLiAgSGFzIGJ1aWx0IGluIGtub3dsZWRnZSBvZgogICAgIHRoZSBtaWJzIGZvciBsYXktcGVvcGxlcyB1c2VhZ2UuCiAgIAoxOTk1LTA1LTAzIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgRml4ZWQgYnVnOiAgVXNpbmcgYSB3cm9uZyB2YXJpYWJsZQogICAKMTk5NS0wNS0wMyAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBleHRlbnNpYmxlIG1pYiBlbnRyeS4KICAgICAtLSBmaW5kX2V4dGVuc2libGUgbm93IHJldHVybnMgdGhlIGRlZmF1bHQgbWliIHRyZWUgb3IgYW4KICAgICAgICBhcHByb3ByaWF0ZSBtaWIgdHJlZSB3aXRoIHRoZSBjcmVhdGVkIGV4dGVuc2libGUgZW50cnkgaW4gaXQuCiAgIAoxOTk1LTA1LTAzIDA5OjEwICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIGxvYWQgYXZlcmFnZSBtaWIgZW50cnkKICAgCjE5OTUtMDQtMTcgMTI6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBTdGFydGVkIHdyaXR0aW5nIGEgVGsgaW50ZXJmYWNlLi4uICBDb2RlIGlzIHN0aWxsIHZlcnkgdmVyeSB1Z2x5LCBidXQgd29ya3MuCiAgIAoxOTk1LTA0LTE3IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBOb3cgbG9ncyBpdHNlbGYgY29ycmVjdGx5LgogICAKMTk5NS0wNC0xMyAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGRlcGVuZGFuY3kgZm9yIHdlcy9taWJkZWZzLmggdG8gc25tcF92YXJzLmMKICAgCjE5OTUtMDQtMDcgMTI6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICAtLSBQb3J0ZWQgdG8gZGVjIDUwMDAvMjAwIFVsdHJpeCA0LjIgYXJjaGl0ZWN0dXJlcwogICAgICAgICBUT0RPOiAgbWVtb3J5L3N3YXAgaW4gd2VzLmMKICAgCjE5OTUtMDMtMzEgMTU6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBCdWdzOgogICAgIFdhcyBhY3Rpbmcgc2xvdyBzaW5jZSBpdCB3YXMgY2hlY2tpbmcgZWFjaCBtaWIgbG9jYXRpb24gdHdpY2UuCiAgICAgUmVtb3ZlZCBwZXJsIC13IHdhcm5pbmdzCiAgIAoxOTk1LTAzLTE1IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgc25tcGNoZWNrIGlzIG5vdyB3cml0dGVuIHVzaW5nIHBlcmw1J3Mgb2JqZWN0IG9yaWVudGVkIHJvdXRpbmVzLgogICAKMTk5NS0wMy0xNSAxNDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ01VIEJ1ZyBmaXhlczoKICAgICAtLSBiZXR0ZXIgam9iIHRoYW4gbXkgcHJldmlvdXMgaGFjayBmaXhpbmcgZ2V0X3Rva2VuLgogICAgICAgICsgZ2V0X3Rva2VuIG5vdyByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50IGRpY3RhdGluZyB0aGUgbWF4IHN0cmluZwogICAgICAgICAgbGVuZ3RoIHRoZSB0b2tlbiBjYW4gaG9sZC4KICAgCjE5OTUtMDMtMTUgMDk6MjYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZWQgUkVBRE1FLmhwdXggZmlsZSBmcm9tIEhQLXBvcnQtMS0xLTEuLi4KICAgCjE5OTUtMDMtMTUgMDk6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBwZXJsIC0+IHBlcmw1CiAgIE5vIGxvbmdlciBkZXBlbmRzIG9uIE9WcyBzbm1wc2V0LCBjYW4gbm93IHVzZSBDTVVzIHNubXBzZXQgKC91c3IvbG9jYWwvZXRjKQogICAKMTk5NS0wMy0xMCAxMzozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFkZGVkIC9ldGMgYXMgYW5vdGhlciBwYXRoIHRvIHNlYXJjaCB3aGVuIGxvb2tpbmcgZm9yIG1pYi50eHQKICAgCjE5OTUtMDMtMTAgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1ham9yIGhhY2tpbmcgdG8gcGFyc2UoKSB0byB3b3JrIGF0IGFsbC4KICAgICAtLSBOb3cgSSBkb24ndCB1bnN0YW5kIHdoeSBpdCBldmVyIHN1Y2Nlc3NmdWxseSBwYXJzZWQgdGhlIG1pYi50eHQgZmlsZS4KICAgICAtLSBnZXRfdG9rZW4gd2FzIGNvbnN0YW50bHkgY2FsbGVkIHRvIHJlYWQgREVTQ1JJUFRJT04gc3RyaW5ncyBpbnRvCiAgICAgICAgYSBjaGFyIGFycmF5IG9mIGVpdGhlciA2NCAoTUFYVE9LRU4pIG9yIDQwOTYgKE1BWFFVT1RFU1RSKSBpbgogICAgICAgIGxlbmd0aC4gIE1BTlkgb2YgdGhlIERFU0NSSVBUSU9OIHN0cmluZ3MgYXJlIGxvbmdlciB0aGFuIHRoaXMuCiAgICAgLS0gSGFja2VkIHBhcnNlUXVvdGVkU3RyaW5nIHRvIG1ha2Ugc3VyZSByZXR1cm5lZCBhcmUgc3RyaW5ncyA8IE1BWFFVT1RFU1RSCiAgIAoxOTk1LTAzLTEwIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgI2luY2x1ZGUgPHNvY2tldGlvLmg+IGlzIG5vdCBuZWVkZWQgb24gSFBVWAogICAKMTk5NS0wMy0xMCAxMzoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgQWRkZWQgc25tcGdldG5leHQgYW5kIHNubXBzZXQgdG8gLmN2c2lnbm9yZQogICAKMTk5NS0wMy0wOSAxMzoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBkLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENNVSAyLjEuMiAtPiAyLjEuMi4xIE1lcmdlLgogICAKMTk5NS0wMy0wOCAxNjowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgbWFuL3NubXBidWxrd2Fsay4xLCBtYW4vc25tcGdldC4xLCBtYW4vc25tcGdldG5leHQuMQosIG1hbi9zbm1wbmV0c3RhdC4xLCBtYW4vc25tcHNldC4xLAogICBtYW4vc25tcHRyYW5zbGF0ZS4xLCBtYW4vc25tcHRyYXBkLjg6CgogICBJbml0aWFsIHJldmlzaW9uCiAgIAoxOTk1LTAzLTA4IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9zbm1wZC5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwosIG1hbi9SRUFETUUsIG1hbi9zbm1wdGVzdC4xLAogICBtYW4vc25tcHdhbGsuMSwgbWFuL3NubXBidWxrd2Fsay4xLAogICBtYW4vc25tcGdldC4xLCBtYW4vc25tcGdldG5leHQuMSwKICAgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEsCiAgIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuOCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZpZXcuYywKICAgc25tcGxpYi92aWV3Lmg6CgogICBOZXcgcmVsZWFzZSBvZiBDTVUncyBjb2RlOgogICAgIC0tIFNlZSBSRUFETUUgZm9yIHNwZWNpZmljIGRldGFpbHMKICAgICAtLSBzbm1wc2V0LHNubXBnZXRuZXh0IGFkZGVkCiAgICAgLS0gLXEgZmxhZyBhZGRlZCAicXVpY2sgcHJpbnQiCiAgICAgLS0gYnVnIGZpeGVzCiAgICAgLS0gTWFuIHBhZ2VzIHVwZGF0ZWQKICAgCjE5OTUtMDMtMDIgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBNaW5vciBiYWNrc3BhY2UgY2hhbmdlcy4uLgogICBSZW1vdmVkIC13IHN3aXRjaCBmb3IgcGVybAogICAKMTk5NS0wMy0wMiAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIEZpeCBmcm9tIFRpbTogY29ycmVjdGx5IGZpbmRzIHBpZCBub3cKICAgCjE5OTUtMDItMDkgMTI6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBwZXJsIC13IHByb2R1Y2VzIG5vIHdhcm5pbmdzIG5vdyBpZiBubyBjbWQgbGluZSBhcmdzIGFyZSBnaXZlbi4KICAgQWRkZWQgdHdvIG1vcmUgc3RhdHVzIGluZGljYXRvcnMgKHNsZWVwaW5nLCBjaGVja2luZykgZm9yIGZpeCByb3V0aW5lLgogICBOb3cgc2xlZXBzIGZvciAyIHNlY29uZHMgaW5zdGVhZCBvZiAxIChub3QgcXVpY2sgZW5vdWdoIHRvIGNhdGNoIFggcmVzdGFydHMpCiAgIAoxOTk1LTAyLTA5IDEyOjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgQ2hhbmdlZCBwcyAtZWwgdG8gcHMgLWU6ICBwcyAtZWwgcmVwb3J0ZWQgWCBhcyBiZWluZyBhbGl2ZSBpbnN0ZWFkIG9mIDxkZWZ1bmN0PgogICAKMTk5NS0wMi0wOCAxNToyMCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCBhIG1pYiB0byBwcm92aWRlIGNhcGFiaWxpdHkgZm9yIGlnbm9yaW5nIHRoZSBleGVjIGNhY2hlLgogICAgIC0tICBOZWVkZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGEgJ2ZpeCcgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZSAnZml4JyB3b3JrZWQuCiAgIAoxOTk1LTAyLTA4IDE1OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgUG9rZXMgdGhlIHJlc2V0LWNhY2hlIG1pYiB0byBlbnN1cmUgYSBuZXcgJ3BzJyBvdXRwdXQgZm9yIGZpeGVkIHByb2JsZW1zLgogICAKMTk5NS0wMi0wOCAxNDo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIE5ldyBvcHRpb25zOgogICAgIC15OiAgYWx3YXlzIHRyeSB0byBmaXggdGhlIHByb2JsZW1zCiAgICAgLW46ICBuZXZlciB0cnkgdG8gZml4IHRoZSBwcm9ibGVtcwogICBDdXJyZW50bHkgZGVmYXVsdHMgdG8gbmV2ZXIgKHNob3VsZCBwcm9tcHQpIHRpbGwgSSBjYW4gZ2V0IHBlcmwncwogICAgIGdldGMoU1RESU4pIHRvIHdvcmsuLi4KICAgVXNlcyBzbm1wc2V0IHRvIGFjY29tcGxpc2ggdGhpcywgd2hpY2ggaXMgT1ZzIGFuZCBvbmx5IGxpY2VuY2VkIGZvciBvbmUgaG9zdC4KICAgCjE5OTUtMDItMDggMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBkLmM6CgogICBBZGRlZCAnY2xvc2Ugb24gZXhlYycgZmxhZ3MgdG8gb3BlbiBmaWxlcyAoL2Rldi8qbWVtKikgYW5kIHNvY2tldHMuCiAgICAgLS0gIFByZXZlbnRzIHNwYXduZWQgcHJvY2Vzc2VzIGZyb20ga2VlcGluZyBzbm1wZCBmcm9tIHJlc3RhcnRpbmcuCiAgICAgICAgIChFcnJvcnMgd2VyZTogIENhbid0IGJpbmQgc29ja2V0IChpbiB1c2UpIGFuZCBDYW4ndCBvcGVuIC9kZXYvZG1lbSkKICAgU2V0IE9fUkRPTkxZIGZsYWcgb24gL2Rldi8qbWVtKiBmaWxlcywgcmVxdWlyZWQgYnkgdGhlICdtYW4gcGFnZScgKGVsc2UgdW5kZWYpCiAgIAoxOTk1LTAyLTAzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIHdlcy9leGVjLm8KICAgCjE5OTUtMDItMDMgMTM6NDkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgbWliIGRlZnMgZm9yIHRoZSByZWFkL3dyaXRlIGZpeCBmb3IgcHJvY3MgYW5kIGV4ZWMgZnVuY3Rpb25zCiAgIAoxOTk1LTAyLTAzIDEzOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLCBmaXhwcm9jLmNvbmY6CgogICBBZGRlZCBmaXhwcm9jIGFuZCBpdHMgZGF0YWJhc2UgKGluc3RhbGxlZCBpbiAvbG9jYWwvc2NyaXB0cyBhbmQgL2xvY2FsL2V0YykKICAgQ29waWVkIHRoZSBjdXJyZW50IC9ldGMvZWNlLXNubXBkLmNvbmYgdG8gdGhpcyBkaXJlY3RvcnksIGZvcgogICBhcmNoaXZpbmcuCiAgIAoxOTk1LTAyLTAxIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX2FnZW50LmM6CgogICBBZGRlZCB3cml0ZS1taWIgYWJpbGl0eSB0byBmaXggYSBnaXZlbiBwcm9jZXNzCiAgICAgLS0gd2lsbCBldmVudHVhbGx5IGNhbGwgVGltJ3Mgc2NyaXB0IHRvIGZpeCB0aGUgcHJvY2VzcwogICAgIC0tIERlZmluZWQgaW4gd2VzLmgKICAgCjE5OTUtMDItMDEgMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4ZWQgTWFrZWZpbGUgYnVnOiAgY2FsbGVzICQoTUFLRSkgbm93IGluc3RlYWQgb2YgZXhwbGljaXQgbWFrZS4KICAgCjE5OTUtMDEtMzAgMTM6MzMgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgVmVyc2lvbiBpbmZvcm1hdGlvbiBub3cgY29udGFpbnMgYSBDVlMgdGFnIGluZm8gbWliCiAgIFZFUkNEQVRFIG5vdyB3b3JrcyBwcm9wZXJseS4KICAgCjE5OTUtMDEtMzAgMTE6MTkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgdmVyc2lvbiBtaWIgdG8gZGVmaW5pdGlvbnMuCiAgIAoxOTk1LTAxLTMwIDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHZlcnNpb24gbWliIChWRVJJREVOVCxWRVJEQVRFLFZFUkNEQVRFKQogICBBZGRlZCBtaWJpbmNsLmggYW5kIG1pYmRlZnMuaCB0byBzdGFydCBzcGxpdHRpbmcgdXAgbWlicyBpbiB3ZXMuYyBpbnRvCiAgICAgc2VwZXJhdGUgZmlsZXMuICBJbmNsdWRlIHRoZXNlIHR3byBmaWxlcyB0byBpbmNsdWRlIG5lY2Vzc2FyeSBkZWZzCiAgIEVSUk9STVNHIGRlZnMgbm93IEFMTCByZXR1cm4gY3VycmVudCBudW1lcmljYWwgcmVzdWx0IHdpdGggdGhlIG1zZy4KICAgCjE5OTUtMDEtMjcgMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUHV0IGluIGRlZmluZXMgZm9yIHRoZSBzdWIgbWliIG51bXMge3NubXBfdmFycy5jLCB3ZXMuaH0KICAgCjE5OTUtMDEtMjcgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBBZGRlZCBwYXRocyAoL3Vzci9sb2NhbC9ldGMpIHRvIHNubXB7Z2V0LHdhbGt9CiAgIAoxOTk1LTAxLTI3IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1hZGUgbmxpc3QgZW50cnkgY2hhbmdlcy4gIG5vIGxvbmdlciBkaWVzIGZyb20gYSBBcnBUYWJsZSBxdWVyeS4KICAgCjE5OTUtMDEtMjcgMTI6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTW92ZWQga2VybmVsL25saXN0IHByaW50b3V0IG9mIG5vdCBmb3VuZCBubGlzdCBlbnRyaWVzIG91dCBvZiAjaWZkZWYgaHB1eAogICAKMTk5NS0wMS0yNyAxMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBjcHAgTWlzdGFrZSBmaXg6ICNpZmRlZiBIUFVYIC0+ICNpZmRlZiBocHV4CiAgIAoxOTk1LTAxLTI1IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFBvcnRlZCAoYmFjaykgdG8gU3VuNDoKICAgICAtLSBzd2FwIGFuZCBkaXNrIG1pYnMgbm90IHN1cHBvcnRlZCB5ZXQKICAgICAtLSBmb3VuZCBudW1lcm91cyBidWdzIEkgaGFkbid0IG5vdGljZWQgdW5kZXIgSFBVWCwgbW9zdGx5IHR5cGUKICAgICAgICBjYXN0aW5nLgogICAKMTk5NS0wMS0yNSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEFkZGVkIFN3YXAvTWVtb3J5IG1pYiBjaGVjayAoLjQpLCBub3cgdGhhdCBpdCBjb25mb3JtcyB0byAuezEsMiwxMDAsMTAxfSBzcGVjcy4KICAgQ2hhbmdlZCBmb3JtYXRpbmcgdG8gdXNlICUtbi5ucyBzcGVjaWZpY2F0aW9ucyBpbnN0ZWFkIG9mIHRhYiBzZXBlcmF0aW9ucy4KICAgCjE5OTUtMDEtMjMgMTY6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIEJ1ZyBmaXg6ICBQb2xsZWQgd3JvbmcgbWliICgxMDAgaW5zdGVhZCBvZiAxMDEpIGZvciBlcnJtc2cgc3RyaW5nLgogICAKMTk5NS0wMS0yMyAxMjo1NyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBUeXBvIGZpeGVzIGluIHRoZSBtaWIgZGVmIGZpbGUgZm9yIE9WLgogICAKMTk5NS0wMS0yMyAxMjowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFdvbid0IGNoZWNrIGRvd24gaG9zdHM6LSkKICAgCjE5OTUtMDEtMjMgMTA6NTcgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWxsICh3YXRjaGVkKSBtaWJzIG5vdyB1c2U6CiAgICAgMTogIE1JQklOREVYLCBqdXN0IGFuIGluZGV4IHRvIHRoZSBudW1iZXIgb2YgdmFycwogICAgIDI6ICBFUlJPUk5BTUUsIGEgZ2VuZXJpYyBvbmUgd29yZCBuYW1lIGZvciB0aGUgY2F1c2Ugb2YgRVJST1J7RkxBRyxNU0d9LgogICAKMTk5NS0wMS0yMyAxMDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQWRkZWQgLzEvT1YvYmluIHRvIHRoZSBwYXRoIHRvIGZpbmQgdGhlIHNubXAgdXRpbHMgd2l0aG91dCBwYXRoIGV4dGVuc2lvbnMuCiAgIE1vcmUgdmFyaWFibGUgdXNhZ2U6IHJlbW92ZWQgdXNlIG9mIGNvbW1hbmQgbGluZSBhcmdzIGRpcmVjdGx5LgogICBJZiB0aGUgZXJyb3IgZmxhZyBoYXMgY2hhbmdlZCBiYWNrIHRvIG5vcm1hbCwgb25seSBsb2cgaXQgaW4gdGhlCiAgICAgZWNlLXRvdGFsIGxvZyBmaWxlIGluc3RlYWQuCiAgIAoxOTk1LTAxLTIzIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgV2lsbCB0YWtlIGhvc3RzIGZyb20gdGhlIGxvZyBmaWxlIGlmIG5vbmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAgICAgLS0gIG9yIGlmIHRoZSBmaXJzdCBhcmcgaXMgYSAnLWEnIHdpbGwgKEEpZGQgdG8gdGhlIGNvbW1hbmQgbGluZSBsaXN0LgogICBEaXNwbGF5cyB3aGF0IGhvc3QgaXQgaXMgY2hlY2tpbmcgYXMgaXQgY2hlY2tzIGl0LgogICBDaGFuZ2VkIHRoZSBvdXRwdXQgZm9ybWF0IChJJ3ZlIHlldCB0byBzZWUgaWYgaXQgYWN0dWFsbHkgbG9va3MgZ29vZCB0aG91Z2gpLgogICAKMTk5NS0wMS0xOCAxNToyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEJlZ2lubmluZyBvZiBhIHNjcmlwdCB0byBjaGVjayBlcnJvcnMgd2l0aCBhIG1hY2hpbmUgYW5kIHJlcG9ydCB0aGVtCiAgICAgdmlhIHNubXAKICAgVE9ETzogIG9wdGlvbiB0byBmaXggdGhlIGVycm9ycyBpZiByb290IG9uIGNsb3ZlciAobmVlZCB0byByc2ggdG8gdGhlIG1hY2hpbmUpCiAgIAoxOTk1LTAxLTA1IDE0OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBDaGFuZ2VkIHRoZSB0cmFwbm90aWYgZmlsZSB0byByZWZsZWN0IHJlY2VudCBzb3VyY2UgY2hhbmdlczoKICAgICAtLSByZW1vdmVkIG1lbSBlcnJvciBzZWN0aW9uLi4uICBUaGV5IGFyZSBoYW5kbGVkIHZpYSB0aGUgbm9ybWFsIGVycgogICAgICAgIHJvdXRlIHNpbmNlIHRoZXkgbm93IGhhdmUgYW4gZXJyb3IgbXNnIGxpa2UgdGhlIHJlc3QKICAgICAtLSBFcnJvciBmbGFnIGlzIG5vdyBhdCAxMDAsIGFuZCBlcnJvciBtZXNzYWdlIGlzIGF0IDEwMS4KICAgCjE5OTUtMDEtMDUgMTQ6NDUgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQ2hhbmdlZCB0aGUgbWliIGZpbGUgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBzb3VyY2UgY29kZS4KICAgQWxsIG1pYnMgbm93IGhhdmUgRXJyb3JGbGFnIGFuZCBFcnJvck1zZyBhcyAxMDAsMTAxCiAgIAoxOTk1LTAxLTA1IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRyYXBub3RpZiwgd2VzcmVzdGFydDoKCiAgIGNvcGllZCB0aGUgcmVzdGFydCBhbmQgdHJhcG5vdGlmIHNjcmlwdHMgdG8gdGhlIHNyYyB0cmVlIGZvciBjdnMgYXJjaGl2aW5nLgogICAKMTk5NS0wMS0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBJbml0aWFsIHJlbGVhc2UuCiAgIE5lZWRzIHRvIGJlIHVwZGF0ZWQuCiAgIAoxOTk1LTAxLTA0IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogLmN2c2lnbm9yZSwgc25tcG5ldHN0YXQvLmN2c2lnbm9yZToKCiAgIEp1c3QgYSAuY3ZzaWdub3JlIGZpbGUKICAgCjE5OTUtMDEtMDQgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogLmN2c2lnbm9yZSwgc25tcF92YXJzLmM6CgogICBGZWF0dXJlOgogICAgIEFkZGVkIHRoZSBkaXNrIHdhdGNoaW5nIGZhY2lsaXRpZXMgdG8gcmVwb3J0IGRpc2sgc3BhY2UKICAgICAgIC0tIG5ldyBjb25maWcgb3B0aW9uICdkaXNrIERJU0sgTUlOQVZBSUwnCiAgICAgQWRkZWQgc3VwcG9ydCBmb3IgYSBzZWNvbmQgY29uZmlnIGZpbGUgYXMgQ09ORklHRklMRVRXTwogICAgICAgLS0gZGVmYXVsdHMgdG8gL2V0Yy9lY2Utc25tcGQubG9jYWwuY29uZgogICAgICAgLS0gaW50ZW50OiAgb25lIGlzIHJkaXN0ZWQgYW5kIG9uZSBpcyBtYWNoaW5lIHNwZWNpZmljCiAgICAgICAtLSBUT0RPOiAgTmVlZHMgdG8gZXJhc2UgcHJldmlvdXMgZGVmaW5pdGlvbnMgcmF0aGVyIHRoYW4gYWRkaW5nCiAgICAgICAgICB0d28gd2l0IHRoZSBzYW1lIG5hbWUKICAgCiAgIENoYW5nZToKICAgICBNSUIgZGVmaW5pdGlvbiBjaGFuZ2U6CiAgICAgICAtLSBBbGwgbWlicyB3aXRoIGVycm9yIGZsYWdzIG5vdyB1c2UgRVJST1JGTEFHL0VSUk9STVNHIGluc3RlYWQuCiAgICAgICAtLSBUaGVzZSBkZWZhdWx0IHRvIDEwMCBhbmQgMTAxLCBhbmQgYXJlIHNldCBieSBvbmx5IHR3byBkZWZpbmVzCiAgICAgU2hvcnRlbmVkIGVycm9yIG1lc3NhZ2UgZm9yIHByb2Nlc3MgZXJyb3JzIHRvIGZpdCBvbiB0aGUgc2NyZWVuLgogICAgIFN3YXAgbWliIGNvZGUgY2xlYW51cAogICAKICAgVE9ETzoKICAgICBBZGRlZCBiZWdpbm5pbmdzIG9mIGtlcm5hbCBsb2NraW5nIHRlc3RzLiAgTmVlZCB0byBmaW5kIGEgbWFjaGluZQogICAgIHdpdGggYSBicm9rZW4gcnBjLmxvY2tkIHRvIHRlc3QgdGhlIGNvZGUgdGhvdWdoLgogICAKICAgQnVnczoKICAgICBNeSBubGlzdCBhcnJheSBkaWRuJ3QgaGF2ZSBhIE5VTEwgZW5kaW5nLgogICAKMTk5NC0xMi0xNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgdGhlIFJFQURNRSBmaWxlCiAgIAoxOTk0LTEyLTE0IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2hwdXguYzoKCiAgIEFkZGVkIGhwdXguYwogICAKMTk5NC0xMi0xNCAxNjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2NsaWVudC5jCjoKCiAgIEhQLVVYIHBvcnQgb2YgdGhlIENNVSBjb2RlCiAgIAoxOTk0LTEyLTE0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgbWliSUkudHh0LAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9hc24xLmgsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvYWNsLmMsCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3ZpZXcuYwosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaAosIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi92aWV3LmgsCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGdldC5jLCBzbm1wbGliLy5wdXJlCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wX2FwaS4zCiwgbWFuL3NubXB0ZXN0LjEsIG1hbi9zbm1wd2Fsay4xLAogICBtYW4vdmFyaWFibGVzLjUsIG1hbi9SRUFETUUsIG1hbi9kZXMuMQosIG1hbi9kZXMuMzoKCiAgIEluaXRpYWwgQ01VIHNubXAgY29kZSwgdmVyc2lvbiAyLjEuMgogICAKMTk5NC0xMi0xNCAxNTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIFJFQURNRS5jbXUsIG1pYklJLnR4dCwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYwosIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmgKLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmgKLCBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvcGFydHkuYywKICAgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvdmlldy5jCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvdmlldy5oLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBnZXQuYwosIHNubXBsaWIvLnB1cmUsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcF9hcGkuMywKICAgbWFuL3NubXB0ZXN0LjEsIG1hbi9zbm1wd2Fsay4xLCBtYW4vdmFyaWFibGVzLjUsCiAgIG1hbi9SRUFETUUsIG1hbi9kZXMuMSwgbWFuL2Rlcy4zOgoKICAgSW5pdGlhbCByZXZpc2lvbgogICAKMTk5NC0xMS0xOCAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywKICAgc25tcGQuYzoKCiAgIEFkZGVkIHNvbWUgaHAtbWlicwogICAKMTk5NC0xMS0wNCAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBWaXJ0dWFsIE1lbW9yeSBtaWIgKGN1cnJlbnRseSBvbmx5IHRvdGFsIGFuZCB1c2VkKQogICAKMTk5NC0xMC0yOCAxMzozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIGhwLXV4IG1hY2hpbmVzIG5vdyByZXR1cm4gdGhlIGNvcnJlY3QgbWliIGxvY2F0aW9uIGZvciB0aGVpciBhcmNoIHR5cGUuCiAgIEFkZGVkIGhwLXV4IHRvIHRoZSBpZmRlZnMgZm9yIFJvdXRlX1NjYW5fUmVsb2FkKCkgZnVuY3Rpb24gZm9yIGNvcnJlY3QKICAgICAga2VybmFsIHJlYWRpbmcuCiAgIAoxOTk0LTEwLTI2IDEzOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHBhcnR5X3ZhcnMuYywgc25tcF92YXJzLmM6CgogICBEZWMgY29tcGlsYXRpb24gYWNoaXZlZCwgdGhvdWdoIGl0cyBub3Qgb3BlbmluZyBhbnkgcG9ydHMgd2hlbiBydW4uCiAgIAoxOTk0LTEwLTI0IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHRoZSBleHRlbnNpYmxlIG1pYiBzZWN0aW9uLgogICAKMTk5NC0xMC0yMCAxNjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF92YXJzLmMsIHZhcl9zdHJ1Y3QuaDoKCiAgIEFkZGVkIHRoZSByZW1haW5pbmcgaHAtdXggc3ltYm9scwogICBwdXQgYWxsIGRlcGVuZGFuY2llcyBmb3IgbXkgc3R1ZmYgdW5kZXIgd2VzLwogICBtb3ZlZCB0aGUgdmFyaWFibGUgZGVjbGFpcmF0aW9ucyAoc3RydWN0cykgdG8gdmFyX3N0cnVjdHMuaCBzbyB0aGV5IGNvdWxkIGJlCiAgIHJlZmVyZW5jZWQgYnkgb3RoZXIgZmlsZXMuCiAgIENoYW5nZWQgdGhlIGRlZmF1bHQgdmFsdWVzIHRvIGhwLXV4IGZyb20gQlNEIGFuZCBvdGhlciBtaXNjIHN0cmluZ3MKICAgQWRkZWQgYXBwcm9wcmlhdGUgZGVwZW5kYW5jaWVzIHRvIHRoZSBtYWtlZmlsZQogICBDaGFuZ2VkIGVycm9ycyBhbmQgYWRkZWQgc3R1ZmYgdG8gdGhlIHZhcmlhYmxlIGRlY2xhaXJhdGlvbnMgZm9yIG15IHN0dWZmCiAgIAoxOTk0LTEwLTE0IDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBrZXJuZWwuYywgc25tcF92YXJfcm91dGUuYwosIHNubXBfdmFycy5jOgoKICAgZml4ZWQgbmxpc3QgZm9yIHRoZSBocHMuICBOb3Qgc3VyZSBvZiB0aHJlZSBwYXJ0aWN1bGFyIG5saXN0CiAgIHJlZmVyZW5jZXMgKGZvciB0aGUgYXJwIHRhYmxlKS4gIFRoZSByZXN0IGFyZSB3b3JraW5nLgogICBBbHNvIGFkZGVkIHdlcy8qIGRvIHRoZSBkZXBlbmRhbmNlcyBmb3Igc25tcF92YXJzLmMKICAgCjE5OTQtMTAtMTQgMDg6MzkgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBfdmFycy5jOgoKICAgSSBmaXhlZCB0aGUgc291cmNlIGZvciBjb21waWxhdGlvbiBhbmQgYmVnYW4gYWRkaW5nIG15IG93biBtaWIgZGVmcy4KICAgQW55IGluY2x1ZGVkIG1pYnMgd2hpY2ggbWFrZSBrZXJuYWwgcmVhZHMgc3RpbGwgZmFpbC4KICAgCjE5OTQtMTAtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGhpc3RvcnkuaCwga2VybmVsLmMKLCBzbm1wX2FnZW50LmMsIHNubXBfdmFyX3JvdXRlLmMsCiAgIHNubXBfdmFycy5oLCBzbm1wZC5jLCBhbGFybS5jLAogICBldmVudC5jLCBoaXN0b3J5LmMsIHBhcnR5X3ZhcnMuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFyc19ldmVudC5oLCB2aWV3X3ZhcnMuYwosIGFjbC5jb25mLCBhY2xfdmFycy5jLCBhbGFybS5oCiwgY29udGV4dF92YXJzLmMsIGV2ZW50LmgsIG0ybS5oCiwgc25tcF92YXJzX20ybS5oLCB2aWV3X3BhcnNlLmMsIC5wdXJlCiwgcm91dGVfd3JpdGUuYzoKCiAgIEluaXRhbCBDTVUgc291cmNlLgogICAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjggLT4gVjUuMC45CgoyMDAzLTA5LTA1IDIzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTA5LTA1IDIzOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZvcmdvdCBhIHRlc3QgYWZ0ZXIgdGhlIGlmCiAgIAoyMDAzLTA5LTA1IDIzOjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDktMDUgMjM6MzAgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMwosIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMKLCBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zCiwgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMwosIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zLAogICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlCiAgIAoyMDAzLTA5LTA1IDIzOjI1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIDUuMC45CiAgIAoyMDAzLTA5LTA1IDIyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM4MDA1NjEgZnJvbSBCb2IgUm93bGFuZHMgdG8gZml4IDY0Yml0IHByb2JsZW1zICgtPiBzaXplX3QpCiAgIAoyMDAzLTA5LTA1IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFBhdGNoICM4MDA0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIDY0IGJpdCBhZ2VudHggcHJvYmxlbXMKICAgCjIwMDMtMDktMDUgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUGF0Y2ggIzc5MjAwOCBmcm9tIFRob21hcz8gdG8gYWxsb3cgdXNtVXNlciB0b2tlbnMgdG8gb3ZlcnJpZGUgcHJldmlvdXMgZW50cmllcwogICAKMjAwMy0wOS0wNSAyMjowNCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBjbWQuMS5kZWYsCiAgIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcG5ldHN0YXQuMSwKICAgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLAogICBzbm1wdGVzdC4xLmRlZiwgc25tcHRyYW5zbGF0ZS4xLmRlZjoKCiAgIFBhdGNoICM3ODk0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIGEgbG9uZyBuZWVkZWQgb3ZlcmhhdWwgb2YgdGhlIG1hbnVhbCBwYWdlcy4KICAgCjIwMDMtMDktMDUgMjI6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgb25lIHJ1bi1hd2F5IHBhdGNoCiAgIAoyMDAzLTA5LTA1IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmM6CgogICBoaWdoIGxldmVsIGNvbW1lbnRzIGFib3V0IGNvbnRhaW5lZCBjb3B5cmlnaHRzIG1vdmVkIGZyb20gdGhlIG1haW4gYnJhbmNoCiAgIAoyMDAzLTA5LTA1IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgdXBkYXRlcwogICAKMjAwMy0wOS0wNSAyMToyMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCjoKCiAgIEFkZCBvcHRpb25hbCBhcmd1bWVudHMgdG8gdGhlIC0td2l0aC1wZXJsLW1vZHVsZXMgZmxhZyBmb3IgcGFzc2luZyBkb3duCiAgIAoyMDAzLTA5LTA1IDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggYSBnZXRidWxrIGJ1ZyBwb2ludGVkIG91dCBieSBKdXJpaiBTbWFrb3YuCiAgIAoyMDAzLTA3LTI3IDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggZmlsZW5hbWUgaW4gZXJyb3IgbXNnLCBhcyBub3RlZCBpbiBjb2RlcnMKICAgCjIwMDMtMDctMjQgMTg6MTQgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBhY2Nlc3MgdG8gYXVnbWVudHMgdGFnIChmaXggYnVnIDc0MDA4MjogbWliMmMgaGFuZGxlcyBBVUdNRU5UaW5nIHRhYmxlcwogICBpbmNvcnJlY3RseSkKICAgCjIwMDMtMDctMjQgMTg6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBpbmRleGVzIGZyb20gYXVnbWVudGVkIHRhYmxlIGZvciB0YWJsZXMgdXNpbmcgYXVnbWVudHMgKGZpeAogICBidWcgNzQwMDgyOiBtaWIyYyBoYW5kbGVzIEFVR01FTlRpbmcgdGFibGVzIGluY29ycmVjdGx5KQogICAKMjAwMy0wNy0yNCAwNToyNyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgYXMgZW1wdHkgaWYgbm90IGRlZmluZWQKICAgCjIwMDMtMDctMTAgMDk6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggdHlwbzsgdXNlIHdoaWNoIHRvIGZpbmQgc2NwOyBhZGQgZXh0cmEgY29uZmlnIHRvIG90aGVyIGNvbmZpZwogICAKMjAwMy0wNy0wOSAyMDo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBob3N0L3BhdGggdXBsb2FkOyB0cnkgdG8gZXh0cmFjdCBtb3JlIGluZm8gZnJvbSBtYWtlIGxvZyBvbiBlcnJvcgogICAKMjAwMy0wNy0wOSAyMDo1NCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItcGFja2FnZSwgbnNiLW5pZ2h0bHk6CgogICBhZGQgaG9zdC9wYXRoIHVwbG9hZCBwYXJhbXM7IHVzZSBuZXcgbnNiLWRlZmF1bHQtcGF0aHMKICAgCjIwMDMtMDctMDMgMjA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBjb250YWluZXJfbnVsbC5jCjoKCiAgIG9vcHMgLSBubyBuZXcgZmVhdHVyZXMgZm9yIDUuMC44CiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9saXN0X3NzbGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBjb250YWluZXJfbnVsbC5jCjoKCiAgIG5ldyBjb250YWluZXJzCiAgIAoyMDAzLTA3LTAyIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggIzcyNDkyNSBmcm9tIFBldGVyIFdhcmFzaW4gdG8gZml4IG5ldHNubXBfc3VidHJlZV91bmxvYWQoKSB0byB1cGRhdGUgdGhlIHJvb3QgcG9pbnRlcgogICAKMjAwMy0wNy0wMiAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCBzbm1wbGliL3BhcnNlLmMKOgoKICAgUGF0Y2ggIzc2MDQ0OCBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gdG8gZml4IGJ1ZyAjNzUxOTEzIHRvIHByb3RlY3QgYSBmZXcgbWlub3Igc2VjdXJpdHkgdmlvbGF0aW9ucwogICAKMjAwMy0wNy0wMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zdHJsY3B5LmM6CgogICBmaWxlIHN0cmxjcHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zdHJsY3B5LmM6CgogICBQYXRjaCAjNzYwNDE3IGZyb20gQm9iIFJvd2xhbmRzL1N1biBmb3IgZml4aW5nIEJ1ZyAjNzUxOTIwIGZvciBtaW5vciBzZWN1cml0eSBwcm9ibGVtcyAoUElEIGZpbGUgdW5saWtlZCBmaXJzdCwgYW5kIHVzZSBzdHJsY3B5IGluc3RlYWQgb2Ygc3RyY3B5LiAgQSBuZXcgc3RybGNweSBmaWxlIHdhcyBkZWZpbmVkIGlmIG5vdCBkZWZpbmVkIGZvciBhIHN5c3RlbS4KICAgCjIwMDMtMDctMDIgMTA6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBkb24ndCB1c2UgaXNzcGFjZSBhbmQgaXNwcmludCBzaW11bHRhbmlvdXNseQogICAKMjAwMy0wNy0wMiAxMDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgY29tbWVudCBjaGFuZ2UgZm9yIGNsYXJpZmljYXRpb24KICAgCjIwMDMtMDctMDIgMTA6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBQYXRjaCAjNzY0MDQ3IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb24gZnJvbSBzbm1wX2RlYnVnLmggYW5kIGZpeCBhIGZldyBjb21tZW50cwogICAKMjAwMy0wNy0wMiAxMDoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNzU5MzA5IGZyb20gU3RlcGhlbiBGcmllZGwgdG8gYWRkIHByb21wdCBvdmVyLXJpZGUgZmxhZyBkZXNjcmlwdGlvbnMgdG8gcHJvbXB0IG91dHB1dAogICAKMjAwMy0wNy0wMiAxMDoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNzU5Mjk4OiBmaXggc3BlbGxpbmcgZXJyb3IKICAgCjIwMDMtMDYtMjUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcHJveHlpbmcgZm9yIGdldGJ1bGsKICAgCjIwMDMtMDYtMjIgMDc6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCB1c2FnZSBmb3IgZmxhZyBvcmRlcmluZwogICAKMjAwMy0wNi0xNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGNvbW1lbnQgYWJvdXQgaXQgYmVpbmcgYnJva2VuLCBhcyBwb2ludGVkIG91dAogICBieSBCcnVjZS4KICAgCjIwMDMtMDYtMTYgMTQ6NTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBzdXBwb3J0ICwgc2VwYXJhdGVkIGFyZ3VtZW50cyB0byAtVCBsaWtlIC1oIHNheXMgaXQgd2lsbC4KICAgCjIwMDMtMDYtMTYgMTQ6NTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBCcnVjZSBTaGF3J3MgcGF0Y2ggNzU1NTUzIHRvIGZpeCBSVU5URVNUUyB0ZXN0IG51bWJlciByZXBvcnRpbmcgd2hlbgogICB0ZXN0aW5nIHN1YnNldHMgYXJlIHVzZWQuCiAgIAoyMDAzLTA2LTE2IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzU1NTQwIGZyb20gQnJ1Y2UgU2hhdyBhbmQgSVJDOlNlYk5vYiB0byBmaXggYnVnICM3MDE0MzkgZm9yIDY0IGJpdCBzb2xhcmlzIHN5c3RlbXMgYW5kIDY0IGJpdCBpbnRlZ2VycyByZXR1cm5lZCBieSBnZXRLc3RhdAogICAKMjAwMy0wNi0xNiAxNDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBQYXRjaCAjNzU0MTA1IGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggc29tZSBzcGVsbGluZyBlcnJvcnMKICAgCjIwMDMtMDYtMTAgMTU6NDggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCZXdhcmUgb2YgZGVyZWZlcmVuY2luZyBhIE5VTEwgcG9pbnRlcgogICAKMjAwMy0wNi0xMCAxMDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRoZSB1bnVzZWQgZnVuY3Rpb24gYXMgcG9pbnRlZCBvdXQgYnkgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA2LTA5IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvc25tcF9hZ2VudC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBMb25nIG92ZXJkdWUgcGF0Y2ggIzY5NTE5MiBmcm9tIFJvbiBUYWJvciB0byBmaXggdGhlIFZBQ00gc3Bpbm5pbmcgcHJvYmxlbSB0aGF0IEkgZGlkbid0IHF1aXRlIGZpeCBiZWZvcmUKICAgCjIwMDMtMDYtMDkgMTY6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTCiwgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgZml4IGJ1ZyAjNzA2NzEwIHRvIHNob3cgd2hlbiBwcml2YWN5IGhhcyBiZWVuIGRpc2FibGVkCiAgIAoyMDAzLTA2LTA5IDE1OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBidWcgIzc0ODQzMSBmcm9tIEpvaG4gU2hpdmVyOiBmaXggdGhyZWFkLXNhZmUgcHJvYmxlbXMgd2l0aCBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbiAod2hpY2ggd2FzIG1pc3NpbmcgaW4gdGhlIDUueCBsaW5lIGFueXdheSkKICAgCjIwMDMtMDYtMDkgMTQ6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5NYXRzdXNoaXRhLnR4dCwgUkVBRE1FLk1hdHN1c2hpdGEudHh0OgoKICAgUGF0Y2ggIzc0ODMwNSBmcm9tIHNyaW5pdmFzYSByYW8gZ3VydXN1IGRlc2NyaWJpbmcgaG93IHRvIGJ1aWxkIG5ldC1zbm1wIG9uIE1hdHN1c2hpdGEgZW1iZWRkZWQgc3lzdGVtcwogICAKMjAwMy0wNi0wOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQYXRjaCA3NDYzMzk6IE90dG8gU29sYXJlcyBmaXhlcyBhIGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGxpbnV4CiAgIAoyMDAzLTA2LTA5IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBwYXRjaCAjNzQwOTE4IGZyb20gRXJpYyBFLiBCb3dsZXM6IGZpeCBwYXNzIHRocm91Z2ggaW52b2NhdGlvbiBmb3IgU0VUcwogICAKMjAwMy0wNi0wOSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc0OTA2MiB0byBmaXggY2FjaGluZyBjcmFzaGluZyBhbmQgY2xhc2hpbmcgdW5kZXIgU29sYXJpcwogICAKMjAwMy0wNi0wOSAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHBhdGNoICM3NDkxMDMgZnJvbSBHYXJyeSBDIE1hcnNoYWxsIHRvIGZpeCB0aGUgcHJveHkgd2hlbiBhIHRpbWVvdXQgb2NjdXJzIGZyb20gdGhlIHRhcmdldAogICAKMjAwMy0wNi0wNiAyMzoxNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggbWlzc2luZyBsZW5ndGggYnl0ZSB3aGVuIHNldHRpbmcgaW5kZXggd2l0aCBjaGVja3MgZGlzYWJsZWQKICAgCjIwMDMtMDUtMjggMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIHVudXNlZCBjb2RlIGFzIHBvaW50ZWQgb3V0IGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDUtMjggMTQ6MjkgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIGFkZGVkIFY0L1Y1IG5vdGUgZnJvbSBtYWluIGJyYW5jaCB0byBwYXRjaGVzCiAgIAoyMDAzLTA1LTIzIDExOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmcmVlIGNvbnRhaW5lciBhZnRlciBmcmVlaW5nIGNvbnRlbnRzCiAgIAoyMDAzLTA1LTIzIDExOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdXBkYXRlIGNvbnRhaW5lciBmcmVlIG1hY3JvL2NvZGUgdG8gZGVhbCB3L3BvaW50ZXIgYmVpbmcgZGVsZXRlZAogICAKMjAwMy0wNS0yMyAxMToyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBFWFRFTlNJQkxFTUlCIC0+IFVDREFWSVNfTUlCCiAgIAoyMDAzLTA1LTE0IDEwOjMwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZy5pbgogICAKMjAwMy0wNS0xNCAxMDoyOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBuZXQtc25tcC1jb25maWcgY2htb2QgdG8gd29yayBmcm9tIGNvbmZpZ3VyZSBhbmQgY29uZmlnLnN0YXR1cwogICAKMjAwMy0wNS0xMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoICM3MzU1MTEgZnJvbSBBbGV4IEJ1cmdlcjogZml4IHNubXB0cmFwZCB0byBlbnN1cmUgdGhlcmUgYXJlIHRoZSBjb3JyZWN0IG51bWJlciBvZiB2YXJiaW5kcwogICAKMjAwMy0wNS0xMiAyMjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIFBhdGNoICM3MzY3ODQgZnJvbSBSb24gVGFib3I6IGZpeCBwcm94aWVzIGZvciByZXN0YXJ0ZWQgTlNNUHYzIHN1Yi1hZ2VudHMKICAgCjIwMDMtMDUtMDggMTY6MTYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1lbnRpb24gQW5kcmV3IEZpbmRsYXkKICAgCjIwMDMtMDUtMDggMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAoZXhjZWxsZW50KSBwYXRjaCAjNzA1NTY2IGZyb20gQW5kcmV3IEZpbmRsYXkgb24gcGVybCBhZ2VudCBzdXBwb3J0OgogICAKICAgMSkgQWdlbnQgY2Fubm90IHJldHVybiBNQUMgYWRkcmVzc2VzIGNvbnRhaW5pbmcgemVybyBvY3RldC4KICAgCiAgIDIpIEFnZW50IGNvcmVkdW1wcyB3aGVuIHRyeWluZyB0byByZXR1cm4gSVAgYWRkcmVzc2VzCiAgIGlmIHRoZXNlIGFyZSBzdXBwbGllZCBhcyBkb3R0ZWQtcXVhZCBvciBhcyBhIGhvc3RuYW1lCiAgIHRoYXQgZmFpbHMgdG8gcmVzb2x2ZS4KICAgCiAgIDMpIEFnZW50IGNvcnJ1cHRzIE9JRCB2YWx1ZXMuCiAgIAogICA0KSBBZ2VudCB0cnVuY2F0ZXMgYW55IE9DVEVUX1NUUklORyBvciBCSVRfU1RSSU5HIHRoYXQKICAgY29udGFpbnMgYSB6ZXJvIG9jdGV0ICh0aGlzIGlzIHRoZSByb290IGNhdXNlIG9mICgxKSBhYm92ZSkKICAgCiAgIEFQSSBjaGFuZ2VzIGludHJvZHVjZWQ6CiAgIAogICBhKSBJUCBhZGRyZXNzZXMgbm93IHBhc3NlZCBhcyBiaW5hcnkgc3RyaW5ncyAoNCBvY3RldHMKICAgZm9yIElQdjQpIHJhdGhlciB0aGFuIGRvdHRlZC1xdWFkIG9yIG5hbWUuIFRoaXMKICAgc2lkZXN0ZXBzIHRoZSBJUHY0L0lQdjYgcHJvYmxlbSBhbmQgbGVhdmVzIHRoZSBjYWxsaW5nCiAgIHNjcmlwdCB0byBkZWFsIHdpdGggbmFtZS0+YWRkcmVzcyByZXNvbHV0aW9uIGFuZAogICBhc3NvY2lhdGVkIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMy0wNS0wOCAwOTo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWVudGlvbiBBbGV4IEJ1cmdlciwgd2hvIHN1Ym1pdHRlZCB0aGUgcGVybCB3aW4zMiBwYXRjaGVzCiAgIAoyMDAzLTA1LTA4IDA5OjMyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtZW50aW9uIFN0ZXBoZW4KICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIHBhdGNoICM3MTAyNzUgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogY29uc3QgZml4ZXMgZm9yIEFQSXMgdGhhdCBkb24ndCBtb2RpZnkgdGhlaXIgYXJndW1lbnRzCiAgIAoyMDAzLTA1LTA4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBtaXNzZWQgYSBjb21taXQgZm9yIGEgcGVybCBwYXRjaAogICAKMjAwMy0wNS0wOCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBBcHBsaWVkIHBhdGNoICM3MTIxMDE6IG1pbm9yIGlyaXggZml4CiAgIAoyMDAzLTA1LTA4IDA5OjIxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTWVudGlvbiBwYXRjaCAjNzE1NjAzCiAgIAoyMDAzLTA1LTA4IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1JFQURNRSwgU05NUC9TTk1QLnhzCiwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBwYXRjaCAjNzE1NjAzOiBmaXggcGVybCBtb2R1bGUgYnVpbGRzIHVuZGVyIHdpbmRvd3MKICAgCjIwMDMtMDUtMDggMDc6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICB0cnkgdG8gdXNlIGRlZmF1bHQgY29udGFpbmVyIGlmIG5vbmUgc3BlY2lmaWVkOyBub24tZXhpc3RlbnQgcm93IHN0YXR1cyBub3QKICAgbGVnYWwgZm9yIGEgbmV3IHJvdzsgc2FuaXR5IGNoZWNrIGFzc2VydHM7IHJlbW92ZSB1bnVzZWQgY29vcGVyYXRpdmUKICAgbm90aWZpY2F0aW9uIGNvZGU7IGNoZWNrIGZvciBudWxsIHRhYmxlIGNvbnRhaW5lcgogICAKMjAwMy0wNS0wOCAwNzowNiAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIG9iamVjdF9tb25pdG9yIGFzIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcgYW5kIHdvdWxkIGJlIGEgbmV3IGZlYXR1cmUgaWYKICAgaXQgZGlkCiAgIAoyMDAzLTA1LTA4IDA3OjA1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHN5c25hbWUgdHJhbnNsYXRpb24gZm9yIC87IGFsbG93IGV4dHJhIGNvbmZpZyB0byBiZSBzcGVjaWZpZWQgaW4KICAgZW52aXJvbm1lbnQgdmFyCiAgIAoyMDAzLTA1LTA4IDA3OjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBjaGcgTkVUX1NOTVBfVVNFX0FTU0VSVCBkZWZpbmUgdG8gTkVUU05NUF9VU0VfQVNTRVJUIHRvIGJlIGNvbnNpc3RlbnQKICAgCjIwMDMtMDUtMDggMDY6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBhcHBseSBwYXRjaCBbIDcyNDkyNyBdIHRvIGZpeCBsb2cgbXNnOyBhZGQgXG4gdG8gbG9nIG1zZ3MKICAgCjIwMDMtMDUtMDUgMTU6MzUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAzLTA1LTA1IDEwOjM1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wNS0wNSAxMDoyOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW46CgogICBjaG1vZCBuZXQtc25tcC1jb25maWcgYWZ0ZXIgY29uZmlndXJlLCBpbnN0ZWFkIGluIG1ha2UKICAgCjIwMDMtMDQtMDMgMTU6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIHdyYXAgU05NUF9GUkVFIG1hY3JvIHcvZG8gd2hpbGUsIHNvIGl0IHdvbid0IGFmZmVjdCBpZi90aGVuIGZsb3cKICAgCjIwMDMtMDMtMjggMDY6NDggIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1OgoKICAgS2VuIEhvcm5zdGVpbiBub3RlZCB0aGF0IHRoZSByd3VzZXIgLXMgZmxhZyB3YXMgbWlzc2luZyBpdCdzIGFyZ3VtZW50CiAgIAoyMDAzLTAzLTI4IDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIGZvciBtaXNjIGtyYjUgZml4ZXMgKGVuY3J5cHRpb24gdHlwZXMsIE5ldyBjcnlwdG8gc3VwcG9ydCwuLi4KICAgCjIwMDMtMDMtMTkgMTE6NDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSB0cmFpbGluZyBcIGZyb20gcGVybCBydWxlcwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC43IC0+IFY1LjAuOAoKMjAwMy0wMy0xNyAxNzozMyAgcnN0b3J5CgogICAqIE5FV1MsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywKICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zOgoKICAgdXBkYXRlIGZvciA1LjAuOAogICAKMjAwMy0wMy0xNyAxNzoyMCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRCiwgUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuOCApCiAgIAoyMDAzLTAzLTE0IDE0OjU1ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgcGVybC9TTk1QL1NOTVAucG0sIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgucHJlMgogICAKMjAwMy0wMy0xNCAxNDo0MCAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgucHJlMgogICAKMjAwMy0wMy0xNCAxMzo1MyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMKOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDEzOjQ1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB0cmFpbGluZyBzbGFzaCBvbiBzcmNkaXIgZm9yIGNvbW1lbnQgY2hlY2tzCiAgIAoyMDAzLTAzLTE0IDEzOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBleHRyYSBtb2R1bGVzIGFuZCB0cmFuc3BvcnRzCiAgIAoyMDAzLTAzLTE0IDEyOjQ0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICB1c2UgbmV3IG1hY3JvIGZvciBpbmxpbmluZzsgZml4IHNvbWUgaW5kZW50IG1hZG5lc3MKICAgCjIwMDMtMDMtMTQgMTI6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1c2UgbmV3IG1hY3JvIGZvciB0ZXN0aW5nIGlmIGlubGluaW5nIGlzIG9uCiAgIAoyMDAzLTAzLTE0IDEyOjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgaHB1eC5oLAogICBpcml4Lmg6CgogICBkb24ndCB1bmRlZiBpbmxpbmUKICAgCjIwMDMtMDMtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVuYW1lIG1hY3JvIHVzZWQgdG8gdGVzdCBmb3IgaW5saW5pbmcKICAgCjIwMDMtMDMtMTQgMTI6MzkgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGlmIGlubGluZSBtYWNybyBub3QgZGVmaW5lZCwgZGVmaW5lIGFzIGVtcHR5CiAgIAoyMDAzLTAzLTE0IDEyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jCiwgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCBzbm1wbGliL2RhdGFfbGlzdC5jCiwgc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIHJlcGxhY2UgaW5saW5lIHcvbWFjcm8KICAgCjIwMDMtMDMtMTMgMTk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4gdG8gZml4IHNvbWUgQWdlbnRYIChtb3N0bHkpIG1lbW9yeSBsZWFrcwogICAKMjAwMy0wMy0xMiAxMzo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgcGF0Y2ggIzY5OTM4MDogRnJvbSBDaHJpc3RvcGhlIEthbHQ6IG1ha2UgbmV0LXNubXAtY29uZmlnIGRvIHdoYXQgaXQncyBkb2N1bWVudCB0byBkbyAoYWRkIC1MQGxpYmRpckApCiAgIAoyMDAzLTAzLTEyIDExOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCAjNzAwNjcyOiByZXNldCBpdG1wIHRvIHRoZSBuZXcgdmFsdWUgbGVuZ3RoIGFmdGVyIGRlY29kaW5nIGEgaGV4IHN0cmluZwogICAKMjAwMy0wMy0xMSAxNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgQXBwbGllZCBvcGVuc3NsIGR5bmFtaWMgdmVyc2lvbiBoYWNrL2ZpeAogICAKMjAwMy0wMy0xMSAxNToxNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIFdSQVBMSUJTIHZhciBpbnN0ZWFkIG9mIGRpcmVjdCBzdWJzdGl0dXRpb24KICAgCjIwMDMtMDMtMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgV1JBUExJQlMgdG8gLS1hZ2VudC1saWJzIGFuZCAtLWV4dGVybmFsLWFnZW50LWxpYnMKICAgCjIwMDMtMDMtMTEgMDA6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICByZXZlcnQgdG8gMi4xMwogICAKMjAwMy0wMy0wNiAwMTo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wMy0wNiAwMTo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBsaWJ3cmFwIHcvbnNsOyBtYWtlIHN1cmUgYWxsIHF1b3RlcyByZXN0b3JlZCBiZWZvcmUgdXNpbmcgQUMgbWFjcm9zLiBUaGlzCiAgIHNlZW1zIHRvIG1lc3MgdXAgdGhlIGNvbmZpZyBvdXRwdXQgd2hpbGUgY2hlY2tpbmcgZm9yIG1vZHVsZXMsIGJ1dCB3L291dCBpdCwKICAgSSBnZXQgZXJyb3JzIGZyb20gbTQgd2hlbiBydW5uaW5nIGF1dG9jb25mLgogICAKMjAwMy0wMy0wNSAyMDo1MSAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgbmV0LXNubXAtY29uZmlnLXgKICAgCjIwMDMtMDMtMDUgMjA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hlY2sgZm9yIGFuIG9wdGlvbmFsIDNyZCBwYXJhbSwgbm9jdnMsIHRvIG5vdCBjb21taXQgYWZ0ZXIgdXBkYXRpbmcgdmVyc2lvbgogICAKMjAwMy0wMy0wNSAyMDo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBwdXQgYWxsIHRoZSB2ZXJzaW9uIG51bWJlciBjaGFuZ2VzIGluIHRoZSBzYW1lIHN0ZXAKICAgCjIwMDMtMDMtMDUgMjA6MjEgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuOC5wcmUxICkKICAgCjIwMDMtMDMtMDUgMjA6MDAgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4wLjgucHJlMQogICAKMjAwMy0wMy0wNSAxOTowNCAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgYmFjayBvdXQgZG9jcyBmb3IgbmV3IGZ1bmN0aW9uYWxpdHkgYWNjaWRlbnRhbGx5IGFkZGVkIHdoZW4gYXBwbHlpbmcgcGF0Y2gKICAgCjIwMDMtMDMtMDUgMTg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBiYWNrIG91dCBuZXcgZnVuY3Rpb25hbGl0eSBhY2NpZGVudGFsbHkgYWRkZWQgd2hlbiBhcHBseWluZyBwYXRjaAogICAKMjAwMy0wMy0wNSAxODoyMCAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlcyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDMtMDMtMDUgMTg6MTggIHJzdG9yeQoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIGFkZCBzbm1wZC44CiAgIAoyMDAzLTAzLTA1IDE4OjEyICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMzoKCiAgIHVwZGF0ZXMgZm9yIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE4OjA0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHRvIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE3OjU4ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBhcmd1bWVudDsgZml4IHR5cG8KICAgCjIwMDMtMDMtMDUgMTc6NTggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGV4Y2x1ZGUgZnRwIGZyb20gY29tbWVudCBjaGVjazsgdXNlIGVncmVwCiAgIAoyMDAzLTAzLTA1IDE3OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBjaGcgQysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDMtMDMtMDUgMTc6NTAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYXJnaCEgRnJlZUJTRCBpcyBkcml2aW5nIG1lIGNyYXp5ISAgc2V0IFJBTkRPTT0yIGlmIFJBTkRPTSBub3QgZGVmaW5lZDsgdXNlIHRlc3QKICAgCjIwMDMtMDMtMDUgMTc6MjIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2ltcGxpZnkgbmV0c3RhdCBhcmdzICYgdHdlYWsgZ3JlcCByZWdleCBmb3IgbXVsdGkgcGxhdGZvcm0gY29tcGF0YWJpbGl0eQogICAKMjAwMy0wMy0wNSAxNzoxMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBjaGVjayAvYmluIGFuZCAvdXNyL2JpbiBmb3IgbmV0c3RhdCAocHJvYmFibHkgYSBnb29kIGpvYiBmb3IgY29uZmlndXJlKQogICAKMjAwMy0wMy0wNSAxNzowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBtaXNzZWQgb25lLCByZTogKCggKSkgLT4gZXhwcgogICAKMjAwMy0wMy0wNSAxNjo1OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICB1c2UgbW9yZSBwb3J0YWJsZSBleHByIGluc3RlYWQgb2YgICgoICkpIGZvciBhcml0aG1ldGljIGV4cHJlc3Npb25zCiAgIAoyMDAzLTAzLTA1IDE2OjE2ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGZvciBzeXN0ZW1zIHdpdGggL2Jpbi9uZXRzdGF0LCBjaGVjayB0aGF0IHNubXBkIHBvcnQgaXMgbm90IGluIHVzZS4gSWYgaXQgaXMsCiAgIHRyeSB1cCB0byB0aHJlZSByYW5kb20gb3RoZXJzIGJlZm9yZSBnaXZpbmcgdXAuCiAgIAoyMDAzLTAzLTA1IDE1OjE2ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1wYWNrYWdlOgoKICAgZG9uJ3QgcHJvbXB0IGJldHdlZW4gc3RlcHMgYnkgZGVmYXVsdAogICAKMjAwMy0wMy0wNSAxNToxMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBpbXBvcnQgU05NUF9TTEVFUCB0aW1lIGZyb20gZW52aXJvbm1lbnQsIGlmIGF2YWlsYWJsZQogICAKMjAwMy0wMy0wNSAxNToxMCAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZG9uJ3QgcmVkZWZpbmUgaW5saW5lCiAgIAoyMDAzLTAzLTA1IDE1OjA4ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdmVyc2lvbiA1LjAuOAogICAKMjAwMy0wMy0wNSAxNTowNyAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgc29tZSBmaWxlcyBhdXRvY29uZiBtYXkgY3JlYXRlCiAgIAoyMDAzLTAzLTA1IDEzOjQyICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViCiwgbHRtYWluLnNoLCBjb25maWd1cmU6CgogICBVcGRhdGUgbGlidG9vbCB0byB2ZXJzaW9uIDEuNC4zLCBmb3IgdGhlIGJlbmVmaXQgb2YgRGFyd2luCiAgIAoyMDAzLTAzLTA1IDEzOjM5ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRG9udCBmb3JjZSAtSS91c3IvbG9jYWwvaW5jbHVkZSBmb3IgLS13aXRoLWRtYWxsb2MKICAgCjIwMDMtMDMtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIHdyb25nIHR5cGUgcmV0dXJuZWQgZm9yIG5zTW9kdWxlTW9kZXMgYXMgcmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtCiAgIAoyMDAzLTAzLTAzIDE1OjAzICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBNZW50aW9uIHRoZSBBZ2VudFhBZGRyZXNzLCBBZ2VudHNSZXRyaWVzIGFuZCBBZ2VudFhUaW1lb3V0IHBhcmFtZXRlcnMKICAgCjIwMDMtMDMtMDMgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgQWRkIHN1cHBvcnQgZm9yIE9wZW5CU0QgMy4gU29ydCBzb21lIGxpbmVzIGZvciBlYXNpZXIgcmVmZXJlbmNlLgogICAKMjAwMy0wMy0wMSAxMDoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGJldHRlciBlcnJvciBjaGVja2luZwogICAKMjAwMy0wMy0wMSAwOTo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBkb24ndCBjcmVhdGUgZGVsZWdhdGVkIGNhY2hlIGZvciBDTEVBTlVQU0VUCiAgIAoyMDAzLTAyLTI4IDIzOjQ2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICB0eXBvCiAgIAoyMDAzLTAyLTI4IDIzOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBQYXRjaCAjNTk3NjI5IGZyb20gTWF0dCBTZWxza3kgdG8gZml4IG1hbiBwYWdlIGluc3RhbGxhdGlvbgogICAKMjAwMy0wMi0yOCAxMzoxOCAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBCZXR0ZXIgZXJyb3IgbWVzc2FnZSBpZiB3ZSBjYW5ub3QgY3JlYXRlIHBpZCBmaWxlCiAgIAoyMDAzLTAyLTI4IDEzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgRlMgdHlwZXMgd2l0aCBMaW51eAogICAKMjAwMy0wMi0yNyAwMDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHN5bmMgdy9tYWluCiAgIAoyMDAzLTAyLTI2IDE4OjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgc3luYyB3L21haW46IHB1dCBpbiBtaXNzaW5nIElOU1RBTExfREFUQQogICAKMjAwMy0wMi0yNiAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgSW1wbGVtZW50IHN5c1Jhd0ludGVycnVwdHMgYW5kIHN5c1Jhd0NvbnRleHQgZm9yIFNvbGFyaXMKICAgCjIwMDMtMDItMjYgMTQ6MzAgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGEgQyBwcmVjZWRlbmNlIGJvdGNoLXVwLCB0aGFua3MgdG8gRmFicu1jaW8gTGFzIENhc2FzIDxGYWJyaWNpb0BhdGFuLmNvbS5icj4KICAgCjIwMDMtMDItMjYgMTQ6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEltcGxlbWVudCB0aGUgc3NSYXdJbnRlcnJ1cHRzIGFuZCBzc1Jhd0NvbnRleHQgY291bnRlcnMgaW4gTGludXgKICAgCjIwMDMtMDItMjYgMTQ6MTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IHRoZSAtUyBvcHRpb24KICAgCjIwMDMtMDItMjUgMTQ6MzggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBsb2dpYyBvZiB0ZXN0IG9wZXJhdGlvbgogICAKMjAwMy0wMi0yNSAxNDozMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICB1c2UgQVVUTyhDT05GfEhFQURFUikgZnJvbSBjb25maWd1cmUsIGluc3RlYWQgb2YgaGFyZGNvZGVkOyBkb24ndCB0cnkgYW5kIHJ1bgogICBBVVRPKENPTkZ8SEVBREVSKSBpZiBub3QgZm91bmQKICAgCjIwMDMtMDItMjUgMTQ6MTEgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IG5ldyBmaWxlCiAgIAoyMDAzLTAyLTI1IDE0OjAzICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaCAoY29ycmVjdGx5LCB0aGlzIHRpbWUpCiAgIAoyMDAzLTAyLTI1IDEzOjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IGFkZCBOT0FVVE9ERVBTCiAgIAoyMDAzLTAyLTI1IDEzOjM4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBhZGQgc211eCB0byBkaXN0IG1vZHVsZXM7IG1vdmUgbWFrZSB0ZXN0IGludG8gbnNiLW1ha2U7CiAgIHJlbW92ZSB0ZWUgc28gcmMgaXMgcHJlc2VydmVkOyB1c2UgbmV3IE5PQVVUT0RFUFMKICAgCjIwMDMtMDItMjUgMTM6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBSZWNvZ25pc2UgImRlZlZlcnNpb24gdjMiIGFzIHdlbGwgYXMgImRlZlZlcnNpb24gMyIgYXMgZG9jdW1lbnRlZAogICBpbiB0aGUgbWFuIHBhZ2VzIChwcmlvciB0byBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29ycmVjdGlvbikKICAgW1dlIG1pZ2h0IGFzIHdlbGwgc3VwcG9ydCBib3RoIHN0eWxlcy4uLi5dCiAgIAoyMDAzLTAyLTI1IDEzOjIwICByc3RvcnkKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgc2Vkc2NyaXB0LmluLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9taWIyYy4xLmRlZiwKICAgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtaWJzL01ha2VmaWxlLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiAoSSBob3BlIEkgZ290IHRoaXMgcmlnaHQpCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMzoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgcGF0Y2ggIzY1NzgwODogY2FsY3VsYXRlIGEgcHJvcGVyIGlmU3BlZWQgdW5kZXIgbGludXggd2hlbiBwb3NzaWJsZQogICBhbmQgZG8gbW9yZSBwcm9wZXIgaWZPcGVyU3RhdHVzIHN0YXRlIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTAyLTI1IDEzOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC0gSXJmYW4gU2hlcmlmZiBwb2ludGVkIG91dCBhIGJ1ZyB3aXRoIGdldG5leHQgcmVxdWVzdHMgZGlyZWN0bHkgdG8gYSBjb2x1bW4uCiAgIC0gY2hlY2sgZW50cnkgbm9kZSBhcyBzdWdnZXN0ZWQgYnkgSXJmYW4gU2hlcmlmZgogICAKMjAwMy0wMi0yNSAxMzoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFJlbW92ZSBsYXN0IHJlbWFpbmluZyB1c2Ugb2YgJ25saXN0JyB1bmRlciBIUC1VWCAxMCAmIDExLgogICBBcyBwZXIgcGF0Y2ggIzY1Njc3MyBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMy0wMi0yNSAxMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBDaGVja2luZyB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nIGJ1ZmZlciBvbmNlIGlzIHN1ZmZpY2llbnQuCiAgIFVzaW5nICdzdHJubmNweScgW3NpY10gdG8gY2hlY2sgdGhpcyBsZW5ndGggdHdpY2UgaXMgdW5uZWNlc3NhcnkuLi4KICAgCjIwMDMtMDItMjUgMTM6MTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLSBNZXNzIHdpdGggb3V0cHV0IG9mIGRveHlnZW4gdG8gYWRkIHNmIGxvZ29zLCBldGMsIHRvIHRoZSBib3R0b20gb2YgdGhlCiAgICAgZ2VuZXJhdGVkIGh0bWwgZmlsZXMuCiAgIC0gQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIG5ldC1zbm1wLWNvbmZpZyBwYXRjaCAoIzY5MjM3MykKICAgCjIwMDMtMDItMjUgMTM6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCAjNjU1MTU0IGZyb20gSm9lbCBSb3NkYWhsOiBtb3JlIHByb3BlciBkZW1vbml6YXRpb246CiAgICAgLSBjbG9zZSBzdGRpbi9zdGRvdXQvc3RkZXJyIGlmIGFwcHJvcHJpYXRlLgogICAgIC0gZG91YmxlIGZvcmsuCiAgICAgLSBjaGRpciAvICAgW2V4Y2VwdCB1bmRlciB3aW5kb3dzXQogICAKMjAwMy0wMi0yNSAxMzoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCAjNjYyMTY5IGZyb20gSmFuIFdpbGxlbSBMdWl0ZW46IGRpc2tpbyBzdXBwb3J0IGZvciBEYXJ3aW4KICAgCjIwMDMtMDItMjUgMTM6MTAgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIHNldC50OgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBGaXggdGVzdHMgZm9yIGJ1bGt3YWxrIChkdXBsaWNhdGUgaGVhZGVyKSBhbmQgc2V0IChpbnZhbGlkIE9JRCBjb25zdGFudCkKICAgCjIwMDMtMDItMjUgMTM6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQWNjb21tb2RhdGUgYSBmdXNzeSBJUklYIGVudmlyb25tZW50LCB3aGljaCBpcyBwaWNreSBhYm91dCA8dW5pc3RkLmg+CiAgIFNlZSBidWcgIzY2NzcyNgogICAKMjAwMy0wMi0yNSAxMzowNCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMjUgMTM6MDIgIHJzdG9yeQoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBmaXggbXkgZGVjbGFyYXRpb25zIGFzIHBvaW50ZWQgb3V0IGJ5IEFuZHJldyBQYWdlCiAgIAoyMDAzLTAyLTI1IDEzOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQW4gYWRkaXRpb25hbCBjaGFuZ2UgdG8gc3VwcG9ydCAndCcgaGludHMKICAgCjIwMDMtMDItMjUgMTM6MDAgIHJzdG9yeQoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtZG9jdW1lbnQgcGF0Y2ggIzY3NDIxODogcmVvcGVuIGxvZyBmaWxlcyBvbiBIVVAuCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMjo1OSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtZG9jdW1lbnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgLUFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDEyOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBQYXRjaCBmcm9tIENocmlzdG9waGUgdG8gc3VwcG9ydCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAKMjAwMy0wMi0yNSAxMjo1NSAgcnN0b3J5CgogICAqIEZBUToKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQ2xhcmlmeSB0aGUgbG9jYWwtb25seSBhY2Nlc3MgZm9yIG5vbi1zdGFuZGFyZCBwb3J0IEFnZW50WCBjb25uZWN0aW9ucwogICAKMjAwMy0wMi0yNSAxMjo1NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgICAgLSAgY2xvc2UgYW5kIHJlLW9wZW4gbG9nIGZpbGUgb24gcmVjZWl2aW5nIGEgSFVQIChwYXRjaCA2NzQyMTgsIHN1Ym1pdHRlZAogICAgICAgIGJ5IGFub255bW91cykKICAgCjIwMDMtMDItMjUgMTI6NTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IEJydWNlIFNoYXcgcG9pbnRlZCBvdXQgYSBjb21tZW50IHR5cG8KICAgCjIwMDMtMDItMjUgMDk6MDQgIGR0czEyCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb25maWd1cmF0aW9uLXJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIGNoYW5nZXMuCiAgIChwYXRjaGVzICM2OTIzNzIsICA2OTIzNzcsICA2OTIzNzkgYW5kIDY5MjM4NikKICAgCjIwMDMtMDItMTMgMjA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgUGF0Y2ggIzY1NDMyOTogZG91YmxlIGNoZWNrIGxlbmd0aHMgd2hlbiBjb3B5aW5nCiAgIAoyMDAzLTAyLTEyIDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmg6CgogICB1cGRhdGUKICAgCjIwMDMtMDItMTEgMTE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYwo6CgogICBwYXRjaCAjNjY3Njk0IChhbm9uKSB0byBhZGQgYmFjayBuZXdsaW5lcyB0byBwYXNzIGNvZGUKICAgCjIwMDMtMDItMDMgMTA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZyb20gUmljaGFyZCBMYWluZzogY2hhbmdlIHZhbHVlIGNoZWNrIG9mIGEgc3RyaW5nIHRvIHVzZSBhIHByb3BlciBsZW5ndGguCiAgIAoyMDAzLTAxLTI0IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICM2NzIwMjEgZnJvbSBKb3NodWEgR2lsZXM6IGxhcmdlIHNldCByZXF1ZXN0IGZpeGVzCiAgIAoyMDAzLTAxLTIwIDIzOjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgbWlzc2luZyBicmFjZQogICAKMjAwMy0wMS0yMCAyMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBhZGQgYmFjayAoYWNjaWRlbnRhbGx5IGRlbGV0ZWQpIGNyZWF0aW9uIG9mIGd6aXBwZWQgdGFyYmFsbAogICAKMjAwMy0wMS0yMCAyMzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBzdHJpbmcgdGVzdCBjYXNlCiAgIAoyMDAzLTAxLTIwIDIzOjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggYXJyYXlfcXNvcnQ7IGZpeCBiaW5hcnkgc2VhcmNoOyBjb24ndCByZWN1cnNlIG9uIGluc2VydCwgZGVsLCBldGMgc2luY2UKICAgdGhlIElOU0VSVC9ERUxFVEUgbWFjcm9zIGFscmVhZHkgaGFuZGxlIG11bHRpcGxlIGluZGV4ZXMKICAgCjIwMDMtMDEtMjAgMjI6NTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBvZmZpY2lhbCBwYXRjaCBbIDY2OTcwNyBdIDUuMC43OiAxNi1CaXQgUmVxdWVzdCBJRHMKICAgCjIwMDMtMDEtMjAgMjI6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbWVzc2FnZTsgYWRkIG5ldHNubXBfY29tcGFyZV9tZW0KICAgCjIwMDMtMDEtMjAgMjI6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY3JlYXRlIG1kNXN1bXMgYWZ0ZXIgY3JlYXRpbmcgZ3ppcHBlZCB0YXJiYWxsCiAgIAoyMDAzLTAxLTIwIDIyOjUxICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgYW5vdGhlciBsZXZlbCBvZiBkaXJlY3RvcmllcyB0byBtYWtlIGRlcGVuZCwgcGVyIGR0cyBvbiBjb2RlcnMKICAgKHRob3VnaHQgdGhpcyB3YXMgaW4gNS4wLjcsIGJ1dCBhcHBhcmVudGx5IG5vdCEpCiAgIAoyMDAzLTAxLTE0IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYwosIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb3h5Z2VuIGNoYW5nZXMKICAgCjIwMDMtMDEtMTMgMjE6NDkgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlIGZvciA1LjAuNwogICAKMjAwMy0wMS0xMyAyMDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZWNvZ25pemUgbmV3ICd0JyBjb2RlIGluIGRpc3BsYXkgaGludHMKICAgCjIwMDMtMDEtMTMgMjA6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBwYXRjaCBmb3IgbWVtb3J5IGxlYWtzIHNlbnQgdG8gY29kZXJzIGJ5IEpheSBQYXJsYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNiAtPiBWNS4wLjcKCjIwMDMtMDEtMTEgMDE6MTUgIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGNvbmZpZ3VyZS1zdW1tYXJ5CiAgIAoyMDAzLTAxLTExIDAxOjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0wMS0xMSAwMTowOCAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgdmFyaWF0aW9ucyBvZiBjaGFuZ2Vsb2cuYWRkCiAgIAoyMDAzLTAxLTEwIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICBkb3h5Z2VuIG91dHB1dCB0YWdzIHRvIHB1dCB0aGUgcmVjZW50bHkgZGVmaW5lZCBmdW5jdGlvbnMgaW50byBncm91cHMuCiAgIAoyMDAzLTAxLTEwIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9hZ2VudC4zLAogICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlcwogICAKMjAwMy0wMS0xMCAxNzozOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBvcHBzCiAgIAoyMDAzLTAxLTEwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBkb3VibGUgY2hlY2tpbmcgb3V0cHV0CiAgIAoyMDAzLTAxLTEwIDE0OjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQ6CgogICBmaXggcG9zaXRpb25hbCBhcmd1bWVudHMKICAgCjIwMDMtMDEtMTAgMDk6MDQgIGR0czEyCgogICAqIEZBUToKCiAgIFJlZmVyZW5jZSBCcnVjZSBTaGF3J3MgZGlzY3Vzc2lvbiBvZiB0aGUgcGVybCBjb21waWxhdGlvbiBwcm9ibGVtcwogICAoc2VlIFJFQURNRS5zb2xhcmlzKQogICAKMjAwMy0wMS0xMCAwODozMSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiBBZ2VudFggdW5kZXIgd2luZG93cywgYW5kIGJlZWYgdXAgdGhlIHBlcmwgc3R1ZmYgYSBiaXQuCiAgIEFkZCBhIG1pc3NpbmcgZW50cnkgaW4gdGhlIGNvbnRlbnRzIGxpc3QuCiAgIChUaGlzIG1heSBwcm92ZSB0b28gbGF0ZSBmb3IgNS4wLjgsIGJ1dCBhdCBsZWFzdCBpdCdsbCBiZSByZWFkeSBmb3IgbmV4dCB0aW1lISkKICAgCjIwMDMtMDEtMDkgMTg6NDEgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTg6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMwosIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jIHVwZGF0ZS4KICAgCjIwMDMtMDEtMDkgMTg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaDoKCiAgIGVuZC1vZi1tb2RlIGhlbHBlciB0byBjYWxsIG1vcmUgaGFuZGxlcnMgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgbWFpbgogICBsaW5lLiAgRnVuY3Rpb25hbGx5IGFsbG93cyBwYXJhbGxlbCBoYW5kbGVyIHRyZWVzIGFuZCBjYWxsYmFja3MgYWZ0ZXIKICAgYSBwYXJ0aWN1bGFyIG1vZGUgaXMgY29tcGxldGVkICh1c2VmdWwgZm9yIHRoaW5ncyByZWdpc3RlcmVkIHVuZGVyIGEKICAgc2VyaWFsaXplIGhhbmRsZXIgd2hlbiB5b3UgZG9uJ3Qga25vdyB3aGVuIHRoZSBtb2RlIGlzIG92ZXIpLgogICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gcHJvZHVjdGlvbiBjb2RlIHlldC4pLgogICAKMjAwMy0wMS0wOSAxMTo1NSAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiB0aGUgcGVybCBzaGFyZWQvc3RhdGljIGxpYnJhcnkgcHJvYmxlbSwKICAgdGhlIHVucmVzcG9uc2l2ZSBhZ2VudCBwcm9ibGVtIChhbmQgZml4KSwgYW5kCiAgIGRpc2NsYWltIGFsbCBrbm93bGVkZ2Ugb2YgRGF2aWQgVG93bidzIE5ldDo6U05NUCBtb2R1bGUsCiAgIAoyMDAzLTAxLTA5IDEwOjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNjBzbm1wdjJjYnVsa2dldCwgVDAyMjBzbm1wdjNidWxrZ2V0CjoKCiAgIEdldEJ1bGsgdGVzdGluZyBzdXBwbGllZCBieSBYaWFvZmVuZyBMaW5nCiAgIAoyMDAzLTAxLTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQWRkIC14IGZsYWcgZm9yIGNhbGxpbmcgc3VidGVzdHMgd2l0aCAic2ggLXgiLgogICBGaXggbnVtYmVyIGNvdW50aW5nIGZvciBpbnRlcmFjdGl2ZSBvdXRwdXQuCiAgIAoyMDAzLTAxLTA3IDE4OjQ5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuOCksIENPUFlJTkc6CgogICB5ZWFyIHVwZGF0ZQogICAKMjAwMy0wMS0wNyAxMzoxOCAgaGFyZGFrZXIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTgpLCBGQVE6CgogICBpcmMgc2VydmVyIG5hbWUgY2hhbmdlCiAgIAoyMDAzLTAxLTA3IDExOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYnVnICM2NjM2MjggYW5kIHBhdGNoOiBmaXggaXAgYWRkcmVzcyBpbmRleCBwYXJzaW5nIGZyb20gT0lEcwogICAKMjAwMy0wMS0wNyAwNDo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlIHRvIGZyZWUgJ2NhbGxiYWNrX2RhdGFfa2VlcCcgZGF0YS4KICAgVGhpcyBicmFuY2ggd291bGQgbmV2ZXIgYmUgaW52b2tlZCwgYW5kIGlzIGluIHRoZSB3cm9uZwogICBwbGFjZSBhbnl3YXkuICBQYXRjaCBzdXBwbGllZCBieSBKYXkgUGFybGFyCiAgIAoyMDAzLTAxLTA2IDExOjE2ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIFNvbGFyaXMgOSBoZWFkZXIKICAgCjIwMDMtMDEtMDUgMTg6MTQgIG5iYQoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDE3OjI4ICBuYmEKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCB3aW4zMi5vcHQKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTU6NDUgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBTTk1QLU1QRC1NSUIudHh0LCBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LAogICBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQKLCBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVRNLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9ucwogICAKMjAwMy0wMS0wMyAxNTo1MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2FsbCBBQ19ESVNBQkxFX1NIQVJFRCwgYXMgc2V0cyB0aGUgZGVmYXVsdCB0byBkaXNhYmxlZCAoaXQncyB2ZXJ5CiAgIHByZXNlbmNlIGluIGNvbmZpZ3VyZS5pbiBnZW5lcmF0ZXMgYSBjb25maWd1cmUgd2l0aCBzaGFyZWQgZGlzYWJsZWQsIGV2ZW4KICAgaWYgaXQgd2FzIGluIGFuIGlmIGJsb2NrOyBmb3IgZGV2ZWxvcGVyIGRlZmF1bHQsIHNldCBlbmFibGVfc2hhcmVkIGRpcmVjdGx5CiAgIHVubGVzcyBpdCB3YXMgcHJldmlvdXNseSBzZXQ7IHRlc3QgdGhhdCBlbmFibGVfc2hhcmVkPXllcyBmb3IgZW1iZWRkZWQtcGVybAogICAKMjAwMy0wMS0wMyAwODowMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTcpLCBGQVE6CgogICBNZW50aW9uIHRoZSBTdHJhdHVzIFZPUyBwb3J0LiAoVGhhbmtzIHRvIEJyYW5kb24gSGFsbCkKICAgCjIwMDMtMDEtMDIgMTg6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBwYXJlbnMgYXJvdW5kIHggaW4gbWFjcm8gaW4gY2FzZSB4IGlzIG11bHRpcGxlIEMgdG9rZW5zCiAgIAoyMDAyLTEyLTIyIDEyOjMyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIFJFQURNRSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMiApCiAgIAoyMDAyLTEyLTIyIDEyOjMxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUyCiAgIAoyMDAyLTEyLTIyIDEyOjIwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0yMCAwNzo1OCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2xlYW4gYXdheSBuZXQtc25tcC1jb25maWcgb24gbWFrZSBjbGVhbgogICAKMjAwMi0xMi0yMCAwNzo1NyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc3Rhc2ggdGhlIG9pZF9zdGFzaCAuLi4KICAgCjIwMDItMTItMjAgMDQ6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBIHBhdGNoIGZyb20gVjQgdGhhdCBkaWRuJ3QgbWFrZSBpdCAuLi4gYWxsb3cgbGlzdCBvZiBudW1lcmljIGJpdHMgc2V0dGluZyBCSVRTCiAgIAoyMDAyLTEyLTIwIDAyOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgYWRkIGEgZ2xvYmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciByZWdpc3RlcmluZyBkaXJlY3RseSB2aWEgYSBjYWxsYmFjay4KICAgCjIwMDItMTItMjAgMDI6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBhZGQgY2FsbGJhY2suaAogICAKMjAwMi0xMi0yMCAwMjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlIHJlbmFtaW5nLiAgKHNucHJpbnRmIGNoYW5nZSBtaXN0YWtlKQogICAKMjAwMi0xMi0yMCAwMjoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHNvbWUgbmV3IHJvdXRpbmVzIGZvciBzYXZpbmcgb2lkIHN0YXNoIGRhdGEgdG8gcGVyc2lzdGVudCBzdG9yYWdlLgogICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBjdXJyZW50IHByb2R1Y3Rpb24gY29kZSkKICAgCjIwMDItMTItMTkgMTc6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSB3YXRjaCBmb3IgdW5kZWZzIHBhc3NlZCBpbiBhcyBhIHZhbHVlIHRvIGEgU0VUIGNsYXVzZS4KICAgLSBjaGFuZ2UgQklUUyB0byBhIE9jdGV0IFN0cmluZyBhcyBpdCBzaG91bGQgYmUuCiAgICAgLSBvbiBhIHNpZGUgbm90ZSwgZG8geW91IGtub3cgdGhhdCB0aGUgTmV0LVNOTVAgcGFyc2VyIGRvZXNuJ3QKICAgICAgIGRpc3Rpbmd1aXNoIGJldHdlZW4gQklUUyBhbmQgQklUIFNUUklORyBpbiBpdCdzIGxpc3Qgb2YgdHlwZXM/ICBJCiAgICAgICBkb24ndCB0aGluayBpdCdzIHBvc3NpYmxlIHRvIHVzZSBib3RoIHR5cGVzIGluIHRoZSBjb2RlIHRvZGF5CiAgICAgICAod2hpY2ggaXMgZmluZSwgc2luY2UgQklUIFNUUklORyBpcyBub3QgdXNlZCBpbiBTTk1QdjIgYW5kIGJleW9uZCkuCiAgIAoyMDAyLTEyLTE5IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBwcmludCBhIHdhcm5pbmcgd2hlbiB5b3UgY2FuJ3QgcGFyc2UgYW4gT0lEIChlcnIsIG5vdCBpZGVhbCkKICAgCjIwMDItMTItMTkgMTc6NDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIHNraXAgU0VUaW5nIGNvbHVtbnMgd2l0aCBubyB2YWx1ZSBwYXNzZWQgaW4uCiAgIAoyMDAyLTEyLTE5IDE0OjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy9leGFtcGxlLmMsIGhvc3QvaHJfbmV0d29yay5jCiwgaG9zdC9ocl9zd2luc3QuYzoKCiAgIEJlaW5nIGEgYml0IHF1aWNrLCBlaCwgRGF2ZSAuLi4KICAgCjIwMDItMTItMTkgMTE6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMi1wYXRjaGVzLjEyKSwgYXQuYzoKCiAgIEVuc3VyZSB0aGUgaWZuYW1lIGJ1ZmZlciBpcyBiaWcgZW5vdWdoIHRvIHJlYWQgaW4gYSBmdWxsLWxlbmd0aCBuYW1lLgogICAoRnJvbSB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAxMTowNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYwogICAoVjQtMi1wYXRjaGVzLlsyOCw5LDMsMywzMF0pLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYzoKCiAgIERldGVjdCB3aGVuIG1lbW9yeSBhbGxvY2F0aW9ucyBmYWlsLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MuCiAgIChCYXNlZCBvbiBjaGFuZ2VzIHdpdGhpbiB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAxMDowNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgVGhlIEdyZWF0IFNVU0UgJ3NwcmludGYnIEh1bnQuLi4uLgogICAKMjAwMi0xMi0xOSAwNjowMiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgICAtIGNvZGUgd2l0aCBCU0RpNAogICAKMjAwMi0xMi0xOSAwNTo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hhbmdlIGEgY29tbWVudCB0aGF0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIHRyYW5zcG9ydCBzdHVmZgogICAgIC0gZml4IHNvbWUgcGFydGljdWxhcmx5IGJhZCBmb3JtYXR0aW5nIGluIHNubXBfb3Blbl9leAogICAKMjAwMi0xMi0xOCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgcmVtb3ZlIG1lbS1sZWFrIGNvbW1lbnQuICBPdXQgb2YgZGF0ZSBhbmQgd2FzIGZpeGVkCiAgIAoyMDAyLTEyLTE4IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBkZWxldGUgZXhwZXJpbWVudGFsIHdhcm5pbmcgYWJvdXQgYWdlbnR4CiAgIAoyMDAyLTEyLTE4IDEzOjQwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBmaXggYnVnIzY1NTQ4ODogZGVzY3JpcHRpb25zIG9mIHNzSU9SYXdSZWNlaXZlZCBhbmQgc3NSYXdJbnRlcnJ1cHRzIHdlcmUgcmV2ZXJzZWQKICAgCjIwMDItMTItMTggMDg6MTkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHN0ZGVyciBsb2dnaW5nIG9uIEhVUCAoaWYgLUwgd2FzIGdpdmVuIG9uIGNvbW1hbmQgbGluZSkKICAgCjIwMDItMTItMTcgMTk6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgJzsnIGZyb20gZGVmaW5lOyBpZiB0YWJsZSBoYXMgYSBzdG9yYWdlIHR5cGUsIGNoZWNrIHRoYXQgaXQncyBub3QKICAgcmVhZCBvbmx5IGJlZm9yZSBhbGxvd2luZyBzZXRzCiAgIAoyMDAyLTEyLTE3IDE5OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgbmV2ZXIgbWluZAogICAKMjAwMi0xMi0xNyAxOTowMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERvbid0IGNoZWNrIGZvciBwcmVmaXhlcyBpbiB0ZXN0LiAgVGhleSBkb24ndCBleGlzdC4gIEhvd2V2ZXIsIGRvIHNldCBTTk1QQ09ORlBBVEggaW4gdGVzdCBpbml0aWFsaXphdGlvbiB0byBhIGJvZ3VzIHZhbHVlCiAgIAoyMDAyLTEyLTE3IDE4OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZW1vdmUgZGlyZWN0IGNhbGwgdG8gaW5pdF9zbm1wKCkuICBUaGlzIGlzIGFscmVhZHkgY2FsbGVkIGJ5IHRoZSAucG0gZmlsZQogICAKMjAwMi0xMi0xNyAxMDoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIHBlcnNpc3RlbmNlIGZvciBhcnJheS10YWJsZXMKICAgCjIwMDItMTItMTcgMTA6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYWRkIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4OyBhZGQgQVNOX1RJTUVUSUNLUyB3L0FTTl9VTlNJR05FRCBjYXNlcwogICAKMjAwMi0xMi0xNyAwOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZG9uJ3QgdXNlIFNPX1JFVVNFX0FERFIgc28gYWdlbnQgcG9ydCBjYW4ndCBiZSBoaWphY2tlZAogICAKMjAwMi0xMi0xNyAwOTo0MyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHVzZSBsb2NhbCB2YXIgZm9yIGJhc2UgYWdlbnQgbGliczsgcmVvcmRlciBiYXNlIGFnZW50IGxpYnMgc28gc3RhdGljIGxpbmtpbmcKICAgd29ya3MKICAgCjIwMDItMTItMTYgMTg6MzIgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaDoKCiAgIFlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcgLi4uCiAgIAoyMDAyLTEyLTE2IDE3OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICByZW1vdmUgYm9ndXMgY29tbWVudCByZWZlcmVuY2UgdG8gdGFibGVfZGF0YXNldCBoZWxwZXIuCiAgIAoyMDAyLTEyLTE2IDE3OjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIGFwcHMvc25tcHRyYXBkLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jCjoKCiAgIFNwcmVhZCBzb21lIG1hZ2ljIGR1c3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MgKHdoeSBpc24ndCAtLWVuYWJsZS1zbGllbnQtbGlidG9vbCB0aGUgZGVmYXVsdCAuLi4pCiAgIAoyMDAyLTEyLTE2IDExOjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsgKHBlZXJuYW1lIGlzIGNvcGllZCBieSBzbm1wX29wZW5fZXgpCiAgIAoyMDAyLTEyLTE2IDExOjMxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDExOjE5ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMTA6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlIChjYXVzZWQgcHJvYmxlbXMgb24gU3VuIDUuNywgcmVwb3J0ZWQgYnkgamJwbikKICAgCjIwMDItMTItMTYgMDg6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjb25maWd1cmUgdy9vdXQgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDA4OjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBERVZGTEFHUz0iIiBpZiBub3QgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDAyOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG9pZF9zdGFzaC5jLCBzY2FwaS5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5jCiwgc25tcElQWERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTE2IDAyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQb3NzaWJsZSBsZWFrIG9mIGZkIG9uIGVycm9yIHJldHVybgogICAKMjAwMi0xMi0xNCAxMDoyMiAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUxICkKICAgCjIwMDItMTItMTQgMTA6MjEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC42IC0+IFY1LjAuN3ByZTEKCjIwMDItMTItMTQgMDk6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgYWdlbnQvbWliZ3JvdXA7IGZpeCBtb2R1bGVzIGZvciBjb25maWdfZGlzdAogICAKMjAwMi0xMi0xNCAwOTo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKMjAwMi0xMi0xNCAwOTo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgcmV2IHRvIDUuMC43CiAgIAoyMDAyLTEyLTE0IDA5OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLW4gdG8gZ3JlcCBmb3IgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA5OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMTQgMDk6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDk6MzAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBjb21tZW50cyB0byBzb21lIHN0cnVjdHVyZSBtZW1iZXJzCiAgIAoyMDAyLTEyLTE0IDA5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZXJyb3JzIGR1cmluZyBjb21taXQgdW5kbyBzaG91bGQgYmUgeHhGQUlMRUQ7IHVzZSBzZXRfcmVxdWVzdF9lcnJvciBpbnN0ZWFkIG9mCiAgIHNldF9tb2RlX3JlcXVlc3RfZXJyb3I7IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudDsgbW9yZSBkZWJ1Z2dpbmc7IGNoZWNrIGZvcgogICBhbmQgY2FsbCBsb3dlciBoYW5kbGVycwogICAKMjAwMi0xMi0xNCAwOToyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFsd2F5cyBwcm9jZXNzIGxhdGVyIHBhc3NlcyBvZiBhIHNldCByZXF1ZXN0CiAgIAoyMDAyLTEyLTEzIDE2OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDE1OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDE1OjQwICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IGluY29tcGxldGUgemVyb2luZyBvZiBzZWN1cml0eSBkYXRhCiAgIAoyMDAyLTEyLTEzIDE1OjM5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IGEgcG9zc2libGUgZnJlZWluZyBvZiBhIE5VTEwgcG9pbnRlcgogICAKMjAwMi0xMi0xMyAxNTozOCAgbmJhCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxMTozOCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2xlYXIgdGhlICdwcm9jZXNzZWQnIGZsYWcgYmV0d2VlbiBwYXNzZXMsIHNvIHRoYXQgaGFuZGxlcnMKICAgY2FuIGNvcnJlY3RseSBjbGVhbiB1cCBhZnRlciBlcnJvcnMgaGF2ZSBiZWVuIGRldGVjdGVkLgogICAKMjAwMi0xMi0xMyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWRkIGFzc2VyIHRvIHRyeSBhbmQgY2F0aCBpbnRlcm1pdHRlbnQgY3Jhc2ggaSd2ZSBiZWVuIHNlZWluZwogICAKMjAwMi0xMi0xMyAxMTowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGxvZyB1bmtub3duIGFnZW50eCBvcGVyYXRpb24KICAgCjIwMDItMTItMTMgMTA6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZiBubyByb3cgY3JlYXRlIGNhbGxiYWNrIG9uIHNldCwgdXNlIE5PVFdSSVRBQkxFIGluc3RlYWQgb2YgTk9TVUNISU5TVEFOQ0UKICAgCjIwMDItMTItMTMgMTA6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBzbyBkZWxlZ2F0ZWQgZmxhZyBkaXNwbGF5ZWQgcHJvcGVybHkKICAgCjIwMDItMTItMTMgMTA6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGxvZyB0ZXh0IChBUFB8TElCfFRPSykgaW5zdGVhZCBvZiBzdG9yZSBpZCBpbiBkZWJ1ZyBtc2dzCiAgIAoyMDAyLTEyLTEzIDA5OjUzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIC0td2l0aC1saWJ3cmFwCiAgIAoyMDAyLTEyLTEzIDA5OjQ5ICByc3RvcnkKCiAgICogRkFROgoKICAgZ3JhbW1hci9pbmRlbnRpb24gdHdlYWsgKyBtZW50aW9uIHN0cmlwIGZvciBtZW1vcnkgZm9vdHByaW50IHF1ZXN0aW9uCiAgIAoyMDAyLTEyLTEzIDA5OjMyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgZXhwbGljaXQgbWVudGlvbiBvZiBTTk1QIG1vZHVsZSBkb2N1bWVudGF0aW9uLgogICBUaGlzIHNldHRpbmcgZG9lc24ndCBzZWVtIHRvIGJlIG5lY2Vzc2FyeSwgYW5kIHdpdGhvdXQgaXQsCiAgIHRoZSBtYW4gcGFnZSBpcyBpbnN0YWxsZWQgYXV0b21hdGljYWxseS4KICAgCjIwMDItMTItMTMgMDc6NDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIC1TIGRvIHRoZSBzYW1lIGFzIHNubXBkIC1TIChzZXQgdGhlIHN5c2xvZyBmYWNpbGl0eSkKICAgICAtIG1ha2UgLWwgcHJpbnQgYSB3YXJuaW5nIHNheWluZyB0aGF0IGl0IGlzIGRlcHJlY2F0ZWQgYW5kIC1TIHNob3VsZAogICAgICAgYmUgdXNlZCBpbnN0ZWFkCiAgIAoyMDAyLTEyLTEzIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBpbmNyZWFzZSB3aWR0aCBvZiB0b2tlbiBmaWVsZCB0byBpbXByb3ZlIGxlZ2liaWxpdHkgb2YKICAgICAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlIGhlbHAgb3V0cHV0CiAgIAoyMDAyLTEyLTEyIDE3OjQ2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmtub3duIC1PIG9wdGlvbnMKICAgCjIwMDItMTItMTIgMTU6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBzb21lIHNpemVfdCB0aGF0IHJlYWxseSBzaG91bGQgYmUgaW50CiAgIAoyMDAyLTEyLTEyIDE0OjE4ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIEEgbG9uZyBvdmVyZHVlIHBhdGNoICgjNDE1MjUyKSBmcm9tIFJvYmVydCBIYXN0aW5ncyB0aGF0IGltcGxlbWVudHMKICAgcmV2ZXJzZSBESVNQTEFZLUhJTlQgcHJvY2Vzc2luZywgaS5lLiBpdCBhbGxvd3MgeW91IHRvIGlucHV0IGRhdGEKICAgZm9ybWF0dGVkIGxpa2UgdGhlIERJU1BMQVktSElOVCBwcmVzY3JpYmVzLiBFbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dAogICBjYW4gYmUgZGlzYWJsZWQgd2l0aCB0aGUgLUloIG9wdGlvbiBvciBub0Rpc3BsYXlIaW50IGluIHNubXAuY29uZgogICAKMjAwMi0xMi0xMiAxMzo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcGFyc2Ugb2lkcyBpbiB2aWV3IHN0YXRlbWVudHMgdGhlIHNhbWUgd2F5IHRoZSBhcHBzIGRvIGl0IChjb25zaXN0ZW5jeSwgaGUgc2FpZCkKICAgCjIwMDItMTItMTIgMTM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBBZGQgYSBnZXRSb290T0lEIGZ1bmN0aW9uIHRvIHRoZSByZWdpbmZvIHBvaW50ZXIgcGFzc2VkIGludG8gaGFuZGxlcnMuCiAgIAoyMDAyLTEyLTEyIDEzOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY2hhbmdlIGNyZWF0ZSBhbmQgZHVwbGljYXRlIHJvdyB0byByZXR1cm4gc3BlY2lmaWMgY29udGV4dCBpbnN0ZWFkIG9mIGdlbmVyaWMKICAgbmV0c25tcF9pbmRleDsgY2F0Y2ggZXJyb3IgZnJvbSBwYXJzZV9vaWRfaW5kZXhlcyBvbiByb3cgY3JlYXRpb24KICAgCjIwMDItMTItMTIgMTM6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgUHJpbnQgZXJyb3JzIHRvIFNUREVSUiBpbnN0ZWFkLgogICAgIChhY3R1YWxseSBkb24ndCBiZWNhdXNlIHRoZXNlIHN0YXRlbWVudHMgYXJlIGNvbW1lbnRlZCBvdXQgaW4gdGhlCiAgICAgZmlyc3QgcGxhY2UpCiAgIAoyMDAyLTEyLTEyIDEzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmV2ZXJzZSB0aGUgY29udGV4dCBvZiBhIGNvbnRleHQgaWYgc3RhdGVtZW50IHNvIGlmIG5vdCB0aGUgY29udGV4dAogICB0aGVuIGRvbid0IHVzZSB0aGUgY29udGV4dCBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KICAgCjIwMDItMTItMTIgMTI6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIGxvbmctZGVwcmVjYXRlZCAtcSBhbmQgLVMgb3B0aW9ucwogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0xMi0xMiAxMjozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIG1lc3NhZ2UgaW4gdXNhZ2UKICAgCjIwMDItMTItMTIgMTE6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC4xLmRlZiwgYWdlbnQvc25tcGQuYzoKCiAgIEltcGxlbWVudCBhIGNvbW1hbmQtbGluZSBvcHRpb24gKC1TKSB0byBzZXQgdGhlIGZhY2lsaXR5IHRvIHVzZSB3aGVuCiAgIGxvZ2dpbmcgdmlhIHN5c2xvZy4gICBCYXNlZCBvbiBhbiBpZGVhIGJ5IEpvZWwgUm9zZGFobCAoUGF0Y2ggIzYyNzcwMSkKICAgTm90ZSB0aGF0IC1sIGFuZCAtTCBhcmUgYWxyZWFkeSB0YWtlbjotKAogICAKICAgVG9EbzoKICAgICBQcm92aWRlIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBmb3IgYm90aCB0aGlzLCBhbmQgdGhlIHN5c2xvZyB0b2tlbiAoJ3NubXBkJykuCiAgIAoyMDAyLTEyLTEyIDExOjE4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIFN1cHBvcnQgc2V0dGluZyBvZiBzeXNEZXNjciBhbmQgc3lzT2JqZWN0SUQgdmlhIHNubXBkLmNvbmYKICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzICh0aG91Z2ggbm90IHZpYSBTTk1QIFNFVCByZXFlc3RzKS4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc3MDIgYW5kICM2MjgwMTEpCiAgIAoyMDAyLTEyLTEyIDEwOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogYWxsX2hlbHBlcnMuYywgdGFibGUuYzoKCiAgIFN1cHByZXNzIHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zICgjNjQ0MDQxKQogICAKMjAwMi0xMi0xMiAxMDo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIFVzZSAnc3lzY29uZicgdG8gcmVwb3J0IG9uIFNvbGFyaXMgbWVtb3J5IHVzYWdlLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBCZW4gU3Rlcm4gKCM2NTExODIpCiAgIAoyMDAyLTEyLTEyIDEwOjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBCYXNpYyBzdXBwb3J0IGZvciBtdWx0aXBsZSBBZ2VudFggc29ja2V0cyAob24gdGhlIG1hc3RlciBzaWRlIGF0IGxlYXN0KS4KICAgU2VlIEZlYXR1cmUgUmVxdWVzdCAjNjMyNTU2CiAgIAoyMDAyLTEyLTEyIDA4OjU3ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGNyZWF0ZSB2ZXJzaW9uIHRhZyBmcm9tIHZlcnNpb24gc28gY3ZzIGV4cG9ydCB3b3JrczsgZml4IFJFTDsgYWRkIHRhci5negogICBvZiBzb3VyY2UgYXMgZGVwZW5kZW5jeSBmb3IgcnBtZmlsZXMKICAgCjIwMDItMTItMTIgMDg6MDQgIG5iYQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfZW51bS5jLCBzbm1wX3NlY21vZC5jLCBzbm1wX3RyYW5zcG9ydC5jCjoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xMiAwNzoxOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvY3VtZW50IHRoZSAtT1Ugb3B0aW9uLCBhbmQgYWxwaGFiZXRpc2UgdGhlIGhhbmRsaW5nIG9mIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEyIDA2OjI1ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCAnc25tcGluZm9ybScgYXMgYSByZWxhdGl2ZSBsaW5rLCByYXRoZXIgdGhhbiBhbiBhYnNvbHV0ZSBvbmUuCiAgIEZpeCBwcm92aWRlZCBieSB0aGUgaW5kZWZhdGlnYWJsZSBTdGVmYW4gUmFkbWFuIChCdWcgIzY1MjU4NykKICAgCjIwMDItMTItMTIgMDU6NTYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVvdGUgY29uZmlndXJlIG9wdGlvbnMgd2hlbiBjb250cnVjdGluZyBuZXQtc25tcC1jb25maWd1cmUgYW5kIG5ldC1zbm1wLWNvbmZpZ3VyZS5oCiAgIFRoaXMgYWxsb3dzIG9wdGlvbnMgY29udGFpbmluZyBzcGFjZXMsIGV0YywgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHkuCiAgIChTZWUgRmVhdHVyZSBSZXF1ZXN0ICM1NDcxNTIpCiAgIAoyMDAyLTEyLTExIDE2OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBQYXRjaCBmb3IgRnJlZUJTRC4gVGhhbmtzIHRvIEp1biBLdXJpeWFtYQogICAKMjAwMi0xMi0xMSAxMjoxNiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0yLXBhdGNoZXMuNCksIHNubXBfbG9nZ2luZy5jOgoKICAgVHJ5IGRpc2FibGluZyBsaW5lLWJ1ZmZlcmluZyBvbiBXaW5kb3dzIHN5c3RlbXMgKHNpbmNlIGl0CiAgIGFwcGFyZW50bHkgZW5hYmxlcyBmdWxsLWJ1ZmZlcmluZyBpbnN0ZWFkKS4gIFNlZSBCdWcgIzU1ODgzNy4KICAgCjIwMDItMTItMTEgMTE6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgZ2V0LnQsIGdldG5leHQudCwKICAgbm90aWZ5LnQsIHNldC50OgoKICAgRXhwbGljaXRseSBzZXQgU05NUCB2ZXJzaW9uID0gMSAodGhlIG9yaWdpbmFsIGRlZmF1bHQgYXMgZXhwZWN0ZWQgYnkgdGhlIHRlc3RzKQogICBUaGlzIHNob3VsZCBub3cgcGFzcyBhbGwgdGVzdHMgYXBhcnQgZnJvbSBjb25mLnQgIzMKICAgCjIwMDItMTItMTEgMDY6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgQmUgbW9yZSBzZWxlY3RpdmUgaW4gdXNpbmcgdGhlIDY0LWJpdCB2ZXJzaW9uIG9mIG5saXN0LiAoQnVnICM2MTE2NTUpCiAgIAoyMDAyLTEyLTExIDA2OjI3ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIG5vbi1mdW5jdGlvbmFsaXR5IG9mIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIGFwcHJvYWNoZXMuCiAgIChCdWcgIzYxNzExOSkuICAgUmVwb3J0ZWQgYnkgUXVhbmFoIEdpYnNvbi1Nb3VudAogICAKMjAwMi0xMi0xMSAwNjoyMCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhhdCB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyB0aGUKICAgZW1iZWRkZWQgcGVybCBzY3JpcHQuICAoQnVnICM2MTc4OTEpIEZpeCBwcm92aWRlZCBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMi0xMi0xMSAwNTo1NiAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MyAoVjQtMi1wYXRjaGVzLjQpLCBSRUFETUUuc25tcHYzOgoKICAgRG9jdW1lbnQgdGhlIGxvY2F0aW9uIGFzc3VtcHRpb25zIGJlaW5nIG1hZGUgaW4gdGhpcyBkZXNjcmlwdGlvbi4KICAgCjIwMDItMTItMTEgMDQ6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBmb3JjaW5nIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVkIGluIGVpdGhlcgogICBBU0NJSSBvciBIZXggZm9ybWF0LCBieXBhc3NpbmcgdGhlICJndWVzcyIgbWVjaGFuaXNtIGFzIHRvIHdoaWNoCiAgIGlzIG1vcmUgYXBwcm9wcmlhdGUuICAgU3VnZ2VzdGVkIGJ5IE5pY2sgS2FuYWtha29ybi4KICAgICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhZmZlY3Qgb2JqZWN0cyB3aXRoIGEgRGlzcGxheS1IaW50IGluCiAgIHRoZWlyIE1JQiBkZWZpbml0aW9uLgogICAKMjAwMi0xMi0xMSAwNDozMCAgZHRzMTIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoCiAgIChWNC0yLXBhdGNoZXMuWzIsMjYsNl0pLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENvbW1hbmQtbGluZSBvcHRpb24gdG8gY29udHJvbCB3aGV0aGVyIHRvIHVubGluayB0aGUgUElEIGZpbGUgb3Igbm90LgogICBOZWNlc3NhcnkgZm9yIGNvcnJlY3QgdGVzdCBvcGVyYXRpb24uCiAgIAoyMDAyLTEyLTExIDA0OjIxICBkdHMxMgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgVGhlIGxhdGVzdCBsaWJyYXJ5IGRlZmF1bHRzIHRvIE1PRFVMRTo6bmFtZSBzdHlsZSBvdXRwdXQsCiAgIHNvIGFkanVzdCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGNoZWNrcyBhY2NvcmRpbmdseS4KICAgQWxzbywgdGhlcmUgYXJlIGFjdHVhbGx5IDM2IHRlc3RzLCBub3QgMzUhCiAgIAoyMDAyLTEyLTExIDA0OjE3ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBJbml0aWFsaXNlIHRoZSBTTk1QIGxpYnJhcmllcywgdG8gc2V0IHVwIHRoZSBPSUQgdHJlZS4KICAgQWRkcmVzc2VzIGJ1Z3MgIzYzODAyNCBhbmQgIzYyNzY0MwogICAgIFtRbjogRG8gd2UgbmVlZCB0byBzdXBwbHkgYW4gJ2FwcG5hbWUnIChjLmQgdGhlIFNOTVAgbW9kdWxlKSA/XQogICAKMjAwMi0xMi0xMCAxOToyOSAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgQWxsb3cgcnVudGltZSBjb25maWd1cmF0aW9uIG9mIHBlcnNpc3RlbnQgZGlyZWN0b3J5CiAgIAoyMDAyLTEyLTEwIDE5OjI0ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVwb3J0IGVycm9ycyBoYW5kbGluZyBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMKICAgCjIwMDItMTItMTAgMTk6MjMgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGFzcyB1cCBlcnJvciBvbiBkaXJlY3RvcnkgY3JlYXRpb24KICAgCjIwMDItMTItMTAgMTc6MjcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQmV0dGVyIHJlc3BlY3QgZm9yIHRoZSBtYXggd2lkdGggb3B0aW9uIChzbm1wdHJhbnNsYXRlIC1UZCkKICAgCjIwMDItMTItMTAgMTc6MjYgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIG9pZE91dHB1dEZvcm1hdCBvcHRpb24KICAgCjIwMDItMTItMTAgMTc6MjUgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ2xlYW4gdXAuIFJlbW92ZSBjYWxscyB0byBvYnNvbGV0ZSBmdW5jdGlvbnMgc25tcF9zZXRfcXVpY2tfcHJpbnQsCiAgIHNubXBfZ2V0X2R1bXBfcGFja2V0LCBzbm1wX2dldF9zdWZmaXhfb25seS4gUmVtb3ZlIGxhc3QgdHJhY2VzIG9mIHRoZQogICBub25fc2VxdWVudGlhbCBiYWNrd2FyZHMgaGFjay4gTWFrZSBzdXJlIGl0IHdvcmtzIGZvciBhbGwgLU8gb3B0aW9ucy4KICAgCjIwMDItMTItMTAgMTE6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMjYpLAogICBpbnRlcmZhY2VzLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZW1wdHkgbGluZXMgaW4gL3Byb2MvbmV0L2RldiAgKEJ1ZyAjNjI1NDI2KQogICAKMjAwMi0xMi0xMCAxMTo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuNSksIHNubXB2My5jOgoKICAgRnJlZSBkZXN0aW5hdGlvbiBtZW1vcnkgYmVmb3JlIGNsb25pbmcgU05NUCBFbmdpbmUgSUQuCiAgIEZpeCBwcm92aWRlZCBieSBNYXJ0aW4gQ2FybHNzb24uICAoQnVnICM4MzU0ODEpCiAgIAoyMDAyLTEyLTEwIDExOjA3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIEFkZCAiJENvbmZpZ3tjY2ZsYWdzfSIgdG8gQ0NGTEFHUy4gICAoU2VlIGJ1ZyAjNjQwODk5KQogICAKMjAwMi0xMi0xMCAxMDo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjQtMi1wYXRjaGVzLjgpLCBpcEFkZHIuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBMaW51eCB2aXJ0dWFsIGludGVyZmFjZXMgaW4gdGhlIGlwQWRkcmVzc1RhYmxlLgogICAoTm90ZSB0aGlzIGRvZXMgKm5vdCogaW5jbHVkZSBzZXBhcmF0ZSBwZXItdi1pbnRlcmZhY2Ugc3RhdGlzdGljcwogICAgaW4gdGhlIGludGVyZmFjZXMgdGFibGUpLgogICAKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSmVucyBTaXR0bmVyICgjNjIxMjc0KQogICAKMjAwMi0xMi0xMCAwNDo1OSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIGV4dHJhbmVvdXMgXk0gY2hhcmFjdGVycy4KICAgCjIwMDItMTItMTAgMDI6MzYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV2hlbiB1c2luZyAtT3F2IGFuZCBwcmludGluZyBhbiBlbXB0eSBzdHJpbmcgeW91IGNvdWxkIGVuZCB1cCB3aXRoCiAgIGEgTlVMTCBzdHJpbmcgYW5kIG5vdCBhbiBlbXB0eSBzdHJpbmcgbGVhZGluZyB0byBzb21lIHZlcnkgb2JzY3VyZQogICBwcm9ibGVtcyBpbiBzbm1wdGFibGUgYW5kIG90aGVyIGFwcGxpY2F0aW9ucy4KICAgCjIwMDItMTItMDkgMTE6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIGludGVnZXIgdmFsdWVzICh3aGV0aGVyIDMyLSBvciA2NC1iaXQhKS4gICBPb3BzIQogICAKMjAwMi0xMi0wOSAxMDoxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy4zOCksIHNubXBfYXBpLmM6CgogICBIYW5kbGUgaW50ZWdlci1iYXNlZCB2YWx1ZXMgY29ycmVjdGx5IG9uIGEgNjQtYml0IHBsYXRmb3JtLgogICBQYXRjaCBzdXBwbGllZCBieSBUaG9tYXMgV2ViZXIgKCM1NjEwNzEpCiAgIAoyMDAyLTEyLTA5IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBUYWtlIG5vdGUgb2Ygc3ViYWdlbnQtcmVxdWVzdGVkIGJ5dGUgb3JkZXJpbmcgaW4gc3Vic2VxdWVudCBjb21tdW5pY2F0aW9ucy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVXJiYW4gKCM2MzIyODQpCiAgIAoyMDAyLTEyLTA5IDA5OjMyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yNSksIHNubXBkLmM6CgogICBSZW1vdmUgdGhlIFBJRCBmaWxlIG9uIGFnZW50IHNodXRkb3duLgogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTkpCiAgIAoyMDAyLTEyLTA5IDA5OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSGFuZGxlICdzdHJ1Y3Qgc29ja2FkZHInIHRoYXQgY29udGFpbiAnc2FfbGVuJyBmaWVsZHMgZGlmZmVyZW50bHkKICAgdG8gdGhvc2UgdGhhdCBkb24ndCAoYy5mIGlmaWx0ZXJfaW9jdGwuYyBpbiBCSU5EIDkuMi4xIHNvdXJjZXMpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5NikKICAgCjIwMDItMTItMDkgMDc6MTIgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVjb2duaXNlIEJTRGk0LCBhbmQgdHdlYWsgdGhlIHJlY29nbml0aW9uIG9mICdkbG9wZW4nLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobC4KICAgCjIwMDItMTItMDkgMDY6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCjoKCiAgIFJlbW92ZSBzb21lIHdhcm5pbmdzLCBhbmQgdHJ5IHRvIGNvcGUgd2l0aCAnc3lzY3RsJyBmYWlsdXJlcy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBDaHJpcyBKb2hucy4KICAgCjIwMDItMTItMDkgMDQ6MjAgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbGltaXRhdGlvbnMgb24gL3Vzci91Y2Ivc2VkLAogICBhbmQgcG9pbnQgcGVvcGxlIHRvd2FyZHMgL3Vzci9iaW4vc2VkIGluc3RlYWQuCiAgIAoyMDAyLTEyLTA3IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEluc2VydCBuZXdseS1jcmVhdGVkIHJvd3MgaW50byB0aGUgcGVyLXJlcXVlc3QgbGlzdHMsIHNvIHRoYXQgbG93ZXIKICAgbGV2ZWwgaGFuZGxlcnMgY2FuIGFjY2VzcyB0aGVtLgogICAgIFtRbjogU2hvdWxkIHdlIGRvIHNvbWV0aGluZyBzaW1pbGFyIHdpdGggdXBkYXRlZCBsaXN0cyBhcyB3ZWxsP10KICAgCjIwMDItMTItMDcgMDg6MzQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVwb3J0IGJhY2sgdGhlIGNvcnJlY3QgZXJyb3IgZm9yIHJvd3MgdGhhdCBjb3VsZG4ndCBiZSBjcmVhdGVkLgogICAKMjAwMi0xMi0wNyAwODozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBQcm90ZWN0IGFnYWluc3QgZnJlZWluZyBhIHJvdyB0aGF0IG5ldmVyIGdvdCBjcmVhdGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KICAgCjIwMDItMTItMDYgMTg6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIFNraXAgb24gbm9uLW9wZW5zc2wgbWFjaGluZXMuICBUSGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIGp1c3Qgbm90IHVzaW5nIGVuY3J5cHRpb24gb24gdGhvc2UgbWFjaGluZXMsIGJ1dCBJIGRvIG5vdCBoYXZlIHRoZSB0aW1lIGF0IHRoZSBtb21lbnQKICAgCjIwMDItMTItMDYgMTM6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAxMzowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDEyOjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IGRlbGV0ZSB0aGUgIm9sZCIgKG5vbi1leGlzdGVudCkgcm93LCB3aGVuIHRpZHlpbmcgdXAgYWZ0ZXIKICAgY3JlYXRpbmcgYSBuZXcgcm93LgogICAKMjAwMi0xMi0wNiAxMTo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBUd2VhayBoYW5kbGluZyBvZiAoaW52YWxpZCkgUm93U3RhdHVzIGNyZWF0aW9uIHJlcXVlc3RzIGluIGFuCiAgICJhdXRvbWF0aWMgY3JlYXRpb24iIHRhYmxlLiAgIFRoZXNlIHNob3VsZCByZXR1cm4gd3JvbmdWYWx1ZSBvcgogICBpbmNvbnNpc3RlbnRWYWx1ZSwgcmF0aGVyIHRoYW4gbm90V3JpdGFibGUuCiAgIAoyMDAyLTEyLTA1IDA1OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN1cHBvcnQgdXNlIG9mIFJvd1N0YXR1cyBvYmplY3QgdG8gY29udHJvbCBjcmVhdGlvbiBvZiBuZXcgcm93cwogICAoaS5lLiB3aGVuIHRoZSAnYWxsb3dfY3JlYXRpb24nIGZsYWcgaXMgbm90IHNldCkuCiAgIFRoaXMgc2hvdWxkIGRlYWwgd2l0aCBldmVyeXRoaW5nIGV4Y2VwdCBkZXRlcm1pbmluZyB3aGV0aGVyIGEKICAgcm93IGlzIHJlYWR5IHRvIGdvICdhY3RpdmUnIChlLmcuIHZpYSAnY3JlYXRlQW5kR28nKS4gIFN1Y2ggYQogICBkZWNpc2lvbiBpcyBpbmhlcmVudGx5IHNwZWNpZmljIHRvIGVhY2ggaW5kaXZpZHVhbCBNSUIsIHNvIG11c3QKICAgcmVhbGx5IGJlIGRvbmUgaW4gdGhlIGxvd2VyLWxldmVsIGhhbmRsZXIuCiAgIAoyMDAyLTEyLTA1IDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFN0b3AgcHJvY2Vzc2luZyB3aGVuIGEgJ25vbi13cml0YWJsZSBjcmVhdGUnIGlzIGRldGVjdGVkLgogICAKMjAwMi0xMi0wNCAxOTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgLSBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIC0gcnVuIGV2ZW50VGFibGUgZW50cmllcy4KICAgCjIwMDItMTItMDQgMTk6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYzoKCiAgIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgCjIwMDItMTItMDQgMTk6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmM6CgogICB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgdG8gZ2V0IHJlYWwgc3RyaW5ncyBmcm9tIG1pYiBkYXRhLgogICAKMjAwMi0xMi0wNCAxOTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCiwgbXRlRXZlbnRUYWJsZS5jLCBtdGVFdmVudFRhYmxlLmg6CgogICAtIGltcGxlbWVudGVkIHRoZSBtdGVFdmVudFRhYmxlIGFuZCB0aGUgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZQogICAgIC0gRllJLCB0b3RhbCBpbXBsZW1lbnRhdGlvbiB0aW1lOiBhYm91dCA0IGhvdXJzCiAgICAgLSBubyBlYXN5LXRvLXVzZSAuY29uZiB3cmFwcGVycyB5ZXQgdGhvdWdoLiAgc25tcHNldCBzdXBwb3J0IG9ubHkuCiAgIAoyMDAyLTEyLTA0IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgLSB1c2UgdGhlIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uIHdoaWNoIGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0xMi0wNCAxOToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBjcmVhdGUgYSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbi4KICAgLSBBbGxvdyByb3cgY3JlYXRpb24gdXNpbmcgcm93U3RhdHVzIHdoZW4gdGhlIGRhdGEgY29sdW1uIGV4aXN0cywgYnV0CiAgICAgdGhlcmUgaXMgbm8gYXNzaWduZWQgdmFsdWUgKGllLCBpcyBOVUxMKS4KICAgLSB1c2UgbmV0c25tcF9zdHJkdXBfYW5kX251bGwgaW5zdGVhZCBvZiBtZW1kdXAgdG8gbWFrZSBzdXJlIGFuCiAgICAgaW1wbGljaXQgTlVMTCBpcyBpbiBwbGFjZSBmb3IgdGhpbmdzIHRoYXQgdXNlIHRoZSBkYXRhIGFuZCBuZWVkIGl0CiAgICAgYXMgYSByZWFsIHN0cmluZy4KICAgCjIwMDItMTItMDQgMTk6MjcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGRvY3VtZW50IC0tcHJlZml4CiAgIAoyMDAyLTEyLTA0IDEzOjE2ICBoYXJkYWtlcgoKICAgKiBORVdTIChWNC0yLXBhdGNoZXMuOSksIE5FV1M6CgogICBkb2N1bWVudCA0LjIuNgogICAKMjAwMi0xMi0wMyAwNDo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgQ2xvc2UgcHJpbnRlciBmaWxlIGhhbmRsZSB3aXRoICdmY2xvc2UnIHJhdGhlciB0aGFuICdwY2xvc2UnIHRvIGF2b2lkCiAgIGEgbWVtb3J5IGxlYWsgb24gU29sYXJpcyAyLjYuICAgRml4IHByb3ZpZGVkIGJ5IEphY29ibyBNYXR1dGUuCiAgIAoyMDAyLTEyLTAzIDA0OjMzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9kYXRhc2V0LmM6CgogICBUcmFuc2xhdGUgR2V0TmV4dCAoYW5kIEdldEJ1bGspIHJlcXVlc3RzIGludG8gc2ltcGxlIEdldCByZXF1ZXN0cywKICAgd2hlbiBwYXNzaW5nIHRoZW0gZnJvbSB0aGUgdGFibGVfZGF0YSBoYW5kbGVyIHRvIHRhYmxlX2RhdGFzZXQuCiAgICAgVGhpcyBpcyBhbmFsb2dvdXMgdG8gaG93IHRoZSBpdGVyYXRlIGhhbmRsZXIgd29ya3MsIGFuZCBhbGxvd3MKICAgbG93ZXIgbGV2ZWwgaGFuZGxlcnMgdG8gb3ZlcnJpZGUgdGhlIGJhc2ljIGJlaGF2aW91ciAod2l0aG91dAogICBoYXZpbmcgdG8gZHVwbGljYXRlIGFsbCBvZiB0aGUgImZpbmQgbmV4dCByb3ciIGNvZGUgZXZlcnkgdGltZSkuCiAgIAoyMDAyLTEyLTAyIDA0OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXR1cm4gU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMsIHJhdGhlciB0aGFuIHRoZSBTTk1QdjEgJ25vU3VjaE5hbWUnIGVycm9yLgogICBUaGlzIHVzZWQgdG8gYnJlYWsgQWdlbnRYIHN1YmFnZW50cywgYnV0IHRoZSBsYXRlc3QgY2hhbmdlIHRvIHNubXBfYWdlbnQuYwogICAodG8gY2F0Y2ggbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucykgc2VlbXMgdG8gaGF2ZSBmaXhlZCB0aGF0IHByb2JsZW0uCiAgIAoyMDAyLTEyLTAyIDA0OjQwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFeHBsaWNpdGx5IHBhcmVudGhlc2lzZSBhIGNvbXBhcmlzb24sIHRvIGtlZXAgdGhlIGNvbXBpbGVyIGhhcHB5LgogICAKMjAwMi0xMi0wMiAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW5jbHVzaXZlLXJhbmdlIEdldE5leHQgcmVxdWVzdHMgYXJlIHRyYW5zbWl0dGVkIGFzIEdldCByZXF1ZXN0cywgc28gbWF5CiAgIHdlbGwgcmV0dXJuIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMuICBDYXRjaCB0aGVzZSBhcyB3ZWxsLgogICAKMjAwMi0xMi0wMiAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBDYXRjaCAoYW5kIHJlamVjdCkgYXR0ZW1wdHMgdG8gY3JlYXRlIGEgbmV3IHJvdyB2aWEgYSBub24td3JpdGFibGUgb2JqZWN0LgogICAKMjAwMi0xMS0yOCAwNDoyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgTnVsbCBvdXQgb25lIGZpbmFsIGxvb3BfY29udGV4dCBwb2ludGVyIGFmdGVyIGJlaW5nIGZyZWVkLgogICAoUGF0Y2ggcHJvdmlkZWQgYnkgUm9nZXIgTWNDYWxtYW4pCiAgIAoyMDAyLTExLTI2IDE3OjU5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRGlzY2FyZCB0aGUgc2Vjb25kYXJ5IChHUk9VUCkgREVTQ1JJUFRJT04gaW5zaXplIGEgTU9EVUxFLUNPTVBMSUFOQ0UKICAgdG8gYXZvaWQgbGVha2luZyBtZW1vcnkuIFRoYW5rcyB0byBFdWdlbmVfQnJ1a0BibWMuY29tCiAgIAoyMDAyLTExLTI2IDE3OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBSZWluc3RhdGUgdGhlIC13IG9wdGlvbnMgdGhhdCB3YXMgbG9zdCBpbiB0aGUgaW5kZW50IGZ1cnkKICAgCjIwMDItMTEtMjYgMTA6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgVGhlIG5vdGlmaWNhdGlvbiB2YXJpYWJsZSBzaG91bGRuJ3QgYmUgc3RhdGljLiAgQSBidWcgZm91bmQgd2hpbGUKICAgdHJhY2tpbmcgZG93biBhIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgVmVuaWNlIG9uIElSQy4KICAgCjIwMDItMTEtMjYgMDQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggaW5jb3JyZWN0IHVzYWdlIG9mIFNFX01BWF9JRFMgdnMgU0VfTUFYX1NVQklEUy4KICAgUmVwb3J0ZWQgYnkgJ3NoaW5lcGVhaycKICAgCjIwMDItMTEtMjUgMjI6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgaGFjayBvZiBhIGhhY2sgb2YgYSBoYWNrLCBvcjogZml4IG11bHRpLWxpbmUgRkFRIHF1ZXN0aW9ucwogICAKMjAwMi0xMS0yNSAxMDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAyLTExLTE4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIGFwcGxpZWQgcGF0Y2ggIzUyNzY1MAogICAKMjAwMi0xMS0xMSAxNzoxMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZXNwZWN0IHRoZSBtaWJkaXJzIGNvbmYgZGlyZWN0aXZlLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMTEgMTY6NTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBhIG1pc3NpbmcgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTExIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBmaXggdGFkZHIgZ2VuZXJhdGlvbi9wYXJzaW5nIGZvciBwb3J0IGJhc2VkIHRyYW5zcG9ydHMgdG8gcHJvcGVybHkgdXNlCiAgIG5ldHdvcmsgYnl0ZSBvcmRlcmluZy4KICAgCjIwMDItMTEtMTEgMTQ6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBmaXggd3JpdGUgc3VwcG9ydCBmb3IgdGhlIHRpbWVvdXQgY29sdW1uCiAgIAoyMDAyLTExLTA5IDEwOjA2ICBuYmEKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIERvIGF3YXkgd2l0aCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTExLTA5IDA5OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Byb2MuYywgaG9zdC9ocl9wcmludC5jCjoKCiAgIFplcm8gaXMgYW4gT0sgZmlsZSBkZXNjcmlwdG9yLiAtMSBpcyB0aGUgZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTExLTA5IDA5OjU0ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1vcmUgdG8gdGhlIHBvaW50IG1lc3NhZ2UgZm9yIHVuZGVmaW5lZCBpZGVudGlmaWVycy4gQnJvdWdodCBmb3J3YXJkIGZyb20gNC4yCiAgIAoyMDAyLTExLTA5IDA5OjUyICBuYmEKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgUHJpbnQgdGhlIGVycm9yIGluZm9ybWF0aW9uIGluIGNhc2Ugb2YgZXJyb3IKICAgCjIwMDItMTEtMDkgMDk6NTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdjIgZXhjZXB0aW9uIHJlc3VsdHMKICAgCjIwMDItMTEtMDkgMDk6NDkgIG5iYQoKICAgKiBzZWRzY3JpcHQuaW4sIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdGVjdCBQUkVGSVggd2hlbiBpdCBpcyB0aGUgZW52IHZhci4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTA5IDA5OjQ3ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkIFJGQyAzMzcxIEwyVFAtTUlCCiAgIAoyMDAyLTExLTA5IDA5OjQ2ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGVkIGZyb20gSUFOQQogICAKMjAwMi0xMS0wNyAwNTo1NSAgamJwbgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgICAtIGZpeCAtQ2YgYW5kIC1DdyBvcHRpb24gcHJvY2Vzc2luZyAocHJldmlvdXNseSB3b3VsZCBjb3JlIGR1bXAgaWYKICAgICAgIG5vIG9wdGlvbiBwYXNzZWQpLCBhcyBwb2ludGVkIG91dCBieSBoYW1wYSBvbiAjbmV0LXNubXAKICAgCjIwMDItMTEtMDYgMTU6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggY3V0L3Bhc3RlCiAgIAoyMDAyLTExLTA2IDE1OjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbiAmIG1ha2VmaWxlcwogICAKMjAwMi0xMS0wNiAxNDowOCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBtaXNzaW5nIGVuZCBxdW90ZQogICAKMjAwMi0xMS0wNiAxMzozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBAREVWRkxBR1NAIHdlaGVydmVyIHRoZXJlIGlzIGEgQENGTEFHU0AsIGV4Y2VwdCBmb3IgdGhlIG5ldyAtLWJhc2UtY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDEzOjIyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYWRkIEBERVZGTEFHU0AgdG8gQ0ZMQUdTCiAgIAoyMDAyLTExLTA2IDEzOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgc2VwZXJhdGUgZGV2ZWxvcGVyIGNmbGFncyBmcm9tIG5vcm1hbCBjZmxhZ3MKICAgCjIwMDItMTEtMDYgMTI6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBjaGFuZ2Ugc3RydWN0LmggaW5jbHVkZSB0byB1c2UgIiIgaW5zdGVhZCBvZiA8bmV0LXNubXAvPiwgc2luY2UgaXQgaXQgYSBsb2NhbAogICBpbmNsdWRlLCBub3QgYSBzeXN0ZW0gaW5jbHVkZQogICAKMjAwMi0xMS0wNiAxMjozOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcHVyZ2UgSU5fVUNEX1NOTVBfU09VUkNFCiAgIAoyMDAyLTExLTA1IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGFkZGVkIGEgeG1sc2hvcnQgZGVsaW1pdGVyIGFzIHJlcXVlc3RlZCBieSBsYW5kcyBvbiBJUkMKICAgCjIwMDItMTEtMDUgMTE6NTkgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgdGFicyAtPiBzcGFjZXMgb25seSB0cnkgdG8gY2htb2QgUk8gc3JjIGRpciBpZiBvd25lciBvZiBkaXJzCiAgIAoyMDAyLTExLTA1IDExOjU2ICByc3RvcnkKCiAgICogbWtpbnN0YWxsZGlyczoKCiAgIG1ha2luZyBhIGRpcmVjdG9yeSBpcyBub3QgYW4gZXJyb3IsIHNvIGRvbid0IHNlbmQgb3V0cHV0IHRvIHN0ZGVycgogICAKMjAwMi0xMS0wNCAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgYWxsb3cgdW5yZWdpc3RlcmVkIHNlY3VyaXR5IG1vZGVscyA8PSAyCiAgIAoyMDAyLTExLTA0IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIHRvIGJlIGJldHRlciBzdXBwb3J0ZWQgKHJvd3N0YXR1cyBubyBsb25nZXIgaGFzIHRvCiAgIGJlIGZpcnN0IGluIHRoZSBsaXN0LCAuLi4pCiAgIAoyMDAyLTExLTA0IDExOjEzICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgY3BwZmxhZ3MgdG8gLS1jZmxhZ3MKICAgCjIwMDItMTEtMDQgMTE6MTMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGQgc3R1ZmYgZm9yIDUuMC43IChvciB3aGF0ZXZlcikgbWVudGlvbmluZyBhIGZldyBuZXcgZmVhdHVyZXMuCiAgIAoyMDAyLTExLTAxIDEyOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBidWcgIzYzMjA5NCB1c2luZyB0aGUgc3VnZ2VzdGVkIG1ldGhvZDogd2F0Y2ggZm9yIE5VTEwgc3RyZXJyb3IoKSByZXR1cm4KICAgCjIwMDItMTEtMDEgMTA6MDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVuZG8gbXkgY2hhbmdlcyBmcm9tIHIgNS4xNywgYXR0ZW1wdGluZyB0byByZWR1Y2UgcnVucyBvZiBjb25maWcuc3RhdHVzCiAgIGJ5IHVzaW5nIGV4cGxpY2l0IHBhdGhzIHRvIHNyY2RpciwgYW5kIGxldCBWUEFUSCBkbyBpdCdzIHRoaW5nCiAgIAoyMDAyLTEwLTI5IDE0OjMwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHRhcmdldCB0byBidWlsZCBiaW5hcnkgYXJyYXkgdGVzdCBhcHA7IHR3ZWFrIHRvIHBhcnNlIHRlc3QgdGFyZ2V0IChyZWR1Y2VzIG1vc3QKICAgYnV0IG5vdCBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcykKICAgCjIwMDItMTAtMjkgMTQ6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBmb3IgYmluYXJ5IHNlYXJjaCBwcm9ibGVtIG5vdGVkIGJ5IFJvbXkgQ2hyaXN0ZW5zZW4gb24gY29kZXJzOyBwYXJ0aWFsCiAgIChpZmRlZidkIG91dCkgY29kZSBmb3IgYSBiaW5hcnkgYXJyYXkgaXRlcmF0b3IKICAgCjIwMDItMTAtMjkgMTQ6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBzaW1wbGUgdGVzdCBwcm9ncmFtIGZvciBiaW5hcnkgYXJyYXkKICAgCjIwMDItMTAtMjkgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRml4IGRlYnVnZ2luZyBhcyBub3RlZCBpbiBidWcgIzYzMDM0OAogICAKMjAwMi0xMC0yOCAxOTo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2VkIC4xLjYuMyB0byAxLjMuNiBhcyBub3RlZCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIAoyMDAyLTEwLTI4IDE1OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBjaGFuZ2VkIHBhc3N3b3JkCiAgIAoyMDAyLTEwLTI4IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBtaXNjIHZhY20gZml4ZXMKICAgCjIwMDItMTAtMjggMDg6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBlcnJvbmVvdXMgZnJlZSgpIG9mIHJ4YnVmCiAgIAoyMDAyLTEwLTI1IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXhlZCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgLT4gTkVUU05NUF9PUF9DQUxMQkFDS19ESVNDT05ORUNUIGFzIG5vdGVkIGJ5IFRyb2dMIG9uIElSQwogICAKMjAwMi0xMC0yNSAwNzozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhIE5FVFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0eXBlIGNhbGxiYWNrIGlmIHdlCiAgICAgICBkZWNpZGUgdG8gc2h1dGRvd24gYSBzdHJlYW0gdHlwZSBjb25uZWN0aW9uIGJlY2F1c2Ugd2UgcmVjZWl2ZWQKICAgICAgIGFuIGV4Y2Vzc2l2ZWx5IGxhcmdlIHBhY2tldC4KICAgCjIwMDItMTAtMjQgMTA6NDEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIHRoZSBzdXBlci1idWctcGF0Y2ggZ2VuZXJhdG9yIFN0ZWZhbiBSYWRtYW4gdG8gdGhlIFRIQU5LUyBsaXN0CiAgIAoyMDAyLTEwLTI0IDEwOjQwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBidWcgIzYxNzUwODogYWRkZWQgdGhlIG10YV9zZW5kbWFpbCBtb2R1bGUgdG8gLS1oZWxwCiAgIAoyMDAyLTEwLTI0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBpbnN0YWxsIGxpc3QgZm9yIG1pYjJjIGNvbmYgZmlsZXMgYW5kIHJlbW92ZSBvbGQgb25lCiAgIAoyMDAyLTEwLTIzIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBpbmNvcnJlY3QgdmFyaWFibGUgbmFtZSBJIG5vdGljZWQgd2hlbiBjb3B5aW5nIHRvIGEgZGlmZmVyZW50IGNvbmZpZ3VyZSBzY3JpcHQgaW4gYW5vdGhlciBwYWNrYWdlCiAgIAoyMDAyLTEwLTIzIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeGVkIGJ1ZyM2MTc4Mzg6IHZlcnNpb250YWcgaXNuJ3QgZGlzdHJpYnV0ZWQgYW5kIHNob3VsZG4ndCBiZSBhbHdheXMKICAgdXNlZCBpbiB0aGUgbWFrZSBkaXN0Y2xlYW4gY2FsbHMuCiAgIAoyMDAyLTEwLTIzIDIwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBpbmNvbnNlcXVlbmNpYWwgbWVtb3J5IGxlYWtzIGZpeGVkIChpbml0IHRpbWUgbGVha3MpLgogICAKMjAwMi0xMC0yMyAyMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgRml4ZWQgdmFyaW91cyBtZW1vcnkgbGVha3MgaW4gdGhlIHRhYmxlX2l0ZXJhdG9yIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIFJvZ2VyIE1jQ2FsbWFuIGFuZCBKYXkgUGFybGFyIG9uIHRoZSAtY29kZXJzIGxpc3QgKGluY2x1ZGluZyB0aGVpciBwYXRjaGVzKQogICAKMjAwMi0xMC0yMyAxODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgc25tcE5vdGlmeVRhYmxlLmMKICAgCjIwMDItMTAtMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZyZWUgYSBwcmV2aW91c2x5IG1hbGxvY2VkIHBvaW50ZXIgdG8gdGhlIHdhdGNoIHZhcmlhYmxlIGJlZm9yZSByZXBsYWNpbmcgaXQuCiAgIAoyMDAyLTEwLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmM6CgogICByZW1vdmUgZHVwbGljYXRlIHVudXNlZCBtYWxsb2MuCiAgIAoyMDAyLTEwLTIxIDEyOjQzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjkuaDoKCiAgICAgLSBhZGQgc3lzdGVtIGZpbGUgZm9yIFNvbGFyaXMgOQogICAKMjAwMi0xMC0xNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBPcHRpbWl6ZWQgdGhlIFZBQ00gY2hlY2tzIGluIHRoZSBjYXNlIG9mIGdldG5leHQvZ2V0YnVsayBzbyB0aGF0IHdoZW4KICAgbGFyZ2UgcG9ydGlvbnMgb2YgdGhlIG1pYiB0cmVlIGFyZSBleGNsdWRlZCwgdGhlIHN1Yi1taWIgYWNjZXNzIGNvZGUKICAgd29uJ3QgYmUgY2FsbGVkIGF0IGFsbCAoZmluYWxseSBpbXBsZW1lbnRpbmcgYSB2ZXJ5IGxvbmcgbmVlZGVkIG9wdGltaXphdGlvbikuCiAgIAoyMDAyLTEwLTE3IDIyOjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG5ldyBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb21tb25hbGl0eSBiZXR3ZWVuIHR3byBvaWRzOiBuZXRzbm1wX29pZF9maW5kX3ByZWZpeAogICAKMjAwMi0xMC0xNyAyMjozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUHJpbnQgb3V0IGEgInN1bW1hcnkiIGF0IHRoZSBlbmQgb2YgYSBydW4KICAgCjIwMDItMTAtMTcgMDU6NDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFByb3Blcmx5IHRlcm1pbmF0ZSBhIGxvb3AgY29uc3RydWN0IChtaXNzaW5nICdAZW5kQCcpCiAgIFNwb3R0ZWQgYnkgS2FybCBDb29wZXIuICAgIE9vcHMhCiAgIAoyMDAyLTEwLTE2IDE3OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlc3RvcmUgY29udGludWUgYWZ0ZXIgRUlOVFIgY2F1c2VkIGJ5IHNpZ25hbCB3ZSBoYW5kbGVkIChpbnN0ZWFkIG9mIGZhbGxpbmcKICAgdGhvcm91Z2ggdG8gZXhpdCEpCiAgIAoyMDAyLTEwLTE2IDE3OjAwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZWNrIGZvciBvdXIgc2lnbmFsIGZsYWdzIG9uIEVJTlRSLCBhbmQgb25seSByZWxlc2VjdCBpZiBub3QgY2hhbmdlZDsKICAgZGVidWcgbXNnIHdoZW4gc2lnbmFscyByZWdpc3RlcmVkIGFuZCBmb3Igc2VsZWN0L2Zkc2V0czsKICAgCjIwMDItMTAtMTYgMTU6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBtb3ZlIENQUEZMQUdTIGJlZm9yZSB1c2VyIGNvbmZpZ3VyZSBDRkxBR1MuLiBzbyBpZiBhIHVzZXIgYWRkcyBzb21ldGhpbmcKICAgbGlrZSAvdXNyL2xvY2FsL2luY2x1ZGUgdG8gQ0ZMQUdTLCB3ZSB3aWxsIHBpY2sgdXAgb3VyIGxvY2FsIGluY2x1ZGVzIGZpcnN0LAogICBpbnN0ZWFkIG9mIGluY2x1ZGVzIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLi4KICAgCjIwMDItMTAtMTYgMDA6MDYgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oCjoKCiAgIG1ha2Ugc3VyZSBzbm1wdHJhcGQgYWx3YXlzIGhvbm9ycyBEU19BUFBfTlVNRVJJQ19JUCBmb3IgbG9nZ2luZwogICAKMjAwMi0xMC0xNSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXRzbm1wX2dldF9ib29sZWFuIC0+IG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4KICAgCjIwMDItMTAtMTUgMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaXggY29uc3RhbnQgdXNlZCBpbiBhc3NlcnQsIG5vdGVkIG9uIGNvZGVycwogICAKMjAwMi0xMC0xNSAxNDowNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgc3lzbG9nIGZvciBsaWJ3cmFwIGxvZyBsZXZlbHMKICAgCjIwMDItMTAtMTUgMTA6MzkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgQWRkIHlldCBhbm90aGVyIHdheSB0byBzcGVjaWZ5IHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xNCAxMTo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBmaXggaXB2NiB0cmFuc3BvcnQgYWRkcmVzcyBzcGVjcwogICAKMjAwMi0xMC0xMSAxOToxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmNtdSwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVtb3ZlIHRoZSBSRUFETUUuY211IGZpbGUgKGVudGlyZWx5IG91dCBvZiBkYXRlIGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0xMC0xMSAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoICM2MDA5MzMgZnJvbSBEb25hbCBEaWFtb25kOiBkc2tQZXJjZW50Tm9kZSBmb3IgRnJlZUJTRDQKICAgCjIwMDItMTAtMTEgMTY6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTk4MjgwIGZyb20gSmVmZiBXYXRzb246IG1ha2UgLU9RIG5vdCBwcmludCB0eXBlIHdhcm5pbmdzLgogICAKMjAwMi0xMC0xMSAxNjo0MyAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBpbmNsdWRlIGRpcmVjdG9yeQogICAKMjAwMi0xMC0xMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHJwbSBzdWJkaXIKICAgCjIwMDItMTAtMTEgMTY6MzIgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBiZXR0ZXIgZG9jcyBhYm91dCBhdXRvLWV4dHJhY3RlZCBTRiBuZXdzCiAgIAoyMDAyLTEwLTExIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogTWFrZWZpbGUsIG5ldC1zbm1wLnNwZWM6CgogICBtZXJnZSBpbiBwYXRjaCAjNTk4ODY5OiBNYXJrIEhhcmlnJ3MgYmV0dGVyIHJwbSBzdHVmZgogICAKMjAwMi0xMC0xMSAxNToyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwo6CgogICBBbHRlcm5hdGl2ZSB0byBhIHBhdGNoIHN1Z2dlc3Rpb246IGFkZCAtT1UgdG8gbm90IHByaW50IFVOSVRTIHN1ZmZpeGVzLgogICAKMjAwMi0xMC0xMSAxNToxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAuLi9hZ2VudC9zbm1wX2FnZW50LmMKICAgCjIwMDItMTAtMTEgMTU6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBkb250UHJpbnRVbml0cwogICAKMjAwMi0xMC0xMSAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggIzYxNzE1MSBmcm9tIEFuZHJldyBSdWNrZXIgSm9uZXM6IGZpeCBsaWJ3cmFwIGhlYWRlcnMuCiAgICAgLSBJJ20gc3RpbGwgdW5oYXBweSB3aXRoIGhvdyBsaWJ3cmFwIGZ1bmN0aW9ucy4uLiAgbmVlZHMgdGhpbmtpbmcgYWJvdXQuCiAgIAoyMDAyLTEwLTExIDEzOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICMzMTI2OTQgZnJvbSBKb2huIFN1cnZleW9yOiBmaXggZGlza2lvIG9uIHNvbGFyaXMuCiAgIAoyMDAyLTEwLTExIDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQXBwbGllZCBwYXRjaCAjNjIxMzk4IGZyb20gTWF0dGhldyBLcmVuemVyIHRvIGZpeCBsaW51eCBhcnAgdGFibGUuCiAgIAoyMDAyLTEwLTExIDA5OjQ3ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgY2hnIG5ldHNubXBtaWJzIC0+IG5ldHNubXBtaWJzc2tkIChub3RlZCBvbiBjb2RlcnMgYnkgSmVkIFdoaXR0ZW4pCiAgIAoyMDAyLTEwLTExIDA5OjQ1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIG5vdGUgc3F1YXJlIGJyYWNrZXRzIGZvciBJUHY2IGFkZHJlc3NlcwogICAKMjAwMi0xMC0xMSAwOTo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc2VsZWN0KCkgbW9yZSBxdWlja2x5IGlmIGFuIEVJTlRSIGhhcHBlbnMKICAgCjIwMDItMTAtMTEgMDE6NTEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFwcGxpZWQgSGFycmllJ3MgcGF0Y2ggZGVzY3JpYmluZyBsb3cgbWVtb3J5IGZvb3RwcmludHMKICAgCjIwMDItMTAtMTAgMTE6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gSG9yc3RlaW4gdG8gZml4IEtTTSBtb2R1bGUKICAgCjIwMDItMTAtMTAgMDY6MjIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgICAtIHJlbW92ZSBiYWQgaW5saW5lcyB3aGljaCBjYXVzZSBmaWxlIG5vdCB0byBjb21waWxlIHdpdGggU3VuIENDLgogICAgICAgU2VlIGJ1ZyAjNjIwODI3LgogICAKMjAwMi0xMC0xMCAwMjowMyAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYWRkIC5sYSBmaWxlcwogICAKMjAwMi0xMC0xMCAwMjowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWFrZSB0aGUgLnNwZWMgZmlsZSBhbG1vc3QgdXNhYmxlLgogICAKMjAwMi0xMC0wOCAxODo1NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgRkFRIHVwZGF0ZXMgZm9yIGRvd25sb2FkIHNpdGVzLgogICAKMjAwMi0xMC0wOCAxMDozNiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgUGF0Y2ggZnJvbSBKb3NodWEgS2Vyb2VzIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKICAgCjIwMDItMTAtMDcgMTM6NTcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZGVkIGEgc3RhdGVtZW50IGFib3V0IHRoZSBDT1BZSU5HIGZpbGUgKHN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTEwLTA2IDE0OjMyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIG5zYi0qIGxpa2VzIGZ1bGwgcGF0aHMsIHVwZGF0ZSBleGFtcGxlczsgZml4IHNvdXJjZWZvcmdlIHVwbG9hZCBzaXRlCiAgIAoyMDAyLTEwLTA1IDE3OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYwosIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjYgKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNSAtPiBWNS4wLjYKCjIwMDItMTAtMDUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciA1LjAuNgogICAKMjAwMi0xMC0wNSAxNDowOCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJlbW92ZSBpbGxlZ2FsIGZsYWcgZnJvbSBuc2ItY29uZmlnCiAgIAoyMDAyLTEwLTA1IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCBhbGxvY2F0ZSAwIGJ5dGVzCiAgIAoyMDAyLTEwLTA1IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IHJlZmVyZW5jZSBwdHIgYWZ0ZXIgaXMgaGFzIGJlZW4gZnJlZSdkLgogICAKMjAwMi0xMC0wNCAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHNlY29uZGFyeSBlZmZlY3Qgb2YgYnVnIDYxMzk4MyBhbmQgcmVhbGx5IGZpeCBpdCB0aGlzIHRpbWUuCiAgIAoyMDAyLTEwLTAyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvOiB0dW5uZWwuYyAoVjQtMi1wYXRjaGVzLjIpLCB0dW5uZWwuYwo6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gZml4IHNvbWUgY29kaW5nIGVycm9ycwogICAKMjAwMi0xMC0wMSAwNzozOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgb2ZmaWNhbCBwYXRjaCA2MTcwNDk6IGluaXRpYWxpemUgY29udGFpbmVyIGxpc3QgZWFybGllciAoaW4gaW5pdF9hZ2VudCkKICAgCjIwMDItMTAtMDEgMDc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzIChkYW1uIHdpbmRvd3MgZWRpdG9ycykKICAgCjIwMDItMDktMzAgMTU6MTcgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjUgKQogICAKMjAwMi0wOS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgaW5mbyBvbiBtZDVzdW1zIGFuZCBncGcgc2lnbmluZwogICAKMjAwMi0wOS0zMCAxNToxNSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBmaXggY2htb2QgdG8gZG8gd2hhdCBJIHdhbnRlZCwgbm90IHdoYXQgSSB0b2xkIGl0CiAgIAoyMDAyLTA5LTMwIDE1OjE0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBNYWtlZmlsZS50b3AsIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC41CiAgIAoyMDAyLTA5LTMwIDE0OjI3ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgbWVyZ2UgcHJlIGNoYW5nZXMgaW50byA1LjAuNCBjb21tZW50cwogICAKMjAwMi0wOS0zMCAxNDoyNSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjIzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTkVXUyB1cGRhdGVzIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4zIC0+IFY1LjAuNQoKMjAwMi0wOS0zMCAxNjowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1ha2UgbGVuIGEgc2l6ZV90IHRvIGZpeCBwcm9ibGVtIG9uIDY0IGJpdCBzeXN0ZW0sIHJlcG9ydGVkIGJ5IHNlYm5vZGAgaW4gSVJDCiAgIAoyMDAyLTA5LTMwIDE2OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZG9uJ3QgdXNlIHN0YXRpYyBsb2NhbCB2YXJzLCBhcyB0aGV5IGFyZSBsaWtlbHkgdG8gY2F1c2UgcHJvYmxlbXMgd2l0aCB0aHJlYWRzCiAgIAoyMDAyLTA5LTMwIDE1OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIG1ha2Ugc3VyZSBpbnN0YWxsIGRpciBpcyByZWxhdGl2ZSB0byBidWlsZCBkaXIKICAgCjIwMDItMDktMzAgMTU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gZGVidWcKICAgCjIwMDItMDktMzAgMTU6MTkgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKICAgCjIwMDItMDktMzAgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhdm9pZCBpbmZpbml0ZSBsb29wCiAgIAoyMDAyLTA5LTMwIDE0OjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgYXNzdW1lIG1ha2UgaXMgR05VIG1ha2UsIGFuZCBzZWFyY2ggZm9yIGl0LiByZXF1aXJlIHVzZXIgdG8gc2V0IGFuCiAgIGVudiB2YXIgaWYgbm8gR05VIG1ha2UgaXMgZm91bmQgaW4gUEFUSAogICAKMjAwMi0wOS0zMCAxNDo1OCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBpZiBDVlMgZGlyIGlzIHJvLCBhdXRvbWFnaWNhbGx5IG1ha2UgaXQgcncgYmVmb3JlIHVwZGF0ZSBhbmQgcm8gYWZ0ZXIgdXBkYXRlCiAgIAoyMDAyLTA5LTI3IDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtYWtlIGdldF9zZXRfY2FjaGUoKSByZXR1cm4gYW4gZXJyb3IgaWYgbm8gcHJldmlvdXMgU0VUIGhhcyBiZWVuIHN0YXJ0ZWQuCiAgIAoyMDAyLTA5LTI3IDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZG91YmxlIGNoZWNrIGFnYWluc3Qgc29tZSBudWxsIHBvaW50ZXJzIGJlZm9yZSB1c2luZyB0aGVtIGluIHRoZSBjYWNoZSBjb2RlLgogICAKMjAwMi0wOS0yNyAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IHRyZWVjYWNoZV9udW0gdG8gLTEgYXQgaW5pdCBvZiBtZW1vcnksIHRvIGJlIGV4dHJhIHNhZmUuCiAgIAoyMDAyLTA5LTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIG1vdmUgbGlid3JhcCB2YXJpYWJsZXMKICAgCjIwMDItMDktMjYgMTQ6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBvaywgcmVtb3ZlIHRjcHdyYXBwZXJzIHZhcnMKICAgCjIwMDItMDktMjYgMTM6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBkZWZpbmUgc3R1cGlkIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGNwd3JhcHBlcnMgYmVjYXVzZSB0aGV5IGRvbid0IGdldAogICBjb25jZXB0cyBvZiBlbmNhcHN1bGF0aW9uLiAgYXJnLgogICAKMjAwMi0wOS0yNiAxMToyNiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGNoYW5nZSBjYWxsX3B2IHRvIHBlcmxfY2FsbF9wdiBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgcGVybC4KICAgCjIwMDItMDktMjYgMTE6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBydW4gc3RyZHVwKCkgb24gZ2V0X21pYl9kaXIoKSByZXN1bHRzIHRvIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgRXVnZW5lIEJydWsuCiAgIAoyMDAyLTA5LTIzIDEzOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWVudGlvbiBmcmVzaG1lYXQKICAgCjIwMDItMDktMjMgMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIGltcGxlbWVudCBhIChsb25nIG5lZWRlZCkgc2V0dGFibGUgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGN1cnJlbnQKICAgICBwZXJzaXN0ZW50IGluZm9ybWF0aW9uLgogICAKMjAwMi0wOS0yMyAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBtYWtlIG5vdCBpbiB0aW1lIHdpbmRvdyByZXBvcnRzIHRyaWdnZXIgYSByZXNlbmQgb2YgaW5mb3Jtcy4KICAgICAoc3VnZ2VzdGlvbiBmcm9tIEVyaWsgQW5nZ2FyZCkKICAgCjIwMDItMDktMjAgMTE6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmg6CgogICAgIC0gcmVtb3ZlIGZ1bmN0aW9ucyB2YWNtX3BhcnNlX3NlY3VyaXR5IGFuZCB2YWNtX2ZyZWVfc2VjdXJpdHkgd2hpY2gKICAgICAgIGRvbid0IGV4aXN0CiAgIAoyMDAyLTA5LTE5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgLSBzdXBwb3J0IGFnZW50IHNodXRkb3ducyAod2VsbCwgb2sgaXQncyBqdXN0IGFuIGFwaSBzaW5jZSBpdCBkb2Vzbid0IHdvcmspLgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAKMjAwMi0wOS0xOSAxNjozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnhzLCBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIGZpeCBhZ2VudCByZXF1ZXN0X2luZm9QdHIgcHJvYmxlbXMuCiAgIAoyMDAyLTA5LTE5IDEyOjA0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgQ29tcGlsZSBhbmQgbGluayB3aXRoICdnZXRvcHQuYycgZXhwbGljaXRseS4KICAgCiAgIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBmb3Igc29tZSByZWFzb24KICAgKHRoYXQgY29tcGxldGVseSBlc2NhcGVzIG1lISksIHVzaW5nIGNvbW1hbmQtbGluZSBvcHRpb25zCiAgIChzdWNoIGFzIC1JUikgd2l0aCB0aGUgUmVsZWFzZSB2ZXJzaW9uIG9mIHNubXB0cmFuc2xhdGUKICAgY2F1c2VzIGEgcnVuLXRpbWUgRExMIGVycm9yLiAgKFRoZSBEZWJ1ZyB2ZXJzaW9uIGlzIGZpbmUpLgogICBUaGUgb3RoZXIgYXBwbGljYXRpb25zIHNlZW0gdG8gYmUgT0sgLSB0aGlzIHByb2JsZW0gb25seQogICBzZWVtcyB0byBoaXQgc25tcHRyYW5zbGF0ZS4gIFNvIGFzIGEgc3RpY2tpbmctcGxhc3RlciwKICAgY29tcGlsaWluZyBnZXRvcHQuYyBpbiBhcyBwYXJ0IG9mIHRoZSBwcm9qZWN0LCBrZWVwcyBib3RoCiAgIHZlcnNpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiBoYXBweS4KICAgICBTb21lb25lIHdpdGggYmV0dGVyIFdpbmRvd3Mga25vd2xlZGdlIHRoYW4gbWUgbmVlZHMgdG8KICAgbG9vayBhdCB0aGlzIGFuZCBmaXggaXQgcHJvcGVybHkuCiAgIAoyMDAyLTA5LTE5IDA2OjE0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHVuZG8gd29yc3Qgb2YgaW5kZW50IGRhbWFnZQogICAKMjAwMi0wOS0xOSAwNjowMyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgX2RwYXJzZSBmdW5jdGlvbnMgKHdoaWNoIGRvbid0IGV4aXN0KQogICAKMjAwMi0wOS0xOCAxMDo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVzZXQgU05NUF9TTEVFUCBhZnRlciBsb29wCiAgIAoyMDAyLTA5LTE4IDEwOjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSByZW1vdmUgdmVyeSBvYnNvbGV0ZSAoYW5kIG5vdCB1c2VkIGFueXdoZXJlKSAjZGVmaW5pdGlvbnMgb2YKICAgICAgIFBBUlRZX01JQl9CQVNFIGFuZCBDT05URVhUX01JQl9CQVNFCiAgIAoyMDAyLTA5LTE4IDAyOjU5ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdHdlYWsgZm9yIDUuMC40IGxhc3QgbWludXRlIHVwZGF0ZQogICAKMjAwMi0wOS0xOCAwMjo0OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGNoZyA+IHRvIC1ndCB0byBhY2hpZXZlIGludGVuZGVkIHJlc3VsdAogICAKMjAwMi0wOS0xOCAwMTozOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE4IDAxOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40ICkKICAgCjIwMDItMDktMTggMDE6MzIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE4IDAwOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgJChzcmNkaXIpIHRvIGEgZmV3IGRlcGVuZGVuY2llcyB0byB0cnkgYW5kIHJlZHVjZSB0aGUgIyBvZiB0aW1lcyB0aGF0CiAgIGNvbmZpZy5zdGF0dXMgaXMgcnVuIHdoZW4gYnVpbGRpbmcgb3V0c2lkZSB0aGUgc3JjIGRpcgogICAKMjAwMi0wOS0xOCAwMDo1NCAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIHZpc3VhbGx5IHByb3ZvY2F0aXZlIHNlY3Rpb24gaGVhZGVyczsgYWRkIHJlY2VudCBzdGF0dXMgKGFsbCBiYWQgbmV3cyk7CiAgIG5vdCB0byB1c2UgbmV3IHdpbjMyc2RrLmRzdyB0byBnZXQgYWRkaXRvbmFsIGZ1bmN0aW9uYWxpdHkgd2l0aCBwbGF0Zm9ybSBzZGs7CiAgIHJlbW92ZSBpbmZvIG9uIHJlbW92aW5nIGFnZW50eCwgYXMgaXQncyBiZWVuIGFyb3VuZCBub3cgZm9yIGEgd2hpbGU7IGFkZAogICBzZWN0aW9uIG9uIHdoYXQgZmlsZXMgdG8gZWRpdCB0byBhZGQgbWliMmMgZ2VuZXJhdGVkIGNvZGUgdG8gYWdlbnQ7IHJlbW92ZQogICByZWZlcmVuY2UgdG8gc3BlY2lmaWMgcmVsZWFzZSBudW1iZXIgaW4gZXhhbXBsZQogICAKMjAwMi0wOS0xOCAwMDoyNSAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIHRha2UgJ3Nkaycgb3V0IG9mIGV4ZSBuYW1lCiAgIAoyMDAyLTA5LTE4IDAwOjI1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgc3dhcCBzbm1wZHNkayBmb3Igc25tcGQKICAgCjIwMDItMDktMTggMDA6MTQgIHJzdG9yeQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZ2V0IGFsbCBvdXIgZHVja3MgaW4gYSByb3c6IGFkZCBhZHZhcGkzMi5saWIgdG8gbGluayBsaW5lcywgbWFrZSBzdXJlIGFsbAogICBSZWxlYXNlIGFuZCBEZWJ1ZyBsaWJzL2FwcHMgYXJlIGNvbXBpbGUgd2l0aCBzYW1lIEMrKyBzZXR0aW5ncwogICAKMjAwMi0wOS0xOCAwMDoxMiAgcnN0b3J5CgogICAqIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIHJlbW92ZSBzZGsgZGVwZW5kZW50IG1vZHVsZXMKICAgCjIwMDItMDktMTggMDA6MTAgIHJzdG9yeQoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBncm91cCBtb2R1bGVzIHRoYXQgZGVwZW5kIG9uIHdpbjMyIHNkayB0b2dldGhlciwgd2l0aCBpZmRlZgogICAKMjAwMi0wOS0xOCAwMDowOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgbm8gY2FsbGJhY2sgZm9yIHdpbjMyIHVudGlsIHBpcGUgZmQgcHJvYmxlbSBpcyBmaXhlZAogICAKMjAwMi0wOS0xOCAwMDowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBuZXcgdmVyc2lvbnMgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xOCAwMDowNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIG5ldyB3b3Jrc3BhY2UgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtaWIgbW9kdWxlIGxvYWRpbmcgZml4ZXMgYnkgY2FsbGluZyBpbml0X3NubXAgZmlyc3QKICAgCjIwMDItMDktMTMgMTU6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdHdlYWsgZXhhbXBsZSBuc2ItY29uZmlnIGNvbW1hbmQ7IGFkZCAtYiBiYWNrIHRvIGN2czJjbCwgb3RoZXJ3aXNlIHlvdQogICBnZXQgY2hhbmdlbG9nIG1zZ3MgZnJvbSBvdGhlciBicmFuY2hlcyBhbmQgaGF2ZSB0byB3ZWVkIHRoZW0gb3V0CiAgIAoyMDAyLTA5LTEzIDEyOjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgZml4IGlsbGVnYWwgb2lkcyB0byBub3QgcmV0dXJuIGEgcG9pbnRlci4KICAgCjIwMDItMDktMTMgMTA6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gbWlub3Igb3B0aW1pc2F0aW9uOyB3ZSBkb24ndCBuZWVkIGEgemVyby10ZXJtaW5hdGVkIGNvbW11bml0eQogICAgICAgc3RyaW5nIGV4Y2VwdCBmb3IgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDItMDktMTMgMTA6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkZWQgLWkgb3B0aW9uIHRvIHJlcXVlc3QgaW5kZW50IG5vdCBiZSBydW4KICAgCjIwMDItMDktMTMgMTA6MDYgIGpicG4KCiAgICogQ09QWUlORzoKCiAgICAgLSBhZGQgbWlzc2luZyB2ZXJiIGluIGludHJvZHVjdGlvbgogICAKMjAwMi0wOS0xMiAxNTo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwcm90ZWN0IGNhbGxpbmcgc29tZSBTdklWIGRlcmVmZXJlbmNlIGZ1bmN0aW9ucyBpZiBpdCdzIG5vdCBhbiBJVi4KICAgICAtIGVsaW1pbmF0ZXMgdGhlIHJlbWFpbmluZyBwZXJsIHdhcm5pbmdzLgogICAKMjAwMi0wOS0xMiAxNDo0NSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgaW5jbHVkZSBsZGZsYWdzIHdoZXJlIGFwcHJvcHJpYXRlICgtLWxpYnMsIC0tYWdlbnQtbGlicywgLi4uKQogICAKMjAwMi0wOS0xMiAwMTo0OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBhZGQvdXNlIG5ldyBvcHRpb24gdG8gcmVtb3ZlIGJ1aWxkIGRpciBhZnRlciBzdWNjZXNzZnVsIGJ1aWxkCiAgIAoyMDAyLTA5LTEyIDAxOjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcHJpbnQgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEyIDAxOjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgbXVjaCBtb3JlIGNvbXBsZXggdGVzdHMgb2YgVVNNIHVzZXIgY3JlYXRpb24vbW9kaWZpY2F0aW9uLgogICAKMjAwMi0wOS0xMiAwMTowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwMDFzbm1wdjFnZXQsCiAgIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LCB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwKICAgdGVzdHMvVDAwNHNubXB2MW5vc3VjaDoKCiAgIC0gc3VwcG9ydCBmb3IgbXVsdGlwbGUgdGVzdHMgYXQgb25jZS4KICAgLSBtZXJnZSB2MSB0ZXN0cyBpbnRvIGEgc2luZ2xlIChmYXN0ZXIpIHRlc3QuCiAgIAoyMDAyLTA5LTEyIDAwOjM0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgbW9ua2V5IGFyb3VuZCB3aXRoIHJldHVybmluZyBlcnJvciBjb2RlcywganVzdCBleGl0OyBtb3JlIHJlZ2V4cCB0d2Vha3MKICAgCjIwMDItMDktMTEgMTk6MzYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gdXNlIHN1Yi1zZWNvbmQgc2xlZXBzIGlmIGF2YWlsYWJsZQogICAtIHNsZWVwIDEgKHN1Yi0pc2Vjb25kIGF0IGEgdGltZSB3aGVuIHdhaXRpbmcgZm9yIHBhcnRpY3VsYXIgdGVzdHMKICAgICByYXRoZXIgdGhhbiB0aGUgZnVsbCBTTk1QX1NMRUVQIGR1cmF0aW9uLgogICAKMjAwMi0wOS0xMSAxOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHVzZSBzbm1wX2xvZyBpbnN0ZWFkIG9mIHByaW50ZiBmb3Igc2h1dGRvd24gbWVzc2FnZS4KICAgCjIwMDItMDktMTEgMTg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc3NpbmcgdmFyaWFibGUgZGVjbCBwb2ludGVkIG91dCBieSBpcmM6ZGYKICAgCjIwMDItMDktMTAgMTY6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBlcnJvciByZWdleHBzICYgZXJyb3IgbWVzc2FnZXMKICAgCjIwMDItMDktMTAgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjb21waWxlciB3YXJuaW5ncyBhcmUgeW91ciBmcmllbmQhOyBmaXggZW1iZWRlZCBjb21tZW50czsgZml4IG5vbi12b2lkCiAgIGZ1bmN0aW9ucyB3L25vIHJ0biB2YWx1ZXM7IGNvZGUgcmVvcmcgdG8gZml4IGVtYWNzIGluZGVudCBjb21wbGFpbnRzCiAgIAoyMDAyLTA5LTEwIDE1OjI2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyB0YXJnZXRzIHRvIGhlbHAgbmlnaHRseSBidWlsZCBzY3JpcHQgZGV0ZXJtaW5lCiAgIGlmIGEgbWFrZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiAgIAoyMDAyLTA5LTEwIDE1OjEyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWtzIGZvciBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHM7IGFkIG5zYi1hYm9ydCwgbnNiLWZsb3c7CiAgIGRpcmVjdCBzb21lIG1lc3NhZ2VzIHRvIHN0ZGVycjsgdXNlIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIG1ha2UgdGFyZ2V0czsKICAgdXBkYXRlIGVycm9yIGdyZXAgdG8gaW5jbHVkZSAnKioqJzsgY2hlY2sgZm9yIG5ldyB2YWx1ZSB0byBybSAtZlIgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEwIDE1OjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkcwogICAKMjAwMi0wOS0xMCAxNTowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBhZGQgb3B0aW9uIHRvIHJtIC1mUiBidWlsZCBkaXIgYXQgc3RhcnQ7IGNoZWNrIHNjcmlwIHBhdGggZm9yIG5zYi1mdW5jdGlvbnM7CiAgIHByZWZpeCBkZWZhdWx0IGJ1aWxkIGRpciB3L3ZlcnNpb247IGV4aXQgdy9yYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOS0xMCAxNTowNSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItcGxhdGZvcm06CgogICBhZGQgY3VycmVudCBwYXRoIHRvIHNjcmlwdCB0byBuc2ItZnVuY3Rpb24gc2VhcmNoIHBhdGgKICAgCjIwMDItMDktMDkgMDk6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgSmFyZWQgU21pdGgtTWlja2Vsc29uIChidWcgIzYwNTE0NykKICAgICAgIHdoZXJlYnkgcGFzc2luZyBhbiB1bmtub3duIHR5cGUgY2hhcmFjdGVyIHRvIHNubXBfYWRkX3ZhciB3b3VsZAogICAgICAgY2F1c2UgYSBzZWdmYXVsdC4KICAgCjIwMDItMDktMDkgMDk6MDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciB2YWx1ZSBiZWZvcmUgdXNpbmcgaXQuCiAgIAoyMDAyLTA5LTA5IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEN1cnJlbnQgaGVhZGVyIHVwZGF0ZSBwYXRjaCBmb3IgbmV0YnNkIGZyb20gUGF0cmljayBXZWxjaGUuCiAgIAoyMDAyLTA5LTA2IDE4OjMwICBkcmllaHVpcwoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBNYXJrIHRoZSBub24tcmF3IHZhcmlhbnRzIG9mIG9iamVjdHMgdGhhdCBhcmUgYWNjZXNzYWJsZSBhcyByYXcgY291bnRlcnMKICAgYXMgZGVwcmVjYXRlZCwgdG8gKGhvcGVmdWxseSEpIGN1dCBkb3duIG9uIHRoZSBudW1iZXIgb2YgdXNlcnMgdGhhdCBnZXQKICAgYml0dGVuIGJ5IGl0Li4KICAgCjIwMDItMDktMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgYWRkZWQgQnJ1Y2UncyBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggcGVybGNsZWFuCiAgIAoyMDAyLTA5LTA0IDE0OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IHByb2Nlc3MgZ3JvdXBpbmcgYnkgY2FsbGluZyBzZXRzaWQoKSAocmVwb3J0ZWQgYnkgaXJjOlRyb2dMKQogICAKMjAwMi0wOS0wNCAxNDowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc2V0c2lkKCkuCiAgIAoyMDAyLTA5LTAzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYXNlcyB3aGVyZSB0aGVyZSBlaXRoZXIgYXJlIG5vIHRhYmxlcyBvciBubyBzY2FsYXJzLgogICAKMjAwMi0wOS0wMyAxMzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBkb24ndCB1c2UgTlVMTCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA5LTAyIDIyOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTIgKQogICAKMjAwMi0wOS0wMiAyMjozMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUyCiAgIAoyMDAyLTA5LTAyIDIyOjIyICByc3RvcnkKCiAgICogbWFuL25ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlZCBkb2NzCiAgIAoyMDAyLTA5LTAyIDIyOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA5LTAyIDIyOjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnOgoKICAgdHJ5IGFuZCBndWVzcyBhdCBzcmMgZGlyIGlmIG5vdCBzcGVjaWZpZWQKICAgCjIwMDItMDktMDIgMjI6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgYWRkIG5vdGUgYWJvdXQgZXJyIHdoZW4gYnVpbGRpbmcgaW4gYW5kIG91dCBvZiBzb3VyY2UgdHJlZQogICAKMjAwMi0wOS0wMiAyMTo1NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZnVsbCBwYXRoIHRvIHZlcnNpb250YWcsIGluIGNhc2Ugd2UgYXJlIGJ1aWxkaW50IG91dHNpZGUgb2Ygc3JjIGRpcmVjdG9yeQogICAKMjAwMi0wOS0wMiAyMTozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBmb3JjZWQgcHJvbXB0IG9uIGVycm9ycwogICAKMjAwMi0wOS0wMiAyMTozNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHdhcm5pbmdzIHdoZW4gVkVSU0lPTiBpcyByZXF1aXJlZDsgYWRkIHRhcmNsZWFuIHRhcmdldDsgYWRkIHRhcmNsZWFuIHRvCiAgIGRpc3RjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMjE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgYWRkIG1zZyBvbiBlcnJvcjsgYWRkIGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAyMDoyNyAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgd2luMzIgJiBBZ2VudFggc3RhdHVzCiAgIAoyMDAyLTA5LTAyIDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGZpeCB0byBhdm9pZCBsb2NraW5nIHVwIHRoZSBhZ2VudCB3aGVuIGEgc3VnYWdlbnQgZGllcyBkdXJpbmcgYSBzZXQgcmVxdWVzdC4gV2UKICAgbXVzdCBjbGVhbiB1cCB0aGUgZGVsZWdhdGVkIHJlcXVlc3RzIHdoZW4gdGhlIHNlc3Npb24ocykgYXJlIGNsb3NlZCwgc28gdGhhdAogICB0aGV5IHdpbGwgYmUgcHJvY2Vzc2VkIGFuZCByZW1vdmVkLCBhbGxvd2luZyBmdXJ0aGVyIHJlcXVlc3RzIHRvIGJlIHByb2Nlc3NlZC4KICAgCjIwMDItMDktMDEgMTM6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGNoYW5nZSByZXN1bHQgdHlwZSBiYWNrIHRvIGludCwgYXMgaXQgbWF5IHJlY2VpdmUgYSBuZWdhdGl2ZSB2YWx1ZQogICAKICAgUExFQVNFIGNoZWNrIHRoZSB1c2Ugb2YgYSB2YXJpYWJsZSBiZWZvcmUgY2hhbmdpbmcgaXMgc2lnbmVkbmVzcywgZXNwZWNpYWxseQogICBhcmVvdW5kIHJlbGVhc2UgdGltZSEKICAgCjIwMDItMDgtMzAgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgaW5jbHVkZSBjaGVja192YXJiaW5kLmgKICAgCjIwMDItMDgtMzAgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBjaGFuZ2UgTk9TVUNITkFNRSB0byBOT1NVQ0hJTlNUQU5DRSBhZ2FpbiwgYXMgaXQgc2VlbXMgdGhlIGFnZW50WCBmaXggYWxzbwogICBjb3JyZWN0bHkgZGVhbHMgd2l0aCB0aGlzIGVycm9yIGNvZGUKICAgCjIwMDItMDgtMzAgMDk6MTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSBkZWxldGUgc3Vuc2l0ZS5jbmxhYi1zd2l0Y2guY2ggbWlycm9yLCBhcyBpdCBpc24ndCBvbmUgYW55bW9yZS4KICAgCjIwMDItMDgtMjkgMTM6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgbW9kdWxlcyBiZWZvcmUgY29uZmlndXJpbmcgdGhlbQogICAKMjAwMi0wOC0yOSAxMDo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IHRoZSBsYXN0IEFFUyBidWcgSSBrbm93IG9mLiAgQUVTMTI4IHdvcmtzIGdyZWF0LgogICAgIEkgc3RpbGwgTmVlZCB0byBmaXggMTkyLzI1NiBmb3IgbG9uZ2VyIGtleSBnZW5lcmF0aW9uIGZyb20gTUQ1L1NIQQogICAKMjAwMi0wOC0yOSAxMDo1MiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIHVzZSB0aGUgcmlnaHQgcGVybCBtb2R1bGUgbmFtZSBpbiB0aGUgdXNlIGxpbmUuCiAgIAoyMDAyLTA4LTI5IDA2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgd2luMzIvY29uZmlnLmg6CgogICBNb3JlIFdpbjMyLXJlbGF0ZWQgdGlkeWluZyB1cC4KICAgVGhlIGFnZW50IG5vdyBjb21waWxlcyB3aXRoIHJlbGF0aXZlbHkgZmV3IHdhcm5pbmdzLgogICAKMjAwMi0wOC0yOSAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIERlY2xhcmUgbmV3IHJvdXRpbmUgJ25ldHNubXBfb2lkX2VxdWFscycsIGFuZCBhc3NvcnRlZCBXaW4zMiBjbGVhbnVwIGZpeGVzLgogICAKMjAwMi0wOC0yOCAxNDoxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjbGFyaWZ5IGN2czJjbCBzY3JpcHQgbmFtZTsgcmVtb3ZlIC1iIGZsYWcgZnJvbSBjdnMyY2wgcGVyIERhdmU7IGEgbGl0dGxlCiAgIHJlb3JnYW5pemF0aW9uOyBwdXQgY29tbWFuZHMgb24gc2VwYXJhdGUgbGluZXMgcHJlZml4ZWQgd2l0aCAkOyBub3RlIDUueC80LngKICAgZGlmZmVyZW5jZXMgcGVyIERhdmUncyBlbWFpbDsgcGx1ZyBteSBuZXcgc2NyaXB0cyB3aGVyZSBhcHByb3ByaWF0ZQogICAKMjAwMi0wOC0yNyAxNDo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgVVJMIGZvciBjdnMyY2w7IHVwZGF0ZSBjdnMyY2wgY21kcyB0byBjdnMyY2wucGwsIHNpbmNlIHRoYXQncyB0aGUgZmlsZQogICB0aGF0J3MgYWN0dWFsbHkgZGlzdHJpYnV0ZWQKICAgCjIwMDItMDgtMjcgMDA6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNyAwMDoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTEgKQogICAKMjAwMi0wOC0yNyAwMDoyNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kICg1LjYpLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCAoNS41KSwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kICg1LjYpLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAoNS41KSwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgKDUuNSksIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCiAgICg1LjUpOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMjcgMDA6MTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMgKDUuMyksIG5ldHNubXBfYnVsa190b19uZXh0LjMgKDUuMyksCiAgIG5ldHNubXBfZGVidWcuMyAoNS4zKSwgbmV0c25tcF9oYW5kbGVyLjMgKDUuMyksIG5ldHNubXBfaW5zdGFuY2UuMwogICAoNS4zKSwgbmV0c25tcF9tdWx0aXBsZXhlci4zICg1LjMpLCBuZXRzbm1wX29sZF9hcGkuMyAoNS4zKSwKICAgbmV0c25tcF9yZWFkX29ubHkuMyAoNS4zKSwgbmV0c25tcF9zY2FsYXIuMyAoNS4yKSwKICAgbmV0c25tcF9zZXJpYWxpemUuMyAoNS4zKSwgbmV0c25tcF90YWJsZS4zICg1LjMpLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMgKDUuMyksIG5ldHNubXBfdGFibGVfZGF0YS4zICg1LjMpLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMyAoNS4zKSwgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zICg1LjMpLAogICBuZXRzbm1wX3RvZG8uMyAoNS4zKSwgbmV0c25tcF93YXRjaGVyLjMgKDUuMik6CgogICB1cGRhdGUgbWFuIHBhZ2VzIGZvciA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnICgxLjEpOgoKICAgbmV3IGZpbGUgdG8gY29uZmlndXJlIHVzaW5nIHNhbWUgb3B0aW9ucyBhcyBuc2ItcGFja2FnZSBmb3IgdGVzdCBvciBkaXN0CiAgIAoyMDAyLTA4LTI3IDAwOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZSAoMS4zKToKCiAgIGRvbid0IGFwcGVuZCBzeXMtbmFtZSB3aGVuIGJ1aWxkaW5nIGluIHNyYyB0cmVlCiAgIAoyMDAyLTA4LTI3IDAwOjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE5KToKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA4LTI3IDAwOjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE4KToKCiAgIHJlbmFtZSBuc2ItZ2V0LWNvbmZnIC0+IG5zYi1jb25maWctZGlzdDsgdXNlIGRvdWJsZSBxdW90ZXMgY3V6IG9mIHNvbWUKICAgd2llcmQgc2hlbGwgdGhpbmcgSSBkb24ndCB5ZXQgdW5kZXJzdGFuZDsgY2hlY2sgZm9yIHNyYyBkaXIgaW4gY29uZmlnKgogICAKMjAwMi0wOC0yNiAyMzozNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluICg1LjEyKToKCiAgIHR3ZWFrIGNvbW1lbnRjaGVjayB0YXJnZXQgdG8gd29yayBvdXRzaWRlIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAyMzozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAoNS4zKSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAoNS4xKSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCAoNS4yKSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oICg1LjEpLCBzbm1wbGliL3dpbnNlcnZpY2UuYwogICAoNS4xKToKCiAgIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMgKGFuZCBhbnl0aGluZyB0aGF0IGV2ZW4gcmVtb3RlbHkgcmVzZW1ibGVzIG9uZSkKICAgCjIwMDItMDgtMjYgMTc6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTcpOgoKICAgcGFzcyBtYWtlIHBhcmFtcyB0byBtYWtlLCBzbyB3ZSBkb24ndCB0cnkgdG8gaW5zdGFsbCBpbiAvdXNyL2xvY2FsL2JpbiBvZgogICB0aGUgY29tcGlsZSBzZXJ2ZXJzLi4uIDotLwogICAKMjAwMi0wOC0yNiAxNzozOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNik6CgogICBtYWtlIGRpc3QgJiBleHRyYSB0cmFuc3BvcnRzOyBubyBpcHY2IG9uIERhcndpbjsgbWFrZSB0b3VjaGl0IGJlZm9yZSBtYWtlCiAgIAoyMDAyLTA4LTI2IDE3OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jICg1LjQpOgoKICAgcmVwbGFjZSB1X2ludDMyX3QsIHdoaWNoIGRvZXNuJ3QgY29tcGlsZSBvbiBTdW4gNS44LCB3aXRoIHVfaW50CiAgIAoyMDAyLTA4LTI2IDE2OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMgKDUuMik6CgogICBmaXggdW5kZWNsYXJlZCB2YXJpYWJsZSBlcnJvciBzcG90dGVkIG9uIFN1biwgd2hpY2ggbGludXggbWlzc2VkIGNvbXBsZXRlbHkuCiAgIEkgaGF2ZSBubyBpZGVhIGhvdyB0aGlzIGNvbXBpbGVkIGJlZm9yZSEhCiAgIAoyMDAyLTA4LTI2IDE2OjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE1KToKCiAgIGNsZWFuZXIgd2F5IHRvIGFkZCBzeXN0ZW0gc3BlY2lmaWMgbW9kdWxlczsgZGlzYWJsZSBwZXJsLCBhcyBpdCBicmVha3MKICAgYnVpbGRzIG91dHNpZGUgb2YgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDE1OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE0KToKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eAogICAKMjAwMi0wOC0yNiAxNTo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xMyk6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXg7IGJhaWwgb24gY29uZmlndXJlIGVycm9ycwogICAKMjAwMi0wOC0yNiAxNTowNCAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHMgKDEuNCk6CgogICBhZGQgc3VnZ2VzdGlvbiB0byBzeW1saW5rIG5zYi0qIGluIGxvY2FsIGJpbiBkaXIKICAgCjIwMDItMDgtMjYgMTU6MDMgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLXBhY2thZ2UgKDEuMiksIG5zYi1mdW5jdGlvbnMgKDEuMTIpOgoKICAgYWRkIG9wdGlvbiBmb3IgcHJlLXJlbGVhc2UgdGVzdCBjb25maWd1cmUgb3B0aW9ucwogICAKMjAwMi0wOC0yNiAxNTowMiAgcnN0b3J5CgogICAqIFJFQURNRS5zbm1wdjMgKDUuMyk6CgogICBtYWtlIHNlY3Rpb24gaGVhZGVycyBzdGFuZCBvdXQgbW9yZTsgbW92ZSBub3RlIGFib3V0IGVuY3J5cHRpb24gbm90IGJlaW5nCiAgIGVuYWJsZWQgdG8gYSBtb3JlIHByb21pbmVudCBwbGFjZS4KICAgCjIwMDItMDgtMjQgMjE6MjQgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMKICAgKFY0LTItcGF0Y2hlcy5bMzcsM10pOgoKICAgTWVyZ2UgZnJvbSBIRUFEOiBkZXRlY3QgdGhlIHJlcXVpcmVtZW50IGZvciBsaW5raW5nIHdpdGggLWxkZXZzdGF0LgogICBVZ2x5IGhhY2sgdG8gbWFrZSBzdXJlIGRpc2tpbyBkZXZpY2UgbmFtZXMgaW5jbHVkZSB0aGUgZGV2aWNlIG51bWJlci4KICAgCjIwMDItMDgtMjMgMTE6NDYgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4gKFY0LTItcGF0Y2hlcy4zKToKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTIyIDA4OjMxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAoNS4yKToKCiAgICAgLSBET05UX1VTRV9OTElTVCByZWluc3RhdGVkLCBzbyBOT19LTUVNX1VTQUdFIHJlZHVuZGFudAogICAKMjAwMi0wOC0yMiAwODoyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oICg1LjkpLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICg1LjEwKToKCiAgICAgLSByZWluc3RhdGUgdGVzdCBmb3IgRE9OVF9VU0VfTkxJU1QKICAgCjIwMDItMDgtMjIgMDc6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYyAoNS4xMCk6CgogICAgIC0gc3RvcCBhbmQgcmVzdGFydCBsb2dnaW5nIHdoZW4gSFVQcGVkLiAgVGhpcyBhbGxvd3MgbG9nZmlsZXMgdG8gYmUKICAgICAgIHJvdGF0ZWQgYW5kIHNvIGZvcnRoLgogICAKMjAwMi0wOC0yMiAwNzowNiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jIChWNC0yLXBhdGNoZXMuMjQpOgoKICAgICAtIHN0b3AgYW5kIHJlc3RhcnQgbG9nZ2luZyB3aGVuIEhVUHBlZC4gIFRoaXMgYWxsb3dzIGxvZ2ZpbGVzIHRvIGJlCiAgICAgICByb3RhdGVkIGFuZCBzbyBmb3J0aC4KICAgCjIwMDItMDgtMjIgMDQ6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjMgKDUuMik6CgogICBBZGQgdGhlIG1pc3NpbmcgJy14L1gnIG9wdGlvbnMgdG8gdGhlIGV4YW1wbGUgYXV0aFByaXYgY29tbWFuZCBsaW5lCiAgICAgKHJlcG9ydGVkIGJ5IFByYXNhZGEgUiBWYW5rYXlhbGFwYXRpKQogICAKMjAwMi0wOC0yMCAxMTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuNiksIGFwcHMvc25tcHRyYXBkLmMgKDUuNCksCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAoNS4zKSwgRkFRICg1LjE3KToKCiAgIHF1aWV0IHNubXB0cmFwZCB3aGVuIGl0IGNhbid0IGNvbm5lY3QgdG8gdGhlIGFnZW50eCBtYXN0ZXIuCiAgIAoyMDAyLTA4LTIwIDA4OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAoNS4xKToKCiAgICAgLSBhZGQgI2RlZmluZSBOT19LTUVNX1VTQUdFIDEgc2luY2UgbmV0LXNubXAtY29uZmlnLmguaW4gbm8gbG9uZ2VyCiAgICAgICBwYXlzIGF0dGVudGlvbiB0byB0aGUgRE9OVF9VU0VfTkxJU1QgdG9rZW4uICBPbWlzc2lvbiBvZiB0aGlzCiAgICAgICBjYXVzZXMgdGhlIGFnZW50IHRvIGV4aXQgd2l0aCB0aGUgbWVzc2FnZSAiaW5pdF9rbWVtOiBrdm1fb3BlbgogICAgICAgZmFpbGVkOiBlcnJvciAwIi4KICAgCiAgICAgICBOT1RFOiB0aGlzIG1heSBuZWVkIGFwcGx5aW5nIHRvIG90aGVyIG1lbWJlcnMgb2YgdGhlIFNvbGFyaXMgMgogICAgICAgZmFtaWx5LCBidXQgSSBkb24ndCBoYXZlIG1hY2hpbmVzIHRvIGhhbmQgdG8gdGVzdCB0aGlzLgogICAKMjAwMi0wOC0yMCAwODo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgKDUuMik6CgogICAgIC0gZGV0ZWN0IGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlcyAoZ2VOKQogICAgIC0gdW5kbyBpbmRlbnQgbWF5aGVtCiAgIAoyMDAyLTA4LTIwIDA1OjU3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmggKDUuMSk6CgogICAgIC0gZm9yIG5vdywgZG9uJ3QgI2luY2x1ZGUgc25tcF9sb2NraW5nLmggc2luY2UgaXQgYnJlYWtzIHJlLWVudHJhbnQKICAgICAgIHN1cHBvcnQgKGJlY2F1c2UgbXV0ZXhfdHlwZSBnZXRzIG11bHRpcGx5LWRlZmluZWQpLiAgRnVydGhlcm1vcmUsIHRoZQogICAgICAgZnVuY3Rpb25zIGl0IGRlY2xhcmVzIGFyZSBuZXZlciB1c2VkIGFueXdoZXJlLCBub3IgZGVmaW5lZCBhbnl3aGVyZS4KICAgCjIwMDItMDgtMjAgMDU6NTYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCAoNS4xKToKCiAgICAgLSBkb24ndCBkZWZpbmUgImRvIG5vdGhpbmciIG1hY3JvcyBmb3Igc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zCiAgICAgICBvbiBXaW4zMiBwbGF0Zm9ybSAoc2luY2UgcmVhbCAiZG8gbm90aGluZyIgZnVuY3Rpb25zIGFyZSByZXF1aXJlZCBmb3IKICAgICAgIHJlYXNvbnMgYmVzdCBrbm93biB0byBzb21lb25lIGVsc2UpLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0yMCAwNTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmggKDUuMSk6CgogICAgIC0gZml4IGhpZ2hseSBib2d1cyBub24tQyBzeW50YXgKICAgCjIwMDItMDgtMjAgMDU6NTMgIGpicG4KCiAgICogc25tcGxpYi9tdF9zdXBwb3J0LmMgKDUuMSk6CgogICAgIC0gc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zIG5vIGxvbmdlciAjZGVmaW5lZCB0byAiZG8gbm90aGluZyIKICAgICAgIHRhcmdldHMgZm9yIFdpbjMyIGluIG10X3N1cHBvcnQuaCwgdGhlcmVmb3JlIG5vIG5lZWQgdG8gI3VuZGVmIHRoZW0KICAgICAgIGhlcmUuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTIwIDAxOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggKDUuMik6CgogICBoZWFkZXJzIGZvciBjYWNoZSBlbmFibGluZyBmdW5jdGlvbnMuCiAgIAoyMDAyLTA4LTIwIDAxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgKDUuMyk6CgogICBkb24ndCB1c2Ugbm9uLWV4aXN0ZW50IG1lbW9yeSBwb2ludGVycyB0byB0aGUgcmVzcG9uc2UgZGF0YSAoZWc6ICJ0aW1lb3V0IikKICAgCjIwMDItMDgtMTkgMTc6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggKDUuMSk6CgogICBDaGFuZ2UgYSBmZXcgY29uZGl0aW9uYWxzIHRvIHVzZSAjaWYgaW4gcGxhY2Ugb2YgI2lmZGVmCiAgIAoyMDAyLTA4LTE5IDE3OjI4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jICg1LjE3KSwgcGFyc2UuYyAoNS40KToKCiAgIEFsaWduIHdpdGggNC4yIGJyYW5jaAogICAKMjAwMi0wOC0xOSAxNzoyNiAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCAoNS4xKSwKICAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQgKDUuMSksIElBTkFpZlR5cGUtTUlCLnR4dAogICAoNS4xKSwgSU5FVC1BRERSRVNTLU1JQi50eHQgKDUuMSksIE1ha2VmaWxlLm1pYiAoNS4yKSwgaWFuYWxpc3QKICAgKDUuMSksIG1pYmZldGNoICg1LjEpLCByZmNsaXN0ICg1LjEpOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCcwogICAKMjAwMi0wOC0xOSAxNzoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICg1LjcpOgoKICAgQmFpbCBvdXQgZm9yIGJhZCBzbm1wQWRtaW5TdHJpbmcgdmFsdWUKICAgCjIwMDItMDgtMTkgMTA6NDMgIGpicG4KCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTMpLCBGQVEgKDUuMTYpOgoKICAgICAtIGRvbid0IHVzZSBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgaW4gZXhhbXBsZXMKICAgICAtIGJyZWFrIGEgY291cGxlIG9mIG92ZXItbG9uZyBsaW5lcwogICAgIC0gbWVudGlvbiBuZXRzbm1wXyB2YXJpYW50IG9mIGRzX3NldF8gZnVuY3Rpb24KICAgCjIwMDItMDgtMTkgMDU6NDQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUyKSwgRkFRICg1LjE1KToKCiAgIEFkZCBhbiBlbnRyeSBhYm91dCB0aGUgc25tcHRyYXBkL0FnZW50WCB3YXJuaW5nIG1lc3NhZ2UuCiAgIAoyMDAyLTA4LTE4IDIxOjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjExKToKCiAgIGRvbid0IGNvbmZpZ3VyZSB3aXRoIGJ1aWxkIGluc3RhbGwgZGlyLCBpdCBpcyBhbHJlYWR5IHNwZWNpZmllZCBvbiBjbWQgbGluZQogICBmb3IgbWFrZSBpbnN0YWxsCiAgIAoyMDAyLTA4LTE4IDEzOjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jICg1LjcpOgoKICAgbW9yZSBkZWJ1Z2dpbmcgLSBsb2cgdmFsdWUgcmVxdWVzdCBpcyB0cnlpbmcgdG8gc2V0CiAgIAoyMDAyLTA4LTE2IDE4OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUUgKDUuOSk6CgogICBhZGRlZCBCcnVjZSBTaGF3IHRvIHRoZSB0aGFua3MgbGlzdAogICAKMjAwMi0wOC0xNiAxODoxMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXMgKDEuMik6CgogICBBIGdyZWF0IHVwZGF0ZSB0YWxraW5nIGFib3V0IHBlcmwgYW5kIHNvbGFyaXMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAyLTA4LTE2IDA0OjUxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgKDUuNCk6CgogICBDYXRjaCBleHBsaWNpdGx5ICdub1N1Y2hJbnN0YW5jZScgZXhjZXB0aW9ucywgd2hlbiB3YWxraW5nIGFuCiAgIGl0ZXJhdG9yLWhhbmRsZWQgbW9kdWxlLCBzbyB0aGF0IGhvbGVzIGNhbiBiZSBza2lwcGVkIGFuZCB0aGUKICAgbmV4dCByZWFsIGluc3RhbmNlIHJldHJpZXZlZC4gIChUaGlzIHdhcyBhbHJlYWR5IGhhbmRsZWQgZm9yCiAgIG1vZHVsZXMgdGhhdCBkaWRuJ3QgbWFyayBtaXNzaW5nIGluc3RhbmNlcyBleHBsaWNpdGx5KS4KICAgCjIwMDItMDgtMTYgMDM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAoNS4xMyk6CgogICB0dXJuIG9mZiBjYWNoaW5nIGJ5IGRlZmF1bHQsIHNpbmNlIHRoZSBhZ2VudHggY29kZSBhcHBlYXJzIGJyb2tlbi4KICAgCjIwMDItMDgtMTYgMDM6MDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoNS41KSwgc25tcF9hZ2VudC5jICg1LjEyKToKCiAgIHNwZWVkIGVuaGFuY2VtZW50cyB2aWEgaW1wbGVtZW50aW5nIGEgcmVnaXN0cmF0aW9uIHN1YnRyZWUgbG9va3VwCiAgIGNhY2hlLiAgZ3JlYXRseSBzcGVlZHMgdGhpbmdzIHVwIHdoZW4gc2ltaWxhciByZXF1ZXN0cyBjb21lIGluCiAgIChzbm1wd2FsaywgLi4uKS4KICAgCjIwMDItMDgtMTUgMTM6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYyAoNS4zKToKCiAgIHByb3RlY3QgYWdhaW5zdCBOVUxMIGxhYmVscyBpbiBzdWJ0cmVlcwogICAKMjAwMi0wOC0xNSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYyAoNS4zKSwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAoNS40KSwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICg1LjEpLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAoNS4yKSwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAoNS4xKSwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAoNS4xKSwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICg1LjIpLCBzbm1wbGliL3NubXB1c20uYyAoNS4zKToKCiAgIHVzZSBuZXRzbm1wX29pZF9lcXVhbHMgKHdoaWNoIGlzIHNvbWV0aW1lcyBmYXN0ZXIgdGhhbgogICBzbm1wX29pZF9jb21wYXJlKSBpbiBhIGZldyBwbGFjZXMgdG8gYWNoaWV2ZSBiYXJlbHkgbm90aWNlYWJsZSBzcGVlZCBnYWlucy4KICAgCjIwMDItMDgtMTUgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYyAoNS4yKToKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgZXhpc3RzIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHN0cmNtcCgpCiAgIAoyMDAyLTA4LTE1IDExOjA1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwgKDUuNyk6CgogICBjaGFuZ2UgTUFOM1BPRFMgdG8gc29tZXRoaW5nIGNvbXBsaWFudCB3aXRoIHRoZSBwZXJsIG1hbnVhbHMuICBJIHRoaW5rLgogICAKMjAwMi0wOC0xNCAxMzo0MiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jICg1LjIpOgoKICAgYWRkIGRlYnVnIGZvciBsb2NhbCBwYXJzaW5nIG9mIGFyZ3MKICAgCjIwMDItMDgtMTQgMTI6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAoNS41KSwgbWFzdGVyX2FkbWluLmMgKDUuNCksCiAgIHN1YmFnZW50LmMgKDUuNSk6CgogICBhZGQgbW9yZSBkZXRhaWxlZCBpbiBkZWJ1ZyBtZXNzYWdlczsgYWRkIGEgZmV3IG5ldyBkZWJ1Z3MKICAgCjIwMDItMDgtMTQgMTI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgKDUuMTEpOgoKICAgd2hlbiBhbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgZmluaXNoZWQsIGNoZWNrIGFsbCByZXF1ZXN0cyBzdGF0dXMgc28gdGhhdAogICBhc3Agc3RhdHVzIGlzIHNldCwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0IGFnZW50eCBzZXQgcHJvY2Vzc2luZy4KICAgKG5vdyBpZiBJIGNhbiBqdXN0IGdldCBhbGwgdGhpcyBoYWlyIG9mZiB0aGUgZmxvb3IsIGFuZCBnbHVlIGl0IGJhY2sgdG8gbXkKICAgaGVhZCwgYW5kIHRoZW4gZml4IHRoYXQgZGVudCBpbiB0aGUgd2FsbCB3aGVyZSBJJ3ZlIGJlZW4gYmFuZ2luZyBteSBoZWFkLi4uLikKICAgCjIwMDItMDgtMTMgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYyAoNS4xNCk6CgogICBmaXggYSBsZW5ndGggY29tcGFyaXNvbiBwcm9ibGVtIHdpdGggbmV0c25tcF9vaWRfaXNfc3VidHJlZSgpCiAgIAoyMDAyLTA4LTEzIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBORVdTICg1LjYpOgoKICAgZG9jdW1lbnQgYSBmZXcgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTA4LTEzIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgKDUuMSk6CgogICBGaXggb3BlbiBmaWxlIHJ1bmF3YXkgb24gc29sYXJpcy4gIFNlZSBidWcgIzU5MjgwNiByZXBvcnRlZCBieSBKYW1lcyBJcndpbi4KICAgCjIwMDItMDgtMTMgMTU6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmggKDUuNyk6CgogICBhcnJheSBvZiBwb2ludGVycyA9IHBvaW50ZXIgdG8gYSBwb2ludGVyCiAgIAoyMDAyLTA4LTA5IDE5OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTCAoNS4xKToKCiAgIG1pc2MgZG9jIGZpeGVzLgogICAKMjAwMi0wOC0wOSAxOTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAoNS40KSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmggKDUuMiksIHNubXBsaWIvc25tcHVzbS5jCiAgICg1LjIpLCBzbm1wbGliL3NubXB2My5jICg1LjMpOgoKICAgaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTk6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICg1LjIpLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKDUuMTMpOgoKICAgc2xpZ2h0IHNwZWVkIHVwcyBmb3Igc25tcF9vaWRfY29tcGFyZSgpIHRvIGRvIHNpbmdsZSBpbnQgY29tcGFyZXMgdGlsbCAhPQogICAKMjAwMi0wOC0wOSAxOToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jICg1LjIpOgoKICAgLSBvcGVuc3NsIDAuOS43IHN1cHBvcnQgZm9yIERFUyBjaGFuZ2VzLgogICAtIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE5OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMgKDUuMik6CgogICBpbmRlbnQgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE5OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzY2FwaS5oICg1LjEpLCBzbm1wdXNtLmggKDUuMSk6CgogICBkZWZpbmUgQUVTIGtleSBzcGVjaWZpY3MKICAgCjIwMDItMDgtMDkgMTk6MjYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggKDUuOCksIGNvbmZpZ3VyZSAoNS4xNyksIGNvbmZpZ3VyZS5pbiAoNS4xNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gKDUuOSk6CgogICAtIGNoZWNrIGZvciBvcGVuc3NsIC4wLjkuNyBERVMgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zLgogICAtIGNoZWNrIGZvciBBRVMgc3VwcG9ydCBpbiBvcGVuc3NsICg+IDAuOS43KQogICAKMjAwMi0wOC0wOSAxOToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuNCk6CgogICBmaXggbW9kZSBwcm9jZXNzaW5nIGZvciBSRVNFUlZFMS9SRVNFUlZFMiB0ZXN0IGZhaWx1cmVzCiAgIAoyMDAyLTA4LTA5IDE4OjI5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICg1LjEwKToKCiAgIGxvZyBtc2cgd2hlbiB3ZSBpZ25vcmUvZml4IGlsbGVnYWwgZXJyb3JfdmFsdWVzIGZvciB0aGUgY2xpZW50IEFQSXMKICAgCjIwMDItMDgtMDkgMTg6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYgKDUuMTIpOgoKICAgY29ycmVjdGlvbnMgdG8gZXhhbXBsZSBjb2RlCiAgIAoyMDAyLTA4LTA5IDE4OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jICg1LjYpOgoKICAgcmV2ZXJ0IGVycm9ycyB0byB1bmluZm9ybWF0aXZlIFNOTVB2MSBub1N1Y2hOYW1lIGZvciBBZ2VudFggZ2V0LW5leHQvaW5jbHVzaXZlCiAgIHByb2Nlc3Npbmc7IGFsc28gYWRkIG1vcmUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUKICAgCjIwMDItMDgtMDkgMTc6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgKDUuNCk6CgogICBkZWJ1ZyBtc2cgZm9yIGFnZW50eCBvaWQgZm9yIGNhc2VzIG90aGVyIHRoYW4gZ2V0L2dldG5leHQKICAgCjIwMDItMDgtMDkgMTE6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgKDUuMyk6CgogICBkb24ndCBmcmVlIHJlZ2lzdHJhdGlvbiBpbmZvIG9uIGZhaWx1cmUsIGFzIG5ldHNubXBfcmVnaXN0ZXJfbWliIGFscmVhZHkgZGlkIGl0CiAgIAoyMDAyLTA4LTA5IDA5OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICg1LjIpLCBzbm1wQ2FsbGJhY2tEb21haW4uYyAoNS4xKSwKICAgc25tcElQWERvbWFpbi5jICg1LjEpLCBzbm1wVENQRG9tYWluLmMgKDUuNCksIHNubXBUQ1BJUHY2RG9tYWluLmMKICAgKDUuNSksIHNubXBVRFBEb21haW4uYyAoNS42KSwgc25tcFVEUElQdjZEb21haW4uYyAoNS43KSwKICAgc25tcFVuaXhEb21haW4uYyAoNS40KSwgc25tcF90cmFuc3BvcnQuYyAoNS4xKToKCiAgICAgLSByZW5hbWUgc25tcF88ZG9tYWluPl9ibGFoIGZ1bmN0aW9ucyB0byBuZXRzbm1wXzxkb21haW4+X2JsYWgKICAgICAtIG1ha2UgdHJhbnNwb3J0IG1lbWJlciBmdW5jdGlvbnMgc3RhdGljLCB0byBlbXBoYXNpc2UgdGhhdCB0aGV5IHNob3VsZAogICAgICAgbm90IGJlIHVzZWQgZGlyZWN0bHkKICAgICAtIGhhbmRsZSBFSU5UUiBpbiBzZW5kIGFuZCByZWN2IGZ1bmN0aW9ucyAoYXMgcG9pbnRlZCBvdXQgYnkgQW50dGkgS3VudHNpCiAgICAgICBpbiBidWcgcmVwb3J0ICM1NzY4MDYpCiAgICAgLSBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA5OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmggKDUuMyksCiAgIHNubXBJUFhEb21haW4uaCAoNS4yKSwgc25tcFRDUERvbWFpbi5oICg1LjIpLCBzbm1wVENQSVB2NkRvbWFpbi5oCiAgICg1LjMpLCBzbm1wVURQRG9tYWluLmggKDUuMik6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwOTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAoNS4zKToKCiAgICAgLSBkb24ndCBleHBvcnQgbmV0c25tcF91bml4X2JsYWgoKSBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDkgMDk6NTMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggKDUuMSk6CgogICAgIC0gZml4IG5hc3R5IGZvcm1hdHRpbmcKICAgCjIwMDItMDgtMDggMTI6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jICg1LjIpOgoKICAgcmV3b3JkIGNvbmZpZ19wZXJyb3IgbXNncyB0byByZW1vdmUgIkVycm9yIiwgYXMgaXQgaXMgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTA4IDEyOjExICByc3RvcnkKCiAgICogc25tcGxpYi9rZXl0b29scy5jICg1LjEpOgoKICAgcmVtb3ZlIGlmZGVmIHRvIGxvZyBtc2cgdG8gdXNlciwgYWZ0ZXIgbWFraW5nIG1zZyBtb3JlIGluZm9ybWF0aXZlOyByZW1vdmUKICAgYW5ub3lpbmcgYmxhbmsgbGluZXMKICAgCjIwMDItMDgtMDggMTE6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggKDUuNyksIGNvbmZpZ3VyZSAoNS4xNiksIGNvbmZpZ3VyZS5pbiAoNS4xNCk6CgogICBQYXRjaCBmcm9tIEhhcnJpZSB0byBjb21wbGV0ZWx5IGRpc2FibGUga21lbSB1c2FnZQogICAKMjAwMi0wOC0wNiAwMzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoNS4zKToKCiAgICAgLSBzZXQgbWFpbl9zZXNzaW9uIHRvIE5VTEwgaW4gc3ViYWdlbnRfc2h1dGRvd24oKS4gIFRoaXMgKGFsb25nIHdpdGggdGhlCiAgICAgICBkZXJlZ2lzdHJhdGlvbiBvZiBhbGwgYWxhcm1zKSBhbGxvd3MgQWdlbnRYIGZ1bmN0aW9uYWxpdHkgdG8gYmUKICAgICAgIHN0b3BwZWQgYW5kIHJlc3RhcnRlZCBpbiBzdWJhZ2VudHMuCiAgICAgLSBUaGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNiAwMzoyNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oICg1LjEpOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgCjIwMDItMDgtMDYgMDM6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYyAoNS4zKSwgc25tcF9hcGkuYyAoNS4xMik6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAgIC0gY2FsbCBpdCBmcm9tIHNubXBfc2h1dGRvd24oKQogICAgIC0gdGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDYgMDM6MTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy40KToKCiAgICAgLSBhZGQgZGVidWdnaW5nIG91dHB1dCB3aGVuIGFsbCBhbGFybXMgdW5yZWdpc3RlcmVkCiAgIAoyMDAyLTA4LTA2IDAzOjEwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jIChWNC0yLXBhdGNoZXMuNCk6CgogICAgIC0gc2V0IG1haW5fc2Vzc2lvbiB0byBOVUxMIGluIHN1YmFnZW50X3NodXRkb3duKCkuICBUaGlzIChhbG9uZyB3aXRoIHRoZQogICAgICAgZGVyZWdpc3RyYXRpb24gb2YgYWxsIGFsYXJtcykgYWxsb3dzIEFnZW50WCBmdW5jdGlvbmFsaXR5IHRvIGJlCiAgICAgICBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaW4gc3ViYWdlbnRzLgogICAgIC0gVGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3IgdGhpcyBwYXRjaCAoIzU1ODUxNykKICAgCjIwMDItMDgtMDYgMDM6MDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzMsMSwzNl0pOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgICAtIGNhbGwgaXQgZnJvbSBzbm1wX3NodXRkb3duKCkKICAgICAtIHRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIHByb3ZpZGluZyB0aGlzIHBhdGNoCiAgIAoyMDAyLTA4LTA1IDEwOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mICg1LjMpOgoKICAgbWF0Y2ggZnVuY3Rpb24gZGVmaW5pdGlvbiB3L05ldHNubXBfKl9EYXRhUG9pbnQgdHlwZWRlZnM7IGFkZCBjdnMgSWQKICAgCjIwMDItMDgtMDMgMTE6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TICgxLjUpOgoKICAgYnJlYWsgdXAgbGluZXMgbG9uZyB0aGFuIDgwIGNoYXJzOyBhYmNkZSwgbm90IGFiY2RkCiAgIAoyMDAyLTA4LTAzIDAzOjIxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TICgxLjQpOgoKICAgbW9yZSB1cGRhdGVzIGFib3V0IHRoaW5ncyBXZXMgZG9lcyBhdCAxMjozMCBhbQogICAKMjAwMi0wOC0wMyAwMjo0NCAgaGFyZGFrZXIKCiAgICogRkFRICg1LjE0KSwgUkVBRE1FICg1LjgpLCBzZWRzY3JpcHQuaW4gKDUuNiksIHBlcmwvU05NUC9TTk1QLnBtCiAgICg1LjEyKSwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYyAoNS41KToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMyApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjIgLT4gVjUuMC4zCgoyMDAyLTA4LTAyIDIzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkIC5saWJzCiAgIAoyMDAyLTA4LTAyIDIzOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wOC0wMiAyMzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTAyIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZm9yZ290dGVuIHRvIGNoZWNrIGluIHRlc3QgZm9yIHBlcmxfZXYgY2hhbmdlcwogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZW1vdmUgZGVidWdnaW5nIHByaW50IChvcHBzKQogICAKMjAwMi0wOC0wMiAyMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHZlcnNpb24gdXNhZ2UuCiAgIAoyMDAyLTA4LTAyIDIzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBQYXRjaCAjNTcyMzk0IGZyb20gS2F0c3VoaXNhIEFCRToKICAgICAtIHN1cHBvcnQgbGluayBsb2NhbCBhZGRyZXNzZXMKICAgICAtIGJpbmQgdG8gaXB2NiBvbmx5IGlmIElQVjZfVjZPTkxZIGlzIGRlZmluZWQuCiAgIAoyMDAyLTA4LTAyIDIzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IGNvbmZpZ3VyZSBzcGVjaWZpZWQgZGVmYXVsdCB2ZXJzaW9uaW5nCiAgIAoyMDAyLTA4LTAyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM1NzIzOTQ6IGFkZCBpcHY2IHRyYW5zcG9ydHMgd2hlbiAtLWVuYWJsZS1pcHY2IGRlZmluZWQuICBUaGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDgtMDIgMTQ6NTkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICB1cGRhdGUKICAgCjIwMDItMDgtMDIgMTQ6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtb3JlIGRvY3MuCiAgIAoyMDAyLTA4LTAyIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zLCBNYWtlZmlsZS5pbjoKCiAgIGRveHlnZW4gdXBkYXRlLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZSBmb3IgeWV0IG1vcmUgc3R1ZmYuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgYSBmZXcgbW9yZSBkaXN0IHJlbGF0ZWQgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlcnJvciBtZXNzYWdlIGNoYW5nZSB0byByZW1vdmUgREVTIHNwZWNpZmljIGVycm9yIG1zZy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdHlwZW1hcDoKCiAgIHNwYWNpbmcgZml4ZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnhzOgoKICAgcmVuYW1lZCBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIHJlbmFtZWQgZmlsZQogICAKMjAwMi0wOC0wMiAxNDoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBBZGQgYSAiZXZhbHZhcnMiIGRpcmVjdGl2ZSB0byBkbyBzaW1wbHkgcmVwbGFjZW1lbnRzLgogICAKMjAwMi0wOC0wMiAxNDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHVzZSBDVlNVU0VSIHZhcmlhYmxlIHdoZW4gZG9pbmcgc3R1ZmYgaW5zdGVhZCBvZiBteSBoYXJkLWNvZGVkIG5hbWUuCiAgIAoyMDAyLTA4LTAyIDE0OjE0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBjaGFuZ2UgY2hlY2tjb21tZW50IHRhZyB0byBleGNsdWRlIHdpbjMyIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGNoYW5nZWxvZyBidWlsZCBub3RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLgogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNyZWF0ZWQgYSBob3ctdG8gZmlsZSBmb3IgbWFraW5nIHJlbGVhc2VzCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIGNoYW5nZWxvZyBmaXgtdXAgc2NyaXB0CiAgIAoyMDAyLTA4LTAyIDEwOjIxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHJhbnNsYXRlICcvJyBpbiBzeXN0ZW0gbmFtZSB0byAnXycgKGZvciBjeWd3aW4pCiAgIAoyMDAyLTA4LTAyIDA5OjU2ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIGN2cyBnZXQgY29tbWFuZCBleGFtcGxlCiAgIAoyMDAyLTA4LTAyIDA5OjA2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBTdXBwcmVzcyAnaW5saW5lJyB3aGVuIG5vdCB1c2luZyBHQ0MuIFN1Z2dlc3RlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDItMDgtMDIgMDg6NTkgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gb24gc2tpcHBpbmcgbWFrZSB0ZXN0OyBhZGQgLXAgZmxhZyB0byBleGFtcGxlcwogICAKMjAwMi0wOC0wMiAwODo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBkZXNjcmliZSB1c2Ugb2YgbnNiLXBhY2thZ2Ugc2NyaXB0LiBUZXN0ZXJzIGFuZCBjb21tZW50cyBhcHByZWNpYXRlZC4uLgogICAKMjAwMi0wOC0wMiAwODozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBsYXRmb3JtOgoKICAgb3V0cHV0IHBsYXRmb3JtIGluZm8KICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbmFtZWQgdG8gbnNiLXBhY2thZ2UKICAgCjIwMDItMDgtMDIgMDg6MTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgcmVuYW1lZCBuc2ItYnVpbGQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggc2NyaXB0IGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTAyIDA4OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBDaGFuZ2UgbG9jYXRpb24gbmFtZSB0byBVbmtub3duCiAgIAoyMDAyLTA4LTAyIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowNCAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQo6CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggcmV0dXJuIGNvZGUKICAgCjIwMDItMDgtMDIgMDc6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGRvbid0IHB1bGwgZmlyc3QgYXJnIHRpbCBhZnRlciBnZXRvcHRzL3NoaWZ0OyBtb3ZlIHNldCBvZiBkZWZhdWx0IG9wdHMKICAgCjIwMDItMDgtMDIgMDc6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgYWRkIC1mIG9wdGlvbiB0byBwcm9tcHQgdG8gb3ZlcnJpZGUKICAgbm8gcHJvbXB0IGZsYWcgKHVzZWZ1bCBmb3IgZXJyb3JzKTsgbmV3IG5zYi1tYWtlIG1ldGhvZDsgY2hlY2sgcmMgb2YKICAgbWFrZSBjbGVhbgogICAKMjAwMi0wOC0wMiAwNzozNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IHR3ZWFrIHVzYWdlCiAgIAoyMDAyLTA4LTAyIDA3OjEwICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggdHlwbzsgcmVtb3ZlIGV4dHJhIHRyYWlsaW5nIHNsYXNoIGluIGRpcgogICAKMjAwMi0wOC0wMiAwNjozMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgY2hlY2sgbW9yZSBwbGFjZXMgdG8gc291cmNlIG5zYi1mdW5jdGlvbnM7IGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgcGF0aAogICAKMjAwMi0wOC0wMiAwNjoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGp1c3Qgc2hvdyBlcnJvcnMgYWZ0ZXIgYnVpbGQsIG5vdCB3YXJuaW5ncwogICAKMjAwMi0wOC0wMSAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmV2ZXJ0IHRvIG5vbi1hbnNpIHByb3RvdHlwZXMgZm9yIG9sZGVyIHBlcmwgd2l0aCBvbGRlciBjb21waWxlcnMgb24KICAgb2xkZXIgc3lzdGVtcy4gIE5vdCB0aGF0IEknbSBncnVtcHksIG9mIGNvdXJzZS4KICAgCjIwMDItMDgtMDEgMTY6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBjaGVjayBmb3Igb2xkZXIgYW5kIG5ldyBlbWJlZGRlZCBwZXJsIGNhbGwgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTAxIDE0OjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3Qgc3ltbGluayB0byBzcmMgZnJvbSBidWlsZDsgdXBkYXRlIG5zYi1nZXQtY29uZmlnCiAgIAoyMDAyLTA4LTAxIDE0OjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIGRpcgogICAKMjAwMi0wOC0wMSAxMjo1OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBjb25maWcgaW5zdGFsbCBwYXRoOyByZW1vdmUgcGxhdGZvcm0gc3BlY2lmaWMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDgtMDEgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHJlbW92ZSBoYXJkIGNvZGVkIGluZm8KICAgCjIwMDItMDgtMDEgMTI6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgcHJvbXB0czsgcmVtb3ZlIHByZXZpb3VzIGluc3RhbGxzOyB0d2VhayBlcnIgcGF0dGVybgogICAKMjAwMi0wOC0wMSAxMjoxNCAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpIGluc3RlYWQgb2YgZHNfc2V0X2Jvb2xlYW4oKQogICAKMjAwMi0wOC0wMSAxMjoxMiAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICAgIC0gY2hhbmdlIGNvZGUgc2FtcGxlIHRvIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkKICAgICAtIHVwZGF0ZSByZWZlcmVuY2VzIHRvIGxpYnJhcmllcyAod2hpY2ggd2VyZSBzdGlsbCB0YWxraW5nIGFib3V0CiAgICAgICBsaWJ1Y2RhZ2VudCBldCBhbC4pIC0tIFBMRUFTRSBSRVZJRVcgQkVGT1JFIDUuMC4zCiAgIAoyMDAyLTA4LTAxIDEyOjA3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbG90cyBvZiBmaXhlcyB0byBwcmV2aW91c2UgdW50ZXN0ZWQgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAxMjowNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgc2NyaXB0IHRvIGJ1aWxkIHJlbGVhc2VzLi4uIHN0aWxsIHNvbWUgaGFyZGNvZGluZyB3aGlsZSB0ZXN0aW5nLCBidXQgaXRzCiAgIGdldHRpbmcgdGhlcmUuLi4KICAgCjIwMDItMDgtMDEgMTE6NTEgIHJzdG9yeQoKICAgKiBkaXN0LzogY3Zzc2hvdywgY3ZzdXA6CgogICB1dGlsaXR5IHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMDk6MzAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBzY2FsYXIuYywgc2NhbGFyMi5jOgoKICAgR28gd2l0aCB0aGUgInNjYWxhciBhcyBzdXBlci1oYW5kbGVyIG9mIGluc3RhbmNlIiBpbXBsZW1lbnRhdGlvbi4KICAgU2NhbGFyMS5jIGlzIHByb2JhYmx5IHJlZHVuZGVudCwgYnV0IHdlIGNhbiByZW1vdmUgdGhpcyBsYXRlci4KICAgKFl1cCAtIEknbSBhIGNvd2FyZC4uLi4pCiAgIAoyMDAyLTA4LTAxIDAxOjExICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBNaW5vciB0eXBvcywgcGx1cyBlbXBoYXNpc2UgdGhlIG5lZWQgZm9yIHRoZSBJcEhscEFQSSBsaWJyYXJ5LgogICAKMjAwMi0wNy0zMCAwODoyNiAgZHRzMTIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQ6CgogICBSZWNvZ25pc2UgJzAnIGFzIGEgdmFsaWQgc2V0dGluZyBmb3Igc3VmZml4UHJpbnRpbmcsIGFuZCB1cGRhdGUgdGhlCiAgIHByb21wdHMgdG8gbWF0Y2ggdGhlIHY1IG91dHB1dCBmb3JtYXRzIGRlZmF1bHRzLiBTZWUgQnVnICM1Njc0NTEKICAgCjIwMDItMDctMzAgMDc6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXJzdCBhdHRlbXB0IGF0IHRhY2tsaW5nIEJ1ZyAjNTc0NDM0CiAgIFJlY29nbmlzZSB0aGF0IGRlZmF1bHQgb3V0cHV0IGZvcm1hdCBpcyBlcXVpdmFsZW50IHRvIC1PUy4KICAgU25tcHRhYmxlIHN0aWxsIGNyYXNoZXMgd2l0aCAtT2Ygb3IgLU91LCBidXQgYXQgbGVhc3QgdGhlCiAgIGRlZmF1bHQgaW52b2NhdGlvbiB3b3Jrcy4KICAgCjIwMDItMDctMzAgMDU6NDEgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0IG5ld2x5LWRlZmluZWQgcHVibGljIG5hbWVzLCBhbmQgcmUtZXhwb3J0IHNvbWUgcm91dGluZXMgdGhhdAogICBoYXZlIGNoYW5nZWQgbmFtZS4gIFRoaXMgc2hvdWxkIG5vdyBjb21waWxlIHVuZGVyIFZpc3VhbCBDKysgYWdhaW4uCiAgIAoyMDAyLTA3LTMwIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIERvbid0IHJlbW92ZSBhIFJvdy1TdGF0dXMgYXV0by1kZWxldGVkIHJvdyB1bnRpbCB0aGUgbGFzdCBtaW51dGUsCiAgIGluIGNhc2Ugb3RoZXIgKGxvd2VyKSBoYW5kbGVycyB0cnkgdG8gYWNjZXNzIGl0LgogICAKMjAwMi0wNy0zMCAwMTozOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMSksIEZBUToKCiAgIE1lbnRpb24gdGhlIG5lZWQgdG8gZXNjYXBlIHF1b3RlcyB3aGVuIHF1ZXJ5aW5nIHN0cmluZy1pbmRleGVkIHRhYmxlcy4KICAgCjIwMDItMDctMjkgMjM6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1cGRhdGUgcmVnaXN0ZXIgZnVuY3Rpb24gbmFtZQogICAKMjAwMi0wNy0yOSAyMzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGF1dG9nZW4gZXhhbXBsZSBjb2RlIGZvciBpbmRleCBjaGVja2luZyBpbiBleHRyYWN0X2luZGV4OyB1cGRhdGUgcmVnaXN0ZXIKICAgZnVuY3Rpb24gbmFtZTsgdXNlIGNvbnRhaW5lciBpbiAqX2dldF9ieV9pZHgoKQogICAKMjAwMi0wNy0yOSAxNjoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgbmV3IHN0cnVjdCBuYW1lOyBhZGQgZXhhbXBsZSBjb2RlIGFzIGNvbW1lbnRzIGluc3RlYWQgb2YgdmFyX1hYWAogICBhbmQgc3VjaDsgaW4gYSBmZXcgaW1wb3J0YW50IHBsYWNlcyBhZGQgY29kZSB3aGljaCB3aWxsIGFsbG93IGEgbmV3bHkKICAgZ2VuZXJhdGVkIG1vZHVsZSB0byBiZSBjb21waWxlZCBpZiAtRFRBQkxFX0NPTlRBSU5FUl9UT0RPIGlzIHNwZWNpZmllZDsKICAgcHJvYmFibHkgYSBmZXcgb3RoZXIgdHdlYWtzIEkgZm9yZ290CiAgIAoyMDAyLTA3LTI5IDAzOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfYXJyYXkuYywgdGFibGUuYywgdGFibGVfZGF0YS5jCiwgdGFibGVfZGF0YXNldC5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGRlZmVyZW5jaW5nIE5VTEwgcG9pbnRlcnMuCiAgIChNb3N0IG9mIHRoZXNlIFNob3VsZCBOZXZlciBIYXBwZW4gYnV0IFlvdSBDYW4ndCBCZSBUb28gQ2FyZWZ1bCEpCiAgIAoyMDAyLTA3LTI5IDAzOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkZXRlY3QgYGRtZmUnIGV0aGVybmV0IGNhcmRzIGFzIGZvdW5kIG9uIE5ldHJhIFgxIG1hY2hpbmVzLgogICAgICAgVGhhbmtzIHRvIEpvaG4gT2xzb24gZm9yIHZlcmlmeWluZyB0aGlzIGZpeC4KICAgCiAgICAgICBBbHNvIG5vdGUgdGhhdCBgaW5kZW50JyBoYXMgLS0tLWVkIHRoZSBmb3JtYXR0aW5nIG9mIHRoaXMgZmlsZQogICAgICAgYmV5b25kIGxlZ2liaWxpdHkgaW4gc2V2ZXJhbCBwbGFjZXMuICBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdG8KICAgICAgIGRvICp0aGF0KiBhZ2Fpbi4KICAgCjIwMDItMDctMjkgMDI6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRnVsbGVyIHZhbGlkYXRpb24gb2YgUm93U3RhdHVzIHZhbHVlcyB3cnQgcm93IGNyZWF0aW9uL2V4aXN0aW5nIHJvd3MuCiAgIAoyMDAyLTA3LTI5IDAxOjI1ICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFRha2UgYWNjb3VudCBvZiByZWNlbnQgY2hhbmdlcyBpbiBsaWJyYXJ5IGZpbGVzLgogICAnUmVsZWFzZScgYXBwbGljYXRpb25zIHN0aWxsIGRvbid0IGxpbmsgcHJvcGVybHksIGJ1dCBhdCBsZWFzdAogICB0aGUgbGlicmFyaWVzIGNvbXBpbGUsIGFuZCB0aGUgJ0RlYnVnJyBzaWRlIHNlZW1zIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTI5IDAxOjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFR3ZWFrIGlubGluZSBoYW5kbGluZyBmb3IgQUlYIC0gc3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDItMDctMjYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGF1dG9kZXBlbmRlbmNpZXMgdW50aWwgcG9ydGFibGUgc29sdXRpb24gY2FuIGJlIGZvdW5kCiAgIAoyMDAyLTA3LTI2IDA4OjQxICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgbWliX21vZHVsZV9pbml0cy5oOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChvYnNvbGV0ZSkgdWNkLXNubXAvcmVnaXN0cnkgbW9kdWxlLgogICAKMjAwMi0wNy0yNiAwNzozMiAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBQcm90ZWN0IHRoZSBXaW4zMiB2ZXJzaW9uIG9mIHRoZSBjb25maWcgZmlsZSwgc28gdGhhdCB0aGUgb3RoZXIgaGVhZGVyCiAgIGZpbGVzIHJlY29nbmlzZSB0aGF0IGl0IGhhcyBpbmRlZWQgYmVlbiBpbmNsdWRlZC4KICAgCjIwMDItMDctMjYgMDc6MjQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjApLCBGQVE6CgogICBBIGJpdCBtb3JlIGRldGFpbCBvbiBtaWIyYywgcGx1cyB0aGUgbm9uLXdyaXRlYWJpbGl0eSBvZiBzeXN7TG9jYXRpb24sQ29udGFjdH0KICAgCjIwMDItMDctMjYgMDU6MjIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjkpLCBGQVE6CgogICBBbm90aGVyIGVudHJ5IGFib3V0IGludmFsaWQgdXNlIG9mIG1pYjJjLgogICAKMjAwMi0wNy0yNiAwNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFN1cHByZXNzIHRoZSAibm9uLXN0YW5kYXJkIiBjb25kaXRpb25hbCBjb25zdHJ1Y3QsCiAgIHNpbmNlIGl0J3Mgbm90IHJlY29nbmlzZWQgYnkgc29tZSB2ZXJzaW9ucyBvZiAnbWFrZScuCiAgIAoyMDAyLTA3LTI1IDA1OjAwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIHRoZSAnc2NhbGFyJyBhbmQgJ3dhdGNoZXInIGhlbHBlcnMgdG8gdGhlIGhlbHBlciBsaWJyYXJ5LgogICAKMjAwMi0wNy0yNSAwMzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIFN1cHBvcnQgZm9yIHdhdGNoaW5nIGEgc3lzVXBUaW1lIG1hcmtlci4KICAgCjIwMDItMDctMjUgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIE5ldyByb3V0aW5lIGZvciByZXRyaWV2aW5nIGEgY29sdW1uIHZhbHVlIGRpcmVjdGx5IGZyb20gYSByZXF1ZXN0IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMTM6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGNoZWNrIGZvciBzZXR0aW5nIHNhbWUgdmFsdWUgaW4gZHNfc2V0X3N0cmluZywgc2luY2UgaXQgZnJlZXMgdGhlIG9sZAogICB2YWx1ZSBiZWZvcmUgZHVwaW5nIHRoZSBuZXcgb25lCiAgIAoyMDAyLTA3LTI0IDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9zbm1wZC1pbml0LmQ6CgogICBmaXJzdCBzdGFiIGF0IGluaXQuZCBzdGFydHVwIHNjcmlwdCBmb3Igc25tcGQKICAgCjIwMDItMDctMjQgMDY6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgV2hlbiBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIG9uZSBjb2x1bW4sIGFuZCBtb3Zpbmcgb24gdG8gdGhlIG5leHQKICAgKGluIGEgR2V0TmV4dCksIHdlIG5lZWQgdG8gc3RhcnQgYWdhaW4gd2l0aCB0aGUgZmlyc3Qgcm93LgogICBUaGlzIGlzIHByb2JhYmx5IHRoZSBpbnRlbnRpb24gb2YgdGhlIGNvbmRpdGlvbmFsIGJsb2NrIGF0IHRoZSBzdGFydAogICBvZiB0aGlzIGxvb3AsIGJ1dCBJIGNhbid0IHNlZSBob3cgdGhpcyB0ZXN0IGNvdWxkIGV2ZXIgcG9zc2libHkgbWF0Y2guCiAgIAogICBOb3RlIHRoYXQgdGhlcmUgaXMgYWxzbyBhIHJlZmVyZW5jZSB0byB0aGUgcm93IGRhdGEgYWNjZXNzaWJsZSB2aWEKICAgdGhlICdyZXF1ZXN0LT5wYXJlbnRfZGF0YScgZGF0YSBsaXN0LiAgIFRoaXMgd2lsbCBhbHNvIG5lZWQgdG8gYmUKICAgcmV3b3VuZC4gIFN1Z2dlc3Rpb25zIGFzIHRvIGhvdyBiZXN0IHRvIGRvIHNvIGdyYXRlZnVsbHkgcmVjZWl2ZWQuCiAgIAoyMDAyLTA3LTI0IDA2OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgcG9zc2liaWxpdHkgb2YgZmFpbGluZyB0byBleHRyYWN0IGEgcm93IHN0cnVjdHVyZS4KICAgCjIwMDItMDctMjQgMDY6MzUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBpbnZhbGlkIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTIzIDE0OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBtaXNzaW5nIGNvbW1lbnQgdGVybWluYXRvci46LSgKICAgCjIwMDItMDctMjMgMTI6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHVzZSBuZXcgbmV0c25tcF9hc3NlcnQgaW5zdGVhZCBvZiBhc3NlcnQKICAgCjIwMDItMDctMjMgMTI6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICBhZGQgbmV3IG5ldHNubXBfYXNzZXJ0LCB3aGljaCBkZWZhdWx0cyB0byBsb2dnaW5nIGEgbWVzc2FnZQogICAKMjAwMi0wNy0yMyAwNzo0MyAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zIChWNC0yLXBhdGNoZXMuMyksIG1pYl9hcGkuMy5kZWY6CgogICBGaXggdGhlIGRlc2NyaXB0aW9ucyBvZiB0aGUgJ3NwcmludF9yZWFsbG9jJyBjYWxscywgdG8gaW5jbHVkZSB0aGUgJ2FsbG93X3JlYWxsb2MnIHBhcmFtZXRlci4KICAgCjIwMDItMDctMjIgMTA6NTggIHJzdG9yeQoKICAgKiBkaXN0LzogbmV0LXNubXAuc3BlYywgbnNiLWZ1bmN0aW9uczoKCiAgIG5ldyAoYWxtb3N0IGVtcHR5KSBzcGVjIGZpbGU7IHN0YXJ0IGNyZWF0aW5nIGZ1bmN0aW9ucyBmb3IgYXV0b21hdGVkIGJ1aWxkcwogICAKMjAwMi0wNy0yMiAwMTo0NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIEEgbW9yZSBnZW5lcmFsaXNlZCBmb3JtIG9mIHRoZSAnbnNfcmVnaXN0ZXJfe3R5cGV9X2luc3RhbmNlJyByb3V0aW5lcywKICAgaW1wbGVtZW50ZWQgYXMgYSBzZXBhcmF0ZSBoZWxwZXIgbW9kdWxlLCBhbmQgdXNlYWJsZSB3aXRoIGJvdGggdGhlCiAgIGluc3RhbmNlIGFuZCBzY2FsYXIgaGVscGVycy4KICAgICBUaGlzIGFsc28gc3VwcG9ydHMgYXJiaXRyYXJ5IEFTTiB0eXBlcyAoaW5jbHVkaW5nIHN0cmluZ3MgYW5kIE9JRHMpLgogICAKMjAwMi0wNy0yMiAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXIxLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyMi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oOgoKICAgQWdlbnQgaGVscGVyIG1vZHVsZSBmb3Igc3VwcG9ydCBvZiBzY2FsYXIgb2JqZWN0cy4KICAgVmVyeSBzaW1pbGFyIHRvIHRoZSAiaW5zdGFuY2UiIGhlbHBlciwgZXhjZXB0IHRoYXQgdGhpcyBkZWFscyB3aXRoCiAgIGludmFsaWQgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMgYXMgd2VsbCAocmVwb3J0aW5nIG5vU3VjaEluc3RhbmNlCiAgIHJhdGhlciB0aGF0IG5vU3VjaE9iamVjdCkuCiAgIAogICBUaGVyZSBhcmUgdHdvIHBhcmFsbGVsIGltcGxlbWVudGF0aW9ucyBhcyB0aGUgbW9tZW50OgogICAgIC0gc2NhbGFyMSBpcyBlc3NlbnRpYWxseSBhbiBlbmhhbmNlZCBjb3B5IG9mIHRoZSBpbnN0YW5jZSBoZWxwZXIsCiAgICAgICBidXQgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiBpdC4KICAgICAtIHNjYWxhcjIgc2l0cyBhYm92ZSB0aGUgaW5zdGFuY2UgaGVscGVyLCBhbmQgdXNlcyB0aGF0IHRvIGRvIG1vc3QKICAgICAgIG9mIHRoZSByZWFsIHByb2Nlc3NpbmcuCiAgIFNjYWxhcjEgaXMgcHJvYmFibHkgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQsIHdoaWxlIHNjYWxhcjIgZmVlbHMgbW9yZQogICBpbiBrZWVwaW5nIHdpdGggdGhlIGdlbmVyYWwgZXRob3Mgb2YgdGhlIGhhbmRsZXIgbWVjaGFuaXNtLgogICBXZSBwcm9iYWJseSBuZWVkIHRvIGRlY2lkZSB3aGljaCB0byBhZG9wdCwgYW5kIGp1bmsgdGhlIG90aGVyLgogICAKMjAwMi0wNy0xOSAxNDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHVzZSBuZXQgYWdlbnR4IHJldGlyZXMvdGltZW91dCBkcyB2YWx1ZXMKICAgCjIwMDItMDctMTkgMTQ6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgcmVnaXN0ZXIgcGFyc2VyIGZvciBhZ2VudHhUaW1lb3V0IGFuZCBhZ2VudHhSZXRyaWVzIHRva2VucwogICAKMjAwMi0wNy0xOSAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbi1leGlzdGVudCBuc3RBZ2VudCogZmlsZXMKICAgCjIwMDItMDctMTkgMTQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbW92ZSBPTkVfU0VDIHRvIGRlZmluaXRpb25zLmg7IGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMgZGVmYXVsdHMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oOgoKICAgbW92ZSBkZWZpbml0aW9uIG9mIE9ORV9TRUMgaGVyZSBmcm9tIHNubXBkLmMKICAgCjIwMDItMDctMTkgMTE6MjMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcGFzcyBsb2NhbCBvYmosIG5vdCByYW5kb20gdW5pdGlhbGl6ZWQgcG9pbnRlci46LSgKICAgCjIwMDItMDctMTkgMDQ6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgTUFYUEFUSExFTiBpc24ndCBkZWZpbmVkLgogICAKMjAwMi0wNy0xOSAwMzozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgdGhlICJzeXN0ZW0taW5kZXBlbmRlbnQiIFNOTVBfTUFYUEFUSCBsZW5ndGggZGVmaW5pdGlvbiBpbnN0ZWFkIG9mIE1BWFBBVEhMRU4KICAgCjIwMDItMDctMTggMjI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub25leGlzdGVudCBtaWJncm91cC9uc3RBZ2VudE1vZHVsZU9iamVjdC5oCiAgIAoyMDAyLTA3LTE4IDE5OjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIgKQogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4xIC0+IFY1LjAuMgoKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWlub3IgcGF0Y2ggZm9yIG5vbi1leGlzdGVudCAoZGllZCkgbG9nIGZpbGVzLgoKMjAwMi0wNy0xOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4yCgoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIG1ha2UgZGVwZW5kIGZpeGVzLgoJCjIwMDItMDctMTggMTg6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhbGFybS5jLCBldmVudC5jOgoKICAgbWFrZSB0aGUgcm1vbiBjb2RlIGNvbXBpbGUuCiAgICAtIG5ldyBzdWJ0cmVlIHBvaW50ZXIgc3RydWN0dXJlLgogICAgLSBzcHJpbnRfb2JqaWQgLT4gc25wcmludF9vYmppZAogICAKMjAwMi0wNy0xOCAxODozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBzaWxlbmNlIHBlcmwgc3ViZGlyZWN0b3J5IGJ1aWxkIGNvbW1hbmRzLgogICAKMjAwMi0wNy0xOCAxODozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIFVzZSBuZXRzaCAtdCAtZCB4bWwgdG8gZ2V0IHhtbCBvdXRwdXQgZnJvbSBuZXRzaC4KICAgICAoT2ssIEknbSBzaXR0aW5nIGhlcmUgYXQgYW4gSUVURiBjb25mZXJlbmNlIGhhdmluZyBhbiBhcmd1bWVudCBhYm91dAogICAgICB4bWwgdnMgQkVSIGFuZCBuZWVkZWQgYSBYTUwoLWxpa2UpIGV4YW1wbGUgb2YgYSBodWdlIGRhdGEgc2V0LCBzbyBJCiAgICAgIG1hZGUgbmV0c2ggZG8gaXQuKQogICAKMjAwMi0wNy0xOCAxNzo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gaW5pdGlhbCBzdXBwb3J0IGZvciBkb2luZyByZXF1ZXN0cyBmcm9tIG11bHRpcGxlIGhvc3RzIChyZXRyaWV2YWwsIG5vdCBzZXRzKQogICAKMjAwMi0wNy0xOCAxNzo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBtb3JlIGZpeGVzIHRvIHN0aWxsIHVnbHkgY29sb3JpemVkIHRleHQgKHdlbGwsIHRoZSB0ZXh0IGlzIHByZXR0eSBidXQKICAgdGhlIHN1cHBvcnQgaXMgdWdseSkuCiAgIAoyMDAyLTA3LTE4IDE3OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBjaGFuZ2UgdGV4dCBzdHJpbmcgZXJyb3IgdG8gbWF0Y2ggZnVuY3Rpb24gbmFtZSBjYWxsZWQuCiAgIAoyMDAyLTA3LTE4IDE1OjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICByZW5hbWUgZnJlZSAtPiBjZnJlZSB0byBhdm9pZCBzb21lIHByb2JsZW0gd2VzIGhhZC4uLiA7LSkKICAgCjIwMDItMDctMTggMTQ6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgdHdvIHBlb3BsZSBmaXhpbmcgbWVtb3J5IGxlYWsgaW4gZGlmZmVyZW50IHBsYWNlcyA9IHNlZ2ZhdWx0CiAgIAoyMDAyLTA3LTE4IDExOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgJG5hbWUgLT4gJGkKICAgCjIwMDItMDctMTggMTA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTggMDk6NDAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1kZWJ1Zy10b2tlbnMsIC0taW5kZW50LW9wdGlvbnMKICAgCjIwMDItMDctMTggMDk6MTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLCBzbm1wbGliL3NubXAtdGMuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaDoKCiAgIEFwcGx5IHBhdGNoIGZyb20gQnVnICM1ODIzNDcsIGZvciBJcml4IDYuNSBzdXBwb3J0LgogICBTdWJtaXR0ZWQgYnkgSmFuIFllbnlhIEthc3ByemFrCiAgIAoyMDAyLTA3LTE4IDA5OjEyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOCAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdHJhcGQuOC5kZWY6CgogICBGaXggbWFya3VwIHByb2JsZW0gb24gc25tcHRyYXBkIG1hbiBwYWdlIChCdWcgIzU4MzMyOSkKICAgCjIwMDItMDctMTggMDk6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgVGhlIGZpeCBmb3IgdGhlIHRtX2dtdG9mZiBwcm9ibGVtIG9uIEFJWCAoQnVnICM1NjU3NjkpIGFsc28gYXBwbGllcyB0byBBSVggNQogICAKMjAwMi0wNy0xOCAwOTowNiAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAoVjQtMi1wYXRjaGVzLjEpLCBlbmNvZGVfa2V5Y2hhbmdlLmMKOgoKICAgRml4IG9mZi1ieS1vbmUgYnVmZmVyIG92ZXJmbG93IChwYXRjaCAjNTc3MjYxKQogICAKMjAwMi0wNy0xOCAwODo1MSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgR2VuZXJhdGUgb25lIGNvZGUtZmlsZSBwZXIgdGFibGUgKHRvIG1hdGNoIHRoZSBoZWFkZXIgc3RydWN0dXJlKS4KICAgTXkgYXBvbG9naWVzIGlmIHRoaXMgaXNuJ3QgY29ycmVjdCwgUm9iZXJ0IC0gYnV0IHRoZSBwcmV2aW91cyBiZWhhdmlvdXIKICAgc2VlbWVkIHRvIGJlIGJyb2tlbi4KICAgCjIwMDItMDctMTggMDg6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIFRhY2tsZSBzb21lIG9mIHRoZSBpbW1lZGlhdGUgZGVmaWNpZW5jaWVzIGluIHRoZSBmaXJzdCBkcmFmdCBvbGQtYXBpIGNvbmZpZy4KICAgKE5vdyB0aGF0IFdlcyBoYXMgcG9pbnRlZCBtZSBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uISkKICAgCjIwMDItMDctMTggMDg6MjIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgRml4IHRoZSAnZGVjbCcgc3Vic3RpdHV0aW9uIGhhbmRsaW5nIChzbyBpdCBkb2Vzbid0IGluY2x1ZGUgdGhlIGludGVybmFsIHRva2VuIGFzIHdlbGwpLgogICAKMjAwMi0wNy0xOCAwNzoxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBQcm92aWRlIHRoZSBtaXNzaW5nIHBhcmFtZXRlciBpbiBhIHJlYWRfb25seSBpbnN0YW5jZSByZWdpc3RyYXRpb24uCiAgIAoyMDAyLTA3LTE4IDA3OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBCcmluZyB0aGUgJ3JlYWRfb25seV9pbnQnIGluc3RhbmNlIGhhbmRsZXIgaW4gbGluZSB3aXRoIHRoZSByZXN0IG9mCiAgIHRoZSBjb252ZW5pZW5jZSBpbnN0YW5jZSBoYW5kbGVycy4KICAgKGFuZCBldmVuIGJyZWFrIHRoZSBoYWJpdCBvZiBhIGxpZmV0aW1lIGFuZCBkZWNsYXJlIHRoZSB0aGluZy4uLi4pCiAgIAoyMDAyLTA3LTE4IDA1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXggYW5vdGhlciBtZW1vcnkgbGVhayBkdWUgdG8gYW4gaW1wcm9wZXIgaWZkZWZlZCBvdXQgc2VjdGlvbiBvZiBjb2RlCiAgIAoyMDAyLTA3LTE4IDA0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBJJ20gYmVnaW5uaW5nIHRvIHJlZ3JldCBldmVyIHJ1bm5pbmcgaW5kZW50IG9uIHRoZSBjb2RlIGJhc2UuLi4KICAgCjIwMDItMDctMTcgMTU6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmY6CgogICBkb2N1bWVudCBhbmQgaW5zdGFsbCBtaWIyYy5vbGQtYXBpLmNvbmYKICAgCjIwMDItMDctMTcgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggc2VnZmF1bHQgKHBvc3NpYmx5IGNyZWF0aW5nIG1lbW9yeSBsZWFrKTsgYXV0aG9yIG5lZWRzIHRvIGV4YW1pbmUgY29kZQogICAKMjAwMi0wNy0xNyAwNzo0MSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5hcnJheS11c2VyLmNvbmYsIG1pYjJjLmNvbmYsCiAgIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLmludF93YXRjaC5jb25mLAogICBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgRGF2ZSdzIGJlaW5nIHVucmVhc29uYWJseSBwaWNreSBhYm91dCBncmFtbWFyICYgc3BlbGxpbmcgYWdhaW4uCiAgIEp1c3QgaWdub3JlIGhpbSwgYW5kIGhlJ2xsIGdvIGF3YXkuLi4uLgogICAKMjAwMi0wNy0xNyAwNzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgb2xkIDR4LXN0eWxlIGFnZW50IEFQSSB1c2luZyB0aGUgbmV3IHZlcnNpb24gb2YgbWliMmMuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHR5cGVzIHByb3Blcmx5LCBhbmQgSSdtIHN1cmUgSSdsbCBoYXZlIGJ1Z2dlcmVkIHVwIHNvbWUgb2YKICAgdGhlIGNvbnRyb2wgc3RydWN0dXJlIGhhbmRsaW5nLCBidXQgaXQgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZXRoaW5nIHRoYXQncwogICBwcmV0dHkgY2xvc2UgdG8gdGhlIG9sZCBvdXRwdXQuICAgSXQncyBiZXR0ZXIgdGhhbiBub3RoaW5nLi4uLi4KICAgCjIwMDItMDctMTYgMjI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgcmVzdG9yZSBpbmxpbmUgZnVuY3Rpb25zIChzaWdoLiBJIGZlZWwgbGlrZSBJJ20gcGxheWluZyByaW5nLWFyb3VuZC10aGUtcm9zaWUpCiAgIAoyMDAyLTA3LTE2IDIxOjU4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbmFtZSBzb21lIHN0cnVjdCBtZW1iZXJzIHRvIG1ha2UgY29kZSBlYXNpZXIgdG8gcmVhZDsgYSBiaXQgb2YgcmUtb3JkZXJpbmcKICAgaW4gdGhlIHNldCBjb2RlOyBuZXcgZmxhZ3MgZm9yIG5ldyBhbmQgZGVsZXRlZCByb3dzOyByb3cgZGVsZXRlcyBub3cKICAgYWN0dWFseSB3b3JrIQogICAKMjAwMi0wNy0xNiAxOTozMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGFuZ2UgY29tcGxleCBtYWNyb3MgaW50byBmdW5jdGlvbnMuIHdvdWxkIGJlIG5pY2UgaWYgQyBoYWQgaW5saW5lLgogICAKMjAwMi0wNy0xNiAxODowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHVtbSwgdHJ5IHVzaW5nIGNvcnJlY3QgZGVmaW5lLjotLwogICAKMjAwMi0wNy0xNiAxODowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHRlc3QgdGhhdCBuZXQtc25tcC1jb25maWcuaCBoYXMgYmVlbiBpbmNsdWRlZCwgaW5zdGVhZCBvZiBhY3R1YWxseSBpbmNsdWRpbmcgaXQuLgogICAoc2hvdWxkbid0IHRoaXMgcmVhbGx5IGJlIGluIGFsbCB0aGUgaGVhZGVyIGZpbGVzPykKICAgCjIwMDItMDctMTYgMTI6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMTYgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0xNiAxMToxNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcyAoZ3J1bWJsZSBncnVtYmxlKQogICAKMjAwMi0wNy0xNiAxMToxNCAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogTWFrZWZpbGUuZGVwZW5kLCBtaWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGZhY3RvcnkuYwogICAKMjAwMi0wNy0xNiAxMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2NvbnRhaW5lcl9pbml0X2xpc3QoKSBpbiBzdGFydHVwIGluaXRzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLCBzbm1wbGliL29pZF9hcnJheS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hnIHBhcmFtIHR5cGUgZnJvbSB2b2lkKiB0byBzdHJ1Y3QgKgogICAKMjAwMi0wNy0xNiAxMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaDsgYWRkIGZhY3RvcnksIGJpbmFyeSBhcnJheSAuW2NoXTsgZGVyaXZlCiAgIE9CSlMgYW5kIExPQkpTIGZyb20gQ1NSQ1M7IGFkZCAob3B0aW9uYWwpIGF1dG8gZGVwZW5kZW5jeSBnZW5lcmF0aW9uCiAgIAoyMDAyLTA3LTE2IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmg6CgogICByZW1vdmUgcmVjZW50bHkgZGVsZXRlZCBvaWRfYXJyYXkuaAogICAKMjAwMi0wNy0xNiAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIHN0cnVjdCBzdWJ0cmVlIC0+IG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNiAwOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGxhc3QgcmVtYWluaW5nIHJlZnMgdG8gbm93IGRlZnVuY3Qgb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBnZW5lcmljIGJpbmFyeSBhcnJheSBjb250YWluZXIgZXh0cmFjdGVkIGZyb20gb2lkX2FycmF5CiAgIAoyMDAyLTA3LTE2IDA5OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaDsgbmV3IHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaW5kZXggKG9pZCBwdHIgKyBsZW4pCiAgIAoyMDAyLTA3LTE2IDA5OjM4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgZ2VuZXJpYyBjb250YWluZXIgaW50ZXJmYWNlOyB1c2UgbmV3IG5ldHNubXBfaW5kZXggaW5zdGVhZCBvZgogICBvaWRfYXJyYXlfaGVhZGVyOyByZW5hbWUgYXJyYXlfZ3JvdXAgLT4gcmVxdWVzdF9ncm91cAogICAKMjAwMi0wNy0xNiAwOTozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaXRlcmF0b3JzOyBtb3JlIGZ1bmN0aW9uIHR5cGVkZWZzOyByZW5hbWUgc29tZSBmdW5jIHB0cnMsIGFkZCBmaW5kX25leHQsCiAgIGdldF9zdWJzZXQsIGdldF9pdGVyYXRvciwgZm9yX2VhY2gsIG5jb21wYXJlOyBhZGQgYWJpbGl0eSB0byBoYXZlIG5lc3RlZAogICBjb250YWluZXJzOyBtb3JlIHV0aWxpdHkgcm91dGluZXM7IGNvbnZlbmllbmNlIG1hcmNyb3M7IHN0YXJ0IGFkZGluZyBjb21tZW50cwogICAKMjAwMi0wNy0xNiAwOToyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5Lmg6CgogICBkZWNsYXJhdGlvbnMgZm9yIGEgZ2VuZXJpYyBmYWN0b3J5CiAgIAoyMDAyLTA3LTE2IDA4OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9keW5peC5jLCBtZW1vcnlfaHB1eC5jCiwgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9ocHV4LmM6CgogICBBcHBseSBwYXRjaCBmcm9tIGJ1ZyByZXBvcnQgNTgxNjE4IChhbHNvIGFwcGxpY2FibGUgdG8gZHluaXgpCiAgIFByb3ZpZGVkIGJ5IE5pY2hvbGFzIEwuIE5pZ2F5CiAgIAoyMDAyLTA3LTE2IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwgYWdlbnQvYWdlbnQucG0sCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgcmVtb3ZlICJvdXIiIHByb2JsZW0gYW5kIHVzZSBvbGRlciAidXNlIHZhcnMiIGluc3RlYWQgZm9yIG9sZGVyIHBlcmwuCiAgICAgKHRoaXMgc2hvdWxkIG1ha2UgaXQgd29yayB3aXRoIHBlcmwgNS4wMDUuICBDb3VsZCBzb21lIG9uZSB0ZXN0IHRoaXMKICAgICAgZm9yIG1lPykKICAgCjIwMDItMDctMTUgMDY6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIG5hbWVzIG9mIG5ldHNubXBfc3VidHJlZSBlbGVtZW50cyBjaGFuZ2VkCiAgIAoyMDAyLTA3LTE1IDA2OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xNSAwNToyNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBTb21lIHJlYWxseSBuYXN0eSBoYWNrcyB0byBnZXQgY29sb3JpemVkIHRhYmxlcyB0byB3b3JrLgogICAKMjAwMi0wNy0xNCAyMDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBtaWIudDoKCiAgIGNvbW1lbnQgb3V0IGJyb2tlbiB0ZXN0cyBmb3Igbm93IChYWFggbWFya2VkKQogICAKMjAwMi0wNy0xNCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZ2V0YnVsay4KICAgCjIwMDItMDctMTQgMjA6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBBIG5ldyBmdW5jdGlvbiB0byBjYWxsIGEgc3ViLWhhbmRsZXIgYnV0IHBhc3NpbmcgaXQgb25seSBvbmUgcmVxdWVzdCB0byBoYW5kbGUuCiAgIAoyMDAyLTA3LTEwIDIxOjIxICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkZWZpbmUgTE9HX0RBRU1PTiwgc2luY2Ugd2luZG93cyBkb2Vzbid0IGhhdmUgaXQKICAgCjIwMDItMDctMTAgMjE6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBkZWZpbmUgb2YgaW5fYWRkcl90LCB3aGljaCBjYW4gYmUgZm91bmQgaW4gbmV0LXNubXAvdHlwZXMuaAogICAKMjAwMi0wNy0xMCAwMjozNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTAgMDI6MzUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBkb24ndCB1c2UgMCBpbiAlcCBmb3JtYXQgc3BlY2lmaWVycwogICAKMjAwMi0wNy0xMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIGZpeCBzb21lIGhvcnJpYmxlIGluZGVudCBicm9rZW4gZm9ybWF0dGluZwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gcmVtb3ZlIHNvbWUgb2Jzb2xldGUgdmFyaWFibGVzCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHJlZmxlY3QgY2hhbmdlZCBmdW5jdGlvbiBuYW1lcyBmcm9tIGFnZW50X3JlZ2lzdHJ5CiAgIAoyMDAyLTA3LTEwIDAyOjMyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgICAgLSBjaGFuZ2VzIGR1ZSB0byByZW5hbWluZyBvZiBzdHJ1Y3Qgc3VidHJlZSB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIE5PVEUgTUVNT1JZIExFQUsgKHdoaWNoIEkgY2FuJ3Qgc2VlIGhvdyB0byBmaXggLS0gbmV3IGFnZW50IEFQSQogICAgICAgZXhwZXJ0cyBwbGVhc2UgZXhhbWluZSkKICAgCjIwMDItMDctMTAgMDI6MjkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gbmFtZSwgc3RhcnQsIGVuZCBtZW1iZXJzIGFyZSBub3cgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHRvIHJlZHVjZQogICAgICAgd2FzdGVkIG1lbW9yeSAoYnkgYSBmYWN0b3Igb2YgNSBvciBzbykKICAgICAtIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCBjb25zaXN0ZW50bHkKICAgCjIwMDItMDctMTAgMDI6MjAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG5ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMDkgMDY6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUgY2FjaGVfaWQgc3RvcmFnZSB3aGVuIGNsb3Npbmcgc2Vzc2lvbgogICAKMjAwMi0wNy0wOSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0ganVzdCBjYWxsIG5ldHNubXBfZHNfc2h1dGRvd24oKSBvbmNlIGluIHNubXBfc2h1dGRvd24oKQogICAKMjAwMi0wNy0wOSAwNDoxNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBuZXRzbm1wX2ZpeHVwX21pYl9kaXJlY3RvcnkoKQogICAKMjAwMi0wNy0wOSAwMzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBhIGNhc3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wOCAyMjowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGV4dGVybiBDIGZvciBDKysgY29tcGlsZXMKICAgCjIwMDItMDctMDggMDc6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgb2Jzb2xldGUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wNy0wNyAxOTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0wNyAxOTozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA3LTA3IDE5OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIHByb2MuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIGFnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKICAgCjIwMDItMDctMDcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIG1ha2UgcGFyYW0gY29uc3Q7IGZpeCBjb21waWxlIGNvbnN0IHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTg6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGZpeCBtZW1vcnkgbGVhazsgcHJlcCBhIGZldyBjb21tZW50cyBmb3IgaW5kZW50CiAgIAoyMDAyLTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMi5wcmUxICkKICAgCjIwMDItMDctMDYgMTQ6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSBwcm9qZWN0IHZlcnNpb24gdG8gNS4wLjIKICAgCjIwMDItMDctMDYgMTQ6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHNubXB0cmFwZCBpcyBhY3R1YWxseSBidWlsdCBpbiB0aGUgYXBwcyBkaXJlY3RvcnksIG5vdCB0aGUgYWdlbnQgZGlyZWN0b3J5LgogICAKMjAwMi0wNy0wNSAxMTo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xhcmlmeSBkaXJlY3Rpb25zIGZvciBvYnRhaW5pbmcgcGVybC9TTk1QIG1vZHVsZS4KICAgCjIwMDItMDctMDUgMDU6MTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gLi4uCiAgIAoyMDAyLTA3LTA1IDAzOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2NsaWVudC5jLCBtaWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gc3lzT2JqZWN0SUQgd2FzIGJlaW5nIHJldHVybmVkIG1pbnVzIGl0cyBsYXN0IHN1Yi1pZGVudGlmaWVyIGJlY2F1c2UKICAgICAgIHRoZSBsZW5ndGggdmFyaWFibGUgaGFkIG5vdCBiZWVuIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGF0IGl0CiAgICAgICBpcyBub3cgbG9uZ2VyLiAgQ29kZSBjaGFuZ2VkIHRvIHVzZSBzaXplb2YoKSBpbnN0ZWFkLCBzbyB0aGlzIHdvbid0CiAgICAgICBoYXBwZW4gYWdhaW4uICBSZXBvcnRlZCBieSBTdGlhbiBTb2lsYW5kIChidWcgIzU3NzQzOSkuCiAgIAoyMDAyLTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAKICAgCjIwMDItMDctMDQgMDc6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIGhhbmRsaW5nIG9mIG9wYXF1ZSBwb2ludGVyIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cyB0bwogICAgICAgYXZvaWQgYm90aCBtdWx0aXBsZSBmcmVlKCkgcHJvYmxlbSBhbmQgdW5uZWNlc3NhcnkgY29weWluZy4KICAgCjIwMDItMDctMDQgMDY6MDAgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAoVjQtMi1wYXRjaGVzLls1LDldKSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTmV0d29ya0Rpc2sgcGF0Y2ggIzU1NDU1NAogICAKMjAwMi0wNy0wNCAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oCiAgIChWNC0yLXBhdGNoZXMuWzUsMV0pLCBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5GUyBmaWxlc3lzdGVtIHBhdGNoICM1NTQ1NTMKICAgKHNpbXBsaWZpZWQgdG8gYXZvaWQgdGhlIHJlLWluZGVudGF0aW9uIC0gd2hpY2ggbWFrZXMgaXQgZWFzaWVyIHRvIHNlZQogICAgd2hhdCdzIGNoYW5nZWQuICBUaGUgd2hvbGUgSG9zdFJlcyBncm91cCBuZWVkcyBjbGVhbmluZyB1cCBhbnl3YXkhKQogICAKMjAwMi0wNy0wNCAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5zdXJlIHRyYW5zcG9ydCBvcGFxdWUgZGF0YSBpc24ndCBtdWx0aXBseSBhc3NpZ25lZAogICAoYW5kIGhlbmNlIG11bHRpcGx5IGZyZWVkKSBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMuCiAgIERhdGFncmFtLWJhc2VkIHRyYW5zcG9ydHMgZG9uJ3Qgc3VmZmVyIGZyb20gdGhpcyBwcm9ibGVtLgogICBCYXNlZCBvbiBQYXRjaCA1NzM3NzEKICAgCjIwMDItMDctMDMgMTY6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGJlIHByZWNpc2UgYWJvdXQgd2hhdCBmaWxlIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGFjY2VzcyBjb250cm9sCiAgIAoyMDAyLTA3LTAzIDE0OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCBtaW5vciBncmFtbWFyIGVycm9yczsgYWRkIGRlc2NyIGZvciBtaWIyYy5hcnJheS11c2VyOyBhZGQgc2VjdGlvbiBoZWFkZXIKICAgZm9yIGdlbmVyYXRpbmcgaGVhZGVyIGRlZmluaXRpb24gZmlsZXMKICAgCjIwMDItMDctMDMgMTM6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogdHlwZXMuaCwgbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1vdmUgaW5jbHVkZSBmb3IgaW5fYWRkcl90IHRvIG5ldC1zbm1wL3R5cGVzLmgsIHdoZXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkCiAgIGZvciBzeXN0ZW1zIHcvb3V0IG5ldGluZXQvaW4uaAogICAKMjAwMi0wNy0wMyAxMjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgbW9yZSB0d2Vha3Mgbm90aWNlZCBvbiB0aGUgbWFpbGluZyBsaXN0CiAgIAoyMDAyLTA3LTAzIDA4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBtYWtlIHRlc3QgY2xlYW51cHMgdGVzdC5wbAogICAKMjAwMi0wNy0wMyAwMzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMgKFY0LTItcGF0Y2hlcy4xKSwgdXRpbF9mdW5jcy5jCjoKCiAgIFNodXQgdGhlIGFnZW50IGRvd24gY2xlYW5seSBiZWZvcmUgcmVzdGFydGluZy4KICAgVGhpcyBjbG9zZXMgYW55IFNOTVAvQWdlbnRYIHBvcnRzIGFzIHdlbGwuCiAgIAoyMDAyLTA3LTAzIDAzOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBPSUQgc3ViLWlkZW50aWZpZXJzIGFyZSB1bnNpZ25lZCwgc28gdHJlYXRpbmcgdGhlbSBhcyBzaWduZWQgY2FuCiAgIGdpdmUgdGhlIHdyb25nIHJlc3VsdHMgd2l0aCBsYXJnZSB2YWx1ZXMuCiAgIAoyMDAyLTA3LTAzIDAzOjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5oIChWNC0yLXBhdGNoZXMuNSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIEVuc3VyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZC4KICAgCjIwMDItMDctMDMgMDI6MzQgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdGluZyBmb3IgPHN5cy9kaXNrbGFiZWwuaD4gcmVxdWlyZXMgPG1hY2hpbmUvdHlwZXMuaD4gb24gTmV0QlNEIDEuNS4KICAgUmVwb3J0ZWQgYnkgRmVsaWNpYSBOZWZmLgogICAoQXBwYXJlbnRseSBmcm9tIHRoZSBOZXRCU0QgYnVnIGRhdGFiYXNlIC0gd2h5IHRoZXkgZGlkbid0IHRlbGwgdXMgYWJvdXQKICAgaXQgaXMgYSBteXN0ZXJ5IHRvIG1lLi4uLikKICAgCjIwMDItMDctMDMgMDI6MTkgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Igc3lzT2JqZWN0SUQgYXMgcmVwb3J0ZWQgaW4gdGhlIGNvbmZpZ3VyZSAtLWhlbHAgb3V0cHV0LgogICAoVGhlIGFjdHVhbCB2YWx1ZSB1c2VkIGlzIGNvcnJlY3QgLSBpdCdzIGp1c3QgdGhlIGhlbHAgb3V0cHV0IHRoYXQncyB3cm9uZykuCiAgIFNwb3R0ZWQgYnkgU2FuZGh5YSBTYXR5YW5hcmF5YW4uCiAgIAoyMDAyLTA3LTAyIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgdXBkYXRlIHRleHQgZm9yIHZhcmlvdXMgLmNvbmYgZmlsZXMKICAgCjIwMDItMDctMDIgMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIGZpeGVzIG5vdGVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYnkgUGF0cmljZSBLYWRpb25payA8a2FkaW9uaWtAZW5zZWlyYi5mcj4KICAgCjIwMDItMDctMDIgMDI6MzkgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIEFkZCB0aGUgJ3NubXBkJyBhbmQgJ3NubXB0cmFwZCcgYmluYXJ5IG5hbWVzIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXRocwogICB3aGVuIHNldHRpbmcgdXAgdGhlIHRlc3RpbmcgZnJhbWV3b3JrLgogICAKMjAwMi0wNy0wMSAwNzo1MyAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjgpLCBhc24xLmM6CgogICBFbmNvZGUvRGVjb2RlIE9JRHMgb2YgdGhlIGZvcm0gMi5YIChYID4gNDApIGNvcnJlY3RseS4KICAgCjIwMDItMDctMDEgMDI6NDAgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGhvcnJpYmxlIGZvcm1hdHRpbmcgaW4gaGVscCBmb3IgdHJhbnNwb3J0cwogICAKMjAwMi0wNy0wMSAwMjoyMyAgZHRzMTIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgUGljayB1cCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIGZvciB0aGUgcm9vdCBvZiB0aGUgVUNEIGV4dGVuc2libGUgYWdlbnQgdGFibGVzCiAgIChzbyB0aGF0IHRoZSBFWEFNUExFLmNvbmYgZmlsZSBnZXRzIHNldCB1cCB3aXRoIHRoZSBjb3JyZWN0IG51bWVyaWMgT0lEcykKICAgCjIwMDItMDYtMjggMDY6NDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3RjcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjggMDQ6NDEgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIFVwZGF0ZSBkZWZhdWx0IHN0b3JlIHJldHJpZXZhbCBmdW5jdGlvbnMgdG8gdXNlIHRoZSBjb3JyZWN0IG5hbWUuCiAgIAogICBOb3RlIHRoYXQgdGhpcyB0ZXN0IHNjcmlwdCBhcHBlYXJzIHRvIGluY2x1ZGUgdHdvIGluZmluaXRlIGxvb3BzLgogICBJJ20gbm90IGNsZWFyIGhvdyB0aGlzIGlzIGV4cGVjdGVkIHRvIHJ1biBzdWNjZXNzZnVsbHkgPwogICAKMjAwMi0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJlbW92ZSByZWZlcmVuY2UgdG8gbm9uLWV4aXN0ZW50IGRlZ3VnZ2luZyBmdW5jdGlvbi4KICAgCjIwMDItMDYtMjggMDQ6MzcgIGR0czEyCgogICAqIHBlcmwvbWFuYWdlci86IE1ha2VmaWxlLlBMLCBkaXNwbGF5dGFibGUucG0sCiAgIGdldFZhbHVlcy5wbSwgbWFuYWdlci5wbSwgc25tcHRvc3FsOgoKICAgQnJpbmcgcGVybCAnbWFuYWdlcicgbW9kdWxlIHVuZGVyIHRoZSBOZXRTTk1QIGJhbm5lcgogICAoYm90aCBpbiB0ZXJtcyBvZiBtb2R1bGUgZ3JvdXAgbmFtZSwgYW5kIHJlZmVyZW5jZXMgdG8gJ3VjZC1zbm1wJykuCiAgIFJlbW92ZSBzb21lIFVDRC1zcGVjaWZpYyBzZXR0aW5ncy4KICAgCiAgIE5vdGUgdGhhdCBzbm1wdG9zcWwgc3RpbGwgcmVmZXJzIGV4cGxpY2l0bHkgdG8gV2VzJyBVQ0QgZW1haWwgYWRkcmVzcywKICAgYW5kIG1hbmFnZXIucG0gdG8gV2VzJyBVQ0QgZmlsZXN0b3JlIHBhdGguICBUaGUgcmVsZXZhbnQgbGluZXMgaGF2ZQogICBiZWVuIGhpZ2hsaWdodGVkLCB0byBlbmNvdXJhZ2UgYW55b25lIHdpc2hpbmcgdG8gdXNlIHRoaXMgdG8gY2hhbmdlIHRoZW0uCiAgIAoyMDAyLTA2LTI4IDA0OjEyICBkdHMxMgoKICAgKiBwZXJsLzogQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBtYW5hZ2VyL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGNoZWNraW5nIGZvciAiaW50ZXJuYWwiIHByZXJlcXVpc2l0ZXMsIHNvIHRoYXQgInBlcmwgTWFrZWZpbGUuUEwiCiAgIGF0IHRoZSB0b3AgbGV2ZWwgd2lsbCB3b3JrIC0gZXZlbiBvbiBhIHByaXN0aW5lIHN5c3RlbS4KICAgCiAgIFFuOgogICAgIElzIGl0IG5lY2Vzc2FyeS9kZXNpcmFibGUgdG8gc2VwYXJhdGUgdGhlIE5ldFNOTVAgbW9kdWxlcyB0byB0aGlzIGV4dGVudD8KICAgV291bGQgaXQgbm90IGJlIHNpbXBsZXIgdG8gaGF2ZSBhbGwgb2YgdGhlIG1haW4gLnBtLy54cyBmaWxlcyBpbiBhIHNpbmdsZQogICBOZXRTTk1QIGRpcmVjdG9yeSwgYW5kIGNvbXBpbGUvaW5zdGFsbCB0aGVtIGFsbCBmcm9tIHRoZXJlPwogICAKMjAwMi0wNi0yOCAwMTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDaGVjayBmb3IgLS13aXRoLWVudGVycHJpc2UgKGV0IGFsKSBiZWluZyBpbnZva2VkIHdpdGhvdXQgYSB2YWx1ZSwgYW5kIGJvbWIgb3V0LgogICAKMjAwMi0wNi0yNyAyMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgbmV3IFJFQURNRSBkZXRhaW5saW5nIHRoZSB1c2Ugb2YgU0ZJTyB0byBjaXJjdW12ZW50IHRoZSAyNTUgZmQgbGltaXQgb24KICAgc29sYXJpcy4KICAgCjIwMDItMDYtMjcgMTE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBjaGFuZ2luZyBhcnJheTsgYWRkIG5ldHNubXBfdGFibGVfYXJyYXlfcmVtb3ZlX3JvdygpCiAgIAoyMDAyLTA2LTI3IDA0OjE1ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgJ21ha2VkZXBlbmQnIChlLmcuIFJlZEhhdCA3LjEpLCBjYW4ndCBoYW5kbGUgIi1vc3VmZml4IgogICBhcyBhIHNpbmdsZSBvcHRpb24uICBBbGwgdmVyc2lvbnMgc2VlbSBoYXBweSB3aXRoICItbyBzdWZmaXgiIHNvIHVzZSB0aGF0LgogICAKMjAwMi0wNi0yNyAwMzozMSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBFTlZfU0VQQVJBVE9SX0NIQVIgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyAnOicgaW4gbmV0c25tcF9zZXRfbWliX2RpcmVjdG9yeQogICAoYXMgc3VnZ2VzdGVkIGJ5IFJvYmVydCkKICAgCjIwMDItMDYtMjcgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gcmVtb3ZlIHRyYW5zcG9ydCBzcGVjaWZpZXIgYW5kIHBvcnQgbnVtYmVyIGZyb20gc3RyaW5ncyByZXR1cm5lZAogICAgICAgZnJvbSBzbm1wX3VkcF9mbXRhZGRyKCkgd2hpY2ggYnJlYWsgdGNwX3dyYXBwZXJzIChhbmQgcGVyaGFwcwogICAgICAgb3RoZXIgdGhpbmdzKS4KICAgCjIwMDItMDYtMjcgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX21pYi5jCjoKCiAgIFZhbGlkYXRlIG5ldyBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgdmFsdWUgYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCiAgIFNwb3R0ZWQgJiBmaXhlZCBieSBTaGFudGhhIEt1bWFyYQogICAKMjAwMi0wNi0yNSAxNDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgYWRkIEFQUFRPUFMgKC1DcSkgZm9yIHN1cHByZXNzaW5nIG91dHB1dCBvZiBzZXQgcmVzdWx0cyBvbiBzdWNjZXNzCiAgIAoyMDAyLTA2LTI1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBBcHBseSBwYXRjaCAjNTU5ODQ4IHRvIHVzZSB0aGUgL3Byb2MgcHNldWRvLWZpbGVzeXN0ZW0gdW5kZXIgTGludXgKICAgKHJhdGhlciB0aGFuIHBhcnNpbmcgdGhlIG91dHB1dCBvZiBwcykKICAgCjIwMDItMDYtMjUgMDg6NTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ2hlY2sgZm9yICdhaXg0JyAod2hpY2ggaXMgdGhlIHRva2VuIGRlZmluZWQgaW4gdGhlIHN5c3RlbSBoZWFkZXIgZmlsZSkKICAgcmF0aGVyIHRoYW4gJ2FpeCcuICAgU2VlIGJ1ZyAjNTY1NzY5CiAgIAoyMDAyLTA2LTI1IDA4OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBUcmVhdCAnMCcgYXMgYW4gaW52YWxpZCBpbmRleCBmb3IgYSAic2ltcGxlIHRhYmxlIi4KICAgCjIwMDItMDYtMjUgMDc6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc3lzQ29udGFjdC4wIGFuZCBzeXNMb2NhdGlvbi4wCiAgIGNvbmZpZ3VyYXRpb24gdG9rZW5zLgogICAKMjAwMi0wNi0yNSAwNjo0MCAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgZGVmYXVsdF9zdG9yZS4zLnRvcDoKCiAgICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IHRvIGRlZmF1bHRfc3RvcmUgZnVuY3Rpb25zCiAgIAogICAgIC0gY2xlYW4gdXAgbWFucGFnZSBhIGJpdAogICAKICAgICAtIGZpeCBicmVha2FnZSBpbiBnZW5lcmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUuMy5oIGR1ZSB0byBhdXRvLWluZGVudGF0aW9uCiAgICAgICBvZiBkZWZhdWx0X3N0b3JlLmgKICAgCjIwMDItMDYtMjUgMDI6NTUgIGpicG4KCiAgICogRVhBTVBMRS5jb25mLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBFWEFNUExFLmNvbmYuZGVmOgoKICAgICAtIG1lbnRpb24gdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uIGV0IGFsLiBpbiBzbm1wZC5jb25mIG1ha2VzIHRoZW0KICAgICAgIHJlYWQtb25seQogICAKICAgICAtIGFsc28gY2hhbmdlIHN5bnRheCBvZiBhbGwgZXhhbXBsZSBjb21tYW5kIGxpbmUgdG9vbHMgdG8gdXNlIG5ld2VyCiAgICAgICAtYyBDT01NVU5JVFkgc3ludGF4IG5vdCBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKMjAwMi0wNi0yNCAwODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBtYWtlIGJ1ZmZlciBzaXplIGluY3JlYXNlIG5vdGUgYSBkZWJ1ZyBzdGF0ZW1lbnQgcmF0aGVyIHRoYW4gYSBnZW5lcmljCiAgIGxvZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTA2LTIzIDE4OjQwICBkcmllaHVpcwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEhhbmRsZSBDT1VOVEVSNjQgaW4gX190cmFuc2xhdGVfYXNuX3R5cGUuCiAgIAoyMDAyLTA2LTIzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBzY3JpcHQgYW5kIHRoZSBsYW5ndWFnZSBpdCBob3VzZXMuCiAgICAgKG1hbiBwYWdlIGF1dG8tZ2VuZXJhdGVkIGZyb20gdGhlIGNvbnRhaW5lZCBwb2QgZG9jdW1lbnRhdGlvbikKICAgCjIwMDItMDYtMjMgMTU6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICB1cGRhdGUgdG8gcmVmZXJlbmNlIHRvcCBsZXZlbCBNYWtlZmlsZS5QTAogICAKMjAwMi0wNi0yMyAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjQtMi1wYXRjaGVzLjEpLCBTTk1QLnhzOgoKICAgZml4IHJlcG9ydGVkIGJ5IFdpbGxlbSBEZWtrZXIgZm9yIFdpbmRvd3MuICBCdWcgIzU0MzE5NCBmaXhlZC4KICAgCjIwMDItMDYtMjIgMDg6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICB1cGRhdGUgZm9yIHJlY2VudCBtZXRob2RvbG9naWVzCiAgIAoyMDAyLTA2LTIxIDE2OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpbmFsIChob3BlZnVsbHkhKSBmaXggZm9yIHBhcnNpbmcgaXAgYWRkcmVzc2VzIGZyb20KICAgIkZjby4gSmF2aWVyIFJpZHJ1ZWpvIiA8YWNicmlwZWZAc2kuZWh1LmVzPgogICAKMjAwMi0wNi0xOSAxNDozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZyb20gZG94eWdlbgogICAKMjAwMi0wNi0xOSAxMTo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pbnRfd2F0Y2guY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBzY2FsYXIgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgZ2VuZXJhdGluZyBzY2FsYXIgY29kZS4KICAgCjIwMDItMDYtMTkgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGNsZWFuIHVwIG11bHRpLWxpbmUgY29tbWVuZCB3aGljaCB3YXMgbWVzc2VkIHVwIGJ5IGluZGVudC4KICAgCjIwMDItMDYtMTkgMTE6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBhZGQgc3VwcG9ydCBmb3IgcHJvbXB0aW5nIG9mIHVua25vd24gcGFyYW1ldGVycyB0byBhbGlhc2VzLgogICAtIG1pc2Mgb3RoZXIgaW1wcm92ZW1lbnRzIChsaWtlICJyZWhhc2giKQogICAKMjAwMi0wNi0xOSAxMTozOCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGZvciBuZXcgZGVmYXVsdCBzdG9yZSBBUEkKICAgCjIwMDItMDYtMTkgMTE6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICBNYWtlZmlsZS5zdWJzLnBsLCBtYWtlLXBlcmwtbWFrZWZpbGVzLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQVJHR0dHR0cKICAgSSBsb3ZlIHBlcmwuCiAgIEkgaGF0ZSBwZXJsJ3MgbWFrZSBzeXN0ZW0uCiAgIEkgaGF0ZSB0aGUgZmFjdCB0aGF0IHBlcmwgc2VnZmF1bHRzIGlmIEdldE9wdGlvbnMoKSBpcyBjYWxsZWQgbW9yZQogICB0aGFuIG9uY2UuCiAgIHNpZ2guCiAgIFRoaXMgaG9wZWZ1bGx5IHdpbGwgZml4IHRoZSBwZXJsIG1vZHVsZSBidWlsZCByb3V0aW5lcyBzbyBpdCBhdCBsZWFzdAogICB3b3JrcyAoYnV0IGl0J3Mgc3RpbGwgdWdseSBhbmQgY291bGQgdXNlIG1vcmUgY2xlYW5pbmcpLgogICAKMjAwMi0wNi0xOSAwNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBpbmZpbnRlIGxvb3AgYW5kIGFkZCBkZWJ1ZyBpbiByZW1vdmVfZGVsZWdhdGVkCiAgIAoyMDAyLTA2LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBOVUxMIHRoZSBwcml2IHBvaW50ZXIgb24gc2Vzc2lvbiBkdXBsaWNhdGlvbi4gIHRoYW5rcyB0byByZXppdG96CiAgIAoyMDAyLTA2LTE3IDA2OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBDaGFuZ2VkIEthdHN1aGlzYSdzIGVtYWlsIGFkZHJlc3MsIG9uIHJlcXVlc3QKICAgCjIwMDItMDYtMTQgMDc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM1NjkwMjE6IGZyb20gTGF1cmkgTXlsbGFyaQogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHRoZSB0YWJsZSBpdGVyYXRvciBzdXBwb3J0LgogICAKMjAwMi0wNi0xNCAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbGllZCBwYXRjaCAjNTY5MDIwIGZyb20gcmV6aXRveiBvbiBJUkMgdG8gZml4IG5vbi1pbml0aWFsaXplZCB2YXJpYWJsZQogICAKMjAwMi0wNi0xNCAwMzo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jOgoKICAgQWRkIChudWxsKSBjb250ZXh0LCB0byBicmluZyBpbnRvIGxpbmUgd2l0aCB0aGUgdjUgcmVnaXN0cnkgQVBJcy4KICAgRml4ZXMgYnVnIDU2ODU4MC4KICAgCjIwMDItMDYtMTQgMDI6MjcgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIFVzZSBtYXRjaGluZyAnIGFuZCAiIHF1b3RlcyBmb3IgQUlYIGNvbmZpZ3VyZSB0ZXN0LgogICBNZW50aW9uZWQgaW4gcGFzc2luZyBpbiBidWcgNTY1NzY5LgogICAKMjAwMi0wNi0xMyAxNDozMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvY29uZi50OgoKICAgZml4IGRlZmF1bHRfc3RvcmUgcm91dGluZXMKICAgCjIwMDItMDYtMTIgMDY6NDMgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQnJpbmcgV2luZG93cyBPSUQgdXNhZ2UgaW50byBsaW5lIHdpdGggdGhlIG1haW4gY29uZmlnIGZpbGUgc2V0dGluZ3MuCiAgIAoyMDAyLTA2LTEyIDA2OjM3ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ29ycmVjdCB0aGUgZGVmYXVsdCBFbnRlcnByaXNlIE9JRCB1c2VkIGluIHRyYXBzLCB0byBhdm9pZCBhIHJlcGVhdGVkIDAKICAgc3ViaWRlbnRpZmllci4gIChGaXhlcyBidWcgIzU2NjkxNykKICAgCjIwMDItMDYtMTIgMDU6MTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlZmluZSAnbGVuZ3RoJyBhcyBhIHNpZ25lZCB2YXJpYWJsZSwgc28gaXQgY2FuIGhhbmRsZSBhbiBlcnJvciB2YWx1ZSBvZiAtMS4KICAgUmVwb3J0ZWQgYnkgSm9ha2ltIEFsdGhpbmkuCiAgIAoyMDAyLTA2LTEyIDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHN1cmUgdGhlIGFkZHJlc3Mgb2YgdGhlIG5leHQgbGluayBpcyBwcm9wZXJseSBzYXZlZCwgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgogICBQcm9ibGVtIGRpc2NvdmVyZWQgYnkgSHVnbyBDYWNvdGUuCiAgIAoyMDAyLTA2LTEyIDAyOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvYWdlbnRfaW5kZXguaCwgYWdlbnQvYWdlbnRfdHJhcC5oCiwgYWdlbnQvYWxsX2hlbHBlcnMuaCwgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9idWxrX3RvX25leHQuaCwgYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9tdWx0aXBsZXhlci5oLCBhZ2VudC9udWxsLmgKLCBhZ2VudC9vbGRfYXBpLmgsIGFnZW50L3JlYWRfb25seS5oLAogICBhZ2VudC9zZXJpYWxpemUuaCwgYWdlbnQvc2V0X2hlbHBlci5oLAogICBsaWJyYXJ5L2NtdV9jb21wYXQuaCwgbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCBsaWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVENQRG9tYWluLmgsIGxpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIGxpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCBsaWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBsaWJyYXJ5L3NubXBfc2VjbW9kLmgsIGxpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgbGlicmFyeS91Y2RfY29tcGF0Lmg6CgogICBTdXBwbHkgbWlzc2luZyAjaWZuZGVmLyNkZWZpbmUvI2VuZGlmIGFuZCBleHRlcm4gIkMiIHt9IHdyYXBwZXJzCiAgIAoyMDAyLTA2LTExIDE3OjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlbW92ZSBzcHVyaW91cyBwcmludGYgdG8gc3RkZXJyCiAgIAoyMDAyLTA2LTExIDE0OjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgYWRkIGV4dGVybiAiQyI7IGFkZCB2b2lkX2FycmF5IHN0cnVjdAogICAKMjAwMi0wNi0xMSAxNDoyMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB0c2VhcmNoOyB1c2UgbmV3IGNvbnRhaW5lciBpbnN0ZWFkCiAgIAoyMDAyLTA2LTExIDE0OjE5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGNvbnRhaW5lciBmb3Igc2Vjb25kYXJ5IGluZGV4CiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjb250YWluZXIgdG8gaGVhZGVyczsgYWRkIGNvbnRhaW5lci5jCiAgIAoyMDAyLTA2LTExIDE0OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGluaXQgZnVuY3Rpb25zIGZvciBiYXNpYy9zb3J0ZWQgY29udGFpbmVyCiAgIAoyMDAyLTA2LTExIDE0OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgbW9yZSBtZXRob2RzIGZvciBiYXNpYyBjb250YWluZXI7IGFkZCBzb3J0ZWQgKHdpbGwgcHJvYmFibHkgcmVuYW1lKSBjb25hdGluZXIKICAgCjIwMDItMDYtMTEgMTI6MjIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVkZXM7IGFkZCBleHRlcm4gIkMiIGZvciBfX2NwbHVzcGx1cwogICAKMjAwMi0wNi0xMSAxMToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgbmV0c2gsIHNubXBzaDoKCiAgIHJlbmFtZWQgc25tcHNoIHRvIG5ldHNoLCBhcyBJIGxpa2UgdGhlIG5hbWUgYmV0dGVyIGFuZCBpdCBhcHBlYWxzIHRvIGEKICAgd2lkZXIgbnVtYmVyIG9mIHBlb3BsZS4KICAgCjIwMDItMDYtMTAgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB3aGVuIGRlbGV0aW5nIGFuIGFzcCBwb2ludGVyLCBtYWtlIHN1cmUgaXQgaXNuJ3QgaW4gdGhlIGRlbGVnYXRlZCBsaXN0CiAgIAoyMDAyLTA2LTEwIDA4OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBwYXJzZV9vbmVfb2lkX2luZGV4IHRvIGFsbG93IHRvbyBzaG9ydCBJUCBhZGRyZXNzIHdoZW4gY29tcGxldGUgaXMKICAgc3BlY2lmaWVkOyBhZGQgbmV0c25tcF9vaWQyY2hhcnMgJiBuZXRzbm1wX29pZDJzdHIKICAgCjIwMDItMDYtMTAgMDc6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkZWZhdWx0X3N0b3JlIGRlZmluZXMKICAgCjIwMDItMDYtMTAgMDc6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsLy5jdnNpZ25vcmUsIHBlcmwvTWFrZWZpbGUuUEw6CgogICBUb3AgbGV2ZWwgcGVybCBNYWtlZmlsZS5QTCB0byBpbnN0YWxsIHRoZSB3aG9sZSBidW5jaCB1bmRlcm5lYXRoLgogICBUaGlzIHNob3VsZCBub3cgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBsb3dlciBsZXZlbCBtYWtlZmlsZXMgZm9yCiAgIHNpbXBsaWNpdHkuCiAgIAoyMDAyLTA2LTEwIDA3OjI3ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIEFja25vd2xlZGdlIGtub3duIGZhaWxpbmcgdGVzdHMuCiAgIFRoaXMgbWVzc2FnZSBjYW4gYmUgcmVtb3ZlZCBvbmNlIHRoZSBwcm9ibGVtIGhhcyBiZWVuIGlzb2xhdGVkIGFuZCBmaXhlZC4KICAgCjIwMDItMDYtMTAgMDc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzdXBwb3J0IGZvciBpcGFkZHJlc3MgYnVpbGRpbmcvcGFyc2luZyBvZiBPSUQgaW5kZXhlcy4KICAgCjIwMDItMDYtMTAgMDI6MDcgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBNZW50aW9uIHRoZSBvdGhlciBwZXJsIG1vZHVsZXMsIGludHJvZHVjZWQgd2l0aCB2NSAocGFydGljdWxhcmx5ICdkZWZhdWx0X3N0b3JlJykKICAgCjIwMDItMDYtMTAgMDE6MjggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBOZXcgZW50cnkgZGVzY3JpYmluZyBwb3NzaWJsZSBwcm9ibGVtcyB3aXRoIHRyYXAgaGFuZGxlcnMuCiAgIAoyMDAyLTA2LTA4IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNi0wOCAyMDo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYnJlYWsgcGVybCBtYWtlZmlsZSBjcmVhdGlvbiBpbnRvIHNlcGVyYXRlIHN0ZXA7IG9ubHkgY2xlYW4gcGVybCBkaXJlY3RvcnkKICAgaWYgdGhlcmUgaXMgYSBtYWtlZmlsZQogICAKMjAwMi0wNi0wOCAyMDoxNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHBlcmx0ZXN0IHRhcmdldCB0byBtYWtlIHRlc3QgaW4gYWxsIHBlcmwgZGlyZWN0b3JpZXMKICAgCjIwMDItMDYtMDggMDk6NDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBmaXggdG8gZGVhbCB3aXRoIHVwZGF0ZWQgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wNi0wOCAwNzowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSB0byBTUUwtU3RhdGVtZW50IHJlcXVpcmVtZW50IG9mIDEuMDA0CiAgIAoyMDAyLTA2LTA4IDA2OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBtaWIgaW5pdCBjb2RlIGZyb20gQyBzbm1wX3RyYW5zbGF0ZV9vYmogY2FsbAogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBpbml0X3NubXAgaW5zaWRlIHRyYW5zbGF0ZU9iagogICAKMjAwMi0wNi0wOCAwNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gMC4xCiAgIAoyMDAyLTA2LTA4IDA2OjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBBIGZldyBjbGVhbnVwcyB0byBpZmNvbmZpZyBhbmQgbmV0c3RhdCBjb21tYW5kcwogICAKMjAwMi0wNi0wOCAwNjozNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgLSBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgaW1wb3J0L2V4cG9ydCBvZiBkYXRhIChjdXJyZW50bHkgdG8vZnJvbSBDU1YpLgogICAtIHN1cHBvcnQgZm9yICJkaWZmIiB3aGljaCBjb21wYXJlcyBvbGQgKHBvc3NpYmx5IGltcG9ydGVkIGRhdGEpIHRvIGN1cnJlbnQuCiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoYW5nZSByZXF1aXJlZCBTTk1QIG1vZHVsZSB2ZXJzaW9uIGZyb20gNCB0byA1CiAgIAoyMDAyLTA2LTA4IDA2OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSB0dXRvcmlhbCBwbGFjZSBob2xkZXIgY29tbWVudCBPSUQuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0a21pYiBmb3IgbmV3ZXIgcGVybCBtb2R1bGVzLgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICB0dXJuIG9mZiBleHRyYSBib2xkL3VuZGVybGluZSBmb3JtYXR0aW5nIGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA2LTA3IDE1OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgZ2VuZXJpYyBjb250YWluZXIgc3RydWN0dXJlIGZvciBzdG9yaW5nIGRhdGEKICAgCjIwMDItMDYtMDcgMTM6MDEgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ueHM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA2LTA3IDEwOjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSB0byBrZWVwIGluIGxpbmUgd2l0aCBjb25maWd1cmUuaW4gKHdoeT8gc2hvdWxkbid0CiAgIGNvbmZpZ3VyZSBub3QgYmUgaW4gQ1ZTIGFuZCBiZSBhdXRvZ2VuZXJhdGVkPyBPbmUgb2YgdGhlc2UgZGF5cyBJJ20gZ29pbmcKICAgdG8gaGF2ZSB0byBsZWFybiBhdXRvY29uZi4uLi4pCiAgIAoyMDAyLTA2LTA3IDEwOjM1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWx3YXlzIGNoZWNrIHJldHVybiBzdGF0dXMgb2YgbWFrZSB3aGVuIGluc2lkZSBhIGxvb3AsIGFuZCBleGl0IG9uIGVycm9ycwogICAKMjAwMi0wNi0wNyAwODoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4zKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgT25seSBudWxsLXRlcm1pbmF0ZSB0aGUgaW50ZXJmYWNlIG5hbWUgd2hpbGUgaXQncyBhY3R1YWxseSBiZWluZyBjb3BpZWQuCiAgIFJlc3RvcmUgdGhlIGRhdGEgbGluZSBhZnRlcndhcmRzLCBzbyB0aGUgZGVidWdnaW5nIG91dHB1dCBpcyBtZWFuaW5nZnVsLgogICAKMjAwMi0wNi0wNyAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRml4IGZvciBpbmRleGluZyBlcnJvciwgdGhhdCBjYXVzZXMgYSBjcmFzaCBpZiBtb3JlIHRoYW4gMTYgdmFyYmluZHMKICAgYXJlIGFkZGVkIHRvIHRoZSBjYWNoZSBpbiBvbmUgZ28uICBTcG90dGVkIGJ5IFNoYW50aCBLdW1hcmEKICAgCjIwMDItMDYtMDYgMDE6MTIgIGR0czEyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLls3LDVdKSwgYWNsb2NhbC5tNCwKICAgY29uZmlndXJlOgoKICAgRG9uJ3QgZGlmZmVyZW5jaWF0ZSBiZXR3ZWVuIGVsZi0gYW5kIGEub3V0LWJhc2VkIE5ldEJTRCBzeXN0ZW1zLgogICAoUHJvYmxlbSBoaWdobGlnaHRlZCBieSBGZWxpY2lhIE5lZmYpCiAgIAoyMDAyLTA2LTA1IDE4OjUwICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIHB1dCBkZWZpbmVzIGZvciBzb2NrbGVuX3QgYW5kIGluX2FkZHJfdCBpbiBuZXQtc25tcC90eXBlcy5oIGluc3RlYWQgb2YgaGF2aW5nCiAgIGNvbmZpZ3VyZSBnZW5lcmF0ZSB0aGVtOyBjb25maWd1cmUgaW5zdGVhZCBnZW5lcmF0ZXMgSEFWRV9TT0NLTEVOX1QgYW5kCiAgIEhBVkVfSU5fQUREUl9UIGZvciBzeXN0ZW1zIHdoaWNoIGRvbid0IG5lZWQgdGhlIGRlZmluZXM7IHRoaXMgaXMgcHJpbWFyaWx5CiAgIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgV2luMzIgcGxhdGZvcm0sIHdoaWNoIGRvZXNuJ3QgaGF2ZSBjb25maWd1cmUuCiAgIAoyMDAyLTA2LTA1IDA5OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZG9uJ3QgYWR2YW5jZSByZXF1ZXN0IHBvaW50ZXIgaW5zaWRlIGZvciBsb29wLCBzaW5jZSBmb3IgbG9vcCBkb2VzIGl0IGZvcgogICB1czsgb3RoZXJ3aXNlIGZvciBsb29wIG1heSBlbmQgdXAgZGVyZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIuCiAgIAoyMDAyLTA2LTA1IDA2OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXg6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgdmFyaW91cyB1bml4IHV0aWxpdGllczoKICAgIC0gY3VycmVudGx5OiBuZXRzdGF0LCBwcywgZGYsIGlmY29uZmlnCiAgIAoyMDAyLTA2LTA1IDA2OjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3NjbGk6CgogICBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSBpbiBKdWVyZ2VuJ3MKICAgc2NsaSBjb21tYW5kLgogICAKMjAwMi0wNi0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgbmV3IGNvbW1hbmRzOgogICAgIHNvdXJjZSBmaWxlIC0tIHNvdXJjZXMgYW4gcmMgZmlsZQogICAgIHdhdGNoIGV4cHJlc3Npb24gLS0gcmVwZWF0ZWRseSBydW5zIGEgY29tbWFuZCBhbmQgY29sb3JpemVzCiAgICAgICBkaWZmZXJlbmNlcyBpbiBkYXRhCiAgICAgZXZhbCBleHByZXNzaW9uIC0tIGV2YWx1YXRlcyBhbiBleHByZXNzaW9uIGRpcmVjdGx5IGluIHBlcmwKICAgICAgIC0gYmVnaW5uaW5ncyBvZiBvdmVybG9hZHMgaW4gcGVybCBzbyB0aGF0IGNhbGxpbmcgc3lzQ29udGFjdCgpCiAgICAgICAgIHdpbGwgcmV0dXJuIHRoZSBzeXNDb250YWN0IHZhbHVlLiAgdGFibGVzIG5vdCByZXR1cm5lZCB5ZXQuCiAgIGZpeGVzOgogICAgIHR1cm5zIG9mIG9ybmFtZW50YWwgcHJvbXB0IHN1cHBvcnQgKGljaykgYnkgZGVmYXVsdAogICAKMjAwMi0wNi0wNSAwNDo0MyAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xIChWNC0yLXBhdGNoZXMuOCksIHNubXBjbWQuMS5kZWY6CgogICBCcmllZiBtZW50aW9uIG9mIHRoZSBuZWVkIHRvIHF1b3RlIE9JRHMgY29udGFpbmluZyBzdHJpbmcgaW5kZXhlcywKICAgdG8gcHJvdGVjdCB0aGUgZG91YmxlIHF1b3RlcyBmcm9tIHRoZSBzaGVsbC4KICAgCjIwMDItMDYtMDQgMTA6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhIG51bGwgdHJlZWNhY2hlIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0CiAgIAoyMDAyLTA2LTA0IDEwOjMzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYXNwLT5wZHUgPT0gTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldC4KICAgCjIwMDItMDYtMDQgMDU6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgZm9yIHByaW50Ziwgc2luZ2xlIHF1ZXJ5L3NldHMgb2Ygc2NhbGFycywgbXVsdGktbGluZSBhbGlhc2VzLgogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBtYWtlIG5ldygpIG9wZXJhdG9yIGEgYml0IHNtYXJ0ZXIKICAgCjIwMDItMDUtMjkgMTk6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9hbGFybS5jOgoKICAgc2V0IHRoZSBzdG9yYWdlIHBvaW50ZXIgdG8gTlVMTCwgYXMgcG9pbnRlZCBvdXQgYnkgTWFyayBIb3kuCiAgIAoyMDAyLTA1LTI5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIEFQSWlmeSBNSUJESVJTIHN1cHBvcnQKICAgCjIwMDItMDUtMjkgMDc6NDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBFeHBhbmQgb24gd2hlbiBPcGVuU1NMIGlzIG5lY2Vzc2FyeSwgYW5kIGhvdyB0byBjb21waWxlIHVzaW5nIGl0LgogICAKMjAwMi0wNS0yOSAwNjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBTZXQgUkVVU0VBRERSIHNvIHRoYXQgc3BlY2lmeWluZyB0aGUgc2FtZSBwb3J0IHR3aWNlIGRvZXNuJ3Qga2lsbCB0aGUgYWdlbnQuCiAgIChTdWdnZXN0ZWQgYnkgUm9iZXJ0IEhhc3RpbmdzKQogICAKMjAwMi0wNS0yOSAwMjo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIFJlZmVyZW5jZSBib3RoIHZlcnNpb25zIG9mIHRoZSB0dXRvcmlhbCAoc2luY2UgdGhpcyBkb2N1bWVudCBpcyB1c2VkCiAgIGZvciBidWlsZGluZyB0aGUgb24tbGluZSB2ZXJzaW9uIG9mIHRoZSBGQVEpCiAgIAoyMDAyLTA1LTI5IDAyOjE2ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy40KSwgRkFROgoKICAgQ2xhcmlmeSB0aGF0IHRyYXAgZmlsdGVyaW5nIGlzIG5vdCB5ZXQgb3BlcmF0aW9uYWwuCiAgIAoyMDAyLTA1LTI4IDE0OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHJlbW92ZSBeTSBjaGFycwogICAKMjAwMi0wNS0yOCAxNDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpeCBsb2dpYyBpbiBjYW5fZGVsZXRlOyBjb25zb2xpZGF0ZSB1c2Ugb2YgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0IGJ5IHNldHRpbmcKICAgcmMgZm9yIHVzZSBhdCBlbmQgb2YgbG9vcDsgZG9uJ3QgdXNlIHJlbW92ZWQgbWFjcm9zIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUsCiAgIHVzaW5nIG5ldyBuZXRzbm1wX2NoZWNrX3ZiKiByb3V0aW5lcyBpbnN0ZWFkOyBhZGQgYXNzZXJ0cyBmb3IgZXJyb3IgY2FzZXMgdGhhdAogICBzaG91bGQgYmUgY2F1Z2h0IGJ5IGVhcmxpZXIgcm91dGluZXMKICAgCjIwMDItMDUtMjggMTQ6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgY2FsbGJhY2tzIGZvciByb3cgKGRlKWFjdGl2YXRpb24KICAgCjIwMDItMDUtMjggMDY6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByb3RlY3QgIiNpbmNsdWRlIDxzZWFyY2guaD4iIHdpdGggdGhlIEhBVkVfU0VBUkNIX0ggdG9rZW4uICAoU3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjggMDY6MjAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIEZpeCB0aGUgZGVjbGFyYXRpb24gb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50LiAoU3BvdHRlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI3IDAxOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRG9uJ3QgaGFyZHdpcmUgc3lzbG9nIGZhY2lsaXR5IHRvIExPR19EQUVNT04uCiAgIEZpeCBwcm92aWRlZCBieSBKb2FraW0gRmFsbHNqby4KICAgCjIwMDItMDUtMjcgMDE6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvc25tcHRyYXBkLmMKICAgKFY0LTItcGF0Y2hlcy5bMiw4XSksIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBUd2VhayAndXNtVXNlcicgaGVscCBzdHJpbmcgdG8gYWNjdXJhdGVseSByZWZsZWN0IHdoaWNoIGJpdHMgYXJlIG9wdGlvbmFsLgogICBSZXBvcnRlZCBieSBBbGkgQ2hhbmF1aS4KICAgCjIwMDItMDUtMjcgMDE6MjIgIGR0czEyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgKFY0LTItcGF0Y2hlcy40KSwgc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mICJmaWxlIiBkaXJlY3RpdmVzLgogICAKMjAwMi0wNS0yNyAwMToxNyAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2gsIHRoYXQgY29uZnVzZXMgc29tZSAnbWFrZSdzCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgUHJvcGVyIGNyZWF0aW9uIG9mIHJldHVybmVkIE5ldFNOTVA6Ok9JRCBvYmplY3QuCiAgIAoyMDAyLTA1LTI0IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgaW5jcmVhc2UgcmVmZXJlbmNlIGNvdW50cyBvbiByZXR1cm5lZCBtaWIgcmVnaXN0cmF0aW9uIG9iamVjdHMgc28KICAgdGhleSdyZSBub3QgYXV0by1jbGVhbmVkIGJ5IHBlcmwgKHRoZSBhZ2VudCBub3cgaGFzIGEgY29weSBvZiB0aGUgcG9pbnRlcikKICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGRlZmF1bHRfc3RvcmUgbmV0c25tcF8gcHJlZml4ZXMuCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgZm9yIHNjYWxhcnMgKG1pYjJjLnNjYWxhci5jb25mIGZpbGUgY29taW5nIHNob3J0bHkpCiAgIAoyMDAyLTA1LTI0IDA5OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEEgbmV3IHJ1bGUgY2FsbGVkICJjb21tZW50Y2hlY2siIHRvIGdyZXAgYWxsIHNvdXJjZXMgZm9yIC8vIGNvbW1lbnRzLgogICAKMjAwMi0wNS0yNCAwODowOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERlY2xhcmUgJ3JlZ2lzdGVyX21pYl9kZXRhY2hfbm9kZScgYmVmb3JlIGl0J3MgdXNlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgIChTcG90dGVkIGJ5IFhpYW5nIFpoYW5nKQogICAKMjAwMi0wNS0yNCAwNzo0NCAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaC4KICAgKFRoYXQgKm1pZ2h0KiBiZSBjb25mdXNpbmcgU3VuJ3MgbWFrZSwgYnV0IGlzIHdyb25nIGFueXdheSkKICAgCjIwMDItMDUtMjMgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdF9ic2RpNC5jLAogICB2bXN0YXRfZHluaXguYywgdm1zdGF0X2ZyZWVic2QyLmMsIHZtc3RhdF9ocHV4LmMsCiAgIHZtc3RhdF9uZXRic2QxLmMsIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgQnJpbmcgdGhlIHZhcmlvdXMgJ3Zhcl9leHRlbnNpYmxlX3Ztc3RhdCcgZGVmaW5pdGlvbnMgaW50byBsaW5lCiAgIHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIgZmlsZSAtIGkuZS4gbm9uLXN0YXRpYy4KICAgCjIwMDItMDUtMjEgMTU6MjUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtSSQoc3JjZGlyKS9pbmNsdWRlIHRvIENQUCBwYXRoIGZvciBwZW9wbGUgYnVpbGRpbmcgb3V0c2lkZSBvZiBzcmMgdHJlZQogICAKMjAwMi0wNS0yMSAwODoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNTU4MTI5IF0gTWFrZSB0aGUgdHVubmVsIG1pYiBjb21waWxlIGluIDUuMC4xLCBzdWJtaXR0ZWQKICAgYnkgTG9yZW56byBDb2xpdHRpIChsY29saXR0aSksIHdoaWNoIGFkZHMgbWlzc2luZyBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNS0yMSAwNTozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBjb3JlIGR1bXAgaW4gLXUgb3B0aW9uIHByb2Nlc3NpbmcsIG5vdGVkIGJ5IEFuZHJlYXMgTWF1cwogICAKMjAwMi0wNS0yMSAwNToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjkpLCBtZW1vcnkuYwo6CgogICBMYXRjaCBtZW1vcnkgcmVwb3J0aW5nIGF0IDJeMzEtMSwgcmF0aGVyIHRoYW4gMl4zMi0xIHNpbmNlIHRoZXNlCiAgIG9iamVjdHMgYXJlIGRlZmluZWQgYXMgKHNpZ25lZCkgSW50ZWdlcjMyLgogICBPbmx5IGxhdGNoIGlmIHRoZSB2YWx1ZSBpcyAqZ3JlYXRlciogdGhhbiB0aGlzIHRocmVzaG9sZCwgbm90IGxlc3MhCiAgIAoyMDAyLTA1LTIxIDAxOjIwICBqYnBuCgogICAqIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3VjZF9jb21wYXQuYwo6CgogICAgIC0gYWRkIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucyBmb3IgbmV3bHktcmVuYW1lZAogICAgICAgZGVmYXVsdCBzdG9yZSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgKGRlZmluZWQgaWZmCiAgICAgICAtLWVuYWJsZS11Y2QtY29tcGF0aWJpbGl0eSBpcyBnaXZlbiB0byBhdCBjb25maWd1cmF0aW9uIHRpbWUpCiAgIAoyMDAyLTA1LTIxIDAwOjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgICAtIG1vdmUgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX2RzX3JlYWRfY29uZmlnIHR5cGUgZnJvbSBkZWZhdWx0X3N0b3JlLmgKICAgICAgIGludG8gZGVmYXVsdF9zdG9yZS5jIChzaW5jZSBpdCBpcyBub3QsIGFuZCBzaG91bGQgbm90LCBiZSB1c2VkCiAgICAgICBlbHNld2hlcmUpLgogICAKMjAwMi0wNS0yMCAwMzo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVnaXN0ZXJzIHRva2VucyBmb3IgaXB2NiByby9ydyBjb21tdW5pdHksIGFuZCBtYWtlIHN1cmUgdG8gcGFyc2UgdGhlbQogICBhcyBpcHY2LCBub3QgdjQuCiAgIAoyMDAyLTA1LTE5IDExOjM4ICBkcmllaHVpcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEJ1Z2ZpeCBmb3IgRnJlZUJTRCBzdXBwb3J0IG9mIHRoZSBkaXNrSU8gbWliLiBUaGUgb3JpZ2luYWwgY29kZSBuZWdsZWN0ZWQKICAgdGhlIGRldmljZSBudW1iZXIsIHdoaWNoIG1hZGUgZGlzdGluZ3Vpc2hpbmcgYmV0d2Vlbiwgc2F5LCBhZDAgYW5kIGFkMQogICBpbXBvc3NpYmxlLgogICAKMjAwMi0wNS0xNyAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBzbGlnaHRseSByZWR1Y2UgbWVtb3J5IGNvc3RzIG9mIHJlZ2lzdGFydGlvbnMKICAgCjIwMDItMDUtMTYgMTc6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgc3RvcmUgdGFnIG5hbWVzLgogICBmaXggaW5pdF9zbm1wKCkgZGVmaW5pdGlvbiB0byBtYXRjaCBub3JtYWwgcGVybCBub24tYW5zaSBtb2RlLgogICAKMjAwMi0wNS0xNiAxNjozOSAgZHJpZWh1aXMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgTWFrZSBzdXJlIC0tY2ZsYWdzIHNwaXRzIG91dCB0aGUgcmVxdWlyZWQgaW5jbHVkZSBwYXRoIHdoZW4gaW5zdGFsbGluZwogICBpbiBhIG5vbi1kZWZhdWx0IGxvY2F0aW9uLCBhcyBkb2N1bWVudGVkIGluIHRoZSB1c2FnZSBpbmZvIGluIHRoZSBzY3JpcHQuCiAgIAoyMDAyLTA1LTE2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBhZGQgYSBsaW5lIHRvIHRoZSBzeXNTZXJ2aWNlcyBwcm9tcHQgc2F5aW5nIGlmIHlvdSBkb24ndCBrbm93LCBzYXkgbm8uCiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgdXBkYXRlIHRvIG5ldyBkZWZpbmUgbGlzdAogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB0ZXN0IHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMjo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIGF1dG9nZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGVzIHRvIG5ldyAuaCB0b2tlbnMKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW46CgogICAuaCAtPiBwZXJsbW9kdWxlIHJlZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMDc6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIENvbnNvbGlkYXRlIHRoZSB2YXJpb3VzIE9JRCBvdXRwdXQgY29uZmlndXJhdGlvbiBtZWNoYW5pc21zIGludG8gb25lLgogICBUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgKHlldCEpIC0ganVzdCB0aGUgaW50ZXJuYWxzLgogICAKMjAwMi0wNS0xNSAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjcmVhdGUgYSBkZWZpbmUgbG9jYXRpb24gZm9yIEhBVkVfR0VUREVWUwogICAKMjAwMi0wNS0xNSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIGRlcGVuZCB1cGRhdGUsIHdoaWNoIEkgbWVhbnQgdG8gY2hlY2sgaW4gYmVmb3JlIHRoZSA1LjAuMSByZWxlYXNlCiAgIAoyMDAyLTA1LTE1IDA1OjUzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3BlcmwuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM5ICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgICAtIHVzZSBuZXcgbmV0c25tcF9kc19ibGFoIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzCiAgIAoyMDAyLTA1LTE1IDA1OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wX2FsYXJtLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLAogICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9zZWNtb2QuYywgc25tcHVzbS5jLAogICBzbm1wdjMuYywgdWNkX2NvbXBhdC5jLCB2YWNtLmM6CgogICAgIC0gcmVuYW1lIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIGZyb20gZGVmYXVsdF9zdG9yZSBmcm9tIGRzX2JsYWgKICAgICAgIHRvIG5ldHNubXBfZHNfYmxhaAogICAKMjAwMi0wNS0xNSAwMjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuMCksIHNtdXguYzoKCiAgICAgLSBpbml0aWFsaXNlIHNtdXhfbGlzdGVuX3NkIHRvIGF2b2lkIHByb2JsZW1zIG5vdGVkIGluIGJ1ZyAjNTQ1NDQ4CiAgICAgICAoYSBiaXQgdW5yZWFzb25hYmxlIGluIG15IHZpZXcgYnV0IGl0IGNhbid0IGRvIGFueSBoYXJtKS4KICAgCjIwMDItMDUtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBwcmVjaXNpb24gZXh0cmFjdGlvbiBvZiB0dW1vciBpbnN0ZWFkIG9mIGFtcHV0YXRpb24sIG9yLCBpZmRlZiBzZWFyY2guaAogICBmdW5jdGlvbnMgdGhhdCBhcmVuJ3QgZXNzZW50aWFsIHRvIHRhYmxlX2FycmF5IG9wZXJhdGlvbiBhbmQgd2lsbCBwcm9iYWJseQogICB2YW5pc2ggaW4gdGhlIG5lYXIgZnV0dXJlIGFueXdheS4KICAgCjIwMDItMDUtMTMgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgZml4IHR5cGUgaW4gc2l6ZW9mCiAgIAoyMDAyLTA1LTEzIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzZWFyY2guaCBiZWZvcmUgY29tcGlsaW5nIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIKICAgCjIwMDItMDUtMTMgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0wNS0xMyAwMDozOSAgZHJpZWh1aXMKCiAgICogQ2hhbmdlTG9nOgoKICAgTm90ZSBjaGFuZ2VzIHRvIGNvbmZpZ3VyZS5pbi4KICAgCjIwMDItMDUtMTIgMTA6MzAgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIE1ha2Ugc3VyZSB0aGUgY2hlY2tzIGZvciBrdm0gcmVsYXRlZCBzdHVmZiBoYXBwZW5zIHdoZW4gLWxrdm0gaXMgaW4gc2NvcGUuCiAgIEFkZCBkZXRlY3Rpb24gb2YgdGhlIC1sZGV2c3RhdCByZXF1aXJlbWVudCB3aGVuIGJ1aWxkaW5nIHdpdGggdWNkLXNubXAvZGlza2lvLgogICAKCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMCAtPiBWNS4wLjEKCjIwMDIwLTA1LTEyIDE3OjMwICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBkZXRlY3QgLWxkZXZzdGF0IHdoZW4gbmVlZGVkOyBmaXggLWxrdm0gZGV0ZWN0aW9uCgoyMDAyLTA1LTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRSwgUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gdHV0b3JpYWwtNSBpbnN0ZWFkIG9mIHR1dG9yaWFsCiAgIAoyMDAyLTA1LTEwIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIHJlcXVlc3QgaW5mbyBwZXJsIGNvZGUgbW92ZWQgdG8gc2VwYXJhdGUgZmlsZS4KICAgCjIwMDItMDUtMTAgMTc6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBPSUQgYnVpbGRpbmcgb3ZlcmxvYWRzLgogICAKMjAwMi0wNS0xMCAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgQWRkIHByb3BlciBsZW5ndGggc2VnbWVudCB0byB0aGUgYnVpbGQgdmlldyBPSUQuCiAgIAoyMDAyLTA1LTEwIDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV3IGRvYyBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZwogICAKMjAwMi0wNS0xMCAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjApLCB2YWNtX3ZhcnMuYwo6CgogICBmaXggdmFjbSBwcm9ibGVtIG9uIHNldHMgd2l0aCBPSURzIGNvbnRhaW5pbmcgbGFyZ2UgbnVtYmVycyBhcyBub3RlZAogICBieSBWaW5heSBHYW9ua2FyIG9uIHRoZSAtY29kZXJzIG1haWxpbmcgbGlzdC4KICAgCjIwMDItMDUtMTAgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhbGxpbmcgb24gbXVsdGlwbGUgdGFibGVzCiAgIAoyMDAyLTA1LTEwIDAzOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWVyZ2UgIlNUUklORzogSGV4OiIgdHlwZSB0b2tlbnMgaW50byBhIHNpbmdsZSB0b2tlbiAiSGV4LVNUUklORzoiCiAgIAoyMDAyLTA1LTEwIDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBSZXBvcnQgbm9uLWV4aXN0ZW50IHN1Ymluc3RhbmNlcyBhcyAnbm9TdWNoSW5zdGFuY2UnIHJhdGhlciB0aGFuICdub1N1Y2hPYmplY3QnLgogICAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMC45OSIgbm93IHJlc3BvbmRzIGNvcnJlY3RseS4KICAgKHRob3VnaCAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMSIgc3RpbGwgcmV0dXJucyAnbm9TdWNoT2JqZWN0JykKICAgCiAgIEFsc28gZ3Vlc3MgdGhhdCBmYWlsZWQgU0VUIHJlcXVlc3RzIGFyZSAnbm9DcmVhdGlvbicgZXJyb3JzICh3aGljaCBpcwogICBwcm9iYWJseSB0aGUgbW9zdCBsaWtlbHkgb3B0aW9uKS4KICAgCjIwMDItMDUtMDkgMTU6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZXhpdCBwcm9wZXJseSB3aGVuIGEgc3ViZGlyIGZhaWxzIHRvIG1ha2UgcHJvcGVybHkKICAgCjIwMDItMDUtMDkgMTU6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjcmVhdGUgYSB0b2tlbiBmb3IgdGhlIC1PdiBlcXVpdmVsYW50CiAgIAoyMDAyLTA1LTA5IDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNSksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgcGF0Y2ggZnJvbSBUYWt1bWkgS2Fkb2RlIHRvIGZpeCBtZW1vcnkgdXNhZ2Ugb24gc29sYXJpcwogICAKMjAwMi0wNS0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICB1cGRhdGVzIGZyb20gbWFsbG9jZWQgdm1zdGF0IGZpeGVzIGZyb20gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDItMDUtMDggMTY6MzQgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIG5ldyAtLWNvbXBpbGUtc3ViYWdlbnQgZmVhdHVyZXM6CiAgICAgLS1jZmxhZ3MKICAgICAtLW5vcm0KICAgICAtLWxkZmxhZ3MKICAgICBpbmNsdWRlcyBoZWFkZXIgZmlsZXMKICAgICBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDUtMDggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbWFrZSB0aGUgc3ViYWdlbnQgcHJvcGVybHkgY2FsbCB0aGUgcmVzZXJ2ZTIgc3RhdGUgYWdhaW4uCiAgIAoyMDAyLTA1LTA4IDEwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDggMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgdW0sIHVzZSAzMCBzZWNvbmRzIGxpa2UgYWR2ZXJ0aXNlZC4KICAgCjIwMDItMDUtMDggMDg6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZGVmaW5lIGEgYmV0dGVyIG5vdGlmaWNhdGlvbiBleGFtcGxlIChubyByZXF1ZXN0cy4gIGp1c3QgYWxhcm0gLT4gc2VuZCkKICAgCjIwMDItMDUtMDcgMjI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgdXBkYXRlIHRvIGN1cnJlbnQgaW5kZW50IGNvbW1hbmQKICAgCjIwMDItMDUtMDcgMjI6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBtb3ZlIHRleHQgaW4gY29tbWVudCBsZWZ0IHNsaWdodCAod2FzIHRvbyBsb25nKS4KICAgCjIwMDItMDUtMDcgMjI6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZW51bSBmaXhlcy4KICAgCjIwMDItMDUtMDcgMjI6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbHVtbl9kZWZpbmVzLmNvbmYsCiAgIG1pYjJjLmNvbHVtbl9lbnVtcy5jb25mLCBtaWIyYy5jb25mOgoKICAgTmV3IG1pYjJjIGZpbGVzIGZvciBnZW5lcmF0aW5nIGhlYWRlcnMgZnVsbCBvZiBjb2x1bW4gbnVtYmVyIGRlZmluZXMKICAgYW5kIGVudW0gZGVmaW5lcy4KICAgCjIwMDItMDUtMDcgMjI6NDAgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IGFnZW50IGxpYnJhcnkgcmVvcmRlcmluZyBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgbm93IHN1cHBvcnRzIC5vIGZpbGVzIChwcmVjb21waWxlZCBjb2RlKS4KICAgCjIwMDItMDUtMDcgMjI6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZToKCiAgIGhtbS4gIG1pc3NlZCBzb21lIGNoZWNraW4gZmlsZXMuCiAgIAoyMDAyLTA1LTA3IDExOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGNvbmZ0ZXN0LmNvbmYsIHN0YXJ0YWdlbnQucGwsIGNvbmYudAo6CgogICB0ZXN0IGZvciBjb25maWd1cmF0aW9uIGZpbGUvZGVmYXVsdF9zdG9yZSBzdXBwb3J0CiAgIAoyMDAyLTA1LTA3IDExOjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBpbml0X3NubXAoKSB0YWtlIGEgY2hhciAqIGFyZ3VtZW50IGxpa2UgdGhlIHJlYWwgQVBJCiAgIAoyMDAyLTA1LTA3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICB0eXBvcy4KICAgCjIwMDItMDUtMDcgMDk6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgZml4IHRoZSAtZyBmbGFnLgogICAKMjAwMi0wNS0wNyAwOToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGxpa2UgYSBnb29kIGJveS4KICAgCjIwMDItMDUtMDYgMjA6NDMgIHJzdG9yeQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpeCBtaXNzaW5nICQgbm90ZWQgYnkgSm9obiBNaWxscyBvbiB0aGUgY29kZXJzIGxpc3QKICAgCjIwMDItMDUtMDYgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzQsMiwzLDNdKSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZSAoY29ycmVjdGx5IGRvbmUgdGhpcyB0aW1lKQogICAKMjAwMi0wNS0wNiAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNTo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluCiAgIChWNC0yLXBhdGNoZXMuWzMsNywxLDJdKSwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA2IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgUGF0Y2hlcyAjNTUxOTE0KyBmcm9tIEdhcnkgRWR3YXJkcyB0byBzdXBwb3J0IGhwdXgxMSBmb3IgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBuZXcgaHB1eCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBuZXcgY29udHJpYnV0b3JzLgogICAKMjAwMi0wNS0wNiAxNDozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYKLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU1MTQ4OTogRnJvbSBKZWZmcmV5IFdhdHNvbiB0byBhZGQgYSAtUSBvcHRpb24gZm9yIHF1aWNrIGJ1dCB3LyBhbiAnPScKICAgCjIwMDItMDUtMDYgMTQ6MjggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIGNoYW5nZSAtRCBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgY3VycmVudCBjb2RlLgogICAKMjAwMi0wNS0wNiAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgbWlzYyBzbWFsbCBidWdzIGFuZCBlcnJvciBtZXNzYWdlIHdvcmRpbmcgZml4ZXMuCiAgIAoyMDAyLTA1LTA2IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuOSksIHNtdXguYzoKCiAgIGJ1ZyAjNTQ3MDEwOiBmaXggc211eCBhdXRoIGJ1ZyBhcyByZXBvcnRlZCBhbmQgZml4ZWQgYnkgU3RlZmFuIFJhZG1hbgogICAKMjAwMi0wNS0wMSAyMzowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyBmb3IgdXBkYXRlIHRvIHRhYmxlX2FycmF5CiAgIAoyMDAyLTA1LTAxIDIzOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgb2JqZWN0X21vbml0b3Igc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNoZWNrX3ZhcmJpbmQgc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdmFsaWRhdGlvbiB2YWJyaW5kIGluZm8KICAgCjIwMDItMDUtMDEgMjI6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGRvIEkgcmVhbGx5IGhhdmUgdG8gZG8gdGhpcz8gc2lnaC4gT2ssIHJlbmFtZSBkZWJ1ZyB0b2tlbjsgcmV2YW1wIGxvZ2ljIHRvCiAgIG1vZGlmeSByb3dzIGluIHBsYWNlLCBrZWVwaW5nIHVuZG8gaW5mbyAodnMgYWx3YXlzIGNoYW5naW5nIGEgY29weSBvZiBhIHJvdwogICBhbmQgc3dhcHBpbmcgcm93cyB3aGVuIHNldCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KSB0byBhbGxvdyBleHRlcm5hbCBjb2RlCiAgIHRvIGtlZXAgcG9pbnRlcnMgdGhhdCBkb24ndCBkaXNhcHBlYXIgb24gdGhlbTsgYWRkIGEgZmV3IGNhbGxiYWNrcywgaW5jbHVkaW5nCiAgIHJvd19jb21wYXJlLCBzbyB0YWJsZV9hcnJheSBjYW4gbWFpbnRhaW4gdGhlIHNlY29uZGFyeSBpbmRleCB0cmVlOyBkb24ndCBjYWxsCiAgIGNhbl9hY3RpdmF0ZS9jYW5fZGVsZXRlIHVubGVzcyB3ZSBhcmUgYWN0dWFsbHkgdHJ5aW5nIHRvIGFjdGl2YXRlL2RlbGV0ZSByb3c7CiAgIGFkZCBza2VsZXRvbiAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGNvb3BlcmF0aXZlIG5vdGlmaWNhdGlvbnMgb2Ygcm93IGV2ZW50czsKICAgdXBkYXRlIGNoYW5naW5nIGFycmF5IGluIGNvbW1pdCAmIHVuZG8gY2FzZXMsIG5vdCBqdXN0IGNvbW1pdDsgY2hhbmdlIHR5cGRlZnMKICAgZm9yIGEgZmV3IGNhbGxiYWNrIHBvaW50ZXJzOyB1bW1tbS4uLiBJICp0aGluayogdGhhdCdzIGl0Li4uLjotKQogICAKMjAwMi0wNS0wMSAxNzozMCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIEFkZCBpbmRleCBidWlsZGluZyB0byB0aGUgKyBvcGVyYXRvci4KICAgCjIwMDItMDUtMDEgMDk6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBPSUQvT0lELnhzLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbAosIGFnZW50L3R5cGVtYXA6CgogICBNYWtlIGdldE9JRCBmb3IgcmVxdWVzdHMgcmV0dXJuZWQgYSBOZXRTTk1QOjpPSUQgYmxlc3NlZCByZWZlcmVuY2UuCiAgIEknbSBub3QgaGFwcHkgYWJvdXQgaG93IHRoaXMgaXMgZG9uZSwgYnV0IGFsbCBhdHRlbXB0cyB0byBkbyBpdAogICBjb3JyZWN0bHkgb25seSBsZWZ0IG1lIGluIGNvbmZ1c2lvbi4KICAgCjIwMDItMDUtMDEgMDk6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwo6CgogICBDaGFuZ2UgdGhlIGRvbWFpbiBPSURzIHRvIHBvaW50IHRvIHRoZSBuZXQtc25tcCBkb21haW5zIGNyZWF0ZWQgYnkgRGF2ZS4KICAgVGhpcyBmaXhlcyBidWcgIzU0NDI0NSBhcyB3ZWxsLgogICAKMjAwMi0wNS0wMSAwOTozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGQgdGhlIE9JRCBwZXJsIG1vZHVsZSB0byB0aGUgbGlzdCBvZiBtb2R1bGVzLgogICAKMjAwMi0wNS0wMSAwNzo0NSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy4wKSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIHJlbW92ZSBvbGQgKGFuZCBjb25mbGljdGluZyB3aXRoIHRyYXBzKSB0cmFuc3BvcnQgZG9tYWluIE9JRHMKICAgCjIwMDItMDUtMDEgMDY6MTkgIGR0czEyCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEuZGVmLAogICBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHdhbGsuMS5kZWY6CgogICBBZGQgdHlwZSB0YWdzICJTVFJJTkc6ICIgYW5kICJJTlRFR0VSOiAiIHRvIGV4YW1wbGUgb3V0cHV0LgogICBBZGQgZXhwbGljaXQgc2V0dGluZyBvZiBwcm90b2NvbCB2ZXJzaW9uIHRvIGV4YW1wbGUgY29tbWFuZHMuCiAgIAoyMDAyLTA1LTAxIDAzOjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhZ3V0aWwuYywgYWd1dGlsLmgsCiAgIGFndXRpbF9hcGkuaCwgYWxhcm0uYywgYWxhcm0uaCwgZXZlbnQuYywKICAgZXZlbnQuaCwgaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHJvd19hcGkuaCwKICAgcm93cy5jLCByb3dzLmgsIHN0YXRpc3RpY3MuYywgc3RhdGlzdGljcy5oOgoKICAgICAtIHJlbW92ZSBDVlMgTG9nOiBlbnRyaWVzIHdoaWNoIGFyZSBjYXVzaW5nIHByb2JsZW1zIHNpbmNlIHRoZXkgYXJlCiAgICAgICBlbWJlZGRlZCBpbiBhIGNvbW1lbnQsIGJ1dCBzb21lIG9mIHRoZSBsb2cgZW50cmllcyBjb250YWluIGNvbW1lbnQKICAgICAgIGRlbGltaXRlcnMuCiAgIAoyMDAyLTA0LTMwIDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlbW92ZSBuZXRzbm1wX3Byb2Nlc3Npbmdfc2V0LCBpdCBsaXZlcyBpbiBzbm1wX2FnZW50LmMKICAgCjIwMDItMDQtMzAgMjI6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL3NubXAtdGMuYwo6CgogICByZW1vdmUgdW51c2VkIHBhcmFtZXRlcjsgYWxsb3cgTk9ORSBhcyBvbGQgdmFsdWUgZm9yIHN0b3JhZ2UgdHlwZSB0cmFuc3Rpb25zCiAgIAoyMDAyLTA0LTMwIDIyOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVtb3ZlIG92ZXJseSBjb21wbGV4IG1hY3JvIHN0dWZmIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUKICAgCjIwMDItMDQtMzAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUKLCB0ZXN0LnBsOgoKICAgLSBhbGxvdyBjb252ZXJzaW9ucyB0byBhbiBhcnJheSAobmVlZHMgdG8gYmUgdGllZCBzdGlsbCkuCiAgIC0gZG9jdW1lbnRhdGlvbi4KICAgCjIwMDItMDQtMzAgMDg6MTUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMyksIHNubXBkLmM6CgogICAgIC0gZml4IGJ1ZyAjNTQ1Nzc1LCByZXBvcnRlZCBieSBEYXZlIERlbnNvbiwgd2hlcmVieSB0aGUgUElEIG9mIGFuCiAgICAgICBhbHJlYWR5LXJ1bm5pbmcgc25tcGQgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgc3RhcnRpbmcgYSBuZXcgc25tcGQKICAgICAgICh3aGljaCB3b3VsZCB0aGVuIGV4aXQsIGxlYXZpbmcgdGhlIG9yaWdpbmFsIHNubXBkIHJ1bm5pbmcgYW5kIHRoZQogICAgICAgd3JvbmcgUElEIGluIHRoZSBmaWxlKS4gIFNvbHV0aW9uIGlzIG5vdCB0byB3cml0ZSB0aGUgUElEIHVudGlsIHdlCiAgICAgICBoYXZlIHN1Y2Nlc3NmdWxseSBvcGVuZWQgYWxsIG91ciBzb2NrZXRzLgogICAKMjAwMi0wNC0zMCAwNzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiAuY3ZzaWdub3JlLCBDaGFuZ2VzLCBNQU5JRkVTVCwKICAgTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUsCiAgIHRlc3QucGwsIHR5cGVtYXA6CgogICBPSUQgcGVybCBtb2R1bGUgc28geW91IGNhbiBkbyBzaW1wbGUgT0lEIG1hbmlwdWxhdGlvbnMgd2l0aGluIHBlcmwgZWFzaWx5OgogICAgIC0gRXhhbXBsZTogIG5ldyBOZXRTTk1QOjpPSUQoJ2ludGVyZmFjZXMnKSA+IG5ldyBOZXRTTk1QOjpPSUQoJ3N5c3RlbScpCiAgIAoyMDAyLTA0LTI5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVnZXhwIGZpeCBmb3Igd2hpdGUgc3BhY2UgY2hlY2tzIGluIGluZGVudCBmb3JtYXR0ZWQgY29kZQogICAKMjAwMi0wNC0yOSAxNjo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW9yZGVyIHBlcmwgbW9kdWxlIG5hbWVzIHRvIHJlZmxlY3QgKG5ldykgZGVwZW5kZW5jaWVzLgogICAKMjAwMi0wNC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBmaXggYSBmZXcgd2FybmluZ3Mgb24gZmFpbGVkIHRlc3RzIChqdXN0IHNjcmVlbiBjbGVhbnVwcykKICAgCjIwMDItMDQtMjkgMDk6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgTWFrZSB0aGUgcGVybCBtb2R1bGUgcmVzcGVjdCBzbm1wLmNvbmYgc2V0dGluZ3MgKGZpbmFsbHkpLgogICAgIC0gTm93IHJlcXVpcmVzIGEgZGVwZW5kZW5jeSBvbiB0aGUgTmV0U05NUDo6ZGVmYXVsdF9zdG9yZSBtb2R1bGUgdGhvdWdoLgogICAKMjAwMi0wNC0yNyAwODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvbid0IHByb2Nlc3Mgc2V0IHJlcXVlc3QgdGlsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgYXJlIGNvbXBsZXRlLCBhbmQgcXVldWUKICAgYW55IG90aGVyIHJlY2VpdmVkIHBhY2tldHMgdW50aWwgYSBzZXQgaGFzIGNvbXBsZXRlZCBwcm9jZXNzaW5nLgogICAKMjAwMi0wNC0yNyAwODoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFuIHVwIGNvbW1lbnRzIG11bmdlZCBieSBpbmRlbnQKICAgCjIwMDItMDQtMjcgMDg6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNC0yNyAwODowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogb2JqZWN0X21vbml0b3IuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZmRlZiBneW1uYXN0aWNzIHRvIG1ha2Ugc3VyZSBhc3NlcnRzIGFyZSBvbmx5IGNvbXBpbGVkIGluIG9ubHkgaWYgZXhwbGljaXR5CiAgIHJlcXVlc3RlZAogICAKMjAwMi0wNC0yNiAyMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IHVuYmFsYW5jZWQgZW5kaWYgb24gbGludXguIGhvcGUgSSBkaWRuJ3QgYnJlYWsgYW55dGhpbmcgZWxzZS4KICAgCjIwMDItMDQtMjYgMTk6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IHVudXNlZCB2YXIgd2FybmluZyBmb3IgIXdpbmRvd3MKICAgCjIwMDItMDQtMjYgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIGZpeCBPSURfTEVOR1RIIGRlZmluaXRpb25zCiAgIAoyMDAyLTA0LTI2IDEwOjUzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsCiAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGZpeCAtLXdpdGgtcGVybC1tb2R1bGVzIGluIG1ha2VmaWxlcy4gIE1ha2UgZXZlcnl0aGluZyB1c2UKICAgbmV0LXNubXAtY29uZmlnLCAuLi4KICAgCjIwMDItMDQtMjYgMTA6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBSRUFETUUsIFNOTVAucG06CgogICAtIENsZWFudXAuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBDaGFuZ2UgZG9jdW1lbnRhdGlvbiByZWZlcmVuY2VzIGZvciB1Y2Qtc25tcAogICAtIENoYW5nZSBjb250YWN0IGxvY2F0aW9uIHRvIG5ldC1zbm1wLXVzZXJzIChwZXIgSm9lJ3MgYWdyZWVtZW50KQogICAKMjAwMi0wNC0yNiAxMDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogTUFOSUZFU1QsIE1ha2VmaWxlLlBMLCBSRUFETUUsIAoJZGVmYXVsdF9zdG9yZS5wbSwgdGVzdC5wbDoKCiAgIC0gY2xlYW51cC4KICAgLSBVc2UgbmV0LXNubXAtY29uZmlnIHRvIGZpbmQgbGlicmFyeSwgZXRjLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gYSBmZXcgbW9yZSB0ZXN0cyBhZGRlZAogICAtIHVzZSBjb3JyZWN0IGxpYnJhcmllcwogICAtIGFkZCBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTA0LTI2IDA0OjIyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEV4dHJhY3RpbmcgdGhlIHZlcnNpb24gZnJvbSAnc25tcGxpYi9zbm1wX3ZlcnNpb24uYycgbmVlZHMgdG8gdGFrZSBhY2NvdW50CiAgIG9mIGJsYW5rIHNwYWNlLiAgUmVwb3J0ZWQgYnkgU3RlZmFuIFJhZG1hbiAoQnVnICM1NDczNzkpCiAgIAoyMDAyLTA0LTI2IDA0OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOCksIG1lbW9yeS5jCjoKCiAgIEhhbmRsZSBtZW1vcnkgdmFsdWVzID4gMzJiaXQgKGxhdGNoaW5nIGF0IDJeMzItMSkKICAgUGF0Y2ggIzU0ODY2MyBmcm9tIFJvYiBNeWVycwogICAKMjAwMi0wNC0yNiAwMzo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgJ0ludmFsaWQgb3B0aW9uJyBtZXNzYWdlLCBzaW5jZSB0aGlzIGlzIHR5cGljYWxseQogICByZXBvcnRlZCBieSBnZXRvcHQoKS4gIChTdWdnZXN0ZWQgYnkgQW5kcmV3IFJ1Y2tlciBKb25lcyAtIHBhdGNoICM1NDg3NDggKQogICAKMjAwMi0wNC0yNiAwMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEFkZCAndicgdG8gdGhlIGxpc3Qgb2YgdmFsaWQgb3B0aW9ucyAocGF0Y2ggIzU0ODc0OCkKICAgVGhhbmtzIHRvIEFuZHJldyBSdWNrZXIgSm9uZXMuCiAgIAoyMDAyLTA0LTI2IDAzOjM2ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBpbXByb3ZlZCBIUC1VWCAxMSBwYXRjaAogICAoIzUzMDcyNCkgdG8gdGhlIG1haW4gdjUgbGluZSwgYXMgd2VsbCBhcyB0aGUgdjQtMiBicmFuY2guCiAgIFRoZSBjb2RlIG5vdyBjb21waWxlcyBjbGVhbmx5IHVuZGVyIEhQLVVYIDExIHVzaW5nIGdjYy4KICAgCjIwMDItMDQtMjUgMDc6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBQYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZyB0byBmaXggcG9zc2libGUgdmFyaWFibGUgbmFtZSBjbGFzaAogICAKMjAwMi0wNC0yNCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBoYW5kbGUgY2FsbGJhY2tzIHNlbmRpbmcgbmV3IG5vdGlmaWNhdGlvbnMgKHdoaWxlIHByb2Nlc3Npbmcgbm90aWZpY2F0aW9ucykKICAgCjIwMDItMDQtMjQgMjE6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICBoZWFkZXIgZm9yIG5ldyBmdWNudGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0cwogICAKMjAwMi0wNC0yNCAyMTozNCAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBuZXcgZnVuY3Rpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdCB2YWx1ZXMKICAgCjIwMDItMDQtMjQgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgL3Byb2Mvc3RhdCBjYW4gYmUgbGFyZ2VyIHRoYW4gMTAyNAogICAKMjAwMi0wNC0yNCAwNjoxOSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1pc3NpbmcgJ21kNS5oJyBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDQtMjMgMDk6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSBsYXN0IG9mIHRoZSAjd2FybmluZ3MsIGFkZCB4eHgtcmtzIGlmIG5lY2Vzc2FyeQogICAKMjAwMi0wNC0yMyAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTIyIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUU6CgogICB1cGRhdGUgVVJMIHRvIHVzZSBmcmVlbm1wLmNvbSBtaXJyb3IgKHVubGVzcyBzb21lb25lIGtub3dzIGEgYmV0dGVyIHBsYWNlPykKICAgCjIwMDItMDQtMjIgMTQ6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYXBwbHkgZG9jdW1lbnRhdGluIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnZXIgPEF4ZWwuS2l0dGVuYmVyZ2VyQG1heHhpby5jb20+CiAgIAoyMDAyLTA0LTIyIDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlIGV4dHJhIEBlbmRAIChzdXJlIHdvdWxkIGJlIG5pY2UgaWYgbWliMmMgd291bGQgY2hlY2sgZm9yIHVuYmFsYW5jZWQKICAgQGVuZEBzKQogICAKMjAwMi0wNC0yMiAwOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICB1cGRhdGUgZnVuY3Rpb24gbmFtZXMgdG8gbWF0Y2ggaGVhZGVyIChubyBtaXhlZCBjYXNlKQogICAKMjAwMi0wNC0yMiAwODoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCBidWcgIzU0NzExMDogcHJvcGVybHkgc3BlbGwgZGVmaW5lCiAgIAoyMDAyLTA0LTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBhZGQgc3RhdGljIHRvIGEgcmV0dXJuZWQgdmFyaWFibGUKICAgCjIwMDItMDQtMjEgMTY6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMKICAgCjIwMDItMDQtMjEgMTE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgNS4wLnByZTMgLT4gNS4wOyAoSSdtIHN1cmUgdGhlcmUgYXJlIG90aGVyIHBsYWNlcyB0aGlzIG5lZWRzIHRvIGNoYW5nZSwKICAgYnV0IEkgd2FudGVkIHRvIGdldCB0aGUgZmlyc3QgcG9zdCA1LjAgY2hlY2tpbi4uLjotKQogICAKMjAwMi0wNC0yMCAwMDozNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMCApCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMiAtPiBWNS4wCgoyMDAyLTA0LTIwIDAwOjI3ICBoYXJkYWtlcgoKICAgKiBldmVyeXRoaW5nOgoKICAgc2V0IGFsbCBDVlMvUkNTIHJldmlzaW9uIGNvbnRyb2wgbnVtYmVycyB0byA1LjAKCQoyMDAyLTA0LTIwIDAwOjA3ICBoYXJkYWtlcgoKICAgKiBldmVyeXRoaW5nOgoJCiAgIFdoaXRlIHNwYWNlLCBvaCBnbG9yaW91cyB3aGl0ZSBzcGFjZS4KICAgSG93IGdyZWF0IG91ciB0aG91Z2g/CiAgIFRoZSBjb2RlIGlzIGZpbmUuCiAgIFdlIGFncmVlIG9uIGZ1bmN0aW9uYWxpdHkgZWFzaWx5LgogICBXaGF0IHJlYWxseSB0cm91YmxlcyB1cz8KICAgU29tZXRoaW5nIHdlIGNhbid0IHNlZS4KICAgU29tZXRoaW5nIGJldHdlZW4gdGhlIGNvZGUuCiAgIFdlIGJvdyBkb3duIHRvIHlvdXIgbWFnbmlmaWNlbmNlLAogICBGb3IgeW91IGFyZSBldmVyeXdoZXJlLAogICBCZXR3ZWVuIGV2ZXJ5dGhpbmcuCiAgIFByZXR0eSBub3RoaW5nbmVzcyB5b3UgYXJlLgoJCjIwMDItMDQtMjAgMDA6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHR1cm4gb24gdWNkIGNvbXBhdCBieSBkZWZhdWx0LgogICAKMjAwMi0wNC0yMCAwMDowMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGxhc3QgdXBkYXRlcwogICAKMjAwMi0wNC0xOSAyMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIHJlbW92ZSB0ZXN0ZGVsYXllZAogICAKMjAwMi0wNC0xOSAyMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogLmN2c2lnbm9yZSAsIC5jdnNpZ25vcmU6CgogICBjdnMgaWdub3JlIGZpbGUKICAgCjIwMDItMDQtMTkgMjM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgZG9uJ3QgZGllIGlmIHBlcmwgZG9lc24ndCBpbml0LgogICAKMjAwMi0wNC0xOSAyMzowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FICwgUkVBRE1FICwgU05NUC5wbToKCiAgIGNoYW5nZSB3YXJuaW5nLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbXVsdGlwbGUgaW5zZXJ0cyBpbnRvIHRoZSBkZWxlZ2F0ZWQgY2hhaW4gZG9uJ3QKICAgaGFwcGVuIChyZWFkOiB0aGV5IHNob3VsZG4ndCBhbnl3YXksIGJ1dC4uLi4uKS4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdHlwZWRlZiB1cGRhdGUKICAgCjIwMDItMDQtMTkgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBGaXggdGhlIGNhbGxiYWNrIGJ1aWxkIGhvb2sgdG8gdHVybiBvZmYgdGhlIGV4cGVjdCByZXNwb25zZSBmbGFnIHdoZW4KICAgbm90IGFwcHJvcHJpYXRlLgogICAKMjAwMi0wNC0xOSAxOTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIHNwZWxsaW5nIG1pc3RlYWs7IHJlbW92ZSBjYXBpdGFsIGxldHRlcnMgaW4gZnVuY3Rpb24gbmFtZXMKICAgCjIwMDItMDQtMTkgMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICB1cGRhdGUgZm9yIGZ1bmN0aW9uIG5hbWUgY2hhbmdlZCBpbiBvaWRfYXJyYXkuaAogICAKMjAwMi0wNC0xOSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBtYWtlIHRoZSBwZXJsSW5pdEZpbGUgYW5kIGRpc2FibGVQZXJsIHRva2VucyByZWdpc3RlciBhcyBwcmVtaWIgc3VjaAogICB0aGF0IHdoZW4gcGFzc2VkIGFzIGEgLS1GTEFHIGl0J2xsIGFjdHVhbGx5IGRvIHRoZSByaWdodCB0aGluZyBhbmQKICAgZGlzYWJsZSB0aGUgbGF0ZXIgInBlcmwiIHRva2VuIGhhbmRsZXJzLgogICAKMjAwMi0wNC0xOSAxNzoyOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBtYW4vTWFrZWZpbGUuaW4gLCBtYW4vbmV0c25tcF9hZ2VudC4zCiAgICwgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMgLCBtYW4vbmV0c25tcF9kZWJ1Zy4zICwKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMgLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKICAgLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zICwKICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zICwgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwogICAsIG1hbi9uZXRzbm1wX29sZF9hcGkuMyAsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zICwKICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMgLCBtYW4vbmV0c25tcF90YWJsZS4zICwKICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMyAsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMyAsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMyAsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMKICAgLCBtYW4vbmV0c25tcF90b2RvLjM6CgogICBkb2N1bWVudGF0aW9uLiAgQ2FuJ3QgZ2V0IGVub3VnaC4KICAgICAtIG1ha2UgZG9jcyBub3cgaW5zdGFsbHMgbWFuIHBhZ2VzIGludG8gdGhlIG1hbiBkaXIsIHdoaWNoIGFyZSB0aGVuIGluc3RhbGxlZC4KICAgCjIwMDItMDQtMTkgMTc6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0ICwgVDEyMXByb3h5c2V0OgoKICAgQ29ycmVjdCBmb3IgbmV3IFNUUklORyBwcmVmaXguCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgS2F0c3VoaXNhIEFCRQogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ueHMgLCBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBmaXggaGVhZGVyIGZpbGVzIGZvciBuZXcgcGF0aHMuCiAgIAoyMDAyLTA0LTE5IDE3OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBtYW4vc25tcGQuY29uZi41LmRlZiAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEFwcGx5IHBhdGNoICM1MzI1NTU6IGlwdjYgY29tMnNlYyBzdXBwb3J0LCB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDQtMTkgMTY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggc3lzVXBUaW1lIChhbmQgcmVsYXRlZCBmdW5jdGlvbnMpIHRvIGhhbmRsZSBtdWNoIGxhcmdlciB1cFRpbWUKICAgdmFsdWVzIChpZSwgZml4IHNpZ25lZCBpbnRlZ2VyIHdyYXBwaW5nKS4KICAgCjIwMDItMDQtMTkgMTE6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZW1iZWRkZWQgcGVybCBzdXBwb3J0LgogICAKMjAwMi0wNC0xOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgYWdlbnQvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9zbm1wX3BlcmwuYyAsIGFnZW50L3NubXBfcGVybC5wbCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBBZGQgc29tZSBuZXcgc25tcGQuY29uZiB0b2tlbnMgZm9yIGNvbnRyb2xsaW5nIHBlcmwgYmV0dGVyLgogICBGaXggZW1iZWRkZWQgcGVybCBzdXBwb3J0IHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAKMjAwMi0wNC0xOSAxMTozMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogLmN2c2lnbm9yZSAsIE1ha2VmaWxlLlBMICwKICAgZGVmYXVsdF9zdG9yZS5wbSAsIGRlZmF1bHRfc3RvcmUueHM6CgogICBBZGRlZCBtaXNzaW5nIGFnZW50IGRlZmF1bHRfc3RvcmUgc3R1ZmYuICAodGhleSBleGlzdGVkIG9uIG15IG1hY2hpbmUsCiAgIEkgZG9uJ3Qga25vdyB3aHkgZXZlcnlvbmUgZWxzZSB3YXMgaGF2aW5nIHByb2JsZW1zKQogICAKMjAwMi0wNC0xOSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoaW5ncyB0aGF0IHNob3VsZCBuZXZlciBldmVyIGhhcHBlbgogICAKMjAwMi0wNC0xOSAwMzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICA8U2lnaD4gQSBsaXR0bGUgbGVhcm5pbmcgaXMgYSBkYW5nZXJvdXMgdGhpbmcuCiAgIEFwcGx5IHRoZSByZXN0IG9mIHRoZSBwYXRjaCBmcm9tIEF4ZWwgLSBzb3JyeS4KICAgCjIwMDItMDQtMTkgMDE6NDkgIGR0czEyCgogICAqIE1ha2VmaWxlLmluICwgZG94eWdlbi5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgZG9jdW1lbmF0aW9uIHdoZW4gc3JjZGlyICE9IGNvbmZpZ2RpcgogICAoUGF0Y2ggc3VwcGxpZWQgYnkgQXhlbCBLaXR0ZW5iZXJnZXIpCiAgIAoyMDAyLTA0LTE4IDE3OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGZpeCBzbm1wSVBYRG9tYWluIChhZ2FpbikKICAgCjIwMDItMDQtMTggMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IG9ubHkgb3BlbiBzdWJhZ2VudCBjb25uZWN0aW9ucyBvbmNlIGF0IHN0YXJ0dXAKICAgCjIwMDItMDQtMTggMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogZm9yIGRvd24gc3ViYWdlbnQgY2FzZXMsIG1hcmsgcmVnaXN0cmF0aW9ucyBhcyBkZXRhY2hlZAogICAKMjAwMi0wNC0xOCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVmaW5lIGEgbWF4aW11bSBwYWNrZXQgc2l6ZSB3ZSBjYW4gYWNjZXB0IHRvIHByb3RlY3QgY2VydGFpbiBlcnJvcgogICBjb25kaXRpb25zICgtMSBhZnRlciBjb252ZXJzaW9uIGlzIG5vdyB0b28gbGFyZ2UpLgogICAKMjAwMi0wNC0xOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIGNoYW5nZSB0aGUgZW50ZXJwcmlzZSBPSURzIGluIHRoZSBwcm9wZXIgcGxhY2UgKG5ldC1zbm1wLWNvbmZpZy5oLmluCiAgIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZSkuCiAgIAoyMDAyLTA0LTE4IDEzOjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBuZXQtc25tcC1jb25maWcuaW46CgogICAtIEFkZCB0d28gbmV3IG9wdGlvbnMgdG8gbmV0LXNubXAtY29uZmlnIGFzIHJlcXVlc3RlZCBvbiB0aGUgSVJDIGNoYW5uZWwuCiAgICAgLS1jb25maWd1cmUtb3B0aW9ucwogICAgIC0tc25tcGQtbW9kdWxlLWxpc3QKICAgCjIwMDItMDQtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wNC0xOCAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ2FsY3VsYXRlIHRoZSBsZW5ndGggb2Ygc3VwcGxpZWQgZW50ZXJwcmlzZSBPSURzIGNvcnJlY3RseQogICAoYW5kIHVzZSBhIG1vcmUgbWVhbmluZ2Z1bCBvdXRwdXQgbWVzc2FnZSkKICAgCiAgIFNoYW1lIHRoZXNlIHNldHRpbmdzIGFyZW4ndCBjYWNoZWQgZm9yIGxhdGVyIHJlLXVzZS4uLi4KICAgCjIwMDItMDQtMTggMDc6MTggIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBOb3RpZnkgb24gYWdlbnQgcmVjb25maWd1cmF0aW9uLgogICAKMjAwMi0wNC0xOCAwNzoxNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgbm90aWZpY2F0aW9ucyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xOCAwNzowOCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgRml4IHRoZSB0YWJsZS1vZi1jb250ZW50cyBzZXF1ZW5jZSBmb3IgdGhlIG5zTW9kdWxlVGFibGUsIGFkZCBub3RpZmljYXRpb24KICAgZGVmaW5pdGlvbnMgZm9yIHRoZSBhZ2VudCwgYW5kIGRlZmluZSBncm91cHMgZm9yIGV2ZXJ5dGhpbmcuCiAgIAoyMDAyLTA0LTE4IDAyOjUyICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQnJpbmcgaW50ZWdlciBhbmQgc3RyaW5nIG91dHB1dCBmb3JtYXRzIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciB0eXBlcwogICBieSBwcmludGluZyBhIHR5cGUgdG9rZW4gYmVmb3JlIHRoZSB2YWx1ZSAodW5sZXNzIHN1cHJlc3NlZCBieSAncXVpY2sgcHJpbnQnKQogICBUaGFua3MgdG8gRXJpayBmb3IgdGhlIHBhdGNoCiAgIAoyMDAyLTA0LTE4IDAxOjQ2ICBkdHMxMgoKICAgKiBGQVE6CgogICBSZXBsYWNlIHRoZSBkbG1vZCAnV0hFUkUnIHdpdGggc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bC4uLi4KICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQWERvbWFpbi5jOgoKICAgZGVmaW5lIHRoZSBpcHhEb21haW4gdmFyaWFibGVzCiAgIAoyMDAyLTA0LTE3IDEyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBFcnJvciBjb25kaXRpb24gdGVzdHMKICAgCjIwMDItMDQtMTcgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBPaCwganVzdCBhIHNtYWxsIHBhdGNoIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gbWFrZSBtb2R1bGVzIHJlcXVlc3QKICAgdGhhdCBhbGwgcXVlcmllcyB0byBhIHNldCBvZiByZWdpc3RyYXRpb25zIGdldCBwYXNzZWQgYWxsIGF0IG9uY2UKICAgKHdoaWNoIGFwcGFyZW50bHkgaXMgaW1wb3J0YW50IGZvciwgb2gsIGFnZW50eCkKICAgCjIwMDItMDQtMTcgMTA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1pc2Mgbm9uLWNoYW5nZSBjbGVhbiB1cHMKICAgCjIwMDItMDQtMTcgMTA6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbmFtZSBzdHJ1Y3R1cmVzIGJlZ2lubmluZyB3aXRoIF8gdG8gZW5kaW5nIHdpdGggX3MKICAgCjIwMDItMDQtMTcgMTA6MDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBzZXNzaW9uIGNyZWF0b3IgdG8gdXNlIGF0IHdpbGwgKGRpZmZlcmVudAogICBmcm9tIHRoZSBjYWxsYmFjayBtYWdpYykuCiAgIAoyMDAyLTA0LTE3IDA5OjAwICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBzeXNPSURzIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE3IDA4OjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UuCiAgIAoyMDAyLTA0LTE3IDA4OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlCiAgIAoyMDAyLTA0LTE3IDA2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMgLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBtb3ZlIG5zTW9kdWxlVGFibGUgaW50byBEYXZlJ3Mgc3RydWN0dXJlLgogICAKMjAwMi0wNC0xNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIHNubXBUQ1BJUHY2RG9tYWluLmggLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgZml4IGRlY2xhcmF0aW9ucyBvZiBEb21haW4gb2JqZWN0cyAoY29uc3QgLT4gZXh0ZXJuKQogICAKMjAwMi0wNC0xNyAwNjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL3NubXBjb25mLWNvbmZpZyAsCiAgIHNubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnICwgc25tcHRyYXBkLWRhdGEvc25tcGNvbmYtY29uZmlnOgoKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBkYXRhCiAgIAoyMDAyLTA0LTE3IDAzOjAxICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBCcmluZyB0aGUgcmVwb3J0ZWQgZGVmYXVsdCBzZXR0aW5ncyBmb3Igc3lzb2lkICYgbm90aWZpY2F0aW9uIE9JRHMKICAgYmFjayBpbnRvIGxpbmUgd2l0aCB3aGF0IHdlIGFjdHVhbGx5IHVzZSAoaS5lLiB0aGUgdWNkYXZpcyBPSURzKS4KICAgCiAgIFFuOiAgRG8gd2Ugd2FudCB0byBzd2l0Y2ggdG8gdXNpbmcgdGhlIG5ldC1zbm1wIGVxdWl2YWxlbnQgc3lzT0lEcz8KICAgUW46ICBXaGF0IGFib3V0IGRlZmluaW5nIG5ldC1zbm1wIG5vdGlmaWNhdGlvbnM/CiAgIAoyMDAyLTA0LTE3IDAyOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBGaXggLS13aXRoLWVudGVycHJpc2Utc3lzb2lkIGFuZCAtLXdpdGgtZW50ZXJwcmlzZS1ub3RpZmljYXRpb24tb2lkLAogICBhbmQgdHJ5IHRvIGNsYXJpZnkgdGhhdCB0aGVzZSBhcmUgT0lEcywgd2hpbGUgLS13aXRoLWVudGVycHJpc2Utb2lkCiAgIGlzIGFjdHVhbGx5IGp1c3QgdGhlIGVudGVycHJpc2UgKm51bWJlcioKICAgCiAgIFFuOiAgc2hvdWxkIHdlIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiB0byByZWZsZWN0IHRoaXM/CiAgIAoyMDAyLTA0LTE2IDEwOjA0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4gLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jICwgRkFRICwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTMgKQogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgZGVsZXRlIHRvcCBkaXNjbGFpbWVycwogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pc2MgdXBkYXRlcwogICAKMjAwMi0wNC0xNiAxMDowMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtaXNjIGJ1ZyBmaXhlcwogICAKMjAwMi0wNC0xNiAwODoxOSAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGFuIGVudHJ5IGNvbmNlcm5pbmcgdGhlICdsaWJjcnlwdG8nIFJQTSBkZXBlbmRlbmN5LgogICAKMjAwMi0wNC0xNiAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTA0LTE2IDA3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgYSBubyBsb25nZXIgYXBwcm9wcmlhdGUgdG9kbyBjb21tZW50CiAgIAoyMDAyLTA0LTE2IDA3OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBJIGd1ZXNzIEkgZm9yZ290IHRvIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNC0xNSAwODo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBzbm1wY29uZiAsIE1ha2VmaWxlLmluOgoKICAgbW92ZSBzbm1wY29uZiBkYXRhIGRpcmVjdG9yaWVzIHRvIGRpZmZlcmVudCBuYW1lcyB0byBhdm9pZCBjb25mdXNpb24KICAgCjIwMDItMDQtMTUgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9hdXRob3B0cyAsCiAgIHNubXAtZGF0YS9kZWJ1Z2dpbmcgLCBzbm1wLWRhdGEvbWlicyAsIHNubXAtZGF0YS9vdXRwdXQKICAgLCBzbm1wZC1kYXRhL2FjbCAsIHNubXBkLWRhdGEvYmFzaWNfc2V0dXAgLAogICBzbm1wZC1kYXRhL2V4dGVuZGluZyAsIHNubXBkLWRhdGEvbW9uaXRvciAsCiAgIHNubXBkLWRhdGEvb3BlcmF0aW9uICwgc25tcGQtZGF0YS9zeXN0ZW0gLAogICBzbm1wZC1kYXRhL3RyYXBzaW5rcyAsIHNubXB0cmFwZC1kYXRhL2Zvcm1hdHRpbmcgLAogICBzbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlOgoKICAgZGF0YSBmaWxlIG1vdmluZwogICAKMjAwMi0wNC0xMiAxNDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBNYXNzaXZlIGNsZWFudXAgZWZmb3J0LiAgSXQgc2hvdWxkIG5vdyByZXNwZWN0IG9yZGVyaW5nIGluIHRoZQogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGZpbGVzIGFzIHdlbGwuCiAgIAoyMDAyLTA0LTEyIDEzOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgZml4IGZvciBvdmVyemVhbG91cyBwZXJsIHNjcmlwdAogICAKMjAwMi0wNC0xMiAwOTo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBjb3B5IHVjZCBwZXJzaXNlbnQgZGlyZWN0b3J5IHRvIG5ldC1zbm1wIChwcm9tcHRzLCBmbGFncyBhbmQgb3RoZXIgZnVuKQogICAKMjAwMi0wNC0xMiAwNzo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHRyYXB0b2VtYWlsCiAgIAoyMDAyLTA0LTEyIDA3OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICByZW1vdmUgdHJhcG5vdGlmCiAgIAoyMDAyLTA0LTEyIDA3OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgcnNubXA6CgogICByZW1vdmUgcnNubXAsIHdoaWNoIGlzIHZlcnkgdmVyeSBvbGQgYW5kIG91dCBvZiBkYXRlCiAgIAoyMDAyLTA0LTEyIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlICwgTWFrZWZpbGUuaW4gLCBtaWIyYy4xLmRlZjoKCiAgIEEgbWFudWFsIHBhZ2UgZm9yIG1pYjJjIChoZWxwLCBJJ20gdHVybmluZyBpbnRvIERhdmUpCiAgIAoyMDAyLTA0LTEyIDA3OjI4ICBoYXJkYWtlcgoKICAgKiBkb3RnZGJpbml0OgoKICAgYSBnZGIgaW5pdGlhbGl6YXRpb24gZmlsZSB3aXRoIGhlbHBmdWwgZnVuY3Rpb25zCiAgIAoyMDAyLTA0LTEyIDAyOjQyICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEFkZCAnc25tcGNvbmYnIGFuZCAnbWliMmMnIHRvIHRoZSBsaXN0IG9mIHNjcmlwdHMgdG8gaW5zdGFsbC4KICAgCiAgIEkndmUgbGVmdCAndHJhcHRvZW1haWwnIG9mZiB0aGlzIGxpc3QsIHNpbmNlIGl0IHNheXMgaXQncyBub3QgaW50ZW5kZWQKICAgYXMgYSBkaXJlY3RseSB1c2VyLWludm9rZWQgY29tbWFuZCwgc28gcHJvYmFibHkgb3VnaHQgbm90IHRvIGJlIGluc3RhbGxlZAogICBpbnRvIGEgYmluYXJ5IGRpcmVjdG9yeS4KICAgCjIwMDItMDQtMTIgMDI6NDEgIGR0czEyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgRml4IHRoZSBwYXRoIG9mIHNubXB3YWxrIHRvIGJlIHNvbWV0aGluZyBtb3JlIHBsYXVzaWJsZS4KICAgKEknbSBub3QgY29udmluY2VkIGFib3V0IHRoZSB2YWxpZGl0eSBvZiB0aGF0IGluaXRpYWwgJ3J0b3BtaWInIE9JRCBtaW5kISkKICAgCjIwMDItMDQtMTIgMDI6MzYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBGaXggdHlwbyBpbiByZWZlcmVuY2UgdG8gJ21pYjJjLml0ZXJhdGUuY29uZicKICAgCjIwMDItMDQtMTIgMDI6MzMgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1haW4gbGlicmFyeSBhcyAnbGlic25tcCcgaWYgY29uZmlndXJlZCB1c2luZyBVQ0QgY29tcGF0aWJpbGl0eS4KICAgVGhpcyBzaG91bGQgaGFuZGxlIHRoZSByZXF1aXJlbWVudHMgb2YgYXBwbGljYXRpb24gY29tcGF0aWJpbGl0eS4KICAgQWdlbnQgbGlicmFyeSBjb21wYXRpYmlsaXR5IGlzIGxpa2VseSB0byBwcm92ZSBhIGhhcmRlciBwcm9ibGVtCiAgIChzaW5jZSB0aGVyZSBhcmUgbm93IHRocmVlIGxpYnJhcmllcywgbm90IGp1c3QgdHdvLi4uKQogICAKMjAwMi0wNC0xMSAyMjoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIHNldCBTTk1QQ09ORlBBVEggaWZmIFtzaWNdIG5vdCBzZXQKICAgCjIwMDItMDQtMTEgMjI6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmV0dXJuIGZyb20gaW5pdE1pYiBiZWZvcmUgZG9pbmcgYW55dGhpbmcuCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICB0dXJuIG9mZiBjb21wbGllciB3YXJuaW5ncwogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCAic2hvdyBjb2x1bW5zIGZyb20gVEFCTEUiCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSBuZXcgZGVtbyBzY2FsYXI6IHRoZSBzbGVlcGVyLiAgKGRhaCBkYWggZGFoIGR1bW1tbW0pCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBpbmRlbnQuCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzLmggLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMKICAgLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmg6CgogICBBZGQgYSBkZWxheWVkIGluc3RhbmNlIGV4YW1wbGUsIHNob3dpbmcgaG93IHRvIHJldHVybiBtaWIgcmVxdWVzdAogICByZXN1bHRzIGxhdGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5LgogICAKMjAwMi0wNC0xMSAyMjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIHJlbW92ZSBsZWdhY3kgZXhhbXBsZS4KICAgCjIwMDItMDQtMTEgMjI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBjb21tZW50IGFib3V0IHBvc3NpYmx5IGZpeGluZyBpbmNsdXNpdmUgcmVxdWVzdHMgaW4gdGhlIGZ1dHVyZS4KICAgCjIwMDItMDQtMTEgMTc6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIGNoYW5nZSBtb2R1a2VzLT4gbW9kdWxlcwogICAKMjAwMi0wNC0xMSAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHR1cm4gb2ZmIGRlYnVnZ2luZyB3aGVuIGNhbGxpbmcgbG9nZ2luZyBjYWxsYmFja3MKICAgCjIwMDItMDQtMTAgMTI6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgZml4IHBlcmwgbW9kdWxlIGluIG1hbnkgbWFueSBwbGFjZXMuICBtb3N0IHRlc3RzIG5vdyBwYXNzLgogICAKMjAwMi0wNC0xMCAxMjo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIGZvcmNlIHNldHRpbmcgdG8gYSAiYm9ndXMiIFNOTVBDT05GUEFUSC4KICAgCjIwMDItMDQtMTAgMTI6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICBFeHBvcnRpbmcgZnVuY3Rpb25zIGdvb2QuICBJbnRlcm5hbGl6aW5nIGJhZC4KICAgCjIwMDItMDQtMTAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHNpZ2guCiAgIAoyMDAyLTA0LTEwIDA5OjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTA0LTEwIDA5OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gTWFrZSB0aGUgcGVybCBtb2R1bGUgY2FsbCBpbml0X3NubXAoKQogICAgIC0gdGhpcyBpcyBhIGZhaXJseSBtYWpvciBjaGFuZ2UsIGlzIGl0IG5vdyB3aWxsIHJlYWQgLmNvbmYgZmlsZXMuCiAgICAgLSBtYW55IHBlb3BsZSBoYXZlIGFza2VkIGZvciB0aGlzLgogICAtIG1pc2MgY2xlYW4gdXBzLgogICAKMjAwMi0wNC0xMCAwOToxOCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBEb24ndCByZWN1cnNlIGludG8gc3ViZGlyZWN0b3JpZXMgZm9yIHRoZSBjb25zaXR1ZW50IHN1YnRhcmdldHMgb2YgIm1ha2UgaW5zdGFsbCIKICAgCjIwMDItMDQtMTAgMDk6MDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBhIGZldyB0aGluZ3MsIHNlcGFyYXRlZCBwZXJsIHN0dWZmIGludG8gaXQncyBvd24gc2VjdGlvbi4KICAgCjIwMDItMDQtMTAgMDg6NDYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSBoZWxwIG1lc3NhZ2UgZm9yIHRoZSBVQ0QgY29tcGF0YWJpbGl0eSBvcHRpb24gaW50byBsaW5lIHdpdGgKICAgd2hhdCdzIGFjdHVhbGx5IHJlY29nbmlzZWQuCiAgIAoyMDAyLTA0LTEwIDA3OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjaGFuZ2UgbGlidG9vbCB2ZXJzaW9uaW5nIHRvIHRoZWlyIHJlY29tbWVuZGVkIG1ldGhvZCBvZiBkb2luZyB0aGluZ3MKICAgKHdoaWNoIEkgaGF0ZSwgYnV0IGlzIHN0aWxsIGJldHRlciB0aGFuIHdoYXQgd2Ugd2VyZSBkb2luZywgSSBndWVzcykKICAgCjIwMDItMDQtMTAgMDc6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgQnJpbmcgdXNlIG9mIEJVSUxUU1VCRElSIHdpdGhpbiAnaW5zdGFsbGxvY2FsaGVhZGVycycgaW50byBsaW5lCiAgIHdpdGggdGhlIHByZWNlZGluZyBjb21tZW50LCBhbmQgYWN0dWFsIHVzYWdlLgogICAoaS5lLiBJTlNUQUxMQlVJTFRTVUJESVIgcmF0aGVyIHRoYW4gSU5DTFVERUJVSUxUU1VCRElSKQogICAKMjAwMi0wNC0xMCAwNTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR5cG8gaW4gc2VjdXJpdHktaW5jbHVkZSBoZWFkZXIgZGVzdGluYXRpb24gZGlyZWN0b3J5IHZhcmlhYmxlCiAgIAoyMDAyLTA0LTEwIDA1OjU1ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyBtaWIyYyBjb25mIGZpbGVzLgogICAKMjAwMi0wNC0xMCAwMTo1NSAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDRzbm1wdjFub3N1Y2ggLCBUMDE5c25tcHYyY25vc3VjaDoKCiAgIFR3byBuZXcgdGVzdHMgdG8gY2hlY2sgaGFuZGxpbmcgb2YgR0VUaW5nIG5vbi1leGlzdGFudCBpbnN0YW5jZXMKICAgCjIwMDItMDQtMTAgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEEgZml4IGZvciBTTk1QdjEgZXJyb3JzIHRoYXQgZG9lc24ndCBlbmQgdXAgYnJlYWtpbmcgQWdlbnRYIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMi0wNC0wOSAxMDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUGF0Y2ggZnJvbSBEYXZlIHRvIGZpeCB2MSBlcnJvciByZXN1bHRzLgogICAKMjAwMi0wNC0wOCAyMTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaXggaW5jb3JyZWN0IGxlbmd0aCByZXR1cm4gdmFsdWUKICAgCjIwMDItMDQtMDggMTg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgLCB2YWNtX3ZhcnMuaDoKCiAgIGRvbid0IGFsbG93IG5vLWNvbmZpZ3VyYXRpb24gYWNjZXNzIGFueW1vcmUuCiAgIAoyMDAyLTA0LTA4IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgbW9yZSB1bmNvbnN0IGNvcnJlY3RuZXNzCiAgIAoyMDAyLTA0LTA4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHNpemVfdCBleHRlcm5zIGZvciBleHBvcnRlZCBvaWRzCiAgIAoyMDAyLTA0LTA4IDE3OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGVtcG9yYXJ5IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIHRoYXQgYWNjaWRlbnRhbGx5IGJlY2FtZSBwZXJtYW5lbnQuCiAgIAoyMDAyLTA0LTA4IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jICwgc25tcF90cmFuc3BvcnQuYzoKCiAgIGRlZmluZSBsZW5ndGggc2l6ZV90J3MgZm9yIG9pZCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIHN1cHBvcnQgIm51bGwiIHR5cGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGluaXRpYWxpemUgbm90aWZpY2F0aW9uIGxvZyBtaWIgc3VwcG9ydCBiZWZvcmUgLUggdXNhZ2UuCiAgIAoyMDAyLTA0LTA4IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZml4IGEgZmV3IHRoaW5ncyBhbmQgbWFrZSBzdWJoYW5kbGVycyBub3QgYWJsZSB0byB0ZWxsIHRoZXJlIHdlcmUgbW9yZSByZXF1ZXN0cy4KICAgCjIwMDItMDQtMDggMTY6NDMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICBBIGNvLXdvcmtlciBwb2ludGVkIG91dCB0aGF0IHRoZSBJTlNUQUxMIHNjcmlwdCBzdGlsbCBzYWlkIHRvIGVkaXQgY29uZmlnLmgKICAgCjIwMDItMDQtMDggMTU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICB1bnN0YXRpYy1pemUgYSBmZXcgb2lkcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gZXh0ZXJuYWwKICAgCjIwMDItMDQtMDggMTQ6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwKICAgc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jICwgc25tcF9hcGkuYyAsIHNubXBfdHJhbnNwb3J0LmMKICAgLCBzbm1wdXNtLmM6CgogICBDaGFuZ2UgY29uc3Qgb2lkIGRlY2xhcmF0aW9ucyBpbnRvIHN0YXRpYyBvbmVzIHNpbmNlIHNoYXJlZCBsaWJyYXJpZXMKICAgaGF2ZSBhIHByb2JsZW0gd2l0aCBpbml0aWFsaXppbmcgdGhlbSBvbiBsaW51eCBzeXN0ZW1zIGF0IGxlYXN0LgogICAKMjAwMi0wNC0wOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5pbWFsIGRvY3VtZW50YXRpb24gZm9yIGRlYnVnZ2luZyBhbmQgdGhlIGluamVjdEhhbmRsZXIgdG9rZW4KICAgCjIwMDItMDQtMDUgMTQ6MzIgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXB0cmFwZC44LmRlZiAsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE5PVElGSUNBVElPTi1MT0ctTUlCIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGNvbnRleHQgbmFtZSBzdXBwb3J0IGluIHByb3h5IGNvZGUuCiAgIAoyMDAyLTA0LTA1IDEzOjUxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBkaXNtYW4gZXZlbnQgbWliIHN1cHBvcnQgZm9yIHNlbmRpbmcgdHJhcHMgdmlhIG1vbml0b3JlZCBPSURzLgogICAKMjAwMi0wNC0wNSAxMDoxMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBwdXQgdHJhcCBjb25maWcgaW50byBpdHMgb3duIHNlY3Rpb24uCiAgIGRvY3VtZW50IHRoZSAib3ZlcnJpZGUiIHRva2VuLgogICAKMjAwMi0wNC0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIGNoYW5nZSBkZWZhdWx0IGNvbnRleHQgdG8gYW4gZW1wdHkgc3RyaW5nCiAgIAoyMDAyLTA0LTA0IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy41KSwgYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRlYWwgd2l0aCBmZCB1bnJlZ2lzdHJhdGlvbnMgcHJvcGVybHkuCiAgIAoyMDAyLTA0LTAzIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmgKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIE1ha2UgYW4gZXhhbXBsZSBkYXRhc2V0IHRhYmxlIHRvIGhvbGQgYW5kIHN0b3JlIGRhdGEgaW4gKGFkbWl0dGVkbHkKICAgdXNlbGVzcyBkYXRhIGZyb20gYSBuZXR3b3JrIG1hbmFnZW1lbnQgcG9pbnQgb2YgdmlldywgYnV0IGl0J3MgYW4gZXhhbXBsZSkuCiAgIAoyMDAyLTA0LTAyIDIyOjEyICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIGZyb20gc3ViZGlyIGJ1aWxkIGNhc2UuCiAgIAoyMDAyLTA0LTAyIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMgZnJvbSBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oIGFuZCBtaWJfbW9kdWxlX2luY2x1ZGVzLmggZnJvbSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbmV0LXNubXAtY29uZmlnLmggZnJvbSB0aGUgYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBjcmVhdGUgc29tZSBpbnN0YWxsIGZyb20gYnVpbHQgaGVhZGVyIHJ1bGVzLgogICAKMjAwMi0wNC0wMiAxNzoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiAsIG1pYjJjLmNvbmY6CgogICByZW1vdmUgZGVsZXRlZCBhcnJheS1hdXRvIGZyb20gLmNvbmYgaW5zdGFsbC9yZWZlcmVuY2UgbGlzdHMKICAgCjIwMDItMDQtMDIgMTU6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCAsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICB1Y2Qtc25tcC9yZWdpc3RyeS5oOgoKICAgcmVtb3ZlIHRoZSByZWdpc3RyeSBtb2R1bGUsIGFzIGl0J3Mgb2Jzb2xldGUgZHVlIHRvIGNvbnRleHRzLiAgVXNlIHRoZSBuc01vZHVsZVRhYmxlIGluc3RlYWQKICAgCjIwMDItMDQtMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAoVjQtMi1wYXRjaGVzLjcpLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaDoKCiAgIEFwcGx5IHBhdGNoICM1MjQ0MjQgZm9yIGRhcndpbiBmaXhlcyBmb3IgdWNkLXNubXAvZGlzay5jCiAgIAoyMDAyLTA0LTAyIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjQtMi1wYXRjaGVzLjgpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXRjaCA1Mjc1NzMgdG8gZml4IDY0IGJpdCB0eXBlcyBvbiBzb2xhcmlzCiAgIAoyMDAyLTA0LTAyIDA3OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBjaGVjayBjaGFyIGZvciBOVUxMIGJlZm9yZSBzZXR0aW5nIHRvOgogICAKMjAwMi0wNC0wMSAyMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy45KSwgY211X2NvbXBhdC5jICwKICAgc25tcF9hcGkuYzoKCiAgIExldCBpbml0X3NubXAgcHJvdGVjdCBpdHNlbGYuCiAgIAoyMDAyLTAzLTI5IDE1OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzICYgdXBkYXRlcwogICAKMjAwMi0wMy0yOSAxMDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhZGQgY29tbWVudAogICAKMjAwMi0wMy0yOSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBhIGFsbG93X2NyZWF0aW9uIGRlZmluaXRpb24uCiAgIAoyMDAyLTAzLTI5IDA4OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2UgbmV0LXNubXAtY29uZmlnIGV4ZWN1dGFibGUgYWZ0ZXIgaXQncyBidWlsdAogICAKMjAwMi0wMy0yOSAwODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzZXRTZXJpYWxOby5jICwgc2V0U2VyaWFsTm8uaDoKCiAgIG9wcHMuICBmb3Jnb3QgdG8gY2hlY2sgdGhlIHNldFNlcmlhbCBjb2RlIGluCiAgIAoyMDAyLTAzLTI4IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAoVjQtMi1wYXRjaGVzLjQpLCBwYXNzLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIGZvciBwYXNzIG1vZHVsZXMuICBQYXRjaCAjNDgyMDA1CiAgIAoyMDAyLTAzLTI4IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjIpLAogICBpbnRlcmZhY2VzLmM6CgogICBwYXRjaCAjNTE3MzQwOiBmcmVlYnNkNSBzdXBwb3J0CiAgIAoyMDAyLTAzLTI4IDIzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jIChWNC0yLXBhdGNoZXMuNCksIGhyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IGZyZWVic2Q1IHBhdGNoICM1MTczMzMKICAgCjIwMDItMDMtMjggMjM6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zeXN0ZW0uYyAsIG1pYklJL2ludGVyZmFjZXMuYwogICAsIG1pYklJL2lwQWRkci5jOgoKICAgQXBwbHkgbmV0YnNkIGZpeCBwYXRjaCAjNTI5NzMzCiAgIAoyMDAyLTAzLTI4IDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wX2FwaS5jICwKICAgc25tcF9hcGkuYzoKCiAgIHVzZSBhIHN0YXRpYyB2YXJpYWJsZSBmb3IgaW5pdCBjaGVja2luZy4gIEJ1ZyAjNTM2Mzg2LgogICAKMjAwMi0wMy0yOCAxNToyNSAgZHRzMTIKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCAsIHJlYWRfY29uZmlnLjMuZGVmICwKICAgc25tcF9hcGkuMy5kZWY6CgogICBUd2VhayB0byB1c2UgdGhlIG5ldyBpbmNsdWRlIHN0cnVjdHVyZS4KICAgCjIwMDItMDMtMjggMTU6MjMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBBZGQgYSBmZXcgbmV3IGVudHJpZXMgKG1vc3RseSByZWxhdGluZyB0byB0cmFwcykKICAgCjIwMDItMDMtMjggMTQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW5hbWUvcHJlZml4IGZ1bmN0aW9uczsgYWRkIGRveHlnZW4gZG9jdW1lbnRhdGlvbgogICAKMjAwMi0wMy0yOCAxMzowMCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIGFkZCBkZWZpbmUgZm9yIGV4Y2x1ZGluZyBzdHVmZiAoRE9YWUdFTl9TSE9VTERfU0tJUF9USElTKQogICAKMjAwMi0wMy0yOCAxMjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGFkZCBzZXRTZXJpYWxObwogICAKMjAwMi0wMy0yOCAxMjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBmaXggYSBuZXZlci1zZWVuLWJ1dC12ZXJ5LW9sZC1idWcgdXNpbmcgdGhlIHdyb25nIGRlZmF1bHRfc3RvcmUgdG9rZW4uCiAgIAoyMDAyLTAzLTI4IDEyOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBvbmx5IHNldCB0aGUgZGVmYXVsdCBvdXRwdXQgc3R5bGUgaWYgaXQncyBub3QgYWxyZWFkeSBzZXQgdG8gc29tZXRoaW5nLgogICAKMjAwMi0wMy0yOCAxMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIHdyYXBwaW5nLgogICAKMjAwMi0wMy0yOCAxMjoxNyAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgY2hhbmdlIHZlcnNpb24gbnVtYmVyCiAgIAoyMDAyLTAzLTI4IDEyOjA4ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBiYWNrIG91dCBjaGFuZ2UgZnJvbSB2ZXJzaW9uIDEuNjUgdW50aWwgYmV0dGVyIHNvbHV0aW9uIGNhbiBiZSBmb3VuZDsKICAgYnVnICM1MzUwMjkKICAgCjIwMDItMDMtMjggMTI6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcmV0dXJuIHNwZWNpZmljIHJlc3VsdCBjb2RlIGZvciByZWdpc3RyYXRpb24gZmFpbHVyZSBpZiBhdmFpbGFibGUuCiAgIAoyMDAyLTAzLTI4IDExOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBwZXJsIHR5cG8KICAgCjIwMDItMDMtMjcgMTU6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBkZWxldGUgb2xkLCB1bnVzZWQgY29uZiBmaWxlCiAgIAoyMDAyLTAzLTI3IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jICwgbm90aWZpY2F0aW9uX2xvZy5oICwKICAgc25tcHRyYXBkLmM6CgogICBhZGQgImRvbnRSZXRhaW5Mb2dzIiB0b2tlbiB0byBzbm1wdHJhcGQuY29uZiB0byBub3QgZW5hYmxlIHRoZQogICBub3RpZmljYXRpb24gbG9nIG1pYi4KICAgCjIwMDItMDMtMjcgMDE6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW46CgogICBVc2UgdGhlIGNvcnJlY3QgbmFtZSBvZiB0aGUgV2luZG93cyBJUCBIZWxwZXIgQVBJIGxpYnJhcnkuCiAgIChDb21wdXRlcnMgY2FuIGJlIHNvb29vIHBpY2t5ISkKICAgCjIwMDItMDMtMjYgMjM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIFJlYWxseSBmaXggdGhlICJ1bmRvIGZhaWxlZCIgcHJvYmxlbS4gIElFLCBub3QganVzdCBhbnkgb2xkIGVycm9yCiAgICAgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCBtZXNzYWdlIHRvIGdldCBzZW50IGJhY2suICBPbmx5IHZhcmJpbmRzCiAgICAgd2l0aCBhbiB1bmRvIGZhaWxlZCBlcnJvciBjb2RlIHdpbGwgY2F1c2UgYW4gdW5kbyBmYWlsZWQgcmVzdWx0LgogICAgIHVuZG8gZmFpbGVkIHJlc3VsdHMgZG8gc3RpbGwgc3VwZXJzZWRlIGFsbCBvdGhlciBlcnJvciBjb2RlcywKICAgICBob3dldmVyLCB3aGljaCBpcyB3aGF0IHRoZSBvcmlnaW5hbCBwcm9ibGVtIHdhcyBhbGwgYWJvdXQuICBXZSBzdGlsbAogICAgIGhhdmUgdG8gZGVwZW5kIG9uIHRoZSBtb2R1bGVzIHJldHVybmluZyB0aGUgcmlnaHQgZXJyb3IgY29kZSAoYnV0CiAgICAgdGhhdCdzIHRoZWlyIGZhdWx0IGlmIHRoZXkgZG9uJ3QpLgogICAtIG1pc2MgY2xlYW51cHMgYW5kIHJlbmFtZXMKICAgCjIwMDItMDMtMjYgMjM6MjAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBDcmFpZyBTZXRlcmEKICAgCjIwMDItMDMtMjYgMTQ6MDcgIHJzdG9yeQoKICAgKiBUT0RPOgoKICAgYWRkIGNyZWF0aW5nIHNyYyBycG0gc3BlYyBmaWxlCiAgIAoyMDAyLTAzLTI2IDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2tpby5jIChWNC0yLXBhdGNoZXMuMiksIGRpc2tpby5jOgoKICAgZW5hYmxlIGRpc2tpbyBvbiBmcmVlYnNkNS4gIEltcGxlbWVudHMgcGF0Y2ggNTE3MzI4IGluIGEgZGlmZmVyZW50IHdheS4KICAgCjIwMDItMDMtMjYgMDc6NTggIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBmaXggZm9yIG90aGVyLWRpciBidWlsZHMKICAgCjIwMDItMDMtMjYgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGluZm8gaW4gc3BsaXRfc3VidHJlZQogICAKMjAwMi0wMy0yNiAwNzo0MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bMCwwXSksIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAvZXRjL2ZpbGVzeXN0ZW1zIHRvIGxpc3Qgb2YgbW91bnQgdGFibGUgZmlsZXMgKGZvciBBSVgpCiAgIFNob3VsZCBmaXggYnVncyAyMzI1ODggYW5kICg/KTUxNzExMwogICAKMjAwMi0wMy0yNiAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bOSw5XSksIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSB0cmFpbGluZyAnOicgZnJvbSBsaXN0IG9mIE1JQiBtb2R1bGUgbmFtZXMgaW4gY29uZmlndXJlIG91dHB1dCwKICAgdG8gYXZvaWQgY29uZnVzaW9uIChzZWUgQnVnICM0OTExMjkpCiAgIAoyMDAyLTAzLTI2IDA2OjQxICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBBZGQgJy1saGxwYXBpJyB0byB0aGUgbGlzdCBvZiBhZ2VudCBsaWJyYXJpZXMsIHdoZW4gcnVubmluZyBvbiBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogcGFyc2UuYyAoVjQtMi1wYXRjaGVzLjMpLCBwYXJzZS5jOgoKICAgZml4IGJ1ZyM1MjA0Nzggc2hvd01pYkVycm9ycyB0b2tlbiBpcyBpbnZlcnRlZAogICAKMjAwMi0wMy0yNSAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDMtMjUgMTQ6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgdXNlIGVtYWNzIHRvIGZpeCBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIHBlcmwgdG8gc2VhcmNoIGFuZCByZXBsYWNlIHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTI1IDA4OjQzICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLm9wdCAsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwICwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKICAgLCBzbm1wZC9zbm1wZC5kc3AgLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCAsCiAgIHNubXBkZi9zbm1wZGYuZHNwICwgc25tcGdldC9zbm1wZ2V0LmRzcCAsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCAsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAogICAsIHNubXBzZXQvc25tcHNldC5kc3AgLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiAgICwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AgLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AKICAgLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwICwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AgLAogICBzbm1wdXNtL3NubXB1c20uZHNwICwgc25tcHZhY20vc25tcHZhY20uZHNwICwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbnMgb2YgJ2dldG9wdC5jJyBhbmQgJ3NubXBfcGFyc2VfYXJncy5jJyBpbgogICBlYWNoIGluZGl2aWR1YWwgYXBwbGljYXRpb24gcHJvamVjdC4gIFRoZXNlIHJvdXRpbmVzIGFyZSBpbmNsdWRlZCB3aXRoaW4KICAgdGhlIGxpYnJhcmllcywgc28gd2UgbWlnaHQgYXMgd2VsbCB1c2UgdGhvc2UuCiAgIAoyMDAyLTAzLTI1IDA1OjUzICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCAsIHdpbjMyLm9wdCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgc25tcGQvc25tcGQuZHNwOgoKICAgR290Y2hhISAgRXZlcnl0aGluZyBub3cgYnVpbGRzIChtb3JlLW9yLWxlc3MpIGNsZWFubHkgdW5kZXIgVmlzdWFsIEMrKy4KICAgWW91IHN0aWxsIGhhdmUgdG8gdXNlIHRoZSAiQmF0Y2ggQnVpbGQiIG1lY2hhbmlzbSAob3IgZWxzZSBiZSBjYXJlZnVsIHdoaWNoCiAgIG9mIGxpYnNubXAvbGlic25tcF9kbGwgeW91IGJ1aWxkIGluIGVhY2ggb2YgdGhlIERlYnVnICYgUmVsZWFzZSBtb2RlcyksCiAgIGFuZCB5b3UgbmVlZCB0byBidWlsZCB0d2ljZSBpbiBvcmRlciB0byBnZXQgZW5jb2RlX2tleWNoYW5nZSBsaW5raW5nLgogICBCdXQgdGhpbmdzICpkbyogZmluYWxseSBidWlsZC4KICAgCjIwMDItMDMtMjQgMDU6MjEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgT29wcyAtIHNucHJpbnRfKiBjYW5ub3QgcmVhbGxvYwogICAKMjAwMi0wMy0yMyAwOTo0MCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHJlYWxseSBmaXggc25tcGluZm9ybSBpbnN0YWxscyB0aGlzIHRpbWUuCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbmFsIGNsZWFudXBzIG9mIG5vdGlmaWNhdGlvbiBsb2cgc3VwcG9ydAogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gb2Ygc25tcGluZm9ybQogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFJlbmFtZSBzdHVmZi4gIEZpeCBzdHVmZi4gIFlvdSBrbm93LCBub3JtYWwgcm91dGluZS4KICAgCjIwMDItMDMtMjIgMjI6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB2ZXJzaW9uIGZpbGUgbG9jYXRpb24gZm9yIG5vbi1zb3VyY2VkaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTIyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZvcmdvdCB0byBjb21taXQgYSBwcm90b3R5cGUuCiAgIAoyMDAyLTAzLTIyIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgcmVnaXN0ZXJfbWliX2NvbnRleHQyIC0+IG5ldHNubXBfcmVnaXN0ZXJfbWliIChhbmQgbWFya2VkIGFzIGludGVybmFsKQogICAKMjAwMi0wMy0yMiAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBzdWJhZ2VudC5jOgoKICAgdXNlIG5ldyBlcnJvciBsb2dnaW5nIGFwaSB3aGVuICFyb290CiAgIAoyMDAyLTAzLTIyIDE0OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBlbmFibGUgbG9nZ2luZyBzZXNzaW9uIGVycm9ycyB0byBzb21lIGxvZyBsZXZlbCBvdGhlciB0aGFuIEVSUi4KICAgCjIwMDItMDMtMjIgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgc3ViYWdlbnQuYzoKCiAgIGJldHRlciBhZ2VudHggY29ubmVjdGlvbiByZWxhdGVkIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0yMiAwOTozNSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3cgLCB3aW4zMi5vcHQgLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwICwgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AgLCBzbm1wZC9zbm1wZC5kc3A6CgogICBTbG93bHkgbWFraW5nIHByb2dyZXNzIG9uIDUuMCBXaW5kb3dzIGJ1aWxkLgogICBFdmVyeXRoaW5nIG5vdyBjb21waWxlcywgdGhvdWdoIHRoZSBSZWxlYXNlIHZlcnNpb24gZG9lc24ndCBsaW5rLgogICAgIChjb21wbGFpbnMgYWJvdXQgYXNzb3J0ZWQgdW5rbm93biByb3V0aW5lcyB0aGF0IGFyZSB0aGVyZSwKICAgICAgc3RhcmluZyBpdCBpbiB0aGUgZmFjZS4gIEdycnIhISEhKQogICAKMjAwMi0wMy0yMiAwODoyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBub3QgInR3ZWFrIiByYW5nZV9zdWJpZCB3aGVuIGRlYWxpbmcgd2l0aCBjb21wcmVzc2VkIE9JRHMuCiAgICAgICBUaGFua3MgdG8gQ3JhaWcgU2V0ZXJhIGZvciBwb2ludGluZyBvdXQgdGhpcyBkZXZpYXRpb24gZnJvbSBSRkMKICAgICAgIDI3NDEuCiAgIAoyMDAyLTAzLTIyIDA3OjUwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmggLCBzbm1wbGliL29pZF9hcnJheS5jCiAgICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFZhcmlvdXMgbWlub3IgaW5jb25zaXN0ZW5jaWVzIChtb3N0bHkgdG8gZG8gd2l0aCBzdWJ0bGUgdmFyaWF0aW9ucyBpbiB0eXBlcykKICAgCjIwMDItMDMtMjIgMDc6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDMtMjIgMDc6MjkgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oICwgbWliX21vZHVsZV9pbml0cy5oICwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLAogICBuZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oOgoKICAgQnJpbmcgV2luZG93cyB2ZXJzaW9ucyBvZiAiYXV0b21hdGljYWxseS1nZW5lcmF0ZWQiIGhlYWRlciBmaWxlcyB1cCB0byBkYXRlLgogICAKMjAwMi0wMy0yMiAwMjoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZG9uJ3QgdXNlICJyZWciIGFzIGEgcGFyYW1ldGVyIG5hbWUgaW4ga2VybmVsX3N1bm9zNV9jYWNoZV9hZ2UoKQogICAgICAgYXMgL3Vzci9pbmNsdWRlL2luZXQvY29tbW9uLmggc2F5czoKICAgICAgICNkZWZpbmUgcmVnIHJlZ2lzdGVyCiAgICAgICAoISkgd2hpY2ggdGhlIGNvbXBpbGVyIHRoZW4gYmFyZnMgb24uICBSZXBvcnRlZCBhcyBidWcgIzUzMzMzNiBieQogICAgICAgQW5vbnltb3VzLgogICAKMjAwMi0wMy0yMSAwOToyNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAsIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfY29uZmlnKiAtPiBuZXRzbm1wX2NvbmZpZyAoZm9yIG5ldyBmdW5jdGlvbnMgb25seSkKICAgLSBmaXggYnVnIHdoZXJlIHNubXBfY29uZmlnKCkgc3RyaW5ncyB3ZXJlIGdldHRpbmcgcGFyc2VkIHR3aWNlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHdyYXAgYWdlbnR4IHN0dWZmIGluIGEgc3RpbGwgdW51c2VkIHZhcmlhYmxlIChhdCB0aGlzIHBvaW50KS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgZml4IG9pZCBwYXJzaW5nLgogICAKMjAwMi0wMy0yMSAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uL2FsYXJtLmMgLCBSbW9uL3N0YXRpc3RpY3MuYyAsCiAgIG1pYklJL2F0LmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIxIDA2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjAgMjA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBhIGxpc3Qgb2YgcmVnaXN0ZXJlZCB0ZXh0IGVudW1zIHRvIEFTTl8qIHZhbHVlcy4KICAgICAoSW4gcHJvYmFibHkgdGhlIHdyb25nIHBsYWNlLikKICAgCjIwMDItMDMtMjAgMjA6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMgLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaDoKCiAgIGNyZWF0ZSBhIG5ldyAib3ZlcnJpZGUiIGRpcmVjdGl2ZSB0byBmb3JjZSBhbiBPSUQgdG8gYSBwYXJ0aWN1bGFyIHZhbHVlCiAgIC0gbm90IGZpbmlzaGVkLiAgSXQncyBkZXNpZ25lZCB0byBkbyByZWFkLXdyaXRlIGFzIHdlbGwsIGJ1dCBkb2Vzbid0LgogICAKMjAwMi0wMy0yMCAyMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2hlY2sgZm9yIGluY2x1c2l2ZQogICAKMjAwMi0wMy0yMCAxMTozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBpbmNsdWRlIG5ldyBkZWxldGUvcmVtb3ZlIGJyZWFrZG93biBBUElzCiAgIAoyMDAyLTAzLTIwIDExOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEFQSSBjaGFuZ2UuCiAgIAoyMDAyLTAzLTIwIDExOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIHNvbWUgInRoaXMgd2lsbCBjaGFuZ2UiIGVhcmx5IHJvdyBzdGF0dXMgaW1wbGVtZW50YXRpb24uCiAgICAtICh0aGlzIHdpbGwgbW92ZSB0byBhIHNlcGFyYXRlIGhhbmRsZXIpCiAgIAoyMDAyLTAzLTIwIDExOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHBvaW50ZXIgY2hlY2tpbmcgYWdhaW5zdCBpbGxlZ2FsIGFkZHMgKGllLCBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBjaGVjayBhbnl3YXkpCiAgIAoyMDAyLTAzLTIwIDA4OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgT2ssIEkgbWFrZSBtaXN0YWtlcy4gIEkgYWRtaXQgaXQuICBJdCByZWFsbHkgc2hvdWxkIGhhdmUgYmVlbiBhIE5VTEwuCiAgIAoyMDAyLTAzLTIwIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIG1pc3NpbmcgY29tbWEKICAgCjIwMDItMDMtMjAgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBzZXBhcmF0ZSBvdXQgZGVsZXRlL3JlbW92ZSByb3cgZnVuY3Rpb25hbGl0eQogICAKMjAwMi0wMy0yMCAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgc3lzdGVtX21pYi5jOgoKICAgcmVtb3ZlIGlsbGVnYWwgU0VUIHN1cHBvcnQgZm9yIHN5c0Rlc2NyLgogICAKMjAwMi0wMy0yMCAwNjoyNyAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGUgLCBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG1hbnkgbWFueSAtVCBmbGFncyBmb3IgZGVmaW5pbmcgdHlwZXMuCiAgIAoyMDAyLTAzLTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZm9yY2Ugc2V0dGluZyBvZiAnIXJvb3QnIGZsYWcgc28gdGhhdCBpdCB3aWxsIHJ1biBmb3Igbm9uLXByaXZpbGVnZWQKICAgdXNlcnMgb3Igd2hlbiBhbiBhZ2VudHggbWFzdGVyIHNpbXBseSBoYXMgbmV2ZXIgZXhpc3RlZC4KICAgCjIwMDItMDMtMTkgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICAtIGFsbG93IHRhYmxlcyB0byBiZSBtYXJrZWQgd2hldGhlciB0aGV5IHNob3VsZCBzdXBwb3J0IGNyZWF0aW9uIG9yIG5vdC4KICAgLSBidWcgZml4ZXMKICAgCjIwMDItMDMtMTkgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMgLCB0YWJsZV9kYXRhc2V0LmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGhlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLCBtaWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBwZXJsL2FnZW50L2FnZW50LnhzICwKICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gcmVuYW1lZCBhIGZldyBiYWRseSBuYW1lZCBmdW5jdGlvbnMgKG5ldHNubXBfIGFwcGVhcmVkIHR3aWNlKS4KICAgLSBpbXBsZW1lbnRlZCB0aGUgYmVnaW5uaW5nIG9mIGNyZWF0aW9uIHN1cHBvcnQgZm9yIGRhdGFzZXRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgQXBwYXJlbnRseSBJIHJhbiBhdXRvY29uZiBlYXJsaWVyIGFuZCBtaXNzZWQgY2hlY2tpbmcgaW4gdGhlIHJlc3VsdHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGFkZCAtbmZjYQogICAKMjAwMi0wMy0xNyAxNjoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgU2V0IGRlZmF1bHQgcG9ydCB0byAxNjIuCiAgIAoyMDAyLTAzLTE3IDE1OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jOgoKICAgaW1wcm92ZWQgZm9ybWF0dGluZyBzdHJpbmdzIHNob3dpbmcgYm90aCB0cmFuc3BvcnQgdHlwZSBhbmQgcG9ydCBudW1iZXIuCiAgIAoyMDAyLTAzLTEzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBtaXNzaW5nICJpbnN0YWxsc3ViZGlycyIgdGFyZ2V0IG1pc3NpbmcgKHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFKQogICAKMjAwMi0wMy0xMyAyMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluICwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tY3JlYXRlLXNubXB2My11c2VyIHRvIGF1dG9tYXRlIGFkZGluZyBhIHYzIHVzZXIgdG8gYm90aCB0aGUgdXNtCiAgIGFuZCB2YWNtIHRhYmxlcyAoYnkgYWRkaW5nIGxpbmVzIHRvIGJvdGggdGhlIHBlcnNpc3RlbnQgYW5kIG5vcm1hbAogICBjb25mIGZpbGVzKS4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGJ1ZyBmaXggZm9yIHByZS1wcm9jZXNzZWQgcmVxdWVzdHMuCiAgIAoyMDAyLTAzLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlcyAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmggLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYXV0b19ubGlzdC5oICwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2hlYWRlcl9jb21wbGV4LmggLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3RydWN0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oICwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3Zhcl9zdHJ1Y3QuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgoKICAgLSAtLWVuYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGFjdHVhbGx5IGluc3RhbGxzIGhlYWRlcnMgKGFzIG9wcG9zZWQKICAgICB0byBhbHdheXMsIHdoaWNoIGlzIHdoYXQgaXQgdXNlZCB0byBkbykuCiAgIC0gYWRkIGFnZW50X21pYnMgdG8gY29uZmlndXJlIGRlZmF1bHQgbWliIG1vZHVsZXMgYW5kIGRvY3VtZW50LgogICAtIGNoYW5nZSBoZWxwIGRvY3VtZW50YXRpb24gYSBiaXQgZm9yIHRoZSBtaWIgbW9kdWxlcy4KICAgLSBhZGQgYSBmb3JjZWQgZGVwZW5kZW5jeSBmb3IgbWliX21vZHVsZXMubG8KICAgCjIwMDItMDMtMTMgMTY6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Lmg6CgogICBvcHBzLiAgZHVwbGljYXRlcyBleGlzdGluZyBhZ2VudF9taWJzLmgKICAgCjIwMDItMDMtMTMgMTU6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dAogICAoVjQtMi1wYXRjaGVzLlsxLDEsMSwxLDEsOV0pLCBVQ0QtREVNTy1NSUIudHh0ICwKICAgVUNELURJU0tJTy1NSUIudHh0ICwgVUNELURMTU9ELU1JQi50eHQgLAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCAsIFVDRC1JUEZXQUNDLU1JQi50eHQgLAogICBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmggLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBBZGRlZCBhIG5zTW9kdWxlVGFibGUgdGFibGUgd2hpY2ggcmVwbGFjZXMgdGhlIG9sZGVyIG1yVGFibGUuCiAgIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQgaXRlbXMgd2l0aGluIHRoZSBNSUIKICAgdHJlZSBqdXN0IGxpa2UgdGhlIG1yVGFibGUgd2FzLCBidXQgd2l0aCBzdXBwb3J0IGZvciBjb250ZXh0cyBhbmQgZm9yCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zIHdpdGggZGlmZmVyZW50IHByaW9yaXRpZXMuCiAgIAoyMDAyLTAzLTEzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAoVjQtMi1wYXRjaGVzLjQpLCB0b29scy5jOgoKICAgbWFsbG9jIGF0IGxlYXN0IG9uZSBieXRlIGluIGhleF90b19iaW5hcnkyCiAgIAoyMDAyLTAzLTEzIDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgdW5uZWVkZWQgZGVidWcgc3RhdGVtZW50CiAgIAoyMDAyLTAzLTEzIDE0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGxvY2FsIHZhcmlhYmxlIG5hbWUgYnVmZmVycyBieSBkZWZhdWx0IHdoZW4gYnVpbGRpbmcgb2lkIHNlZ21lbnRzLgogICAKMjAwMi0wMy0xMyAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLyogc3RvcCB3YXRlciBmcm9tIGZsb3dpbmcgdGhyb3VnaCBkYW0gKi8KICAgZmluZ2VyLT5pbnNlcnQoImhvbGUiKQogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIEFkZCBhIGRlc2NyaXB0aW9uIG9mICJ1bmxpbmtlZCBPSURzIi4KICAgCjIwMDItMDMtMTIgMjE6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIG1pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpeCBoZWFkZXJzLgogICAKMjAwMi0wMy0xMiAyMToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgZG9uJ3QgZm9ybWF0IGNvbW1lbnRzIG9wdGlvbgogICAKMjAwMi0wMy0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggZm9yIHRhYmxlcyB3aXRoIGhvbGVzLgogICAKMjAwMi0wMy0xMiAyMTowOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIG1vdmUgZGVmYXVsdCBtaWJzIHRvIHRoZWlyIG93biB2YXJpYWJsZS4KICAgCjIwMDItMDMtMTIgMjE6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL01ha2VmaWxlLlBMICwgYWdlbnQvTWFrZWZpbGUuUEwgLAogICBhZ2VudC9hZ2VudC54cyAsIGFnZW50L3R5cGVtYXA6CgogICAtIHVzZSBuZXQtc25tcC1jb25maWcgdG8gZmlndXJlIHRoaW5ncyBvdXQuCiAgIC0gdXBkYXRlIGhlYWRlcnMgYW5kIHR5cGVpbmZvIGZvciByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogRkFRMkhUTUwgLCBSRUFETUUubWliMmMgLCBtaWIyYyAsIHRrbWliCiAgICwgbWliMmMuYXJyYXktYXV0by5jb25mICwgbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBtaWIyYy5jb25mIGZpbGUKICAgCjIwMDItMDMtMTIgMTg6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9uJ3QgZm9yZ2V0IHRvIHNldCByb3ctPm5leHQtPnByZXYgdG8gc29tZXRoaW5nIHdoZW4gcmVtb3Zpbmcgcm93LgogICAKMjAwMi0wMy0xMiAxNzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGFnZW50eCBpbmNsdXNpdmUgc2VhcmNoZXMgdG8gaWdub3JlIGdldCBlcnJvcnMuCiAgIAoyMDAyLTAzLTEyIDE3OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgc29tZSBtaW5pbWFsIGR1bXAgZGVidWdnaW5nLgogICAKMjAwMi0wMy0xMiAwODozNCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNiksIEZBUToKCiAgIFVwZGF0aW5nIG9mIHRoZSBGQVEgcmVhZHkgZm9yIHRoZSBuZXh0IHJlbGVhc2UuCiAgIChNb3N0bHkgcmVwaHJhc2luZyBvZiBleGlzdGluZyBlbnRyaWVzLCBidXQgYSBmZXcgbmV3IHF1ZXN0aW9ucykKICAgCjIwMDItMDMtMTEgMTg6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGNhc3QgLTEgdG8gdV9jaGFyIHNvIHRlc3QgZG9lc24ndCBhbHdheXMgZmFpbCAoZml4IGNvbXBpbGVyIHdhcm5pbmcpCiAgIAoyMDAyLTAzLTExIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICB0cmVhdCAoaWxsZWdhbCkgZXJyb3JzIGZyb20gc3ViYWdlbnRzIHNwZWNpYWxseSBmb3IgZ2V0bmV4dCBjYXNlcy4KICAgCjIwMDItMDMtMTEgMTM6NDEgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBvdXIgc25tcCBsaWJyYXJpZXMgdG8gb3V0cHV0CiAgIAoyMDAyLTAzLTExIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50LzogdGFibGVfZGF0YS5oICwgdGFibGVfZGF0YXNldC5oOgoKICAgZGVsZXRlL3JlbW92ZSBzdXBwb3J0IGhlYWRlciBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMSAwOToxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBhbGxvdyBjb21waWxhdGlvbiAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VENQCiAgIAoyMDAyLTAzLTExIDA4OjIxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gZml4ZXMgZm9yIC0tZGlzYWJsZS1kZWJ1Z2dpbmcKICAgCjIwMDItMDMtMTEgMDc6NDEgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUpLCBGQVE6CgogICBCcmluZyB0aGUgNHgtIGFuZCBtYWluLWJyYW5jaCBGQVFzIGludG8gYWdyZWVtZW50LgogICAKMjAwMi0wMy0xMSAwNjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIGNvcnJlY3Qgc2Vzc2lvbiBJRCB3aGVuIHRhbGtpbmcgdG8gc3ViYWdlbnRzLiAgVGhhbmtzIHRvIENyYWlnCiAgICAgICBTZXRlcmEgZm9yIHRoaXMgZml4LgogICAKMjAwMi0wMy0xMSAwNToyMCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IGJhZCB0eXBlIGFzc2lnbm1lbnQgaW4gYnVpbGRfdHJhbnNsYXRpb25fdGFibGUoKSwgbm90aWNlZCBieQogICAgICAgUGV0ZXIgU3RldmVucy4KICAgCjIwMDItMDMtMTEgMDA6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBjaGVjayBmb3IgTlVMTCBmcmVlcywgZXZlbiB0aG91Z2ggaXQncyBzdXBwb3NlZCB0byBiZSBvayBhY2NvcmRpbmcgdG8gYW5zaS4KICAgCjIwMDItMDMtMTEgMDA6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgYmVnaW5uaW5nIHN1cHBvcnQgZm9yIG1heGltdW0gbG9nZ2VkIGNoZWNraW5nLgogICAKMjAwMi0wMy0xMSAwMDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtIHJlbW92ZS9kZWxldGUgcm93IHN1cHBvcnQuCiAgIC0gbnVsbCBjaGVjawogICAtIGRvYyBjb21tZW50cy4KICAgCjIwMDItMDMtMTEgMDA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgCjIwMDItMDMtMTEgMDA6MDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNhbGwgbmV4dCBoYW5kbGVycyAob3BwcykuCiAgIAoyMDAyLTAzLTEwIDE0OjExICBuYmEKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBGaXggb25lIHNwcmludF92YXJpYWJsZSA9PiBzbnByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAzLTEwIDE0OjA2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgIEFkZCBzbnByaW50XyogZnVuY3Rpb25zIHRoYXQgd2VyZSBzcHJpbnRfKiBpbiB1Y2Qtc25tcCA0CiAgIAoyMDAyLTAzLTEwIDE0OjA1ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXggY29tcGlsYXRpb24gd2hlbiBJUFgtdHJhbnNwb3J0IGVuYWJsZWQKICAgCjIwMDItMDMtMTAgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgRml4IGNvbXBpbGF0aW9uIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMy0wOCAyMjoyNiAgaGFyZGFrZXIKCiAgICogRkFRICwgc2Vkc2NyaXB0LmluICwgcGVybC9TTk1QL1NOTVAucG0gLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUyICkKICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1pc2MgY2hhbmdlcy4KICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTA4IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZCB0byBkZWFsIHdpdGggU2VuZG1haWwgOC4xMiBxdWV1ZWdyb3Vwcy4KICAgCjIwMDItMDMtMDggMTY6NTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIGNzZXRlIHRvIGZpeCB3aW4zMiBidWlsZHMKICAgCjIwMDItMDMtMDggMTY6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBDYWxsYmFjayB0cmFuc3BvcnQgdG8gY3lnd2luCiAgIAoyMDAyLTAzLTA4IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBybW9uIHN1cHBvcnQuCiAgIAoyMDAyLTAzLTA4IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHJlbW92ZSBvbGQgYW4gdW51c2VkIHBvaW50ZXIKICAgCjIwMDItMDMtMDggMTY6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmggLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmggLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiAgICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLCBhcHBzL3NubXBidWxrZ2V0LmMgLAogICBhcHBzL3NubXBidWxrd2Fsay5jICwgYXBwcy9zbm1wZGVsdGEuYyAsIGFwcHMvc25tcGRmLmMKICAgLCBhcHBzL3NubXBnZXQuYyAsIGFwcHMvc25tcGdldG5leHQuYyAsCiAgIGFwcHMvc25tcHNldC5jICwgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0YWJsZS5jCiAgICwgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcC5jICwKICAgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmggLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHZhY20uYwogICAsIGFwcHMvc25tcHdhbGsuYyAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCAsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mICwKICAgbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mICwgcGVybC9TTk1QL1NOTVAueHMgLAogICBzbm1wbGliL2NtdV9jb21wYXQuYyAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wX3NlY21vZC5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIHN0cnVjdCBzbm1wX3Nlc3Npb24gdHlwZWRlZmVkIHRvIG5ldHNubXBfc2Vzc2lvbi4gICYgcGR1LiAmIC4uLgogICAKMjAwMi0wMy0wOCAxNDowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXRfc3ltYm9sIC0+IGdldF90cmVlCiAgIAoyMDAyLTAzLTA4IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogU05NUC9TTk1QLnhzICwgYWdlbnQvYWdlbnQucG0gLCBhZ2VudC9hZ2VudC54cwogICAsIGFnZW50L3Rlc3QucGw6CgogICBtaXNzZWQgdXBkYXRlcwogICAKMjAwMi0wMy0wOCAwNzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jICwgZGVmYXVsdF9zdG9yZS5jICwgbWliLmMKICAgLCBvaWRfYXJyYXkuYyAsIG9pZF9zdGFzaC5jICwgcmVhZF9jb25maWcuYwogICAsIHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wQ2FsbGJhY2tEb21haW4uYyAsCiAgIHNubXBJUFhEb21haW4uYyAsIHNubXBUQ1BEb21haW4uYyAsIHNubXBUQ1BJUHY2RG9tYWluLmMKICAgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uYyAsIHNubXBfYXBpLmMgLCBzbm1wX2RlYnVnLmMgLAogICBzbm1wX3RyYW5zcG9ydC5jICwgc25tcHYzLmM6CgogICBtaXNzaW5nIHVwZGF0ZWQgY29kZQogICAKMjAwMi0wMy0wOCAwMjowNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHNvbWUgc25tcCAtPiBuZXRzbm1wIGZpeGVzCiAgIAoyMDAyLTAzLTA3IDEzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyA0KQogICAKMjAwMi0wMy0wNyAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMykKICAgCjIwMDItMDMtMDcgMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmggLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAyKQogICAKMjAwMi0wMy0wNyAwODo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKICAgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmggLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaAogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmggLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiAgICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLCBhcHBzL3NubXBzdGF0dXMuYyAsCiAgIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDEpCiAgIAoyMDAyLTAzLTA3IDA2OjIxICBqYnBuCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTo0NyAgamJwbgoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgICAgLSBtaW5vciB1cGRhdGVzCiAgIAoyMDAyLTAzLTA3IDA1OjM5ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTowMCAgamJwbgoKICAgKiBtYW4vcmVhZF9jb25maWcuMy5kZWY6CgogICAgIC0gbWFrZSBwcm90b3R5cGVzIG1hdGNoIGhlYWRlcgogICAKICAgICAtIG1ha2Ugc3R5bGUgY29uc2lzdGVudCB3aXRoIG1pYl9hcGkKICAgCjIwMDItMDMtMDcgMDM6MDcgIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZml4IHVwIHNucHJpbnRfIGRlY2xhcmF0aW9ucywgZml4IHNtYWxsIHR5cG8uICBQYXRjaCBieSBHdXkKICAgSGFycmlzLgogICAKMjAwMi0wMy0wNyAwMjo0NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbiBvZiBzcHJpbnRfcmVhbGxvY19ieV90eXBlLCBhcyBub3RlZAogICAgICAgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMTc6MTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlICwgcGVybC9TTk1QL3QvLmN2c2lnbm9yZToKCiAgIG5ldyBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDMtMDYgMTc6MTMgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgZG9jcwogICAKMjAwMi0wMy0wNiAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaDoKCiAgIGV4YW1wbGVzIG1vZHVsZSB3cmFwcGVyIHRvIGluY2x1ZGUgYWxsIChuZXcpIGV4YW1wbGVzLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgZG9jdW1lbnQgYmV0dGVyLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgc2VhcmNoIGV4YW1wbGVzIGZvciBkb2NzLgogICAKMjAwMi0wMy0wNiAxNjoyOSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZXhhbXBsZSBNSUIgdGVtcGxhdGUgKGFuZCBvbmUgbm9kZSkKICAgCjIwMDItMDMtMDYgMTY6MjggIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtTUlCLnR4dDoKCiAgIGluc3RhbnRpYXRlIGV4YW1wbGVzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzb21lIE5TIG1pYnMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogc2NhbGFyX2ludC5jICwgc2NhbGFyX2ludC5oOgoKICAgRXhhbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBhIFNOTVAgZW5hYmxlZCBpbnQgcmVnaXN0ZXJlZCBhdCBhIHNjYWxhci4KICAgCjIwMDItMDMtMDYgMTY6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIG1hbnkgY2hhbmdlcyBmb3IgaW5zdGFuY2VzLiAgU3BlY2lmaWNpY2FsbHk6CiAgICAgLSBhbGxvdyBmb3Igc3ViaGFuZGxlcnMuCiAgICAgLSBwcm92aWRlIGFuIGludCB3cmFwcGVyLgogICAgIC0gcmV1c2UgbW9yZSBjb2RlLgogICAgIC0gbnVtZXJvdXMgYnVnIGZpeGVzLgogICAKMjAwMi0wMy0wNiAxNDowNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHJlbW92ZSBhIGJsYW5rIGxpbmUuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9hZG1pbi5jOgoKICAgRml4IG1hc3RlciBhZ2VudCBnZXRidWxrIHN1cHBvcnQuICB0aGlzIGhhcyB0byBiZSBpbmRlcGVuZGVudGx5IG9mIHRoZQogICBub3JtYWwgYnVsay0+bmV4dCBmaXhlcyBkdWUgdG8gZGVsZWdhdGlvbi4gIExvbmcgc3RvcnkuCiAgIAoyMDAyLTAzLTA2IDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgbW92ZSBidWxrX3RvX25leHQgZml4aW5nIGZ1bmN0aW9uYWxpdHkgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZS4KICAgCjIwMDItMDMtMDYgMTA6MjYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBzcHJpbmtsZSBtYWdpYyBjb25zdCBkdXN0CiAgIAoyMDAyLTAzLTA2IDEwOjE4ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGRvY3VtZW50IGNoYW5nZWQgQVBJLCBpbmNvcnBvcmF0aW5nIHBhdGNoZXMgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDk6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEyYWdlbnR4c2V0ZmFpbCAsIFQxMjJwcm94eXNldGZhaWw6CgogICBmaXggdGVzdHMuCiAgIAoyMDAyLTAzLTA2IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgcmUtZW5hYmxlIHNldHRpbmcgb3B0aW5kIHRvIDEgdGlsbCBEYXZlIHRlbGxzIG1lIHdoZXJlIHRoaXMgYnJlYWtzLgogICAKMjAwMi0wMy0wNiAwOTowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTFzbm1wdjJjdHJhcCAsIFQwNTJzbm1wdjJjaW5mb3JtICwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICBmaXhlcyBmb3IgbmV3IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjIwMDItMDMtMDYgMDk6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vcmUgaW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgKG1vc3RseSkKICAgCjIwMDItMDMtMDYgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGF1dG9jb25mCiAgIAoyMDAyLTAzLTA2IDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHByb3RvY29sLmM6CgogICBwcm9wZXIgZml4IGZvciBub3QgcmVxdWlyaW5nIHJlc3BvbnNlcyB0byBDTEVBTlVQIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wNiAwNjowNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gemVybyB0aGUgbmFtZSBvZiBlbGVtZW50cyBvZiB0aGUgYnVsayBjYWNoZQogICAKMjAwMi0wMy0wNiAwNjowNiAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNhbGxvYygpIG5vdCBtYWxsb2MoKSBpbiBhIGZldyBwbGFjZXMgdG8gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMKICAgICAgIHRvIHplcm9lcy4KICAgCjIwMDItMDMtMDYgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBfYXBpLmM6CgogICBBY3R1YWxseSB1c2UgdGhlIGNvbW1vbiAnZGVmUGFzc3BocmFzZScgdmFsdWUgaWYgJ2RlZntBdXRoLFByaXZ9UGFzc3BocmFzZScgaXNuJ3Qgc2V0LgogICBRbjogU2hvdWxkIHRoZSBBdXRoUGFzc3BocmFzZSBhbHNvIGJlIHVzZWQgZm9yIHByaXZhY3kgaWYgbm8gb3RoZXIgdmFsdWUgaXMgYXZhaWxhYmxlPwogICAKMjAwMi0wMy0wNiAwNTo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZG9uJ3Qgc2VuZCByZXF1ZXN0cyBmb3IgT0lEcyBwcmVjZWVkaW5nIHRoZSBzdGFydCBvZiBhIHJlZ2lvbgogICAgICAgKHRoaXMgY2FuIGxlYWQgdG8gbG9vcHMgaWYgZS5nLiBhIHN1YmFnZW50IGhhcyByZWdpc3RlcmVkIHR3bwogICAgICAgYWRqYWNlbnQgcm93cykuCiAgIAoyMDAyLTAzLTA2IDA1OjA3ICBqYnBuCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAgIC0gaWdub3JlIGVycm9ycyBkb2luZyBybSAtcmYgL3RtcC9zbm1wLXRlc3QqIHdoZW4gbWFraW5nIHRlc3RjbGVhbgogICAKMjAwMi0wMy0wNiAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHVzZSBtb3JlIGVmZmljaWVudCBnZXRfdHJlZSgpIGluIHNwcmludF9yZWFsbG9jX3ZhbHVlKCkKICAgCjIwMDItMDMtMDUgMTg6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE1c25tcHYyY2dldG5leHQgLCBUMDAxc25tcHYxZ2V0ICwKICAgVDAwMnNubXB2MWdldG5leHQgLCBUMDAzc25tcHYxZ2V0ZmFpbCAsIFQwMTRzbm1wdjJjZ2V0CiAgICwgVDAxNnNubXB2MmNnZXRmYWlsICwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCAsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwgLCBUMTAwYWdlbnRodXA6CgogICBmaXhlcyBmb3IgbmV3IGZvcmNlZCAtYyBmbGFncwogICAKMjAwMi0wMy0wNSAxODoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIGNvbW1lbnQuCiAgIAoyMDAyLTAzLTA1IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGZpeCBkdXBsaWNhdGUgZnJlZSBieSBjbG9uaW5nIHRoZSBwZHUgYmVmb3JlIHNlbmRpbmcgaXQgb3V0IGFnYWluCiAgICh0aG91Z2h0IEkgaGFkIGRvbmUgdGhpcyBvbmNlIGluIHRoZSBwYXN0IGFscmVhZHksIGJ1dCBJIGdvdCAxLzIgZnVuY3Rpb25zKS4KICAgCjIwMDItMDMtMDUgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgVGVtcG9yYXJ5IGZpeCB0byBmaXggZm9yIGFnZW50eCBTRVQgcmVxdWVzdHMuICBUaGlzIHJldmVyc2VzIGEKICAgcHJldmlvdXMgSm9obiBjaGFuZ2Ugd2hlcmUgcmVzcG9uc2VzIHRvIGNsZWFudXBzIGFyZSBub3cgZXhwZWN0ZWQKICAgYWdhaW4uICBUaGlzIHRvb2sgbWUgYSBnb29kIDIgZGF5cyB0byB0cmFjayBkb3duLCBzaWdoLi4uCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIGFkZCAoYXNjaWkpIGFnZW50eCBzdGF0ZSBkaWFncmFtCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIG11bHRpcGxlIGZyZWUgYnVnIGZpeGVzLgogICAtIGltcHJvdmVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMy0wNSAxMDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAsIG1hc3Rlcl9yZXF1ZXN0Lmg6CgogICByZW1vdmVkIHVudXNlZCBmaWxlcwogICAKMjAwMi0wMy0wNSAxMDozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCBmaXggYmFkIGN1dCBhbmQgcGFzdGUKICAgCjIwMDItMDMtMDUgMTA6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVpbnRyb2R1Y2Ugc2NvcGUgcHJvY2Vzc2luZyAoc2VlIFJGQyAyNzQxLCBwLiA2Niwgc2VjdGlvbiA3LjIuMy4yCiAgICAgICBwYXJhZ3JhcGggMik6ICJJZiB0aGUgc3ViYWdlbnQgY2FuJ3QgbG9jYXRlIGFuIGFwcHJvcHJpYXRlCiAgICAgICB2YXJpYWJsZSwgX192Lm5hbWVfaXNfc2V0X3RvX3RoZV9zdGFydGluZ19PSURfXyBbdGhlIGltcG9ydGFudAogICAgICAgYml0XSBhbmQgdGhlIFZhckJpbmQgaXMgc2V0IHRvIGBlbmRPZk1pYlZpZXcnIgogICAKMjAwMi0wMy0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIGltcG9zZSBtYXggbGVuZ3RoIHJlc3RyaWN0aW9uIHN1cHBsaWVkIGJ5IG1pYiBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMjAwMi0wMy0wNSAwODo0OCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMgLCBzbm1wX2FnZW50LmMgLAogICBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgbmV3IERFQlVHTVNHVkFSIG1hY3JvIGluIGEgZmV3IHBsYWNlcwogICAKMjAwMi0wMy0wNSAwODo0NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHTVNHVkFSIG1hY3JvIHRvIHByaW50IG91dCBhIHZhcmlhYmxlCiAgIAoyMDAyLTAzLTA1IDA4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtICwgU05NUC54czoKCiAgIHByaW50X3ZhbHVlIGZ1bmN0aW9uIHVwZGF0ZXMuCiAgIAoyMDAyLTAzLTA1IDA4OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHVjZERlbW9QdWJsaWMuYyAoVjQtMi1wYXRjaGVzLjIpLAogICB1Y2REZW1vUHVibGljLmM6CgogICBBZGQgbWlzc2luZyAic3RhbmRhcmQiIGhlYWRlcnMsIGFuZCB0d2VhayBhIHR5cGUgc2xpZ2h0bHkuCiAgIChCYXNlZCBvbiByZXF1ZXN0cyBmcm9tIEdyZWdvcnkgVG90aCkuCiAgIAoyMDAyLTAzLTA1IDA4OjA0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBncnJyLCBib3RjaGVkIGxhc3QgZml4CiAgIAoyMDAyLTAzLTA1IDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgY2FsbGJhY2sgc2Vzc2lvbiB2ZXJzaW9uIG51bWJlciB0byB0aGUgZ2VuZXJpYyAtMQogICB2ZXJzaW9uIGFsbG93aW5nIHRoZSBwZHUgdG8gcGFzc2VkIHdpdGhvdXQgdmVyc2lvbiBjaGVja2luZy4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1vdmUgTlVMTCBjaGVjayB0byAqYmVmb3JlKiB5b3UgYWN0dWFsbHkgdXNlIHRoZSBwb2ludGVyLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gbWFyayBJTkNMVVNJVkUgcmVxdWVzdHMgYXMgc3VjaAogICAKMjAwMi0wMy0wNSAwNzo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIHVzZSBhIGZvciBsb29wIGluc3RlYWQgb2YgYSB3aGlsZSBsb29wLCBqdXN0IGEgcHJlY2F1dGlvbiBmb3IgZnV0dXJlIHByb2JsZW1zLgogICAKMjAwMi0wMy0wNSAwNzo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9jaGVja19wYXJzZSkgYWxsb3cgaW50ZXJuYWwgc2V0IHRyYW5zYWN0aW9ucyB0byBiZSBwYXNzZWQgdG8KICAgICB0aGUgYWdlbnQsIHNpbmNlIGFnZW50eCBzZW5kcyB0aGVtLgogICAKMjAwMi0wMy0wNSAwNzoyMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGRvbid0IGFkZCB0aGUgIm1vZHVsZSBJRCIgdG8gT0lEcyBpZiBpdCBpcyBudW1lcmljIGJlY2F1c2Ugd2UKICAgICAgIGNvdWxkbid0IGxvb2sgaXQgdXAgcHJvcGVybHkgKHRvIGF2b2lkIGhvcnJpYmxlIGxvb2tpbmcgb3V0cHV0CiAgICAgICBsaWtlIHRoaXM6ICJPSUQ6ICMtMTo6aXNvLjIuMy40LjUuIikKICAgCjIwMDItMDMtMDUgMDc6MDUgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gMmMgaW4gZXJyb3IgbWVzc2FnZSBmcm9tIHZlcnNpb24gcHJvbXB0CiAgIAoyMDAyLTAzLTA1IDA3OjAxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIHRlc3RzCiAgIAoyMDAyLTAzLTA1IDA2OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICAtIHJlLWVtcGhhc2lzIGEgc3VnZ2VzdGlvbiB0byBzd2l0Y2ggdG8gYSBzZWN1cmUgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wuCiAgIC0gZGVsZXRlIG5vdGlvbiB0aGF0IHYzIHdpdGhvdXQgYXV0aC9wcml2IHByb3ZpZGVzIGJldHRlciBzZWN1cml0eSAoaXQgZG9lc24ndCkuCiAgIC0gRG9uJ3QgYWNjZXB0IHYyYyBhcyBhbiBhY2NlcHRlZCB2YWx1ZSwgYXMgaXQncyB1c2VkIGFzIGFuIGludC4KICAgICAtIGJ1dCBkbyBjaGFuZ2UgaGVscCBtZXNzYWdlcywgZXRjLCB0byByZWZsZWN0IHRoYXQgMiA9IHYyYy4KICAgCjIwMDItMDMtMDUgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY2FsbG9jIGFwcHJvcHJpYXRlbHkgKHJlcXVlc3RlZCBieSBHcmVnb3J5IFRvdGgpCiAgIAoyMDAyLTAzLTA1IDA2OjIwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8gaW4gT0JKUyBkZWZpbml0aW9uCiAgIAoyMDAyLTAzLTA1IDA2OjE4ICBqYnBuCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgICAtIGNsZWFuIHRhcmdldCBkZXBlbmRzIG9uICQoT0JKUykgYW5kICQoTE9CSlMpLCBzbyBkZWZpbmUgdGhlbQogICAKMjAwMi0wMy0wNSAwMzo1MiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGRlZmF1bHQgdmVyc2lvbiB0ZXN0cyAoc3BsaXR0aW5nIHRoZW0gb3ZlciBzZXZlcmFsIGxpbmVzCiAgICAgICBjb25mdXNlcyBzaCBvbiBTb2xhcmlzLCBhdCBsZWFzdCkuCiAgIAogICAgIC0gZGlzYW1iaWd1YXRlIHNvbWUgaW5zdGFuY2VzIG9mICJ2ZXJzaW9uIiBpbiBkZWZhdWx0IHZlcnNpb24KICAgICAgIHByb21wdCB0ZXh0LgogICAKMjAwMi0wMy0wNSAwMjozNCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ29ycmVjdGx5IGRldGVjdCB3aGVuIG5vIGluaXRpYWwgZGVmYXVsdCB2ZXJzaW9uIGhhcyBiZWVuIHNldC4KICAgQWNjZXB0ICcyYycgYXMgd2VsbCBhcyAnMicgZm9yIGEgZGVmYXVsdCB2ZXJzaW9uIGNob2ljZS4KICAgRml4IHRoZSB0aXRsZSBmb3IgdGhpcyBwcm9tcHQsIGFuZCByZXdvcmQgdGhlIGRlc2NyaXB0aW9uIHRvCiAgIG1ha2UgaXQgYSAqc2xpZ2h0bHkqIGxlc3MgbGVhZGluZyBxdWVzdGlvbiwgbSdsdWQuCiAgIAogICBRbjogU2hvdWxkIHdlIHN1cHBvcnQgYSAibm8gZGVmYXVsdCB2ZXJzaW9uIiBvcHRpb24gPwogICAgIChoZW5jZSBhbGxvdyB0aGUgYWRtaW4gdG8gZm9yY2UgdGhlIGRlY2lzaW9uIGRvd24gdG8gdGhlIHVzZXIpCiAgIAoyMDAyLTAzLTA0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2UKICAgCjIwMDItMDMtMDQgMTg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIChUbyBKb2huKTogZG8gbm90IGZyZWUgdGhlIG15dm9pZCBwb2ludGVyIGluIGEgaGFuZGxlci4gIFlvdSBjYW4gbm90CiAgIGFzc3VtZSB0aGF0IGl0J3MgYSBmcmVlYWJsZSByZXNvdXJjZS4gIEZvciBpbnN0YW5jZSwgdGhlIGFnZW50eCBtYXN0ZXIKICAgYWdlbnQgd2FzIHVzaW5nIGl0IHRvIHN0b3JlIHRoZSBtYXN0ZXIgc2Vzc2lvbiBwb2ludGVyIGluIGl0ICh3aGljaAogICB3b3VsZCBleGlzdCBpbiBtdWx0aXBsZSByZWdpc3RlcmVkIG5vZGVzKS4KICAgCjIwMDItMDMtMDQgMTc6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBhIGNvbmZpZ3VyZSBnZW5lcmF0ZWQgd3JhcHBlciBoZWFkZXIgZm9yIHYzIHNlY3VyaXR5IG1vZHVsZXMuCiAgIAoyMDAyLTAzLTA0IDExOjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBhZGQgZG1hbGxvYy5oIHRvIHRoZSBwcm9wZXIgcGxhY2UuCiAgIAoyMDAyLTAzLTA0IDExOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBzdHJpbmcgY2xlYW4gdXBzLgogICAKMjAwMi0wMy0wNCAxMTo1MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGFjbG9jYWwubTQgLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXB2My5jOgoKICAgSW1wbGVtZW50IGEgZGVmYXVsdCB2ZXJzaW9uIHByb21wdCBmb3IgY29uZmlndXJlLgogICAgLSAoV2VzIGR1Y2tzIGFzIHRoaXMgaXMgY3VycmVudGx5IHNldCB0byAnMycgd2hpY2ggaGUgbWF5IGhhdmUgdG8KICAgICAgIGNoYW5nZSBhcyBpdCBoYXNuJ3QgZXhhY3RseSBiZWVuIGFncmVlZCB1cG9uIGFzIHRoZSBwcm9wZXIgZGVmYXVsdCB5ZXQpLgogICAgLSAtLXdpdGgtZGVmYXVsdC1zbm1wLXZlcnNpb24gYWxzbyBjcmVhdGVkLgogICAgLSBjaGFuZ2VkIGhhbmRsaW5nIG9mIGRlZmF1bHQgc3RvcmUgLyBzbm1wLmNvbmYgdXNhZ2UgYnV0IGltcGFjdAogICAgICBzaG91bGQgYmUgbG93LCBob3BlZnVsbHkuCiAgIAoyMDAyLTAzLTA0IDExOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhIGZldyBlcnJvciBzdHJpbmdzIHNsaWdodGx5IGltcHJvdmVkLiAgV2UgcmVhbGx5IG5lZWQgdG8gY2hhbmdlIHRoZQogICB3YXkgdGhlc2UgYXJlIGhhbmRsZWQgdG8gZ2V0IGJldHRlciBpbXByb3ZlbWVudC4KICAgCjIwMDItMDMtMDQgMDc6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIGNsZWFuaW5nIG9mIC90bXAgZnJvbSB0aGUgbWFpbiBjbGVhbmluZyB0byBwcm92aWRlIGl0CiAgIGFzIGEgc3BlY2lhbCB0YXJnZXQuCiAgIAoyMDAyLTAzLTA0IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC1XYWxsIGZpeGVzLgogICAKMjAwMi0wMy0wNCAwNTozMiAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLmRlZiAsIHNubXBidWxrd2Fsay4xLmRlZiAsCiAgIHNubXBnZXQuMS5kZWYgLCBzbm1wZ2V0bmV4dC4xLmRlZiAsIHNubXBzdGF0dXMuMS5kZWYKICAgLCBzbm1wdGVzdC4xLmRlZiAsIHNubXB0cmFwLjEuZGVmOgoKICAgICAtIHJlbW92ZSBmdXJ0aGVyIGluc3RhbmNlcyBvZiBwb3NpdGlvbmFsIGNvbW11bml0eSBzdHJpbmcgcGFyYW1ldGVyLAogICAgICAgYWZ0ZXIgUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDU6MjUgIGpicG4KCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAsIHNubXB3YWxrLjEuZGVmOgoKICAgICAtIHBhdGNoZXMgZnJvbSBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjYpLCBtZW1vcnkuYzoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgbWFraW5nIHRoZSAoc2FtZSkgZGVidWdnaW5nIHN0YXRlbWVudCBtb3JlIHVzZWZ1bC4KICAgCjIwMDItMDMtMDEgMjI6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSB0byBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTAzLTAxIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYyAsIG1pYi5jICwgc25tcF9hcGkuYyAsCiAgIHNubXBfY2xpZW50LmMgLCBzbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXB2My5jOgoKICAgRmlyc3QgcGFzcyBhdCBhIGZldyBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTAxIDEyOjAxICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgZG9uJ3QgaW5zdGFsbCBoZWFkZXJzIGhlcmUuCiAgIAoyMDAyLTAzLTAxIDA1OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICAgIC0gYWRkIHNucHJpbnRfdmFsdWUsIHNucHJpbnRfdmFyaWFibGUsIHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDItMjggMDY6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYyAsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AgLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEFkZCBiYWNrIHRoZSAnc25tcENhbGxiYWNrJyBkb21haW4gdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjcgMTA6MDQgIGpicG4KCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMgLCBzbm1wYnVsa3dhbGsuYyAsIHNubXBnZXQuYwogICAsIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMgLCBzbm1wc3RhdHVzLmMKICAgLCBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLCBzbm1wdHJhbnNsYXRlLmMKICAgLCBzbm1wdHJhcC5jICwgc25tcHVzbS5jICwgc25tcHdhbGsuYzoKCiAgICAgLSB0YXJ0IHVwIHVzYWdlIG1lc3NhZ2VzLCBtYWtlIHRoZW0gbW9yZSBjb25zaXN0ZW50IGFuZCBicmluZyBpbiBsaW5lCiAgICAgICB3aXRoIG1hbnVhbCBwYWdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBtYW4vOiBzbm1wc2V0LjEuZGVmICwgc25tcHRhYmxlLjEuZGVmICwgc25tcHRyYXAuMS5kZWYKICAgLCBzbm1wdXNtLjEuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgY2hhbmdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBwYXJzZS5jICwgc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB0YXJ0IHVwIHVzYWdlIG1lc3NhZ2VzIHRvIGJlIG1vcmUgY29uc2lzdGVudCBhbmQgaW4gbGluZSB3aXRoIG1hbnVhbAogICAgICAgcGFnZXMKICAgCjIwMDItMDItMjcgMDk6NDcgIGR0czEyCgogICAqIHNubXBsaWIvOiB2YWNtLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbS5jOgoKICAgSGFuZGxlIHZpZXdzIHRoYXQgc3BlY2lmeSBhIGZ1bGwgaW5zdGFuY2UgT0lELgogICAoU2luY2UgdGhlIGludGVybmFsbHkgc3RvcmVkIE9JRCBwcmVwZW5kcyB0aGUgbGVuZ3RoIGFzIHdlbGwsCiAgICB0aGUgYXBwYXJlbnQgbGVuZ3RoIGlzIG9uZSBncmVhdGVyIHRoYW4gaXQgcmVhbGx5IGlzKQogICAKMjAwMi0wMi0yNyAwNjo1MCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIFtBRERSRVNTRVNdIC0+IFtMSVNURU5JTkcgQUREUkVTU0VTXSBpbiB1c2FnZSBtZXNzYWdlLCB0byBtYXRjaAogICAgICAgbWFudWFsIHBhZ2UuCiAgIAoyMDAyLTAyLTI3IDA2OjA5ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRyb3Agb3B0aW9uYWwgcG9zaXRpb25hbCBjb21tdW5pdHkgcGFyYW1ldGVyIGZyb20gdHJhcHNlc3MKICAgICAgIGRlc2NyaXB0aW9uLgogICAKMjAwMi0wMi0yNyAwNTo1MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgICAtIGRyb3Agc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gbm8gc25wcmludF9ibGFoIHlldAogICAKMjAwMi0wMi0yNyAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYyAsIGhyX3N3cnVuLmM6CgogICBVc2UgdGhlIG1vcmUgaW5mb3JtYXRpdmUgJ291dHB1dF9hcGkuaCcgaGVhZGVyIGZpbGUgbmFtZQogICAgIChJIG11c3QgaGF2ZSBtaXNzZWQgdGhlc2UgZWFybGllcikKICAgCjIwMDItMDItMjcgMDU6MzUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB5ZXMsIGZvciBvbmNlIHRoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgKmJlZm9yZSogdGhlCiAgIGNvZGUhCiAgIAoyMDAyLTAyLTI3IDA1OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA1OjExICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBfYXBpLmggLCBzbm1wX2RlYnVnLmggLAogICBzeXN0ZW0uaDoKCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNToxMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaDoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQTCBmdW5jdGlvbgogICAKMjAwMi0wMi0yNyAwNDozMiAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jICwgYXBwcy9zbm1wZGVsdGEuYyAsCiAgIGFwcHMvc25tcHRhYmxlLmMgLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHdhbGsuYwogICAsIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwMjoyNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNyAwMjowOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZSwgbm8sIEkgTUVBTiBpdCB0aGlzIHRpbWUKICAgCjIwMDItMDItMjcgMDI6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDItMjYgMTI6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjbGVhciBuZXcgbWVtb3J5IGFmdGVyIHJlYWxsb2MoKSBzaW5jZSByZWFsbG9jIGRvZXNuJ3QgZG8gaXQuCiAgIAoyMDAyLTAyLTI2IDEyOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBVTlNJR05FRDMyCiAgIAoyMDAyLTAyLTI2IDA4OjU1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jICwga2VybmVsX3N1bm9zNS5oICwKICAgbWliSUkvYXQuYyAsIG1pYklJL2ljbXAuYyAsIG1pYklJL2ludGVyZmFjZXMuYyAsCiAgIG1pYklJL2lwLmMgLCBtaWJJSS90Y3AuYyAsIG1pYklJL3VkcC5jICwKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gY2hhbmdlIGNhY2hlIGltcGxlbWVudGF0aW9uIGFmdGVyIHNvbWUgaW50ZXJlc3RpbmcgcHJvZmlsaW5nIChzZWUKICAgICAgIGxlbmd0aHkgbmV3IGNvbW1lbnQgaW4ga2VybmVsX3N1bm9zNS5jKQogICAKMjAwMi0wMi0yNiAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBzbm1wbGliL3NubXAtdGMuYyAsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgUmVtb3ZlIGFzc29ydGVkIGV4dHJhbmVvdXMgXk0ncwogICAKMjAwMi0wMi0yNiAwNzoxNCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQSBxdWljayBndWlkZSB0byBpbnN0YWxsaW5nIHRoZSBDb3JlIFBsYXRmb3JtIFNESywgbmVlZGVkIGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjYgMDc6MDMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBBc3NvcnRlZCBtaW5vciB0d2Vha3MgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgIE1vc3RseSBiZWNhdXNlIFZDKysgaXMgZnVzc3kgYWJvdXQgc29ydC1vZi1jb21wYXRpYmxlIGRhdGEgdHlwZXMKICAgICAoZS5nLiBzaWduZWQgdnMgdW5zaWduZWQgaW50ZWdlcnMpLgogICAKMjAwMi0wMi0yNiAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmggLCB3aW4zMi5kc3cgLCB3aW4zMi5vcHQKICAgLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AgLCBsaWJzbm1wL2xpYnNubXAuZHNwICwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCAsCiAgIHNubXBkL3NubXBkLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgUmVuYW1lICdsaWJ1Y2RtaWJzJyB0byByZWZsZWN0IHRoZSBjaGFuZ2Ugb2YgcHJvamVjdCBuYW1lLAogICBhbmQgYXNzb3J0ZWQgdHdlYWtzIHNvIHRoYXQgdGhlIGZ1bGwgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgICAoTi5COiBUaGUgYWdlbnQgcmVxdWlyZXMgIk1pY3Jvc29mdCBQbGF0Zm9ybSBDb3JlIFNESyIgaW4gb3JkZXIKICAgICAgIHRvIGJ1aWxkIHRoZSAnbmV0c25tcG1pYnMnIHByb2plY3QpCiAgIAoyMDAyLTAyLTI2IDA2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSB2YXJpYWJsZSBpbiBhIHdhcm5pbmcKICAgCjIwMDItMDItMjYgMDY6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wMi0yNSAyMTowOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1vcmUgaW5zdGFsbCBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI1IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBpbnN0YWxsaW5nIERCRDo6RmlsZS4KICAgCjIwMDItMDItMjUgMjA6MzggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBvbmUgdG9vIG1hbnkgJzAncyBpbiBhIHVybC4KICAgCjIwMDItMDItMjUgMjA6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICByZXdvcmQuCiAgIAoyMDAyLTAyLTI1IDIwOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgbW92ZSB3YXJuaW5nIG91dHNpZGUgc2Vjb25kYXJ5IHdhcm5pbmcgYXVnbWVudGF0aW9uIGxvb3AuCiAgIAoyMDAyLTAyLTI1IDIwOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgdXBkYXRlIFNRTDo6U3RhdGVtZW50IG1vZHVsZS4KICAgCjIwMDItMDItMjUgMTY6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBhZGQgZmluZF90YWJsZV9hcnJheV9oYW5kbGVyKCk7IHJlbW92ZSBkZWJ1Z2dpbmcgY29kZS9jb21tZW50czsKICAgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IGhhbmRsZXIgYmVmb3JlIHVzaW5nIHRoZSB2b2lkIHBvaW50ZXI7CiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzCiAgIAoyMDAyLTAyLTI1IDExOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oOgoKICAgMiBuZXcgZnVuY3Rpb25zLgogICAKMjAwMi0wMi0yNSAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzZXQgc2VjdXJpdHkgbW9kZWwKICAgCjIwMDItMDItMjUgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwgd2luMzIvd2luMzIuZHN3OgoKICAgQ29udGludWluZyBpbXByb3ZlbWVudHMgdG8gY29tcGlsYXRpb24gb2YgdGhlIGxhdGVzdCBjb2RlIHVuZGVyIFZpc3VhbCBDKysuCiAgIFRoZSAnbGliaGVscGVycycgcHJvamVjdCBub3cgY29tcGlsZXMsIGFuZCB0aGlzIGFsc28gYWRkcmVzc2VzIGEgbnVtYmVyCiAgIG9mIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGxpYmFnZW50IGFuZCBsaWJ1Y2RtaWJzIHByb2plY3RzLgogICAgIEJ1dCB0aGVzZSB0d28gc3RpbGwgZmFpbCBvbiAnT0lEX0xFTkdUSCcgYW5kICdpcGhscGFwaS5oJwogICAKMjAwMi0wMi0yNSAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFByb3ZpZGUgYSBwbGF1c2libGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI1IDA2OjA0ICBqYnBuCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgICAgLSByZXNvbHZlIGNvbmZsaWN0aW5nIFNZTlRBWGVzIGZvciBuc1RyYW5zYWN0aW9uTW9kZQogICAKICAgICAtIGFkZCByYW5nZSBmb3IgaW5kZXggbnNUcmFuc2FjdGlvbklECiAgIAoyMDAyLTAyLTI1IDAzOjIzICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AgLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBFbnN1cmUgdGhlIG1haW4gbGlicmFyeSBjb21waWxlcyBhbmQgd29ya3MgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MTkgIGR0czEyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmggLCBzbm1wdHJhcGQuYzoKCiAgIEVuc3VyZSBzbm1wdHJhcGQgY29tcGlsZXMgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MDkgIGR0czEyCgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYyAsIG9pZF9zdGFzaC5jICwgc25tcC10Yy5jICwKICAgdWNkX2NvbXBhdC5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGtlZXAgVmlzdWFsIEMrKyBoYXBweS4KICAgCjIwMDItMDItMjUgMDI6NTcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgV3JhcCB3aXRoICJleHRlcm4gQyIKICAgCjIwMDItMDItMjUgMDI6NTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0Lmg6CgogICBQYW5kZXIgdG8gQ1BQJ3MgaW5jcmVkaWJseSBmdXNzeSBuYXR1cmUsIGFuZCBwcm92aWRlIHRoZSBjb3JyZWN0IGhlYWRlciBmaWxlIG5hbWUuCiAgIAoyMDAyLTAyLTI1IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcGQuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgZGVidWcgdG9rZW4gZm9yIGRpc3BsYXlpbmcgdGhlIGxpc3Qgb2YgbW9kdWxlcwogICAoc3BvdHRlZCBieSBCcmlhbiBTaGF2ZXIpCiAgIAoyMDAyLTAyLTIyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgQGZvcmVhY2ggJHZhcjEgJHZhcjIgZW51bXNACiAgIAoyMDAyLTAyLTIyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICByZW1vdmUgdHJhaWxpbmcgOydzIGZyb20gc3FsIHN0YXRlbWVudHMuCiAgIAoyMDAyLTAyLTIyIDEwOjU1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGRlZmluZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbAogICAKMjAwMi0wMi0yMiAxMDo1MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSB1dGlsaXRpZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIGRvbid0IGxvb3AgYWdhaW4gZm9yIHNlY29uZGFyeSBTRVQgbW9kZXMgYW5kIGNhY2hlIGluZm9ybWF0aW9uIGluc3RlYWQuCiAgIC0gdmFyaW91cyBmaXhlcy4KICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbCBkaXJlY3RvcmllcyBmb3IgaGVhZGVycwogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tY29tcGlsZS1zdWJhZ2VudCBmb3IgYXV0b21hdHRlZCBzdWJhZ2VudCBjb21waWxhdGlvbiBmcm9tCiAgIG1pYm1vZHVsZSAuYyBmaWxlcyA7LSkKICAgCjIwMDItMDItMjIgMDk6MjcgIGR0czEyCgogICAqIHNubXBsaWIvOiBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWMgKFY0LTItcGF0Y2hlcy5bMSwxXSksCiAgIE1TRzAwMDAxLmJpbiAsIHdpbnNlcnZpY2UubWM6CgogICBBZGQgbWlzc2luZyBmaWxlcyBmb3IgV2luZG93cyBzZXJ2aWNlIG9wZXJhdGlvbi4KICAgCjIwMDItMDItMjIgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBKdXN0IGNsb3NlIHRoZSBtYWluIHNlc3Npb24gd2hlbiBzaHV0dGluZyBkb3duIHVuZGVyIFdpbmRvd3MsCiAgIG5vdCBldmVyeXRoaW5nIChzbyB0aGF0IGl0IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgc2h1dGRvd24gdHJhcCkuCiAgIAoyMDAyLTAyLTIyIDA4OjQwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmggLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfZW51bS5jICwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFR3ZWFrcyByZXF1aXJlZCB0byBnZXQgdGhlIGxpYnJhcnkgY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MgVkMrKwogICAKMjAwMi0wMi0yMiAwODozNyAgZHRzMTIKCiAgICogd2luMzIvOiBzbm1wc21faW5pdC5oICwKICAgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCAsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwgbGliYWdlbnQvbGliYWdlbnQuZHNwICwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCAsIGxpYnNubXAvbGlic25tcC5kc3AgLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLCBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwCiAgICwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwICwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AgLCBzbm1wZC9zbm1wZC5kc3AgLAogICBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCAsIHNubXBkZi9zbm1wZGYuZHNwICwKICAgc25tcGdldC9zbm1wZ2V0LmRzcCAsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCAsCiAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCAsIHNubXBzZXQvc25tcHNldC5kc3AgLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwICwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AgLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AgLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiAgICwgc25tcHRyYXAvc25tcHRyYXAuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKICAgLCBzbm1wdXNtL3NubXB1c20uZHNwICwgc25tcHZhY20vc25tcHZhY20uZHNwICwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgUHJvdmlkZSBXaW5kb3dzLXNwZWNpZmljIHZlcnNpb25zIG9mIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIGhlYWRlciBmaWxlcywKICAgYW5kIGFkZCB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlIHRvIHRoZSBwcm9qZWN0IGZpbGVzLgogICAKMjAwMi0wMi0yMiAwNzoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmg6CgogICBEZWZpbmUgc3RhbmRhcmQgT0lEIGxlbmd0aHMgaGVyZSAod2hlcmUgdGhleSdyZSBhdmFpbGFibGUgdG8gYW55CiAgIGZpbGUgd2FudGluZyB0byBhY2Nlc3MgdGhlIE9JRCBzdHJ1Y3R1cmVzKQogICAKMjAwMi0wMi0yMiAwMzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBTdXBwb3J0ICIuLi4uIC0zdSB7c2VjTmFtZX0gLi4uLiIgc3ludGF4CiAgIChpbiB0aGUgbm9ybWFsIGdldG9wdCBzdHlsZSAtIGkuZS4gbm8gbmVlZCBmb3Igc3Vycm91bmRpbmcgcXVvdGVzKQogICAKICAgSXQgc2hvdWxkIG5vdyBiZSBwb3NzaWJsZSB0byBzd2l0Y2ggdG8gdGhpcyBhcyB0aGUgcmVjb21tZW5kZWQgZm9ybQogICBmb3IgU05NUHYzIG9wdGlvbnMgLSBpZiB0aGF0J3Mgd2hhdCB3ZSB3YW50IHRvIGRvLgogICAgIFFuOiAgRG8gd2Ugd2FudCB0bz8KICAgCjIwMDItMDItMjEgMDg6MzkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTdXBwb3J0ICItM3Uge3NlY05hbWV9IiBzeW50YXggKCp3aXRoKiB0aGUgcXVvdGVzLCB1bmZvcnR1bmF0ZWx5KS4KICAgTm93IGNvbWVzIHRoZSBmdW4gYml0Li4uLi4KICAgCjIwMDItMDItMjEgMDc6NTQgIGR0czEyCgogICAqIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIEZpeCBib2d1cyBzdHJ1Y3R1cmUgY29tbWVudHMgaW4gdGhlIHNubXBkIHByb2plY3QgZmlsZS4KICAgCjIwMDItMDItMjEgMDc6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGRyb3AgaW5saW5lIChtb3JlIHRyb3VibGUgdGhhbiBpdCBpcyB3b3J0aCkKICAgCjIwMDItMDItMjEgMDU6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXB2My5jOgoKICAgRmlyc3QgcGFzcyBhdCBhbiBTTk1QdjMgImNvbWJpbmVkLW9wdGlvbiIgY29tbWFuZC1saW5lIGZsYWcgKC0zeCkuCiAgIChJbiAqYWRkaXRpb24qIHRvIHRoZSBjdXJyZW50IGNvbW1hbmQtbGluZSBmbGFncywgSSBoYXN0ZW4gdG8gYWRkISkKICAgCiAgIFN1cHBvcnRzICAiLi4uIC0zdXtzZWNOYW1lfSAuLi4iIGFuZCAiLi4uIC0zdT17c2VjTmFtZX0gLi4uIiBzeW50YXgsCiAgIGJ1dCBub3QgdGhlIHNlcGFyYXRlICIuLi4gLTN1IHtzZWNOYW1lfSAuLi4iIHN0eWxlLgogICAKICAgSSBoYXZlbid0IHRvdWNoZWQgdGhlIGRvY3VtZW50YXRpb24gb3IgdXNhZ2UgbWVzc2FnZSB0byBtZW50aW9uIHRoaXMuCiAgIAoyMDAyLTAyLTIwIDE4OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICB1c2UgZm9yIGluc3RlYWQgb2YgY29udGludWUgZm9yIGxvb3BzLgogICAKMjAwMi0wMi0yMCAxMzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIC0gQWRkIGEgLS1xdWl0IG9wdGlvbiAoYW5kIGEgY29uZmlndXJhdGlvbiB0b2tlbikgc28gdGhhdCB5b3UgY2FuIG5vdwogICAgIGNyZWF0ZSBuZXcgdXNlcnMgYnkgc2ltcGx5IGNhbGxpbmcgc25tcGQgYXM6CiAgICAgICBzbm1wZCAtLWNyZWF0ZVVzZXI9Im15dXNlciBNRDUgbXlwYXNzd29yZCIgLS1xdWl0CiAgIC0gQ2hhbmdlIFJFQURNRS5zbm1wdjMgZG9jdW1lbnRhdGlvbiB0byBtYWtlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCiAgIAoyMDAyLTAyLTIwIDA2OjE2ICBqYnBuCgogICAqIGFwcHMvTWFrZWZpbGUuaW4gLCBhcHBzL3NubXB0cmFwZC5jICwgY29uZmlndXJlCiAgICwgY29uZmlndXJlLmluICwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBsaWJ3cmFwIHN1cHBvcnQgdG8gc25tcHRyYXBkICh1bnRlc3RlZCkKICAgCiAgICAgLSBtaW5vciBjaGFuZ2VzIHRvIHNubXBkIGxpYndyYXAgc3VwcG9ydAogICAKICAgICAtIGNvbmZpZ3VyZSBmaXhlcyBmb3IgbGlid3JhcAogICAKMjAwMi0wMi0yMCAwMzowNyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIHRvIG1ha2Ugc3VyZSBidWZmZXIgaXMgaW5pdGlhbGx5CiAgICAgICB6ZXJvLXRlcm1pbmF0ZWQgKGluIGNhc2Ugb2YgMCB2YXJiaW5kcykuICBCdWcgIzUxODcwMCwgbm90ZWQgYnkKICAgICAgIEFuZHJlYXMgSGFydG1hbm4uCiAgIAoyMDAyLTAyLTIwIDAzOjA2ICBqYnBuCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAgIC0gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMsIHRvIGF2b2lkIGdhcmJhZ2UgcHJpbnRpbmcgcHJvYmxlbXMsIGFzCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgaW4gYnVnICM1MjAyMjAuCiAgIAoyMDAyLTAyLTIwIDAzOjAzICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgQ2xlYW4gdXAgdGhlIG9iamVjdCBmaWxlcyBhcyB3ZWxsCiAgIAoyMDAyLTAyLTIwIDAxOjQxICBkdHMxMgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIElnbm9yZSB0aGUgbmV3IGNyb3Agb2YgZ2VuZXJhdGVkIG1hbiBwYWdlcy4KICAgCjIwMDItMDItMjAgMDE6MzcgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIFN1cHBseSBtaXNzaW5nIGRvdWJsZS1xdW90ZSAgKG9vcHMpCiAgIAoyMDAyLTAyLTE5IDA0OjAxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEluaXRpYWxpc2UgdGhlIGxpYnJhcnkgaW50ZXJuYWxzICpiZWZvcmUqIHBhcnNpbmcgdGhlIGNvbW1hbmQgbGluZSwKICAgc28gdGhhdCBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgICBRbjogIFNob3VsZCAnX2luaXRfc25tcCcgYmUgaW52b2tlZCBieSAnc25tcF9wYXJzZV9hcmdzJyBpdHNlbGY/CiAgIAoyMDAyLTAyLTE5IDAzOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWFrZSBzdXJlIHRoYXQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdCBmbGFncyB3b3JrIGluIGEgY29uc2lzdGVudCBtYW5uZXIuCiAgIChpLmUuIHRoZSBsYXN0IG9uZSBpcyB1c2VkLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGludGVybmFsIG9yZGVyaW5nKS4KICAgCjIwMDItMDItMTggMjE6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYyAsIHRlc3RoYW5kbGVyLmM6CgogICBpbmNsdWRlIHN0ZGxpYi5oCiAgIAoyMDAyLTAyLTE4IDIxOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCBpbmNsdWRlcwogICAKMjAwMi0wMi0xOCAyMTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgLSBtYWtlIGNhcGFiaWxpdHkgdG8gY3JlYXRlIGRhdGEgY29udGV4dHMgZnJvbSBhIGxvb3AgY29udGV4dCAobGVzcwogICAgIG1hbGxvY3Mgd2hlbiBtYWxsb2NzIGFyZW4ndCBvdGhlcndpc2UgYXZvaWRhYmxlKS4KICAgLSBkb24ndCBkb3VibGUgZnJlZSB0aGUgZGF0YSBjb250ZXh0IHBvaW50ZXIuCiAgIAoyMDAyLTAyLTE4IDIxOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIGFsbCBhZ2VudCBoZWxwZXJzLgogICAKMjAwMi0wMi0xOCAyMTo0OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oOgoKICAgcHJvdGVjdCBpbmNsdWRlIGZyb20gZG91YmxlIGluY2x1ZGUKICAgCjIwMDItMDItMTggMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIGZpeCBpbmNsdWRlIHBhdGhzCiAgIAoyMDAyLTAyLTE4IDAyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBUd2VhayB0aGUgbGlzdCBvZiBoZWFkZXIgZmlsZXMgdG8gYmUgaW5zdGFsbGVkICh0aGFua3MgdG8gQ2hyaXN0b3BoIE1hbW1pdHpzY2gpCiAgIAoyMDAyLTAyLTE4IDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jIChWNC0yLXBhdGNoZXMuNyksIGhyX3N0b3JhZ2UuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiB1bmhlbHBmdWwgT1NGIGRlZmluaXRpb25zICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE4IDAwOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuMyksIGFzbjEuYzoKCiAgIGRvbid0IGJ1aWxkIG9pZCdzIHdpdGggPjEyOCBsZW5ndGggc3ViaWRzLiAgKHNlZSBidWcgIzUxODg1NSkKICAgCjIwMDItMDItMTYgMjM6MTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBORVQtU05NUC1NSUIudHh0ICwgTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0ICwKICAgTkVULVNOTVAtU1lTVEVNLU1JQi50eHQgLCBORVQtU05NUC1UQy50eHQ6CgogICB3aGl0ZSBzcGFjZSBjbGVhbiB1cC4gIChBR0VOVC1NSUIgbm90IGNoZWNrZWQgaW4gZHVlIHRvIG90aGVyCiAgIGluY29tcGxldGUgY2hhbmdlcykuCiAgIAoyMDAyLTAyLTE2IDAwOjE3ICBoYXJkYWtlcgoKICAgKiBORVdTICwgYWdlbnQvc25tcGQuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBmaW5pc2ggaW1wbGVtZW50aW5nIHNubXBfY29uZmlnKCJteSBjb25maWcgbGluZSIpCiAgICAgLSB3YXMgZG9uZSBiZWZvcmUsIGJ1dCBwcmV2aW91c2x5IGhhZCB0byBiZSBjYWxsZWQgb25seSBhZnRlcgogICAgICAgY29uZmlndXJhdGlvbiBmaWxlcyBoYWQgYmVlbiByZWFkLiAgTm93IGNhbiBiZSBjYWxsZWQgYXQgYW55IHRpbWUuCiAgIC0gbWFrZSBhbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBhcyAtLWxvbmdvcHRzIGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIC0gLS1zb21ldGhpbmc9dmFsdWUgLT4gInNvbWV0aGluZyB2YWx1ZSIKICAgICAtIC0tc29tZXRoaW5nICAgICAgIC0+ICJzb21ldGhpbmcgMSIgKHdvcmtzIGZvciBzZXR0aW5nIGJvb2xlYW5zIHRvIHRydWUpCiAgIAoyMDAyLTAyLTE2IDAwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaAogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgZml4IHJwbSBmb3IgNC4wLjMgYW5kIGFib3ZlIChvciB3aGVuZXZlciBpdCB3YXMgdGhhdCB3ZSBub3cgbmVlZCBsaWJycG1kYikKICAgCjIwMDItMDItMTYgMDA6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggbmV0LXNubXAtY29uZmlnIGluc3RhbGwvY2xlYW4vZXRjLgogICAKMjAwMi0wMi0xNSAyMjozNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS5ydWxlczoKCiAgIGluc3RhbGwgYWxsIHN5c3RlbSBhbmQgbWFjaGluZSBmaWxlcywgc2luY2UgdGhleSBpbmNsdWRlIGVhY2ggb3RoZXIKICAgCjIwMDItMDItMTUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0ICwgbWlicy9ORVQtU05NUC1NSUIudHh0ICwKICAgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQgLCBtaWJzL05FVC1TTk1QLVNZU1RFTS1NSUIudHh0CiAgICwgbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBTa2VsZXRvbiBmcmFtZXdvcmsgZm9yIHRoZSBOZXQtU05NUCBlbnRlcnByaXNlIHRyZWUuCiAgIChpbmNvcnBvcmF0aW5nIHRoZSBpbml0aWFsICduc1RyYW5zYWN0aW9uVGFibGUnLCBidXQgbm90aGluZyBlbHNlIGFzIHlldCkKICAgCjIwMDItMDItMTUgMDk6MTAgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmMgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KICAgCjIwMDItMDItMTUgMDc6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmggLCBzbm1wbGliL3dpbnNlcnZpY2UuYwogICAsIGFnZW50L3NubXBkLmMgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjICwgd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgU3VwcG9ydCBmb3IgcnVubmluZyBhcyBhIFdpbmRvd3Mgc2VydmljZS4KICAgKFN1cHBsaWVkIGJ5IFJhanUgS3Jpc2huYXBwYSAmIExhdGh1IFByYWJodSkKICAgCjIwMDItMDItMTUgMDc6MjUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIFN0b2tlIFdlcycgc2Vuc2Ugb2YgcGFyYW5vaWEgYnkgY29uY2VkaW5nIHdpdGhvdXQgY29tbWVudC4KICAgICAgIChXaGF0IG1pZ2h0IFNoaWVsZCBiZSBwbG90dGluZyBub3cuLi4uLi4pCiAgIAoyMDAyLTAyLTE1IDA3OjE5ICBqYnBuCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgICAtIGZpeCB0aW55IGZvcm1hdHRpbmcgZXJyb3IKICAgCjIwMDItMDItMTUgMDc6MTcgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIE5PVElGSUNBVElPTi1MT0ctTUlCIChzaW5jZSBpdCdzIG9uZSBvZiB0aGUgZGVmYXVsdCBsb2FkIGxpc3QhKQogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmg6CgogICBmaWxlIHdpbnNlcnZpY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UucmM6CgogICBmaWxlIHdpbnNlcnZpY2UucmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBmaWxlIHdpbnNlcnZpY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjA4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBJbmNsdWRlIHRoZSA8c3lzL3RpbWUuaD4gY2FzY2FkZSwgdG8gcGljayB1cCB0aGUgZGVmaW5pdGlvbiBvZiAndGltZXZhbCcKICAgCjIwMDItMDItMTUgMDQ6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBtaW5vciBjaGFuZ2UgdG8gYnJpbmcgdXNhZ2UgbWVzc2FnZSBpbiBsaW5lIHdpdGggbWFucGFnZQogICAKMjAwMi0wMi0xNSAwMzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENhdGNoIHVzZSBvZiB0aGUgdHJhbnNwb3J0IGFuZCBwb3J0IG9wdGlvbnMsIGFuZCBpc3N1ZSBhbiBhcHByb3ByaWF0ZQogICBlcnJvciBtZXNzYWdlLCBkZXNjcmliaW5nIHVzZSBvZiB0aGUgPGhvc3RuYW1lPiBwYXJhbWV0ZXIgaW5zdGVhZC4KICAgCjIwMDItMDItMTUgMDM6MTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIHNubXBfYXBpLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdCAqYmVmb3JlKiBwcm9jZXNzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLAogICByYXRoZXIgdGhhbiBhZnRlci4gIFRoYXQncyBwcm9iYWJseSBhIGJpdCBtb3JlIGZsZXhpYmxlOi0pCiAgIAoyMDAyLTAyLTE1IDAyOjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oICwgZGVmaW5pdGlvbnMuaCAsCiAgIG1pYl9hcGkuaCAsIG91dHB1dF9hcGkuaCAsIHBkdV9hcGkuaCAsIHNlc3Npb25fYXBpLmgKICAgLCBzbm1wdjNfYXBpLmggLCB0eXBlcy5oICwgdXRpbGl0aWVzLmggLAogICB2YXJiaW5kX2FwaS5oOgoKICAgUmVtb3ZlICduZXQtc25tcC1jb25maWcuaCcgZnJvbSB0aGUgbWFpbiBBUEkgaGVhZGVyIGZpbGVzLgogICBUaGlzIHdpbGwgaGF2ZSB0byBiZSAjaW5jbHVkZWQgc2VwYXJhdGVseSAoZWl0aGVyIGV4cGxpY2l0bHkKICAgb3IgdmlhIHRoZSBhbGwtaW4tb25lICduZXQtc25tcC1pbmNsdWRlcy5oJyBoZWFkZXIpCiAgIAoyMDAyLTAyLTE1IDAyOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgUkVBRE1FIHRvIGRlc2NyaWJlIHRoZSBzdGF0dXMgb2YgPG5ldC1zbm1wL2xpYnJhcnk+IGFuZCA8bmV0LXNubXA+IGhlYWRlciBmaWxlcy4KICAgCjIwMDItMDItMTUgMDI6MTMgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbiAsIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSB7c3lzdGVtLG1hY2hpbmV9LyouaCBoZWFkZXIgZmlsZXMgYXMgd2VsbC4KICAgCiAgIERvaW5nIHRoaXMgdmlhIHRoZSAnbWFuJyAmICdtaWJzJyBNYWtlZmlsZXMgaXMgYSBncm9zcyBoYWNrLAogICBhbmQgcmVhbGx5IG5lZWRzIHRvIGJlIGhhbmRsZWQgbW9yZSBjbGVhbmx5LiAgQnV0IGl0J3MgdGhlCiAgIGJlc3QgSSBjYW4gY29tZSB1cCB3aXRoIGF0IHRoZSBtb21lbnQuICBTb3JyeSAtIERhdmUuCiAgIAoyMDAyLTAyLTE1IDAxOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluICwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBVQ0QtY29tcGF0YWJpbGl0eSBoZWFkZXJzIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTE1IDAxOjU3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIE9ubHkgaW5zdGFsbCBzdWJkaXJlY3Rvcnkgc3R1ZmYgKm9uY2UqLiAgKERvbid0IGJlIHNvIGVudGh1c2lhc3RpYywgRGF2ZSEpCiAgIAoyMDAyLTAyLTE1IDAxOjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgUmVtb3ZlIHJlZHVuZGVudCAnLUNOJyBhbmQgJy1DTycgb3B0aW9ucyBmcm9tIHRoZSBleGFtcGxlIHNubXB1c20gY29tbWFuZC4KICAgICAoYXMgbWVudGlvbmVkIGJ5IFdlcyBvbiB0aGUgdXNlcnMgbWFpbGluZyBsaXN0IDIwMDItMDItMTMpCiAgICAgUW46IERvZXMgdGhpcyBuZWVkIHRvIGJlIGRvbmUgb24gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2ggYXMgd2VsbD8KICAgCjIwMDItMDItMTUgMDE6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmggLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92ZXJzaW9uLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgUmVzdG9yZSAndmVyc2lvbi5oJyBhcyBiZWluZyBhICJ0b3AtbGV2ZWwiIGhlYWRlciBmaWxlLgogICAKMjAwMi0wMi0xNSAwMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIGZ1bGwgc2V0IG9mIGxpYnJhcnkgaGVhZGVyIGZpbGVzLAogICByZXRhaW5pbmcgdGhlIHRvcC1sZXZlbCB2cyBsaWJyYXJ5IHN1YmRpcmVjdG9yeSBzcGxpdC4KICAgCjIwMDItMDItMTUgMDE6MTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIExvb2sgZm9yIHRyYW5zcG9ydC1yZWxhdGVkIGhlYWRlciBmaWxlcyBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbi4KICAgCjIwMDItMDItMTUgMDE6MDkgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRW5zdXJlIHBhcnRpYWwgaW5zdGFsbCB0YXJnZXRzIHJlY3Vyc2UgcHJvcGVybHkuCiAgIAoyMDAyLTAyLTE0IDA4OjE4ICBkdHMxMgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBMb29rIGZvciBtaWJfbW9kdWxlX2NvbmZpZy5oIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uCiAgIAoyMDAyLTAyLTE0IDA4OjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggbWFuOCBpbnN0YWxsIGRlZmluaXRpb25zCiAgIAoyMDAyLTAyLTE0IDA3OjQ4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcyAsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN1YnN0aXR1dGUgdmFsdWVzIGludG8gJ25ldC1zbm1wLWNvbmZpZycgcHJvcGVybHksIGFuZCBkb24ndCAnbWFrZSBjbGVhbicgaXQgYXdheS4KICAgCjIwMDItMDItMTQgMDc6MjIgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcwogICAKMjAwMi0wMi0xNCAwNzoxNCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzoxMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jICwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kICwgYXBwcy9NYWtlZmlsZS5kZXBlbmQgLAogICBhcHBzL3NubXBidWxrZ2V0LmMgLCBhcHBzL3NubXBnZXQuYyAsIGFwcHMvc25tcHN0YXR1cy5jCiAgICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCAsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsIGFnZW50L2FnZW50X3RyYXAuYwogICAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyBzcGFjZSBmcm9tIENQUEZMQUdTCiAgIAoyMDAyLTAyLTE0IDA2OjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oICwgZGVmaW5pdGlvbnMuaCAsCiAgIG1pYl9hcGkuaCAsIG5ldC1zbm1wLWluY2x1ZGVzLmggLCBvdXRwdXRfYXBpLmggLAogICBwZHVfYXBpLmggLCBzZXNzaW9uX2FwaS5oICwgc25tcHYzX2FwaS5oICwgdHlwZXMuaAogICAsIHV0aWxpdGllcy5oICwgdmFyYmluZF9hcGkuaDoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNjoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hc24xLmggLCBpbmNsdWRlL25ldC1zbm1wL2NhbGxiYWNrLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvZ2V0b3B0LmggLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL21pYi5oICwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfc3Rhc2guaCAsIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FsYXJtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9lbnVtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wa3NtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oICwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC91Y2RfY29tcGF0LmggLCBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRQogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCAsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmggLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgKICAgLCBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvY2FsbGJhY2suYyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIva2V5dG9vbHMuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvbWQ1LmMgLCBzbm1wbGliL21pYi5jCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmMgLCBzbm1wbGliL29pZF9hcnJheS5jICwKICAgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXV0aC5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfZW51bS5jICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXBfc2VjbW9kLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jICwKICAgc25tcGxpYi92YWNtLmM6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDQ6NDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9jYWxsYmFjay5jICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2tleXRvb2xzLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL21kNS5jICwgc25tcGxpYi9taWIuYwogICAsIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsIHNubXBsaWIvc25tcF9hbGFybS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2F1dGguYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIEZpcnN0IG1vdmVzIHRvd2FyZHMgdXNpbmcgdGhlICJwdWJsaWMiIEFQSSBoZWFkZXIgZmlsZXMgaW4gdGhlIGxpYnJhcnkKICAgY29kZSBhcyB3ZWxsIChjb25jZW50cmF0aW5nIG9uIG91dHB1dC9jb25maWcvdXRpbGl0eSBoZWFkZXIgZmlsZXMpLgogICAKMjAwMi0wMi0xNCAwMzoxNyAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ2xvc2UgYSBkYW5nbGluZyAiaWYiIGJsb2NrLiAgIChvb3BzISkKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jIChWNC0yLXBhdGNoZXMuNCksIGlmLmM6CgogICBDaGVjayBmb3IgcnVubmluZyBvZmYgdGhlIGVuZCBvZiBJL0YgdGFibGUgKHBhdGNoIGZyb20gUmVkSGF0KQogICAKMjAwMi0wMi0xNCAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIExhdGVzdCBSZWRIYXQgcnBtLXJlbGF0ZWQgcGF0Y2gKICAgCjIwMDItMDItMTQgMDE6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkb3B0IFJlZEhhdCdzIGNvbmZpZ3VyZSB0ZXN0aW5nIGZvciBSUE0gbGlicmFyaWVzCiAgIAoyMDAyLTAyLTEzIDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIE1ha2UgSm9obiB0cnVzdCBoaXMgY29kZQogICAKMjAwMi0wMi0xMyAwODozNCAgamJwbgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgICAgLSB0cmFuc3BvcnQgZml4ZXMgKHVudGVzdGVkLCBzdGlsbCAjaWYgMCkKICAgCjIwMDItMDItMTMgMDg6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWFyayBzb21lIEpvaG4tdG8tZG8tc2VjdGlvbnMKICAgCjIwMDItMDItMTMgMDc6NTcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oICwgbWFuL3NubXBjbWQuMS5kZWYgLAogICBzbm1wbGliL21pYi5jOgoKICAgU3dpdGNoIHRvIHVzaW5nIC1PUyBzdHlsZSBvdXRwdXQgYnkgZGVmYXVsdCwgYW5kIGRyb3AgdGhlIHJlcXVpcmVtZW50CiAgIGZvciBmdWxsIE9JRHMgdG8gc3RhcnQgd2l0aCAnLicsIHBsdXMgY29tbWFuZC1saW5lIG9wdGlvbnMgdG8gcmVzdG9yZQogICB0aGUgb3JpZ2luYWwgVUNELXN0eWxlIGJlaGF2aW91ci4KICAgCjIwMDItMDItMTMgMDc6MzYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBBcHBseSBKb2huJ3MgZml4IGZvciBidWdzICM0ODkzMzYgYW5kICM1MDgxNDYgKGR1cGxpY2F0ZSBjb2x1bW5zIGFuZAogICBjb2x1bW5zIGluIHdyb25nIG9yZGVyKSB0byB0aGUgbWFpbiBicmFuY2ggYXMgd2VsbC4KICAgCjIwMDItMDItMTIgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGNvbnN0IGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogLmN2c2lnbm9yZSAsIEFTTi8uY3ZzaWdub3JlICwgYWdlbnQvLmN2c2lnbm9yZQogICAsIGRlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZToKCiAgIGFkZCAuY3ZzaWdub3JlIGZpbGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBhZGQgYWdlbnQvYWdlbnRfaGFuZGxlci5oCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50Lmg6CgogICBjb25zdCBhZGRpdGlvbnMuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBBZGQgc3RyaW5nLmgKICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGFkZCBoZWFkZXIuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXhlcyB0byByZWVuYWJsZSBkaXNtYW4gZXZlbnQgc3R1ZmYgZm9yIDUuMCBjb2RlLiAgTm90IGRvbmUgdGhlCiAgICJyaWdodCIgd2F5LCBidXQgaXQgd29ya3MuCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gLVdhbGwgZml4ZXMKICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gYWRkIHN0ZGxpYi5oCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBubyBsb25nZXIgdXNlZCAiZHVtcF92YXIiIHJvdXRpbmUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGNvbnN0IHNwZWNpZmljIGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbmV3IHBlcmwgc3BlY2lmaWMgZmVhdHVyZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC5QSE5PWSBtb2RzCiAgIAoyMDAyLTAyLTEyIDA3OjIyICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9sb2dnaW5nX2FwaS5oICwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmg6CgogICBSZW5hbWUgdGhlIGxvZ2dpbmcgJiByZWxhdGVkIG91dHB1dCBBUEkgaGVhZGVyIGZpbGUsIHRvIGJldHRlcgogICByZWZsZWN0IHRoZSBzY29wZSBvZiB0aGlzIEFQSS4gIChBcyBzdWdnZXN0ZWQgYnkgV2VzICYgSm9obikKICAgCjIwMDItMDItMTIgMDc6MjEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGFtZW5kIGZpeCB0byBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgdG8KICAgICAgIGFjdHVhbGx5IGFkZCAtbG5zbCB0byBsaW5rIHBhcmFtZXRlcnMhCiAgIAoyMDAyLTAyLTEyIDA1OjM5ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIC0tIFVTRV9MSUJXUkFQCiAgICAgICB3YXMgbm90IGJlaW5nICNkZWZpbmVkIGluIHRoZSBjYXNlIHdoZXJlIC1sbnNsIGlzIG5lZWRlZCBpbiBhZGRpdGlvbgogICAgICAgdG8gLWx3cmFwLgogICAKMjAwMi0wMi0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBsaWIgZGVwZW5kZW5jeSBmaXggZm9yIHNubXBkIHRhcmdldAogICAKMjAwMi0wMi0xMSAwODoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmggLCBpbmNsdWRlL25ldC1zbm1wL21pYi5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmggLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCAsIHNubXBsaWIvY211X2NvbXBhdC5jICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3BhcnNlLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIEV4dHJhY3QgQ01VX0NPTVBBVEFCSUxJVFkgY29kZSwgYW5kIGV4cGxpY2l0bHkgZGVwcmVjYXRlZCBVQ0QgY29kZSBpbnRvIHNlcGFyYXRlIGZpbGVzLgogICAKMjAwMi0wMi0xMSAwODoyMyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfcGFyc2VfYXJncy5jOgoKICAgVXNlIHRoZSAnZHNfc2V0X3h4eCcgbGlicmFyeSByb3V0aW5lcywgcmF0aGVyIHRoYW4gdGhlIG9sZCAnc25tcF9zZXRfeHh4JyBjYWxscwogICAKMjAwMi0wMi0xMSAwNDo0NSAgamJwbgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYgLCBzbm1wX2NvbmZpZy41LmRlZiAsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgbWlub3Igc3BlbGxpbmcgdHdlYWtzCiAgIAoyMDAyLTAyLTExIDA0OjI3ICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluICwgZGVmYXVsdF9zdG9yZS4zLnRvcCAsIG1pYl9hcGkuMwogICAsIG1pYl9hcGkuMy5kZWYgLCBzbm1wX2FnZW50X2FwaS4zICwKICAgc25tcF9hZ2VudF9hcGkuMy5kZWYgLCBzbm1wX2FsYXJtLjMgLCBzbm1wX2FsYXJtLjMuZGVmCiAgICwgc25tcF9hcGkuMyAsIHNubXBfYXBpLjMuZGVmICwgc25tcF9zZXNzX2FwaS4zCiAgICwgc25tcF9zZXNzX2FwaS4zLmRlZiAsIHNubXBfdHJhcF9hcGkuMyAsCiAgIHNubXBfdHJhcF9hcGkuMy5kZWYgLCB2YXJpYWJsZXMuNSAsIHZhcmlhYmxlcy41LmRlZjoKCiAgICAgLSBnZW5lcmF0ZSB0aGUgcmVzdCBvZiB0aGUgbWFudWFsIHBhZ2VzICh0byBnZXQgdmVyc2lvbiBpbiBmb290ZXIpCiAgIAoyMDAyLTAyLTA4IDE1OjU2ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oICwgbWliX21vZHVsZV9jb25maWcuaCAsCiAgIG1pYl9tb2R1bGVfaW5pdHMuaCAsIGxpYnNubXAvbGlic25tcC5kc3AgLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AgLCBzbm1wZC9zbm1wZC5kc3A6CgogICB3aW4zMiBzcGVjaWZpYyBwb3J0aW9ucyBvZiBwYXRjaCA1MDMyNTYKICAgCjIwMDItMDItMDggMTU6NTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBwYXRjaCM1MDMyNTY6IGhlbHBlcnMgbGlicmFyeSBkZWZpbml0aW9uIGZvciB3aW4zMgogICAKMjAwMi0wMi0wOCAwOTowOCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXQgdHdlYWthZ2UKICAgCjIwMDItMDItMDggMDg6MjIgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMyAsIHNubXBfYWdlbnRfYXBpLjMgLCBzbm1wX2FsYXJtLjMKICAgLCBzbm1wX2FwaS4zICwgc25tcF9zZXNzX2FwaS4zICwgc25tcF90cmFwX2FwaS4zOgoKICAgUmVmZXJlbmNlIHRoZSBuZXcgaGVhZGVyLWZpbGVzIGluIHNlY3Rpb24gMyBtYW4gcGFnZSBzeW5vcHNlcy4KICAgCjIwMDItMDItMDggMDc6NTAgIGpicG4KCiAgICogbWFuLzogbWliX2FwaS4zICwgcmVhZF9jb25maWcuMy5kZWYgLCBzbm1wX2FnZW50X2FwaS4zCiAgICwgc25tcF9jb25maWcuNS5kZWYgLCBzbm1wX3RyYXBfYXBpLjMgLAogICBzbm1wY21kLjEuZGVmICwgc25tcGNvbmYuMS5kZWYgLCBzbm1wZC5jb25mLjUuZGVmICwKICAgdmFyaWFibGVzLjU6CgogICAgIC0gbW9yZSBtaW5vciB0d2Vha3MgKHVjZC1zbm1wIC0+IE5ldC1TTk1QIGV0Yy4pCiAgIAoyMDAyLTAyLTA4IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgbG9jYWwgbW9kdWxlcyBmcm9tIGRlcGVuZGVuY3kgbGlzdAogICAKMjAwMi0wMi0wOCAwNzo0NSAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9pbmRleC5jICwKICAgYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMKICAgLCBhdXRvX25saXN0LmMgLCBrZXJuZWwuYyAsIG1pYl9tb2R1bGVzLmMgLAogICBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYyAsIHNubXBkLmMgLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBoZWxwZXJzL2luc3RhbmNlLmMgLCBoZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBoZWxwZXJzL251bGwuYyAsIGhlbHBlcnMvb2xkX2FwaS5jICwgaGVscGVycy9yZWFkX29ubHkuYwogICAsIGhlbHBlcnMvc2VyaWFsaXplLmMgLCBoZWxwZXJzL3RhYmxlLmMgLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBoZWxwZXJzL3RhYmxlX2RhdGEuYyAsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jICwgaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIG1pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBtaWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwgbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYyAsCiAgIG1pYmdyb3VwL1Jtb24vYWxhcm0uYyAsIG1pYmdyb3VwL1Jtb24vZXZlbnQuYyAsCiAgIG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwgbWliZ3JvdXAvUm1vbi9yb3dzLmMgLAogICBtaWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYyAsCiAgIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYwogICAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIG1pYmdyb3VwL21pYklJL2F0LmMKICAgLCBtaWJncm91cC9taWJJSS9pY21wLmMgLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgLCBtaWJncm91cC9taWJJSS9pcC5jICwgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBtaWJncm91cC9taWJJSS9pcHY2LmMgLCBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIG1pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwogICAsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMgLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgLCBtaWJncm91cC9taWJJSS90Y3AuYyAsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS91ZHAuYyAsIG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgLCBtaWJncm91cC9taXNjL2RsbW9kLmMgLCBtaWJncm91cC9taXNjL2lwZndhY2MuYwogICAsIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBtaWJncm91cC9zbXV4L3NtdXguYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLCBtaWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYyAsIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAsIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jICwKICAgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLCBtaWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMKICAgLCBtaWJncm91cC90dW5uZWwvdHVubmVsLmMgLCBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFVzZSB0aGUgbmV3ICduZXQtc25tcC1pbmNsdWRlcycgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzLAogICBpbiBwbGFjZSBvZiB0aGUgKHVuaW5zdGFsbGVkKSAnbWliaW5jbC5oJy4KICAgICBXaGVlZWVlLi4uLi4uCiAgIAoyMDAyLTAyLTA4IDA3OjE3ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiAsIHNubXBfYWdlbnRfYXBpLjMgLAogICBzbm1wX2FsYXJtLjMgLCBzbm1wX2FwaS4zICwgc25tcF9jb25maWcuNS5kZWYgLAogICBzbm1wX3Nlc3NfYXBpLjMgLCBzbm1wZC4xLmRlZiAsIHNubXBkLmNvbmYuNS5kZWYgLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgICAgLSBzb21lIGVkaXRpbmcgdG8gbWFrZSBzdHlsZSBjb25zaXN0ZW50LCBhZGQgc29tZSBtaXNzaW5nIG9wdGlvbnMsCiAgICAgICBjaGFuZ2UgdWNkLXNubXAgdG8gTmV0LVNOTVAgYW5kIHRoaW5ncyBsaWtlIHRoYXQuCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSBnZW5lcmF0ZSBtYW4gcGFnZXMgYXQgY29tcGlsZSB0aW1lCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEgLCBzbm1wYnVsa3dhbGsuMSAsCiAgIHNubXBidWxrZ2V0LjEuZGVmICwgc25tcGJ1bGt3YWxrLjEuZGVmICwgc25tcGNtZC4xCiAgICwgc25tcGNtZC4xLmRlZiAsIHNubXBjb25mLjEgLCBzbm1wY29uZi4xLmRlZgogICAsIHNubXBnZXQuMSAsIHNubXBnZXQuMS5kZWYgLCBzbm1wZ2V0bmV4dC4xICwKICAgc25tcGdldG5leHQuMS5kZWYgLCBzbm1wc2V0LjEgLCBzbm1wc2V0LjEuZGVmICwKICAgc25tcHN0YXR1cy4xICwgc25tcHN0YXR1cy4xLmRlZiAsIHNubXB0YWJsZS4xICwKICAgc25tcHRhYmxlLjEuZGVmICwgc25tcHRlc3QuMSAsIHNubXB0ZXN0LjEuZGVmICwKICAgc25tcHRyYW5zbGF0ZS4xICwgc25tcHRyYW5zbGF0ZS4xLmRlZiAsIHNubXB0cmFwLjEKICAgLCBzbm1wdHJhcC4xLmRlZiAsIHNubXB1c20uMSAsIHNubXB1c20uMS5kZWYgLAogICBzbm1wd2Fsay4xICwgc25tcHdhbGsuMS5kZWYgLCBzbm1wdHJhcGQuOCAsCiAgIHNubXB0cmFwZC44LmRlZjoKCiAgICAgLSByZW5hbWUgbWFuIHBhZ2VzIHdoaWNoIGFyZSBub3cgZ2VuZXJhdGVkIGF0IGNvbXBpbGUgdGltZSBpbiBvcmRlcgogICAgICAgdG8gcGljayB1cCB0aGUgdmVyc2lvbiAod2hpY2ggZ2V0cyBwdXQgaW4gdGhlIGZvb3RlcikuCiAgIAogICAgIC0gYWxzbyBzb21lIGVkaXRpbmcgdG8gbWFrZSBzdHlsZSBjb25zaXN0ZW50LCBhZGQgc29tZSBtaXNzaW5nIG9wdGlvbnMsCiAgICAgICBjaGFuZ2UgdWNkLXNubXAgdG8gTmV0LVNOTVAgYW5kIHRoaW5ncyBsaWtlIHRoYXQuCiAgIAoyMDAyLTAyLTA4IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYkpKLmggLCBtaWJKSi9pY21wLmMgLCBtaWJKSi9pY21wLmgKICAgLCBtaWJKSi9pZl9maWVsZHMuaCAsIG1pYkpKL2ludGVyZmFjZXMuYyAsCiAgIG1pYkpKL2ludGVyZmFjZXMuaCAsIG1pYkpKL2lwLmMgLCBtaWJKSi9pcC5oICwKICAgbWliSkovaXBBZGRyLmMgLCBtaWJKSi9pcEFkZHIuaCAsIG1pYkpKL2lwTWVkaWEuYyAsCiAgIG1pYkpKL2lwTWVkaWEuaCAsIG1pYkpKL2lwUm91dGUuYyAsIG1pYkpKL2lwUm91dGUuaAogICAsIG1pYkpKL2lwdjYuYyAsIG1pYkpKL2lwdjYuaCAsIG1pYkpKL2tlcm5lbF9ocHV4LmMKICAgLCBtaWJKSi9rZXJuZWxfaHB1eC5oICwgbWliSkova2VybmVsX2xpbnV4LmMgLAogICBtaWJKSi9rZXJuZWxfbGludXguaCAsIG1pYkpKL3NubXBfbWliLmMgLAogICBtaWJKSi9zbm1wX21pYi5oICwgbWliSkovc3lzT1JUYWJsZS5jICwKICAgbWliSkovc3lzT1JUYWJsZS5oICwgbWliSkovc3lzdGVtX21pYi5jICwKICAgbWliSkovc3lzdGVtX21pYi5oICwgbWliSkovdGNwLmMgLCBtaWJKSi90Y3AuaCAsCiAgIG1pYkpKL3RjcFRhYmxlLmMgLCBtaWJKSi90Y3BUYWJsZS5oICwgbWliSkovdWRwLmMgLAogICBtaWJKSi91ZHAuaCAsIG1pYkpKL3VkcFRhYmxlLmMgLCBtaWJKSi91ZHBUYWJsZS5oICwKICAgbWliSkovdmFjbV92YXJzLmMgLCBtaWJKSi92YWNtX3ZhcnMuaDoKCiAgIFJlbW92ZSB0aGUgYXR0ZW1wdGVkICdtaWJJSScgcmUtd3JpdGUuCiAgIElmIHdlIHdhbnQgdG8gdGlkeSB1cCBtaWJJSSwgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byB1c2UgdGhlIG5ldyBhZ2VudCBBUElzLgogICAKMjAwMi0wMi0wOCAwNjo0NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IG5ldC1zbm1wLWluY2x1ZGVzLmggLAogICBhZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQnJpbmcgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzIGNsb3NlciBpbiBsaW5lIHdpdGggdGhlIGV4aXN0aW5nICJtaWJpbmNsLmgiIGZpbGUKICAgCjIwMDItMDItMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHN5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiAgIChWNC0yLXBhdGNoZXMuWzYsM10pLCBob3N0L2hyX3N0b3JhZ2UuYyAsIHVjZC1zbm1wL21lbW9yeS5jOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbWVtb3J5IGFuZCBzd2FwIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgZm9yIFNvbGFyaXMKICAgKGZyb20gcGF0Y2ggIzUwNTQ5OCAtIHRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCiAgIAoyMDAyLTAyLTA4IDAyOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQ29uc29saWRhdGUgaWRlbnRpY2FsIE1JQiBvYmplY3QgZW50cmllcyAoV0lOMzIvbm9uLVdJTjMyKQogICAKMjAwMi0wMi0wOCAwMDo1MCAgamJwbgoKICAgKiBtYW4vUkVBRE1FOgoKICAgICAtIHJlbW92ZSBjaHJvbmljYWxseSBkYXRlZCB1bmhlbHBmdWwgUkVBRE1FCiAgIAoyMDAyLTAyLTA3IDEzOjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnJ1bGVzICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgbWFrZWZpbGVpbmRlcGVuZC5wbCAsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCAsIGFnZW50L01ha2VmaWxlLmluICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiAgICwgYXBwcy9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiAsIGxvY2FsL01ha2VmaWxlLmluCiAgICwgbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbWFrZSBtYWtlJ3MgTWFrZWZpbGUncyB0byBtYWtlIGJldHRlciBtYWtpbmcKICAgCjIwMDItMDItMDcgMTM6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNoZWNrIGxvY2FsIHBhdGhlcwogICAKMjAwMi0wMi0wNyAxMjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRW5zdXJlIGFnZW50IHJldHVybnMgdGhlIGNvcnJlY3QgZXJyb3IgY29kZXMgZm9yIFVORE8gYW5kIENPTU1JVCBmYWlsdXJlcy4KICAgCjIwMDItMDItMDcgMTE6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMICwgU05NUC54cyAsIHQvc3RhcnRhZ2VudC5wbDoKCiAgIGF0dGVtcHQgYXQgcG9ydGluZyBKb2UncyBTTk1QIG1vZHVsZSB0byBuZXQtc25tcC4KICAgSXQgY29tcGlsZXMsIGJ1dCBvbmx5IHNvbWUgb2YgdGhlIHRlc3RzIHN1Y2NlZWQuCiAgIAoyMDAyLTAyLTA3IDEwOjA5ICBqYnBuCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AgLCBtaWJfYXBpLjMgLAogICByZWFkX2NvbmZpZy4zLmRlZiAsIHNubXAuY29uZi41LmRlZiAsIHNubXBfYWdlbnRfYXBpLjMKICAgLCBzbm1wX2FsYXJtLjMgLCBzbm1wX2FwaS4zICwgc25tcF9jb25maWcuNS5kZWYKICAgLCBzbm1wX3Nlc3NfYXBpLjMgLCBzbm1wX3RyYXBfYXBpLjMgLCBzbm1wYnVsa2dldC4xCiAgICwgc25tcGJ1bGt3YWxrLjEgLCBzbm1wY29uZi4xICwgc25tcGQuY29uZi41LmRlZgogICAsIHNubXBkZWx0YS4xICwgc25tcGRmLjEgLCBzbm1wZ2V0LjEgLAogICBzbm1wZ2V0bmV4dC4xICwgc25tcG5ldHN0YXQuMSAsIHNubXBzZXQuMSAsCiAgIHNubXBzdGF0dXMuMSAsIHNubXB0YWJsZS4xICwgc25tcHRlc3QuMSAsCiAgIHNubXB0cmFuc2xhdGUuMSAsIHNubXB0cmFwLjEgLCBzbm1wdHJhcGQuY29uZi41LmRlZgogICAsIHNubXB1c20uMSAsIHNubXB3YWxrLjEgLCB2YXJpYWJsZXMuNToKCiAgICAgLSBhZGQgTmV0LVNOTVAgaW4gaGVhZGVyIG9mIGFsbCBtYW4gcGFnZXMKICAgCjIwMDItMDItMDcgMDk6NTIgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSB1cGRhdGUgc3R5bGUgdG8gbWF0Y2ggc25tcGQgYW5kIHNubXB0cmFwZCBtYW4gcGFnZXMKICAgCjIwMDItMDItMDcgMDg6MTUgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGZpeCBzcGVlbGluZyBtaXN0YWtlCiAgIAoyMDAyLTAyLTA3IDA4OjAwICBqYnBuCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgICAgLSBicmluZyB1cCB0byBkYXRlIHdpdGggc25tcHRyYXBkCiAgIAoyMDAyLTAyLTA3IDA3OjI4ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExICwgYWNjb25maWcuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmggLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmggLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFN1cHBvcnQgZm9yIEhQLVVYIDExLCBjb3VydGVzeSBvZiBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAyLTAyLTA3IDA2OjMwICBqYnBuCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgICAgLSBhbHBoYWJldGlzZSBvcHRpb25zCiAgIAogICAgIC0gYnJpbmcgbWFuIHBhZ2UgaW4gbGluZSB3aXRoIG5ldyBwb3NpdGlvbmFsIGFyZ3VtZW50cyBsaXN0ZW5pbmcKICAgICAgIGFkZHJlc3Mgc3BlY2lmaWNhdGlvbiBhbmQgYWRkIHNlY3Rpb24gZGVzY3JpYmluZyB0aGF0CiAgIAogICAgIC0gcHV0IE5ldC1TTk1QIGluIGhlYWRlcgogICAKMjAwMi0wMi0wNiAxMDowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmg6CgogICAgIC0gZml4IGJ1ZyBub3RlZCBieSBOaWVscwogICAKMjAwMi0wMi0wNiAwOToyNSAgamJwbgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jICwgc25tcHVzbS5jOgoKICAgICAtIG1pbm9yIHR3ZWFrcyBkdWUgdG8gY2hhbmdlIGluIGRlZmluaXRpb24gb2YgVVNNIE9JRHMuCiAgIAoyMDAyLTAyLTA2IDA5OjE3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gbW92ZSBVU00gT0lEIGRlZmluaXRpb25zIGludG8gc25tcHVzbS5jLCBtYWtlIHRoZW0gY29uc3QKICAgCiAgICAgLSBjb25zZXF1ZW50IGluY3JlYXNlIGluIGNvbnN0LW5lc3MgaW4gc29tZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICByZW1vdmUgaW50ZXJuYWwgbm90ZSBhYm91dCB2MyBhcGksIHdoaWNoIHNob3VsZCBiZSBwdWJsaWMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0Lmg6CgogICByZW1vdmVkIHVubmVlZGVkIGZpbGUKICAgCjIwMDItMDItMDYgMDk6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiAgICwgc25tcGxpYi9rZXl0b29scy5jICwgc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIGFkZCBjb25zdC1uZXNzIGZvciB0cmFuc2Zvcm0gdHlwZSBhcmdzCiAgIAoyMDAyLTAyLTA2IDA5OjAxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaAogICAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBhZGQgc29tZSBjb25zdC1uZXNzIGZvciBPSUQgYXJncyAobWFpbmx5IHNvIHRoYXQgZGVidWdtc2dfb2lkIHRha2VzCiAgICAgICBjb25zdCkuCiAgIAoyMDAyLTAyLTA2IDA4OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaAogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmggLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU3VwcG9ydCBmb3IgRHluaXgvUFRYIDQuNCwgY291cnRlc3kgb2YgUGF0cmljayBIZXNzLgogICAKMjAwMi0wMi0wNiAwNzo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSBmaXJzdCBhcmd1bWVudCBvZiBzbm1wX2R1cF9vYmppZCgpIGNvbnN0LgogICAKICAgICAtIGJldHRlciBoYW5kbGUgTlVMTCB2YWx1ZXMgaW4gc25tcF9kdXBfb2JqaWQoKS4KICAgCjIwMDItMDItMDYgMDc6MDkgIGR0czEyCgogICAqIEZBUSAsIG1hbi9zbm1wX3RyYXBfYXBpLjM6CgogICBDbGFyaWZ5IHRoZSBhcHBsaWNhYmlsaXR5IG9mICdzbm1wX3RyYXBfYXBpKDMpJyByb3V0aW5lcyB0byBBZ2VudFggc3ViYWdlbnRzLgogICAKMjAwMi0wMi0wNiAwNTo1OCAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAsIG5vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIHNubXBidWxrZ2V0LmMgLCBzbm1wYnVsa3dhbGsuYyAsIHNubXBkZWx0YS5jICwKICAgc25tcGRmLmMgLCBzbm1wZ2V0LmMgLCBzbm1wZ2V0bmV4dC5jICwgc25tcHNldC5jCiAgICwgc25tcHN0YXR1cy5jICwgc25tcHRhYmxlLmMgLCBzbm1wdGVzdC5jICwKICAgc25tcHRyYW5zbGF0ZS5jICwgc25tcHRyYXAuYyAsIHNubXB0cmFwZC5jICwKICAgc25tcHRyYXBkX2hhbmRsZXJzLmMgLCBzbm1wdHJhcGRfbG9nLmMgLCBzbm1wdXNtLmMKICAgLCBzbm1wdmFjbS5jICwgc25tcHdhbGsuYyAsIHNubXBuZXRzdGF0L2lmLmMKICAgLCBzbm1wbmV0c3RhdC9pbmV0LmMgLCBzbm1wbmV0c3RhdC9pbmV0Ni5jICwKICAgc25tcG5ldHN0YXQvbWFpbi5jICwgc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEFwcGxpY2F0aW9ucyBhbWVuZGVkIHRvIHVzZSB0aGUgbmV3LXN0eWxlIGxpYnJhcnkgaGVhZGVyIHN0cnVjdHVyZS4KICAgKEluIG1vc3QgY2FzZXMsIHNpbXBseSBpbmNsdWRpbmcgdGhlIHNpbmdsZSAiZnVsbCBBUEkiIGhlYWRlciBmaWxlKQogICAKMjAwMi0wMi0wNiAwNTo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFzbjEuaCAsIGNvbmZpZ19hcGkuaCAsCiAgIGRlZmluaXRpb25zLmggLCBsb2dnaW5nX2FwaS5oICwgbWliX2FwaS5oICwKICAgbmV0LXNubXAtaW5jbHVkZXMuaCAsIHBkdV9hcGkuaCAsIHNlc3Npb25fYXBpLmggLAogICBzbm1wdjNfYXBpLmggLCB0eXBlcy5oICwgdXRpbGl0aWVzLmggLCB2YXJiaW5kX2FwaS5oOgoKICAgRnJhbWV3b3JrIGZvciBuZXcgbGlicmFyeSBoZWFkZXIgZmlsZSBvcmdhbmlzYXRpb24sIHdpdGggZWlnaHQgbWFpbiBncm91cHMKICAgb2YgQVBJIHJvdXRpbmVzLiAgQ3VycmVudGx5IHRoZXNlIHN0aWxsIHJlZmVyIHRvIHRoZSBVQ0Qtc3R5bGUgc3R5bGUgaGVhZGVyCiAgIGZpbGVzIGZvciB0aGUgYWN0dWFsIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KICAgCjIwMDItMDItMDYgMDU6MzEgIGpicG4KCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgICAtIHJlcGxhY2UgdXNlIG9mICQ8IHdpdGggZXhwbGljaXQgZmlsZW5hbWUsIHNpbmNlIG5vbi1HTlUgbWFrZXMgc2VlbQogICAgICAgdG8gYmFyZiBvbiBpdAogICAKMjAwMi0wMi0wNiAwMzozMSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBGaXggaW5jb3JyZWN0IGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9uIGluICdtYWtlIGNsZWFuJwogICAKMjAwMi0wMi0wNiAwMzoxOCAgZHRzMTIKCiAgICogYWNjb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQcm90ZWN0IHRoZSBwcm9qZWN0IGNvbmZpZyBmaWxlIGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9uLgogICAKMjAwMi0wMi0wNiAwMzowNyAgamJwbgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzIGFuZAogICAgICAgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uLy4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMKICAgICAgIGFuZCBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDUgMTE6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy43KSwgQ09QWUlORzoKCiAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZSBmb3IgTkFJIGFuZCBDYW1icmlkZ2UKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwZXJsIGZpeGVzCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1vdmUgdGhlIG9pZHRyZWVfY29tcGFyZSBmdW5jdGlvbiB0bwogICB0aGUgbWFpbiBsaWJyYXJ5LgogICAKMjAwMi0wMi0wNSAwOTo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBwZXJsIGJ1aWxkIGZpeGVzLgogICAKMjAwMi0wMi0wNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBvcHBzLiAgUmVtb3ZlZCBmb3JjZWQgcGVybCBlbWJlZGRpbmcKICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB0aGlzIGZpbGUgc2hvdWxkbid0IGJlIGNoZWNrZWQgaW4KICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgYWNjb25maWcuaCAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvc25tcF9wZXJsLmMKICAgLCBhZ2VudC9zbm1wX3BlcmwucGwgLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gU3VwcG9ydCBmb3IgZW1iZWRkaW5nIHBlcmwgc3Vicm91dGluZXMgaW50byB0aGUgYWdlbnQgdG8gYmUgY2FsbGVkCiAgICAgYXMgaGFuZGxlcnMuCiAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zOgogICAgIC0td2l0aC1wZXJsLW1vZHVsZXMgYXR0ZW1wdHMgdG8gYnVpbGQgY29udGFpbmVkIG1vZHVsZXMgKHBvb3JseSBjdXJyZW50bHkpLgogICAgIC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgYWN0dWFsbHkgc3BlY2lmaWVzIHRvIGRvIHBlcmwgZW1iZWRkaW5nCiAgICAgd2l0aGluIHRoZSBhZ2VudC4KICAgCjIwMDItMDItMDQgMTY6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtICwgQVNOL0FTTi54cyAsIEFTTi9DaGFuZ2VzICwKICAgQVNOL01BTklGRVNUICwgQVNOL01ha2VmaWxlLlBMICwgQVNOL3Rlc3QucGwgLAogICBhZ2VudC9DaGFuZ2VzICwgYWdlbnQvTUFOSUZFU1QgLCBhZ2VudC9NYWtlZmlsZS5QTCAsCiAgIGFnZW50L2FnZW50LnBtICwgYWdlbnQvYWdlbnQueHMgLCBhZ2VudC90ZXN0LnBsICwKICAgYWdlbnQvdHlwZW1hcCAsIGRlZmF1bHRfc3RvcmUvQ2hhbmdlcyAsCiAgIGRlZmF1bHRfc3RvcmUvTUFOSUZFU1QgLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMICwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtICwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzICwgZGVmYXVsdF9zdG9yZS90ZXN0LnBsICwKICAgZGVmYXVsdF9zdG9yZS90eXBlbWFwOgoKICAgQmVnaW5uaW5ncyBvZiBuZXcgcGVybCBtb2R1bGVzIG5lZWRlZCB0byBpbXBsZW1lbnQgYW4gU05NUCBhZ2VudCAob3IKICAgYWdlbnR4IHN1YmFnZW50KSBpbnNpZGUgcGVybC4KICAgICAtIG5vdCBjb21wbGV0ZSB5ZXQuCiAgICAgLSBtYXkgY2hhbmdlLgogICAgIC0gYnV0IHdvcmtzLgogICAKMjAwMi0wMi0wNCAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3QgcHJvY2Vzc2luZyBmb3IgdGltZXRpY2tzIHdoZW4gRFNfTElCX05VTUVSSUNfVElNRVRJQ0tTIGlzCiAgICAgICBzZXQgKGNvcnJlY3RzIGJ1ZyAjNTExNzkzLCByZXBvcnRlZCBieSBBbm9ueW1vdXMpLgogICAKMjAwMi0wMi0wMSAwMTo1MCAgZHRzMTIKCiAgICogRkFROgoKICAgQ2xhcmlmeSB0aGUgcHJvY2VkdXJlIGZvciBjb21waWxpbmcgd2l0aCAnY2MnIHJhdGhlciB0aGFuICdnY2MnCiAgIAoyMDAyLTAxLTMxIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBzL3NubXBsaWJcLy8vOwogICAKMjAwMi0wMS0zMSAwNjo1NSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2UgY2xlYW4gYXMgcmVwb3J0ZWQgYnkgQnJhZGxleSBCb3phcnRoLgogICAKMjAwMi0wMS0zMCAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEJyaW5nIE1JQiB2YXJpYWJsZSB2ZXJzaW9uVGFnIGludG8gbGluZSB3aXRoIHRoZSBuZXcgPG5ldC1zbm1wL3ZlcnNpb24uaD4gdXNhZ2UKICAgCjIwMDItMDEtMjkgMTc6NTMgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCAsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTW92ZWQgdmVyc2lvbmluZyBpbmZvcm1hdGlvbiBmcm9tIHZlcnNpb24uaCB0bzoKICAgICAtIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgICAtIGRlZmluZSBuZXRzbm1wX2dldF92ZXJzaW9uKCk7CiAgICAgICAtIGNyZWF0ZSBhIGNvbnN0IGNoYXIgKk5ldFNubXBWZXJzaW9uSW5mbwogICAgIC0gaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGV4dGVybiB0aGUgYWJvdmUgY2hhciAqCiAgICAgICAtIHByb3RvdHlwZSB0aGUgZnVuY3Rpb24KICAgICAtIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBjcmVhdGUgYSBzdGF0aWMgdmFyaWFibGUgKHRoZSBvbGQgd2F5KSBhbmQgc2V0IGl0IHRvIE5ldFNubXBWZXJzaW9uSW5mbwogICAKMjAwMi0wMS0yOSAxNjowOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2ggLCB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtICwKICAgdGVzdHMvVDA1MHNubXB2M3RyYXAgLCB0ZXN0cy9UMDUxc25tcHYyY3RyYXAgLAogICB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSAsIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCAsCiAgIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAgLCB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAgLAogICB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLAogICB0ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIHRyYXAgdGVzdCBmaXhlcyBzbyB0aGUgbWFqb3JpdHkgb2YgdGhlIHRlc3RzIG5vdyB3b3JrLgogICAKMjAwMi0wMS0yOSAxNjowOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCBnZW5lcmF0ZSB1Y2Qtc25tcC1jb25maWcuaCBhbnkgbG9uZ2VyLgogICAKMjAwMi0wMS0yOSAxNToyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vdWx0cml4NC5oOgoKICAgbW92ZWQgcy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vKi5oCiAgIG1vdmVkIG0vZ2VuZXJpYy5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgKICAgCjIwMDItMDEtMjkgMDk6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLWMgYXJndW1lbnQgcGFyc2luZy4KICAgCjIwMDItMDEtMjkgMDk6MTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlZmVyZW5jZSBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGluc3RlYWQgb2YganVzdCBjb25maWcuaAogICAKMjAwMi0wMS0yOSAwOTowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBhdHRlbXB0IHRvIGZpeCB0aGUgdW5rbm93biBlbmdpbmVpZC91bmtub3duIHVzZXIgcHJvYmxlbXMgb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDItMDEtMjggMjE6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHdob29wcy4gIE1pc3NlZCBzb21lIC5oIGZpbGUgY2hlY2tzIGluIGNvbmZpZ3VyZS4gIFRoYW5rcyBSb2JlcnQuCiAgIAoyMDAyLTAxLTI4IDIxOjAzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIG1pbm9yIGZpeC4KICAgCjIwMDItMDEtMjggMjE6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgYWRkZWQgY29kZSBjb252ZXJ0IHNjcmlwdCBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgaGVhZGVyIGNvbnZlcnNpb24KICAgCjIwMDItMDEtMjggMjA6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYyAsIGFwcHMvc25tcGJ1bGt3YWxrLmMgLAogICBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYyAsIGFwcHMvc25tcGdldC5jCiAgICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwgYXBwcy9zbm1wc2V0LmMgLAogICBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMgLCBhcHBzL3NubXB0ZXN0LmMKICAgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsIGFwcHMvc25tcHRyYXAuYyAsCiAgIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHZhY20uYwogICAsIGFwcHMvc25tcHdhbGsuYyAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KICAgLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyAsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jICwgaW5jbHVkZS9uZXQtc25tcC9hc24xLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2NhbGxiYWNrLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmggLCBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oICwgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJzbm1wLmggLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9taWIuaCAsIGluY2x1ZGUvbmV0LXNubXAvbXRfc3VwcG9ydC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmggLCBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9ja2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oICwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC92YWNtLmggLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAogICAsIG1hbi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvYXNuMS5oICwgc25tcGxpYi9jYWxsYmFjay5jCiAgICwgc25tcGxpYi9jYWxsYmFjay5oICwgc25tcGxpYi9kYXRhX2xpc3QuYyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmggLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oICwgc25tcGxpYi9nZXRvcHQuaCAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIvaW50NjQuaCAsIHNubXBsaWIva2V5dG9vbHMuYwogICAsIHNubXBsaWIva2V5dG9vbHMuaCAsIHNubXBsaWIvbGNkX3RpbWUuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCAsIHNubXBsaWIvbGlic25tcC5oICwgc25tcGxpYi9tZDUuYwogICAsIHNubXBsaWIvbWQ1LmggLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9taWIuaAogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5jICwgc25tcGxpYi9tdF9zdXBwb3J0LmggLAogICBzbm1wbGliL29pZF9hcnJheS5jICwgc25tcGxpYi9vaWRfYXJyYXkuaCAsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL29pZF9zdGFzaC5oICwKICAgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9wYXJzZS5oICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zY2FwaS5jICwgc25tcGxpYi9zY2FwaS5oICwgc25tcGxpYi9zbm1wLXRjLmMKICAgLCBzbm1wbGliL3NubXAtdGMuaCAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wLmggLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmggLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaCAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmggLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5oICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5oICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBEb21haW4uaCAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uaCAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaCAsIHNubXBsaWIvc25tcF9hbGFybS5jCiAgICwgc25tcGxpYi9zbm1wX2FsYXJtLmggLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXBfYXV0aC5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5oICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXBfZGVidWcuaCAsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXBfZW51bS5oICwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5oICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wbGliL3NubXBfc2VjbW9kLmMgLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmggLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmggLCBzbm1wbGliL3NubXBrc20uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5oICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB1c20uaCAsIHNubXBsaWIvc25tcHYzLmMgLCBzbm1wbGliL3NubXB2My5oCiAgICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvc3lzdGVtLmggLAogICBzbm1wbGliL3Rvb2xzLmMgLCBzbm1wbGliL3Rvb2xzLmggLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmggLCBzbm1wbGliL3ZhY20uYyAsCiAgIHNubXBsaWIvdmFjbS5oICwgdGVzdGluZy9SVU5URVNUUyAsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCAsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oICwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmggLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oICwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMjA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfdHJhcC5jCiAgICwgYXV0b19ubGlzdC5jICwga2VybmVsLmMgLCBtaWJfbW9kdWxlcy5jICwKICAgc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmMgLCBzbm1wZC5jICwKICAgaGVscGVycy9idWxrX3RvX25leHQuYyAsIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgaGVscGVycy9pbnN0YW5jZS5jICwgaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgaGVscGVycy9udWxsLmMgLCBoZWxwZXJzL29sZF9hcGkuYyAsIGhlbHBlcnMvcmVhZF9vbmx5LmMKICAgLCBoZWxwZXJzL3NlcmlhbGl6ZS5jICwgaGVscGVycy90YWJsZS5jICwKICAgaGVscGVycy90YWJsZV9hcnJheS5jICwgaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBtaWJncm91cC9ob3N0X3Jlcy5oICwKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwgbWliZ3JvdXAvbWliaW5jbC5oICwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIG1pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMgLCBtaWJncm91cC9SbW9uL2FsYXJtLmMgLAogICBtaWJncm91cC9SbW9uL2V2ZW50LmMgLCBtaWJncm91cC9SbW9uL2hpc3RvcnkuYyAsCiAgIG1pYmdyb3VwL1Jtb24vcm93cy5jICwgbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICwgbWliZ3JvdXAvbWliSUkvYXQuYyAsIG1pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIG1pYmdyb3VwL21pYklJL2lwLmMgLAogICBtaWJncm91cC9taWJJSS9pcEFkZHIuYyAsIG1pYmdyb3VwL21pYklJL2lwdjYuYyAsCiAgIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwogICAsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMgLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgLCBtaWJncm91cC9taWJJSS90Y3AuYyAsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS91ZHAuYyAsIG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKICAgLCBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgKICAgLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsIG1pYmdyb3VwL21pYkpKL2ljbXAuYwogICAsIG1pYmdyb3VwL21pYkpKL2ludGVyZmFjZXMuYyAsIG1pYmdyb3VwL21pYkpKL2lwLmMKICAgLCBtaWJncm91cC9taWJKSi9pcEFkZHIuYyAsIG1pYmdyb3VwL21pYkpKL2lwTWVkaWEuYwogICAsIG1pYmdyb3VwL21pYkpKL2lwdjYuYyAsIG1pYmdyb3VwL21pYkpKL2tlcm5lbF9saW51eC5jCiAgICwgbWliZ3JvdXAvbWliSkovc25tcF9taWIuYyAsIG1pYmdyb3VwL21pYkpKL3N5c09SVGFibGUuYwogICAsIG1pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsIG1pYmdyb3VwL21pYkpKL3RjcC5jCiAgICwgbWliZ3JvdXAvbWliSkovdGNwVGFibGUuYyAsIG1pYmdyb3VwL21pYkpKL3VkcC5jICwKICAgbWliZ3JvdXAvbWliSkovdWRwVGFibGUuYyAsIG1pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jICwgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jICwKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jICwgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwogICAsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMTk6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBERUZJTkUgSVQgaW5zdGVhZAogICAKMjAwMi0wMS0yOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIGRlZmluZSBpdCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI1IDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBwYXJzZV9vbmVfb2lkX2luZGV4OgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGludCBmb3IgbGVuZ3RoJ3MgcHVsbGVkIGZyb20gdGhlIG9pZC4KICAgICAtIE1ha2Ugc3VyZSB0aGV5J3JlIGFsd2F5cyA8IDEyOAogICAKMjAwMi0wMS0yNSAwOToxMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNsb3NlciBhZGhlcmVuY2UgdG8gc3RhdGUgbWFjaGluZXMgZGVzY3JpYmVkIGluIFJGQyAyNTc0CiAgIAoyMDAyLTAxLTI1IDA5OjEwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIHVzbURlY3J5cHRpb25FcnJvciByZXBvcnRzIHRvIGJlIHNlbnQgaW4gYSBjb3VwbGUgb2YgZXh0cmEKICAgICAgIGNhc2VzOiBiYWQgc2FsdCAobGVuZ3RoICE9IDgpIGFuZCBsZW5ndGggb2YgZW5jcnlwdGVkIGRhdGEgbm90IGEKICAgICAgIG11bHRpcGxlIG9mIDggb2N0ZXRzIChwZXIgUkZDIDI1NzQpLgogICAKMjAwMi0wMS0yNSAwOTowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZm9yIHVua25vd24gbWVzc2FnZSB0eXBlcywgaW5jcmVtZW50IHNubXBJbkFTTlBhcnNlRXJycyBhbmQgZmFpbAogICAgICAgYXQgdGhlIHBvc3QtcGFyc2Ugc3RhZ2UuCiAgIAogICAgIC0gZm9yIG5vdGlmaWNhdGlvbiB0eXBlcywgaW5jcmVtZW50IHNubXBVbmtub3duUERVSGFuZGxlcnMgYW5kIGJhaWwKICAgICAgIG91dCBlYXJseS4KICAgCjIwMDItMDEtMjUgMDk6MDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZvciB1bmhhbmRsZWQgbWVzc2FnZXMgKGUuZy4gUkVTUE9OU0UgbWVzc2FnZXMgc2VudCB0byBhZ2VudHMpLAogICAgICAgaW5jcmVtZW50IHRoZSBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGNvdW50ZXIuCiAgIAogICAgIC0gdHJ5IHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZnMgd2hlbiBwb3N0LXBhcnNlIGZhaWxzLgogICAKMjAwMi0wMS0yNSAwNjoyNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNiksIHZhY21fdmFycy5jOgoKICAgICAtIGZpeCBtaW5vciBwcm9ibGVtIHdpdGggc3RvcmFnZVR5cGUgKGFsd2F5cyBva2F5IHRvIHNldCB0byBjdXJyZW50CiAgICAgICB2YWx1ZSkuCiAgIAogICAgIC0gZG9uJ3QgcmVzZXQgc29tZSB2YXJpYWJsZXMgdG8gb2xkIHZhbHVlIHVubGVzcyB3ZSBhY3R1YWxseSBzZXQKICAgICAgIHRoZW0gaW4gdGhlIGZpcnN0IHBsYWNlIQogICAKMjAwMi0wMS0yNSAwNTowMCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gZG9uJ3QgcHJpbnQgb3V0IGRlYnVnZ2luZyBpbmZvIGluIGEgZnVydGhlciBjYXNlIHdoZXJlIGl0IGhhcyBiZWVuCiAgICAgICBmcmVlKClkLgogICAKICAgICAtIHNldCB0aGUgZXhjZXB0aW9uIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIGVycm9yIG5vU3VjaE5hbWUgd2hlbgogICAgICAgd2UgaGF2ZSB0aGUgaW5jb3JyZWN0IG51bWJlciBvZiBpbmRpY2VzLgogICAKMjAwMi0wMS0yNSAwNDo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9SRUFETUUubmV3bGliOgoKICAgZmlsZSBSRUFETUUubmV3bGliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1MSUJSQVJZLUFQSS4KICAgCjIwMDItMDEtMjUgMDQ6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIG1vdmUgZGVidWdnaW5nIG91dHB1dCB0byBiZWZvcmUgd2hlcmUgKHBvdGVudGlhbGx5KSB0aGUgZGF0YSBpdCBpcwogICAgICAgdHJ5aW5nIHRvIHByaW50IGdldHMgZnJlZSgpZC4KICAgCjIwMDItMDEtMjUgMDQ6NDAgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGtlZXAgYXNwLT52YmNvdW50IGNvcnJlY3QgaW4gY3JlYXRlX3N1YnRyZWVfY2FjaGUoKSBpZiB3ZSBkdW1wCiAgICAgICB2YXJiaW5kcyBpbiB0aGUgR0VUTkVYVCBjYXNlIGJlY2F1c2UgbnVtdmFyYmluZHMgPiBub24tcmVwZWF0ZXJzLgogICAgICAgRmFpbGluZyB0byBkbyB0aGlzIHdpbGwgY2F1c2UgcHJvYmxlbXMgbGF0ZXIgd2hlbiB5b3UgaXRlcmF0ZSBvdmVyCiAgICAgICAwIC4uIGFzcC0+dmJjb3VudCAtIDEgaW4gcmVhc3NpZ25fcmVxdWVzdHMoKS4KICAgCjIwMDItMDEtMjQgMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICB1cGRhdGUgbWFjcm9zIHRvIHB1dCBwYXJlbnMgYXJvdW5kIHBhcmFtZXRlcnMgd2hlbiB1c2VkLCBpbiBjYXNlIGEgcGFyYW1ldGVyIGlzIGFuIGV4cHJlc3Npb24sIHdoaWNoIG1pZ2h0IG11Y2sgYWJvdXQgd2l0aCBvcGVyYXRvciBwcmVjZWRlbmNlIHJ1bGVzIGFuZCBjYXVzZSB1bmV4cGVjdGVkIGFuZCB1bmRlc2lyYWJsZSBiZWhhdmlvci4KICAgCjIwMDItMDEtMjQgMTE6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0cnkgdG8gZmluZCAmIGhhbmRsZSBleHRlcm5hbCBpbmRleGVzOyB1c2UgbmV3IHN0eWxlIG5ldC1zbm1wIGluY2x1ZGVzOyBhZGQKICAgcm93X2NvcHk7IHVzZSBjb250ZXh0IHR5cGVzICYgY2FzdHMgaW4gcGFyYW1ldGVycyBpbnN0ZWFkIG9mIGdlbmVyaWMgdHlwZXMKICAgcmVjYXN0IGluc2lkZSBtZXRob2QKICAgCjIwMDItMDEtMjQgMDY6MDMgIGpicG4KCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4zKSwgcmVhZF9jb25maWcuYzoKCiAgICAgLSBhdm9pZCBmb3JtYXQgc3RyaW5nIG5hc3RpZXMgaW4gcmVhZF9jb25maWdfc3RvcmUoKSB3aGVuIHdyaXRpbmcgdG8KICAgICAgIGZpbGVzIChleHBvc2VkIGUuZy4gYnkgdGhlIHBlcnNpc3RlbnQgc3lzTmFtZS4wIHN0dWZmIC0tIHRyeQogICAgICAgc25tcHNldCBob3N0IHN5c05hbWUuMCBzICIlMDh4IiAtLSBvb3BzKQogICAKMjAwMi0wMS0yNCAwNDozNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBkb24ndCBhdXRvbWF0aWNhbGx5IGFjY2VwdCBhIG1zZ1VzZXJOYW1lIG9mICIiIHdoZW4gcHJvY2Vzc2luZwogICAgICAgaW5jb21pbmcgbWVzc2FnZXMuCiAgIAoyMDAyLTAxLTI0IDA0OjMwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiaWdnZXIgYnVmZmVyIGZvciBtc2dBdXRob3JpdGF0aXZlRW5naW5lSUQgZmllbGQgc2luY2UgaXQgaXMgbm90CiAgICAgICBsaW1pdGVkIHRvIDMyIGJ5dGVzIGxpa2UgU25tcEVuZ2luZVRDLiAgUmVhbGx5IHRoaXMgbmVlZHMgdG8gYmUKICAgICAgIGFsbG9jYXRlZCBieSB0aGUgc2VjdXJpdHkgbW9kdWxlIGJ1dCBmb3Igbm93IHdlJ2xsIGp1c3QgbWFrZSBpdAogICAgICAgdHdpY2UgYXMgYmlnLgogICAKMjAwMi0wMS0yNCAwMzoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgc25tcGxpYi9zbm1wLXRjLmM6CgogICBBSVggc3VwcG9ydCBmb3IgdGhlIEhvc3QgUmVzb3VyY2VzIG1vZHVsZS4KICAgICAgKFRoYW5rcyB0byBBbmR5IEhvb2QpCiAgIAoyMDAyLTAxLTIzIDA4OjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHNldCB2aWV3VHlwZSB0byB0aGUgREVGVkFMIGluY2x1ZGVkKDEpIGZvciBuZXcgcm93cwogICAKMjAwMi0wMS0yMyAwNzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gc2VjTW9kZWwgb2YgMCBpcyBhIHBhcnNlIGVycm9yIGluIEhlYWRlckRhdGEKICAgCjIwMDItMDEtMjMgMDc6MjMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJlIGNhcmVmdWwgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzIGluCiAgICAgICBzbm1wdjNfcGFyc2UgLS0gZml4ZXMgbWVtb3J5IGxlYWtzIHdoZW4gbWFsZm9ybWVkIFBEVXMgYXJlCiAgICAgICByZWNlaXZlZC4KICAgCjIwMDItMDEtMjIgMTk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICBjaGcgYXBpIGZvciBzbm1wX29pZF9uY29tcGFyZSwgZG9uJ3QgaW1wbGVtZW50IGl0IHZpIHNubXBfb2lkX2NvbXBhcmUKICAgCjIwMDItMDEtMjIgMTk6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMgLCBvaWRfYXJyYXkuaDoKCiAgIGFkZCBHZXRfb2lkX2RhdGFfY291bnQoKTsgYWRkIHN1YnNldCBzdXBwb3J0CiAgIAoyMDAyLTAxLTIyIDE5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICBhZGQgbmV0c25tcF9zdHIyb2lkKCkKICAgCjIwMDItMDEtMjIgMTk6NDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uCiAgIAoyMDAyLTAxLTIyIDE5OjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbjsgYWRkIHByZWxpbWluYXJ5IGxvY2tpbmcgY29kZTsgYWRkIHRhX2NoZWNrX3Jvd19zdGF0dXMKICAgCjIwMDItMDEtMjIgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggYnVnIGp1c3QgaW50cm9kdWNlZCB3aGVyZSBzZXR0aW5nIGFuIGV4aXN0aW5nIHJvdydzIHN0YXR1cyB0bwogICAgICAgY3JlYXRlQW5kR28oNCkgb3IgY3JlYXRlQW5kV2FpdCg1KSB3b3VsZCBkZWxldGUgdGhlIHJvdy4KICAgCjIwMDItMDEtMjIgMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gY2F1c2UgYSBwYXJzZSBlcnJvciBpZiB3ZSByZWNlaXZlIFVzbVNlY3VyaXR5UGFyYW1ldGVycyB3aXRoIGEKICAgICAgIG1zZ1VzZXJOYW1lIHRoYXQgaXMgaWxsZWdhbGx5IGxvbmcuCiAgIAoyMDAyLTAxLTIyIDAzOjEwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgICAgLSBvb3BzLCBsZWZ0IG9sZCBjb2RlIGluICNpZiAwIGJyYW5jaCBBR0FJTi4gIEkgYW0gZ2V0dGluZyBpbnRvIGJhZAogICAgICAgaGFiaXRzIQogICAKMjAwMi0wMS0yMiAwMzowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrcyBpbiByb3cgY3JlYXRpb24vZGVzdHJ1Y3Rpb24KICAgCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgdmFsaWRpdHkgY2hlY2tpbmcgb2Ygc25tcE5vdGlmeVRhZywgc25tcE5vdGlmeVR5cGUKICAgICAgIGFuZCBzbm1wTm90aWZ5U3RvcmFnZVR5cGUuCiAgIAogICAgIC0gcGFzc2VzIDYuNS4xLjAgLS0gNi41LjguMwogICAKMjAwMi0wMS0yMiAwMTo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRQYXJhbXNUYWJsZQogICAKMjAwMi0wMS0yMSAyMzo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHRpZHkgdGhpbmdzIHVwIGEgYml0IChoYWQgbGVmdCBzb21lIG9sZCBjb2RlIHNpdHRpbmcgaWYgI2lmIDAKICAgICAgIGJyYW5jaCkuCiAgIAogICAgIC0gcmVtZW1iZXIgdG8gY2xvc2UgKHRhcmdldC0+c2Vzcykgd2hlbiB3ZSBtb3ZlIGEgdGFyZ2V0IHRvCiAgICAgICBub3RJblNlcnZpY2UoMikuCiAgIAoyMDAyLTAxLTIxIDExOjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldEFkZHJUYWJsZQogICAKMjAwMi0wMS0yMSAwNjo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBzbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICAgIC0gaW1wbGVtZW50IHNubXBUYXJnZXRTcGluTG9jayBvYmplY3QKICAgCjIwMDItMDEtMTggMDk6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtVmlld1RyZWVGYW1pbHlUYWJsZS4gIFBhc3NlcyBhbGwgdGhlCiAgICAgICByZWxldmFudCBTaWx2ZXJjcmVlayBWQUNNIHRldHN0ICg1LjQuMC4xIC0tIDUuNC45LjcgaW5jbHVzaXZlKS4KICAgCjIwMDItMDEtMTggMDg6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHZhY20uYyAsIHZhY20uaDoKCiAgICAgLSBhZGQgYSBzd2l0Y2ggdG8gdmFjbV9nZXRWaWV3RW50cnkoKSB0byBhbGxvdyB0aGUgbWFzayBlbnRyaWVzCiAgICAgICB0byBiZSBpZ25vcmUgKHdoaWNoIGlzIHdoYXQgeW91IHdhbnQgd2hlbiB5b3UgYXJlIGp1c3QgdXNpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gdG8gbG9vayB1cCBhbiBlbnRyeSBpbiB0aGUgdGFibGUgaW4gb3JkZXIgdG8gd3JpdGUgc29tZSBuZXcKICAgICAgIHZhbHVlIHRvIG9uZSBvZiB0aGUgY29sdW1uYXIgb2JqZWN0cykuCiAgIAoyMDAyLTAxLTE4IDA2OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbUFjY2Vzc1RhYmxlLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuMy4wIC0tIDUuMy45LjcgaW5jbHVzaXZlKS4KICAgCjIwMDItMDEtMTggMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtU2VjdXJpdHlUb0dyb3VwVGFibGUgKGkuZS4gZG9uJ3QKICAgICAgIGp1c3QgZG8gZXZlcnl0aGluZyBpbiB0aGUgQ09NTUlUIHBoYXNlKS4gIFBhc3NlcyBhbGwgdGhlIHJlbGV2YW50CiAgICAgICBTaWx2ZXJjcmVlayBWQUNNIHRldHN0ICg1LjIuMCAtLSA1LjIuOS43IGluY2x1c2l2ZSkuCiAgIAoyMDAyLTAxLTE4IDA0OjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZXJyb3Igc3RhdHVzIGFmdGVyIENPTU1JVCBvciBVTkRPCiAgICAgICBwaGFzZXMgd2l0aCBjb21taXRGYWlsZWQgb3IgdW5kb0ZhaWxlZCAoYnV0IGRvIHRyYW5zbGF0ZSBlcnJvcgogICAgICAgcmV0dXJucyBmcm9tIHRob3NlIHBoYXNlcyBpbnRvIHRob3NlIGVycm9ycyB3aGVuIHdlIGRvbid0IGhhdmUgYW4KICAgICAgIGV4aXN0aW5nIGVycm9yIHN0YXR1cykuCiAgIAoyMDAyLTAxLTE3IDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYW5kbGUgaWxsZWdhbCB2YWx1ZXMgb2YgbXNnSUQgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUgcGFja2V0CiAgICAgICBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTcgMDY6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dNYXhTaXplIGNvcnJlY3RseSAoYnkgZHJvcHBpbmcgdGhlCiAgICAgICBwYWNrZXQgYW5kIGluY3JlbWVudGluZyBzbm1wSW5BU05QYXJzZUVycnMpCiAgIAoyMDAyLTAxLTE1IDA4OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgdG9wIGxldmVsIGluY2x1ZGUgd2hpY2ggaW5jbHVkZXMgdXNlZnVsIHNubXBsaWIgaGVhZGVycwogICAKMjAwMi0wMS0xNSAwODoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvdWNkLXNubXAvOiBhZ2VudF9pbmRleC5oICwgYWdlbnRfcmVhZF9jb25maWcuaAogICAsIGFnZW50X3JlZ2lzdHJ5LmggLCBhZ2VudF90cmFwLmggLCBhc24xLmggLAogICBhdXRvX25saXN0LmggLCBjYWxsYmFjay5oICwgZGVmYXVsdF9zdG9yZS5oICwKICAgZHNfYWdlbnQuaCAsIGhlYWRlcl9jb21wbGV4LmggLCBpbnQ2NC5oICwga2V5dG9vbHMuaAogICAsIG1pYi5oICwgbWliX21vZHVsZV9jb25maWcuaCAsIG1pYmluY2wuaCAsCiAgIHBhcnNlLmggLCByZWFkX2NvbmZpZy5oICwgc2NhcGkuaCAsIHNubXAtdGMuaCAsCiAgIHNubXAuaCAsIHNubXBfYWdlbnQuaCAsIHNubXBfYWxhcm0uaCAsIHNubXBfYXBpLmgKICAgLCBzbm1wX2NsaWVudC5oICwgc25tcF9kZWJ1Zy5oICwgc25tcF9pbXBsLmggLAogICBzbm1wX2xvZ2dpbmcuaCAsIHNubXBfcGFyc2VfYXJncy5oICwgc25tcF92YXJzLmggLAogICBzbm1wdXNtLmggLCBzbm1wdjMuaCAsIHN0cnVjdC5oICwgc3lzdGVtLmggLAogICB0b29scy5oICwgdHJhbnNmb3JtX29pZHMuaCAsIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKICAgLCB1Y2Qtc25tcC1jb25maWcuaCAsIHVjZC1zbm1wLWluY2x1ZGVzLmggLAogICB1dGlsX2Z1bmNzLmggLCB2YXJfc3RydWN0LmggLCB2ZXJzaW9uLmg6CgogICBjcmVhdGUgNC54IGhlYWRlcnMgdGhhdCBhcmUgd3JhcHBlcnMgcG9pbnRpbmcgdG8gbmV3IGhlYWRlcnMKICAgCjIwMDItMDEtMTQgMTU6MDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgVXNlclJvd0FjdGlvbiBhbmQgdm9pZCBwb2ludGVyCiAgIAoyMDAyLTAxLTE0IDEzOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwgTWFrZWZpbGUuaW46CgogICAtPiBuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAgIAoyMDAyLTAxLTE0IDEzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICByZW1vdmVkCiAgIAoyMDAyLTAxLTE0IDEzOjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgY29weSB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oIGFuZCB1cGRhdGUgdG8gbmV0LXNubXAgdXNlIG5ldyBhZ2VudCBkaXIKICAgCjIwMDItMDEtMTQgMDg6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmggLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfaW5kZXguaCAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9hZ2VudF90cmFwLmggLAogICBhZ2VudC9hdXRvX25saXN0LmMgLCBhZ2VudC9hdXRvX25saXN0LmggLAogICBhZ2VudC9kc19hZ2VudC5oICwgYWdlbnQva2VybmVsLmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jCiAgICwgYWdlbnQvbWliX21vZHVsZXMuaCAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcF92YXJzLmggLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsIGFnZW50L3Zhcl9zdHJ1Y3QuaCAsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4gLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwTWVkaWEuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwUm91dGUuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwdjYuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMKICAgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIG1vdmVkIHRoZSAvYWdlbnQgaW5zdGFsbGVkIGhlYWRlcnMgdG8gLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudAogICAKMjAwMi0wMS0xMyAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgYSBjb3VwbGUgbW9yZSBpbnN0YWxsIGhlYWRlcnMuCiAgIAoyMDAyLTAxLTExIDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4gLCBub3RpZmljYXRpb25fbG9nLmM6CgogICBNb3ZlIGFsbCBhZ2VudC9oZWxwZXJzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL2FnZW50LyBhbmQgY2hhbmdlCiAgIHJlZmVyZW5jZXMuCiAgIAoyMDAyLTAxLTExIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsCiAgIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmggLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuaCAsCiAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmgKICAgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmgKICAgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmggLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5oICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCAsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmggLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBNb3ZlIGFsbCBhZ2VudC9oZWxwZXJzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL2FnZW50LyBhbmQgY2hhbmdlCiAgIHJlZmVyZW5jZXMuCiAgIAoyMDAyLTAxLTExIDA4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFwcHMvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSBBZGQgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgdG8gaW5jbHVkZSBwYXRoLgogICAtIFJlbmFtZSAzIGFnZW50IGxpYnJhcmllcyBmcm9tIGxpYnVjZCogLT4gbGlibmV0c25tcCoKICAgCjIwMDItMDEtMTEgMDc6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZG9uJ3QgdXNlIHdoaWxlKHgtLSA+PSAwKSBsb29wcyBmb3IgbmV3IHVuc2lnbmVkIGluZGV4IGNvbXBvbmVudHMKICAgCjIwMDItMDEtMTEgMDU6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYmUgY2FyZWZ1bCBhYm91dCBzaWduZWRlc3Mgb2YgaW5kZXggY29tcG9uZW50cyBpbiB0YWJsZXMKICAgCjIwMDItMDEtMTAgMTM6MTIgIG5iYQoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDcmVhdGUgdGhlIGluY2x1ZGUgZGlyZWN0b3J5IHdoZW4gYnVpbGRpbmcgb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAxLTEwIDA4OjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgICAgLSB1c2UgYW4gdW5zaWduZWQgbG9uZyBsb29wIHZhcmlhYmxlIGluIHZhcl9zeXNPUlRhYmxlKCkgdG8gYXZvaWQKICAgICAgIGluY29ycmVjdCBsZXhpLW9yZGVyaW5nIHdoZW4gZG9pbmcgcmVxdWVzdHMgbGlrZSBHRVRORVhUCiAgICAgICBzeXNPUkRlc2NyLjQyOTQ5NjcyOTUuCiAgIAogICAgIC0gbWlub3IgZGVidWdnaW5nIG91dHB1dCBjaGFuZ2VzCiAgIAoyMDAyLTAxLTEwIDA3OjMyICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsgaW4gcmVhc3NpZ25fcmVxdWVzdHMoKQogICAKMjAwMi0wMS0xMCAwNzoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2V0IHR5cGUgZm9yIHVuaGFuZGxlZCBHRVQgcmVxdWVzdHMgaW4gaGFuZGxlX3BkdSgpIHRvIGJlCiAgICAgICBub1N1Y2hJbnN0YW5jZSByYXRoZXIgdGhhbiBub1N1Y2hPYmplY3QgKG5vU3VjaE9iamVjdCBleGNlcHRpb25zCiAgICAgICBhcmUgZGV0ZWN0ZWQgYW5kIGV4cGxpY2l0bHkgc2V0IGVhcmxpZXIpLgogICAKMjAwMi0wMS0xMCAwNTo1MiAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBjb3JyZWN0IHR5cG8gdGhhdCBtZWFudCBlcnJvciByZXR1cm5zIGZyb20gb2xkLWFwaSB3cml0ZSBtZXRob2RzCiAgICAgICB3ZXJlIGlnbm9yZWQuCiAgIAoyMDAyLTAxLTEwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBjaGFuZ2UgdmFsdWUgb2YgU1RBVF9UQVJHRVRfU1RBVFNfRU5EIHNvIHRoYXQgbWliSUkvc25tcF9taWIuYyBjYW4KICAgICAgIHJldHVybiB2YWx1ZXMgb2YgbWFuZGF0b3J5IG9iamVjdHMgc25tcFNpbGVudERyb3BzIGFuZAogICAgICAgc25tcFByb3h5RHJvcHMuCiAgIAoyMDAyLTAxLTA5IDA4OjUwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHVua25vd24vaWxsZWdhbCB2YXJiaW5kIHR5cGVzIGluIHYxL3YyYyBQRFVzIGNhdXNlCiAgICAgICBzbm1wSW5BU05QYXJzZUVycnMgdG8gYmUgaW5jcmVtZW50ZWQuCiAgIAoyMDAyLTAxLTA5IDA3OjU1ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wMS0wOSAwNzozMiAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmM6CgogICAgIC0gYnJpbmcgYXBwLXNwZWNpZmljIG9wdGlvbnMgaW4gbGluZSB3aXRoIHNubXBidWxrd2FsayAoLUMgcmF0aGVyCiAgICAgICB0aGFuIC1CKQogICAKMjAwMi0wMS0wOSAwNzozMSAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgICAtIGZvcm1hdHRpbmcgY2hhbmdlIHRvIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDItMDEtMDkgMDY6MzUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhawogICAKMjAwMi0wMS0wOCAwODo1NSAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgICAtIGFkZCBvcHRpb25zIGZyb20gc25tcHdhbGsKICAgCiAgICAgLSBhbGxvdyBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzIHRvIGJlIHNldAogICAKICAgICAtIGNoYW5nZSBkZWZhdWx0IHZhbHVlIG9mIG1heC1yZXBlYXRlcnMgdG8gYSBsb3dlciB2YWx1ZSB0byBhdm9pZAogICAgICAgdGltZW91dHMgd2l0aCBzbG93ZXIgYWdlbnRzCiAgIAoyMDAyLTAxLTA4IDA4OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB0cnkgdG8gbWFsbG9jKCkgYSB6ZXJvLWxlbmd0aCBidWZmZXIsIGluIGNhc2Ugc29tZSBtYWxsb2MoKXMKICAgICAgIGNvbXBsYWluLgogICAKMjAwMi0wMS0wOCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaG9wZWZ1bGx5IGZpbmFsIEdFVEJVTEsgZml4IC0tIHBhc3NlcyBhbGwgU2lsdmVyQ3JlZWsncyBHRVRCVUxLCiAgICAgICB0ZXN0cyAoaW5jbC4gbmVnYXRpdmUgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGVhdGVycykKICAgCjIwMDItMDEtMDggMDY6NTkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmggLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgICAtIEdFVEJVTEsgZml4IHRvIGlnbm9yZSB2YXJiaW5kcyBmb3Igd2hpY2ggemVybyByZXBldGl0aW9ucyBhcmUKICAgICAgIGNhbGxlZCBmb3IKICAgCiAgICAgLSBkcm9wIGFzcC0+c3RhcnQgYW5kIGFzcC0+ZW5kIHdoaWNoIGFyZSBoYXJkbHkgdXNlZCBhbmQgd2hpY2ggZ2V0CiAgICAgICBpbiB0aGUgd2F5IG9mIHRoaXMgdHlwZSBvZiBwcm9jZXNzaW5nCiAgIAogICAgIC0gaWdub3JlIG5lZ2F0aXZlIHJlcGV0aXRpb25zIGluIGJ1bGtfdG9fbmV4dCBoYW5kbGVyCiAgIAoyMDAyLTAxLTA3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTAxLTA3IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvSU5TVEFMTDoKCiAgIFBOR0dyYXBoIC0+IEdEOjpHcmFwaAogICAKMjAwMi0wMS0wNCAxMzo0OCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTAxLTA0IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9hY2NvbmZpZy5oOgoKICAgbW92ZSBhY2NvbmZpZy5oIGJhY2sgdG8gdGhlIHRvcCBkaXIgd2hlcmUgaXRzIGFwcGFyZW50bHkgc3VwcG9zZWQgdG8gbGl2ZS4KICAgCjIwMDItMDEtMDQgMTM6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1vcmUgdWNkLXNubXAgLT4gbmV0LXNubXAgdHJhbnNsYXRpb25zLiAgd2FybmluZzogaW5jbHVkZXMgdGhlIGRlZmF1bHQgcGVyc2lzdGVudCBzdG9yZS4KICAgCjIwMDItMDEtMDQgMTM6MDQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvOiBuZXQtc25tcC8uY3ZzaWdub3JlICwgdWNkLXNubXAvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMS0wNCAxMzowMiAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBidWlsdCBuZXQtc25tcC1jb25maWcKICAgCjIwMDItMDEtMDQgMTM6MDAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiAsIGVuY29kZV9rZXljaGFuZ2UuYyAsCiAgIG5vdGlmaWNhdGlvbl9sb2cuYyAsIHNubXBidWxrZ2V0LmMgLCBzbm1wYnVsa3dhbGsuYwogICAsIHNubXBkZWx0YS5jICwgc25tcGRmLmMgLCBzbm1wZ2V0LmMgLAogICBzbm1wZ2V0bmV4dC5jICwgc25tcHNldC5jICwgc25tcHN0YXR1cy5jICwKICAgc25tcHRhYmxlLmMgLCBzbm1wdGVzdC5jICwgc25tcHRyYW5zbGF0ZS5jICwKICAgc25tcHRyYXAuYyAsIHNubXB0cmFwZC5jICwgc25tcHRyYXBkX2hhbmRsZXJzLmMKICAgLCBzbm1wdHJhcGRfbG9nLmMgLCBzbm1wdXNtLmMgLCBzbm1wdmFjbS5jCiAgICwgc25tcHdhbGsuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSkovaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBSb3V0ZS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXB2Ni5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkova2VybmVsX2xpbnV4LmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zbm1wX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi91ZHBUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMKICAgLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4gLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYyAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyAsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICwgaW5jbHVkZS9uZXQtc25tcC9hY2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvdWNkLXNubXAvUkVBRE1FICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuYyAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9rZXl0b29scy5jICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9tZDUuYyAsIHNubXBsaWIvbWliLmMKICAgLCBzbm1wbGliL210X3N1cHBvcnQuYyAsIHNubXBsaWIvb2lkX2FycmF5LmMgLAogICBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmMgLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcF9lbnVtLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi9zbnByaW50Zi5jICwgc25tcGxpYi9zdHJ0b2wuYyAsCiAgIHNubXBsaWIvc3RydG91bC5jICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYwogICAsIHNubXBsaWIvdmFjbS5jICwgdGVzdGluZy9ULmMgLAogICB0ZXN0aW5nL2V0aW1ldGVzdC5jICwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMgLAogICB0ZXN0aW5nL21pc2N0ZXN0LmMgLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnRvcCAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsIGFnZW50L01ha2VmaWxlLmluCiAgICwgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvYXV0b19ubGlzdC5jICwKICAgYWdlbnQva2VybmVsLmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYwogICAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKICAgLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMgLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMgLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYyAsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW46CgogICByZW1vdmVkIHVuZWVkZWQgb2xkZXIgZmlsZXMKICAgCjIwMDItMDEtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcGF0Y2ggIzQ5MjA3MiB0byBtYWluIGJyYW5jaAogICAKMjAwMi0wMS0wMyAxNDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgY2hlY2sgcmVzdWx0cyBvZiBzZXRtbnRlbnQgYmVmb3JlIHVzaW5nIHRoZW0uCiAgIAoyMDAyLTAxLTAzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGVjayBhZ2FpbnN0IGdyb3dpbmcgc2VydmVyIHJldHVybnMgYXMgcG9pbnRlZCBvdXQgYnkgYnVnICM0OTg5NTYKICAgCjIwMDItMDEtMDMgMTE6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG06CgogICBQTkdHcmFwaCAtPiBHREdyYXBoCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hhbmdlIGV4cG9ydCBuYW1lIHRvICJuZXQtc25tcCIgZnJvbSAidWNkLXNubXAiCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1ha2UgdXNlIG9mIHRoZSBuZXcgbXVsdGktYWRkIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhc2V0LmMgLCB0YWJsZV9kYXRhc2V0Lmg6CgogICBhZGQgbXVsdGlwbGUgZGVmYXVsdCByb3cgY29sdW1uIGRlZmluaXRpb25zIHVzaW5nIG9uZSBmdW5jdGlvbiBjYWxsICh2YXJhcmdzKS4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jICwgdGFibGUuaDoKCiAgIGFkZCBtdWx0aXBsZSBpbmRleGVzIHVzaW5nIG9uZSBmdW5jdGlvbiBjYWxsICh2YXJhcmdzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMgKGdldFN0YXRQdHIgbm8gbGVzcykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiAsIG9pZF9zdGFzaC5jICwgb2lkX3N0YXNoLmg6CgogICBkYXRhIHN0YXNoaW5nIGJhc2VkIG9uIGFuIG9pZCBjYWNoaW5nIHRyZWUuCiAgIAoyMDAxLTEyLTI2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMICwgTWFrZWZpbGUuUEwgLCBtYW5hZ2VyLnBtOgoKICAgdXBkYXRlIHRvIG1ha2UgaXQgYSBiaXQgZWFzaWVyIHRvIGluc3RhbGwgKGluY2x1ZGluZyBhIE1ha2VmaWxlIGZvcgogICBhdXRvbWF0ZWQgaW5zdGFsbGF0aW9uKS4KICAgCjIwMDEtMTItMjYgMTM6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwgLCBkaXNwbGF5dGFibGUucG0gLCBnZXRWYWx1ZXMucG0KICAgLCBncmVlbi5naWYgLCBtYW5hZ2VyLnBtICwgcmVkLmdpZiAsIHNldHVwYXV0aAogICAsIHNldHVwZGIgLCBzZXR1cHVzZXIgLCBzbm1wdG9zcWw6CgogICBtb3ZpbmcgbWFuYWdlciB0byBwZXJsL21hbmFnZXIKICAgCjIwMDEtMTItMjQgMTY6MTAgIGhhcmRha2VyCgogICAqIEZBUSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaCAsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTEgKQogICAKMjAwMS0xMi0yNCAxNjowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiAsIG1pYjJjICwgbWliMmMuY29uZjoKCiAgIFVwZGF0ZSB0byBtYWtlIHBlb3BsZSB1bmRlcnN0YW5kIHRoYXQgaXQncyBub3QgZmluaXNoZWQgYW5kIHlvdSBtdXN0CiAgIHJlZmVyZW5jZSBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBmaWxlIGF0IHRoaXMgcG9pbnQuCiAgIAoyMDAxLTEyLTI0IDE1OjUxICBoYXJkYWtlcgoKICAgKiBGQVEgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmggLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5ub3QuZXZlbi5jbG9zZSApCiAgIAoyMDAxLTEyLTI0IDE1OjUwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtb3JlIGNvbW1lbnRzLgogICAKMjAwMS0xMi0yNCAxNTo0MSAgaGFyZGFrZXIKCiAgICogRkFRICwgUkVBRE1FOgoKICAgbW9yZSB1cGRhdGVzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGRveHlnZW4gY29tbWVudHMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIE5FV1MgLCBSRUFETUU6CgogICA1LjAgY29tbWVudCB1cGRhdGVzLgogICAKMjAwMS0xMi0yNCAxNToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZG94eWdlbiBjb21tZW50cyBvbiBhIGZldyBmdW5jdGlvbnMuCiAgIAoyMDAxLTEyLTI0IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTEyLTI0IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgZm9yIG5vbi1leGlzdGVudCBtb2R1bGVzCiAgIAoyMDAxLTEyLTIzIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWc6CgogICBvcHBzLiAgRG9uJ3QgY2hlY2sgaW4gZ2VuZXJhdGVkIGZpbGVzLgogICAKMjAwMS0xMi0yMyAxNTo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4gLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IHJwbSB1c2FnZSAoSSBob3BlKS4KICAgCjIwMDEtMTItMjMgMTQ6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGRlZCAuY3ZzaWdub3JlIGZpbGUKICAgCjIwMDEtMTItMjMgMTQ6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuCiAgIAoyMDAxLTEyLTIzIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBORVdTICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgbmV0LXNubXAtY29uZmlnICwgbmV0LXNubXAtY29uZmlnLmluICwgYWdlbnQvTWFrZWZpbGUuaW4KICAgLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSBjcmVhdGVkIGEgbmV0LXNubXAtY29uZmlnIHNjcmlwdCB0byByZXBvcnQgY29tcGlsZWQgbGlicy4KICAgLSBzZXBhcmF0ZWQgbGlicyBuZWVkZWQgYnkgYWdlbnQgZnJvbSB0aG9zZSBuZWVkZWQgYnkgdGhlIHJlc3Qgb2YgdGhlCiAgICAgYXBwbGljYXRpb25zLgogICAKMjAwMS0xMi0yMSAxNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaG93IHRvIGluc3RhbGwgREJJCiAgIAoyMDAxLTEyLTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIHJlbW92ZSB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBBbnlEYXRhCiAgIAoyMDAxLTEyLTIxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCiAgIAoyMDAxLTEyLTIxIDE2OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwgLCBJTlNUQUxMICwgSU5TVEFMTCAsCiAgIElOU1RBTEw6CgogICBiZXR0ZXIgZGVzY3IKICAgCjIwMDEtMTItMjEgMTY6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1JFQURNRToKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlLgogICAKMjAwMS0xMi0yMSAxNjowNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaXQncyB2ZXJ5IGFscGhhIGNvZGUuCiAgIAoyMDAxLTEyLTIxIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbmV3IGluc3RydWN0aW9ucwogICAKMjAwMS0xMi0yMSAxMDoxOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gZG94eWdlbi4KICAgCjIwMDEtMTItMjEgMTA6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaDoKCiAgIGNvbXBpbGUgaW4gYWdlbnQgc3BlY2lmaWMgc3VwcG9ydCBtaWJzLgogICAKMjAwMS0xMi0yMSAwOTo0OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChzdGlsbCBpbmNvbXBsZXRlKSAybmQgdXBkYXRlIGZvciA1LjAKICAgCjIwMDEtMTItMjEgMDk6NDQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAoaW5jb21wbGV0ZSkgdXBkYXRlIGZvciA1LjAKICAgCjIwMDEtMTItMTkgMTc6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IHJlYWxsb2MgZmxvYXQgYW5kIGRvdWJsZSBidWlsZHMuCiAgIAoyMDAxLTEyLTE5IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtaXNjIGZpeGVzLgogICAKMjAwMS0xMi0xOSAxNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBkZWZpbmUgYSBDIGRhdGF0eXBlIGFzICR2YXIuZGVjbCAocGVyIFJvYmVydCdzIHN1Z2dlc3Rpb24uICBSb2JlcnQ6IHdlCiAgIHByb2JhYmx5IHdhbnQgcG9pbnRlcnMgZm9yIHRoaW5ncyBsaWtlIHN0cmluZ3MsIG5vPyAgbWF5YmUgb25lIHR5cGUKICAgdGhhdCBpcyBhbHdheXMgYSBwb2ludGVyIGFuZCBhbm90aGVyIHRoYXQgaXMgc29tZXRpbWVzIGRlcGVuZGluZyBvbgogICB0aGUgdHlwZT8pCiAgIAoyMDAxLTEyLTE5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jOgoKICAgY2hhbmdlIGRlZmF1bHQgYnVsayBudW1iZXIgdG8gMTAwIGZyb20gdGhlIHJpZGljdWxvdXMgMTAwMC4KICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLAogICBhcHBzL01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAxLTEyLTE5IDA4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBnZXRidWxrIHVwZGF0ZXMgdG8gbWFrZSBpdCB0aGUgbW9kdWxlcyByZXNwb25zaWJpbGl0eSB0byB1cGRhdGUgdGhlCiAgIHZhcmJpbmQgY2hhaW4gYW4gdGhlIHJlcGVhdCBjb3VudGVyLgogICAKMjAwMS0xMi0xOSAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmgKICAgLCBoZWxwZXJzL01ha2VmaWxlLmluICwgaGVscGVycy9hbGxfaGVscGVycy5jICwKICAgaGVscGVycy9hbGxfaGVscGVycy5oICwgaGVscGVycy9idWxrX3RvX25leHQuYyAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0Lmg6CgogICBHRVRCVUxLIHN1cHBvcnQgZm9yIHRoZSBuZXcgQVBJLgogICAgIC0gbWF5IG5lZWQgdG8gbWFrZSBzb21lIHNsaWdodCBtb2RpZmljYXRpb25zLgogICAgIC0gZGVmYXVsdHMgdG8gR0VUTkVYVCBmb3IgYW55IGhhbmRsZXIgdGhhdCBkb2Vzbid0IHNldCBIQU5ETEVSX0NBTl9HRVRCVUxLLgogICAgIC0gZG9lc24ndCBkZWFsIHByb3Blcmx5IHlldCB3aXRoIGVuZC1vZi1taWIgY29uZGl0aW9uIHJlbW92YWwuCiAgIAoyMDAxLTEyLTE5IDA2OjA1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCAtcCBvcHRpb24uICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzIG9wdGlvbmFsCiAgICAgICBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIGRyb3AgKGxvbmctZGVwcmVjYXRlZCkgLXEgb3B0aW9uLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgYW5kCiAgICAgICBjaGFuZ2VkIGRlc2NyaXB0aW9uIG9mIHNvbWUgb3B0aW9ucyB0byBiZSBtb3JlIHNpbWlsYXIgdG8gc25tcGQKICAgICAgIG9wdGlvbnMgKHdoZXJlIGFwcHJvcHJpYXRlKS4KICAgCjIwMDEtMTItMTkgMDQ6MzggIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcwogICAgICAgb3B0aW9uYWwgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIHBsdXMKICAgICAgIG1pbm9yIGZvcm1hdHRpbmcgdHdlYWtzLgogICAKICAgICAtIHJlLXdyaXR0ZW4gb3B0aW9ucyBwcm9jZXNzaW5nIGxvb3AgdG8gdXNlIG9wdGFyZygpLgogICAKMjAwMS0xMi0xOCAwODo0NCAgamJwbgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjUpLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPQkpFQ1QgSURFTlRJRklFUiBmb3Igd2luMzIgYWdlbnQKICAgCjIwMDEtMTItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgd2FybmluZyAtPiBkZWJ1Zy4KICAgCjIwMDEtMTItMTcgMTA6MTUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhhbmRsZSBnZXROZXh0IHF1ZXJpZXMgd2hlcmUgdGhlIGluaXRpYWwgdmFyYmluZC0+dHlwZSBpcwogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSAodGhlc2UgY3VycmVudGx5IGFyaXNlIG9ubHkgaW4gQWdlbnRYCiAgICAgICBzdWJhZ2VudHMgYnV0IHRoZSBoYW5kbGluZyBpcyBub3Qgc3BlY2lmaWMgdG8gQWdlbnRYKS4KICAgCiAgICAgICBCYXNpY2FsbHkgdGhpcyBpcyBkb25lIGJ5IHBlcmZvcm1pbmcgYSBHRVQgZmlyc3Qgb24gYWxsIHRoZQogICAgICAgdmFyaWFibGVzIGluIGEgcmVxdWVzdC4gIEZvciB2YXJpYWJsZXMgdGhhdCBoYWQgYW4gaW5pdGlhbCB0eXBlIG9mCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIGFuZCB3ZXJlIHNhdGlzZmllZCBieSB0aGlzIGluaXRpYWwgR0VULCB3ZSB1c2UKICAgICAgIHRoaXMgdmFsdWUgYXMgdGhlIHJlc3VsdC4gIEZvciB2YXJpYWJsZXMgdGhhdCBkaWQgbm90IGhhdmUgYW4KICAgICAgIGluaXRpYWwgdHlwZSBvZiBBU05fUFJJVl9JTkNMX1JBTkdFLCBvciB2YXJpYWJsZSB0aGF0IGhhZCBhbmQKICAgICAgIGluaXRpYWwgdHlwZSBvZiBBU05fUFJJVl9JTkNMX1JBTkdFIGJ1dCB3ZXJlIG5vdCBzYXRpc2ZpZWQgYnkgdGhpcwogICAgICAgR0VUIHJlcXVlc3QsIHdlIHByb2NlZWQgdG8gcGVyZm9ybSBhIEdFVC1ORVhUIHR5cGUgcmVxdWVzdCBhcwogICAgICAgbm9ybWFsLgogICAKMjAwMS0xMi0xNyAxMDowNCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBhZGQgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoIGVtdWxhdGVzIG9sZAogICAgICAgZnVuY3Rpb25hbGl0eS4KICAgCiAgICAgLSB1c2Ugc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkgaW4gcmVnaXN0ZXJfb2xkX2FwaSgpLgogICAKMjAwMS0xMi0xNyAwOTozOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBib2d1cyBpbmRlbnQKICAgCjIwMDEtMTItMTcgMDk6MzggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHJpZ2h0IG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHJlZ2lzdGVyX21pYl9jb250ZXh0MigpIGluCiAgICAgICByZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiBkaXR0by4KICAgCjIwMDEtMTItMTMgMTk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSBoYW5kbGVyIGluamVjdGlvbiBvcmRlciAoc2VyaWFsaXplIG5lZWRzIHRvIGJlIGNhbGxlZCBmaXJzdCkKICAgCjIwMDEtMTItMTMgMTk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBjaGVjayBmb3IgYWxyZWFkeSBhbnN3ZXJlZCBBU05fTlVMTHMgaW4gZmlyc3QgcGFzcy4KICAgCjIwMDEtMTItMTIgMDk6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogLmN2c2lnbm9yZSAsIElOU1RBTEwgLCBNQU5JRkVTVAogICAsIFJFQURNRSAsIHNubXBzaDoKCiAgIC0gZG9jIHVwZGF0ZS4KICAgLSBzbm1wc2ggbm93IHN1cHBvcnRzIGFsaWFzZXMgc28geW91IGNhbiBkZWZpbmUgY29tbWFuZCBzZXRzLgogICAtIHNubXBzaCBub3cgcmVhZHMgYSB+Ly5zbm1wc2hyYyBmaWxlIGZvciBzdG9yaW5nIHRoZXNlIGRlZmluZWQgYWxpYXNlcy4KICAgCjIwMDEtMTItMTIgMDY6NDIgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBuZXcgZnVuY3Rpb24gam9pbl9zdWJ0cmVlKCkgd2hpY2ggcmVwYWlycyAicHVuY3R1cmVkIiBzdWJ0cmVlcwogICAgICAgKHRoZXNlIGFyaXNlIGluIHBhcnRpY3VsYXIgd2hlbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMgYXJlCiAgICAgICB3aXRoZHJhd24pLgogICAKICAgICAtIGNvcHkgcmVnaW5mbyB3aGVuIGRvaW5nIGEgcmFuZ2UgcmVnaXN0cmF0aW9uIChhcyB3ZSB1c2VkIHRvIGRvCiAgICAgICB3aXRoIHRoZSB2YXJpYWJsZSBzdHJ1Y3R1cmUpLCBzaW5jZSBlYWNoIG5vZGUgbXVzdCBzdGFuZCBhbG9uZS4KICAgCiAgICAgLSBhZGQgcGFyYW1ldGVyIHRvIHJlZ2lzdGVyX21pYl9jb250ZXh0MiB0byBhbGxvdyBSRUdJU1RFUl9PSUQKICAgICAgIGNhbGxiYWNrcyB0byBiZSB3aXRoaGVsZCAoZm9yIGluc3RhbmNlLCB5b3UgbmVlZCB0aGlzIHRvIGF2b2lkCiAgICAgICBleGNlc3MgQWdlbnRYIHRyYWZmaWMgZm9yIHJvdyByZWdpc3RyYXRpb25zKS4KICAgCiAgICAgLSByZW1vdmUgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIC0tIHRoaXMgaGFzIG1vdmVkIHRvIG9sZF9hcGkuYwogICAKICAgICAtIGNhbGwgam9pbl9zdWJ0cmVlKCkgaW4gdW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24oKS4KICAgCjIwMDEtMTItMTIgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9oYW5kbGVyLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9ucyBzbm1wX2hhbmRsZXJfZnJlZSgpLCBzbm1wX2hhbmRsZXJfZHVwKCksCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2R1cCgpIGFuZAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkuCiAgIAoyMDAxLTEyLTExIDE4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCBidWcgd2hlcmUgcGR1LT5jb250ZXh0TmFtZSBpcyBOVUxMLgogICAKMjAwMS0xMi0xMSAwNzozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBCSVRTOiBpcGFkZHIgLT4gb2N0ZXRfc3RyCiAgIAoyMDAxLTEyLTExIDA0OjExICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHNlbmQgSU5DTFVTSVZFIHNlYXJjaCByYW5nZXMgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMTAgMjA6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBub2FjY2VzcyBmbGFnIGZvciBub3QtYWNjZXNzaWJsZSBub2RlcwogICAKMjAwMS0xMi0xMCAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBDaGFuZ2VzICwgREJEX0FueURhdGEucGF0Y2ggLAogICBGb3JtYXQucG0gLCBJTlNUQUxMICwgTUFOSUZFU1QgLCBNYWtlZmlsZS5QTCAsCiAgIFN0b3JhZ2UucG0gLCBzbm1wc2g6CgogICBGaXJzdCB2ZXJzaW9uCiAgIAoyMDAxLTEyLTEwIDAzOjIwICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwIGFyZyB0byBkc19zZXRfc3RyaW5nCiAgIAoyMDAxLTEyLTEwIDAzOjE5ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkaXR0byBpbiBzZXRfcGVyc2lzdGVudF9kaXJlY3RvcnkoKQogICAKMjAwMS0xMi0xMCAwMzoxOCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgaW4gc2V0X2NvbmZpZ3VyYXRpb25fZGlyZWN0b3J5KCkgYmVjYXVzZQogICAgICAgZHNfc2V0X3N0cmluZygpIGFscmVhZHkgZG9lcyB0aGF0IGZvciB5b3UuCiAgIAoyMDAxLTEyLTA3IDA5OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuaAogICAsIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICAtIEltcGxlbWVudCBuZXcgbWFudHJhOiAiYWx3YXlzIHBhc3MgbW9yZSBpbmZvcm1hdGlvbiwgcmF0aGVyIHRoYW4gbGVzcyIuCiAgIC0gZml4IHRhYmxlIGl0ZXJhdGVyIEdFVE5FWFRzIGZvciBtaXNzaW5nIGRhdGEgcG9pbnRzLgogICAtIGFkZCBhIG5ldyBob29rIHRvIGZyZWUgbG9vcCBjb250ZXh0cyBhdCB0aGUgZW5kIG9mIHRoZSBlbnRpcmUgaXRlcmF0aW9uLgogICAKMjAwMS0xMi0wNiAwNjo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAoSkJQTi1DQkwtNC4xKSwgY2xpZW50LmM6CgogICAgIC0gaWYgcmVxdWVzdCBJRHMgZG9uJ3QgbWF0Y2gsIHRoZW4gY2FsbCBoYW5kbGVfYWdlbnR4X3BhY2tldCgpIC0tCiAgICAgICBjb3BlcyBiZXR0ZXIgd2l0aCB1bmV4cGVjdGVkIHBhY2tldHMsIGluIHBhcnRpY3VsYXIgZml4ZXMKICAgICAgIGludGVybWl0dGVudCBkdXBsaWNhdGUgdHJhcCBpc3N1ZSAoZHVlIHRvIHJlc2VudAogICBhZ2VudHgtTm90aWZ5LVBEVSkuCiAgIAoyMDAxLTEyLTA1IDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEFoZW0uICBPcHBzLiAgTWlzc2luZyBpbmNsdWRlcy4KICAgICAtIG5vdGUgdG8gc2VsZjogY29tcGlsZSBmaXJzdCwgKnRoZW4qIGNoZWNrIGluIGNoYW5nZXMuCiAgIAoyMDAxLTEyLTA1IDEzOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGFkZCBpbiB0aGUgbWlzc2luZyBmdW5jdGlvbnMgZnJvbSB0aGUgTkVXLUFHRU5ULUFQSSBicmFuY2guCiAgICAgKGFuZCB0byBhbnN3ZXIgUm9iZXJ0J3MgcGVuZGluZyBxdWVzdGlvbiBvZiB3aGF0IGhhcHBlbmVkLCBpdCB3YXMKICAgICAgbGlrZWx5IG9uZSBvZiB0aGUgZmlsZXMgdGhhdCBmYWlsZWQgdG8gY29tbWl0IG9uIG15IHNpZGUgdGhhdCB5b3UKICAgICAgdHJpZWQgdG8gZml4IGFuZCBzb21ld2hlcmUgYmV0d2VlbiB0aGUgdHdvIG9mIHVzIHRoZSBjaGFuZ2VzIHdlcmUgbG9zdCkuCiAgIAoyMDAxLTEyLTA1IDEwOjAzICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gbWlub3IgdHdlYWtzCiAgIAoyMDAxLTEyLTA1IDA5OjE0ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gYWRkIFRDUC9JUHY2IGRvbWFpbiB0byBBR0VOVCBTUEVDIHNlY3Rpb24KICAgCiAgICAgLSBpbmNvcnBvcmF0ZSBzdWdnZXN0aW9ucyBmcm9tIHJzdG9yeQogICAKMjAwMS0xMi0wNSAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICAgIC0gdXNlIFNPQ0tfU1RSRUFNIG5vdCBTT0NLX0RHUkFNIChkdWghKS4gIFlvdSB3b3VsZG4ndCBiZWxpZXZlIGhvdwogICAgICAgY29uZnVzaW5nIHRoaXMgd2FzIC0tIGUuZy4gaG93IG9uICplYXJ0aCogY2FuIHRoYXQgY29ubmVjdCgpIGJlCiAgICAgICBzdWNjZWVkaW5nIQogICAKMjAwMS0xMi0wNSAwODozNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBtYWtlIHN1cmUgdG8gY2xvc2Ugc29ja2V0IGlmIHlvdSBjYW4ndCBtYWxsb2MgdGhlIGVuY29kZWQgZmFyLWVuZAogICAgICAgYWRkcmVzcyBpbiBzbm1wX3RjcF90cmFuc3BvcnQoKQogICAKMjAwMS0xMi0wNSAwODoyNyAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwICwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AgLAogICBzbm1wdXNtL3NubXB1c20uZHNwICwgc25tcHZhY20vc25tcHZhY20uZHNwOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDg6MjMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZyAsIEZBUSAsIE5FV1MgLCBSRUFETUUgLAogICBSRUFETUUud2luMzIgLCBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLAogICBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBzZWRzY3JpcHQuaW4gLAogICBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwgbG9jYWwvbWliMmMgLCBsb2NhbC90a21pYgogICAsIG1hbi9zbm1wZC5jb25mLjUuZGVmICwgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwKICAgcGVybC9TTk1QL1NOTVAucG0gLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsCiAgIHNubXBsaWIvc25tcC5oICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwICwgd2luMzIvY29uZmlnLmggLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oICwgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oICwKICAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oICwgd2luMzIvd2luMzIuZHN3ICwKICAgd2luMzIvd2luMzIub3B0ICwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcAogICAsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCAsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKICAgLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AgLAogICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCAsIHdpbjMyL3NubXBkL3NubXBkLmRzcAogICAsIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AKICAgLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwICwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwKICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwICwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAogICAsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AgLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcDoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA3OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBmaXggYnVnIGluIGFkZHJlc3MgcGFyc2VyCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtaW5vciBjaGFuZ2VzIHRvLCBhaGVtLCBtYWtlIGl0IGNvbXBpbGUKICAgCjIwMDEtMTItMDUgMDc6NDIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gY29uZGl0aW9uYWxpc2UgI2luY2x1ZGUgPGZjbnRsLmg+CiAgIAoyMDAxLTEyLTA1IDA3OjM4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMi0wNSAwNzoyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlLmluOgoKICAgICAtIG1lbnRpb24gdGhlIFRDUC9JUHY2IHRyYW5zcG9ydCBpbiBjb25maWcsIGFuZCBhZGQgYSAjZGVmaW5lIGZvciBpdAogICAgICAgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGNhbGwgc25tcF90Y3A2X2N0b3IoKSBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBUQ1BJUHY2RG9tYWluLmg6CgogICAgIC0gVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIFVudGVzdGVkLgogICAKMjAwMS0xMi0wNSAwNzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWFrZSBlbmNvZGVkIGFkZHJlc3NlcyBhdCB0cmFuc3BvcnQgb3BlbiB0aW1lCiAgIAoyMDAxLTEyLTA1IDA3OjE3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIG1vdmUgI2RlZmluaXRpb24gb2YgU05NUF9TVFJFQU1fUVVFVUVfTEVOIGZyb20gc25tcFRDUERvbWFpbi5jCiAgICAgICB0byBzbm1wX3RyYW5zcG9ydC5oCiAgIAoyMDAxLTEyLTA1IDA3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jOgoKICAgcmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zIGxpa2UsIG9oLCBJIGRvbid0IGtub3csIGdldFN0YXRQdHIoKS4KICAgCjIwMDEtMTItMDUgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTEyLTA1IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBjaGFuZ2VkIHRleHR1YWwgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTEyLTA0IDIyOjUyICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4IGJpbmQgcGFyYW1ldGVycywgc28gdGhhdCB0aGUgYWdlbnQgd29ya3MKICAgCjIwMDEtMTItMDQgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICAtIG1vdmUgZm9yZ290dGVuIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIGl0ZXJhdG9yIHNwZWNpZmljIGhlYWRlciBmaWxlLgogICAtIGFkZCBhIHZvaWQgKiBwb2ludGVyIGZvciB0aGUgY2FsbGJhY2tzIHRvIG1ha2UgZnVuY3Rpb25zIG1vcmUgcmV1c2FibGUuCiAgIAoyMDAxLTEyLTA0IDEzOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbW92ZSBpdGVyYXRvciBzcGVjaWZpYyB0YWJsZSBpbmZvcm1hdGlvbiBpbnRvIGl0cyBvd24gc3RydWN0dXJlLgogICAKMjAwMS0xMi0wNCAxMjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgRml4IHByb3RvdHlwZSBhcyBwb2ludGVkIG91dCBieSBKZXJvbWUgUGVkdWNhc3NlCiAgIAoyMDAxLTEyLTA0IDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gbWVudGlvbiB0aGF0IG5vdCBhbGwgdHJhbnNwb3J0IGRvbWFpbnMgYXJlIGFsd2F5cyBhdmFpbGFibGUuCiAgIAoyMDAxLTEyLTA0IDA5OjU1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gcmVtb3ZlIC1wIGFuZCAtVCBvcHRpb25zIGZyb20gZG9jdW1lbnRhdGlvbi4KICAgCiAgICAgLSBhZGQgbGVuZ3RoeSBuZXcgc2VjdGlvbiBkZXNjcmliaW5nIG5ldyB0cmFuc3BvcnQgYWRkcmVzcwogICAgICAgc3BlY2lmaWNhdGlvbiBmb3JtYXQsIHdpdGggZXhhbXBsZXMgYW5kIGV2ZXJ5dGhpbmchCiAgIAoyMDAxLTEyLTA0IDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucyBmb3IgYXBwcy4KICAgCjIwMDEtMTItMDQgMDM6MTAgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIGFkZCBjcmVhdGVfb3N0cmluZyBtZXRob2QsIGV4cG9ydCB1Y2RTbm1wVURQSVB2NkRvbWFpbltdCiAgIAoyMDAxLTEyLTA0IDAyOjE5ICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBtZW50aW9uIElQdjYgdHJhbnNwb3J0IGRvbWFpbiBPSURzIGluIHJlbGV2YW50IGNvbW1lbnQuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBRdWVsbCBhIGNvbnN0IGNhc3Qgd2FybmluZy4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZGVidWcgb3V0cHV0IGZyb20gcmV0cmllcy4KICAgCjIwMDEtMTItMDMgMTU6MDYgIG5iYQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBIQVZFX1NZU19UWVBFU19IIGlzIG5vdCBjb25kaXRpb25hbC4KICAgCjIwMDEtMTItMDMgMTU6MDQgIG5iYQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgRml4IHRvIGFsbG93IGNvbXBpbGF0aW9ucyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkuCiAgIAoyMDAxLTEyLTAzIDE1OjAzICBuYmEKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4ZXMgdG8gbWFrZSBVRFBJUHY2IHRyYW5zcG9ydCB3b3JrIGZvciBTb2xhcmlzLCBMaW51eCBhbmQgRnJlZUJTRC4KICAgSXQgY29tcGlsZXMsIGFuZCB0aGUgYXBwcyBzZW5kIHY2IHBhY2tldHMuIEFnZW50IG5vdCB5ZXQgdGVzdGVkLgogICAKMjAwMS0xMi0wMyAwOTo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYgLCBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgY29weSByb2JlcnRzIHNwaWZmeSBoZWFkZXIgdGV4dAogICAKMjAwMS0xMi0wMyAwODozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBkYXRlbnRpbWUgY29sdW1uLgogICAKMjAwMS0xMi0wMyAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHByb2JsZW0gd2l0aCBkb3VibGUgZGVsZWdhdGVkIHJlcXVlc3RzIGFmdGVyIGdldG5leHQgbG9vcC4KICAgCjIwMDEtMTItMDMgMDg6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIG1pYnMvTk9USUZJQ0FUSU9OLUxPRy1NSUIudHh0OgoKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIgYWRkZWQgdG8gZGVmYXVsdCBsaXN0LgogICAKMjAwMS0xMi0wMyAwNTozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgZGVidWdnaW5nIG91dHB1dCAoImJsYWgiKQogICAKMjAwMS0xMS0zMCAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBDaGFuZ2UgaG93IHJlcXVlc3QgcHJvY2Vzc2luZyBnZXRzIGRvbmUgc3VjaCB0aGF0IHJlcXVlc3Qgb2JqZWN0cyBhcmUKICAgYWxsIGNhbGxvY2VkIGF0IG9uY2UgYW5kIGdldCByZXVzZWQgaW5zdGVhZCBvZiByZWFsbG9jYXRlZC4gIEJpZyBzcGVlZAogICBpbXByb3ZlbWVudHMuCiAgIAoyMDAxLTExLTMwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGRveHlnZW4uY29uZjoKCiAgICJtYWtlIGRvYyIgdG8gcnVuIGRveHlnZW4uCiAgIAoyMDAxLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogZGVidWdfaGFuZGxlci5jICwgbXVsdGlwbGV4ZXIuaDoKCiAgIGRveHlnZW4gZml4ZXMKICAgCjIwMDEtMTEtMzAgMDk6MjYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFIGluIHJlZ2lzdGVyX2hhbmRsZXIoKSBpZiBhcHByb3ByaWF0ZS4KICAgCjIwMDEtMTEtMzAgMDk6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiByZWdpc3Rlcl9hZ2VudHhfbGlzdCgpIHdoZW4gc3ViYWdlbnQgdHJpZXMgdG8KICAgICAgIHJlZ2lzdGVyIGEgTUlCIHJlZ2lvbiB0aGF0IGZhaWxzIGVpdGhlciBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlCiAgICAgICBvciBiZWNhdXNlIG9mIHNvbWUgb3RoZXIgcmVhc29uLgogICAKMjAwMS0xMS0zMCAwODo0NCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgb2Ygb2xkX2luZm8gKHRoYXQgbmV2ZXIgc2VlbXMgdG8gZ2V0IHVzZWQgZm9yCiAgICAgICBhbnl0aGluZyBhbnl3YXk/KQogICAKICAgICAtIGZpeCBtZW1vcnkgbGVhayB0aGF0IGFyaXNlcyBkdXJpbmcgcm93IHJlZ2lzdHJhdGlvbiAoaW4gQWdlbnRYCiAgICAgICBzdWJhZ2VudHMpIGJlY2F1c2Ugc3VjY2Vzc2l2ZSB2YXJzIGNhdXNlIGFwcGFyZW50IGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucyAodGhpcyBpcyBhIGRlZmljaWVuY3kpIC0tIGJ1dCBpdCB3b3VsZCBhcHBlYXIgdGhpcwogICAgICAgY291bGQgYXJpc2UgaW4gb3RoZXIgc2l0dWF0aW9ucyB0b28gKGdlbnVpbmUgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zKS4KICAgCjIwMDEtMTEtMzAgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGZpeCBicm9rZW4gcGFyc2luZyBpbiBzbm1wZF9wYXJzZV9jb25maWdfdHJhcHNlc3MoKSAtLSBsb29wIHdhcwogICAgICAgY29weWluZyB0aGUgc2FtZSAoZmlyc3QpIHRva2VuIE1BWF9BUkdTIHRpbWVzLgogICAKICAgICAtIGVsaW1pbmF0ZSBtZW1vcnkgbGVhayBpbiBkaXR0by4KICAgCiAgICAgLSBmaXggdHlwbyAoIlBhdXNpYmxlIGNhdXNlIiAtPiAiUG9zc2libGUgY2F1c2UpIGluIGRpdHRvLgogICAKMjAwMS0xMS0zMCAwNjoyOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcHJpbnQgZmQgaW4gc2Vzc19wcm9jZXNzX3BhY2tldCgpIC0tIHVzZWZ1bCBmb3IgZGVidWdnaW5nCiAgIAoyMDAxLTExLTMwIDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQ2FsbGJhY2tEb21haW4uYyAsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgICAtIHJlbW92ZSBhIGNvdXBsZSBvZiB1bm5lY2Vzc2FyeSAjaW5jbHVkZXMgZnJvbSBzbm1wQ2FsbGJhY2tEb21haW4uaAogICAKICAgICAtIHNldCAqb3BhcXVlIHRvIE5VTEwgYWZ0ZXIgd2UgZnJlZSBpdCAtLSBpdCBtaWdodCBtYXR0ZXIuCiAgIAoyMDAxLTExLTMwIDAzOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGNsb25lIFBEVSBpbiBoYW5kbGVfYWdlbnR4X3N1YmFnZW50KCkgYmVmb3JlIHNlbmRpbmcgaXQgb24gY2FsbGJhY2sKICAgICAgIHNlc3Npb24gdG8gYXZvaWQgZG91YmxlIGZyZWUoKSBhbmQgZnJlZSgpZCBtZW1vcnkgcmVhZHMuCiAgIAogICAgIC0gbW9yZSBjb25jaXNlIChhaGVtKSBkZWNsYXJhdGlvbiBvZiBteWNhbGxiYWNrIGluIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkuCiAgIAoyMDAxLTExLTI5IDA1OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBwdXQgc2Vzc2lvbiBhbmQgc3Vic2Vzc2lvbiBpbiBzdWJhZ2VudCBkZXNjcmlwdGlvbiAoaGVscGZ1bCBmb3IKICAgICAgIGRlYnVnZ2luZykKICAgCjIwMDEtMTEtMjkgMDU6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggSU5TVEFMTEhFQURFUlMKICAgCjIwMDEtMTEtMjkgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIHNvbWUgZGVidWdnaW5nIHRvIGluaXRfc3ViYWdlbnQoKSAod2hpY2ggc2hvd2VkIHRoYXQgaXQgd2Fzbid0CiAgICAgICBiZWluZyBjYWxsZWQsIHNvLi4uKS4KICAgCiAgICAgLSBmaXggY2FzdCBpbiBoYW5kbGVfc3ViYWdlbnRfc2V0X3Jlc3BvbnNlKCkKICAgCjIwMDEtMTEtMjkgMDU6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWFrZSBzdXJlIGluaXRfc3ViYWdlbnQoKSBnZXRzIGNhbGxlZAogICAKMjAwMS0xMS0yOCAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNoZWNrIGZvciBzZXNzaW9uIHJlZ2lzdHJhdGlvbnMgaW4gYWxsIGNvbnRleHRzLgogICAKMjAwMS0xMS0yOCAwNjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgQWRkIHN5cy90eXBlcy5oIGZvciBidWcgIzQ4NjI3Ny4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICAgIC0gI2luY2x1ZGUgPG5ldGRiLmg+CiAgIAoyMDAxLTExLTI4IDA0OjAzICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gaW5zdGFsbCBzbm1wX3RyYW5zcG9ydC5oIGFuZCBzbm1wKkRvbWFpbi5oIChmb3IgdGhlIGNvbmZpZ3VyZWQKICAgICAgIHRyYW5zcG9ydCBkb21haW5zKQogICAKMjAwMS0xMS0yOCAwMzoyOSAgamJwbgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAgIC0gcmV2ZXJzZSBteXN0ZXJ5IHJlbW92YWwgb2YgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gYW5kICNpbmNsdWRlCiAgIDxzeXMvdGltZS5oPgogICAKMjAwMS0xMS0yNyAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBtb3JlIGludGVsbGlnZW50bHkgYWxsb2NhdGUgdHJlZSBzcGFjZSBiYXNlZCBvbiBudW1iZXIgb2YgdmFyYmluZHMgaW4gcmVxdWVzdC4KICAgCjIwMDEtMTEtMjcgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgbWFsbG9jIG9uZSBsYXJnZSB0cmVlX2NhY2hlIGFycmF5IHJhdGhlciB0aGFuIGFuIGFycmF5IG9mIHRyZWVfY2FjaGUgcG9pbnRlcnMuCiAgIAoyMDAxLTExLTI3IDEyOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBpbmNsdWRlIGZpbGUgbmFtZSBjaGFuZ2UuCiAgIAoyMDAxLTExLTI3IDExOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb21tZW50IGNoYW5nZXMuCiAgIAoyMDAxLTExLTI3IDA3OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4ZWQgTWFrZWZpbGUgZm9yIHNubXB0cmFwZC4KICAgCjIwMDEtMTEtMjcgMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBNYWtlZmlsZS5pbiAsIGFsbF9oZWxwZXJzLmMgLAogICBhbGxfaGVscGVycy5oICwgZGVidWdfaGFuZGxlci5jICwgZGVidWdfaGFuZGxlci5oOgoKICAgZGVidWcgaGFuZGxlciBjcmVhdGVkIGZvciBpbnNlcnRpbmcgZGVidWdnaW5nIG91dHB1dCBpbnRvIHRoZSBjYWxsaW5nIGNoYWluLgogICAKMjAwMS0xMS0yNyAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZW51bSBkZWZpbml0aW9ucyBmb3IgbW9kZXMgYW5kIGNhbl9tb2Rlcy4KICAgCjIwMDEtMTEtMjYgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCBQRFUgdmFyaWFibGUgdG8gTlVMTCB0byBhdm9pZCBmcmVlaW5nIGl0IHR3aWNlLgogICAKMjAwMS0xMS0yNiAxMToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHBsdWcgYW5vdGhlciBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDk6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0ICwgVDAyMXNubXB2M2dldG5leHQgLAogICBUMDIyc25tcHYzZ2V0TUQ1ICwgVDAyM3NubXB2M2dldE1ENURFUyAsCiAgIFQwMjRzbm1wdjNnZXRTSEExICwgVDAyNXNubXB2M2dldFNIQURFUyAsCiAgIFQwMjhzbm1wdjNnZXRmYWlsICwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiAsCiAgIFQwNTNhZ2VudHYxdHJhcCAsIFQwNTRhZ2VudHYyY3RyYXAgLCBUMDU1YWdlbnR2MW1pbnRyYXAKICAgLCBUMDU2YWdlbnR2MmNtaW50cmFwICwgVDExMGFnZW50eGdldCAsCiAgIFQxMTFhZ2VudHhzZXQgLCBUMTEyYWdlbnR4c2V0ZmFpbCAsIFQxMTNhZ2VudHh0cmFwICwKICAgVDEyMHByb3h5Z2V0ICwgVDEyMXByb3h5c2V0ICwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGRvbid0IHVzZSBjb250ZXh0cyBpbiB0ZXN0cy4KICAgCjIwMDEtMTEtMjYgMDg6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBmaXggbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMgLCBhZ2VudHgvbWFzdGVyLmMgLAogICB1Y2Qtc25tcC9wcm94eS5jOgoKICAgdXNlIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgdG8gcGx1ZyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTExLTI2IDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2hhbmRsZXIuaDoKCiAgIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgcm91dGluZQogICAKMjAwMS0xMS0yNiAwODoxOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGFkZCB0aGUgYWJpbGl0eSB0byBsaXN0ZW4gZm9yIHRyYXBzIG9uIG11bHRpcGxlIHRyYW5zcG9ydHMgdmlhIHRoZQogICAgICAgLXAgb3B0aW9uIChjb25zaXN0ZW50IHdpdGggc25tcGQpLgogICAKMjAwMS0xMS0yNiAwNTo0NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl90cmFuc3BvcnRfb2lkKCkgdG8gZG8gc2Vzc2lvbiBjcmVhdGlvbiBmcm9tCiAgICAgICA8dERvbWFpbi1vaWQsIHRBZGRyZXNzLW9jdGV0LXN0cmluZz4gcGFpciwgdG8gYWxsb3cgY3JlYXRpb24gb2YKICAgICAgIG5vbi1JUHY0IHNlc3Npb25zIGluIHNubXBUYXJnZXRBZGRyVGFibGUuCiAgIAoyMDAxLTExLTI2IDA0OjQ1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYwogICAsIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGluZyBhIHRyYW5zcG9ydCBmcm9tIGEKICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLgogICAKMjAwMS0xMS0yNiAwMzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSB0cmFuc3BvcnQgZG9tYWluCiAgICAgICBpcyBzdXBwb3J0ZWQuCiAgIAoyMDAxLTExLTIzIDEwOjI0ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIG11bHRpcGxlIHRyYW5zcG9ydCBkb21haW4gc3VwcG9ydCBmb3IgdHJhcGQgLS0gdGhpcyB3YXMgcmVhbGx5CiAgICAgICBSRUFMTFkgZWFzeSEKICAgCjIwMDEtMTEtMjMgMDk6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgZnVuY3Rpb24gc25tcF90cmFuc3BvcnRfc3VwcG9ydCgpIChyZXBsYWNlZCB3aXRoCiAgICAgICBzbm1wX3Rkb21haW5fc3VwcG9ydCgpKS4KICAgCjIwMDEtMTEtMjMgMDg6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jOgoKICAgICAtIHVzZSBuZXR3b3JrIG9yZGVyIGZvciBBQUw1UFZDIHRyYW5zcG9ydCBhZGRyZXNzIGVuY29kaW5nCiAgIAoyMDAxLTExLTIzIDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBzZXQgbG9jYWxfbGVuZ3RoLCByZW1vdGVfbGVuZ3RoIGFzIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTExLTIzIDA4OjM5ICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8KICAgCjIwMDEtMTEtMjMgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gbWFrZSB0cmFwcyB3b3JrIHdpdGggbmV3LXN0eWxlIGFkZHJlc3NlcywgdXNlIGRvbWFpbi1iYXNlZCBhZGRyZXNzCiAgICAgICBlbmNvZGluZ3MgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4gIE5vdGUgeW91IGNhbiBub3cgc2VuZCB0cmFwcy9pbmZvcm1zCiAgICAgICBvdmVyIGFueSBzdXBwb3J0ZWQgdHJhbnNwb3J0IHR5cGUgYnkgdXNpbmcgdGhlIHRyYXBzZXNzIGRpcmVjdGl2ZSBhbmQKICAgICAgIGEgdHJhbnNwb3J0OmFkZHJlc3MgdHlwZSBzcGVjaWZpY2F0aW9uLgogICAKMjAwMS0xMS0yMyAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmM6CgogICAgIC0gY3JlYXRlIGFwcHJvcHJpYXRlbHktZW5jb2RlZCBsb2NhbCBvciByZW1vdGUgZW5kcG9pbnQgYWRkcmVzc2VzIGF0CiAgICAgICB0cmFuc3BvcnQgb3BlbiB0aW1lLgogICAKMjAwMS0xMS0yMyAwNjo1MCAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIHVwZGF0ZSBkZXBlbmRlbmNpZXMgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMjIgMDk6MDggIGpicG4KCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoICwgZXZhbF90b29scy5zaCAsCiAgIHRlc3RzL1QwMDFzbm1wdjFnZXQgLCB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCAsCiAgIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsICwgdGVzdHMvVDAxNHNubXB2MmNnZXQgLAogICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQgLCB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwgLAogICB0ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsICwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbAogICAsIHRlc3RzL1QwMjBzbm1wdjNnZXQgLCB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCAsCiAgIHRlc3RzL1QwMjJzbm1wdjNnZXRNRDUgLCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTICwKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEgLCB0ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTICwKICAgdGVzdHMvVDAyOHNubXB2M2dldGZhaWwgLCB0ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uICwKICAgdGVzdHMvVDA0OXNubXB2M2luZm9ybSAsIHRlc3RzL1QwNTBzbm1wdjN0cmFwICwKICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwICwgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0gLAogICB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAgLCB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwICwKICAgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwICwgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsCiAgIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwICwgdGVzdHMvVDEwMGFnZW50aHVwICwKICAgdGVzdHMvVDExMGFnZW50eGdldCAsIHRlc3RzL1QxMTFhZ2VudHhzZXQgLAogICB0ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCAsIHRlc3RzL1QxMTNhZ2VudHh0cmFwICwKICAgdGVzdHMvVDEyMHByb3h5Z2V0ICwgdGVzdHMvVDEyMXByb3h5c2V0ICwKICAgdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgICAgLSB1c2UgdWRwOjxob3N0bmFtZT46PHBvcnQ+IGluc3RlYWQgb2YgLXAgdG8gbWFrZSB0ZXN0cyB3b3JrIGFnYWluCiAgIAoyMDAxLTExLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jICwgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgbW9yayB3b3JlIG9uIHRoZSBub3RpZmljYXRpb24gbG9nIG1pYi4gIEl0IG5vdyBzdXBwb3J0cyB2YXJpYWJsZQogICBzdG9yYWdlLCBidXQgc2VnZmF1bHRzIG9uIGFjY2VzcyBkdWUgdG8gcGR1IGNsb25pbmcgcHJvYmxlbXMgSSdtIG5vdAogICBnb2luZyB0byB3b3JrIG91dCByaWdodCBub3cuCiAgIAoyMDAxLTExLTIxIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IHNubXB0cmFwZCBsaW5raW5nLgogICAKMjAwMS0xMS0yMSAyMjo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBPSURfTEVOR1RIOyB1c2UgYWN0dWFsIG9pZCB0eXBlIGluIGNhbGN1bGF0aW9uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYWRkIE5VTEwgcG9pbnRlciBmb3IgcmJ1aWxkIGluIHNlc3Npb24gY3JlYXRpb24uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBuZXRpbmV0L2luLmggbmVlZGVkLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB2YXJpYWJsZSBjbGVhbiB1cHMuCiAgIAoyMDAxLTExLTIxIDIyOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwgbG9jYWwvbWliMmMgLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mICwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiAsCiAgIG1hbi9NYWtlZmlsZS5pbiAsIG1pYnMvTWFrZWZpbGUuaW4gLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQgLCBwZXJsL1NOTVAvU05NUC54cyAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9taWIuaAogICAsIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsCiAgIHNubXBsaWIvc25tcC10Yy5oICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2FwaS5oICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5oICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oICwKICAgc25tcGxpYi90b29scy5jICwgc25tcGxpYi90b29scy5oICwgc25tcGxpYi92YWNtLmM6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjI6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliLzogdmFjbS5oICwgYXNuMS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQzICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jICwgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYyAsIG9pZF9hcnJheS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMwICByc3RvcnkKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jICwgZGF0YV9saXN0Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMTg6NTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCB2ZXJzaW9uLmggLCBhZ2VudC9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBhZ2VudC9taWJfbW9kdWxlcy5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jCiAgICwgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsIGFnZW50L3Zhcl9zdHJ1Y3QuaAogICAsIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZSAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmggLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmggLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmggLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5oICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCAsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmggLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgKICAgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmggLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLCBhcHBzL01ha2VmaWxlLmluICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMDY6NDMgIGpicG4KCiAgICogY29uZmlnLmguaW46CgogICAgIC0gSVB2NiBjb25maWcgZGVmcwogICAKMjAwMS0xMS0yMSAwNjozNiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1leHRyYW5lb3VzICNpbmNsdWRlICJzbm1wQmxhaERvbWFpbi5oIiBsaW5lcwogICAKMjAwMS0xMS0yMSAwMzozOSAgamJwbgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTExLTIwIDA5OjM4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmg6CgogICAgIC0gZHVoLiAgRm9yZ290IGEgY291cGxlIG9mIHRoaW5ncyB0byBkbyB3aXRoIGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQKICAgICAgIGFkZHJlc3MgcGFyc2luZy4KICAgCjIwMDEtMTEtMjAgMDk6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBuZXcgZG9tYWluLWJhc2VkIHRyYW5zcG9ydCBhZGRyZXNzIHBhcnNpbmcgZm9yIGFnZW50IE5TQVBzCiAgIAoyMDAxLTExLTIwIDA5OjI3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIHNubXBJUFhEb21haW4uYyAsIHNubXBUQ1BEb21haW4uYyAsIHNubXBUQ1BEb21haW4uaAogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVRFBEb21haW4uaCAsCiAgIHNubXBVbml4RG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5oICwgc25tcF9hcGkuYyAsCiAgIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTExLTIwIDA5OjE2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBVRFAvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgTm90ZTogaW5jb21wbGV0ZSEKICAgCjIwMDEtMTEtMjAgMDg6MjkgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jICwgYWdlbnRfaW5kZXguaDoKCiAgICAgLSB1bnJlZ2lzdGVyX3tzdHJpbmcsaW50LG9pZH1faW5kZXgoKSB1dGlsaXR5IGZ1bmN0aW9ucyBjb250cmlidXRlZAogICAgICAgYnkgRGFtaWFuIEdpbG11cnJheS4KICAgCjIwMDEtMTEtMjAgMDI6MjYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYXBpLmggKFY0LTItcGF0Y2hlcy4xKSwgc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YgU05NUF9NQVhfU0VDX05BTUVfU0laRSwgbm90ZWQgYnkKICAgICAgIEthcmwgTS4gSGVnYmxvb20uCiAgIAoyMDAxLTExLTE5IDE2OjU5ICBkcmllaHVpcwoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIEZpeCB0eXBvIGluIGNvbW1lbnQgW2thcmxoZWdAbWljcm9zaGFycC5jb21dCiAgIAoyMDAxLTExLTE2IDA4OjM0ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgVW5zaWduZWQzMi9HYXVnZTMyIHR5cGVzCiAgIAoyMDAxLTExLTE1IDEwOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHByb3RvY29sLmMgKFY0LTItcGF0Y2hlcy41KSwgcHJvdG9jb2wuYzoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBpZiB2YWx1ZSBpcwogICAgICAgY29uZmlndXJlZCB2aWEgdGhlIGF1dGh0cmFwZW5hYmxlIHRva2VuCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50X3RyYXAuYyAsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAgIC0gbWFrZSB2YWx1ZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBwZXJzaXN0ZW50LiAgU2V0dGluZyB2aWEKICAgICAgIGEgcmVhZC1vbmx5IGNvbmZpZ3VyYXRpb24gZmlsZSBhbHNvIG1ha2VzIG9iamVjdCBub3RXcml0YWJsZSAoYXMKICAgICAgIHN5c0NvbnRhY3QuMCBldCBhbC4pLgogICAKMjAwMS0xMS0xNSAwNjo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBsZXQgVkFDTSBjaGVja3Mgc3VjY2VlZCBmb3Igbm9uLUlQdjQgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0xNSAwNToxOSAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCAsIFQxMjFwcm94eXNldDoKCiAgICAgLSB1c2UgcHN5c2NvbnRhY3Qgbm90IHN5c2NvbnRhY3QgdG8gc2V0IGluaXRpYWwgdmFsdWUgb2Ygc3lzQ29udGFjdC4wCiAgICAgICBvYmplY3Qgc2luY2UgdGhlIGxhdHRlciBhbHNvIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LgogICAKMjAwMS0xMS0xNSAwNTowNyAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE1IDA0OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgInNubXBkLmgiIChmb3IgI2RlZmluaXRpb24gb2YgTUFTVEVSX0FHRU5UKQogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgYWdlbnR4c29ja2V0IHZhbHVlIC0tIGRzX3NldF9zdHJpbmcgZG9lcyBpdCBmb3IgeW91CiAgICAgLSBjaGFuZ2UgZGVidWdnaW5nIHRvIGZpdCBpbiBiZXR0ZXIgd2l0aCByZXN0IG9mIG1vZHVsZQogICAKMjAwMS0xMS0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bNyw3XSksIGNvbmZpZy5oLmluCiAgICwgY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGluaXQgZnVuY3Rpb24gY2hlY2tpbmcgaW4gbW9kdWxlcwogICAKMjAwMS0xMS0xNCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogYWdlbnR4X2NvbmZpZy5jICwgYWdlbnR4X2NvbmZpZy5oCiAgICwgbWFzdGVyLmMgLCBtYXN0ZXIuaCAsIHN1YmFnZW50Lmg6CgogICBzbGlnaHRseSBtb2RpZmllZCBwYXRjaCBmcm9tIEhhcnJpZSB0byBtb3ZlIGFnZW50eCBjb25maWd1cmF0aW9uIGludG8KICAgYSBzZXBhcmF0ZSBmaWxlLgogICAKMjAwMS0xMS0xMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmg6CgogICBmaWxlIG5vdGlmaWNhdGlvbl9sb2cuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaWxlIG5vdGlmaWNhdGlvbl9sb2cuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmM6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaDoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGZpbGUgTkVULVNOTVAtQUdFTlQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAwNToyOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaCB0byBxdWlldGVuIHNvbWUgbm9pc3kgbG9nZ2luZwogICAKMjAwMS0xMS0xMyAwNDoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gdXNlIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoZW4gYXBwcm9wcmlhdGUgaW4KICAgICAgIHVucmVnaXN0ZXJfYWdlbnR4X2xpc3QoKS4KICAgCjIwMDEtMTEtMTMgMDM6MjMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSByZXNldCB2ci0+bmFtZWxlbiB3aGVuIHdlJ3ZlIGZpbmlzaGVkIHdpdGggaXQKICAgCjIwMDEtMTEtMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGZpbGUgYWxsX2hlbHBlcnMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgZmlsZSBhbGxfaGVscGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTA4IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gYmV0dGVyIGltcGxlbWVudGF0aW9uIG9mIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpLCB3aGljaCB1c2VzCiAgICAgICByYW5nZXMgcHJvcGVybHkgaW4gdGhlIGNhbGxiYWNrIChoZW5jZSBtdWNoIG1vcmUgZWZmaWNpZW50IGZvcgogICAgICAgQWdlbnRYKS4KICAgCjIwMDEtMTEtMDcgMDk6NTYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1yZWR1bmRhbnQgYWdlbnR4X2J1aWxkIGZ1bmN0aW9ucwogICAKMjAwMS0xMS0wNyAwNjozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIG1hc3Rlcl9hZG1pbi5jICwKICAgcHJvdG9jb2wuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSgpIGluIGEgY291cGxlIG9mIHBsYWNlcyBmb3IgbW9yZSBjb21wcmVoZW5zaXZlCiAgICAgICBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKICAgICAtIHBhcnNlIHVucmVnaXN0ZXIgcmFuZ2VzIHByb3Blcmx5LCBhbmQgdXNlIHRoZSByYW5nZSBwcm9wZXJseSBmb3IKICAgICAgIHBhc3NpbmcgdG8gdW5yZWdpc3Rlcl9taWJfY29udGV4dCgpLgogICAKMjAwMS0xMS0wNyAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9kZWJ1Zy5jICwgc25tcF9kZWJ1Zy5oOgoKICAgICAtIGFkZCBERUJVR1NNU0dPSURSQU5HRSgpIG1hY3JvIGZvciBkZWJ1Z2dpbmcgT0lEIHJhbmdlcwogICAKMjAwMS0xMS0wNiAwNjowNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSByZXNldCB0aGUgaW5jbHVzaXZlIGZsYWcgaW4gYSBjb3VwbGUgb2YgY2FzZXMsIHRvIHByZXZlbnQgc3B1cmlvdXMKICAgICAgIElOQ0xVU0lWRSBnZXROZXh0IGJlaGF2aW91cgogICAKMjAwMS0xMS0wNSAwODowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBjb3JyZWN0IGJ1ZyBpbiByYW5nZV9zdWJpZCB0d2VhayBjb2RlCiAgIAoyMDAxLTExLTA1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY2FsY3VsYXRlIHVwcGVyIGJvdW5kIGZvciB0YWJsZSByb3cgcmVnaXN0cmF0aW9ucyBzbGlnaHRseSBkaWZmZXJlbnRseQogICAKMjAwMS0xMS0wMSAwOTozNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHByb3RvY29sLmMgLAogICBwcm90b2NvbC5oICwgc3ViYWdlbnQuYzoKCiAgICAgLSBpbXBsZW1lbnQgcmVsb2NhdGluZyBidWZmZXIgdmVyc2lvbiBvZiBhZ2VudHhfYnVpbGQoKSByb3V0aW5lcywKICAgICAgIGFuZCB1c2UgdGhlbS4KICAgCjIwMDEtMTEtMDEgMDk6MzMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oOgoKICAgICAtIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGJ1ZmZlciBidWlsZCBjYWxsYmFja3MgdmlhIG9wZW5fZXggY2FsbHMKICAgCjIwMDEtMTAtMzAgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGZpeCBidWcgd2hlcmVieSBpbnRlcmZhY2UgY291bnRlciBpcyBub3QgcmVzZXQsIG5vdGVkIGJ5IChhbW9uZ3N0CiAgICAgICBvdGhlcnMpIFZpY3RvciBLaXJoZW5zaHRlaW4gaW4gcGF0Y2ggIzQ3NDA2NC4KICAgCjIwMDEtMTAtMzAgMDM6MjQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdGhlIGluaXRpYWwgYnVmZmVyIHNpemUgMjA0OCBpbiBzbm1wX3Jlc2VuZF9yZXF1ZXN0IChhcyBpbgogICAgICAgX3Nlc3NfYXN5bmNfc2VuZCkgdG8gbWFrZSBzdWNjZXNzL2ZhaWwgYmVoYXZpb3VyIGZvciBBZ2VudFggbW9yZQogICAgICAgcHJlZGljdGFibGUgKHNpbmNlIEFnZW50WCBTVElMTCBkb2Vzbid0IHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMsCiAgICAgICBib28gaGlzcykuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS1hdXRvLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LXVzZXIuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGZpbGUgdGFibGVfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaDoKCiAgIGZpbGUgdGFibGVfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5Lmg6CgogICBmaWxlIG9pZF9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpbGUgb2lkX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjYgMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBmdW5jdGlvbiBuYW1lIGluIGVycm9yIG1lc3NhZ2UKICAgCjIwMDEtMTAtMjYgMDY6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgLCBpbnRlcmZhY2VzLmg6CgogICAgICAtIGFkZCBzdXBwb3J0IGZvciByeCBhbmQgdHggZHJvcCBjb3VudHMgKGlmSW5EaXNjYXJkcyBhbmQKICAgICAgICBpZk91dERpc2NhcmRzKSBmb3IgTGludXggKDIuMispCiAgIAoyMDAxLTEwLTI2IDA1OjU3ICBqYnBuCgogICAqIGFjbG9jYWwubTQ6CgogICAgIC0gYWRkIGlmX2lxZHJvcHMgbWVtYmVyIHRvIHN0cnVjdCBpZm5ldAogICAKMjAwMS0xMC0yNiAwNDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gYWRkIHRyYW5zbGF0aW9uIGZvciBhdG0oMzcpIHR5cGUgaW50ZXJmYWNlcyBmb3IgTGludXgKICAgCjIwMDEtMTAtMjYgMDM6NDMgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgdGhlIGZhY3QgdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uLjAgKGV0IGFsLikgdmlhIGEKICAgICAgIHN5c2xvY2F0aW9uIChvciBlcXVpdmFsZW50KSB0b2tlbiBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seSwKICAgICAgIHJldHVybmluZyBhIG5vdFdyaXRhYmxlIGVycm9yIHJlc3BvbnNlIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0bwogICAgICAgU0VUIGl0LgogICAKMjAwMS0xMC0yNCAxMDowNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjQpLAogICBzeXN0ZW1fbWliLmM6CgogICAgIC0gZml4IHR5cG8gbm90ZWQgYnkgVGltIERpZXR6CiAgIAoyMDAxLTEwLTI0IDA4OjQzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jICwgc3lzdGVtX21pYi5oOgoKICAgICAtIGltcGxlbWVudCBwZXJzaXN0ZW5jZSBmb3Igc3lzTG9jYXRpb24uMCwgc3lzQ29udGFjdC4wIGFuZCBzeXNOYW1lLjAKICAgCiAgICAgLSBwcmVzZW5jZSBvZiBhIHN5c2xvY2F0aW9uIHRva2VuIGluIHNubXBkLmNvbmYgbWFrZXMgc3lzTG9jYXRpb24uMAogICAgICAgbm9uLXdyaXRhYmxlIChyZXR1cm5zIG5vdFdyaXRhYmxlIG9uIFNFVCBhdHRlbXB0cykKICAgCjIwMDEtMTAtMjQgMDU6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3aW5zdC5jIChWNC0yLXBhdGNoZXMuMiksIGhyX3N3aW5zdC5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayBqdXN0IGludHJvZHVjZWQKICAgCjIwMDEtMTAtMjQgMDM6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSB1c2UgcGtnaW5mbyBpbnRlcmZhY2UgdG8gZGV0ZXJtaW5lIHR5cGUgb2Ygc29mdHdhcmUgcGFja2FnZSBtb3JlCiAgICAgICBzcGVjaWZpY2FsbHkgaWYgcG9zc2libGUuICBTbGlnaHQgdmFyaWF0aW9uIG9uIHBhdGNoICM0NzM2NjksIHN1Ym1pdHRlZAogICAgICAgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDEtMTAtMjQgMDM6MzggIGpicG4KCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhdXRvY29uZiBzdXBwb3J0IGZvciBkZXRlY3RpbmcgcGtnaW5mbyBpbnRlcmZhY2UgaW4gbGliYWRtLiAgVGhhbmtzCiAgICAgICB0byBTdGVmYW4gUmFkbWFuIChwYXRjaCAjNDczNjY5KS4KICAgCjIwMDEtMTAtMjEgMDc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpbGUgbWliMmMuaXRlcmF0ZS5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTE5IDA5OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgZmlsZSBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTE3IDA3OjUyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4yKSwgRkFROgoKICAgTWVudGlvbiB0aGUgTVJURyB0dXRvcmlhbCB3ZWIgcGFnZXMKICAgICAoYXMgc3VnZ2VzdGVkIGJ5IENocmlzdGlhbiBSb2JvdHRvbSBSZWlzKQogICAKMjAwMS0xMC0xNSAwNjo0OSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcElQWERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHplcm8gc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlcy4gIEhvcGVmdWxseSBmaXhlcyBwcm9ibGVtcyBvbiBOZXRCU0QKICAgICAgIG5vdGVkIGJ5IEpvYWtpbSBBbHRoaW5pIChyZWxhdGVkIHRvIHNhX2xlbiBtZW1iZXIgcHJvYmFibHk/PykuCiAgIAoyMDAxLTEwLTExIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE9wcHNlcy4KICAgCjIwMDEtMTAtMTEgMTQ6MTUgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbiAsIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMyAsCiAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiAsIG1hbi9zbm1wX2Vycm9yLjMgLAogICBtYW4vc25tcF9wZXJyb3IuMyAsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMgLAogICBtYW4vc25tcGNtZC4xICwgbWFuL3NubXBkLjEuZGVmICwgbWFuL3NubXBkLmNvbmYuNS5kZWYKICAgLCBtYW4vc25tcHNldC4xICwgbWFuL3NubXB0cmFuc2xhdGUuMSAsCiAgIG1hbi9zbm1wdHJhcGQuOCAsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiAsCiAgIG1hbi9zbm1wd2Fsay4xICwgbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQgLAogICBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCAsIG1pYnMvTWFrZWZpbGUubWliICwKICAgbWlicy9SRUFETUUubWlicyAsIG1pYnMvU01VWC1NSUIudHh0ICwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwgbWlicy9taWJmZXRjaCAsIG1pYnMvcmZjbGlzdAogICAsIG1pYnMvc21pc3RyaXAgLCBwZXJsL1NOTVAvU05NUC54cyAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9pbnQ2NC5jICwKICAgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvbWliLmggLCBzbm1wbGliL210X3N1cHBvcnQuYwogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5oICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9zY2FwaS5jICwgc25tcGxpYi9zY2FwaS5oICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2F1dGguYyAsIHNubXBsaWIvc25tcF9jbGllbnQuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB2My5jICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYwogICAsIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCAsIHRlc3RpbmcvTWFrZWZpbGUuaW4KICAgLCB3aW4zMi9jb25maWcuaCAsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTExIDE0OjAxICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HICwgQ2hhbmdlTG9nICwgRkFRICwgTWFrZWZpbGUuaW4gLAogICBORVdTICwgUkVBRE1FICwgYWNjb25maWcuaCAsIGFjbG9jYWwubTQgLAogICBjb25maWcuZ3Vlc3MgLCBjb25maWcuaC5pbiAsIGNvbmZpZy5zdWIgLAogICBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBsdGNvbmZpZyAsIGx0bWFpbi5zaAogICAsIG1ha2VmaWxlaW5kZXBlbmQucGwgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmgKICAgLCBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X2luZGV4LmMgLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9hZ2VudF90cmFwLmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBfdmFycy5oICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaAogICAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLCBhcHBzL01ha2VmaWxlLmluCiAgICwgYXBwcy9zbm1wZGVsdGEuYyAsIGFwcHMvc25tcGRmLmMgLAogICBhcHBzL3NubXBnZXQuYyAsIGFwcHMvc25tcGdldG5leHQuYyAsIGFwcHMvc25tcHNldC5jCiAgICwgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0YWJsZS5jICwKICAgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBhcHBzL3NubXB0cmFwLmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXB1c20uYyAsIGFwcHMvc25tcHZhY20uYwogICAsIGFwcHMvc25tcHdhbGsuYyAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KICAgLCBsb2NhbC9taWIyYy5jb25mICwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiAsCiAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QgLCBsb2NhbC90a21pYjoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMDkgMDc6MTQgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgU29tZXRpbWVzIHdlIGZlZWwgbGlrZSBhIC1udXQKICAgCjIwMDEtMTAtMDkgMDY6MTUgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBwcm9wZXJseSBhY2NvdW50IGZvciB0aGUgbGVuZ3RoIG9mIHRoZSBzdWZmaXggaW4gdGhlIHZhcmlhYmxlCiAgICAgICB0YWJsZSBpbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkKICAgCjIwMDEtMTAtMDggMDg6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgICAtIGRlY2xhcmUgdmVyc2lvbl9zeXNvaWRfbGVuIGFzIGV4dGVybiBJTlQgbm90IGV4dGVybiBvaWQsIHNvIGFzIHRvCiAgICAgICBtYXRjaCBpdHMgYWN0dWFsIGRlZmluaXRpb24gaW4gc3l0ZW1fbWliLmMuICBUaGlzIGNhdXNlZCBhbGwga2luZHMgb2YKICAgICAgIGZ1biAmIGdhbWVzIG9uIExpbnV4IG9uIGEgQWxwaGEuCiAgIAoyMDAxLTEwLTA0IDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jICwgY2FsbGJhY2suaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gc25tcF9jYWxsYmFja19saXN0KCkgdG8gcmV0dXJuIGxpc3Qgb2YgY2FsbGJhY2tzIGZvciBhCiAgICAgICBnaXZlbiA8bWFqb3IsIG1pbm9yPiBwYWlyLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDoKCiAgIGZpbGUgcGFzc19wZXJzaXN0dGVzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTEwLTAzIDA1OjQyICBqYnBuCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgICAgLSBjaGFuZ2UgZXhwcmVzc2lvbiBhdCBsLiA0MTUgZnJvbToKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgPSAqa2NzdHJpbmcgXiAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaGFzIHVuZGVmaW5lZCBiZWhhdmlvdXIgdG86CiAgIAogICAgICAgICAgICprY3N0cmluZysrIF49ICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBpcyBva2F5IChzaW5jZSAqa2NzdHJpbmcgaXMgb25seSBldmFsdWF0ZWQgb25jZSkuICBTaW1pbGFybHkKICAgICAgIGF0IGwuIDUzMC4gIFRoZSBwcmV2aW91cyBjb25zdHJ1Y3RzIGNhdXNlIHdhcm5pbmdzIHdpdGggR0NDMyBhbmQKICAgICAgIHNvbWUgb3RoZXIgY29tcGlsZXJzLiAgVGhhbmtzIHRvIE5pZWwgTWFya3dpY2sgd2hvIG5vdGVkIHRoaXMgaW4KICAgICAgIGJ1ZyAjNDY1OTY5LgogICAKMjAwMS0xMC0wMyAwMzoxMSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGRvIFNOTVBEX0NBTExCQUNLX1VOUkVHSVNURVJfT0lEIGNhbGxiYWNrcyBpbgogICAgICAgdW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24oKSAtLSBjYWxsZWQgd2hlbiBBZ2VudFggc3ViYWdlbnRzCiAgICAgICBkaXNhcHBlYXIuCiAgIAoyMDAxLTEwLTAyIDA2OjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvbid0IHNlbmQgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgQVNOX1BSSVZfRVhDTF9SQU5HRSBvbi10aGUtd2lyZQogICAKMjAwMS0wOS0yNiAwODowMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGFsbG93IHNwbGl0X3N1YnRyZWUoKSB0byBkbyBhIHNwbGl0IGluIHRoZSBtaWRkbGUgb2YgYSBjb2x1bW4sCiAgICAgICBrZWVwaW5nIHRoZSByZWxldmFudCB2YXJpYWJsZSBpbiBib3RoIHRoZSBvbGQgdHJlZSBhbmQgdGhlIG5ldwogICAgICAgdHJlZSAoYXJpc2VzIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcGF0Y2ggZnJvbSBEYW1pYW4gR2lsbXVycmF5IGZvciByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2gKICAgICAgIGFsbG93cyBpdCB0byBjb3BlIHdpdGggbm9uLXplcm8gbGVuZ3RoIHZhcmlhYmxlcyBhbmQgYWxzbwogICAgICAgbm9uLWNvbnRpZ3VvdXMgT0lEcyBmb3IgYWRqYWNlbnQgY29sdW1ucy4KICAgCiAgICAgLSByZXdyaXR0ZW4gZHVtcF9yZWdpc3RyeSgpIHRoYXQgdXNlcyByZWFsbG9jYXRpbmcgcHJpbnQgZnVuY3Rpb25zCiAgICAgICBhbmQgYWxzbyBwcmludHMgb3V0IHZhcmlhYmxlIGxpc3RzLgogICAKMjAwMS0wOS0yNiAwNzo0NSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IG9mIHN1YnRyZWUgbmFtZSBiZWluZyBsb25nZXIgdGhhbgogICAgICAgcmVxdWVzdGVkIG5hbWUgd2hlbiBjYWxjdWxhdGluZyB0aGUgc3VmZml4IGZvciB2YXJpYWJsZSBtYXRjaGluZy4KICAgCiAgICAgLSBiZSBzdHJpY3QgYWJvdXQgc3VidHJlZSBjaHVua3MgYmVpbmcgaW5jbHVzaXZlIG9mIHRoZSBzdGFydCBPSUQKICAgICAgIGFuZCBleGNsdXNpdmUgb2YgdGhlIGVuZCBPSUQgKHNob3dzIHVwIGJpZyB0aW1lIGluIEFnZW50WCkuCiAgIAoyMDAxLTA5LTI2IDA3OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGRvbid0IGRvIGdldE5leHQgcmVxdWVzdHMgb24gZXhjbHVzaXZlIHNlYXJjaFJhbmdlcyB0aGF0IGJlZ2luIGluCiAgICAgICBhIHRyZWUgbWFya2VkIGFzIGEgZnVsbHktcXVhbGlmaWVkIGluc3RhbmNlICh0aGV5IGFyZSBkb29tZWQgdG8KICAgICAgIGZhaWwpLiAgU2tpcCB0byB0aGUgbmV4dCBwYXJ0IG9mIHRoZSB0cmVlIHN0cmFpZ2h0IGF3YXkuCiAgIAoyMDAxLTA5LTI2IDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBicmluZyBkZWJ1Z2dpbmcgdG9rZW5zIGludG8gbGluZSB3aXRoIHJlc3Qgb2YgQWdlbnRYIGNvZGUKICAgCjIwMDEtMDktMjUgMDg6MTUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGEgbWlzc2luZyBzcGFjZSBjaGFyYWN0ZXIKICAgCjIwMDEtMDktMjUgMDM6NTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGNhc3QKICAgCjIwMDEtMDktMjUgMDM6NDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBmaXggcG9zc2libGUgaW5mZWxpY2l0eSB3aGVuIHByaW50aW5nIGFuZCBzeXNsb2dnaW5nIChub3Qgc3VyZSB0aGlzIGlzCiAgICAgICBhY3R1YWxseSBwb3NzaWJsZSBidXQpCiAgIAoyMDAxLTA5LTI1IDAzOjA5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gaW50ZWdyYXRlIHNvbWUgY2hhbmdlcyBmcm9tIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoOiBIYXJyaWUncwogICAgICAgcHJvdG90eXBlcyBhbmQgV2VzJ3MgZml4IGZvciBidWcgICM0NjMyMjYuCiAgIAoyMDAxLTA5LTI1IDAzOjAxICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGZpeCBzaWduZWRuZXNzIG9mIHRpbWUgc3R1ZmYKICAgCjIwMDEtMDktMjUgMDI6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jICwgc25tcF9sb2dnaW5nLmg6CgogICAgIC0gbWFrZSBhcmd1bWVudCBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQgY29uc3QKICAgCiAgICAgLSBkb24ndCBzdHJkdXAgREVGQVVMVF9MT0dfSUQgaWYgYSBOVUxMIGFyZyBpcyBnaXZlbgogICAKMjAwMS0wOS0yNCAwOTozOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGluIHNubXB0cmFwZF9sb2cuYyB3aGljaAogICAgICAgYXZvaWQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAogICAgIC0gZml4IGJ1ZyBub3RlZCBpbiBzdXBwb3J0IHJlcXVlc3QgIzQ1NjY0NiAoY3VzdG9tIHRyYXAgZm9ybWF0IHdhcwogICAgICAgYmVpbmcgaWdub3JlZCBmb3IgdjIgdHJhcHMgYW5kIGluZm9ybXMpLiAgVGhhbmtzIHRvCiAgICAgICBHLlByaW5jaXBhdG9AbW90b3JvbGEuY29tIGZvciBzcG90dGluZyB0aGlzIG9uZS4KICAgCiAgICAgLSBjb3JyZWN0IHVzYWdlIGZvciAtUCBvcHRpb24gdG8gcmVmbGVjdCB0aGF0IGl0IGNhdXNlcyBvdXRwdXQgb24KICAgICAgIHN0ZGVyciBub3Qgc3Rkb3V0LgogICAKMjAwMS0wOS0yNCAwOTozNiAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2xvZy5jICwgc25tcHRyYXBkX2xvZy5oOgoKICAgICAtIHJld3JpdGUgb2Ygb3V0cHV0IGZ1bmN0aW9ucyB0byBhdm9pZCB1c2Ugb2YgZml4ZWQtbGVuZ3RoIGJ1ZmZlcnMKICAgCjIwMDEtMDktMjAgMTM6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRSAsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oICwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgbmV3IGxvZ21hdGNoIG1pYiBmcm9tIFN0ZXBoYW4gV2VuemVsLgogICAKMjAwMS0wOS0xNSAwODo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBvdmVycmlkZSBleGNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dCBvcGVyYXRpb25zIHdoZW4gcmV0cnlpbmcKICAgICAgIG9wZXJhdGlvbnMKICAgCjIwMDEtMDktMTUgMDg6MzkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICAgIC0gaW1wcm92ZWQgc3VwcG9ydCBmb3IgQWdlbnRYLXN0eWxlIGluY2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0CiAgIAoyMDAxLTA5LTE0IDE0OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHBhdGNoICM0NDMxMTUgZnJvbSBZaW1pbiBHZTogZGlza2lvIHN1cHBvcnQgZm9yIGZyZWVic2Q0CiAgIAoyMDAxLTA5LTE0IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICBQYXRjaCAjNDQwMzIwIGZyb20gTWFyayBGZXJsYXR0ZToKICAgCiAgIDEpIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gdGhlIHNubXBfbG9nZ2luZyBBUEkKICAgICAgKHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudChjaGFyICppZGVudCkpCiAgIAogICAyKSBQb3J0cyBzbm1wdHJhcGQgdG8gdXNlIHRoZSBleGlzdGluZyBzbm1wX2xvZ2dpbmcgQVBJIGluc3RlYWQgb2YKICAgICAgdXNpbmcgc3lzbG9nIGRpcmVjdGx5LgogICAKICAgMykgUG9ydHMgc25tcF9sb2dnaW5nLltjaF0gdG8gdXNlIHRoZSBXaW4zMiBFdmVudCBMb2cgd2hlbiBjb21waWxlZCBvbgogICAgICBXaW4zMi4gSSBkaWRuJ3QgdXBkYXRlIHRoZSBWaXN1YWwgQyBwcm9qZWN0IGZpbGVzLCBiZWNhdXNlIEkgb25seQogICAgICBoYXZlIGFjY2VzcyB0byBhIG5ld2VyIHZlcnNpb24gb2YgVkMsIGFuZCBJIGRpZG4ndCBrbm93IGlmIHlvdQogICAgICB3YW50ZWQgdGhlbSB1cGRhdGVkLiBUaGUgYWR2YXBpMzIgbGlicmFyeSBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUKICAgICAgcHJvamVjdCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrIG9uIFdpbjMyICh0aGF0J3Mgd2hlcmUgdGhlIGV2ZW50CiAgICAgIGxvZyBBUEkgaXMpLgogICAKMjAwMS0wOS0xNCAxNDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4gLCBjb25maWd1cmU6CgogICBJLCB1aCwgY291Z2gsIHVoIGZvcmdvdCB0byBydW4gYXV0b2NvbmYvYXV0b2hlYWRlci4gIERhdmU6IGRvbid0IGtpbGwgbWUuCiAgIAoyMDAxLTA5LTE0IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtICwgU05NUC54czoKCiAgIFBhdGNoICM0Mjg4ODQ6IEFkZCAtUFIgbGlrZSBvcHRpb24gdG8gcGVybCBtb2R1bGUgKGZyb20gSm9lIENsYXJrZSkuCiAgIAoyMDAxLTA5LTE0IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBhY2NvbmZpZy5oICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oCiAgICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oCiAgICwgc25tcGxpYi9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wdjMuYyAsCiAgIHNubXBsaWIvYXNuMS5oOgoKICAgQXBwbGllZCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzQyNzM0MyBmcm9tIEhhcnJpZToKICAgICBtYWtlIGVudGVycHJpc2UgSUQgcmVsb2NhdGFibGUgd2hlcmUgbGVnYWwgdG8gZG8gc28KICAgCjIwMDEtMDktMTQgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4gLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDEyOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfdXRpbHMuYyAsIGhyX3V0aWxzLmg6CgogICByZW1vdmVkLiAgRnVuY3Rpb25hbGl0eSBtb3ZlZCB0byBzbm1wbGliL3NubXAtdGMuW2NoXQogICAKMjAwMS0wOS0xNCAxMjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmggLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAtdGMuaDoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgZmlsZSBjb25maWcuaC5ib3JsYW5kIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDktMTQgMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfcmVxdWVzdC5jICwKICAgbWFzdGVyX3JlcXVlc3QuaDoKCiAgICAgLSB1c2UgaW5jbHVzaXZlIHNlYXJjaCByYW5nZSBvbmx5IHdoZW4gYXBwcm9wcmlhdGUgZm9yIGdldE5leHQKICAgICAgIHF1ZXJpZXMKICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0wNiAwNzo0MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jOgoKICAgICAtIGlmIGluY2x1ZGUgYml0IGlzIHNldCBpbiBhbiBBZ2VudFggU2VhcmNoUmFuZ2UgKGhlbmNlIHR5cGUgb2YgdmFyYmluZAogICAgICAgaXMgQVNOX1BSSVZfSU5DTF9SQU5HRSksIHRyeSBhbiBleGFjdCBxdWVyeSBmaXJzdCBiZWNhdXNlIGFuIG9iamVjdAogICAgICAgd2hvc2UgbmFtZSBpcyBsZXhpLWVxdWFsIGlzIGEgdmFsaWQgcmVzcG9uc2U7IGlmIGV4YWN0IHF1ZXJ5IGZhaWxzCiAgICAgICB0aGVuIGZhbGwgYmFjayB0byBhbiBpbmV4YWN0IHF1ZXJ5LgogICAKMjAwMS0wOS0wNiAwNzozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9yZXF1ZXN0LmMgLAogICBwcm90b2NvbC5jICwgc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCB1c2VkIElOQ0wvRVhDTCB3cm9uZyB3YXkgcm91bmQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCiAgIAogICAgIC0gYmV0dGVyIHRlc3QgZm9yIHNjb3BpbmcgcmVxdWlyZW1lbnRzIGluIHN1YmFnZW50CiAgIAoyMDAxLTA5LTA0IDA3OjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYnJlYWs7IGFmdGVyIHByb2Nlc3NpbmcgLVAgb3B0aW9uLCBub3RlZCBieSBCb3RvbmQKICAgICAgIFRhcm5heSAoc2VlIHBhdGNoICM0NTgzMjcpCiAgIAoyMDAxLTA4LTI4IDAzOjA0ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSA8dGNwZC5oPiBpZiB1c2luZyBsaWJ3cmFwLCBub3RlZCBieSBOYXRoYW4KICAgICAgIE5ldWxpbmdlciAocGF0Y2ggIzQ1MzgzMSkuCiAgIAoyMDAxLTA4LTI4IDAyOjM4ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5oOgoKICAgZmlsZSBkYXRhX2xpc3QuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBmaWxlIGRhdGFfbGlzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTIyIDA4OjQ1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIGNoZWNraW5nIHRoYXQgcmVzdWx0cyB0byBiZSByZXR1cm5lZCB0byBtYXN0ZXIgYWdlbnQgYXJlIGluCiAgICAgICByZXF1ZXN0ZWQgc2NvcGUgKGlmIGFueSkgKGdldEJ1bGsgbm90IHlldCBkb25lKQogICAKMjAwMS0wOC0xNSAwOTozMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgaW4gZGVidWdtc2dfb2lkIHRvIHByaW50IGxvbmcgT0lEcy4KICAgCjIwMDEtMDgtMTUgMDg6MzcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHRoZSB2YWx1ZSBvZiBzbm1wSW5CYWRDb21tdW5pdHlVc2VzIHdoZW4gYXR0ZW1wdGluZyBhbgogICAgICAgb3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgYnkgdGhlIGdpdmVuIGNvbW11bml0eSwgcGVyIFJGQyAxOTA3LgogICAKMjAwMS0wOC0xNSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gd2hlbiB0cmFuc2xhdGluZyB0aGUgdjIrIGVycm9yLXN0YXR1cyB2YWx1ZSBhdXRob3JpemF0aW9uRXJyb3IKICAgICAgIGludG8gbm9TdWNoTmFtZSBmb3IgYSB2MSBzZXNzaW9uLCBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mCiAgICAgICBzbm1wSW5CYWRDb21tdW5pdHlVc2VzLCBwZXIgUkZDIDI1NzYuCiAgIAoyMDAxLTA4LTE0IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBpbiBzbm1wX3NldF92YXJfb2JqaWQoKSwgdHJ5IHRvIGRldGVjdCBhIHByZXZpb3VzbHktbWFsbG9jKCllZAogICAgICAgYnVmZmVyIGZvciB0aGUgdmFyaWFibGUgbmFtZSwgYW5kIGZyZWUoKSBpdCwgdG8gYXZvaWQgbWVtb3J5CiAgIGxlYWtzLgogICAKMjAwMS0wOC0xMyAwMzo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB1c2UgV2luMzIgY2FsbHMgdG8gY2hhbmdlIGJsb2NraW5nIHN0YXRlIG9mIHNvY2tldHMgaWYKICAgICAgIGFwcHJvcHJpYXRlLiAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMTMgMDM6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYW4gU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbiBpZgogICAgICAgd2UgZ2V0IGFuIGVycm9yIG9uIGEgc3RyZWFtIHJlY2VpdmUsIGFzIHdlbGwgYXMgaWYgaXQgaXMgY2xvc2VkIGluCiAgICAgICBhbiBvcmRlcmx5IGZhc2hpb24uICBUaGlzIG1ha2VzIGxpZmUgZWFzaWVyIG9uIFdpbjMyIGlucGFydGljdWxhci4KICAgICAgIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgd2l0aCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oOgoKICAgZmlsZSB0YWJsZV9kYXRhLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZmlsZSB0YWJsZV9kYXRhLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9wZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9wZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfYXBpX2VycnN0cmluZy4zOgoKICAgZmlsZSBzbm1wX2FwaV9lcnJzdHJpbmcuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfc2Vzc19wZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9zZXNzX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9lcnJvci4zOgoKICAgZmlsZSBzbm1wX2Vycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNiAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBmb3IgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBsb2dmaWxlIGFyZ3VtZW50IGhhbmRsaW5nLAogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIChidWcgIzQ0ODI0MykuICBBbHNvIHVzZSBhIGxhcmdlIGVub3VnaCBidWZmZXIKICAgICAgIHRvIGhhbmRsZSBmaWxlbmFtZXMgb2YgbGVuZ3RoIFBBVEhfTUFYIChpZiBwb3NzaWJsZSkuCiAgIAoyMDAxLTA3LTMwIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIG1vdmUgc25tcF9zb2NrZXRfbGVuZ3RoIGZ1bmN0aW9uIHRvIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgICBmcm9tIHNubXBfYXBpLmMgLS0gdGhpcyBpcyB0aGUgb25seSByZW1haW5pbmcgcGxhY2UgdGhhdCB1c2VzIHRoaXMKICAgICAgIGZ1bmN0aW9uLCB3aGljaCBjZXJ0YWlubHkgZG9lc24ndCBiZWxvbmcgaW4gc25tcF9hcGkuYyBhZnRlciB0aGUKICAgICAgIHRyYW5zcG9ydCBhYnN0cmFjdGlvbiBtYWxhcmtleS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBmaWxlIGFnZW50X2hhbmRsZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0zMCAwNzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSB0cnkgdG8gcmV0dXJuIGludmFsaWQoMikgZm9yIHRoZSBpcFJvdXRlVHlwZSBjb2x1bW4gaWYgdGhlIHJvdXRlCiAgICAgICBpcyBub3QgdXAuICBTZWUgYnVnICM0MjY3MTAsIHJlcG9ydGVkIGJ5IHBqd2ViZXIuCiAgIAoyMDAxLTA3LTI3IDA3OjMyICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gc2V0IGRlZmF1bHRBdXRoVHlwZSB0byB1c21ITUFDU0hBMUF1dGhQcm90b2NvbCBpZiBTSEEgc3BlY2lmaWVkCiAgICAgICAod2FzIHNldCB0byB1c21ITUFDTUQ1QXV0aFByb3RvY29sIGluIHRoaXMgY2FzZSkuICBTcG90dGVkIGJ5CiAgICAgICBXaWxsaWFtIEtlbm5lbWVyIChidWcgIzQ0NDg2MCkKICAgCjIwMDEtMDctMjcgMDY6NTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gY2hhbmdlIHRvIGhhbmRsZV9hZ2VudHhfcmVzcG9uc2UgT05MWSB0byBzZW5kIE5FV0xZIGRlbGVnYXRlZAogICAgICAgcmVxdWVzdHMgYWZ0ZXIgcHJvY2Vzc2luZyBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuICBUaGlzIGlzIGFjaGlldmVkCiAgICAgICBieSBzYXZpbmcgdGhlIHZhbHVlIG9mIGFzcC0+b3V0c3RhbmRpbmdfcmVxdWVzdHMgYW5kIHRlbXBvcmFyaWx5CiAgICAgICBzZXR0aW5nIGl0IHRvIE5VTEwuICBBZnRlciBwcm9jZXNzaW5nIGFsbCB2YXJiaW5kcyBpbiB0aGUKICAgICAgIHJlc3BvbnNlLCB0aGVyZWZvcmUsIGFzcC0+b3V0c3RhbmRpbmdfcmVxdWVzdHMgY29udGFpbnMgb25seSBuZXdseQogICAgICAgZGVsZWdhdGVkIHJlcXVlc3RzLCBpZiBhbnkuICBBZnRlciBzZW5kaW5nIHRoZXNlLCB0aGUgbmV3IHJlcXVlc3RzCiAgICAgICBhcmUgbWVyZ2VkIHdpdGggdGhlIHNhdmVkIHF1ZXVlLgogICAKICAgICAgIFRoaXMgZml4ZXMgYSBidWcgdGhhdCBhcmlzZXMgaWYgeW91IHJlcXVlc3QgdmFyaWFibGVzIGZyb20gdHdvIG9yCiAgICAgICBtb3JlIHNlcGFyYXRlIHN1YmFnZW50cyBzaW11bHRhbmVvdXNseS4gIFdoYXQgdXNlZCB0byBoYXBwZW4gaXMKICAgICAgIHRoYXQsIHVwb24gcmVjZWl2aW5nIHRoZSBmaXJzdCByZXNwb25zZSwgdGhlIG1hc3RlciBhZ2VudCB3b3VsZAogICAgICAgbm90aWNlIHRoYXQgaXQgaGFkIGFuIG91dHN0YW5kaW5nIHJlcXVlc3QsIGFuZCByZXRyYW5zbWl0IGl0LgogICAgICAgVGhlbiB0aGUgc2Vjb25kIHJlc3BvbnNlIGFycml2ZXMsIGFuZCB0aGUgbWFzdGVyIGFnZW50IHNlbmRzIHRoZQogICAgICAgcmVwbHkgdG8gdGhlIChTTk1QKSByZXF1ZXN0ZXIgYW5kIGZyZWVzIHRoZSByZXF1ZXN0cyAoaW5jbHVkaW5nCiAgICAgICBjYWxsYmFjayBkYXRhKS4gIEZpbmFsbHksIGFub3RoZXIgQWdlbnRYIHJlc3BvbnNlICh0byB0aGUKICAgICAgIGVycm9uZW91c2x5IHRyYW5zbWl0dGVkIHJlcXVlc3QpIGFycml2ZXMgYW5kIHRoZSBjYWxsYmFjayBpcwogICAgICAgY2FsbGVkIHJlZmVyZW5jaW5nIGRlYWxsb2NhdGVkIG1lbW9yeSwgd2hpY2ggY2F1c2VzIGEgc2VnZmF1bHQuCiAgIAoyMDAxLTA3LTI2IDA3OjI4ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoTkVXLUxJQlJBUlktQVBJLjQpLCBzbm1wX2FwaS5jOgoKICAgQWRkaW5nIGEgJ2RvdWJsZSctdmFsdWVkIHZhcmJpbmQgaXNuJ3QgaW5oZXJlbnRseSBhbiBpbnRlcm5hbCBlcnJvciEKICAgCjIwMDEtMDctMjUgMDU6NDcgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkaXNhYmxlIHN0ZGVyciBsb2dnaW5nIChpZiByZXF1ZXN0ZWQpIGJlZm9yZSBjYWxsaW5nIGluaXRfbWliX21vZHVsZXMoKS4KICAgICAgIFRoaXMgc2hvdWxkIGZpeCB0aGUgcHJvYmxlbSBub3RlZCBieSBOaWdlbCBNZXRoZXJpbmdoYW0gaW4gYnVnICM0MTg4NTcKICAgICAgIHdoZXJlYnkgdGhlIEFnZW50WCBtYXN0ZXIgbW9kdWxlIHByaW50cyBhIG1lc3NhZ2UgdG8gc3RkZXJyIHdoaWNoIGNhdXNlcwogICAgICAgYSBTSUdQSVBFIHdoZW4gdGhlIGFnZW50IGlzIHN0YXJ0ZWQgYXMgYSBkYWVtb24uCiAgIAoyMDAxLTA3LTI1IDAyOjE4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGluaXRpYWxpc2UgYnVmZmVycyB0byB6ZXJvIGluIGhhbmRsZV93cmFwX2ZtdCwgdG8gYXZvaWQgZ2FyYmFnZSBpbgogICAgICAgZGlzcGxheSBvZiBzZWN1cml0eSBwYXJhbWV0ZXJzLCBhcyBub3RlZCBieSBXaWxsaWFtIEZyYXVlbmhvZmVyCiAgICAgICAoYnVnICM0MzcyMzEpLgogICAKICAgICAtIGFkZCBjbG9zaW5nIHBhcmVudGhlc2lzIGFmdGVyICh2aWEgPGFkZHJlc3M+IGluIGZvcm1hdF9wbGFpbl90cmFwCiAgIAoyMDAxLTA3LTIzIDA3OjUzICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSByZW1vdmUgZXhjZXNzaXZlIGRlYnVnZ2luZyBmcm9tIHNubXBfKHJlKWFsbG9jIGZ1bmN0aW9ucwogICAKMjAwMS0wNy0yMyAwNDozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGRlYnVnZ2luZyBvdXRwdXQgdG8gcHJpbnQgbG9zaW5nIHBhdGggY29ycmVjdGx5IHdoZW4KICAgICAgIGEgcmVtb3RlIGNvbm5lY3QgZmFpbHMuCiAgIAoyMDAxLTA3LTE3IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHVwZGF0ZSBmb3IgbmFtaW5nIGNvbnZlbnRpb25zIGFuZCBmb3Igc3RydWN0dXJlIGRlZmluaXRpb25zLgogICAKMjAwMS0wNy0xNyAwOTowNyAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBpbml0aWFsIGNvZGluZyBzdHlsZSBndWlkZWxpbmUgZG9jdW1lbnQuCiAgIAoyMDAxLTA3LTE3IDA5OjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlbWVtYmVyIHRvIHJlbW92ZV90cmFwX3Nlc3Npb24ob3VyLXNlc3Npb24td2l0aC1tYXN0ZXItYWdlbnQpCiAgICAgICBpZiB0aGUgbWFzdGVyIGFnZW50IHNlc3Npb24gZ29lcyBhd2F5LCBiZWNhdXNlIG90aGVyd2lzZSB5b3UKICAgICAgIG1heSBzdWJzZXF1ZW50bHkgdHJ5IHRvIHVzZSBpdCwgd2hpY2ggd2lsbCBwcm9iYWJseSBkdW1wIGNvcmUsCiAgICAgICBhbmQgaXMgY2VydGFpbmx5IGFuIGVycm9yLgogICAKICAgICAtIGFsc28gY2hhbmdlIHdoZW4gdHJhcCBzZXNzaW9uIGlzIHJlZ2lzdGVyZWQgdG8gYmVpbmcgaW1tZWRpYXRlbHkKICAgICAgIHRoZSBzZXNzaW9uIGlzIG9wZW5lZCBzbyB0cmFwcyBjYW4gYmUgc2VudCwgZS5nLiBmcm9tIHRoZQogICAgICAgSU5ERVhfU1RBUlQgY2FsbGJhY2sgKGZvciBleGFtcGxlIGxpbmtVcCB0cmFwcyBpbiBzdWJhZ2VudHMgdGhhdAogICAgICAgcmVnaXN0ZXIgYSByb3cgb2YgaWZUYWJsZSkuCiAgIAoyMDAxLTA3LTE3IDA4OjQ4ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBjaGFuZ2UgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLCBzbyBhcyBub3QgdG8gY2xvc2UgYW4gU05NUAogICAgICAgc2Vzc2lvbiBzaW1wbHkgYmVjYXVzZSB3ZSBhcmUgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgdHJhcF9zaW5rCiAgICAgICBsaXN0LiAgVGhlIHJhdGlvbmFsZSBpcyB0aGF0IHRoZSBzZXNzaW9uIG1heSBzdGlsbCBiZSBpbiB1c2UgZm9yCiAgICAgICBvdGhlciBwdXJwb3Nlcywgb3IgKG1vcmUgdG8gdGhlIHBvaW50KSB5b3UgbWF5IGJlIGNhbGxpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gZnJvbSB0aGUgc2Vzc2lvbidzIGNhbGxiYWNrIChmcm9tIHdoZXJlIGNsb3NpbmcgdGhlCiAgICAgICBzZXNzaW9uIGlzbid0IGEgZ29vZCBpZGVhKS4KICAgCjIwMDEtMDctMTMgMDY6MDIgIGR0czEyCgogICAqIHNubXBsaWIvbmV0c25tcC5oOgoKICAgZmlsZSBuZXRzbm1wLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMS0wNy0xMiAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZmlsZSB0YWJsZV9pdGVyYXRvci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmg6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMDI6MjEgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gZml4IGZvciBidWcgIzQzOTA5NCwgcmVwb3J0ZWQgYnkgRXZlcnQtSmFuIHZhbiBUdWlqbCwgd2hlcmVieQogICAgICAgdGhlIEFnZW50WCBtYXN0ZXIgYWdlbnQgZXhwZWN0cyBhIHJlc3BvbnNlIHRvIGFuIGFnZW50eC1DbGVhbnVwU2V0LVBEVQogICAgICAgbWVzc2FnZSAoaW5jb3JyZWN0bHkpLiAgVGhpcyBvbmx5IHNob3dzIHVwIHdoZW4gdGVzdGluZyBhZ2FpbnN0IG90aGVyCiAgICAgICBzdWJhZ2VudHMgKGUuZy4gamF4KSBiZWNhdXNlIHRoZSBuZXQtc25tcCBzdWJhZ2VudCBzZW5kcyBhIHJlc3BvbnNlCiAgICAgICB0byB0aGUgYWdlbnR4LUNsZWFudXBTZXQtUERVIChpbmNvcnJlY3RseSkuCiAgIAoyMDAxLTA3LTEwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIGZpbGUgdmFjbV9jb250ZXh0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jOgoKICAgZmlsZSB0YXJnZXRfY291bnRlcnMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oOgoKICAgZmlsZSB0YXJnZXRfY291bnRlcnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0wNSAwNjoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAsIGludGVyZmFjZXMuaDoKCiAgICAgLSBtYWtlIEludGVyZmFjZV9TY2FuX0dldF9Db3VudCBub24tc3RhdGljIGFzIGl0J3MgdmVyeSB1c2VmdWwKICAgCjIwMDEtMDctMDUgMDM6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZnJlZSB0aGUgY2FjaGVkIHNlY3VyaXR5IHBhcmFtZXRlcnMgd2hlbiB3ZSBoYXZlIGEgcGFyc2UgZXJyb3IKICAgICAgIG9uIGlucHV0LCBvdGhlcndpc2Ugd2UgbGVhayBtZW1vcnkgKHRyaWdnZXJlZCBieSBTQyAzLjAuMTMuezIsM30pLgogICAKMjAwMS0wNy0wNCAwOTo1MSAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNhdGNoIHNvbWUgbWFsZm9ybWVkIFNOTVB2MyBwYWNrZXRzCiAgIAoyMDAxLTA3LTA0IDA3OjQyICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJhZCBtaXN0YWtlIGluIHNubXB2M19zY29wZWRQRFVfaGVhZGVyX3JlYWxsb2NfcmJ1aWxkIHdoaWNoCiAgICAgICB3YXMgZW5jb2RpbmcgdGhlIHdyb25nIGxlbmd0aCBpbnRvIHRoZSBTY29wZWRQRFUgU0VRVUVOQ0UgaGVhZGVyCiAgICAgICAod2Fzbid0IGluY2x1ZGluZyBsZW5ndGggb2YgYWN0dWFsIGRhdGEsIGkuZS4gUERVISkuICBUb3RhbGx5IG15CiAgICAgICBmYXVsdCAtLSBpbnRyb2R1Y2VkIHdoZW4gY2hhbmdpbmcgb3ZlciB0byByZWFsbG9jYXRpbmcgYnVmZmVyCiAgICAgICB0eXBlIGZ1bmN0aW9ucy4gIEFtYXppbmcgdGhpcyBoYXNuJ3QgY2F1c2VkIGFsbCBzb3J0cyBvZiB0cm91YmxlCiAgICAgICBmb3IgcGVvcGxlIQogICAKMjAwMS0wNy0wMiAxODowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgZmlsZSBzbm1wLXRjLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDIgMDk6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNsaWdodCBjaGFuZ2UgdG8gZ2VuZXJhdGlvbiBvZiBlcnJvci1pbmRleDoKICAgCiAgICAgICAtIGV4cGxpY2l0bHkgdGVzdCBmb3IgZXJyb3Itc3RhdHVzID09IG5vRXJyb3IsIGFuZCBzZXQgZXJyb3ItaW5kZXgKICAgICAgICAgdG8gemVybyBpbiB0aGlzIGNhc2U7CiAgIAogICAgICAgLSBvdGhlcndpc2UgdXNlIHRoZSBjYWNoZWQgdmFsdWU7CiAgIAogICAgICAgLSBkb24ndCB6ZXJvIHRoZSBjYWNoZWQgdmFsdWUgaW4gaGFuZGxlX3Zhcl9saXN0IGlmIGhhbmRsZV9vbmVfdmFyCiAgICAgICAgIHJldHVybnMgbm9FcnJvcgogICAKICAgICAtIHRoaXMgY29wZXMgcHJvcGVybHkgd2l0aCBTRVQgcmVxdWVzdHMsIHdoZXJlIGEgZmFpbGluZyBTRVQgd2lsbCBoYXZlCiAgICAgICBhIEZSRUUgcGhhc2Ugd2hpY2ggd2lsbCB0eXBpY2FsbHkgcmV0dXJuIG5vRXJyb3IuICBQcmV2aW91c2x5IHRoaXMKICAgICAgIHdvdWxkIGVycm9uZW91c2x5IGNhdXNlIHRoZSBlcnJvci1pbmRleCB0byBiZSBzZXQgdG8gemVyby4KICAgCjIwMDEtMDctMDIgMDg6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgICAtIGZpeCBiYWQgYmVoYXZpb3VyIGluIGhlYWRlcl9zaW1wbGVfdGFibGUgd2hlbiB0aGUgaW5kZXggaXMKICAgICAgIGVxdWFsIHRvIFVMT05HX01BWAogICAKMjAwMS0wNi0yOCAxMDowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNoYW5nZSBzZW5zZSBvZiBzbm1wX29pZF9jb21wYXJlKCkgcmVzdWx0IGNoZWNrIGluIHZhcl91c21Vc2VyCiAgICAgICB0byBkbyBsZXhpLW9yZGVyaW5nIGNvcnJlY3RseQogICAKMjAwMS0wNi0yOCAwNzoyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY291bnQgbW9yZSB2MS92MmMgcGFyc2UgZXJyb3JzIChTQyAxLjEuMTIuMTApCiAgIAoyMDAxLTA2LTI4IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGVjayB0aGF0IHZlcnNpb24gZmllbGQgb2YgUERVIGlzIG9mIGludGVnZXIgdHlwZSByYXRoZXIgdGhhbiBqdXN0CiAgICAgICBhc3N1bWluZyBpdCBpcyAoU0MgMS4xLjEyLjIuMSkKICAgCjIwMDEtMDYtMjggMDQ6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHNubXBJbkJhZENvbW11bml0eU5hbWVzIHdoZW4gd2Ugc2VlIHVua25vd24gY29tbXVuaXR5CiAgICAgICBuYW1lcywgcGVyIFJGQzE5MDcKICAgCjIwMDEtMDYtMjcgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgbmV3IGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB0byBtYXJrIGFsbCBvdXIKICAgICAgIG5vZGVzIGFzIGRldGFjaGVkIHdoZW4gd2UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDYtMjcgMDg6MDcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfcmVnaXN0cnkuaCAsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBhZGQgYWRkaXRpb25hbCBmbGFnIHRvIHN1YnRyZWUgc3RydWN0dXJlIHRoYXQgc3ViYWdlbnRzIGNhbiB1c2UKICAgICAgIHRvIGRldGVybWluZSB3aGV0aGVyIGFuIGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byByZWdpc3RlciBhbmQgT0lECiAgICAgICB3aXRoIGEgbWFzdGVyIGFnZW50IGR1cmluZyBhIHNlc3Npb24ncyBsaWZldGltZS4gIFRoaXMgYWxsb3dzCiAgICAgICBtYW51YWwgcmUtcmVnaXN0cmF0aW9uIGFuZCBhdXRvbWF0aWMgcmUtcmVnaXN0cmF0aW9uIHRvIGJlIG1peGVkCiAgICAgICB3aXRoaW4gYSBzdWJhZ2VudCAocGVyaGFwcyBiZWNhdXNlIHlvdSBhcmUgZG9pbmcgaW5kZXggc3R1ZmYpLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgd2hpY2ggdW5zZXRzIHRoaXMgZmxhZyBmb3IKICAgICAgIGFsbCBrbm93biBub2RlcyAoc3ViYWdlbnQgd291bGQgdHlwaWNhbGx5IGNhbGwgdGhpcyBvbiBkaXNjb25uZWN0CiAgICAgICBpbmRpY2F0aW9uKS4KICAgCiAgICAgLSBhZGQgZnVuY3Rpb24gdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkKICAgCiAgICAgLSBjb3JyZWN0IGJhZCByZWN1cnNpdmUgYmVoYXZpb3VyIGluIHJlZ2lzdGVyX21pYl9yZWF0dGFjaCgpIHdoaWNoCiAgICAgICB1c2VkIHRvIHRyeSB0byByZS1yZWdpc3RlciBOIG5vZGVzIE4hIHRpbWVzLiAgT25jZSB3aWxsIG5vcm1hbGx5CiAgICAgICBiZSBlbm91Z2guCiAgIAogICAgIC0gY2hhbmdlIHRvIGR1bXBfcmVnaXN0cnkoKSBmb3JtYXQgdG8gaW5jbHVkZSBoZXggZGlzcGxheSBvZgogICAgICAgZmxhZ3MgZmllbGQuCiAgIAoyMDAxLTA2LTI2IDA5OjI2ICBkdHMxMgoKICAgKiBGQVE6CgogICBGaXggZXJyb3IgaW4gU05NUHYyIHRyYXAgZXhhbXBsZXMgIChJZGVudGlmaWVkIGJ5IERpd2FrYXIgU2hldHR5KS4KICAgCjIwMDEtMDYtMjYgMDI6MzUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0ZWQgc2Vuc2Ugb2YgZHVtcF9yZWFsbG9jX29pZF90b19zdHJpbmcoKSByZXR1cm4gdmFsdWUKICAgICAgIGNoZWNrcywgYXMgc3BvdHRlZCBieSBSb2JlcnQgU3RvcnkuCiAgIAoyMDAxLTA2LTI1IDA2OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHNtYWxsIHR3ZWFrIGluIGhhbmRsZV9hZ2VudHhfcmVzcG9uc2UoKSB3aGVuIHJldHJ5aW5nIHVuZnVsZmlsbGVkCiAgICAgICByZXF1ZXN0czogY29udGludWUgZnJvbSB0aGUgInN0YXJ0IiBPSUQgb2YgdGhlIG5leHQgbm9kZSBvZiB0aGUKICAgICAgIHRyZWUsIG5vdCBmcm9tIHRoZSAibmFtZSIgT0lELCB3aGljaCBjYXVzZXMgbG9vcGluZy4KICAgCjIwMDEtMDYtMjEgMDk6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gaGFuZGxlICJob2xlcyIgaW4gcm93cyBvZiB0YWJsZXMgdGhhdCBhcmUgaGFuZGxlZCBieSBzdWJhZ2VudHMKICAgCiAgICAgICBTaW5jZSB0aGUgZnVsbHktcXVhbGlmaWVkIGluc3RhbmNlIGlzIHJlZ2lzdGVyZWQsIHdlIGludGVycHJldAogICAgICAgYSByZXR1cm4gb2Ygbm9TdWNoSW5zdGFuY2Ugd2hlbiBkb2luZyBhbiBpbmV4YWN0IHF1ZXJ5IGFzIG1lYW5pbmcKICAgICAgIHdlIHNob3VsZCByZXRyeSB0aGUgcXVlcnkuCiAgIAoyMDAxLTA2LTIxIDAyOjUwICBqYnBuCgogICAqIHNubXBsaWIvbWliLmg6CgogICAgIC0gZm9yZ290IHRvIGNvbW1pdCBhdCB0aGUgc2FtZSB0aW1lIGFzIGxhc3QgbWliLmMgY29tbWl0OyB1cGRhdGVkCiAgICAgICBwcm90b3R5cGUgZm9yIHNwcmludF9yZWFsbG9jX2hpbnRlZF9pbnRlZ2VyCiAgIAoyMDAxLTA2LTIwIDA2OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYyAsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIGNvdW50X2luZGV4ZXMgd2hpY2ggcmV0dXJucyB0aGUgbnVtYmVyIG9mIGluZGV4ZXMKICAgICAgIGFsbG9jYXRlZCBmb3IgYSBnaXZlbiBPSUQuICBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZwogICAgICAgInJvdyBjb3VudCIgb2JqZWN0cywgZS5nLiBpZk51bWJlci4KICAgCjIwMDEtMDYtMjAgMDU6MzcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVEFSVCBhbmQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RPUAogICAgICAgY2FsbGJhY2tzIHdoaWNoIG1heSBiZSB1c2VkIHRvIG1hbmFnZSBpbmRleCBhbGxvY2F0aW9ucy4KICAgCiAgICAgICBNYXN0ZXIgYWdlbnQgc2hvdWxkIHByb2JhYmx5IGNhbGwgdGhlc2UgY2FsbGJhY2tzIHRvbywgYWx0aG91Z2gKICAgICAgIGl0J3MgYSBiaXQgb2YgYSBkZWdlbmVyYXRlIGNhc2UuCiAgIAoyMDAxLTA2LTE5IDA5OjQ0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gdXNlIGFuIGV4cGxpY2l0IGZpZWxlZCAiYWxsb2NhdGVkIiBpbiBzbm1wX2luZGV4IHN0cnVjdHVyZSB0bwogICAgICAgaW5kaWNhdGUgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBjdXJyZW50bHkgYWxsb2NhdGVkLCByYXRoZXIKICAgICAgIHRoYW4gb3ZlcmxvYWRpbmcgYSBOVUxMIHNlc3Npb24gdG8gbWVhbiB0aGF0IGl0IGlzIG5vdC4KICAgCiAgICAgICBUaGlzIGFsbG93cyBzdGFydHVwIGNvZGUgaW4gYSBtYXN0ZXIgYWdlbnQgdG8gcHJlLXJlZ2lzdGVyIGluZGljZXMKICAgICAgIHdoZW4gdGhlcmUgYXJlIG5vIHNlc3Npb25zIG9wZW4uCiAgIAoyMDAxLTA2LTE5IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jICwgbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSAga2VlcCB0aGUgdmFsdWUgb2YgTkVUV09SS19CWVRFX09SREVSIGZyb20gaC5mbGFncyBpbiB0aGUKICAgICAgICBhZ2VudHgtT3Blbi1QRFUgYW5kIHVzZSBpdCBmb3Igc3Vic2VxdWVudCBtYXN0ZXItaW5pdGlhdGVkCiAgICAgICAgQWdlbnRYIHByb3RvY29sIG9wZXJhdGlvbnMsIHBlciBSRkMgMjc0MSAoc2VjdGlvbiA3LjEuMSwKICAgICAgICBwYXJhZ3JhcGggNCkuCiAgIAogICAgICAgIEZvciBub3csIHdlIGFyZSBzdG9yaW5nIHRoaXMgaW4gdGhlIGZsYWdzIGZpZWxkIG9mIGEKICAgICAgICBzdWJzZXNzaW9uLiAgVGhpcyBpcyBsaWtlbHkgdG8gc3RvcCB3b3JraW5nIGlmIHRoZSBmbGFncwogICAgICAgIGRlZmluaXRpb25zIGNoYW5nZSAoaS5lLiBpdCdzIG5vdCBhIGdyZWF0IHNvbHV0aW9uKQogICAKICAgICAtICBUaGFua3MgdG8gUGV0ZXIgS29yc3RlbiAoc2V2ZXJpdHlvbmUgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0KQogICAgICAgIGZvciBpZGVudGlmeWluZyB0aGlzIGJ1ZywgYW5kIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzIGZpeC4KICAgCjIwMDEtMDYtMTkgMDI6MzUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSByZWluc3RhdGUgc3BhY2UgYmV0d2VlbiBudW1iZXJzIGFuZCB1bml0cy4KICAgCiAgICAgLSByZXNwZWN0IERJU1BMQVktSElOVHMgZm9yIFVuc2lnbmVkMzIsIEdhdWdlLCBHYXVnZTMyIHR5cGVzLgogICAKMjAwMS0wNi0xMyAwMzoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtaW5vciBjaGFuZ2UgdG8gZGVidWdnaW5nIHRvIHJlZHVjZSAibm9pc2UgbGV2ZWwiIGZyb20gUHVyaWZ5CiAgIAoyMDAxLTA2LTEyIDEwOjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGV0aXRpb25zIGZpZWxkIHZhbHVlcyBvZiA8IDAgKGJ5CiAgICAgICBzZXR0aW5nIHRoZW0gdG8gMCwgcGVyIFJGQyAxOTA1KQogICAKMjAwMS0wNi0xMiAxMDowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IGJ1ZyB0aGF0IGNhdXNlZCBhIG51bGwgcG9pbnRlciB0byBiZSBmb2xsb3dlZCB3aGVuIHByb2Nlc3NpbmcgYQogICAgICAgR0VUQlVMSyByZXF1ZXN0IHdpdGggbm9uLXJlcGVhdGVycyA+IDAsIG1heC1yZXBldGl0aW9ucyA9PSAwIGFuZCBubwogICAgICAgdmFyYmluZHMgaW4gdGhlIHJlcXVlc3QuCiAgIAoyMDAxLTA2LTEyIDA3OjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjEpLCByZWFkX2NvbmZpZy5jOgoKICAgRml4ICd1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyJyB0byBoYW5kbGUgdGFncyBvdGhlcgogICB0aGFuIHRoZSBmaXJzdCBpbiB0aGUgbGlzdC4gIChUaGFua3MgdG8gUGF1bCBTZXJpY2UpLgogICAKMjAwMS0wNi0wNiAwNzozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSgpIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCkgY2FsbHMKICAgCjIwMDEtMDYtMDYgMDc6MzcgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBtb3JlIHVuaWZvcm0gcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKTogbWFrZSBpdCBhbHdheXMgYQogICAgICAgdmFyYmluZCB3aGljaCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVlKClpbmcsIG9yIGVsc2UgTlVMTC4KICAgCjIwMDEtMDYtMDUgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBmaXggZm9yIGluZGV4IGFsbG9jYXRpb24sIHN1Y2ggdGhhdCByZXF1ZXN0cyBmb3Igc3BlY2lmaWMgaW5kaWNlcyB3aGljaAogICAgICAgaGF2ZSBwcmV2aW91c2x5IGJlZW4gYWxsb2NhdGVkLCBidXQgYXJlIG5vdCBjdXJyZW50bHkgaW4gdXNlLCBzdWNjZWVkLgogICAKICAgICAtIG1vcmUgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICBmaWxlIHRlc3RkZWxheWVkLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmg6CgogICBmaWxlIHRlc3RoYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmM6CgogICBmaWxlIHRlc3RkZWxheWVkLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6CgogICBmaWxlIHRlc3RoYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpbGUgdGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oOgoKICAgZmlsZSBtdWx0aXBsZXhlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGZpbGUgb2xkX2FwaS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuaDoKCiAgIGZpbGUgbnVsbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBmaWxlIGluc3RhbmNlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oOgoKICAgZmlsZSBzZXRfaGVscGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaDoKCiAgIGZpbGUgdGFibGUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYzoKCiAgIGZpbGUgcmVhZF9vbmx5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaWxlIHNlcmlhbGl6ZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaDoKCiAgIGZpbGUgb2xkX2FwaS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmg6CgogICBmaWxlIGluc3RhbmNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5Lmg6CgogICBmaWxlIHJlYWRfb25seS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmU6CgogICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYzoKCiAgIGZpbGUgbXVsdGlwbGV4ZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpbGUgTWFrZWZpbGUuaW4gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmg6CgogICBmaWxlIHNlcmlhbGl6ZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIGZpbGUgbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1pc2MgZml4ZXMgZm9yIG9pZCBmb3JtYXR0aW5nIHByb2JsZW1zLgogICAKMjAwMS0wNi0wMSAwNzozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIE1hcnRpbiBPbGRmaWVsZC4KICAgCjIwMDEtMDYtMDEgMDI6NTAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmggLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBmaXggZm9yIGFic29sdXRlbHkgbWluZC1iZW5kaW5nIG1lbW9yeSBsZWFrIHdoZW4gQWdlbnRYIHNlc3Npb25zCiAgICAgICB0aW1lb3V0LiAgYWdlbnRfc2Vzc2lvbl9saXN0IGhvbGRzIGEgcXVldWUgb2Ygc2Vzc2lvbnMgd2l0aCBvdXRzdGFuZGluZwogICAgICAgcmVxdWVzdHMuICBXaGVuIGEgc2Vzc2lvbiB0aW1lcyBvdXQsIHRoaXMgbXVzdCBiZSBzY2F2ZW5nZWQgdG8gbWFrZQogICAgICAgc3VyZSB0aGUgc2Vzc2lvbnMgdGhhdCBoYXZlIHRpbWVkIG91dCwgYW5kIHRoZWlyIGFzc29jaWF0ZWQgcmVxdWVzdHMKICAgICAgIGFyZSBmcmVlKClkLgogICAKMjAwMS0wNS0zMCAwMzoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZXRyeSBpbml0aWFsIG9wZW4gb2YgQWdlbnRYIG1hc3RlciBzb2NrZXQgaWYgQWdlbnRYIHBpbmdzIGFyZQogICAgICAgZW5hYmxlZCAoc2hvdWxkIHJlYWxseSBiZSBhIHNlcGFyYXRlIGRlZmF1bHRfc3RvcmUgb3B0aW9uIGJ1dAogICAgICAgbmV2ZXIgbWluZCkKICAgCjIwMDEtMDUtMzAgMDM6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gbW9yZSBhZ2dyZXNzaXZlIGhhbmRsaW5nIG9mIHRpbWVvdXQgY29uZGl0aW9ucyAoYWxzbyBmaXggbWVtb3J5CiAgICAgICBsZWFrKQogICAKMjAwMS0wNS0zMCAwMzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gbW9yZSBpbmZvcm1hdGl2ZSBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMzAgMDI6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAgIC0gcmVtb3ZlIG5vaXN5IGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9yZSBjb21wYWN0IGRlYnVnZ2luZyBpbiBfc2Vzc19zZWxlY3RfaW5mbwogICAKMjAwMS0wNS0zMCAwMjozNCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGNvcHkgZmxhZ3MgaW4gcmVhdHRhY2hfc3VidHJlZSAobmVlZGVkIGZvciBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikKICAgCjIwMDEtMDUtMjggMDg6NTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgLCBjbGllbnQuaCAsCiAgIG1hc3Rlcl9hZG1pbi5jICwgbWFzdGVyX3JlcXVlc3QuYyAsIHN1YmFnZW50LmM6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQ5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHR3ZWFrIHRvIGdldFN0YXRQdHIgdG8gaGFuZGxlIGdldE5leHQgb3BlcmF0aW9ucyBpbiBjb21iaW5hdGlvbiB3aXRoCiAgICAgICBGVUxMWV9RVUFMSUZJRURfSU5TVEFOQ0Ugbm9kZXMgKHdoaWNoIGFyaXNlIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKS4KICAgCjIwMDEtMDUtMjggMDg6NDYgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfcmVnaXN0cnkuaCAsCiAgIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBzdHVmZiBmcm9tIHBhdGNoICM0MTYwMjYgKHN1Ym1pdHRlZCBieSBhbm9ueW1vdXMpIGZvciBBZ2VudFggcm93CiAgICAgICByZWdpc3RyYXRpb24KICAgCjIwMDEtMDUtMjggMDg6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHNtYWxsIHR3ZWFrIHRvIGRlYnVnZ2luZyBvdXRwdXQKICAgCjIwMDEtMDUtMjggMDg6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG8gcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcyAqcHJvcGVybHkqLgogICAKMjAwMS0wNS0yOCAwNDo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGluIF9zZXNzX2FzeW5jX3NlbmQgZXJyb3IgY2FzZXMKICAgCjIwMDEtMDUtMjggMDQ6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gYWRkIHBhcnNpbmcvYnVpbGRpbmcgb2YgQVNOX1BSSVZfRVhDTF9SQU5HRSBhbmQKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgdHlwZXMuCiAgIAoyMDAxLTA1LTIzIDA5OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZXNwZWN0IG1zZ01heFNpemUgaW4gcmVjZWl2ZWQgdjMgUERVcyAoaW4gdGhlIHdlYWsgc2Vuc2UgdGhhdCBpZgogICAgICAgdGhlIHNlcmlhbGl6ZWQgcmVzcG9uc2UgUERVIGlzIG1vcmUgdGhhbiBpdCwgd2UgZG9uJ3Qgc2VuZCBpdCkKICAgCiAgICAgLSByZW1vdmVkIGZ1bmN0aW9ucyBhc2NpaV90b19iaW5hcnksIGhleF90b19iaW5hcnkuICBVc2luZyB0aGVzZQogICAgICAgZnVuY3Rpb25zIGlzIHJlYWxseSBiYWQsIHNpbmNlIHRoZXkgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuCiAgICAgICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLCBkZWZpbmVkIGluIHRvb2xzLmgsIGFyZQogICAgICAgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA5OjAwICBqYnBuCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc3RydWN0IHNvY2thZGRyX2luIHJlc3BJcAogICAKMjAwMS0wNS0yMyAwODo1OCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZWFybHkgYmFpbCBvdXQgb2YgaGFuZGxlX3NubXBfcGFja2V0KCkgaWYgdGhlIGNhbGxiYWNrIG9wZXJhdGlvbgogICAgICAgdHlwZSBpcyBub3QgU05NUF9DQUxMQkFDS19PUF9SRUNFSVZFRF9NRVNTQUdFLiAgSW4gcHJhY3RpY2UsIHRoZQogICAgICAgb25seSB3YXkgdGhpcyBhcmlzZXMgY3VycmVudGx5IGlzIHdoZW4gYSBzdHJlYW0gdHJhbnNwb3J0IGJhc2VkCiAgICAgICBjb25uZWN0aW9uIGdvZXMgYXdheSBhbmQgYSBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgb2NjdXJzLgogICAKMjAwMS0wNS0yMyAwODo0NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbmV3IGZpZWxkcyByY3ZNc2dNYXhTaXplIGFuZCBzbmRNc2dNYXhTaXplIGluIHNubXBfc2Vzc2lvbgogICAgICAgc3RydWN0dXJlIHRvIHN1cHBvcnQgdjMgbXNnTWF4U2l6ZQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeSBmcm9tIHB1YmxpYwogICAgICAgaW50ZXJmYWNlLiAgVXNpbmcgdGhlc2UgZnVuY3Rpb25zIGlzIHJlYWxseSBiYWQsIHNpbmNlIHRoZXkKICAgICAgIHdpbGwgaGFwcGlseSBvdmVyZmxvdyBidWZmZXJzLiAgVGhlIHN1cGVyaW9yIGFsdGVybmF0aXZlcywKICAgICAgIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlIHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5LgogICAKMjAwMS0wNS0yMyAwODozNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmMKICAgLCBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgbXNnTWF4U2l6ZSBmaWVsZCB0byBzbm1wX3RyYW5zcG9ydCBzdHJ1Y3R1cmUgdG8gc3VwcG9ydAogICAgICAgbXNnTWF4U2l6ZSBuZWdvdGlhdGlvbiBmb3IgdjMKICAgCjIwMDEtMDUtMjMgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19oZXhzdHJpbmcgaW5zdGVhZCBvZiBzcHJpbnRfaGV4c3RyaW5nIGZvcgogICAgICAgU05NUF9URVNUSU5HX0NPREUgZGVidWdnaW5nIG91dHB1dCBvZiBJViwga2V5IGFuZCBwbGFpbnRleHQKICAgCjIwMDEtMDUtMjMgMDU6MjUgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgb3B0aW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDQ6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIGFuZCAtRSBvcHRpb25zLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDM6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIHVzZSBuZXcgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkgZnVuY3Rpb25zIGZvciBpbnB1dCBzdHJpbmcKICAgICAgIHRvIE9DVEVUIFNUUklORyBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGFzY2lpX3RvX2JpbmFyeQogICAgICAgYW5kIGhleF90b19iaW5hcnkKICAgCiAgICAgLSBvbWl0IHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBzdHJpbmcgKGhlbHBmdWwgZm9yIG9iamVjdHMgdGhhdCBkb24ndAogICAgICAgYWxsb3cgbm9uLXByaW50aW5nIGNoYXJhY3RlcnMsIGUuZy4gc3lzTG9jYXRpb24uMCkKICAgCjIwMDEtMDUtMjAgMDg6MTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJld3JpdHRlbiBfc2Vzc19yZWFkKCkgZnVuY3Rpb246CiAgIAogICAgICAgLSBiZXR0ZXIgaGFuZGxpbmcgb2YgbG9uZyBwYWNrZXRzCiAgICAgICAtIHplcm8tY29weSByZWNlcHRpb24gb2YgcGFja2V0cyBvbiBzdHJlYW0gdHJhbnNwb3J0cwogICAgICAgLSBsb3dlciBtZW1vcnkgb3ZlcmhlYWRzIGZvciBwYWNrZXQgZnJhZ21lbnQgaGFuZGxpbmcgZm9yIHN0cmVhbQogICAgICAgICB0cmFuc3BvcnRzCiAgIAogICAgIC0gYWxsb3cgcGFyc2luZyBvZiBsYXJnZSBvYmplY3RzICg+ODE5MiBvY3RldHMpCiAgIAoyMDAxLTA1LTIwIDA1OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgY29udGV4dE5hbWUsIHNlY3VyaXR5TmFtZSAtLSBjYXVzZXMgbWlub3IgbWVtb3J5CiAgICAgICBsZWFrLgogICAKMjAwMS0wNS0yMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB0ZXN0IHJldHVybiBvZiBmY250bChGX0dFVEZMKSwgc28gYXMgbm90IHRvIHNldCBmbGFncyB0byBnYXJiYWdlCiAgIAogICAgIC0gY29ycmVjdGlvbiB0byBjb21tZW50IC0tIHNldCBzb2NrZXQgdG8gKmJsb2NraW5nKiEKICAgCiAgICAgLSBjaGVjayBvcGFxdWUgYmVmb3JlIHdyaXRpbmcgdG8gaXQgaW4gcmVjdgogICAKMjAwMS0wNS0yMCAwNTowMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcHJvcGVyIGhhbmRsaW5nIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBpbiBzbm1wX3N5bmNoX2lucHV0OgogICAgICAgc2V0IGFuIGVycm9yIGNvbmRpdGlvbiwgd2l0aCBlcnJubyBTTk1QRVJSX0FCT1JUICgiU2Vzc2lvbiBhYm9ydAogICAgICAgZmFpbHVyZSIpLCB3aGljaCBzZWVtcyBsaWtlIGEgZ29vZCBlbm91Z2ggbWF0Y2guCiAgIAoyMDAxLTA1LTE4IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2UgbmV3bHktYWNjZXB0KCllZCBzb2NrZXRzIGJsb2NraW5nOyBvdGhlcndpc2UgcHJvYmxlbXMgYXJpc2UKICAgICAgIGxhdGVyIHdoZW4gc2VuZCgpaW5nIGxhcmdlIFBEVXMgKHNpbmNlIG9ubHkgYSBzaW5nbGUgc29ja2V0IGJ1ZmZlcidzCiAgICAgICB3b3J0aCBvZiBkYXRhIGF0IG1vc3QgY2FuIGJlIHNlbnQgd2l0aG91dCBibG9ja2luZykuCiAgIAoyMDAxLTA1LTE4IDA3OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGluc3RlYWQgb2YKICAgICAgIHNwcmludF9vYmppZCBhbmQgc3ByaW50X3ZhcmlhYmxlIHJlc3BlY3RpdmVseSwgdG8gYWxsb3cgbGFyZ2UgUERVcwogICAgICAgdG8gYmUgcHJpbnRlZCB3aGVuIGRlYnVnZ2luZwogICAKMjAwMS0wNS0xOCAwNzoxNiAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIHNubXBfcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE4IDA3OjE1ICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIG1pYi5oOgoKICAgICAtIHJlbW92ZSBkZWJ1Z2dpbmcgZnJvbSBvdXRwdXQgcm91dGluZXMKICAgCiAgICAgLSBuZXcgZnVuY3Rpb24gc3ByaW50X3JlYWxsb2Nfb2JqaWQKICAgCiAgICAgLSBtYWtlIHNwcmludF9yZWFsbG9jX29iamlkIGFuZCBzcHJpbnRfcmVhbGxvY192YXJpYWJsZSBleHRlcm5hbGx5CiAgICAgICB2aXNpYmxlCiAgIAoyMDAxLTA1LTE4IDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGltcHJvdmVkIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSBhc25fcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE1IDA0OjEwICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBhZGQgT0lEcyBmb3IgVURQL0lQdjYgYW5kIFRDUC9JUHY2CiAgIAoyMDAxLTA1LTE0IDAyOjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIGFkZGVkIFxuIHRvIHRleHQgb2Ygc25tcF9sb2coKSBtZXNzYWdlcyAoYnVnICM0MjI5NzgpCiAgIAoyMDAxLTA1LTExIDA3OjMwICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIG1pYi5oOgoKICAgICAtIGFkZGVkIHNwcmludF9yZWFsbG9jXzx0eXBlPiBmYW1pbHkgb2YgZnVuY3Rpb25zIHdoaWNoIHRha2UgZXh0cmEKICAgICAgIHBhcmFtZXRlcnMgYW5kIHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMgdG8gcmVtb3ZlIGxpbWl0YXRpb25zIGR1ZSB0bwogICAgICAgZml4ZWQtc2l6ZSBidWZmZXJzIChlLmcuIHNlZSBidWcgIzQwOTE4MSkuCiAgIAogICAgIC0gYWxzbyBmaXhlcyBwb3RlbnRpYWwgcHJvYmxlbSBub3RlZCBhcyBidWcgIzQxNDgwMwogICAKICAgICAtIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGFuZCBmcHJpbnRfdmFsdWUgdXNlIG5ldyBmdW5jdGlvbnMKICAgICAgIHN1Y2ggdGhhdCBzbm1wZ2V0IGV0Yy4gYXJlIGltcHJvdmVkIGltbWVkaWF0ZWx5CiAgIAogICAgIC0gb2xkIGZ1bmN0aW9ucyByZW1haW4gKkZPUiBOT1cqIC0tIGJ1dCByZWFsbHkgdGhleSBzaG91bGQgYmUKICAgICAgIGNvbnNpZGVyZWQgdG8gYmUgZGVwcmVjYXRlZCAobmV3IGZ1bmN0aW9ucyBwcm92aWRlIGEgc3VwZXJzZXQgb2YKICAgICAgIHRoZWlyIGZ1bmN0aW9uYWxpdHkpLgogICAKMjAwMS0wNS0xMSAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAgIC0gYWRkZWQgYWRkaXRpb25hbCBmdW5jdGlvbiBwb2ludGVyIHRvIHN0cnVjdCB0cmVlIHRvIHBvaW50IGF0CiAgICAgICByZWxvY2F0aW5nIGJ1ZmZlciBjb21wYXRpYmxlIG91dHB1dCBmdW5jdGlvbgogICAKMjAwMS0wNS0xMSAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAsIHRvb2xzLmg6CgogICAgIC0gYWRkZWQgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3N0cmNhdCwgd2hpY2ggYXBwZW5kcyBhIHN0cmluZyB0byBhCiAgICAgICByZWxvY2F0YWJsZSBidWZmZXIKICAgCjIwMDEtMDUtMTAgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGJ1ZyAjNDIzMTA5IGluY29ycmVjdCBpbmRleCBwYXJzaW5nCiAgIAoyMDAxLTA1LTA5IDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZml4IHNubXBfY2xpZW50LmM6NTY5OiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTA5IDEyOjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi5oICwgUm1vbi9SRUFETUUgLCBSbW9uL2FndXRpbC5jCiAgICwgUm1vbi9hZ3V0aWwuaCAsIFJtb24vYWd1dGlsX2FwaS5oICwgUm1vbi9hbGFybS5jCiAgICwgUm1vbi9hbGFybS5oICwgUm1vbi9ldmVudC5jICwgUm1vbi9ldmVudC5oICwKICAgUm1vbi9oaXN0b3J5LmMgLCBSbW9uL2hpc3RvcnkuaCAsIFJtb24vcm93X2FwaS5oICwKICAgUm1vbi9yb3dzLmMgLCBSbW9uL3Jvd3MuaCAsIFJtb24vc3RhdGlzdGljcy5jICwKICAgUm1vbi9zdGF0aXN0aWNzLmggLCBSbW9uL3Rlc3RfYWxhcm0uc2ggLAogICBSbW9uL3Rlc3RfaGlzdC5zaDoKCiAgIEluY2x1ZGUgQWxleCBSb3ppbidzIFJtb24uCiAgIAoyMDAxLTA1LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYyAsIHNubXBfY2xpZW50Lmg6CgogICBBZGRlZCBhIGNvdXBsZSBvZiBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIG1hbmlwdWxhdGluZyB2YXJiaW5kbGlzdHM6CiAgICAgaW50IHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZShzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqbmV3dmFyLCB1X2NoYXIgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfY2hhciAqdmFsX3N0ciwgc2l6ZV90IHZhbF9sZW4pOwogICAgIHZvaWQgc25tcF9yZXBsYWNlX3Zhcl90eXBlcyhzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqdmJsLCBpbnQgb2xkX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdfdHlwZSk7CiAgICAgdm9pZCBzbm1wX3Jlc2V0X3Zhcl90eXBlcyhzdHJ1Y3QgdmFyaWFibGVfbGlzdCAqdmJsLCBpbnQgbmV3X3R5cGUpOwogICAKMjAwMS0wNS0wNyAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5oOgoKICAgZGVmaW5lIFNOTVBfTUFMTE9DX1RZUEVERUYoKQogICAKMjAwMS0wNS0wNSAwNzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIGZpeCBzdG9yZV8gbmFtZTsgZG9uJ3QgY2FzdCB0byBhc255IHR5cGUgaWYgcGFybSBleHBlY3RpbmcgdV9jaGFyKjsgZml4IF92YXJpYWJsZV9vaWQKICAgbmFtaW5nOyBjYXN0IHBhcm0gMiBvZiBtZW1kdXAgdG8gdV9jaGFyKgogICAKMjAwMS0wNS0wMyAxNDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXhlZCByYXV0aCBvZmZzZXQgaW5jcmVtZW50aW5nOiB3YXMgaW5jcmVtZW50aW5nIHRoZSBwb2ludGVyLCBub3QgdGhlIHZhbHVlLgogICAgIC0tIG1vcmUgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHByb2JsZW0gZm91bmQuCiAgIAoyMDAxLTA1LTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgIAoyMDAxLTA1LTAzIDEwOjA4ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00ICwgY29uZmlnLmd1ZXNzICwgY29uZmlnLnN1YiAsCiAgIGNvbmZpZ3VyZSAsIGx0bWFpbi5zaDoKCiAgIHVwZGF0ZWQgdG8gbGlidG9vbCAxLjQKICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgdXNlIHJlYWxsb2Mgcm91dGluZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggdmFyaWFibGUgZGVjbGFyYXRpb24uCiAgIAoyMDAxLTA1LTAxIDEzOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9uJ3QgcHJpbnQgaGV4IGZvciBzdHJpbmcgbGVuZ3RocyBsZXNzIHRoYW4gNC4gIFNob3VsZCBoYXZlIGRpZWQgYWdlcyBhZ28uCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaDoKCiAgIEZpeCBwcm90b3R5cGUgc28gaXRzIG5vdCBzdGF0aWMgKGl0IHNob3VsZG4ndCBiZSkuCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgbWFrZSBST05MWSB2YXJpYWJsZXMgd3JpdGFibGUgKHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsuICBJJ20gYmV0dGluZyBub3QuKQogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBhbiBycG0gc3ViZGlyZWN0b3J5LgogICAKMjAwMS0wNC0yMyAyMDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBiaWcgY2xlYW51cCBhbmQgb3RoZXIgZml4ZXMgSSd2ZSBhbHJlYWR5IGZvcmdvdHRlbiBpbiB0aGUgbGFzdCBmZXcgbWludXRlcy4KICAgCjIwMDEtMDQtMjMgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgRG9uJ3Qgd2FsayBvZmYgZW5kIG9mIG1pYiB0cmVlIChzaWdoKS4KICAgCjIwMDEtMDQtMjMgMjA6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHRoZSBtaWIgaW5mbyBkaXNwbGF5IG9wdGlvbnMuCiAgIHNhdmUgdGhlbSBhcHByb3ByaWF0ZWx5LgogICAKMjAwMS0wNC0yMyAxODoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtb3JlIHNhdmFibGUgb3B0aW9uIGl0ZW1zLgogICB1c2UgRGF0YTo6RHVtcGVyIHRvIHNhdmUgbW9zdCBzdHVmZi4KICAgCjIwMDEtMDQtMjMgMTc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgRG9uJ3Qgc2F2ZSBzZXNzaW9uIG9wdGlvbnMgdHdpY2UuCiAgIE1ha2UgY29sb3Igb2Ygd3JpdGFibGUgb2JqZWN0cyBhIHZhcmlhYmxlLgogICAKMjAwMS0wNC0yMyAxNzowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiB0a21pYiAoVjQtMi1wYXRjaGVzLjIpLCB0a21pYjoKCiAgIGZpeCB3YWxrIHByb2JsZW0gb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDEtMDQtMjMgMTY6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgcmVkdWNlIHNjcmVlbiByZWFsZXN0YXRlIGFsbCBvdmVyIHRoZSBwbGFjZQogICAKMjAwMS0wNC0yMyAxNjozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICB0ZXN0IGFnYWluc3QgdmVyc2lvbiA1CiAgIAoyMDAxLTA0LTE4IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oICwgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQKICAgLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGRlZCBMTS1TRU5TT1JTLU1JQiBzdXBwb3J0IChkaXNraW8gZXh0ZW5zaW9uKSBmcm9tIE1hcnRpbiBPbGRmaWVsZAogICAKMjAwMS0wNC0xOCAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFja2luZyBvbiBzbm1wX2FkZF92YXIgdG8gaGFuZGxlIGxvbmcgdmFsdWVzCiAgIAogICAgICAgLSB1c2Ugc25tcF97aGV4LGRlY2ltYWx9X3RvX2JpbmFyeSBpbnN0ZWFkIG9mIGhleF90b19iaW5hcnkKICAgICAgICAgYW5kIGFzY2lpX3RvX2JpbmFyeTsgdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQKICAgCiAgICAgICAtIGRvbid0IHVzZSBzdHJ0b2sgaW4gcHJvY2Vzc2luZyBiaXRzdHJpbmdzCiAgIAoyMDAxLTA0LTE4IDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHVzZSB0aGUgZ2VuZXJpYyBzbm1wX3JlYWxsb2MgZnVuY3Rpb24gaW4gYXNuX3JlYWxsb2MKICAgCjIwMDEtMDQtMTggMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMgLCB0b29scy5oOgoKICAgICAtIG5ldywgcmVhbGxvY2F0aW5nIHV0aWxpdHkgZnVuY3Rpb25zIHNubXBfaGV4X3RvX2JpbmFyeSBhbmQKICAgICAgIHNubXBfZGVjaW1hbF90b19iaW5hcnkgdG8gY29udmVydCBoZXggYW5kIGRlY2ltYWwgc3RyaW5ncyB0byBvY3RldAogICAgICAgc3RyaW5ncyByZXNwZWN0aXZlbHkuCiAgIAogICAgIC0gbmV3IHV0aWxpdHkgZnVuY3Rpb24gc25tcF9yZWFsbG9jIHRvIHBlcmZvcm0gYnVmZmVyIChyZS0pYWxsb2NhdGlvbgogICAKMjAwMS0wNC0xMiAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hZ2VudC5jOgoKICAgQmV0dGVyIGZpeCBmb3IgYnVnICM0MTQ4NTUgZnJvbSBhcmFqZXNoCiAgIEhhbmRsZXMgbm9uLXJlcGVhdGVycz0wIGFzIHdlbGwsIGFuZCBhdm9pZHMgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0wNC0xMSAxMDowNiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBleHRlbmRlZCAoYW5kIGNvcnJlY3RlZCEpIGNvbW1lbnRhcnkgb24gY29ycmVjdCB1c2FnZSBvZiBuZXcgQVBJLgogICAKMjAwMS0wNC0xMSAxMDowNSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcC5jICwgc25tcC5oOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZF92YXJfb3AgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTExIDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjAyICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGFzbl9yZWFsbG9jKCkgZnVuY3Rpb24gY2hlY2tzIHdoZXRoZXIgaXQgaGFzIGJlZW4gcGFzc2VkIGEgTlVMTAogICAgICAgcG9pbnRlciBhbmQgdXNlcyBtYWxsb2MoKSBpbiB0aGF0IGNhc2UgKHRoYW5rcyB0byBNaWNoYWVsIFNsaWZjYWsKICAgICAgIGZvciBwb2ludGluZyBvdXQgdGhlIGRhbmdlciBoZXJlKS4KICAgCjIwMDEtMDQtMTEgMDY6MTMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBHZXRCdWxrIHJlcXVlc3RzIHdpdGggbWF4LXJlcGV0aXRpb25zPTAgcHJvcGVybHkgKGJ1ZyAjNDE0ODU1KQogICAKMjAwMS0wNC0xMCAwNDo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBzZXQgU09fU05EQlVGIGFuZCBTT19SQ1ZCVUYgdG8gMTI4S2IgZm9yIG5ld2x5LW9wZW5lZCBVRFAgc29ja2V0cywKICAgICAgIHRvIGVuYWJsZSBsYXJnZSBQRFVzIHRvIGJlIHNlbnQgYW5kIHJlY2VpdmVkLiAgU29tZQogICAgICAgaW1wbGVtZW50YXRpb25zIGRlZmF1bHQgdmVyeSBsb3cgKFNvbGFyaXMgMi43IDhLYiwgTGludXggMi40CiAgICAgICA2NEtiKS4KICAgCjIwMDEtMDQtMDkgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gbW9kaWZpZWQgdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gbWFrZSB1c2Ugb2YgcmVhbGxvY2F0aW5nCiAgICAgICByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5oOgoKICAgICAtIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuaDoKCiAgICAgLSBhbGxvdyBhZGRpdGlvbmFsIHBhcmFtZXRlciBmb3Igb3V0Z29pbmcgcGFyYW1zIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBwcm90b3R5cGVzIGZvciByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zCiAgIAoyMDAxLTA0LTA5IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCB0byB1c2UgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgaWYKICAgICAgIHVzaW5nIHJldmVyc2UgZW5jb2RpbmcgYXQgYWxsLgogICAKMjAwMS0wNC0wOSAwOTo0OSAgamJwbgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgICAgLSBhZGQgbmV3IGZ1bmN0aW9uIHNubXBfcmVhbGxvY19yYnVpbGRfdmFyX29wKCkgd2hpY2ggdXNlcwogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgdG8gZW5jb2RlIHZhcmJpbmRzLgogICAKMjAwMS0wNC0wOSAwOTo0NyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgICAgLSBwcm90b3R5cGUgZm9yIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sCiAgICAgICB3aGljaCBwZXJmb3JtIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZQogICAgICAgaXMgbm90IGVub3VnaCBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKICAgICAtIGNvbW1lbnRhcnkgb24gY29ycmVjdCB1c2FnZSBvZiBhYm92ZS4KICAgCjIwMDEtMDQtMDkgMDk6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwgd2hpY2ggcGVyZm9ybQogICAgICAgcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKICAgICAgIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAoyMDAxLTA0LTA2IDEyOjEyICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQgLCBDT1BZSU5HICwgQ2hhbmdlTG9nICwKICAgRVhBTVBMRS5jb25mLmRlZiAsIEZBUSAsIE5FV1MgLCBQT1JUSU5HICwKICAgUkVBRE1FICwgUkVBRE1FLmFnZW50eCAsIFJFQURNRS5zbm1wdjMgLCBjb25maWd1cmUKICAgLCBjb25maWd1cmUuaW4gLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmgKICAgLCBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9kc19hZ2VudC5oICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmggLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwgYXBwcy9zbm1wZGVsdGEuYwogICAsIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBsb2NhbC9NYWtlZmlsZS5pbiAsIGxvY2FsL21pYjJjICwgbG9jYWwvc25tcGNvbmYKICAgLCBsb2NhbC90a21pYiAsIGxvY2FsL3dlc3Jlc3RhcnQgLCBtYW4vc25tcGNtZC4xCiAgICwgbWFuL3NubXBkLmNvbmYuNS5kZWYgLCBtYW4vc25tcGRlbHRhLjEgLAogICBtaWJzL3JmY2xpc3QgLCBtaWJzL3JmY21pYnMuZGlmZiAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoICwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQ6CgogICBtZXJnZTMgLT4gbWVyZ2U0LiAgSSBkb24ndCAqdGhpbmsqIEkgYnJva2UgYW55dGhpbmcuCiAgICAgLSBUaGUgbWFpbiBsaW5lIHNob3VsZCBub3cgY29udGFpbiBhbGwgdGhlIDQuMi4xIHBhdGNoZXMuCiAgICAgLSBJIG1heSBkb3VibGUgY2hlY2sgdGhpcyBhdCBhIGxhdGVyIGRhdGUuCiAgIAoyMDAxLTA0LTA1IDA2OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDaGFuZ2UgJ0xpbmUnIHZhcmlhYmxlIG5hbWUsIHRvIGFzc2lzdCB3aXRoIE1hYyBwb3J0LgogICAKMjAwMS0wNC0wNSAwNjoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgQWxzbyBhcHBsaWVkIHRvICdwYXNzX3BlcnNpc3QnLgogICAKMjAwMS0wNC0wNSAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfdHJhcC5jICwga2VybmVsLmMKICAgLCBtaWJfbW9kdWxlcy5jICwgc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oCiAgICwgc25tcF92YXJzLmMgLCBtaWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMgLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBtaWJncm91cC9ob3N0L2hyX3V0aWxzLmMKICAgLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMgLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDUgMDY6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEVuc3VyZSB0aGF0IGNoZWNraW5nIGZvciAnc3RhdHZmcycgaXMgZG9uZSBjb25zaXN0ZW50bHkKICAgCjIwMDEtMDQtMDUgMDY6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGVuc3VyZSB0aGF0ICdleGVjX2NvbW1hbmQnIGlzIHVzZWQgY29uc2lzdGVudGx5IHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiBleGVjdgogICAoQSBjbGVhbmVyIGFwcHJvYWNoIHRoYW4gdGhlIHByZXZpb3VzIHBhdGNoKQogICAKMjAwMS0wNC0wNSAwNjowMSAgZHRzMTIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMgLCBhdXRvX25saXN0Lmg6CgogICBmaXggZm9yIGF1dG9fbmxpc3QgYm9ndXMgZGVmaW5pdGlvbnMgZm9yIG1hY2hpbmVzIHdpdGhvdXQgbmxpc3QuCiAgIAoyMDAxLTA0LTA1IDA0OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIHNhdmUgYSBzdHJjcHkoKSBhbmQgYWxsb3cgbG9uZyBvY3RldCBzdHJpbmcgdmFsdWVzIHdpdGhvdXQgY3Jhc2hpbmcKICAgICAgKHRob3VnaCB0aGVyZSBhcmUgc3RpbGwgcHJvYmxlbXMgZHVlIHRvIHRoZSBsaWJlcmFsIHVzZSBvZiBmaXhlZAogICAgICBzaXplIGJ1ZmZlcnMgd2l0aCBubyBib3VuZHMgY2hlY2tpbmcgYWxsIG92ZXIgdGhlIHBsYWNlLiAgU2lnaCkuCiAgIAoyMDAxLTA0LTA0IDA2OjQ2ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgLSBjYWxsIGV4dGVybmFsIHNpZ25hbCBoYW5kbGVycyBiZWZvcmUgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCksCiAgICAgIHJhdGhlciB0aGFuIGFmdGVyIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpIGJ1dCBiZWZvcmUgc2VsZWN0KCkuCiAgICAgIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgcHJvYmxlbSB0aGF0IGNvdWxkIGFyaXNlIGlmIGEgc2lnbmFsIGhhbmRsZXIKICAgICAgY2xvc2VkIGEgc2Vzc2lvbiwgd2hpY2ggd291bGQgY2F1c2Ugc2VsZWN0KCkgdG8gcmV0dXJuIC0xIHdpdGgKICAgICAgRUJBREYsIGFuZCB0aHVzIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCiAgIAoyMDAxLTA0LTAzIDA5OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBFbnN1cmUgdGhhdCB0aGUgJ2V4dG1wJyBjb21tYW5kIHZhcmlhYmxlIGlzIGFjY2Vzc2libGUgb24gc3lzdGVtcyB3aXRob3V0IEVYRUNWLgogICAKMjAwMS0wNC0wMyAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjIyICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgLCBzbm1wdHJhcGRfbG9nLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MTUgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIHJlYWRfY29uZmlnLmMgLCBzbm1wVENQRG9tYWluLmgKICAgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uaCAsIHNubXBfYXBpLmMgLCBzbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oICwgc3lzdGVtLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgUGx1ZyBmaWxlLWRlc2NyaXB0b3IgbGVhayB3aGVuIHVzaW5nIGNhY2hlZCBkYXRhLiAgKEJ1ZyM0MTIwMDApCiAgIAoyMDAxLTA0LTAyIDEwOjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIGNoZWNrIGZvciBsaW1pdHMuaCBwcm9wZXJseQogICAKMjAwMS0wNC0wMiAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIG1pbm9yIHR5cGVmYWNlIGNoYW5nZXMKICAgCjIwMDEtMDMtMzEgMDY6MjcgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyB0byByZWZsZWN0CiAgICAgIGN1cnJlbnQgYmVoYXZpb3VyCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjoyNSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zOgoKICAgIC0gZG9jdW1lbnQgdGhlIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIgZnVuY3Rpb24KICAgCiAgICAtIGV4cGFuZCB0aGUgTk9URVMgc2VjdGlvbiBkaXNjdXNzaW5nIHVzZSBvZiBTSUdBTFJNIChvciBub3QpCiAgIAoyMDAxLTAzLTMxIDA2OjE3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5IGFuZCBjYW5jZWwgYWxsCiAgICAgIGNhbGxiYWNrcyB3aGljaCBtYWtlIHJlZmVybmNlIHRvIHRoZSBBZ2VudFggc2Vzc2lvbi4KICAgCjIwMDEtMDMtMzEgMDY6MTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgIC0gRml4IG11bHRpcGxlIGZyZWUoKSBvZiBwYXJ0cyBvZiB0aGUgc3Vic2Vzc2lvbiBieSB6ZXJvaW5nIG91dAogICAgICBmaWVsZHMgdGhhdCB3ZSBkb24ndCB1c2UuCiAgIAogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBGaXggbWVtb3J5IGxlYWsgaW4gaGFuZGxlX29uZV92YXIgd2hlcmUgbG9uZyB2YXJiaW5kcyB3ZXJlbid0CiAgICAgIGNvcnJlY3RseSBmcmVlKClkLgogICAKICAgIC0gQ2hhbmdlIGJlaGF2aW91ciBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyBzbyB0aGF0IGFsYXJtcyBydW4KICAgICAgY29ycmVjdGx5LgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gQ2hhbmdlZCBwYWNrZXQgaGFuZGxpbmcgb24gc3RyZWFtLWxpa2UgdHJhbnNwb3J0cyBzbyB0aGF0IGFsbAogICAgICBjb21wbGV0ZSByZWNlaXZlZCBwYWNrZXRzIGFyZSBwcm9jZXNzZWQ6CiAgIAogICAgICBfc2Vzc19yZWFkIGlzIHJlZmFjdG9yZWQgaW50byB0d28gZnVuY3Rpb25zOiBfc2Vzc19yZWFkIHJlbWFpbnMKICAgICAgcmVzcG9uc2libGUgZm9yIHJlYWRpbmcgZGF0YSBmcm9tIHRoZSB0cmFuc3BvcnQgbGF5ZXIsIGJ1dCB0aGVuCiAgICAgIGNhbGxzIChwZXJoYXBzIG1vcmUgdGhhbiBvbmNlKSBfc2Vzc19wcm9jZXNzX3BhY2tldCB0byBkaXNwYXRjaAogICAgICBlYWNoIHBhY2tldCByZWFkLgogICAKICAgIC0gVGhlIHByZXNlbmNlIG9mIGEgc2Vzc2lvbiB3aXRoIGEgYnVmZmVyZWQgcGFydGlhbCBwYWNrZXQgbm8gbG9uZ2VyCiAgICAgIGNhdXNlcyBzbm1wX3NlbGVjdF9pbmZvIHRvIHJldHVybiB3aXRoIGEgdGltZW91dCBvZiB6ZXJvLgogICAKICAgIC0gRnJlZSB0aGUgc3Vic2Vzc2lvbnMgb2YgYSBzZXNzaW9uIHdoZW4gZG9pbmcgYW4gc25tcF9zZXNzX2Nsb3NlOwogICAgICB0aGlzIGZpeGVzIGFuIEFnZW50WCBtZW1vcnkgbGVhayB3aGVuIHN1YmFnZW50cyBjb21lIGFuZCBnby4KICAgCiAgICAtIFBlcmZvcm0gY2FsbGJhY2tzIHdpdGggYW4gb3BlcmF0aW9uIGFyZ3VtZW50IG9mCiAgICAgIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB3aGVuIHlvdSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uLgogICAKMjAwMS0wMy0zMSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICBNYWRlIHRyYW5zcG9ydCBkb21haW4gY29uc3QKICAgCjIwMDEtMDMtMzEgMDU6NTUgIGpicG4KCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgRml4IG1lbW9yeSBsZWFrIHRoYXQgY2FuIG9jY3VyIHdoZW4gZGVyZWdpc3RlcmluZyBjYWxsYmFja3MKICAgCjIwMDEtMDMtMzAgMDg6MDUgIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBmaWxlIFJFQURNRS5hZ2VudHggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0yOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogSVNTVUVTIChWNC0yLXBhdGNoZXMuMSksIElTU1VFUzoKCiAgIHJtIElTU1VFUwogICAKMjAwMS0wMy0yOSAwODoyMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC86IGxpYnNubXAuZGVmIChWNC0yLXBhdGNoZXMuMyksIGxpYnNubXAuZGVmOgoKICAgQWRkIHZhY21faXNfY29uZmlndXJlZC4KICAgCjIwMDEtMDMtMjggMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNjowMCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTozNiAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jICwgc25tcF9hcGkuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgIC0gcmVuYW1lIGNhbGxiYWNrIG9wZXJhdGlvbnMgdG8gU05NUF9DQUxMQkFDS19PUF88bmFtZT4KICAgIC0gYWRkIG5ldyBvcGVyYXRpb25zIFNOTVBfQ0FMTEJBQ0tfT1BfQ09OTkVDVCwgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUCiAgICAtIGFkZCBsZWdhY3kgZGVmaW5pdGlvbnMgZm9yIFJFQ0VJVkVEX01FU1NBR0UsIFRJTUVEX09VVCwgU0VORF9GQUlMRUQKICAgCjIwMDEtMDMtMjcgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZU9iamVjdHNUYWJsZS5jICwKICAgbXRlVHJpZ2dlclRhYmxlLmM6CgogICBjaGFuZ2UgZnByaW50ZiAtPiBzbm1wX2xvZy4KICAgRG9uJ3QgYWxsb3cgbW9kaWZpY2F0aW9ucyBvZiByZWFkLW9ubHkgcm93cyBpbiBtdGVPYmplY3RzVGFibGUuCiAgIAoyMDAxLTAzLTI3IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmggLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMKICAgLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmggLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmggLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBTdXBwb3J0IGZvciBuZXcgZmVhdHVyZXMgaW4gdGhlIERJU01BTi1FVkVOVC1NSUIgY29kZToKICAgICBOZXcgc25tcGQuY29uZiB0b2tlbnM6CiAgICAgIC0gbW9uaXRvciBbLW8gb2lkLi4uXSBbLXUgdXNlcl0gb2lkIFsoPXwhPXw8PXwuLi4pIFZBTFVFXS4KICAgICAgLSBkZWZhdWx0TW9uaXRvcnMgeWVzCiAgIAoyMDAxLTAzLTI3IDEwOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTW92ZWQgKiBmcm9tIGJlZ2lubmluZyBvZiByb3V0aW5lIHRvIHRoZSBzYW1lIGxpbmUgYXMgdGhlIHJldHVybgogICB2YXJpYWJsZSBkZWNsYXJhdGlvbi4gIFdhcyBjYXVzaW5nIGV0YWdzIGdyaWVmIHRoZSBvdGhlciB3YXkuCiAgIAoyMDAxLTAzLTI3IDEwOjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbjogdXNlICVzIGluc3RlYWQgb2YgQHMgZm9yIHNlYXJjaC9yZXBsYWNlIGRlbGltaXRlcnMuCiAgIAoyMDAxLTAzLTI3IDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgdHJhcF9mbXRfZnJlZSBuZWVkcyAoKXMuCiAgIAoyMDAxLTAzLTI3IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBdm9pZCBkb3VibGUtZnJlZWluZyBvZiBjYWNoZWQgYWRkcmVzcyBzdHJpbmdzLgogICAgICAoSm9obidzIGltcHJvdmVtZW50IHRvIG15IHN1Z2dlc3RlZCBmaXgpLgogICAKMjAwMS0wMy0yNyAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBzbm1wbGliL3ZhY20uYyAsIHNubXBsaWIvdmFjbS5oOgoKICAgRml4ZWQgdmFjbSB0byBkcm9wIHYxL3YyYyBwYWNrZXRzIHByb3Blcmx5IHdoZW4gbm8gY29tMnNlYyBlbnRyaWVzIGFyZSBmb3VuZC4KICAgCjIwMDEtMDMtMjYgMTE6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogaXBmLW1vZC5wbCAoVjQtMi1wYXRjaGVzLjEpLCBpcGYtbW9kLnBsOgoKICAgYWRkIHVzYWdlIGNvbW1lbnQgYXQgdG9wCiAgIAoyMDAxLTAzLTIyIDA3OjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgQVNOX09DVEVUX1NUUiByYXRoZXIgdGhhbiB0aGUgaGlzdG9yaWMgQVNOX0JJVF9TVFIgZm9yICdiJyBvYmplY3QgdmFsdWVzCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KICAgCjIwMDEtMDMtMjIgMDc6NDYgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jIChWNC0yLXBhdGNoZXMuMyksIGFnZW50X3RyYXAuYzoKCiAgIEZpeCBmb3IgbWlub3IgbWVtb3J5IGxlYWsgd2l0aCB0cmFwLXJlbGF0ZWQgdmFyYmluZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKb2huIFZpbGxhbG92b3MgKGFuZCB0aGUgSW50ZWwgU05NUCB0ZWFtKQogICAKMjAwMS0wMy0yMSAxNzozMCAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEF2b2lkIGNyYXNoIGluIHNubXBfc2h1dGRvd24gb24gcGxhdGZvcm1zIHRoYXQgY2hlY2sgcG9pbnRlciB2YWxpZGl0eQogICBpbiBmcmVlKDMpLCBlLmcuIEZyZWVCU0QuCiAgIAoyMDAxLTAzLTIxIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKICAgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGNvcHlfbndvcmQgY3JlYXRlZCB0aGF0IGNoZWNrcyBidWZmZXIgbGVuZ3Rocy4KICAgTWFkZSBldmVyeXRoaW5nIHVzZSBpdC4KICAgCjIwMDEtMDMtMjEgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0yMCAwOToxMyAgamJwbgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIFB1cmlmeSBhbmQgTkZTIHN0dWZmCiAgIAoyMDAxLTAzLTE2IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGFkZGVkIE1JVF9ORVdfQ1JZUFRPIChmb3Iga3NtKSBkZWZpbml0aW9uIHdoaWNoIHdhcyBtaXNzaW5nCiAgIAoyMDAxLTAzLTE2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCByaWRpY3Vsb3VzIG1lbW9yeSBsZWFrIGluIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgd2hvb3BzLiAgTWlzc2VkIGEgbWVyZ2UgY29uZmxpY3QgbGluZQogICAKMjAwMS0wMy0xNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgUkVBRE1FLndpbjMyICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLAogICBtYW4vc25tcC5jb25mLjUuZGVmICwgbWFuL3NubXBjbWQuMSAsIG1hbi9zbm1wdHJhcGQuOAogICAsIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0ICwgbWlicy9NVEEtTUlCLnR4dCAsCiAgIG1pYnMvTWFrZWZpbGUubWliICwgbWlicy9SRUFETUUubWlicyAsCiAgIG1pYnMvVFVOTkVMLU1JQi50eHQgLCBtaWJzL2lhbmFsaXN0ICwgbWlicy9taWJmZXRjaAogICAsIG1pYnMvcmZjbGlzdCAsIG1pYnMvcmZjbWlicy5kaWZmICwgbWlicy9zbWlzdHJpcAogICAsIHBlcmwvU05NUC9TTk1QLnhzICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL21pYi5oICwgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKICAgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oICwgc25tcGxpYi9zbm1wdjMuYyAsCiAgIHNubXBsaWIvc3lzdGVtLmggLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2ggLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwICwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKICAgLCB3aW4zMi9jb25maWcuaCAsIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmggLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmggLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmggLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYgLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgbWVyZ2UgZnJvbSBwYXRjaGVzIGJyYW5jaDogbWVyZ2UyLT4zLgogICAKMjAwMS0wMy0xNSAxMDoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmg6CgogICBleHRyYSBtZW1iZXJzIGZvciBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgCjIwMDEtMDMtMTUgMDc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gcnVuIHNpZ25hbCBoYW5kbGVycyBlYXJsaWVyCiAgIAoyMDAxLTAzLTE0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuaCAoVjQtMi1wYXRjaGVzLjIpLCBhZ2VudF90cmFwLmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOiBtYWtlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgYSBwdWJsaWMgZm4uCiAgIAoyMDAxLTAzLTE0IDEyOjE2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFVzZSBjb25maWcuaCwgZG9uJ3QgdXNlIHVjZC1zbm1wIGRpcmVjdG9yeSB0byBidWlsZCBpbiB0aGUgbWliZ3JvdXAgdHJlZS4KICAgCjIwMDEtMDMtMTQgMTE6MDUgIHNsaWYKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluICwgUlVOVEVTVFMgLCBURVNUQ09ORi5zaAogICAsIGV2YWxfb25lc2NyaXB0LnNoICwgZXZhbF90b29scy5zaDoKCiAgIG1lcmdlIHRoZSB0ZXN0IHNjcmlwdCBjaGFuZ2VzIG1hZGUgaW4gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2guCiAgIAoyMDAxLTAzLTE0IDEwOjU3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIENoYW5nZSB0byBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcgdG8gc3RvcCBpdCByZXR1cm5pbmcgVFJVRSBhbGwgdGhlCiAgIHRpbWUKICAgCjIwMDEtMDMtMTQgMTA6NTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgIC0gcm91Z2ggc3RhYiBhdCBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgIC0gYmFpbCBvdXQgb2YgZ2V0TmV4dC10eXBlIGxvb3BzIG9uIGEgYmFkVHlwZSBjb25kaXRpb24KICAgCjIwMDEtMDMtMTQgMTA6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1OgoKICAga2VyYmVyb3MgUkVBRE1FIGZpbGUgZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTE0IDEwOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgR2V0IHJldHVybmVkICp2YXJfbGVuIHJpZ2h0IGZvciBtdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SUQKICAgCjIwMDEtMDMtMTQgMTA6MTkgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAsIGFwcHMvc25tcHZhY20uYyAsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jICwKICAgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgcGF0Y2ggc3VibWl0dGVkIGJ5IEhhcnJpZSBIYXpld2lua2VsIHRvIHF1aWV0IHNvbWUgd2FybmluZ3MuCiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wa3NtLmMgLAogICBzbm1wbGliL3NubXBrc20uaDoKCiAgIEtTTSBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW4uCiAgIAoyMDAxLTAzLTE0IDA1OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjQtMi1wYXRjaGVzLjUpLCBocl9zd3J1bi5jOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRuRuZ2VyKQogICAKMjAwMS0wMy0xNCAwNToyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMDMtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtdGVUcmlnZ2VyVGFibGUuaDoKCiAgICAtIHNhdmUgb3JpZ2luYWwgUERVJ3MgdHJhbnNwb3J0IGRvbWFpbiAtLSBuZWNlc3NhcnkgZm9yCiAgICAgIGNvbW11bml0eSBzdHJpbmcgcHJvY2Vzc2luZwogICAKICAgICAgQ0FVVElPTjogaW5jb21wYXRpYmxlIGNoYW5nZSBpbiBmb3JtYXQgb2YgbXRlVHJpZ2dlclRhYmxlCiAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gZW50cnkKICAgCiAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBtdGVfcnVuX3RyaWdnZXIgYnkgcmVsZWFzaW5nIFBEVXMKICAgCiAgICAtIHNlbmQgImJhZCB0eXBlIiBub3RpZmljYXRpb25zIGluIHNvbWUgY2FzZXMKICAgCiAgICAtIG90aGVyIG1pbm9yIG1lbW9yeSBsZWFrcwogICAKICAgIC0gImRlbHRhIiBzYW1wbGVUeXBlIGhhbmRsZWQgZm9yIGJvb2xlYW4gdHJpZ2dlcnMKICAgCiAgICAtIG1vcmUgIlhYWDoiIGNvbW1lbnRzIQogICAKMjAwMS0wMy0xMyAxMzo1MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBzdXBwb3J0IGZvciBJbnRlZ2VyMzIKICAgCjIwMDEtMDMtMTEgMDg6NDMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgQWRkIGEgZnVuY3Rpb24gdG8gdGVzdCB3aGV0aGVyIGFuIE9JRCBjb3JyZXNwb25kcyB0byBhIHN1cHBvcnRlZCB0cmFuc3BvcnQKICAgZG9tYWluLgogICAKMjAwMS0wMy0xMSAwNzo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uaDoKCiAgIEFkZCAjaW5jbHVkZXMgdG8gbWFrZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gY29tcGxldGUKICAgCjIwMDEtMDMtMTEgMDc6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oOgoKICAgUmVtb3ZlIHNwdXJpb3VzICNpbmNsdWRlCiAgIAoyMDAxLTAzLTA5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCByd3VzZXIgLXMgbW9kZWwgdG8gYWN0dWFsbHkgd29yay4KICAgCjIwMDEtMDMtMDkgMDU6NTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBTZXQgYSBQRFUncyBvcGFxdWUgZGF0YSBvbiBhIHRjcF9yZWN2OyB0aGlzIGlzbid0IG5lY2Vzc2FyeSB0byBzZW5kCiAgIHJlcGxpZXMgKGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgc29ja2V0IGlzIHN0cm9uZ2x5IGNvbm5lY3RlZCkgYnV0IGlmCiAgIHlvdSBkb24ndCBkbyB0aGlzIHRoZW4geW91IGNhbid0IGRvICJjb20yc2VjIiB0eXBlIHByb2Nlc3NpbmcgZm9yIFBEVXMKICAgcmVjZWl2ZWQgb24gVENQIHNlc3Npb25zLi4uIGludGVyZXN0aW5nLgogICAKMjAwMS0wMy0wOSAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBiYWQgYXNzdW1wdGlvbiB0aGF0IGNvbW11bml0eSBzdHJpbmcgaXMgemVyby10ZXJtaW5hdGVkCiAgIAoyMDAxLTAzLTA4IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjb3JyZWN0IHZlcnNpb24gc3RhdGVtZW50cyB0byBpbmRpY2F0ZSBuZXQtc25tcC4KICAgLSByZW1vdmUgbXkgbmFtZSBhcyBhdXRob3IgKEknbSBjZXJ0YWlubHkgbm90IHRoZSBvbmx5IG9uZSkKICAgLSBhZGQgd2ViIGFkZHJlc3MuCiAgIAoyMDAxLTAzLTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIEFkZGVkIEtlbiBIb3Juc3RlaW4ncyBuYW1lIHRvIGNvbnRyaWJ1dGVycyBsaXN0LgogICAtIFJlbW92ZWQgbWluZSBmcm9tIGJlaW5nIGxpc3RlZCBzZXBhcmF0ZWx5LgogICAKMjAwMS0wMy0wOCAxNDo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBzbm1wbGliL3NubXBrc20uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgQWRkZWQgYSBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2R1bGUgKGtzbSkuCiAgICAgSG93ZXZlciwgTmVlZHMgbGlicmFyaWVzICgtbGtyYjUgLWxjb21fZXJyKSBub3QgYmVpbmcgY2hlY2tlZCBmb3IgY3VycmVudGx5LgogICAKMjAwMS0wMy0wOCAxNDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgV2hvb3BzLiAgU2hvdWxkbnQgaGF2ZSBhIG5lZ2F0aW9uIHNpZ24gb24gdGhlIG1vc3QgcmVjZW50IGNoZWNraW4uCiAgIAoyMDAxLTAzLTA4IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJZiBOT19QUk9CRSBpcyBzZXQsIGRvbid0IGRvIGFueSBwb3N0IHByb2JpbmcgYWN0aXZpdGllcyBlaXRoZXIgbGlrZQogICB0aW1lIHVwZGF0aW5nIGFuZCB1c2VyIGNyZWF0aW9uLgogICAKMjAwMS0wMy0wOCAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBSZW1vdmUgc3RyZHVwKClzIG9uIHNvbWUgc2Vzc2lvbiBwYXJhbWV0ZXJzIHdoaWNoIGNhdXNlIG1lbW9yeSBsZWFrcwogICAoc2luY2Ugc25tcF9vcGVuIGRlZXAgY29waWVzIHRoZSBpbnB1dCBzZXNzaW9uIGFueXdheSkKICAgCjIwMDEtMDMtMDggMDg6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIE1ha2Ugc3VyZSBzZXNzIGZpZWxkIG9mIG5ldyBlbnRyaWVzIGlzIGluaXRpYWxpc2VkIHRvIE5VTEwuCiAgIAoyMDAxLTAzLTA4IDA3OjQ5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIE1ha2UgY29uZmlnIHRva2VuIHBhcnNlciB1cGRhdGUgdGltZXN0YW1wIG9uIGVudHJ5IGl0IGNyZWF0ZXM7CiAgIG1vdmUgdXBkYXRlX3RpbWVzdGFtcCBmdW5jdGlvbi4KICAgCjIwMDEtMDMtMDcgMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSAsIFNOTVAucG0gLCBTTk1QLnhzOgoKICAgUGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2UgdG8gcmVtb3ZlIHVubmVlZGVkIHRpbWVzdGFtcCBzdXBwb3J0CiAgIAoyMDAxLTAzLTA2IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfY2xpZW50LmMgLCBzbm1wX3NlY21vZC5jCiAgICwgc25tcF9zZWNtb2QuaCAsIHNubXB1c20uYzoKCiAgIHNlY21vZCBzdHJ1Y3Qgc3ltYm9sIG5hbWUgY2hhbmdlcyB0byBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUuCiAgIAoyMDAxLTAzLTA2IDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfY2xpZW50LmM6CgogICAtIHNldCB0aGUgZGVmYXVsdCBwZHUgc2VjdXJpdHkgbW9kZWwgdG8gU05NUF9ERUZBVUxUX1NFQ01PREVMIChub3QgMCkuCiAgIC0gZG9uJ3QgZm9yY2UgdGhlIHNlY3VyaXR5IG1vZGVsIG9mIHRoZSBzZXNzaW9uIG9uIHRoZSBwZHUgaWYgYWxyZWFkeSBzZXQuCiAgIAoyMDAxLTAzLTA2IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGhvcGVmdWxseSBmaXggdG8gYWxsb3cgb3RoZXIgKHJlZ2lzdGVyZWQpIHNlY3VyaXR5IG1vZGVscyB0byBiZSB1c2VkLgogICAKMjAwMS0wMy0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMjAwMS0wMy0wNiAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgQ3JlYXRlIGEgbmV3IHNlY21vZCBjYWxsYmFjayB3aGVuIGEgdGltZW91dCBvbiBhIHBkdSBvY2N1cnMuCiAgIAoyMDAxLTAzLTA2IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBwcm9wZXJseSBpbnN0YWxsIHNlY21vZCBoZWFkZXIgbGlzdC4KICAgCjIwMDEtMDMtMDYgMDg6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIC0gYnVnIGZpeGVzIGZvciBzZWNtb2QgcmVsYXRlZCBzdHVmZiAoaXQgY29tcGlsZXMgbm93IChvcHBzKSkuCiAgIAoyMDAxLTAzLTA2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICAtIHR3byBuZXcgc2VjbW9kIGNhbGxiYWNrcyBmb3IgZnJlZWluZyBhIHBkdSBhbmQgYSBzZXNzaW9uLgogICAtIG1vdmUgdHJhbnNwb3J0IGNsb3NpbmcgaW4gc25tcF9zZXNzX2Nsb3NlKCkgdG8gYWZ0ZXIgcGVuZGluZwogICAgIHJlcXVlc3RzIGFyZSBmcmVlZC9jbG9zZWQgaW4gY2FzZSBzb21ldGhpbmcgbmVlZHMgdG8gbWFrZSB1c2Ugb2YgdGhlCiAgICAgdHJhbnNwb3J0IGJlZm9yZSBpdCBjbG9zZXMuCiAgIAoyMDAxLTAzLTA2IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBQYXNzIGluIHBkdSB0byBzZWNtb2QgZW5jb2RlL2RlY29kZSByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDYgMDM6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW9kaWZpZWQgZnVuY3Rpb24gSW50ZXJmYWNlX0luZGV4X0J5X05hbWUgKFNvbGFyaXMgc3BlY2lmaWMpIHRvIGNvcGUgbW9yZQogICBncmFjZWZ1bGx5IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcwogICBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkIG1lbW9yeSByZWFkcy4KICAgCjIwMDEtMDMtMDUgMTY6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldmVyc2UgY2FsbGJhY2sgb3JkZXJpbmcgb2Ygbm9ybWFsIGNhbGxiYWNrL3NlY21vZCBjYWxsYmFjawogICBwcm9jZXNzaW5nIGluIHNlc3NfY29weSgpLgogICAKMjAwMS0wMy0wNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgcmVtb3ZlIHVudXNlZCBmcmVlIGZ1bmN0aW9uIGNhbGxzIGZvciBzZWN1cml0eSBtb2R1bGUgdW5yZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMy0wNSAxNjoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgbWlub3IgQVBJIGNoYW5nZXMgdG8gdGhlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbCBoYW5kbGluZy4KICAgCjIwMDEtMDMtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3Blcmx5IHJlc3BlY3QgdGhlIERPTlRfUFJPQkVfRkxBRy4KICAgCjIwMDEtMDMtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaCAsIHNubXBfc2VjbW9kLmg6CgogICBhZGQgYSBzZXNzaW9uIHBvaW50ZXIgdG8gdGhlIHYzIGJ1aWxkIHJvdXRpbmVzLgogICAKMjAwMS0wMy0wNSAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oOgoKICAgQWRkIGEga3JiNSBzcGVjaWZpYyBlcnJvciBjb2RlLgogICAKMjAwMS0wMy0wNSAxNDo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcHJvcGVybHkgaGFuZGxlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2R1bGVzCiAgIAoyMDAxLTAzLTA1IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBta2RpciBzbm1wbGliIGJlZm9yZSBjcmVhdGluZyBhIGZpbGUgaW4gaXQKICAgCjIwMDEtMDMtMDUgMTQ6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIHJlc3BlY3Qgbm9uLWxvY2FsIHNyY2RpcnMgZm9yIHRyYW5zcG9ydC9zZWNtb2RzCiAgIAoyMDAxLTAzLTA1IDEwOjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBhZ2VudC9hZ2VudF9pbmRleC5jICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJfbW9kdWxlcy5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsIGFwcHMvc25tcHRyYXBkLmMKICAgLCBzbm1wbGliLy5jdnNpZ25vcmUgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9jYWxsYmFjay5oICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXBpLmggLAogICBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHVzbS5oICwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHN1cHBvcnQgZm9yIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbHMuICBDdXJyZW50bHkgb25seSB0aGUgVVNNIGlzCiAgIGF2YWlsYWJsZSwgYnV0IGEgbmV3IGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZGVsIHdpbGwgYmUgYXZhaWxhYmxlCiAgIHNob3J0bHkuICBUaGVzZSBjaGFuZ2VzIHNpbXBseSBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBtb3JlIHRoYW4gb25lCiAgIHNlY3VyaXR5IHNlcnZpY2UuCiAgIAoyMDAxLTAzLTA1IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9zZWNtb2QuYyAsIHNubXBfc2VjbW9kLmg6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgYXV0aG9ycyBsaXN0LgogICAKMjAwMS0wMy0wNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uaDoKCiAgIENvbW1lbnQgcmUtYXJyYW5naW5nIHRvIGFjdHVhbGx5IGJlIG5lYXIgdGhlIGZ1bmN0aW9ucyB0aGV5J3JlIGRlc2NyaWJpbmcuCiAgIAoyMDAxLTAzLTA1IDA2OjEwICBqYnBuCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCBnZXRfbXlhZGRyKCkgZnVuY3Rpb24gdG8gY29wZSBtb3JlIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzCiAgIG9mIGludGVyZmFjZXMsIGFuZCB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBub24tSVB2NCBhZGRyZXNzZXMgb24gc29tZQogICBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcyBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkCiAgIG1lbW9yeSByZWFkcy4gIFVzZSAib2ZmaWNpYWwiIGRlZmluaXRpb24gb2YgSU5BRERSX0xPT1BCQUNLLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3Q6CgogICBmaWxlIGlhbmFsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBmaWxlIHJmY2xpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvUkVBRE1FLm1pYnM6CgogICBmaWxlIFJFQURNRS5taWJzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIGZpbGUgcmZjbWlicy5kaWZmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDEgMTk6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgLCBzbm1wX2FwaS5jOgoKICAgRml4IHNubXBfb2lkX2NvbXBhcmUgYW5kIHJldmVyc2UgZW5jb2RpbmdzIHRvIGRlYWwgd2l0aCBudW1iZXJzID4gMl4zMS4KICAgCjIwMDEtMDItMjggMjM6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jICwgcmVhZF9jb25maWcuaCAsCiAgIHNubXBfcGFyc2VfYXJncy5jOgoKICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZyhjaGFyICpsaW5lKSB0byBwYXJzZSBhIC5jb25mIGNvbmZpZ3VyYXRpb24KICAgICBsaW5lIGF0IGFueSB0aW1lIGluIHRoZSBjb2RlIChoYW5kbGVycyBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGhhbmQpLgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnX3JlbWVtYmVyKGNoYXIgKmxpbmUpIHRvIG1lbW9yaXplIGl0IGZvcgogICAgIGxhdGVyIHVzZS4KICAgLSByZWFkX2NvbmZpZ3MsIGV0IGFsLCB3aWxsIGF1dG9tYXRpY2FsbHkgY2FsbCB0aGVtIGFmdGVyIHJlYWRpbmcKICAgICBldmVyeXRoaW5nIGVsc2UuCiAgIC0gQWRkZWQgYSAtWSBmbGFnIHRvIHNubXBfcGFyc2VfYXJncyB0byBzdG9yZSByZWFkIGNvbmZpZyBkaXJlY3RpdmVzCiAgICAgZm9yIGxhdGVyIHVzZSwgdGh1cyBhbGxvd2luZyB5b3UgdG8gc3BlY2lmeSAuY29uZiBkaXJlY3RpdmVzIG9uIHRoZQogICAgIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDItMjcgMDc6MjggIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgYW5kIFZBQ00gY2hlY2tpbmcgaW50ZXJhY3Rpb24uCiAgIChGaXggcHJvdmlkZWQgYnkgRnJhbmsgU3RyYXVzcykKICAgCjIwMDEtMDItMjEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB1Y2Qtc25tcC1pbmNsdWRlcy5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHVjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogaW50NjQuYyAoVjQtMi1wYXRjaGVzLjIpLCBpbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2YXJfc3RydWN0LmggKFY0LTItcGF0Y2hlcy4xKSwgdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNiAwNDoxNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBDaGFuZ2UgYmVoYXZpb3VyIG9uIGN5Z3dpbiB0byBleGNsdWRlIFVuaXggZG9tYWluIHRyYW5zcG9ydHMgYnkgZGVmYXVsdAogICBvbiBjeWd3aW4sIGFuZCBhbHNvIGZpeCBhIG1pbm9yIGJ1ZywgdGhhbmtzIHRvIHN1Z2dlc3Rpb25zIGJ5IFBldGVyIEZvbGsuCiAgIAoyMDAxLTAyLTE0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMiAxNDoxMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZGVkIEthcmwncyBwYXRjaCBmb3IgdXNlbnVtZXJpYwogICAKMjAwMS0wMi0xMiAxMzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCAsIFNOTVAucG0gLCBTTk1QLnhzICwKICAgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgYWRkZWQgdHJhcCByZWNlcHRpb24gQVBJIGZyb20gUGhpbGlwIFByaW5kZXZpbGxlIDxwaGlsaXBwQGNpc2NvLmNvbT4KICAgCjIwMDEtMDItMTEgMDg6MjMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2FkZCBub3Qgc25tcF9zZXNzX2FkZCAodGhlIGxhdHRlciBkb2Vzbid0IGFkZCBhIHNlc3Npb24gdG8KICAgdGhlIFNlc3Npb24gbGlzdCwgYW5kIGl0IHRoZXJlZm9yZSB3b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdCgpCiAgIGZkc2V0LCBoZW5jZSBzbm1wdHJhcGQgd2lsbCBuZXZlciByZWNlaXZlIHZlcnkgbXVjaCkuCiAgIAoyMDAxLTAyLTExIDA4OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGltcHJvcGVybHktdGVybWluYXRlZCBsaXN0IGluIGNvbTJzZWMgaGFuZGxpbmcuCiAgIAoyMDAxLTAyLTExIDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDbGVhbiB1cCBtZXJnZSAoPj4+Pj4+LCA9PT09PT0gZXRjLiBsZWZ0IGJlaGluZCkuCiAgIAoyMDAxLTAyLTEwIDA5OjI2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvLgogICAKMjAwMS0wMi0xMCAwOToxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9hZG1pbi5jICwKICAgc3ViYWdlbnQuYzoKCiAgIE1lbW9yeSBsZWFrIHBhdGNoZXMgKHNvdXJjZWZvcmdlIHBhdGNoICMxMDM2MDUpLgogICBSZW1vdmUgYSBmZXcgc3RyZHVwKClzLCBhbmQgY2FsbCBmcmVlX2FnZW50X3NubXBfc2Vzc2lvbigpIHJhdGhlciB0aGFuCiAgIGZyZWUoKSBpbiBzdWJhZ2VudC5jOmhhbmRsZV9hZ2VudHhfcGFja2V0KCkgZm9yIEFHRU5UWF9NU0dfUkVTUE9OU0UKICAgYW5kIGRlZmF1bHQgY2FzZXMsIHRvIGVuc3VyZSBmcmVlKClpbmcgb2YgY2xvbmVkIFBEVSBhbGxvY2F0ZWQgYnkKICAgaW5pdF9hZ2VudF9zbm1wX3Nlc3Npb24uCiAgIAoyMDAxLTAyLTEwIDA3OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBBQUw1UFZDRG9tYWluLmggLAogICBzbm1wSVBYRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmggLCBzbm1wVENQRG9tYWluLmMKICAgLCBzbm1wVENQRG9tYWluLmggLCBzbm1wVURQRG9tYWluLmMgLAogICBzbm1wVURQRG9tYWluLmggLCBzbm1wVW5peERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uaAogICAsIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgV2hvb3BzLiAgRm9yZ290IHRoZSBuZXcgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwbHVnZ2FibGUgdHJhbnNwb3J0IHN0dWZmLgogICAKMjAwMS0wMi0wOSAxMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmggLCBtdGVPYmplY3RzVGFibGUuYwogICAsIG10ZU9iamVjdHNUYWJsZS5oICwgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLCBtdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJUYWJsZS5oICwgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBJbXBsZW1lbnRlZCBhbmQgbWFkZSB1c2Ugb2YgbXRlT2JqZWN0c1RhYmxlIHRvIHNlbmQgYWRkaXRpb25hbCBvYmplY3RzIG91dCB3aXRoIHRyYXBzIGdlbmVyYXRlZC4gIEFsc28sIGRvbid0IHJldHVybiBkYXRhIGZvciBtaXNjIHRhYmxlcyB3aGVuIHRoYXQgdHJpZ2dlciBpc24ndCBkZWZpbmVkIHRvIHVzZSB0aGF0IHRlc3QgdHlwZS4KICAgCjIwMDEtMDItMDkgMTE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wZC5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEzOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcGQgcG9ydCBzcGVjaWZpY2F0aW9uIC0+IGRlZmF1bHRfc3RvcmUuCiAgIAoyMDAxLTAyLTA5IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMgKFY0LTItcGF0Y2hlcy4yKSwgbWliX21vZHVsZXMuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMjogZml4IG1lbW9yeSBsZWFrIGluIG1pYl9tb2R1bGUgaW5pdCBjb2RlCiAgIAoyMDAxLTAyLTA5IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy4xKSwgYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMTogZml4IG1lbW9yeSBsZWFrIGZvciBkdXBsaWNhdGUgb2lkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAyLTA5IDExOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLCBwcm94eS5jCiAgIChWNC0yLXBhdGNoZXMuWzEsNF0pLCBtZW1vcnlfZnJlZWJzZDIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzcwMjogZml4IHN3YXAgcmVwb3J0aW5nIG9uIGZyZWVic2QgNC4yCiAgIAoyMDAxLTAyLTA5IDEwOjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMKICAgLCBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcC5jCiAgICwgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmggLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9jbGllbnQuYyAsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgQXBwbGllZCBwYXRjaCAxMDM1MTA6IGRvbWFpbiB0cmFuc3BvcnQgaW5kZXBlbmRlbmNlLiAgTm90ZTogVHJhcHMvVkFDTSBicm9rZW4uCiAgIAoyMDAxLTAyLTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwMXNubXB2MWdldCAsIFQwMDJzbm1wdjFnZXRuZXh0ICwKICAgVDAwM3NubXB2MWdldGZhaWwgLCBUMDE0c25tcHYyY2dldCAsIFQwMTVzbm1wdjJjZ2V0bmV4dAogICAsIFQwMTZzbm1wdjJjZ2V0ZmFpbCAsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwgLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsICwgVDAyMHNubXB2M2dldCAsCiAgIFQwMjFzbm1wdjNnZXRuZXh0ICwgVDAyMnNubXB2M2dldE1ENSAsCiAgIFQwMjNzbm1wdjNnZXRNRDVERVMgLCBUMDI0c25tcHYzZ2V0U0hBMSAsCiAgIFQwMjVzbm1wdjNnZXRTSEFERVMgLCBUMDI4c25tcHYzZ2V0ZmFpbCAsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24gLCBUMDUzYWdlbnR2MXRyYXAgLAogICBUMDU0YWdlbnR2MmN0cmFwICwgVDA1NWFnZW50djFtaW50cmFwICwKICAgVDA1NmFnZW50djJjbWludHJhcCAsIFQwNThhZ2VudGF1dGh0cmFwICwgVDEwMGFnZW50aHVwCiAgICwgVDExMGFnZW50eGdldCAsIFQxMTFhZ2VudHhzZXQgLCBUMTEyYWdlbnR4c2V0ZmFpbAogICAsIFQxMTNhZ2VudHh0cmFwICwgVDEyMHByb3h5Z2V0ICwgVDEyMXByb3h5c2V0CiAgICwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIHVwZGF0ZWQgbW9zdCB0ZXN0cyB0byB1c2UgbnVtZXJpYyBPSURzIHNvIGFzIHRvIG5vdCByZWx5IG9uIG1pYiBwYXJzaW5nCiAgIAoyMDAxLTAyLTA5IDA3OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmg6CgogICByZW1vdmUgdW51c2VkIHByb3RvdHlwZTogZ2V0X2FnZW50eF90cmFuc0lECiAgIAoyMDAxLTAyLTA4IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiAsIGxvY2FsL3RyYXB0b2VtYWlsICwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgdHJhcHRvZW1haWwgcGVybCBzY3JpcHQgY3JlYXRlZCBhcyBhbiBleGFtcGxlIHRyYXBoYW5kbGUgc2NyaXB0CiAgIAoyMDAxLTAyLTA4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsCiAgIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfdHJhcC5jICwKICAgYWdlbnQvbWliX21vZHVsZXMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmggLCBhcHBzL3NubXBkZWx0YS5jCiAgICwgYXBwcy9zbm1wc2V0LmMgLCBhcHBzL3NubXB0cmFwLmMgLAogICBhcHBzL3NubXB2YWNtLmMgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluICwKICAgbG9jYWwvbWliMmMgLCBtYW4vc25tcGNtZC4xICwgbWlicy9STU9OLU1JQi50eHQgLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLCBwZXJsL1NOTVAvU05NUC5wbSAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1lcmdlIGZyb20gVjQtMi1wYXRjaGVzOiBtZXJnZSAxLT4yCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYyAoVjQtMi1wYXRjaGVzLjEpLCBkaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHVzZSBzbm1wX2VudW0ncyBwcm9wZXJseSAoc3RyZHVwKCkgdGhlIHN0cmluZ3MgZmlyc3QpCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMgLCBzbm1wX2VudW0uaDoKCiAgIHByb3BlciBjb25zdG5lc3MgZm9yIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cy4KICAgCjIwMDEtMDEtMzAgMTM6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBidWcgSSBqdXN0IGludHJvZHVjZWQgKHJldHVybmluZyBwcm9wZXIgc2F2ZXRvIHBvaW50ZXIpCiAgIAoyMDAxLTAxLTMwIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gc25tcHNldHMgYXJlIHN1cHBvcnRlZAogICAgIC0gQSBuZXcgInNldCIgYnV0dG9uIGhhcyBiZWVuIGFkZGVkIHRvIHBlcmZvcm0gc2V0cyBvbiBhbiBvaWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiBhIHRhYmxlIGFyZSBub3cgYnV0dG9ucyB0aGF0IGJyaW5nIHVwIHRoZQogICAgICAgc2V0IHdpbmRvdyB3aXRoIHRoZSBjdXJyZW50IHZhbHVlIGluc3RhdGVkLgogICAgIC0gQWxsIHdyaXRhYmxlIG9iamVjdHMgaW4gdGhlIG91dHB1dCBvZiBzbm1we2dldCx3YWxrLGdldG5leHR9CiAgICAgICBidXR0b25zIGFyZSBkaXNwbGF5ZWQgYXMgYmx1ZSBhbmQgYXJlIGNsaWNrYWJsZSB0byBjaGFuZ2UgdGhlaXIKICAgICAgIHZhbHVlcy4KICAgLSBzZXR0aW5ncyBjb25maWd1cmVkIHZpYSB0aGUgb3B0aW9ucyBtZW51IGNhbiBub3cgYmUgc2F2ZWQuCiAgIC0gdXNlIEdldG9wdDo6U3RkIG5vdy4KICAgLSBzdXBwb3J0cyBtb3N0IG9mIHRoZSBpbXBvcnRhbnQgc25tcGNtZCgxKSBmbGFncyBmb3Igc2Vzc2lvbiBzZXR1cC4KICAgCjIwMDEtMDEtMzAgMTM6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oICwKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oICwKICAgbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmggLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oICwKICAgbXRlVHJpZ2dlclRhYmxlLmMgLCBtdGVUcmlnZ2VyVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmg6CgogICBJbml0aWFsIChub3QtY29tcGxldGUpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBESVNNQU4tRVZFTlQtTUlCOgogICAgIC0gSW1wbGVtZW50cyBhbGwgMyB0ZXN0cyAoYm9vbGVhbiwgdGhyZXNob2xkIGFuZCBleGlzdGVuY2UpLgogICAgIC0gbm90IHJpZ29yb3VzbHkgdGVzdGVkLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgcXVlcnlpbmcgdGhlIGxvY2FsIGFnZW50CiAgICAgICAobXRlVHJpZ2dlclRhcmdldFRhZyBtdXN0IGJlICcnKS4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHNlbmRpbmcgdHJhcHMgYW5kIHRoZSBtdGVPYmplY3RzVGFibGUgaXMKICAgICAgIG5vdCBpbXBsZW1lbnRlZCAobXkgbmV4dCB0b2RvIGl0ZW0pCiAgICAgLSBPbmx5IHRoZSBkZWZhdWx0IHRyYXBzIGFyZSBzZW50LiAgVGhlIG10ZUV2ZW50KiBvYmplY3RzIGhhdmVuJ3QKICAgICAgIGJlZW4gaW1wbGVtZW50ZWQgKG5vIHNlbGYtZGVmaW5lZCB0cmFwcy9zZXRzKS4KICAgICAtIG5vIGVhc3kgdG8gdXNlIGNvbmZpZ3VyYXRpb24geWV0IChzb29uKS4KICAgICAtIGNvbmZpZ3VyZSB3aXRoIC0td2l0aC1taWItbW9kdWxlcz1kaXNtYW4vZXZlbnQtbWliCiAgIAoyMDAxLTAxLTMwIDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBVc2UgbWVtY3B5IGluc3RlYWQgb2Ygc3ByaW50ZiBmb3Igc3RyaW5ncyB0aGF0IG1heSBub3QgYmUgbnVsbCB0ZXJtaW5hdGVkLgogICAKMjAwMS0wMS0zMCAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBJbXBsZW1lbnRlZCBnZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCkgYW5kIHNldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKToKICAgICAtIFRoZXNlIGFsbG93IGEgbWliIG1vZHVsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudAogICAgICAgYWdlbnRfc25tcF9zZXNzaW9uIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgIC0gVGhpcyBzaG91bGQgcHJvYmFibHkgZG9uZSBkaWZmZXJlbnRseSBsYXRlciB3aGVuIHdlIGNoYW5nZSB0aGUgbWliCiAgICAgICBtb2R1bGUgYXBpLgogICAgIC0gVGhpcyB3aWxsIGNvbXBsZXRlbHkgZmFpbCB0byB3b3JrIHByb3Blcmx5IGluIGEgbXVsdGktdGhyZWFkZWQKICAgICAgIGFnZW50ICh3aGljaCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBhbnl3YXkpLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgZGVidWdnaW5nIHN0YXRlbWVudCBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcHJvcGVybHkgbWFsbG9jIGEgMSBieXRlLCBOVUxMIGNoYXJhY3RlciBzdHJpbmcgZm9yICIiIHJlYWQgc3RyaW5ncy4KICAgCjIwMDEtMDEtMjkgMTE6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYyAsIGhlYWRlcl9jb21wbGV4Lmg6CgogICBkYXRhIHNlcGVyYXRpb24gYW5kIG5ldyBmdW5jdGlvbnM6CiAgICAgaGVhZGVyX2NvbXBsZXhfZ2V0X2Zyb21fb2lkKCkKICAgICBoZWFkZXJfY29tcGxleF9hZGRfZGF0YV9ieV9vaWQoKQogICAKMjAwMS0wMS0xMiAwODoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dDoKCiAgIC0gRElTTUFOLUVWRU5ULU1JQiBhZGRlZCB0byBtaWIgcmVwb3NpdG9yeS4gKE9yLCBndWVzcyB3aGF0IEkgZGlkIGR1cmluZyBhIDYgaG91ciBwbGFuZSBmbGlnaHQ/KQogICAKMjAwMS0wMS0xMiAwODoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzdXBwb3J0IGJpdCBzdHJpbmdzCiAgIAoyMDAxLTAxLTEyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wX2FwaS5jOgoKICAgLSBiaXRfc3RyaW5nIGZpeGVzCiAgIC0gbWFrZSBzbm1wX2FkZF92YXIgY2FsbCBzbm1wX3BhcnNlX29pZCgpIGluc3RlYWQgb2YgcmVhZF9vYmppZCgpLgogICAKMjAwMS0wMS0xMiAwNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBuZXcgZGF0YSB0eXBlcyBzdXBwb3J0ZWQgZm9yIHJlYWRfY29uZmlnIHJvdXRpbmVzOiB1bnNpZ25lZCwgYml0X3N0ci4KICAgCjIwMDEtMDEtMTIgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgY29tbWVudCBvdXQgcmVhbGx5IG9kZCAoYW5kIGJyb2tlbikgY2hlY2sgZnJvbSBhc25fYml0c3RyaW5nX2NoZWNrPz8/CiAgIAoyMDAxLTAxLTEyIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1vdmUgY29uZmlnIHN0cmluZyBpbml0aWFsaXplciBhYm92ZSBzdWJhZ2VudCBjaGVjayBzbyBpdHMga25vd24gZXZlbgogICBpZiBub3QgdXNlZC4KICAgCjIwMDEtMDEtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuc3RvcmFnZS5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCiAgIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBtaWIyYy5zdG9yYWdlLmNvbmYgLAogICBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBuZXcgZGF0YSB0eXBlcyAodWludDMyLCB1bnNpZ25lZCwgYml0cykuCiAgIAoyMDAxLTAxLTA5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgZHNfYWdlbnQuaCAsIHZhcl9zdHJ1Y3QuaCAsIG1pYmdyb3VwL21pYmluY2wuaCAsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwogICAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIFN1YkFnZW50IHBpbmcgc3VwcG9ydDoKICAgICAtIGFnZW50eFBpbmdJbnRlcnZhbCBzcGVjaWZpZXMgU0VDT05EUyBiZXR3ZWVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICAgICB0cmllcyB0byBwaW5nIHRoZSBtYXN0ZXIgYWdlbnQuCiAgICAgLSBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZCwgaXQgdHJpZXMgdG8gcmVjb25uZWN0LgogICAgIC0gZmFpbGluZyB0aGF0IGl0IHRyaWVzIGV2ZXJ5IFNFQ09ORFMgYWdhaW4gdGlsbCBpdCBzdWNjZWVkcy4KICAgICAtIHJlLXJlZ2lzdGVycyBpdHMgb2lkJ3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3VidHJlZSBsaXN0LgogICAgICAgLSBtYXkgbmVlZCBzb21lIHRob3VnaHQuICBBc3N1bWVzICphbGwqIG5lZWQgdG8gYmUgcmUtcmVnaXN0ZXJlZC4KICAgICAgIC0gbmVlZHMgdG8gcmUtcmVnaXN0ZXIgc3lzb3J0YWJsZSBlbnRyaWVzIHRvbywgYnV0IGRvZXNuJ3QuCiAgICAgLSBjdXJyZW50bHkgc2VnLWZhdWx0cyBvbiBhYm91dCB0aGUgMi00dGggdGltZSBvciBzby4gIE5vdCBzdXJlIHdoeS4KICAgICAtIFNob3VsZCBtYWtlIERhdmUgc21pbGUgb3IgY3JpbmdlIG9yIGdpZ2dsZSwgbm90IHN1cmUgd2hpY2guCiAgIAoyMDAxLTAxLTA5IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYyAsIGNhbGxiYWNrLmg6CgogICBBbGxvdyBkZXJlZ2lzdGVyaW5nIG9mIGNhbGxiYWNrcwogICAKMjAwMS0wMS0wOSAwNjoyMCAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcG5ldHN0YXQvOiBzbm1wbmV0c3RhdC5kc3AgKFY0LTItcGF0Y2hlcy4xKSwKICAgc25tcG5ldHN0YXQuZHNwOgoKICAgYWRkZWQgZ2V0b3B0LmMgdG8gbGlzdAogICAKMjAwMS0wMS0wNCAxNjo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfZW51bS5jICwgc25tcF9lbnVtLmg6CgogICAtIGdlbmVyaWMgc25tcCBlbnVtIGxpc3Qgc3VwcG9ydC4gIE5vdCB1c2VkIGFueXdoZXJlICh5ZXQpLgogICAKMjAwMS0wMS0wNCAxNjo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKICAgLCBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9hZ2VudF90cmFwLmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmggLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvY2FsbGJhY2suYyAsCiAgIHNubXBsaWIvY2FsbGJhY2suaCAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAgLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAKICAgLCB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICAtIG1lcmdlZCBwYXRjaGVzIGZyb20gVjQtMi1wYXRjaGVzIGJyYW5jaCB0byBtYWluIGJyYW5jaC4KICAgCjIwMDEtMDEtMDQgMTA6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYgLCBtYW4vc25tcGNtZC4xICwgc25tcGxpYi9taWIuYzoKCiAgIC0gYWRkZWQgbmV3IHByaW50SGV4VGV4dCBzbm1wLmNvbmYgdG9rZW4uCiAgIC0gZG9jdW1lbnRlZCAtT1QsIGFuZCB0aGUgdG9rZW4uCiAgIAoyMDAxLTAxLTA0IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oICwgbWliLmM6CgogICBQYXRjaCAjMTAzMDkxIGFwcGxpZWQ6CiAgICAgLSBBZGRlZCAtT1Qgb3B0aW9uIHRvIHZpZXcgaGV4IHN0cmluZ3Mgd2l0aCB0ZXh0IGluIHRoZW0uCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICBmaWxlIFQwNTZhZ2VudHYyY21pbnRyYXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXA6CgogICBmaWxlIFQwNTVhZ2VudHYxbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTIyIDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0xOSAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1ha2UgaW5pdF9zbm1wdjMoKSBkZWFsIHdpdGggYSBOVUxMIGFyZ3VtZW50IHByb3Blcmx5LgogICAKMjAwMC0xMi0xOCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiByZW1vdmUgcGFzc3Rlc3QgZnJvbSB0aGUgLmN2c2lnbm9yZSBmaWxlIChidWcgIzEyNjk0KQogICAKMjAwMC0xMi0xOCAxMDo0NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUgLCBTTk1QLnBtOgoKICAgbWlub3IgZG9jIGZpeAogICAKMjAwMC0xMi0xNCAxMzo0NiAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiBmaXggdXB0aW1lIGZvciA2NC1iaXQgU29sYXJpcwogICAKMjAwMC0xMi0xNCAxMzo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBzdHVwaWQgc3BlbGxpbmcgZXJyb3IKICAgCjIwMDAtMTItMTMgMjE6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSBkbG1vZC5jOiBmaXggY29uZnVzaW9uIGJldHdlZW4gaW50LCBzaXplX3QsIGxvbmcgZm9yIDY0LWJpdCBjb21waWxlcy4KICAgCjIwMDAtMTItMTMgMDg6NDAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHNubXBjb25mLjEKICAgCjIwMDAtMTItMDggMTQ6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIHNubXBsaWIvdmFjbS5jOgoKICAgLSB2YWNtX3ZhcnMuYywgdmFjbS5jOiBpbmRleGluZyBvZiB2YWNtVmlld1RyZWVGYW1pbHlFbnRyeSB3YXMgaG9zZWQsIGFzc3VtaW5nCiAgIAl0aGF0IHRoZSBTdWJ0cmVlIGluZGV4IGhhZCBhbiBJTVBMSUVEIGF0dHJpYnV0ZS4KICAgCjIwMDAtMTItMDggMTQ6NDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jICwgaHJfcGFydGl0aW9uLmM6CgogICAtIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6IGZpeCBzb21lIHplcm8gaW5kZXggdmFsdWVzLgogICAKMjAwMC0xMi0wOCAxNDo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogZml4IHJldHVybnMgb2YgemVyb0RvdFplcm8gKHN1Y2ggYXMgaWZTcGVjaWZpYykKICAgCjIwMDAtMTItMDggMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXBkLmM6IHNlY3VyaXR5IG1vZGVsIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lIGlzIHNubXAgdmVyc2lvbiB2YWx1ZXMKICAgCjIwMDAtMTItMDYgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogTGludXgga2VybmVsIDIuMC54IGhhcyBubyBBUlBIUkRfSElQUEkKICAgCjIwMDAtMTItMDUgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggcnNubXAncyAvdXNyL2xvY2FsIGhhcmRjb2RlZCBwYXRoLgogICAKMjAwMC0xMi0wNCAxNzowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbDoKCiAgIC0gKFQxMTJhZ2VudHhzZXRmYWlsKTogZml4CiAgIAoyMDAwLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMi4zIC0+IFY0LjIuNAoJCjIwMDItMDQtMDQgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgcGF0Y2ggZnJvbSBQZXR0ZXIgTGFyc2VuIHRvIGFkZCBhIGZ1bmN0aW9uIGZvciBleHRyYWN0aW5nIHRoZSBmZCBhc3NvY2lhdGVkIHdpdGggYSBzZXNzaW9uCiAgIAoyMDAyLTA0LTA0IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDg6MzIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUzICkKICAgCjIwMDItMDQtMDIgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmM6CgogICBBcHBseSBwYXRjaCAjNTE1NTc3IHRvIGZpeCBvbmUgY2FzZSBvZiBhIHJlZ2lzdHJ5IHByb2JsZW0uCiAgIAoyMDAyLTA0LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIHMvZGFyd2luLmg6CgogICBBcHBseSBwYXRjaCAjNTI0NDI0IGZvciBkYXJ3aW4gZml4ZXMgZm9yIHVjZC1zbm1wL2Rpc2suYwogICAKMjAwMi0wNC0wMiAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGF0Y2ggNTI3NTczIHRvIGZpeCA2NCBiaXQgdHlwZXMgb24gc29sYXJpcwogICAKMjAwMi0wNC0wMSAyMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTGV0IGluaXRfc25tcCBwcm90ZWN0IGl0c2VsZi4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgYXBwbHkgZnJlZWJzZDUgcGF0Y2ggIzUxNzMzMwogICAKMjAwMi0wMy0yOCAyMzoxMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggYnVnICM1MjU4NDQuICBwZXJsIFNOTVAgd2FzIHVzaW5nIGEgdHJhcCBhZGRyZXNzIG9mIDAuMC4wLjAuCiAgIAoyMDAyLTAzLTI4IDIzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgYSBzdGF0aWMgdmFyaWFibGUgZm9yIGluaXQgY2hlY2tpbmcuICBCdWcgIzUzNjM4Ni4KICAgCjIwMDItMDMtMjggMTU6MjMgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yNyAwMTo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBVc2UgdGhlIGNvcnJlY3QgbmFtZSBvZiB0aGUgV2luZG93cyBJUCBIZWxwZXIgQVBJIGxpYnJhcnkuCiAgIChDb21wdXRlcnMgY2FuIGJlIHNvb29vIHBpY2t5ISkKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZW5hYmxlIGRpc2tpbyBvbiBmcmVlYnNkNS4gIEltcGxlbWVudHMgcGF0Y2ggNTE3MzI4IGluIGEgZGlmZmVyZW50IHdheS4KICAgCjIwMDItMDMtMjYgMDc6NDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSB0cmFpbGluZyAnOicgZnJvbSBsaXN0IG9mIE1JQiBtb2R1bGUgbmFtZXMgaW4gY29uZmlndXJlIG91dHB1dCwKICAgdG8gYXZvaWQgY29uZnVzaW9uIChzZWUgQnVnICM0OTExMjkpCiAgIAoyMDAyLTAzLTI2IDA2OjUwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAnLWxobHBhcGknIHRvIHRoZSBhZ2VudCBsaWJyYXJpZXMgd2hlbiBjb21waWxpbmcgdW5kZXIgV2luZG93cwogICAodXNpbmcgQ3lnd2luKS4gIERMTElCUyBpcyBub3QgYXMgc3VpdGFibGUgYXMgQUdFTlRfTElCUyBmb3IgdGhpcwogICAoc2VlIHRoZSBlcXVpdmFsZW50IHBhdGNoIG9uIHRoZSBtYWluIGJyYW5jaCksIGJ1dCBpdCBzaG91bGQgZG8uCiAgIFNob3VsZCBmaXggQnVnICM1MzQ0MDkuCiAgIAoyMDAyLTAzLTI1IDIyOjMzICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgZml4IGJ1ZyM1MjA0Nzggc2hvd01pYkVycm9ycyB0b2tlbiBpcyBpbnZlcnRlZAogICAKMjAwMi0wMy0yNSAxODo0NyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZml4IGJ1ZyM1MDIxMjMgYWdlbnR4IGluZmluaXRlIGxvb3AuCiAgIAoyMDAyLTAzLTI0IDA1OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUmVzdHJpY3QgaHJTV1J1blBhcmFtcyByZXR1cm5zIHZhbHVlcyB0byAxMjggb2N0ZXRzCiAgIAoyMDAyLTAzLTI0IDA1OjA0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE9vcHMgLSBzbnByaW50XyogY2Fubm90IHJlYWxsb2MKICAgCjIwMDItMDMtMjEgMDc6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgZml4IGJ1ZyAjNTMyNjk2IGZpeGluZyBycG0gZm9yIG5ld2VyIHJwbSB2ZXJzaW9ucwogICAKMjAwMi0wMy0yMCAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgcmVtb3ZlIGlsbGVnYWwgU0VUIHN1cHBvcnQgZm9yIHN5c0Rlc2NyLgogICAKMjAwMi0wMy0xOSAwMjowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgICAgLSBwYXRjaCBmcm9tIEpvc2h1YSBHaWxlcyB0byBpbmNyZWFzZSB0aGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoCiAgICAgICAoIzUyNzY1MCkuCiAgIAoyMDAyLTAzLTE4IDE0OjM4ICBuYmEKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBZGQgbWlzc2luZyBleHBvcnRzIGZvciBWQysrIGJ1aWxkCiAgIAoyMDAyLTAzLTE4IDEzOjIzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUHJvcGVyIHRlc3QgZm9yIHN1Y2Nlc3NmdWwgb3BlbiBvZiBFVENfTU5UVEFCCiAgIAoyMDAyLTAzLTE4IDEzOjA5ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIEZpeCBpbnRlcmNoYW5nZWQgcGFyYW1ldGVycyBmb3Igc3RybmNweQogICAKMjAwMi0wMy0xOCAwODo1MSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgQXBwbHkgRE9TLXR5cGUgbGluZSBlbmRpbmdzIHRvIHRoZSBEU1cvRFNQIGZpbGVzLgogICAKMjAwMi0wMy0xOCAwODo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBVc2UgdGhlIHNhbWUgdmFyaWFibGUgbmFtZSBmb3Igb3V0cHV0IGJ1ZmZlciBhbmQgc2l6ZSBjYWxjdWxhdGlvbi4KICAgCjIwMDItMDMtMTggMDU6MzkgIGpicG4KCiAgICogUkVBRE1FLmhwdXgxMSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgcy9ocHV4Lmg6CgogICAgIC0gY29tbWl0IEpvaGFubmVzJ3MgdXBkYXRlIHRvIHRoZSBIUFVYLTExIHBhdGNoCiAgIAoyMDAyLTAzLTE4IDAyOjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBleHRlbmQgdGNwX3dyYXBwZXJzIHN1cHBvcnQgdG8gQWdlbnRYLiAgVGhpcyBtYWtlcyBpdCBtb3JlCiAgICAgICByZWFzb25hYmxlIHRvIGltcGxlbWVudCBhIGRpc3RyaWJ1dGVkIHN1YmFnZW50IGFyY2hpdGVjdHVyZQogICAgICAgd2l0aG91dCBtYXNzaXZlIHNlY3VyaXR5IHdvcnJpZXMuCiAgIAoyMDAyLTAzLTE0IDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZG9udF9wcm9iZSBidWcgcG9pbnRlZCBvdXQgYnkgU3RlZmFuIEFlc2NoYmFjaGVyLgogICAKMjAwMi0wMy0xMyAxODo1OCAgc2xpZgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENsYXJpZnkgdW5zaWduZWQgY2hhciBhcmd1bWVudCBmb3IgdGhlIG5vaXN5IG9yIGNvbmZ1c2VkIGNvbXBpbGVyLgogICAKMjAwMi0wMy0xMyAxODo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBxdWVsbCBzZXZlcmFsIHdhcm5pbmdzIGFib3V0IHNpZ25lZCB2cyB1bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDItMDMtMTMgMTg6NDQgIHNsaWYKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyB0byByZXN0b3JlIGJ1aWxkaW5nIGVpdGhlciBEZWJ1ZyBvciBSZWxlYXNlIHRhcmdldHMuCiAgIAoyMDAyLTAzLTEzIDE4OjQzICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgdHJhY2sgY2hhbmdlIHNldGVudiAtLT4gc25tcF9zZXRlbnYKICAgCjIwMDItMDMtMTMgMTU6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIGFkZHJlc3MgY2hhbmdlcyBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgbm90ZSBzYXlpbmcgdGhlc2UgbWlicyBhcmUgbm8KICAgbG9uZ2VyIHN1cHBvcnRlZCBieSBVQ0QuCiAgIAoyMDAyLTAzLTEzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBtYWxsb2MgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gaGV4X3RvX2JpbmFyeTIKICAgCjIwMDItMDMtMTMgMDQ6MDMgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhIGRlc2NyaXB0aW9uIG9mICJ1bmxpbmtlZCBPSURzIi4KICAgCjIwMDItMDMtMTIgMjA6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgUGF0Y2ggZnJvbSBkYW5pZWwgU3VsbHkgdG8gaW1wcm92ZSBzb2xhcmlzIHN3YXAgaW5mbwogICAKMjAwMi0wMy0xMiAwODozNCAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnRfaW5kZXguYywgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF9hZ2VudC5jLAogICBzbm1wZC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIGJldHRlciBwcmludGluZyBhcGlzCiAgIAoyMDAyLTAzLTExIDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBmaXggYXBpIGluIGEgY29tbWVudCAoaG93IHBpY2t5IGFtIEk/KQogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFROgoKICAgQnJpbmcgdGhlIDR4LSBhbmQgbWFpbi1icmFuY2ggRkFRcyBpbnRvIGFncmVlbWVudC4KICAgCjIwMDItMDMtMTEgMDU6MTYgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBiYWQgdHlwZSBhc3NpZ25tZW50IGluIGJ1aWxkX3RyYW5zbGF0aW9uX3RhYmxlKCksIG5vdGljZWQgYnkKICAgICAgIFBldGVyIFN0ZXZlbnMuCiAgIAoyMDAyLTAzLTEwIDE0OjA3ICBuYmEKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIE9vcHMgLSBmb3Jnb3QgdG8gcmVtb3ZlIHRoZSAjaWZkZWYgZm9yIHVuc2FmZSBzcHJpbnRfKiBmdW5jdGlvbnMgZGVjbGFyYXRpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjU0ICBuYmEKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgRml4IHVwIG91dC1vZi1vcmRlciBlcnJvciBtZXNzYWdlCiAgIAoyMDAyLTAzLTEwIDEzOjQ0ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIERvbid0IGRpZSBvbiB2MiBleGNlcHRpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjQxICBuYmEKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9kZWJ1Zy5jOgoKICAgUmVtb3ZlIHNvbWUgY2FsbHMgdG8gb2xkIHNwcmludF8qIGZ1bmN0aW9ucwogICAKMjAwMi0wMy0xMCAxMzozOSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICBBZGQgc25wcmludF8qIHJlcGxhY2VtZW50IGZ1bmN0aW9ucyBmb3IgYWxsIHNwcmludF8qIGZ1bmN0aW9ucwogICAKMjAwMi0wMy0xMCAxMzozOCAgbmJhCgogICAqIG1hbi9taWJfYXBpLjM6CgogICBEb2N1bWVudCBzbnByaW50X3tvYmppZCx2YXJpYWJsZSx2YWx1ZX0KICAgCjIwMDItMDMtMTAgMDg6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICBpbmNsdWRlIHRoZSBzbnByaW50ZiBjb3VudGVycGFydHMgZnJvbSB0aGUgNS4wIGNvZGUuCiAgIAoyMDAyLTAzLTA4IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHJlZGVmaW5lIGEgdmFyaWFibGUgb24gZnJlZWJzZCBmb3IgMi4yLjUKICAgCjIwMDItMDMtMDggMTc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHJlbW92ZSBhIGJyb2tlbiBmaXggSSBhY2NpZGVudGljYWxseSBjb21taXR0ZWQKICAgCjIwMDItMDMtMDggMTc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHBhdGNoIGZyb20gTWloYWlsIEJhbGlrb3YgdG8gc3VwcG9ydCB1cCBidXQgbm8gaXAgaW50ZXJmYWNlcy4KICAgCjIwMDItMDMtMDggMTc6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBhY2xvY2FsLm00OgoKICAgcGF0Y2ggZnJvbSBQYXVsIFJhc211c3NlbiB0byBmaXggLS1lbmFibGUtc2hhcmVkCiAgIAoyMDAyLTAzLTA4IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9sZCBwYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXMgdG8gZml4IGM2NHMgaW4gcGVybAogICAKMjAwMi0wMy0wOCAxNDo1MyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgMTAwMCBsaW5lcyBvZiBkdXBsaWNhdGUgY29kZSBieSB1c2luZyB0aGUgc3ByaW50X3JlYWxsb2NfKiBmdW5jdGlvbnMKICAgaW4gdGhlIGltcGxlbWVudGFpb24gb2YgdGhlIG5vbi1yZWFsbG9jIGNvdW50ZXJwYXJ0cy4KICAgCjIwMDItMDMtMDggMTQ6NTEgIG5iYQoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmM6CgogICBSZW1vdmUgbGFzdCBzcHJpbnRfbm9ucmVhbGxvYyBjYWxscwogICAKMjAwMi0wMy0wNyAwMzoyMCAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgICAtIHBhdGNoIGZyb20gR3V5IEhhcnJpcyB0byBkZXNjcmliZSBuZXcgbWliX2FwaQogICAKMjAwMi0wMy0wNyAwMjo1OCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgICAtIGRlY2xhcmUgdGhlIHNwcmludF9yZWFsbG9jX2JsYWggZnVuY3Rpb25zLiAgVGhhbmtzIHRvIEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IGEgY29uZnVzaW9uIGJldHdlZW4gZGVmQXV0aFR5cGUgYW5kIGRlZlByaXZUeXBlLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWN0dWFsbHkgdXNlIHRoZSBjb21tb24gJ2RlZlBhc3NwaHJhc2UnIHZhbHVlIGlmICdkZWZ7QXV0aCxQcml2fVBhc3NwaHJhc2UnIGlzbid0IHNldC4KICAgUW46IFNob3VsZCB0aGUgQXV0aFBhc3NwaHJhc2UgYWxzbyBiZSB1c2VkIGZvciBwcml2YWN5IGlmIG5vIG90aGVyIHZhbHVlIGlzIGF2YWlsYWJsZT8KICAgCjIwMDItMDMtMDYgMDM6MTkgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgY2xlYW4gKHRoaXMKICAgICAgIGhhcHBlbnMgYWxsIHRoZSB0aW1lIG9uIHRoZSBjb21waWxlIGZhcm0gYmVjYXVzZSBlLmcuIEkgY2FuJ3QKICAgICAgIGRlbGV0ZSBXZXMncyB0ZXN0IGRpcmVjdG9yaWVzIGFuZCBpdCdzIGEgbnVpc2FuY2UgYmVjYXVzZSB0aGVuIHRoZQogICAgICAgcmVzdCBvZiB0aGUgZGlyZWN0b3JpZXMgZG9uJ3QgZ2V0IGNsZWFuZWQgdXAgcHJvcGVybHkpLgogICAKMjAwMi0wMy0wNiAwMjoyNCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBhbm90aGVyIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgcHJvYmxlbSBhcyByZXBvcnRlZCBpbiBidWcKICAgICAgICM1MjYyNjIuCiAgIAoyMDAyLTAzLTA1IDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgaW1wb3NlIG1heCBsZW5ndGggcmVzdHJpY3Rpb24gc3VwcGxpZWQgYnkgbWliIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoyMDAyLTAzLTA1IDA5OjUyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBtaXNzZWQgYSBtb2RpZmljYXRpb24gdG8gdGhlIHBhdGNoLgogICAKMjAwMi0wMy0wNSAwOTo1MSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQSBtb2RpZmllZCBwYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlciBmb3IgbG9uZ2VyIGNvbmZpZ3VyZSBzdHJpbmdzLgogICAKMjAwMi0wMy0wNSAwODoyMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICBSZXZlcnNlIG15IGVhcmxpZXIgKGJvZ3VzKSBmaXguCiAgIFRoaW5ncyB3ZXJlIGZpbmUgYXMgdGhleSB3ZXJlIC0gSSBtdXN0IGJlIGNyYWNraW5nIHVwLi4uLi4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDY6NTYgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgQnJpbmcgZGVjbGFyYXRpb24gb2YgJ2luaXRfYWdlbnQnIGludG8gbGluZSB3aXRoIGNvZGUgZGVmaW5pdGlvbi4KICAgCjIwMDItMDMtMDUgMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCB1Y2Qtc25tcC9kbG1vZC5jOgoKICAgQ2FzdCBhIGNvdXBsZSBvZiBtYWxsb2NzIGFwcHJvcHJpYXRlbHkgKHJlcXVlc3RlZCBieSBHcmVnb3J5IFRvdGgpCiAgIAoyMDAyLTAzLTA0IDIxOjM4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjQucHJlMiApCiAgIAoyMDAyLTAzLTA0IDAxOjUxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENhdGNoIGFuZCByZXBvcnQgaW52YWxpZCBub2RlIHNwZWNpZmljYXRpb25zLgogICAoVGhpcyBvdWdodCB0byBiZSBoYW5kbGVkIGJ5IHRoYXQgdGVzdCB0aGF0IGZvbGxvd3MgaW1tZWRpYXRlbHksIGJ1dAogICAgIiRTTk1QOjpNSUJ7JG9pZH0iIGFwcGVhcnMgdG8gcmV0dXJuIHRoZSBjb3JlIG1pYi0yIG9iamVjdCByZWdhcmRsZXNzKQogICAKMjAwMi0wMy0wNCAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBDb3JyZWN0IGRlYnVnIG91dHB1dCBtZXNzYWdlICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAzLTAxIDIyOjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBidWcgIzUyNDUyOQogICAKMjAwMi0wMy0wMSAwNzoxNyAgbmJhCgogICAqIGx0bWFpbi5zaCwgYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgUHVsbCBpbiB1cC10by1kYXRlIGxpYnRvb2wsIHdoaWNoIHNob3VsZCBoZWxwIERhcndpbgogICAKMjAwMi0wMy0wMSAwNzoxNSAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIFB1bGwgaW4gdXAtdG8tZGF0ZSBjb25maWcgc2NyaXB0cwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI2IDE0OjE4ICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICBTYXZlIEZpbGUvbGluZSBmb3IgbWVzc2FnZXMgYWJvdXQgdW5saW5rZWQgT0lEcwogICAKMjAwMi0wMi0yNSAxNTo0NiAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoOgoKICAgTWFrZSBzdXJlIHRoYXQgd2UgZmV0Y2ggSUFOQWlmVHlwZS1NSUIgZnJvbSB0aGUgbWFpbnRhaW5lZCBsb2NhdGlvbi4KICAgCjIwMDItMDItMjUgMTU6NDUgIG5iYQoKICAgKiBtaWJzL0RJU01BTi1TQ0hFRFVMRS1NSUIudHh0OgoKICAgVXBkYXRlIGZvciBSRkMgMzIzMQogICAKMjAwMi0wMi0yNSAwODo1OSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE5ldyBSRkMncyBpc3N1ZWQgd2l0aCBtaWJzOgogICAzMjAxICAgQ0lSQ1VJVC1JRi1NSUIKICAgMzIwMiAgIEZSU0xELU1JQgogICAzMjMxICAgRElTTUFOLVNDSEVEVUxFLU1JQgogICAKMjAwMi0wMi0yNSAwODo1NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgRnJlZUJTRDQgaGFzIG5ldyBkaXNrIG5hbWVzCiAgIAoyMDAyLTAyLTI1IDA4OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgUHJvcGVybHkgYnJhY2tldCBydW5fbHBzdGF0IHByb3RvdHlwZQogICAKMjAwMi0wMi0yNSAwMjo0OCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gb25seSBjb3B5IHRoZSBmaXJzdCBERVNDUklQVElPTiBjbGF1c2Ugb2YgTU9EVUxFLUNPTVBMSUFOQ0UKICAgICAgIHN0YXRlbWVudHMgdG8gYXZvaWQgYSBtZW1vcnkgbGVhayAoc2VlIGJ1ZyAjNTIyMzYzKS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGRlYnVnIHRva2VuIGZvciBkaXNwbGF5aW5nIHRoZSBsaXN0IG9mIG1vZHVsZXMKICAgKHNwb3R0ZWQgYnkgQnJpYW4gU2hhdmVyKQogICAKMjAwMi0wMi0yMiAwOToyNyAgZHRzMTIKCiAgICogc25tcGxpYi86IE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYyAsCiAgIE1TRzAwMDAxLmJpbiAoMS4xKSwgd2luc2VydmljZS5tYyAoMS4xKToKCiAgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciBXaW5kb3dzIHNlcnZpY2Ugb3BlcmF0aW9uLgogICAKMjAwMi0wMi0yMiAwODo0MiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEp1c3QgY2xvc2UgdGhlIG1haW4gc2Vzc2lvbiB3aGVuIHNodXR0aW5nIGRvd24gdW5kZXIgV2luZG93cywKICAgbm90IGV2ZXJ5dGhpbmcgKHNvIHRoYXQgaXQgY2FuIHN0aWxsIGdlbmVyYXRlIHRoZSBzaHV0ZG93biB0cmFwKS4KICAgCjIwMDItMDItMjIgMDE6NDkgIGpicG4KCiAgICogRkFRLCBSRUFETUUud2luMzI6CgogICAgIC0gdXBkYXRlIGNvbW1lbnRzIG9uIFdpbjMyIHBvcnQgaW4gRkFRCiAgIAogICAgIC0gZGlzY3VzcyB3aGF0IElQSExQQVBJLntMSUIsRExMfSBpcyBhbmQgd2hlcmUgaXQgY2FuIGJlIG9idGFpbmVkCiAgICAgICBmcm9tIGluIFJFQURNRS53aW4zMgogICAKMjAwMi0wMi0yMSAwNzowMiAgZHRzMTIKCiAgICogd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgRml4IGJvZ3VzIHN0cnVjdHVyZSBjb21tZW50cyBpbiB0aGUgc25tcGQgcHJvamVjdCBmaWxlLgogICAKMjAwMi0wMi0yMSAwMzoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgICAgLSBlbWl0IGVycm9yIG9uIG92ZXItbGVuZ3RoIHBhc3N3b3JkIGluc3RlYWQgb2Ygd3JpdGluZyBvZmYgZW5kIG9mCiAgICAgICBidWZmZXIgKGJ1ZyAjNTIwNjQ5LCBub3RlZCBieSBKb2huIFNlbGxlbnMpLgogICAKMjAwMi0wMi0yMCAwOToyNyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgICAgLSBjaGFuZ2VzIHRvIGF2b2lkIG5hbWVzcGFjZSBjbGFzaCBwcm9ibGVtcyB3aXRoIHNldGVudigpIHdoaWNoIGFyZQogICAgICAgY2F1c2VkIGJ5IGxpYndyYXAgc3VwcGx5aW5nIGEgZnVuY3Rpb24gb2YgdGhhdCBuYW1lIGFzIHdlbGwgYXMgdXMuCiAgIAogICAgIC0gYWxsIGNhbGxzIGluIHRoZSBjb2RlIHRvIHNldGVudigpIGFyZSByZXBsYWNlZCB3aXRoIGEgY2FsbCB0bwogICAgICAgc25tcF9zZXRlbnYoKS4KICAgCiAgICAgLSBzbm1wX3NldGVudigpIGNhbGxzIHNldGVudigpIGlmIHN1Y2ggYSBmdW5jdGlvbiBleGlzdHMsIG90aGVyd2lzZQogICAgICAgaXQgc2ltdWxhdGVzIHRoZSBlZmZlY3QgYnkgY2FsbGluZyBwdXRlbnYoKS4KICAgCjIwMDItMDItMjAgMDU6NDMgIGpicG4KCiAgICogTkVXUzoKCiAgICAgLSBtZW50aW9uIHRjcF93cmFwcGVycyBzdXBwb3J0IGZvciBzbm1wdHJhcGQKICAgCjIwMDItMDItMjAgMDU6NDEgIGpicG4KCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgbGlid3JhcCBzdXBwb3J0IGZvciBzbm1wdHJhcGQKICAgCjIwMDItMDItMjAgMDU6MjAgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZXhpdCB3aXRoIGFuIGVycm9yIGlmIC0td2l0aC1saWJ3cmFwIGlzIGdpdmVuIGFuZCB3ZSBjYW4ndCBmaW5kIGl0CiAgIAoyMDAyLTAyLTIwIDAzOjAwICBqYnBuCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAgIC0gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMsIHRvIGF2b2lkIGdhcmJhZ2UgcHJpbnRpbmcgcHJvYmxlbXMsIGFzCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgaW4gYnVnICM1MjAyMjAuCiAgIAoyMDAyLTAyLTE5IDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFBhdGNoIGZyb20gSmVyb2VuIFJ1aWdyb2sgdG8gbWVyZ2UgYSBmZXcgaWZkZWZzCiAgIAoyMDAyLTAyLTE5IDAxOjUxICBqYnBuCgogICAqIGFnZW50L2F1dG9fbmxpc3QuaDoKCiAgICAgLSBhZGQgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBzdHJ1Y3Qgbmxpc3QgdG8gYXZvaWQgY29tcGlsZXIKICAgICAgIGNvbXBsYWludHMuICBUaGFua3MgdG8gQW5keSBIb29kLgogICAKMjAwMi0wMi0xOCAwODoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBwYXRjaCBmcm9tIEplcm9lbiBSdWlncm9rIGZvciBtaW5vciBpZmRlZiBjbGVhbiB1cHMKICAgCjIwMDItMDItMTggMDI6MzYgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBtYWtlIHN1cmUgYnVmZmVyIGlzIGluaXRpYWxseQogICAgICAgemVyby10ZXJtaW5hdGVkIChpbiBjYXNlIG9mIDAgdmFyYmluZHMpLiAgQnVnICM1MTg3MDAsIG5vdGVkIGJ5CiAgICAgICBBbmRyZWFzIEhhcnRtYW5uLgogICAKMjAwMi0wMi0xOCAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgdW5oZWxwZnVsIE9TRiBkZWZpbml0aW9ucyAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xOCAwMjowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSByZW1vdmUgdHJvdWJsZXNvbWUgaW5saW5lIHF1YWxpZmllcnMuICBUaGFua3MgdG8gQW5keSBIb29kIGZvcgogICAgICAgbm90aW5nIHRoYXQgdGhlc2UgY2F1c2UgcHJvYmxlbXMgb24gQUlYLgogICAKMjAwMi0wMi0xOCAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgICAtIHJlbW92ZSAvLy1zdHlsZSBjb21tZW50cy4gIFRoYW5rcyB0byBBbmR5IEhvb2QgZm9yIHBvaW50aW5nIHRoaXMKICAgb3V0LgogICAKMjAwMi0wMi0xOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBkb24ndCBidWlsZCBvaWQncyB3aXRoID4xMjggbGVuZ3RoIHN1Ymlkcy4gIChzZWUgYnVnICM1MTg4NTUpCiAgIAoyMDAyLTAyLTE1IDIyOjA3ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjQucHJlMSApCiAgIAoyMDAyLTAyLTE1IDE3OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgZml4IGJ1ZyM1MDgxMjYgd2hpY2ggYWN0dWFsbHkgbGVkIG1lIHRvIGFub3RoZXIuCiAgICAgLSBvaWQgcGFyc2luZyBhbmQgc2VhcmNoaW5nIGluIGdldG5leHRzIGNvdWxkIHNvbWV0aW1lcyBsb29wLgogICAKMjAwMi0wMi0xNSAxNzowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHN1cHBvcnQgLS1kaXNhYmxlLXNoYXJlZC12ZXJzaW9uIGNvbmNlcHQgZnJvbSBQYXVsIFJhc211c3Nlbi4KICAgCjIwMDItMDItMTUgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGR5bml4IGJyb2tlIGxpbnV4LiAgQmFkIGR5bml4LiAgTm8gYm9uZS4gIEdvIHRvIHlvdXIgcm9vbS4KICAgCjIwMDItMDItMTUgMTY6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIGFkZCBiYWNrIGluIG5ldGluZXQvaW4uaCBhbmQgc3lzL3RpbWUuaCAoaW4gcHJvcGVyIHByb3RlY3RlZCBmb3JtKQogICB3aGljaCB3YXMgZGVsZXRlZCBmcm9tIDQuMi4zIGZvciBzb21lIHJlYXNvbiB3ZSBuZXZlciBmaWd1cmVkIG91dC4KICAgCjIwMDItMDItMTUgMTY6MjEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRkFRLCBORVdTLCBSRUFETUU6CgogICB1cGRhdGVzIGZvciB3aGF0IHdpbGwgYmUgNC4yLjQKICAgCjIwMDItMDItMTUgMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBjaGVjayBlbmQgb2YgbWlidmlldyBjb25kaXRpb25zCiAgIAoyMDAyLTAyLTE1IDA4OjAxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFBvcHVsYXRlIGFuIGVtcHR5IGNhc2Ugc3RhdGVtZW50IChzcG90dGVkIGJ5IEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xNSAwNzoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHJlbW92ZSB1bm5lZWRlZCAtQ04gYW5kIC1DTyBleGFtcGxlIG9wdGlvbnMKICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvd2luc2VydmljZS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuaCwKICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0xNCAxMToxMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgTWFrZSBidWZmZXIgcG9pbnRlciBzdGF0aWMgc28gaXQgZG9lc24ndCBsZWFrCiAgIAoyMDAyLTAyLTE0IDExOjEwICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5oOgoKICAgRml4IGJhZCBwYXJhbnRoZXNpcwogICAKMjAwMi0wMi0xNCAwNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBlbWFpbCBhZGRyZXNzIGJ1ZyAjNTE3MTc4CiAgIAoyMDAyLTAyLTE0IDAxOjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBDaGVjayBmb3IgcnVubmluZyBvZmYgdGhlIGVuZCBvZiBJL0YgdGFibGUgKHBhdGNoIGZyb20gUmVkSGF0KQogICAKMjAwMi0wMi0xNCAwMTo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIEluY2x1ZGUgUmVkSGF0IHBhdGNoZXMgZm9yIGJldHRlciBSUE0gc3VwcG9ydAogICAKMjAwMi0wMi0xNCAwMTozOCAgZHRzMTIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIHJwbSBsaWJyYXJ5IHJlcXVpcmVtZW50cwogICAKMjAwMi0wMi0xMyAxNjo0MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBlbmFibGUgc2hhcmVkIGJ5IGRlZmF1bHQgZXhjZXB0IGZvciBkZXZlbG9wZXJzCiAgIAoyMDAyLTAyLTEzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgcmVtb3ZlIGlubGluZSBmdW5jdGlvbiBmcm9tIGJlaW5nIGRlY2xhcmVkIGluIGFub3RoZXIgZnVuY3Rpb24uCiAgIAoyMDAyLTAyLTEzIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICByZW1vdmUgaW5saW5lIGZ1bmN0aW9uIGZyb20gYmVpbmcgZGVjbGFyZWQgaW4gYW5vdGhlciBmdW5jdGlvbi4KICAgCjIwMDItMDItMTMgMDg6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHNldHMgb2YgdW5zaWduZWQzMidzLgogICAKMjAwMi0wMi0xMyAwNzo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERTX0xJQl9QUklOVF9TVUZGSVhfT05MWSBpcyBhbiBpbnRlZ2VyIG9wdGlvbiwgbm90IGEgYm9vbGVhbiBmbGFnLgogICAoQXR0ZW1wdGluZyB0byBzZXQgdGhpcyB2aWEgdGhlIFNVRkZJWCBlbnZpcm9ubWVudGFsIHZhcmlhYmxlIHdpbGwKICAgdHVybiBvbiBwYWNrZXQgZHVtcGluZyBpbnN0ZWFkISkKICAgCjIwMDItMDItMTMgMDQ6MTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgICAtIGZpeCBidWcgIzUxNjkwNCAoc25tcGQgZGllcyBpZiBubyBwcmludGNhcCB3aXRoIGNnZXRlbnQpLCBub3RlZCBieQogICAgICAgQW5vbnltb3VzIC0tIGNoZWNrIHJldHVybiB2YWx1ZSBvZiBjZ2V0bmV4dCgpIHByb3Blcmx5IGluCiAgICAgICBJbml0X0hSX1ByaW50KCkuCiAgIAoyMDAyLTAyLTEyIDA3OjExICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgICAtIGFtZW5kIGZpeCB0byBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgdG8KICAgICAgIGFjdHVhbGx5IGFkZCAtbG5zbCB0byBsaW5rIHBhcmFtZXRlcnMhCiAgIAoyMDAyLTAyLTEyIDA1OjI5ICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgLS0gVVNFX0xJQldSQVAKICAgICAgIHdhcyBub3QgYmVpbmcgI2RlZmluZWQgaW4gdGhlIGNhc2Ugd2hlcmUgLWxuc2wgaXMgbmVlZGVkIGluIGFkZGl0aW9uCiAgICAgICB0byAtbHdyYXAuCiAgIAoyMDAyLTAyLTEyIDAxOjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEltcGxlbWVudCB0aGUgQmFkQ29tbXVuaXR5e05hbWVzLFVzZXN9IGNvdW50ZXJzLgogICAKMjAwMi0wMi0xMSAxMDowNyAgamJwbgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgICAtIGZpeCBidWdzICM0ODkzMzYgYW5kICM1MDgxNDYgKGR1cGxpY2F0ZSBjb2x1bW5zIGFuZCBjb2x1bW5zIGluCiAgICAgICB3cm9uZyBvcmRlcikuCiAgIAoyMDAyLTAyLTExIDA4OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgVXNlIHRoZSAnZHNfc2V0X3h4eCcgbGlicmFyeSByb3V0aW5lcywgcmF0aGVyIHRoYW4gdGhlIG9sZCAnc25tcF9zZXRfeHh4JyBjYWxscwogICAKMjAwMi0wMi0xMSAwNTozMCAgamJwbgoKICAgKiBGQVE6CgogICAgIC0gbWVudGlvbiBIUFVYLTExIGFuZCBEeW5peC9QVFggNC40IHN1cHBvcnQsIGFuZCBzb21lIHNwZWxsaW5nIGZpeGVzCiAgIAoyMDAyLTAyLTA4IDA2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICBFbnN1cmUgdGhlIG51bGwgdmVyc2lvbnMgb2YgdGhlIHR3byBSRUdJU1RFUiBtYWNyb3Mgc3dhbGxvdyB0aGVpciBwYXJhbWV0ZXJzLgogICAKMjAwMi0wMi0wOCAwNDo0MiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW1wbGVtZW50IHRoZSBtaXNzaW5nIG91dGdvaW5nIGVycm9yIHN0YXRpc3RpY3MgY291bnRlcnMKICAgKHBhdGNoICM1MTAxOTQgZnJvbSBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTA4IDAyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcm9jZXNzIHRoZSBmdWxsIGxpc3Qgb2JqZWN0cyBpbiBlYWNoIHBhc3Mgb2YgYSBTRVQsIGV2ZW4gaWYgb25lIGVudHJ5IGZhaWxzCiAgIG1pZHdheSB0aHJvdWdoLiAgVGhpcyBpcyBsZXNzIGVmZmljaWVudCB0aGFuIGZhaWxpbmcgaW1tZWRpYXRlbHksIGJ1dCBicmluZ3MKICAgdGhlIGJlaGF2aW91ciBpbiBsaW5lIHdpdGggdGhlIGRvY3VtZW50YXRpb24sIGFuZCBlbnN1cmVzIHRoYXQgYWxsIHJlc291cmNlcwogICB3aWxsIGJlIHJlbGVhc2VkLgogICAKMjAwMi0wMi0wOCAwMjo1MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmV0dXJuIHRoZSBjb3JyZWN0IGVycm9yIGluZGV4IGZvciBwcm9ibGVtcyBpbiBTRVQgaGFuZGxpbmcuCiAgIChwYXRjaCAjNDY3MTU1LCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbWVtb3J5IGFuZCBzd2FwIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgZm9yIFNvbGFyaXMKICAgKGZyb20gcGF0Y2ggIzUwNTQ5OCAtIHRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCiAgIAoyMDAyLTAyLTA4IDAyOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgUmVnaXN0ZXIgSVAgUm91dGluZyB0YWJsZSBvYmplY3RzIGFzIHdyaXRhYmxlLgogICAKMjAwMi0wMi0wNyAwNzozOSAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHMvaHB1eC5oOgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDUgMTE6NDUgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjb3B5cmlnaHQgeWVhciB1cGRhdGUgZm9yIE5BSSBhbmQgQ2FtYnJpZGdlCiAgIAoyMDAyLTAyLTA0IDAzOjE3ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAxLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBtaXJyb3Igc2VjdGlvbiB1cGRhdGUKICAgCjIwMDItMDEtMjggMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIHdhcm5pbmcgYWRkZWQgYWJvdXQgc2VuZF90cmFwX3ZhcnMgYW5kIGVudGVycHJpc2Ugb2lkIHVzZWQuCiAgIAoyMDAyLTAxLTI1IDA2OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGZpeCBtaW5vciBwcm9ibGVtIHdpdGggc3RvcmFnZVR5cGUgKGFsd2F5cyBva2F5IHRvIHNldCB0byBjdXJyZW50CiAgICAgICB2YWx1ZSkuCiAgIAogICAgIC0gZG9uJ3QgcmVzZXQgc29tZSB2YXJpYWJsZXMgdG8gb2xkIHZhbHVlIHVubGVzcyB3ZSBhY3R1YWxseSBzZXQKICAgICAgIHRoZW0gaW4gdGhlIGZpcnN0IHBsYWNlIQogICAKMjAwMi0wMS0yNCAwNjowNiAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gYXZvaWQgZm9ybWF0IHN0cmluZyBuYXN0aWVzIGluIHJlYWRfY29uZmlnX3N0b3JlKCkgd2hlbiB3cml0aW5nIHRvCiAgICAgICBmaWxlcyAoZXhwb3NlZCBlLmcuIGJ5IHRoZSBwZXJzaXN0ZW50IHN5c05hbWUuMCBzdHVmZiAtLSB0cnkKICAgICAgIHNubXBzZXQgaG9zdCBzeXNOYW1lLjAgcyAiJTA4eCIgLS0gb29wcykKICAgCjIwMDItMDEtMjQgMDM6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBzL2FpeC5oOgoKICAgQUlYIHN1cHBvcnQgZm9yIEhvc3QgUmVzb3VyY2VzIG1vZHVsZS4KICAgICAgIChUaGFua3MgdG8gQW5keSBIb29kKQogICAKMjAwMi0wMS0yMyAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBzZXQgdmlld1R5cGUgdG8gdGhlIERFRlZBTCBpbmNsdWRlZCgxKSBmb3IgbmV3IHJvd3MKICAgCjIwMDItMDEtMjIgMDY6MzYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZml4IGJ1ZyBqdXN0IGludHJvZHVjZWQgd2hlcmUgc2V0dGluZyBhbiBleGlzdGluZyByb3cncyBzdGF0dXMgdG8KICAgICAgIGNyZWF0ZUFuZEdvKDQpIG9yIGNyZWF0ZUFuZFdhaXQoNSkgd291bGQgZGVsZXRlIHRoZSByb3cuCiAgIAoyMDAyLTAxLTIyIDA0OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgICAgLSBiYWNrcG9ydCBvZiByZWNlbnQgaW1wcm92ZW1lbnRzIHRvIHNubXBUYXJnZXRQYXJhbXNUYWJsZSwKICAgICAgIHNubXBUYXJnZXRBZGRyVGFibGUgYW5kIHNubXBOb3RpZnlUYWJsZS4KICAgCjIwMDItMDEtMjEgMDQ6MjIgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gc2V0IG5vU3VjaE9iamVjdCB0byBGQUxTRSBpZiB3ZSBoYXZlIGEgdmFsaWQgd3JpdGVfbWV0aG9kICh0aGlzCiAgICAgICBjYXVzZXMgdGhlIGNvcnJlY3QgZXhjZXB0aW9uIG5vU3VjaEluc3RhbmNlIHRvIGJlIGdlbmVyYXRlZCBpZiB0aGUKICAgICAgIHJlcXVlc3RlZCBvYmplY3QgZG9lc24ndCBleGlzdCkuCiAgIAoyMDAyLTAxLTIxIDA0OjIwICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzbGlnaHQgY2hhbmdlIHRvIGdlbmVyYXRpb24gb2YgZXJyb3ItaW5kZXg6CiAgIAogICAgICAgLSBleHBsaWNpdGx5IHRlc3QgZm9yIGVycm9yLXN0YXR1cyA9PSBub0Vycm9yLCBhbmQgc2V0IGVycm9yLWluZGV4CiAgICAgICAgIHRvIHplcm8gaW4gdGhpcyBjYXNlOwogICAKICAgICAgIC0gb3RoZXJ3aXNlIHVzZSB0aGUgY2FjaGVkIHZhbHVlOwogICAKICAgICAgIC0gZG9uJ3QgemVybyB0aGUgY2FjaGVkIHZhbHVlIGluIGhhbmRsZV92YXJfbGlzdCBpZiBoYW5kbGVfb25lX3ZhcgogICAgICAgICByZXR1cm5zIG5vRXJyb3IKICAgCiAgICAgLSB0aGlzIGNvcGVzIHByb3Blcmx5IHdpdGggU0VUIHJlcXVlc3RzLCB3aGVyZSBhIGZhaWxpbmcgU0VUIHdpbGwgaGF2ZQogICAgICAgYSBGUkVFIHBoYXNlIHdoaWNoIHdpbGwgdHlwaWNhbGx5IHJldHVybiBub0Vycm9yLiAgUHJldmlvdXNseSB0aGlzCiAgICAgICB3b3VsZCBlcnJvbmVvdXNseSBjYXVzZSB0aGUgZXJyb3ItaW5kZXggdG8gYmUgc2V0IHRvIHplcm8uCiAgIAoyMDAyLTAxLTIxIDA0OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmg6CgogICAgIC0gYmFja3BvcnQgb2YgcmVjZW50IHZhY21TZWN1cml0eVRvR3JvdXBUYWJsZSwgdmFjbUFjY2Vzc1RhYmxlIGFuZAogICAgICAgdmFjbVZpZXdUcmVlRmFtaWx5VGFibGUgY2hhbmdlcyAoY29ycmVjdGVkIHN0YXRlIG1hY2hpbmVzKS4KICAgICAgIEJlZm9yZTogcGFzc2VkIDIwLCAgZmFpbGVkIDgwLCB1bnRlc3RlZCAxMQogICAgICAgQWZ0ZXI6ICBwYXNzZWQgMTA3LCBmYWlsZWQgMSwgIHVudGVzdGVkIDMKICAgCiAgICAgICBUaGUgc3RpbGwtZXh0YW50IGZhaWx1cmVzIGFyZSBkdWUgdG8gdGhlIG5vbi1pbXBsZW1lbnRlZAogICAgICAgdmFjbUNvbnRleHRUYWJsZS4KICAgCjIwMDItMDEtMTUgMTI6NDQgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEZpeCBzdHVwaWQgbWlzc2luZyBzaXplb2Yob2lkKSBmYWN0b3IgaW4gbWVtY3B5CiAgIAoyMDAyLTAxLTE1IDEyOjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBEb250IHVzZSBzdGF0aWMgYnVmZmVyIHdoZW4gcmVhZGluZyAvcHJvYy9zdGF0CiAgIAoyMDAyLTAxLTE1IDEyOjQxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgcy9zb2xhcmlzMi42LmgsIHMvc29sYXJpczIuNy5oLAogICBzL3NvbGFyaXMyLjguaDoKCiAgIEZpeCBock1heFByb2Nlc3NlcyBmb3IgU29sYXJpcwogICAKMjAwMi0wMS0xNSAxMjozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFNvbWUgYWRkaXRpb25hbCBkZWJ1ZyBzdGF0ZW1lbnRzCiAgIAoyMDAyLTAxLTA5IDA4OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaDoKCiAgIEFkZCBmdW5jdGlvbiB0byBhY2NlcyByYXcga3N0YXQgZGF0YQogICAKMjAwMi0wMS0wOSAwODoyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgVXNlIHRoYXQgc3lzY29uZiByZXR1cm5zIGEgbG9uZywgdG8gc2F2ZSBsYXJnZSBwaHlzIG1lbQogICAKMjAwMi0wMS0wOSAwODoyNCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQSB2ZXJzaW9uCiAgIAoyMDAyLTAxLTA5IDA4OjIzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ2FyZSBmb3IgTGludXggZHJpdmVycyB0aGF0IG1haW50YWluIG9jdGV0IGNvdXRlcnMgYXMgbG9nIGxvbmcgdmFsdWVzCiAgIAoyMDAyLTAxLTA5IDAyOjIwICBqYnBuCgogICAqIEZBUToKCiAgICAgLSBhZGQgT1MgWCB0byBsaXN0IG9mIHN1cHBvcnRlZCBPU2VzLCB0byBmaXggYnVnICM1MDExNzkgKCEpCiAgIAoyMDAyLTAxLTAzIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBmaXggYnVnICM0OTg4MDkgKEkgdGhpbmspIGJ5IGNoZWNraW5nIHNldG1udGVudCByZXR1cm4gdmFsdWUuCiAgIAoyMDAyLTAxLTAzIDEzOjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGVjayBhZ2FpbnN0IGdyb3dpbmcgc2VydmVyIHJldHVybnMgYXMgcG9pbnRlZCBvdXQgYnkgYnVnICM0OTg5NTYKICAgCjIwMDEtMTItMTggMDg6NDkgIGpicG4KCiAgICogYWNjb25maWcuaCwgd2luMzIvY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICAgIC0gYWRkIE9TVFlQRSBkZWZpbmUgZm9yIHdpbjMyCiAgIAoyMDAxLTEyLTE4IDA4OjQ0ICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBhZGQgT0JKRUNUIElERU5USUZJRVIgZm9yIHdpbjMyIGFnZW50CiAgIAoyMDAxLTEyLTE4IDA2OjUwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIExhdGhhIFByYWJodSB0byBwcm9kdWNlIG1vcmUgbWVhbmluZ2Z1bCBzeXNEZXNjci4wCiAgICAgICBzdHJpbmdzIGZvciBNaWNyb3NvZnQgcGxhdGZvcm1zLgogICAKMjAwMS0xMi0wNSAwNzo0OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwYXRjaCBmcm9tIEphc29uIEdsb3Vkb24gdG8gZml4IGxlYWtpbmcgc2Vzc2lvbiBzdHJ1Y3R1cmVzIGZyb20gc25tcF90aW1lb3V0KCkuCiAgIAoyMDAxLTEyLTAzIDE0OjUyICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ29tcGxldGUgdGhlIEJTRCBJUFNUQVRTIGNvbmZpZ3VyZSB0ZXN0cywgYXMgcG9pbnRlZCBvdXQgYnkgTWFyayBNb3JhZXMKICAgKGJ1ZyMgNDg3NzA4KQogICAKMjAwMS0xMS0yOSAxNjo1NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgNC4yLjMgY2hhbmdlcwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMi4yIC0+IFY0LjIuMwoJCjIwMDEtMTEtMjkgMTQ6MjIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMyApCiAgIAoyMDAxLTExLTI5IDEzOjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgU29sYXJpcyA4IHJlbmFtZWQgdGhlIGtzdGF0IGlmc3BlZWQgYXR0cmlidXRlIHRvIGlmU3BlZWQgYW5kIHNvbWV3aGVyZQogICBhbG9uZyB0aGUgbGluZSBjaGFuZ2VkIGl0cyB2YWx1ZSBmcm9tIE1icHMgdHAgYnBzCiAgIAoyMDAxLTExLTI4IDE0OjQzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBpbXByb3ZlZCBpcml4IHN1cHBvcnQuCiAgIAoyMDAxLTExLTI4IDE0OjMxICBoYXJkYWtlcgoKICAgKiBzL2lyaXguaDoKCiAgIGxhc3QgZml4ZXMgZm9yIGlyaXggSSB0aGluawogICAKMjAwMS0xMS0yOCAxNDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY3JlYXRlIGlzbGFuZHMgaW4gdGhlIHN0cmVhbQogICAKMjAwMS0xMS0yOCAxNDowOSAgaGFyZGFrZXIKCiAgICogcy9pcml4Lmg6CgogICBpcml4IGZpeGVzIGZvciBicm9rZW4gaXJpeCBoZWFkZXJzCiAgIAoyMDAxLTExLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHZlcnNpb24gc3RhbXAgKDQuMi4zLnByZTEgKG9wcHMpKQogICAKMjAwMS0xMS0yNyAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGZpeCBmb3IgdmVyc2lvbiBzdGFtcGluZyB0aGUgcGVybCBtb2R1bGUuCiAgIAoyMDAxLTExLTI3IDE3OjAzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA0LjIuMwogICAKMjAwMS0xMS0yNyAxMTowOSAgaGFyZGFrZXIKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgdXNlIGF0IG93biByaXNrIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBkZXBlbmRhbmNpZXMKICAgCjIwMDEtMTEtMjcgMDY6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgICAgLSB0cnkgaGFyZGVyIHRvIGdldCBoclN5c3RlbU1heFByb2Nlc3Nlcy4wIHJpZ2h0LCBkcmF3aW5nIG9uIHBhdGNoCiAgICAgICAjNDg1NzY1LCBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLCBmb3IgTGludXgsIGFuZAogICAgICAgYWxzbyB1c2luZyBzeXNjdGwoKSBtb3JlIHdpZGVseS4KICAgCjIwMDEtMTEtMjcgMDY6NTEgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBzL2xpbnV4Lmg6CgogICAgIC0gTG9vayBmb3IgPGxpbnV4L3Rhc2tzLmg+LCBpbiBvcmRlciB0byBnaXZlIGEgYmV0dGVyIHZhbHVlIGZvcgogICAgICAgaHJTeXN0ZW1NYXhQcm9jZXNzZXMuMC4gIEZyb20gcGF0Y2ggIzQ4NTc2NSwgc3VibWl0dGVkIGJ5CiAgICAgICBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAxLTExLTI3IDAzOjU2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzoga2VybmVsX2xpbnV4LmMsIGtlcm5lbF9saW51eC5oLCB0Y3AuYzoKCiAgICAgLSBnaXZlIGNvcnJlY3QgdmFsdWVzIGZvciB0Y3BJbkVycnMuMCBhbmQgdGNwT3V0UnN0cy4wIHVuZGVyIExpbnV4CiAgICAgICBpZiB0aGUga2VybmVsIG1ha2VzIHRoZSBkYXRhIGF2YWlsYWJsZS4gIEZyb20gcGF0Y2ggIzQ4NTc2NSwKICAgICAgIHN1Ym1pdHRlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAxLTExLTI2IDA5OjUxICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldDoKCiAgICAgLSBsb25nZXIgdGltZW91dCBmb3IgaW5pdGlhbCBHRVQgKGZpeCBzcHVyaW91cyB0ZXN0IGZhaWx1cmVzKQogICAKMjAwMS0xMS0yMSAxMDo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgaGVscCB1cGRhdGUgdG8gcmVtb3ZlIHRoZSBzdXBwb3J0IGRhdGFiYXNlCiAgIAoyMDAxLTExLTIxIDA0OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgICAgLSBmaXggY29tcGlsYXRpb24gZm9yIFVsdHJpeCA0LjUgKGJ1ZyAjIDQxNTE5NykgLS0gbWFrZSBzdXJlCiAgICAgICB2ZnMuZl9ic2l6ZSBleGlzdHMgaW4gdmFyX2V4dGVuc2libGVfZGlzaygpLCBhbmQgZGVmYXVsdCBpdCB0bwogICAgICAgMTAyNC4KICAgCjIwMDEtMTEtMjAgMDI6MjcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMDU6NDggIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnRhdGlvbiBvZiBpZ25vcmVkaXNrIGRpcmVjdGl2ZS4KICAgCjIwMDEtMTEtMTkgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suYywgaHJfZGlzay5oLCBocl9wYXJ0aXRpb24uYywKICAgaHJfcGFydGl0aW9uLmg6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgdG8gYWRkIGRpcmVjdGl2ZSAiaWdub3JlZGlzayIgdG8KICAgICAgIHNraXAgY2VydGFpbiBkZXZpY2VzIChhbmQgaGVuY2UgYXZvaWQgdGhlIGBzbm1wd2FsayB0aW1lcyBvdXQnIHR5cGUKICAgICAgIHByb2JsZW1zIGZyZXF1ZW50bHkgcmVwb3J0ZWQpLiAgQWxzbyBleHRlbmRzIHNlYXJjaCByYW5nZXMgdG8gY29wZSB3aXRoCiAgICAgICBsYXJnZXIgbnVtYmVycyBvZiBkaXNrcyBldGMuCiAgIAoyMDAxLTExLTE2IDA1OjMxICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgVW5zaWduZWQzMi9HYXVnZTMyIHR5cGVzCiAgIAoyMDAxLTExLTE2IDAzOjIxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIG1vcmUgY29uc3QtbmVzcyBpbiBxc29ydF9jb21wYXJlID0+IGZld2VyIHdhcm5pbmdzCiAgIAoyMDAxLTExLTE2IDAyOjU0ICBqYnBuCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIGFkZCBwcm90b3R5cGVzIGZvciB0aW1lclNldCgpIGFuZAogICAgICAgdGltZXJQYXVzZSgpLgogICAKMjAwMS0xMS0xNiAwMjo1MiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gI2luY2x1ZGUgPGdycC5oPiBpZiB3ZSBoYXZlIGl0CiAgIAoyMDAxLTExLTE2IDAyOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHJldHVybiBhIHZhbHVlIGZyb20KICAgICAgIG5vdGlmeVRhYmxlX3VucmVnaXN0ZXJfbm90aWZpY2F0aW9ucygpIHRvIGF2b2lkIHdhcm5pbmdzCiAgIAoyMDAxLTExLTE2IDAyOjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbWFrZSBzaWduYXR1cmUgb2YgcXNvcnRfY29tcGFyZQogICAgICAgZnVuY3Rpb24gbWF0Y2ggdGhhdCBleHBlY3RlZCBieSBxc29ydCgzKSAtLSBhZGRzIGNvbnN0IHRvIGFyZ3MuCiAgIAoyMDAxLTExLTE2IDAyOjQwICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtYWtlIGRlZmluaXRpb24gb2YgcHJpbnRfdHJlZV9ub2RlCiAgICAgICBzdGF0aWMgdG8gbWF0Y2ggZm9yd2FyZCBkZWNsYXJhdGlvbi4KICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gc3RyaWN0ZXIgdGVzdCBmb3IgbnVsbCBPSURzCiAgIAoyMDAxLTExLTE1IDA5OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBmaXggYmFkLWxvb2tpbmcgZXhwcmVzc2lvbiB3aGljaCB3YXMgY2F1c2luZyBwcm9ibGVtcyBkZXNjcmliZWQgaW4KICAgICAgIGVtYWlsIHRpdGxlZCAiRGVmZWN0IHJlcG9ydCBvbiBVQ0QgU05NUCB0b29sa2l0IChjcmFzaCBpbgogICAgICAga2VybmVsX3N1bm9zNS5jKSIgc2VudCB0byBuZXQtc25tcC11c2VycyBvbiAyMDAxLTA3LTE3LgogICAKMjAwMS0xMS0xNSAwODozMyAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIGlmIHZhbHVlIGlzCiAgICAgICBjb25maWd1cmVkIHZpYSB0aGUgYXV0aHRyYXBlbmFibGUgdG9rZW4KICAgCjIwMDEtMTEtMTUgMDg6MjggIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAgIC0gbWFrZSB2YWx1ZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBwZXJzaXN0ZW50LiAgU2V0dGluZyB2aWEKICAgICAgIGEgcmVhZC1vbmx5IGNvbmZpZ3VyYXRpb24gZmlsZSBhbHNvIG1ha2VzIG9iamVjdCBub3RXcml0YWJsZSAoYXMKICAgICAgIHN5c0NvbnRhY3QuMCBldCBhbC4pLgogICAKMjAwMS0xMS0xNSAwNToxNiAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCwgVDEyMXByb3h5c2V0OgoKICAgICAtIHVzZSBwc3lzY29udGFjdCBub3Qgc3lzY29udGFjdCB0byBzZXQgaW5pdGlhbCB2YWx1ZSBvZiBzeXNDb250YWN0LjAKICAgICAgIG9iamVjdCBzaW5jZSB0aGUgbGF0dGVyIGFsc28gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkuCiAgIAoyMDAxLTExLTE1IDA1OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGZvcm1hdHRpbmcgb2YgdXNhZ2UgbWVzc2FnZQogICAKMjAwMS0xMS0xNCAxNzo1NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjMucHJlMSApCiAgIAoyMDAxLTExLTE0IDE3OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIG51bWVyaWMgY29tbWVudHMgaW4gYm90aCBoZXggYW5kIGRlY2ltYWwKICAgCjIwMDEtMTEtMTQgMTc6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaW5jbHVkZSBJTlRFR0VSMzIgaW4gSU5URUdFUiBjYXNlIGNoZWNraW5nLgogICAKMjAwMS0xMS0xNCAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHZlcnNpb24gdGFnIHBlcmwvU05NUC9TTk1QLnBtIHdpdGggdGhlIHVjZC1zbm1wIHZlcnNpb24gbnVtYmVyLgogICAKMjAwMS0xMS0xNCAxNjozMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtZW50aW9uIHNubXBjb25mLgogICAKMjAwMS0xMS0xNCAxNjowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDExOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIG1ha2UgYSBuZXcgY2FsbGJhY2sgZm9yIHByZS11cGRhdGUtY29uZmlnIGNvbmRpdGlvbnMuCiAgIC0gbWFrZSB0aGUgc25tcE5vdGlmeVRhYmxlIG1ha2UgdXNlIG9mIGl0IHRvIHJlbW92ZSAicmVhZE9ubHkiIGVudHJpZXMKICAgICB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIGdlbmVyYXRlZCB2aWEgY29uZmlndXJhdGlvbiBwYXJzaW5nLgogICAgIC0gbm90ZSB0aGF0IHRoaXMgZG9lc24ndCByZW1vdmUgdGhlIGdlbmVyYXRlZCB0YXJnZXQgZW50cmllcywgd2hpY2gKICAgICAgIGlzIG5vdCBpZGVhbCwgYnV0IGF0IGxlYXN0IGR1cGxpY2F0ZSB0cmFwcyBhcmVuJ3Qgc2VudC4KICAgCjIwMDEtMTEtMTMgMTE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIGxvb2sgZm9yIGVyaSBpbnRlcmZhY2VzLgogICAKMjAwMS0xMS0xMyAwNToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaCB0byBxdWlldGVuIHNvbWUgbm9pc3kgbG9nZ2luZwogICAKMjAwMS0xMS0xMiAyMzoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmM6CgogICBNUyBDKysgd2FybmluZyBmaXhlcyBmcm9tIEhhcnJpZSBIYXpld2lua2VsCiAgIAoyMDAxLTExLTExIDIxOjQ4ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmg6CgogICBSZXN0b3JlIHRoZSBvbGQgdmFsdWUgb2QgVElNRV9XSVRIX1NZU19USU1FCiAgIAoyMDAxLTExLTA5IDEyOjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBBZGRlZCBhIGdlcm1hbnkgYmFzZWQgbWlycm9yCiAgIAoyMDAxLTExLTA5IDExOjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBtZW50aW9uIG5ldyBtaXJyb3IKICAgCjIwMDEtMTEtMDkgMTE6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGxpZWQgZW5nbGlzaC90eXBvL2NoYW5nZXMgbm90ZWQgaW4gYnVnICM0NzExNzkKICAgCjIwMDEtMTEtMDkgMDk6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBidWcgNDc5MzY1OiB1c2Ugc3RybmNweSBpbiBzbm1wX2FkZF92YXIoKS4KICAgCjIwMDEtMTEtMDkgMDc6NTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgZml4IGJ1ZyAjNDc0NDg4OiBhZGQgZXh0ZXJuIEMgd3JhcHBlcnMKICAgCjIwMDEtMTEtMDkgMDc6NDcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IE9JRHMgdG8gaW5jbHVkZSBlbnRyeSBub2RlCiAgIAoyMDAxLTExLTA4IDA5OjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBVTklUIHNwZWNzIGZvciB0aGUgZmlsZVRhYmxlIHRvIHNheSBrQiBleHBsaWNpdGx5CiAgIAoyMDAxLTExLTA4IDA5OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gdGhhdCB0aGUgZmlsZVRhYmxlIGlzIGluIGtCLgogICAKMjAwMS0xMS0wNiAwODoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgdGttaWI6CgogICBhZGQgZml4ZXMgdG8gY2hlY2sgZm9yIHRoZSBTTk1QIGFuZCBUayBwZXJsIG1vZHVsZXMgYW5kIHByaW50IGEgYmV0dGVyCiAgIGVycm9yIG1lc3NhZ2UgaWYgdGhleSdyZSBub3QgYXZhaWxhYmxlIHRlbGxpbmcgdXNlcnMgaG93IHRvIGdldCB0aGVtLgogICAKMjAwMS0xMS0wNiAwODoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggYXNuX2J1aWxkX2JpdHN0cmluZyB0byBjaGVjayBmb3IgTlVMTCB2YWx1ZXMgKHBvaW50ZWQgb3V0IGJ5IFRhdGEgS2FseWFuKS4KICAgCjIwMDEtMTEtMDYgMDc6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgbGVuZ3RoIGNoZWNrIGZpeGVkIGZvciB3cmFwcGVkIGFkZGl0aW9uLiAgQnVnIHBvaW50ZWQgb3V0IGJ5IFRhdGEgS2FseWFuCiAgIAoyMDAxLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gbWFrZSBwYXRocyBtb3JlIGNvbmZpZ3VyYWJsZSBmcm9tIHdpdGhpbiBDIGNvZGUuCiAgIAoyMDAxLTEwLTMwIDA3OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBmaXggYnVnIHdoZXJlYnkgaW50ZXJmYWNlIGNvdW50ZXIgaXMgbm90IHJlc2V0LCBub3RlZCBieSAoYW1vbmdzdAogICAgICAgb3RoZXJzKSBWaWN0b3IgS2lyaGVuc2h0ZWluIGluIHBhdGNoICM0NzQwNjQuCiAgIAoyMDAxLTEwLTI2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBhZ2VudHgvY2xpZW50IC0+IGFnZW50eC9zdWJhZ2VudCBoZWxwIG1lc3NhZ2UKICAgCjIwMDEtMTAtMjYgMDM6MzQgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgdGhlIGZhY3QgdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uLjAgKGV0IGFsLikgdmlhIGEKICAgICAgIHN5c2xvY2F0aW9uIChvciBlcXVpdmFsZW50KSB0b2tlbiBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seSwKICAgICAgIHJldHVybmluZyBhIG5vdFdyaXRhYmxlIGVycm9yIHJlc3BvbnNlIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0bwogICAgICAgU0VUIGl0LgogICAKMjAwMS0xMC0yNCAxMDowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gZml4IHR5cG8gbm90ZWQgYnkgVGltIERpZXR6CiAgIAoyMDAxLTEwLTI0IDA5OjU0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayBqdXN0IGludHJvZHVjZWQKICAgCjIwMDEtMTAtMjQgMDM6MzMgIGpicG4KCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yNCAwMzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIHVzZSBwa2dpbmZvIGludGVyZmFjZSB0byBkZXRlcm1pbmUgdHlwZSBvZiBzb2Z0d2FyZSBwYWNrYWdlIG1vcmUKICAgICAgIHNwZWNpZmljYWxseSBpZiBwb3NzaWJsZS4gIFNsaWdodCB2YXJpYXRpb24gb24gcGF0Y2ggIzQ3MzY2OSwgc3VibWl0dGVkCiAgICAgICBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMS0xMC0xNyAwNzo1MiAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiB0aGUgTVJURyB0dXRvcmlhbCB3ZWIgcGFnZXMKICAgICAoYXMgc3VnZ2VzdGVkIGJ5IENocmlzdGlhbiBSb2JvdHRvbSBSZWlzKQogICAKMjAwMS0xMC0wOCAxMDo1NiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMi4xIC0+IFY0LjIuMgoJCjIwMDEtMTAtMDggMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgQXBwbHkgcGF0Y2hlcyBzdWdnZXN0ZWQgaW4gYnVnICM0NjkwODIgdG8gZml4IGlsbGVnYWwgcm93IGNyZWF0aW9ucwogICB3aGVuIHJvd3N0YXR1cyBpcyBzZXQgdG8gZGVzdHJveS4KICAgCjIwMDEtMTAtMDYgMDc6NDkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1pbm9yIHR3ZWFrcyB0byB0aGUgZG93bmxvYWQgbGlzdC4KICAgCjIwMDEtMTAtMDYgMDc6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBEYXZpZCBMYXdyZW5jZSdzIHRleHQgYWJvdXQgY29udHJpYnV0aW5nIHBhdGNoZXMuCiAgIAoyMDAxLTEwLTA1IDE4OjA5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmU2ICkKICAgCjIwMDEtMTAtMDUgMTg6MDEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgQ2hhbmdlIF9SRUVOVFJBTlQgZGVmaW5lIHRvIE5TX1JFRU5UUkFOVCB0byBub3QgY29uZmxpY3Qgd2l0aCBCU0QvT1MgNC4zLgogICAKMjAwMS0xMC0wNSAxNzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHMvaXJpeC5oOgoKICAgaXJpeCBzcGVjaWZpYyBmaXhlcyBtZW50aW9uZWQgaW4gYnVnICM0MDU0NTQKICAgCjIwMDEtMTAtMDUgMTc6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZml4ICM0NDA4MDggcG9zc2libHkgb3ZlcndyaXRpbmcgYSBvaWQgYnVmZmVyLgogICAKMjAwMS0xMC0wNSAxNjo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIGZpeCB1bnNpZ25lZDMyIHJldHVybiB2YXJpYWJsZSB1c2FnZQogICAKMjAwMS0xMC0wNSAxNjo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIG1vdmUgYXJwdGFiX2N1cnJlbnQgYW5kIGFycHRhYl9zaXplIGRlZmluaXRpb25zIHVwIG91dCBvZiBpZmRlZiBtZXNzLgogICAKMjAwMS0xMC0wNSAxNjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBkb24ndCBjcmVhdGUgcm93c3RhdHVzIGVudHJpZXMgd2l0aCAnZGVzdHJveScgYXMgaW5pdGlhbCB2YWx1ZS4KICAgCjIwMDEtMTAtMDUgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgZml4ZWQgVU5ETyBjbGF1c2VzLgogICAKMjAwMS0xMC0wNSAwODo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgZm9yIHBpY2t5IGNvbXBpbGVycy4KICAgCjIwMDEtMTAtMDUgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGJldHRlciBlcnJvciBkZXNjcmlwdGlvbiBmb3IgdHJhcHNlc3MKICAgCjIwMDEtMTAtMDUgMDg6NDkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEFkZGVkIG1pcnJvciBzaXRlcy4KICAgCjIwMDEtMTAtMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBTTVVYLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICBNSUIgcHJvYmxlbXMgcG9pbnRlZCBvdXQgYnkgTWFyZWsgTWFsb3dpZHppa2kKICAgCjIwMDEtMTAtMDQgMTc6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICBEb24ndCB3cml0ZSBhIG51bGwgcGFzdCB0aGUgZW5kIG9mIHRoZSBjb21tdW5pdHkgc3RyaW5nIGJ1ZmZlci4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRSwgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvZXh0ZW5kaW5nLAogICBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoIGZyb20gVC4gSi4gTWF0aGVyOiBEb2N1bWVudGF0aW9uIG9mIHRoZSBwYXNzX3BlcnNpc3Qgc25tcGQuY29uZiB0b2tlbi4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6CgogICBQYXRjaCBmcm9tIFQuIEouIE1hdGhlcjogQW4gZXhhbXBsZSAocGVybCkgcGFzc19wZXJzaXN0IHNjcmlwdC4KICAgCjIwMDEtMTAtMDQgMDI6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkaXNhYmxlIHN0ZGVyciBsb2dnaW5nIChpZiByZXF1ZXN0ZWQpIGJlZm9yZSBjYWxsaW5nIGluaXRfbWliX21vZHVsZXMoKS4KICAgICAgIFRoaXMgc2hvdWxkIGZpeCB0aGUgcHJvYmxlbSBub3RlZCBieSBOaWdlbCBNZXRoZXJpbmdoYW0gaW4gYnVnICM0MTg4NTcKICAgICAgIHdoZXJlYnkgdGhlIEFnZW50WCBtYXN0ZXIgbW9kdWxlIHByaW50cyBhIG1lc3NhZ2UgdG8gc3RkZXJyIHdoaWNoIGNhdXNlcwogICAgICAgYSBTSUdQSVBFIHdoZW4gdGhlIGFnZW50IGlzIHN0YXJ0ZWQgYXMgYSBkYWVtb24uCiAgIAogICAgICAgQWxzbyBub3RlZCB3aXRoIGV4dGVuc2l2ZSBhbmFseXNpcyBieSBUZWQgUnVsZSBpbiBidWcgIzQ2NzU1MS4KICAgCjIwMDEtMTAtMDMgMTE6MjIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTUgKQogICAKMjAwMS0xMC0wMyAxMToxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvdG9vbHMuYzoKCiAgIHByb3BlciBjb25zdCBjYXN0aW5nIGluIGZyb250IG9mIE1hcmtrdSdzIGNhc3RpbmcgcGF0Y2guCiAgIAoyMDAxLTEwLTAzIDExOjEwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIFBhdGNoOiBwcm9wZXIgY2FzdHMgZm9yIHBpY2t5IGNvbXBpbGVycyBmcm9tIE1hcmtrdSBMYXVra2FuZW4uCiAgIAoyMDAxLTEwLTAzIDA5OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb24ndCByYnVpbGQgYmV5b25kIHRoZSBlbmQgb2YgYSBidWZmZXIgKG5lZWRlZCBidWZmZXIgKyBsZW5ndGggIi0gMSIpLgogICAKMjAwMS0xMC0wMyAwNTozOCAgamJwbgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAgIC0gY2hhbmdlIGV4cHJlc3Npb24gYXQgbC4gNDE1IGZyb206CiAgIAogICAgICAgICAgICprY3N0cmluZysrID0gKmtjc3RyaW5nIF4gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGhhcyB1bmRlZmluZWQgYmVoYXZpb3VyIHRvOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyBePSAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaXMgb2theSAoc2luY2UgKmtjc3RyaW5nIGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UpLiAgU2ltaWxhcmx5CiAgICAgICBhdCBsLiA1MzAuICBUaGUgcHJldmlvdXMgY29uc3RydWN0cyBjYXVzZSB3YXJuaW5ncyB3aXRoIEdDQzMgYW5kCiAgICAgICBzb21lIG90aGVyIGNvbXBpbGVycy4gIFRoYW5rcyB0byBOaWVsIE1hcmt3aWNrIHdobyBub3RlZCB0aGlzIGluCiAgICAgICBidWcgIzQ2NTk2OS4KICAgCjIwMDEtMTAtMDIgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENoYW5nZSBvaWQgbGVuZ3RocyB0byBzaXplX3QgZnJvbSBpbnQgKHNlZ2ZhdWx0cyBvbiBhbiBhbHBoYS9saW51eCkuCiAgIAoyMDAxLTEwLTAyIDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIEFkZCBwcm90b3R5cGUgZm9yIGdldFRvdGFsU3dhcCgpLgogICAKMjAwMS0xMC0wMiAxNzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIHJldHVybiBOT1RfV1JJVEFCTEUgaW5zdGVhZCBvZiBSRUFET05MWSBhcyBwb2ludGVkIG91dCBieQogICBhcmFqZXNoQGluZGlhLmFkdmVudG5ldC5jb20uCiAgIAoyMDAxLTEwLTAyIDE3OjAzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIFBhdGNoIGZyb20gTWFyYyBNb2VsbGVyIHRvIGRlZmluZSBzbnByaW50ZiBhcyBfc25wcmludGYKICAgCjIwMDEtMTAtMDIgMTc6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFBhdGNoIGZyb20gTWFyYyBNb2VsbGVyIHRvIGNoZWNrIGZvciBIQVZFX0xQU1RBVCBiZWZvcmUgY2FsbGluZyBpdC4KICAgCjIwMDEtMTAtMDIgMTc6MDAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBSb24uCiAgIAoyMDAxLTEwLTAyIDE3OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZ2V0X3VwdGltZSgpIGltcGxlbWVudGF0aW9uIGZvciB3aW5kb3dzIGZyb20gUm9uIE1ldmlzc2VuLgogICAKMjAwMS0xMC0wMSAxNzozOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlNCApCiAgIAoyMDAxLTEwLTAxIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIG1ha2VmaWxlaW5kZXBlbmQKICAgCjIwMDEtMTAtMDEgMTc6MzcgIGhhcmRha2VyCgogICAqIG1ha2VmaWxlaW5kZXBlbmQucGw6CgogICB0cmFuc2xhdGUgLm8gLT4gLmxvIGJ5IGhhbmQuCiAgIAoyMDAxLTEwLTAxIDE3OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5jLCBocl9wcmludC5jOgoKICAgQXBwbGllZCBwYXRjaCAjNDY1NTQ1IHRvIGZpeCBkZWxheXMgaW4gaG9zdCByZXNvdXJjZXMgbWliIHdoZW4gbG9va2luZwogICBhdCBkZXZpY2VzIGFuZCBwcmludGVycy4KICAgCjIwMDEtMTAtMDEgMTY6NDUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIE5ldyBzdHVmZiBpbiA0LjIuMgogICAKMjAwMS0xMC0wMSAxNjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMToKCiAgIG1ha2Ugc25tcHdhbGsgZGVmYXVsdCB0byBkZXRlY3RpbmcgaWxsZWdhbCBPSUQgaW5jcmVhc2VzLiAgLUNjIHR1cm5zCiAgIGl0IG9mZiBpbnN0ZWFkIG9mIG9uLgogICAKMjAwMS0xMC0wMSAxMDozNiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGVkaXRpbmcgdHdlYWtzIGJ5IEpvaG4gdG8gY291bnQgdGhpbmdzIHByb3Blcmx5LiAgV2VzIGxvb3NlcyB0aGUKICAgYWJpbGl0eSB0byBjb3VudCBiZXlvbmQgdGhlIG51bWJlciAyLgogICAKMjAwMS0xMC0wMSAxMDoyNiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGRpdHRvLgogICAKMjAwMS0xMC0wMSAxMDoyMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIFZhcmlvdXMgY29weXJpZ2h0IHVwZGF0ZXMuCiAgIAoyMDAxLTEwLTAxIDAyOjUyICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSBhZGQgI2luY2x1ZGUgInNubXBfbG9nZ2luZy5oIiB0byBhdm9pZCBjb21waWxhdGlvbiBwcm9ibGVtcyBvbgogICAgICAgc29tZSBwbGF0Zm9ybXMgaW50cm9kdWNlZCBieSBuZXcgZXJyb3IgbWVzc2FnZXMuIFNlZToKICAgICAgIDxVUkw6aHR0cDovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4LnBocD9mdW5jPWRldGFpbCZhaWQ9NDY1ODA3Jmdyb3VwX2lkPTEyNjk0JmF0aWQ9MTEyNjk0PgogICAKMjAwMS0wOS0yOSAwNjowNiAgbmJhCgogICAqIHNubXBsaWIvbWliLmg6CgogICBBZGQgYSBtaXNzaW5nIHByb3RvdHlwZSBmb3Igc25tcF9yZWFsbG9jX2J5X3R5cGUKICAgCjIwMDEtMDktMjkgMDY6MDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIEZpeCBhIGJhZCAjaWZkZWYgcGFyYW50aGVzZXMKICAgCjIwMDEtMDktMjYgMTA6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgc211eCBpcyAqbm90KiBhIHByb3BlciBkZWxlZ2F0aW9uIHN1YmFnZW50LgogICAKMjAwMS0wOS0yNSAxMjo0NiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlMyApCiAgIAoyMDAxLTA5LTI1IDExOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc2NhcGkuaDoKCiAgIEJldHRlciBlcnJvciBtZXNzYWdlcyB3aGVuIGVuY3J5cHRpb24gc3VwcG9ydCBpc24ndCBhdmFpbGFibGUuCiAgIAoyMDAxLTA5LTI1IDA3OjU5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhbm90aGVyIHNwYWNlIHRoYXQgd291bGQgbWFrZSB0aGUgdGVzdCBzdWl0ZSBmYWlsCiAgIAoyMDAxLTA5LTI1IDA3OjUzICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhIG1pc3Npbmcgc3BhY2UKICAgCjIwMDEtMDktMjUgMDU6NDMgIGpicG4KCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaDoKCiAgICAgLSBpbmNvcnBvcmF0ZSByZXdyaXR0ZW4gb3V0cHV0IGZ1bmN0aW9ucyBmcm9tIG1haW4gYnJhbmNoIHRvIGF2b2lkCiAgICAgICBmaXhlZCBsZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yNSAwNTo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gdXNlIHJlbG9jYXRpbmcgYnVmZmVyIHZlcnNpb24gb2Ygc3ByaW50IGZ1bmN0aW9ucwogICAKMjAwMS0wOS0yNSAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCBwYXJzZS5oOgoKICAgICAtIGFkZCByZWxvY2F0aW5nIGJ1ZmZlciBjb2RlIGZyb20gbWFpbiBicmFuY2gKICAgCjIwMDEtMDktMjUgMDU6MzkgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gYWRkIHNubXBfcmVhbGxvYygpIGFuZCBzbm1wX3N0cmNhdCBmdW5jdGlvbnMgd2hpY2ggdGhlIHJlbG9jYXRpbmcKICAgICAgIGJ1ZmZlciBjb2RlIHVzZXMKICAgCjIwMDEtMDktMjEgMTc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoIGZyb20gR2xlbm4gTWFuc2ZpZWxkIHRvIGZpeCBpbnRlcmZhY2UgY291bnRpbmcgb24gaW50ZXJmYWNlcwogICB3aXRob3V0IGlwIGFkZHJlc3Nlcy4KICAgCjIwMDEtMDktMjAgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGNoZWNrIHNraXBfd2hpdGUoKSByZXR1cm4gKGFzIG1lbnRpb25lZCBpbiBwYXRjaCAjNDYyMjAxKS4KICAgCjIwMDEtMDktMjAgMTE6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXhlZCBhIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdyBidWcgaW4gc3ByaW50X2FzY2lpc3RyaW5nIGFzIHBvaW50ZWQKICAgb3V0IGJ5IGJ1ZyAjNDYzMjI2LgogICAKMjAwMS0wOS0yMCAwOTo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEb24ndCB3YXJuIGFib3V0IG1pc3Npbmcgb3BlbnNzbCB1bmxlc3MgZXhwbGljaXRseSBhc2tlZCAoYW5kIHRoZW4gZXJyb3IpLgogICAKMjAwMS0wOS0yMCAwOToxMiAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gbW92ZSBoZWFkZXJzIGFyb3VuZCB0byBmaXggY29tcGlsYXRpb24gb24gU29sYXJpcyAyLjc7IHN5cy9zdHJlYW0uaAogICAgICAgbmVlZHMgdG8gYmUgaW5jbHVkZWQgYmVmb3JlIHN5cy9zb2NrZXR2YXIuaCBmb3IgdGhpcyBwbGF0Zm9ybS4KICAgCjIwMDEtMDktMjAgMDk6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICJzeXN0ZW0uaCIgd2hpY2ggdXNlcyB0aGUgdHlwZSBpbl9hZGRyX3QgdGhlcmVieQogICAgICAgY2F1c2luZyBwcm9ibGVtcywgYW5kIHNlZW1zIHRvIGJlIHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDEtMDktMjAgMDY6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIE1ha2Ugc3VyZSBIYXJyaWUncyBuYW1lIGlzIGluIHRoZSBwYXRjaGVzIFJFQURNRSBhcyB3ZWxsIGFzIHRoZSBtYWlubGluZS4KICAgCjIwMDEtMDktMjAgMDY6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jLAogICBzbm1wX2NsaWVudC5jLCBzbm1wX2RlYnVnLmMsIHNubXB1c20uYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBwcm9wZXIgcHJvdG90eXBlcyBmb3Igc29tZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA5LTE5IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmUyICkKICAgCjIwMDEtMDktMTkgMTc6MDEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTEgKQogICAKMjAwMS0wOS0xOSAxNjo1OSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIgKQogICAKMjAwMS0wOS0xOCAxNzoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVW5kbyBOaWVscycgY2hhbmdlIHRvIGFsbG93IGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIG92ZXJyaWRlIC5jb25mCiAgIGZpbGVzLiAgUmlnaHQgZ29hbCwgd3JvbmcgYnJhbmNoIHRvIGRvIGl0IGluIGFzIGl0IGJyb2tlIFNOTVB2MyBhbW9uZwogICBvdGhlciB0aGluZ3MuICBUaGUgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBpcyByYXRoZXIgc2Vuc2l0aXZlIHRvCiAgIG9yZGVyaW5nLgogICAKMjAwMS0wOS0xOCAxNTowOCAgbmJhCgogICAqIHMvZGFyd2luLmg6CgogICBGaXggYW4gb3ZlcnNpZ2h0IGluIHRoZSBEYXJ3aW4gcGF0Y2gKICAgCjIwMDEtMDktMTggMTU6MDggIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBhbiBvdmVyc2lnaHQgaW4gdGhlIERhcndpbiBwYXRjaGVzCiAgIAoyMDAxLTA5LTE3IDA5OjAwICBuYmEKCiAgICogcy9kYXJ3aW4uaDoKCiAgIFRoZSBkYXJ3aW4gc3lzdGVtIGZpbGUsIHdoaWNoIEkgZm9yZ290IHdoZW4gY29tbWl0dGluZyB0aGUgcmVzdCBvZgogICB0aGUgZGFyd2luIHBhdGNoLgogICAKMjAwMS0wOS0xNyAwNzowNyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICBhdXRvaGVhZGVyIHJ1bgogICAKMjAwMS0wOS0xNyAwNDoxMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggbmV3bGluZXMgaW5zaWRlIHVzYWdlIHN0cmluZy4KICAgCjIwMDEtMDktMTYgMTQ6NTYgIG5iYQoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgTW92ZSB0aGUgc211eF9saXN0ZW5fc2QgdmFyaWFibGUgdG8gc211eC5jLiBUaGlzIHdheSBpdCB3aWxsIGJlIGluIHRoZQogICBsaWJyYXJ5IHNvIHRoZSBsaW5rZXIgd29udCBiZSB1cHNldCB3aGVuIHlvdSBsaW5rIHdpdGggdGhlIGFnZW50IGxpYnJhcnkuCiAgIAoyMDAxLTA5LTE2IDE0OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgcy9vcGVuYnNkLmg6CgogICBQYXRjaGVzIGZvciBPcGVuQlNEIDIuOQogICAKMjAwMS0wOS0xNiAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZGlza2lvIHN1cHBvcnQgZm9yIEZyZWVCU0Q0LiBUaGFua3MgdG8gWWltaW4gR2UKICAgCjIwMDEtMDktMTYgMTQ6MTYgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIFBhdGNoZXMgdG8gc3VwcG9ydCBEYXJ3aW4gKE1hYyBPUy9YKQogICBUaGFua3MgdG8gVGV4IENsYXl0b24gPHRleEBkYXJ0d2FyZS5jb20+CiAgIAoyMDAxLTA5LTE2IDE0OjAzICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJpbmNsLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwQWRkci5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEhlYWRlciByZWFycmFuZ2VtZW50cyB0byBtYWtlIEJTRCdzIGhhcHB5IGFmdGVyIHRoZSBXSU4zMiBwYXRjaAogICAKMjAwMS0wOS0xNSAwNjowOCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBhcmd1bWVudCB0byBzbnByaW50ZiAoZXJycHJlIGNvcnJlc3BvbmRpbmcgdG8gJXMpIC0tCiAgICAgICBpdCB3YXMgbWlzc2luZyBmcm9tIHRoZSBwYXRjaCAoIzQ1MjAyNykKICAgCjIwMDEtMDktMTQgMTc6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSBkZWJ1Z2dpbmcgY29tcGlsYXRpb24gZml4ZXMKICAgCjIwMDEtMDktMTQgMTc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbWFueSBuZWVkZWQgY2hhbmdlcyBmcm9tIG1haW5saW5lIG1lcmdlZCBpbnRvIHBhdGNoZXMgYnJhbmNoCiAgIAoyMDAxLTA5LTE0IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIFBhdGNoICM0NTIwMjcgZnJvbSBNYXJjdXMgTWVpc3NuZXI6CiAgICAgc2VjdXJpdHkgZml4IHRvIG1ha2Ugc3VyZSB0aGF0IGxvbmcgYXNuIGxlbmd0aHMgY2FuJ3QgYmUgdXNlZCBhbmQKICAgICBhcmVuJ3QgaW1wcm9wZXJseSBjYXNlZCB0byBhIHNpZ25lZCB2YWx1ZS4KICAgCjIwMDEtMDktMTQgMTQ6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggIzQzMjk4MiBmcm9tIEhvbGxpczogZml4IC0td2l0aC1saWJ3cmFwIHdpdGhvdXQgYSBwYXRoIG9wdGlvbgogICAKMjAwMS0wOS0xNCAxMzo1OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgU29sYXJpcyBzdXBwb3J0IGZvciB1ZHBUYWJsZS4KICAgVGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciA8anNmQEludGVyRmFjZS1BRy5jb20+CiAgIAoyMDAxLTA5LTE0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBmcm9tIHBhdGNoICM0MjM0NjY6IGFkZCBhYmlsaXR5IHRvIHVzZSB0aGlzIGZpbGUgd2l0aGluIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMS0wOS0xNCAwOTo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIEFkZGVkIGNvbmZpZy5oIGZpbGUgZm9yIGJvcmxhbmQgY29tcGlsZXJzICh3aGljaCBkaWZmZXJzIHNsaWdodGx5KS4KICAgICBGcm9tIHBhdGNoICM0MjM0NjYKICAgCjIwMDEtMDktMTQgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIGlwQWRkci5jLCB0Y3AuYywgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmMsIHZhcl9yb3V0ZS5jOgoKICAgTWliLTIgc3VwcG9ydCBmb3IgV2luZG93cyBzeXN0ZW1zLgogICAqTWFueSogdGhhbmtzIHRvIExhdGhhIFMsIGZvciBmaWxsaW5nIHRoaXMgbG9uZy1hd2FpdGVkIG5lZWQuCiAgIAoyMDAxLTA5LTE0IDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgaXBBZGRyLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLAogICB1ZHAuYywgdWRwVGFibGUuYzoKCiAgIE1vdmUgcGFja2FnZS1wcm92aWRlZCBoZWFkZXIgaW5jbHVkZXMgKCdtaWJpbmNsJyBhbmQgJ3V0aWxfZnVuY3MnKQogICB0byBhZnRlciB0aGUgc3lzdGVtIGluY2x1ZGVzLiAgVGhpcyBzaG91bGRuJ3QgYWZmZWN0IG1vc3Qgc3lzdGVtcywKICAgYnV0IGlzIG5lY2Vzc2FyeSBmb3IgdGhlIFdpbmRvd3MgcG9ydC4KICAgCjIwMDEtMDktMTQgMDg6MjggIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFByb3BvZ2F0ZSB0ZXN0IGZvciA8bmV0aW5ldC9pcF9pY21wLmg+IHRocm91Z2ggdG8gdGhlIGJpdCB0aGF0IGRvZXMgdGhlIHdvcmsuCiAgIAogICAgIChPdXIgaWxsdXN0cmlvdXMgbGVhZGVyIGNsZWFybHkgaGFzIG5vIGNvbmZpZGVuY2UgaW4gdGhlIGNvbXBldGFuY2UKICAgICAgb2YgaGlzIG1pbmlvbnMuICBJJ2QgdGFrZSB1bWJyYWdlLCBpZiBoZSB3YXNuJ3QgcmlnaHQhKQogICAKMjAwMS0wOS0xNCAwODowMSAgZHRzMTIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCB0ZXN0IGZvciA8bmV0aW5ldC9pcF9pY21wLmg+CiAgIAoyMDAxLTA5LTE0IDA3OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBpcEFkZHIuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jLAogICB2YXJfcm91dGUuYzoKCiAgIFdyYXAgdmFyaW91cyAjaW5jbHVkZXMgd2l0aCBhcHByb3ByaWF0ZSAjaWYgSEFWRV9YWFhfSCBkZWNsYXJhdGlvbnMKICAgKHdoZXJlIHRoaXMgaGFzIG5vdCBhbHJlYWR5IGJlZW4gZG9uZSkuCiAgIAoyMDAxLTA5LTExIDE0OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYywgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5jLAogICBtZW1vcnlfZnJlZWJzZDIuaCwgbWVtb3J5X25ldGJzZDEuYywgbWVtb3J5X25ldGJzZDEuaCwKICAgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oLCB2bXN0YXQuYywgdm1zdGF0LmgsCiAgIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCwgdm1zdGF0X2ZyZWVic2QyLmMsCiAgIHZtc3RhdF9uZXRic2QxLmMsIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgTWFrZSBzdXJlIHRoYXQgdGhlIE9JRCBkZWZpbmVzIGFyZSBvbmx5IGluIG9uZSBwbGFjZS4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCiAgIAoyMDAxLTA5LTExIDE0OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jOgoKICAgSGVhZGVyIHJlb3JkZXJpbmcgdG8gYWxsb3cgZG1hbGxvYyB0byB3b3JrLgogICAKMjAwMS0wOS0xMSAxNDozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBGaXggYSBtaXNwbGFjZXMgOyBpbiBhIGxvb3AuCiAgIFRoYW5rcyB0byBNYWxhIFJhbWFrcmlzaG5hbiA8bWFsYUByb3V0ZXNjaWVuY2UuY29tPgogICBhbmQgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIDxqc2ZASW50ZXJGYWNlLUFHLmNvbT4KICAgCjIwMDEtMDktMTAgMTE6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNoYW5nZSBpbnRlcmZhY2UgY291bnRpbmcgdG8gaGFwcGVuIG1vcmUgZnJlcXVlbnRseSB0byBkZXRlY3QgbmV3IGNhcmRzLgogICAgIC0gc2VlIGJ1ZyAjNDU3MjkwCiAgIAoyMDAxLTA5LTEwIDExOjExICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLVAgdG8gdXNhZ2UgaXQgcHJpbnRzIHRvIHN0ZGVyciAoYnVnICM0NTkzNzIpCiAgIAoyMDAxLTA5LTEwIDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBmaXggd2hpdGVzcGFjZSBwYXJzaW5nIGJ1ZyByZXBvcnRlZCBpdCBidWcgIzQ1NzI2Ny4KICAgCjIwMDEtMDktMTAgMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgYXBwbHkgZnJlZWJzZCBzcGVjaWZpYyBwYXRjaCBmcm9tIGJ1ZyM0NTU5MjQgdG8gZml4IHZtc3RhdCdzIHN3YXAgcmVwb3J0LgogICAKMjAwMS0wOS0xMCAxMDoxMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBVc2UgYSBtb3JlIHBvcnRhYmxlIERCUFJUIG1hY3JvLgogICAKMjAwMS0wOS0xMCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBSZW1vdmUgcmVkdW5kYW50IFJvd1N0YXR1cyB2YWx1ZSBjaGVja3MgbWVudGlvbmVkIGluIGJ1ZyM0NDk1MDIKICAgCjIwMDEtMDktMDQgMDc6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBicmVhazsgYWZ0ZXIgcHJvY2Vzc2luZyAtUCBvcHRpb24sIG5vdGVkIGJ5IEJvdG9uZAogICAgICAgVGFybmF5IChzZWUgcGF0Y2ggIzQ1ODMyNykKICAgCjIwMDEtMDgtMzEgMTM6MTkgIG5iYQoKICAgKiBtaWJzLzogRElTTUFOLVNDUklQVC1NSUIudHh0LCBNYWtlZmlsZS5taWIsIFJFQURNRS5taWJzLCByZmNsaXN0LAogICBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gb2YgRElTTUFOLVNDUklQVC1NSUIsIGFuZCBhIGZldyBjb3NldGljIGNoYW5nZXMKICAgdG8gc21pc3RyaXAgZXQgYWwuCiAgIAoyMDAxLTA4LTMxIDEzOjE4ICBuYmEKCiAgICogbHRjb25maWc6CgogICBVcGRhdGUgdG8gbGlidG9vbCAxLjQuIFRoaXMgZW5zdXJlcyB0aGF0IG1ha2UgaW5zdGFsbCB3aWxsIHdvcmsgZm9yIE5ldEJTRAogICAKMjAwMS0wOC0zMSAxMzoxNyAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgVXBkYXRlIHRvIGxpYnRvb2wgMS40LiBUaGlzIHdpbCBlbnN1cmUgdGhhdCBtYWtlIGluc3RhbGwgd29yayBvbiBOZXRCU0QKICAgCjIwMDEtMDgtMjggMTU6MDQgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IGEgYmFkIGZpeAogICAKMjAwMS0wOC0yOCAxNTowMyAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuaDoKCiAgIEMrKyBicmFja2V0IHRoZSBpbnN0YWxsZWQgc2dlbnQgaGVhZGVycwogICAKMjAwMS0wOC0yOCAwNzozNSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggYSBtYWxmb3JtZWQgbXVsdGktbGluZSBzdHJpbmcKICAgCjIwMDEtMDgtMjggMDM6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlIDx0Y3BkLmg+IGlmIHVzaW5nIGxpYndyYXAsIG5vdGVkIGJ5IE5hdGhhbgogICAgICAgTmV1bGluZ2VyIChwYXRjaCAjNDUzODMxKS4KICAgCjIwMDEtMDgtMjggMDI6MzggIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhdm9pZCB1c2Ugb2YgcHJlLXByb2Nlc3NvciBkaXJlY3RpdmVzIGluc2lkZSBwcmludGYoKSBjYWxsLCB3aGljaAogICAgICAgaXMgYSBtYWNybyBpbiBnbGliYywgbWFraW5nIHRoaXMgYW4gdW5kZWZpbmVkIGJlaGF2aW91cgogICAgICAgY29uc3RydWN0ICh3aGljaCBHQ0MgMy4wIHJlZnVzZXMgdG8gY29tcGlsZSkuICBTZWUgYnVnICM0NTU4MDQgZm9yCiAgICAgICBmdXJ0aGVyIGRldGFpbHMuCiAgIAoyMDAxLTA4LTI3IDIyOjE1ICBuYmEKCiAgICogbWFuLzogc25tcF9jb25maWcuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgRml4IHNvbWUgcGxhY2VzIHdoZXJlIGFjdHVhbCBsaW5lcyBzdGFydGVkIHdpdGggYSBwZXJpb2QuCiAgIAoyMDAxLTA4LTE3IDE1OjEyICBuYmEKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgRml4IG1pc3NwZWxsZWQgbWFuIHBhZ2UgbmFtZSAoc25tcGVycm9yID0+IHNubXBfcGVycm9yKQogICAKMjAwMS0wOC0xNyAxNTowOSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoOgoKICAgSUFOQSBoYXMgbW92ZWQgdGhlaXIgbWlicyBpbnRvIGFuIGlhbmEubWliIGRpcmVjdG9yeS4KICAgRml4IFJGQyBudW1iZXIgZm9yIFJNT04tTUlCLgogICBNYWtlICJtYWtlIGFsbG1haWJzIiBleHRyYWN0IG1pYnMgdG8gYW5vdGhlciBkaXJlY3RvcnkuCiAgIAoyMDAxLTA4LTE3IDE1OjAzICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgWWV0IGFub3RoZXIgdXBkYXRlIGZyb20gZnRwLmdudS5vcmcKICAgCjIwMDEtMDgtMTcgMTQ6MDkgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICBBZGQgc29tZSBuZWVkZWQgZXJyb3IgY2hlY2tpbmcgdG8gdGhlIHVpZC9naWQgcGFyc2luZyBjb2RlLgogICBBbGxvdyBzeW1ib2xpYyB1aWQvZ2lkIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDgtMTcgMTQ6MDcgIG5iYQoKICAgKiBGQVE6CgogICBBZGQgYSBtaXNzaW5nIGFyZ3VtZW50IHRvIHRoZSBzbm1wdHJhcCBleGFtcGxlcy4KICAgCjIwMDEtMDgtMDcgMTQ6NTUgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9taWIuYzoKCiAgIFRpbWV0aWNrcyBhcmUgdW5zaWdlZCEgVGhhbmtzIHRvIEpvc2ggV2lsbWVzIDxqb3NoLXVjZEBoaXRjaGhpa2VyLm9yZz4KICAgCjIwMDEtMDgtMDcgMTQ6NDIgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDaGFuZ2VzIHRvIGFsbG93IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gb3ZlcnJpZGUgc25tcC5jb25mIHNldHRpbmdzLgogICAKMjAwMS0wOC0wNyAxNDowMiAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCB2ZXJzaW9uIG9mIElBTkFpZlR5cGUtTUlCLgogICBBZGQgcmZjIDMxNDQgSU5URVJGQUNFVE9QTi1NSUIgdG8gcmZjbGlzdC4KICAgCjIwMDEtMDgtMDcgMTQ6MDAgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICBVcGRhdGUgdG8gY3VycmVudCB2ZXJzaW9uIGZyb20gZnRwLmdudS5vcmcKICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9lcnJvci4zLAogICBtYW4vc25tcF9wZXJyb3IuMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgbWFuL3NubXBjbWQuMSwKICAgbWFuL3NubXB0cmFwZC44OgoKICAgQSBidW5jaCBvZiBtaW5vciBmaXhlcyB0byB1c2FnZSBtZXNzYWdlcyBhbmQgbWFudWFsIHBhZ2VzLgogICAKMjAwMS0wOC0wNyAxMzo1NiAgbmJhCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIEZpeCBwYXJzaW5nIG9mIG9pZCB2YWx1ZXMgZm9yIHNldAogICAKMjAwMS0wOC0wNyAwNzowOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBmb3IgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBsb2dmaWxlIGFyZ3VtZW50IGhhbmRsaW5nLAogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIChidWcgIzQ0ODI0MykuICBBbHNvIHVzZSBhIGxhcmdlIGVub3VnaCBidWZmZXIKICAgICAgIHRvIGhhbmRsZSBmaWxlbmFtZXMgb2YgbGVuZ3RoIFBBVEhfTUFYIChpZiBwb3NzaWJsZSkuCiAgIAoyMDAxLTA3LTI2IDAxOjQwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGluaXRpYWxpc2UgYnVmZmVycyB0byB6ZXJvIGluIGhhbmRsZV93cmFwX2ZtdCwgdG8gYXZvaWQgZ2FyYmFnZSBpbgogICAgICAgZGlzcGxheSBvZiBzZWN1cml0eSBwYXJhbWV0ZXJzLCBhcyBub3RlZCBieSBXaWxsaWFtIEZyYXVlbmhvZmVyCiAgICAgICAoYnVnICM0MzcyMzEpLgogICAKMjAwMS0wNy0yMyAxMDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgY2FyZWZ1bGx5IGNvbnN0cnVjdCB0bXAgZmlsZSBuYW1lcy4KICAgCjIwMDEtMDctMjMgMTA6NTMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBzZXRncm91cHMgd2hlbiBhdmFpbGFibGUuCiAgIAoyMDAxLTA3LTExIDA3OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaDoKCiAgIGFkZCBORVRXT1JLLVNFUlZJQ0VTLU1JQiB0byBtaWIgcmVxdWlyZSBsaXN0CiAgIAoyMDAxLTA3LTA5IDExOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBmaXggdHJhcHNlc3MgcGFyc2luZyBzbyBhcyB0bzoKICAgICAtIHNldCB0aGUgZGVmYXVsdCBwb3J0IHRvIDE2MgogICAgIC0gZG9uJ3QgZnJlZSBtZW1vcnkgcGFzc2VkIHRvIHNubXBfcGFyc2VfYXJncygpIHNpbmNlCiAgICAgICBzbm1wX3BhcnNlX2FyZ3MgaXMgYnJva2VuIGFuZCBuZWVkcyB0byBjb3B5IG1lbW9yeSByYXRoZXIgdGhhbgogICAgICAganVzdCBtYWtlIHVzZSBvZiBpdC4KICAgCjIwMDEtMDYtMjcgMTU6NDggIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFNpbXBsZSBmaXggdG8gdHJhcHNlc3MgYXJndW1lbnQgbGlzdAogICAKMjAwMS0wNi0yNSAwODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN1cHBvcnQgJ21pYnMgIiInLgogICAKMjAwMS0wNi0yMiAxMzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQWxsb3cgaW50ZXJmYWNlIHNubXBkLmNvbmYgdG9rZW5zIHRvIGNvbXBsZXRlbHkgb3ZlcnJpZGUgc3lzdGVtCiAgIHZhbHVlcy4gIFtidWcjNDI2OTc1XQogICAKMjAwMS0wNi0yMiAxMTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGRlZmluZSB1bG9uZ19yZXQKICAgCjIwMDEtMDYtMjIgMDE6NDQgIGR0czEyCgogICAqIEZBUSwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBJbmNsdWRlIGEgd2FybmluZyBvZiB0aGUgZXhwZXJpbWVudGFsIG5hdHVyZSBvZiBBZ2VudFggaW4gdGhlIG1hbiBwYWdlLAogICBhbmQgdXBkYXRlIHRoZSBGQVEgdG8gcmVmbGVjdCB0aGUgZnVsbGVyIGludGVncmF0aW9uIG9mIHRoaXMgc3VwcG9ydC4KICAgCjIwMDEtMDYtMjEgMTU6MjIgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgRWxpbWluYXRlIGxvbmcgbG9uZyB2YXJpYWJsZXMKICAgCjIwMDEtMDYtMjEgMTU6MjIgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgV2FybiBhYm91dCBkZXByZWNhdGVkIC1iIC13IGFuZCAtaSBvcHRpb25zLgogICAKMjAwMS0wNi0yMSAxNToxNSAgbmJhCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wc2V0LjEsIHNubXB3YWxrLjE6CgogICBVcGRhdGUgdGltZSBzdGFtcHMKICAgCjIwMDEtMDYtMjEgMTU6MDkgIG5iYQoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgQWRkIC1tIGFuZCAtTSBvcHRpb25zIHRvIGhlYWRlci4gVXBkYXRlIFNFRSBBTFNPIHRvIHJlZmVyZW5jZSBzbm1wY21kCiAgIGFuZCBSRkMgMjU3OC04MCBpbiBwbGFjZSBvZiAxMTU1CiAgIAoyMDAxLTA2LTIxIDE1OjAxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IHBhcnNpbmcgb2YgeHggLi4uOjo9IHsgeXkgfQogICAKMjAwMS0wNi0yMSAxMDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgdHlwb3MgKElPRCAtPiBPSUQpCiAgIAoyMDAxLTA2LTIxIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gbWVudGlvbiAibWFzdGVyIGFnZW50eCIKICAgLSBmaXggY29uZmlnIGZpbGUgcmUtcmVhZGluZyBvaWQuCiAgIAoyMDAxLTA2LTIxIDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBtYWtlIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uIGFjY2VwdCAiIiBzdHJpbmdzLgogICAKMjAwMS0wNi0yMSAwOTozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIEFwcGxpZWQgYXJnIGRvY3VtZW50YXRpb24gcGF0Y2ggZnJvbSBEYXZpZCBFaXNuZXIKICAgCjIwMDEtMDYtMTQgMjM6MTkgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICBEb2N1bWVudCAtbiBvcHRpb24KICAgCjIwMDEtMDYtMTIgMTU6MTQgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFByb3Blcmx5IGRldGVjdCBhbmQgZGlhZ25vc2UgYmFkIGJvb2xlYW4gYW5kIGludGVnZXIgY29uZmlndXJhdGlvbiB2YWx1ZXMKICAgCjIwMDEtMDYtMTIgMTU6MTIgIG5iYQoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgIHNubXBzdGF0dXMuYywgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wdmFjbS5jLCBzbm1wd2Fsay5jOgoKICAgUHJvcGVybHkgZGlhZ25vc2UgYmFkIC1DIG9wdGlvbnMKICAgCjIwMDEtMDYtMTIgMDc6MjQgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCAndW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcicgdG8gaGFuZGxlIHRhZ3Mgb3RoZXIKICAgdGhhbiB0aGUgZmlyc3QgaW4gdGhlIGxpc3QuICAoVGhhbmtzIHRvIFBhdWwgU2VyaWNlKS4KICAgCjIwMDEtMDYtMTEgMTU6NDQgIG5iYQoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xOgoKICAgQWRkIGFuIG9wdGlvbnMgKC1DYykgdG8gc25tcHdhbGsgdGhhdCB3aWxsIHZhbGlkYXRlIHRoYXQgdGhlIHJldHVybmVkIG9iamVjdHMKICAgYXJlIGluZGVlZCBsZXhpY29ncmFwaGljYWxseSBpbmNyZWFzaW5nLgogICAKMjAwMS0wNi0xMSAxNTo0MyAgbmJhCgogICAqIGFwcHMvc25tcHNldC5jLCBtYW4vc25tcHNldC4xLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBbGxvdyBhIHNpbXBsZXIgc25tcHNldCBub3RhdGlvbiB3aGVuIE1JQiBkYXRhIGFyZSBsb2FkZWQ6IFVzaW5nICc9JyBmb3IKICAgdHlwZSB0eXBlIHdpbGwgaW5mZXIgaXQgZnJvbSB0aGUgTUlCLgogICAKMjAwMS0wNi0xMSAxNTozOSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIEZpeCBzb21lIGxvbmcgc3RhbmRpbmcgYnVncyB3aGVuIHNldmVyYWwgTUlCIGZpbGVzIGRlZmluZSB0aGUgc2FtZSBvYmplY3RzCiAgIHdpdGggZGlmZmVyZW50IG5hbWVzLiBIb3BlZnVsbHkgdGhlIHJlc3VsdHMgd2lsbCBiZSBjb25zaXN0ZW50IG5vdy4KICAgCjIwMDEtMDYtMTEgMTI6MTIgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL2ludDY0LmM6CgogICBBbm90aGVyIHRyeSBhdCBDb3VudGVyNjQgcHJvYmxlbXMsIHRoYW5rcyB0byBKYXNvbiBHbG91ZG9uIDxzbm1wQGdsb3Vkb24uY29tPgogICAKMjAwMS0wNi0xMSAxMTo1MiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGZvciBhIG1pc3NpbmcgMC1ieXRlIHRvIHRlcm1pbmF0ZSBjb21tdW5pdHkgc3RyaW5nLgogICBUaGFua3MgdG8gIktVQk9UQSxUYWtheWEiIDx0YWtheWFAcG8ubnR0cy5jby5qcD4uCiAgIAoyMDAxLTA2LTA2IDIxOjM4ICBuYmEKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgVXNlIDx1dG1weC5oPiBpZiBhdmFpbGFibGUgKHRvIGZpeCBjb3VudGluZyB1c2VycyBmb3IgU29sYXJpcykKICAgCjIwMDEtMDYtMDYgMjE6MzMgIG5iYQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBNZW50aW9uIC1zIGFuZCAtUCBwaWRmaWxlIGFyZ3VtZW50cwogICAKMjAwMS0wNi0wNiAyMTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4IHNlbmRpbmcgb2YgdHJhcHMgd2l0aG91dCB2YXJiaW5kcwogICAKMjAwMS0wNi0wNiAyMTozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE1vcmUgbWVhbmluZ2Z1bCBhcmd1bWVudHMgdG8gc2V0UGVycm9yc3RhdHVzICh0cnVlIGZpbGUgbmFtZXMpCiAgIAoyMDAxLTA1LTE3IDEyOjM2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCBhIFRydWx5IFN0dXBpZCBCdWcgdGhhbmtzIHRvIEthdHN1aGlzYSBBQkUgPGFiZWthdHN1QGN5c29scy5jb20+CiAgIAoyMDAxLTA1LTA0IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBsIGZyb20gJWxsZCBwcmludGYgc3ludGF4CiAgIAoyMDAxLTA1LTA0IDA3OjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc2FsbCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoyMDAxLTA1LTAzIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIHNubXAtdGMuaCB0byBpbnN0YWxsIGxpc3QKICAgCjIwMDEtMDUtMDIgMDc6MDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBBZGQgLVQgZmxhZyB0byB1c2FnZSBvdXRwdXQuCiAgIAoyMDAxLTA1LTAxIDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgRml4IHVzZSBvZiBhIC0xIGFzc2lnbmVkIHRvIGEgdV9sb25nIGFzIGEgZmFpbHVyZSBjaGVja2luZyBjYXNlLgogICAKMjAwMS0wNC0yMyAxNzowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggd2FsayBwcm9ibGVtIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAxLTA0LTE3IDEyOjI5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgR2V0IGRhdGEgZm9yIGhyU1dSdW5QZXJmVGFibGUgZm9yIGN5Z3dpbiB1bmRlciBOVCAob3IgYmV0dGVyKQogICAKMjAwMS0wNC0xNyAxMTozMyAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVcGRhdGUgdG8gYSByZWNlbnQgdmVyc2lvbiBvZiBjb25maWcuZ3Vlc3MvY29uZmlnLnN1Yi4gVXBkYXRlIGNvbmZpZ3VyZQogICB0byBoYW5kbGUgdGhlIG5ldyBOZXRCU0QgdmFyaWFudCB0aGF0IGluY2x1ZGUgdGhlIG9iamVjdCBmb3JtYXQuCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDA2OjAxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgR2V0QnVsayByZXF1ZXN0cyB3aXRoIG1heC1yZXBldGl0aW9ucz0wIHByb3Blcmx5IChidWcgIzQxNDg1NSkKICAgCjIwMDEtMDQtMTAgMDk6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBmaXhlZCBzZWdmYXVsdCB3aGVuIHJvdyBoYXMgaG9sZXMuCiAgIAoyMDAxLTA0LTA2IDE2OjIwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSBBZGRlZCBkb2N1bWVudG90aW9uIGZvciAtT3QKICAgCjIwMDEtMDQtMDYgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHRyYXBzL2luZm9ybXMgcmV2ZXJzZWQKICAgCjIwMDEtMDQtMDUgMDk6MzQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBmcm9tIHNubXBfb2lkX21pbl9jb21wYXJlLgogICAKMjAwMS0wNC0wNSAwOToxMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wNC0wNSAwODoyMSAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICB1c2UgbWFsbG9jIHRvIGRlY3JlYXNlIHN0YWNrIHNpemUgaW4gc25tcGRfcGFyc2VfY29uZmlnX3RyYXBzZXNzLgogICAKMjAwMS0wNC0wNSAwNjoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBFeHRlbmQgcmVjZW50ICdwYXNzJyBjaGFuZ2VzIHRvICdwYXNzX3BlcnNpc3QnLiAgKFRoYW5rcywgTWlrZSEpCiAgIAoyMDAxLTA0LTA1IDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBIYW5kbGUgc2V0dGluZyBudWxsIHN0cmluZyB2YWx1ZXMgdmlhIHRoZSAncGFzcycgbWVjaGFuaXNtLiAoU3VwcG9ydCM0MDY3MjgpCiAgIEFsc28gaGFuZGxlIGVtYmVkZGVkIHdoaXRlc3BhY2UgaW4gc3VjaCB2YWx1ZXMuCiAgIAoyMDAxLTA0LTA0IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMSApCiAgIAoyMDAxLTA0LTA0IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIENoYW5nZSB3b3JkaW5nIHRvIHNheSA0LjIgbGluZSBpcyB0aGUgbGFzdCB0byB1c2UgdGhlIHVjZC1zbm1wIG5hbWUuCiAgIAoyMDAxLTA0LTA0IDE0OjUxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2VMb2cKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIgLT4gVjQuMi4xCgoyMDAxLTA0LTA0IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBmaXggbWlzc2luZyB2YXJpYWJsZSBvbiBzb2xhcmlzIDIuNgogICAKMjAwMS0wNC0wNCAxNDowMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGtpbGwgLVRFUk0gaW5zdGVhZCBvZiBraWxsIC1TSUdURVJNIGZvciBwb3J0YWJpbGl0eSAoYnJlYWtzIG9uIHNvbGFyaXMpLgogICAKMjAwMS0wNC0wNCAxMjozOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDbGVhbnVwIGRlYnVnIG1lc3NhZ2VzLCBidWlsZC4KICAgCjIwMDEtMDQtMDQgMDk6MTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgRml4IG5ldHdvcmsgYnl0ZSBvcmRlciBmb3IgSXBBZGRyZXNzIGRpc3BsYXllZC4KICAgCjIwMDEtMDQtMDQgMDg6NTAgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHF1aWV0IGV4aXQgb24gU0lHVEVSTS9TSUdJTlQsIHNhbWUgYXMgc25tcGQuCiAgIAoyMDAxLTA0LTA0IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oOgoKICAgZml4IGZvciBhdXRvX25saXN0IGJvZ3VzIGRlZmluaXRpb25zIGZvciBtYWNoaW5lcyB3aXRob3V0IG5saXN0LgogICAKMjAwMS0wNC0wNCAwODo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHVwZGF0ZSB0byB3aGVuIGFnZW50IHJlbW92ZXMgImNyZWF0ZVVzZXIiIGRpcmVjdGl2ZXMuCiAgIAoyMDAxLTA0LTA0IDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgQXBwbGllZCBwYXRjaCAjNDEyMDgwOiBhZGQgZnJlZWJzZDUgdG8gbW9kdWxlIGluY2x1ZGUgbGlzdC4KICAgCjIwMDEtMDQtMDQgMDg6MTIgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBEb2N1bWVudCBob3cgdG8gZW5hYmxlIHRoZSBBZ2VudFggZmFjaWxpdHkgaW4gdGhlIG1hc3RlciBhZ2VudC4KICAgCjIwMDEtMDQtMDQgMDc6NTkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IGJ1ZyAjNDExOTE3OiBjaGFuZ2Ugd2FsayBlbmQgY29uZGl0aW9uIGFzIHN1Z2dlc3RlZCBieSBzdWJtaXR0ZXIuCiAgIAoyMDAxLTA0LTA0IDA3OjQzICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDaGFuZ2UgJ0xpbmUnIHZhcmlhYmxlIG5hbWUsIHRvIGFzc2lzdCB3aXRoIE1hYyBwb3J0LgogICAKMjAwMS0wNC0wNCAwNzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEZpeCB0eXBvIGluIGNhc3QgKG1pc3NpbmcgJ3N0cnVjdCcpCiAgIAoyMDAxLTA0LTA0IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgYSBsYXJnZXIgbWFsbG9jZWQgYnVmZmVyIHdoZW4gZGVjb2RpbmcgYSBsYXJnZSBpbmNvbWluZyBlbmNyeXB0ZWQgbWVzc2FnZS4KICAgCjIwMDEtMDQtMDQgMDc6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTGltaXQgc2l6ZSBvZiBoZXggbWVzc2FnZXMgdG8gMS81dGggYnVmZmVyIHNpemUgKHRvIGJlIHNhZmUpLgogICAKMjAwMS0wNC0wNCAwNzoyNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIC0gY2FsbCBleHRlcm5hbCBzaWduYWwgaGFuZGxlcnMgYmVmb3JlIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpLAogICAgICByYXRoZXIgdGhhbiBhZnRlciBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSBidXQgYmVmb3JlIHNlbGVjdCgpLgogICAgICBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIHByb2JsZW0gdGhhdCBjb3VsZCBhcmlzZSBpZiBhIHNpZ25hbCBoYW5kbGVyCiAgICAgIGNsb3NlZCBhIHNlc3Npb24sIHdoaWNoIHdvdWxkIGNhdXNlIHNlbGVjdCgpIHRvIHJldHVybiAtMSB3aXRoCiAgICAgIEVCQURGLCBhbmQgdGh1cyB0ZXJtaW5hdGUgdGhlIGFnZW50LgogICAKMjAwMS0wNC0wNCAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRW5zdXJlIHRoYXQgY2hlY2tpbmcgZm9yICdzdGF0dmZzJyBpcyBkb25lIGNvbnNpc3RlbnRseQogICAKMjAwMS0wNC0wNCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZW5zdXJlIHRoYXQgJ2V4ZWNfY29tbWFuZCcgaXMgdXNlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIGV4ZWN2CiAgIAoyMDAxLTA0LTA0IDA2OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDIyOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBtYXhpbXVtIGVuY3J5cHRlZCBwYWNrZXQgbGVuZ3RoIHN1cHBvcnQgZm9yIHJldmVyc2UgZW5jb2RlZCBwYWNrZXRzLgogICAKMjAwMS0wNC0wMyAxODowNyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldDoKCiAgIGZpeCByd2NvbW11bml0eQogICAKMjAwMS0wNC0wMyAxNjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvd2VzcmVzdGFydDoKCiAgIHJlbW92ZSBvbGQgdW51c2VkIHNjcmlwdAogICAKMjAwMS0wNC0wMyAxNjo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvb3BlcmF0aW9uOgoKICAgQWRkIHNubXBjb25mIGRpcmVjdGl2ZSBzdXBwb3J0IGZvciB0aGUgbmV3ICJtYXN0ZXIiIHRva2VuLgogICAKMjAwMS0wNC0wMyAxNjo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBGaXggYnVnIGluIG1lbnVzIGZvciBjb25maWd1cmF0aW9uIGZpbGVzIGNvbnRhaW5pbmcgb25seSAiZ3JvdXBzIi4KICAgCjIwMDEtMDQtMDMgMTY6NDAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIENoYW5nZSBteSBuYW1lIC0+IG5ldC1zbm1wIGRldmVsb3BlcnMuCiAgIAoyMDAxLTA0LTAzIDE1OjM2ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgbWVudGlvbiBzbm1wY29uZgogICAKMjAwMS0wNC0wMyAxNToyOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgdXJsIGNoYW5nZXMgbW9zdGx5LgogICAKMjAwMS0wNC0wMyAxNToyOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIDQuMi4xIHVwZGF0ZSAocGxlYXNlIGNoZWNrKS4KICAgCjIwMDEtMDQtMDMgMTU6MjggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGZ0cCBzaXRlIHVwZGF0ZS4KICAgCjIwMDEtMDQtMDMgMTQ6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkZWQgYWdlbnR4IHRvIGRlZmF1bHQgbW9kdWxlcyB0byBjb21waWxlIGluCiAgIAoyMDAxLTA0LTAzIDEwOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBhIGNvbW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgbWliMmMgb3V0cHV0IGV4cGxhaW5pbmcgdGhhdCBpdHMKICAgbWVyZWx5IGEgdGVtcGxhdGUuCiAgIAoyMDAxLTA0LTAzIDA4OjI3ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQsIEZBUSwgUE9SVElORywgUkVBRE1FLCBSRUFETUUuYWdlbnR4OgoKICAgV2ViIHBhZ2UvZnRwIHNpdGUgdXBkYXRlcy4gIFVzZXMgd3d3Lm5ldC1zbm1wLm9yZyBldmVyeXdoZXJlIG5vdy4KICAgCjIwMDEtMDQtMDMgMDY6MjQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4IHNpZ25lZC91bnNpZ25lZCBjb21wYXJlLgogICAKMjAwMS0wNC0wMyAwNjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBQbHVnIGZpbGUtZGVzY3JpcHRvciBsZWFrIHdoZW4gdXNpbmcgY2FjaGVkIGRhdGEuICAoQnVnIzQxMjAwMCkKICAgCjIwMDEtMDQtMDIgMjM6MjIgIG5iYQoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBGaXggYW4gaW5jb21wbGV0ZWx5IGluaXRpYWxpemVkIHZhcmlhYmxlCiAgIAoyMDAxLTA0LTAyIDIzOjIxICBuYmEKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBUaGUgYW5zd2VycyBmb3IgdGhlICJsb2FkIHdoaWNoIGZpbGVzIiBtZW51IGFyZSBrZXB0IHNlY3JldCBmcm9tIHRoZSBjb2RlCiAgIHRoYXQgbG9hZHMgdGhlIGZpbGVzIC4uLi4gZml4ZWQuCiAgIAoyMDAxLTA0LTAyIDIwOjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZi5kaXIvc25tcHRyYXBkLmNvbmYvZm9ybWF0dGluZywKICAgc25tcGNvbmYuZGlyL3NubXB0cmFwZC5jb25mL3RyYXBoYW5kbGU6CgogICBBZGRlZCBzbm1wdHJhcGQgY29uZmlndXJhdGlvbiBmaWxlIGRpcmVjdGl2ZXMgdG8gc25tcGNvbmYuCiAgIAoyMDAxLTA0LTAyIDEwOjA4ICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gdXBkYXRlIGRvY3VtZW50YXRpb24gb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MgdG8gcmVmbGVjdAogICAgICBjdXJyZW50IGJlaGF2aW91cgogICAKMjAwMS0wNC0wMiAwOTo1OCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBGaXggbWVtb3J5IGxlYWsgaW4gaGFuZGxlX29uZV92YXIgd2hlcmUgbG9uZyB2YXJiaW5kcyB3ZXJlbid0CiAgICAgIGNvcnJlY3RseSBmcmVlKClkLgogICAKICAgIC0gQ2hhbmdlIGJlaGF2aW91ciBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyBzbyB0aGF0IGFsYXJtcyBydW4KICAgICAgY29ycmVjdGx5LgogICAKMjAwMS0wNC0wMiAwODo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVXNlIHRoZSAnc3RhbmRhcmQnIGNvbmZpZyBoYW5kbGVyIHJlZ2lzdHJhdGlvbiByb3V0aW5lLAogICBhbmQgcmVjb2duaXNlIHRoZSBjb25maWcgc2V0dGluZyAnbWFzdGVyIGFsbCcKICAgCjIwMDEtMDQtMDIgMDY6NTMgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBzb21lIG1pc3NpbmcgcXVvdGluZyBvbiAuSVAgcGFyYW1ldGVycwogICAKMjAwMS0wMy0zMCAwODowNSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUuYWdlbnR4LCBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIG1vdmVkIGFnZW50eCBSRUFETUUgdG8gdG9wCiAgIAoyMDAxLTAzLTMwIDA3OjIyICBkdHMxMgoKICAgKiBGQVE6CgogICBUeXBvIGluIEFnZW50WCBSRUFETUUgZmlsZW5hbWUKICAgCjIwMDEtMDMtMzAgMDc6MjAgIGR0czEyCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmg6CgogICBQcm92aWRlICdtYXN0ZXInIGNvbmZpZyBkaXJlY3RpdmUgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0bwogICBhY3RpdmF0ZSBleHRlbnNpYmxlIHN1YmFnZW50IHN1cHBvcnQuCiAgICAgSW5pdGlhbGx5IHJlc3RyaWN0ZWQgdG8gQWdlbnRYIHN1cHBvcnQgb25seS4KICAgCjIwMDEtMDMtMzAgMDM6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgVXBkYXRlIHRvIHJlZmxlY3QgdGhlIGluY3JlYXNlZCBtYXR1cml0eSBvZiB0aGUgQWdlbnRYIGltcGxlbWVudGF0aW9uLgogICAKMjAwMS0wMy0zMCAwMzozNCAgZHRzMTIKCiAgICogRkFROgoKICAgVHdlYWtlZCB2YXJpb3VzIGVudHJpZXMsIGFuZCBhZGRlZCBhIGZldyBuZXcgb25lcy4gIEdlbmVyYWwgU2hpZWxkIG1lZGRsaW5nLgogICAKMjAwMS0wMy0zMCAwMTowMCAgZHRzMTIKCiAgICogUkVBRE1FOgoKICAgQWRkIHByb21pbmVudCB3YXJuaW5nIHJlZ2FyZGluZyB1Y2Qtc25tcCA9PiBuZXQtc25tcCBzd2l0Y2guCiAgIAoyMDAxLTAzLTMwIDAwOjQ2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggaW50ZXJwcmV0YXRpb24gb2YgInB1cmUgbnVtZXJpYyIgcGVlcm5hbWUgc3RyaW5ncyAoaS5lLiBsaXN0ZW4gb24gdGhlCiAgICAgc3BlY2lmaWVkIHBvcnQgb24gYWxsIGludGVyZmFjZXMpIC0gcHJvYmxlbSBpZGVudGlmaWVkIGJ5IE1hbGEgUmFtYWtyaXNobmFuLgogICAKMjAwMS0wMy0zMCAwMDowNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcGxhY2UgYXRvaS9hdG9sIHdpdGggc3RydG8odSlsIHdoaWNoIGhhcyBiZXR0ZXIgb3V0LW9mLXJhbmdlIHJldHVybnMuCiAgIFRoaXMgaXMgbm90IGEgcGVyZmVjdCBzb2x1dGlvbiwgYnV0IGl0IGlzIGJldHRlciAuLi4KICAgCjIwMDEtMDMtMjkgMjE6NDMgIGhhcmRha2VyCgogICAqIElTU1VFUzoKCiAgIHJtIElTU1VFUwogICAKMjAwMS0wMy0yOSAxNDozNCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIG1pbm9yIGZvcm1hdHRpbmcuCiAgIAoyMDAxLTAzLTI5IDE0OjMzICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgVW0sIGdvdCB0aGUgeWVhciByaWdodCB0aGlzIHRpbWUuCiAgIAoyMDAxLTAzLTI5IDE0OjMyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgdXBkYXRlIGZvciAyMDAxOiBhZGRlZCBteSByZXF1aXJlZCBOQUkgQlNEIGNvcHlyaWdodC4KICAgCjIwMDEtMDMtMjkgMDg6MjMgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgY2hhbmdlIGZyb20gbWFpbiBicmFuY2ggKHJldHVybl92YWx1ZT0xIHN0YXRlbWVudCkuCiAgIAoyMDAxLTAzLTI5IDA4OjIxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQWRkIHZhY21faXNfY29uZmlndXJlZC4KICAgCjIwMDEtMDMtMjggMjI6MTIgIG5iYQoKICAgKiBtaWJzLzogcmZjbGlzdCwgcmZjbWlicy5kaWZmOgoKICAgQWRkIFByaW50ZXItTUlCIHRvIHRoZSByZmNsaXN0IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcGF0Y2guCiAgIAoyMDAxLTAzLTI4IDEzOjA2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUHJvcGVybHkgaWdub3JlIG5vbi1yZXNwb25zZSBQRFUncyB3aGVuIGRvaW5nIGFzeW5jIHRyYW5zYWN0aW9uLgogICAKMjAwMS0wMy0yOCAxMzowNCAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmM6CgogICBGaXggaW5kZXggaGFuZGxpbmcgdG8gcHJvcGVybHkgYWNjZXB0IGluZGV4aW5nIHdpdGggVGltZVRpY2tzLgogICBJbXBsZW1lbnQgLUlyIHRvIGRpc2FibGUgaW5kZXggY2hlY2tzLgogICAKMjAwMS0wMy0yOCAwNjoyMCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjEucHJlMiApCiAgIAoyMDAxLTAzLTI3IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgCjIwMDEtMDMtMjcgMDU6MzcgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIEhhbmRsZSBub24tcmVzcG9uc2l2ZSBBZ2VudFggc3ViLWFnZW50cyBtb3JlIHJvYnVzdGx5LgogICAgICAoQmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCAmIFBhdWwgUmFzbXVzc2VuKQogICAKMjAwMS0wMy0yNyAwMjozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmg6CgogICBGaXhlZCB2YWNtIHRvIGRyb3AgdjEvdjJjIHBhY2tldHMgcHJvcGVybHkgd2hlbiBubyBjb20yc2VjIGVudHJpZXMgYXJlIGZvdW5kLgogICAKMjAwMS0wMy0yNiAxMTowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE5ldyBNSUIgaW4gUkZDIDMwODM6IERPQ1MtQlBJLU1JQgogICAKMjAwMS0wMy0yMiAxNDoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBzL2N5Z3dpbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmM6CgogICBNYWtlIG1vc3Qgb2YgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiBjb21waWxlIHVuZGVyIEN5Z3dpbi4gV2UgY2FuIG5vdyBkbwogICAtLXdpdGgtbWliLW1vZHVsZXM9aG9zdCAtLXdpdGgtb3V0LW1pYi1tb2R1bGVzPWhvc3QvaHJfbmV0d29yawogICAKMjAwMS0wMy0yMiAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgZml4IGhlYWRlcl9zaW1wbGVfdGFibGUoKSBmb3IgdG9vIGxvbmcgcmVxdWVzdHMKICAgCjIwMDEtMDMtMjIgMDg6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBCYWQgV2VzOiBmaW5kIGFsbCBpbnN0YW5jZXMgb2YgY3V0LW4tcGFzdGUgZXJyb3JzIGJlZm9yZSBjb21taXR0aW5nLgogICAKMjAwMS0wMy0yMiAwODoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJhZCBXZXM6IGRvbid0IGNhbGwgZnVuY3Rpb24gd2l0aG91dCB0aGUgKClzLiAgKGF0IGxlYXN0IGluIEMpLgogICAKMjAwMS0wMy0yMiAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IGZvciBtaW5vciBtZW1vcnkgbGVhayB3aXRoIHRyYXAtcmVsYXRlZCB2YXJiaW5kIHZhbHVlcy4KICAgVGhhbmtzIHRvIEpvaG4gVmlsbGFsb3ZvcyAoYW5kIHRoZSBJbnRlbCBTTk1QIHRlYW0pCiAgIAoyMDAxLTAzLTIxIDE3OjIyICBkcmllaHVpcwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQnVnZml4IGZvciBjcmFzaCBhdCBzbm1wX3NodXRkb3duIHRpbWUgd2l0aCBPUydzIHRoYXQgY2hlY2sgcG9pbnRlcgogICB2YWxpZGl0eSAoZS5nLiwgRnJlZUJTRCkKICAgCjIwMDEtMDMtMjEgMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGpvaW4gYnJva2VuIHNubXBfbG9nIGxpbmVzCiAgIAoyMDAxLTAzLTIxIDA4OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1GIChJIHRoaW5rKQogICAKMjAwMS0wMy0yMSAwNzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IHZhcmlhYmxlIHR5cGVzIChpbnQgLT4gc2l6ZV90KQogICAKMjAwMS0wMy0yMCAwODoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgcy9saW51eC5oOgoKICAgRml4IHRoZSBhdFRhYmxlIGFuZCBpcE5ldFRvcE1lZGlhVGFibGUgZm9yIExpbnV4IHRvIHJldHVybiB0aGUgaWZJbmRleAogICAKMjAwMS0wMy0xOSAxMzoxNCAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIG1hbi9zbm1wZGVsdGEuMToKCiAgIE1ham9yIG9wdGlvbiBwYXJzaW5nIHN1cmdlcnkgdG8gY2F0aGVyIGZvciB0aGUgZ2V0b3B0IHVzaW5nIHZlcnNpb24gb2YKICAgc25tcF9wYXJzZV9hcmdzLiBTZWVtcyB0byBoYXZlIGJlZW4gZm9yZ290dGVuIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIGFwcHMKICAgd2VyZSB1cGRhdGVkLgogICAKMjAwMS0wMy0xOSAxMzoxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFJlLW9yZGVyIHN5cy9jb25mLmggYW5kIHN5cy9wYXJhbS5oIHRvIG1ha2UgRnJlZUJTRC01IGhhcHB5CiAgIAoyMDAxLTAzLTE1IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgZml4ZWQgYnVnICM0MDUwMDA6IGRyb3BwZWQgc3VwcG9ydCBmb3IgSVBPVVROT1JPVVRFUywgc2luY2Ugbm8KICAgY2FsY3VsYXRpb24gb2YgaXQgc2VlbXMgY2xvc2UgdG8gY29ycmVjdC4KICAgCjIwMDEtMDMtMTUgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgZml4IHBhcnQgMiBvZiBidWcgNDA1NTE5IGFkZGluZyBmdWxsc29jayB0byB1ZHBpbmVycm9ycwogICAKMjAwMS0wMy0xNSAxMzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBmaXggYnVnICM0MDgzODggd2hlcmUgbWVtbW92ZSBpcyBjYWxsZWQgd2l0aCB0b28gc2hvcnQgYSBsZW5ndGguCiAgIAoyMDAxLTAzLTE1IDExOjIxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMS5wcmUxICkKICAgCjIwMDEtMDMtMTUgMDM6MzQgIGpicG4KCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAga2lsbCAtU0lHS0lMTCBpc24ndCBsZWdhbCBzeW50YXggb24gU29sYXJpcyBvciBMaW51eDsgY2hhbmdlZCB0byBraWxsIC05CiAgIHdoaWNoIGlzIGxpa2VseSBzYWZlcgogICAKICAgZG9uJ3Qgc2V0IHJldHVybl92YWx1ZSB0byAxIGFmdGVyIGtpbGxpbmcgc25tcGQsIHdoaWNoIGNhdXNlcyBzcHVyaW91cwogICB0ZXN0IGZhaWx1cmVzCiAgIAoyMDAxLTAzLTE0IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOiBtYWtlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgYSBwdWJsaWMgZm4uCiAgIAoyMDAxLTAzLTE0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZml4IGlwbmV0dG9tZWRpYSBpbmRleGluZyBvbiBzb2xhcmlzLgogICAKMjAwMS0wMy0xNCAxMDoyNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBVc2UgY29uZmlnLmgsIGRvbid0IHVzZSB1Y2Qtc25tcCBkaXJlY3RvcnkgdG8gYnVpbGQgaW4gdGhlIG1pYmdyb3VwIHRyZWUuCiAgIAoyMDAxLTAzLTE0IDEwOjE4ICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBxdWlldCAid2hpY2giIG91dHB1dC4gIG5ldmVyIGVuZGluZyBzYWdhLi4uCiAgIAoyMDAxLTAzLTE0IDEwOjA4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgcXVpZXQgdW5zaWduZWQgbG9uZyBjb21wYXJlLgogICAKMjAwMS0wMy0xNCAxMDowMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBHZXQgYSBkZWNsIG9mIGluX2FkZHJfdCBmcm9tIG5ldGluZXQvaW4uaCwgd2hlcmUgbmVjZXNzYXJ5LgogICAKMjAwMS0wMy0xNCAxMDowMCAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBdm9pZCB3YXJuaW5ncyBvZiBzdHJ1Y3QgdGltZXZhbCBkZWNsIGluIHN5c3RlbS5oIGJ5IGluY2x1ZGluZyAqdGltZS5oKi4KICAgCjIwMDEtMDMtMTQgMDk6NDcgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9wYXJzZS5jOgoKICAgcGF0Y2ggc3VibWl0dGVkIGJ5IEhhcnJpZSBIYXpld2lua2VsCiAgIAoyMDAxLTAzLTE0IDA5OjQwICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBkb24ndCBydW4gdGVzdHMgd2l0aG91dCBuZWVkZWQgcHJvZ3JhbXM6IHNubXBkLCBzbm1wZ2V0LCBzbm1wZ2V0bmV4dC4KICAgCjIwMDEtMDMtMTQgMDg6MjQgIHNsaWYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQcm92aWRlIGFuIGVtcHR5IERMTElCUyB2YWx1ZSBmb3Igbm9uLWRsbW9kIHVzZXMuCiAgIAoyMDAxLTAzLTE0IDA3OjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgY2FzdCB1X2xvbmcgdG8gdV9jaGFyIHdoZW4gc3RvcmluZyA4LWJpdCB2YWx1ZXMuCiAgIAoyMDAxLTAzLTE0IDA3OjMzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggdW5zaWduZWQgbGVuZ3RoIGNvbXBhcmVzLgogICAKMjAwMS0wMy0xNCAwNTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRuRuZ2VyKQogICAKMjAwMS0wMy0xMyAxMzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIGNoZWNrIGZvciBOVUxMcyBpbiBERUJVRyBtc2cKICAgCjIwMDEtMDMtMTIgMTQ6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgc3ViYWdlbnQuYzoKCiAgIEZpeCBzb21lIG1pbm9yIGxlYWtzLgogICAKMjAwMS0wMy0xMiAxNDowNSAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTb21lIG1pbm9yIGZpeGVzIHRvIGFyZ3VtZW50IHByb2Nlc3NpbmcsIGluY2x1ZGluZyB0ZXJtaW5hdGluZyBzbm1wZCBvbgogICBleHRyYW5lb3VzIG5vbi1vcHRpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMy0xMCAwODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIEJ1ZyAjNDA0OTg4OiBkb24ndCB1c2UgaXBzdGF0Lmlwc19mcmFndGltb3V0IGFzIGEgbnVtYmVyIG9mIHNlY29uZHMuCiAgIAoyMDAxLTAzLTA3IDEwOjI2ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIAogICBuZXcgREVMQVkgZnVuY3Rpb247IHN0YXJ0L3N0b3AgZGFlbW9ucyB1c2luZyBuZXcgU1RBUlRQUk9HL1NUT1BQUk9HIHdpdGggREVMQVk7CiAgIGxvZyBjb21tYW5kcyBpc3N1ZWQgYW5kIGZpbmFsIHJlc3VsdCB0byBTTk1QX1RNUERJUi9pbnZva2VkOwogICBzdXBwcmVzcyAia2lsbCIgb3V0cHV0IHRvIGhlbHAgQ3lnd2luIHVzZXJzIGhhcHB5LgogICAKMjAwMS0wMy0wNyAxMDoyMyAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgCiAgIGFkZCAtUyBwYXJhbWV0ZXIgZm9yIERFTEFZIHNlY29uZHM7IGFkZCB0cmFwIGZvciBpbnRlcnJ1cHQgY29udHJvbDsKICAgcGFzcyB0ZXN0IG51bWJlciBhbmQgZGlzcGxheS1oZWFkZXItb25seSB0byBldmFsX29uZXNjcmlwdC5zaDsKICAgYWRkIHdoaWNoIHRlc3QgdG8gdmVyYm9zZSBsb2NhdGluZyBtZXNzYWdlcyAoQ3lnd2luIHVzZXMgdHlwZSwgbm90IHdoaWNoKS4KICAgCjIwMDEtMDMtMDcgMTA6MjAgIHNsaWYKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaDoKCiAgIAogICAKICAgSW5jb3Jwb3JhdGUgdGVzdCBudW1iZXIgaW50byB0ZXN0IHJlc3VsdHMgZGlyIG5hbWUuCiAgIFByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRlc3QgbnVtYmVyIGFuZCBkaXNwbGF5LWhlYWRlci1vbmx5IGZsYWcuCiAgIAoyMDAxLTAzLTA3IDEwOjE5ICBzbGlmCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAKICAgCiAgICJtYWtlIGNsZWFuIiByZW1vdmVzIGFueSB0ZXN0IHJlc3VsdCBkaXJzICIvdG1wL3NubXAtdGVzdC0qIi4KICAgCjIwMDEtMDMtMDcgMTA6MTUgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTRhZ2VudHYyY3RyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsCiAgIFQwNThhZ2VudGF1dGh0cmFwOgoKICAgCiAgIFJlcGxhY2Ugc2xlZXAgd2l0aCBjb21tZW50ZWQgb3V0IERFTEFZIDsgZWFjaCBzdGFydC9zdG9wIGFjdGlvbiBub3cKICAgaW52b2tlcyBERUxBWS4KICAgCjIwMDEtMDMtMDcgMTA6MTQgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXA6CgogICAKICAgUmVwbGFjZSBzbGVlcCB3aXRoIERFTEFZLgogICAKMjAwMS0wMy0wNyAxMDoxMyAgc2xpZgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIAogICAKICAgQ2hhbmdlIGVsZW1lbnQgc2VwYXJhdG9yIHRvIFdpbjMyICc7JyBpbiBERUZBVUxUX01JQlMKICAgRGVjbGFyZSBXaW4zMiBoYXMgZ2V0cGlkIS4KICAgCjIwMDEtMDMtMDcgMTA6MTAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgCiAgIAogICBXaW4zMiBpbmNsdWRlIGlvLmggdG8gZGVjbGFyZSBta3RlbXAuCiAgIEV4cGFuZCB0aGUgY29tbWVudCBuZWFyIG1rdGVtcCB1c2FnZSB0byBleHBsYWluIHdoeSBpdCBpcyBuZWVkZWQuCiAgIAoyMDAxLTAzLTA3IDEwOjA5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgCiAgIAogICByZW1vdmUgdW5uZWNlc3NhcnkgaWZuZGVmIFdJTjMyLiAgaWZkZWYgU0lHQUxSTSBpcyBzdWZmaWNpZW50LgogICAKMjAwMS0wMy0wNyAxMDowNyAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgCiAgIAogICBXaW4zMiBpbmNsdWRlIHByb2Nlc3MuaCB0byBkZWNsYXJlIGdldHBpZC4KICAgCjIwMDEtMDMtMDcgMTA6MDYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIAogICAKICAgVXNlIHByb3BlciBkZWZpbmUgdG8gcXVhbGlmeSBpbmNsdWRlLWluZyBhIGhlYWRlci4KICAgCjIwMDEtMDMtMDcgMTA6MDQgIHNsaWYKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgCiAgIAogICBBcHBseSB0aGUgdGltZSBnb28gY29uc2lzdGVudGx5OiBtb3ZlIGhlYWRlciBpbmNsdWRlcyBvdXQgb2Ygc3lzdGVtLmguCiAgIAoyMDAxLTAzLTA2IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGZvcmNlIGluY2x1c2lvbiBvZiAtbGRsLgogICAKMjAwMS0wMy0wNSAwNjozMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgCiAgIAogICBGb2xsb3cgbWV0aG9kIHVzYWdlLCBkb24ndCBkZWNsYXJlIGdldEh3QWRkcmVzcyB1bmxlc3MgdXNlZC4KICAgCjIwMDEtMDMtMDUgMDY6MzAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgCiAgIAogICBSZW1vdmUgbmVzdGVkIHZhcmlhYmxlIGVwIC0gb25lIGFscmVhZHkgZXhpc3RzLgogICAKMjAwMS0wMy0wNSAwNjoyOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICAKICAgCiAgIENvbW1lbnQgb3V0IGV4YW1wbGUgdmFyaWFibGVzIHRoYXQgYXJlIG5vdCB1c2VkLgogICAKMjAwMS0wMy0wNCAxNzo0MSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICAKICAgCiAgIHBhdGNoIHRvIGJ1aWxkIG1vcmUgbW9kdWxlcywgaW5jbHVkaW5nIGFnZW50WCwgb24gV2luMzIgdXNpbmcgTVMtVkMuCiAgIAoyMDAxLTAzLTA0IDE3OjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIAogICAKICAgcGF0Y2ggdG8gYnVpbGQgbW9yZSBvZiB0aGUgYWdlbnQgdXNpbmcgTVMtVkMgb24gV2luMzIgcGxhdGZvcm0uCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgTVRBLU1JQi50eHQsIE1ha2VmaWxlLm1pYiwKICAgUkVBRE1FLm1pYnMsIFRVTk5FTC1NSUIudHh0LCBpYW5hbGlzdCwgbWliZmV0Y2gsIHJmY2xpc3QsCiAgIHJmY21pYnMuZGlmZiwgc21pc3RyaXA6CgogICBVcGRhdGUgdG8gY3VycmVudCBJQU5BaWZUeXBlLU1JQiwgcGx1cyBhZGRpdGlvbiBvZiBSRUFETUUgYW5kIHRvb2xzIHRvIGdldAogICBhIGNvbXBsZXRlIHNldCBvZiBJRVRGIE1JQiBmaWxlcy4KICAgCjIwMDEtMDMtMDMgMDc6MTEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmg6CgogICBSZW1vdmUgYW4gdW51c2VkIHByb3RvdHlwZQogICAKMjAwMS0wMy0wMyAwNjozNiAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuOCwgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBBZGQgYSBuZXcgJVAgZm9ybWF0dGluZyBzZXF1ZW5jZSB0byB1c2VyIHNwZWNpZmllZCBsb2cgZm9ybWF0cy4gSXQgcHJpbnQKICAgdGhlIHNlY3VyaXR5IGluZm9ybWF0aW9uIGZyb20gdGhlIFBEVSAoY29tbXVuaXR5LCB1c2VyLCBjb250ZXh0IGFzIGF2YWlsYWJsZSkKICAgQWxzbyBtb2RpZnkgdGhlIGRlZmF1bHQgdHJhcCBvdXRwdXQgdG8gdXNlIGl0LgogICAKMjAwMS0wMy0wMyAwNjoyMSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IHNwZWNpZmllcnMgbGlrZSAlLjNzCiAgIAoyMDAxLTAzLTAzIDA2OjEwICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IHRoZSBwYXJzZXIgdG8gZGlhZ25vc2Ugb2lkIHNwZWNzIGxpa2U6Oj0geyBzaW5nbGUgfQogICBCZSBzaWxlbnQgZm9yIGludGVybmFsIGxpbmtzIHdoZW4gbW92aW5nIG5vZGVzIHRvIHRoZSBhZG9wdGlvbiBsaXN0LiBUaGlzCiAgIHNob3VsZCBoZWxwIGdpdmluZyBvbmx5IGEgc2luZ2xlIG1lc3NhZ2UgZm9yIG1pc3NpbmcgaW1wb3J0cyBvZiBlbnRlcnByaXNlcy4KICAgCjIwMDEtMDMtMDIgMTM6MjQgIHNsaWYKCiAgICogc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAKICAgCiAgIGNsZWFudXAgZm9yIE1TLVZDIFdpbjMyIGJ1aWxkCiAgIAoyMDAxLTAzLTAyIDA3OjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBzb3VyY2VyZm9yZ2UgLT4gc291cmNlZm9yZ2UKICAgCjIwMDEtMDMtMDIgMDc6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2UgdG8gZml4IHRpbWVzdGFtcHMgaW4gc3luY2hvbm91cyBjYXNlcwogICAKMjAwMS0wMy0wMiAwNjozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBmcm9tIHNubXBfb2lkX2NvbXBhcmUoKS4KICAgCjIwMDEtMDMtMDEgMTk6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yMSAxNTozMSAgbmJhCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGNtZC4xOgoKICAgRml4IGEgY291cGxlIG9mIHR5cG9zCiAgIAoyMDAxLTAyLTIxIDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICBmaXggYnVnICMxMzM0MTYgKHU2NFN1YnRyYWN0aW9uIG1hdGgpIGFzIHN1Z2dlc3RlZCBieSB0aGUgc3VibWl0dG9yCiAgIAoyMDAxLTAyLTIxIDE0OjM4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBUcnkgZml4aW5nIGluY29uc2lzdGVudCBpbmRleGluZyBvbiBCU0QKICAgCjIwMDEtMDItMTkgMDg6NDYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIAogICAKICAgLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNCAxODoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlbW92ZWQgdW51c2VkIHNubXBfYWxhcm0uaCBpbmNsdWRlCiAgIAoyMDAxLTAyLTEzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYnVnICMxMzA3NDAgdXNpbmcgc3VnZ2VzdGVkIGNsb3NlKCkgd3JhcHBlciBhcm91bmQgbWtzdGVtcCgpCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEzOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcGQgcG9ydCBzcGVjaWZpY2F0aW9uIC0+IGRlZmF1bHRfc3RvcmUuCiAgIAoyMDAxLTAyLTA5IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEyOiBmaXggbWVtb3J5IGxlYWsgaW4gbWliX21vZHVsZSBpbml0IGNvZGUKICAgCjIwMDEtMDItMDkgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTE6IGZpeCBtZW1vcnkgbGVhayBmb3IgZHVwbGljYXRlIG9pZCByZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMi0wOSAxMTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MDQ6IEFkZCBzdXBwb3J0IGZvciBWMSB0cmFwcyBhbmQgaW50L2ludDMyIGRpZmZlcmVuY2VzCiAgIAoyMDAxLTAyLTA5IDExOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLCBwcm94eS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDYgMTQ6MjYgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgQWRkIGEgZGVwZW5kZW5jeSBmb3IgbGlic25tcAogICAKMjAwMS0wMi0wNiAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgSW1wbGVtZW50IHJhdyBpbnRlcnJ1cHQgYW5kIGNvbnRleHQgc3dpdGNoIGNvdW50ZXJzCiAgIAoyMDAxLTAyLTA2IDE0OjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgTWFrZSBkbWFsbG9jIGhhcHB5IGJ5IGZpeGluZyBhIG1hbGxvYyByZWFkIG92ZXJydW4KICAgCjIwMDEtMDItMDYgMTQ6MTYgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYzoKCiAgIEJhY2twb3J0IC1PVCBvdXRwdXQgdG8gNC0yLXBhdGNoZXMgYnJhbmNoCiAgIAoyMDAxLTAyLTA2IDA2OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRvY3VtZW50YXRpb24gZml4CiAgIAoyMDAxLTAxLTMxIDIzOjAyICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IHZhbHVlIHZhbGlkYXRpb24gZm9yIHNubXBzZXQvc25tcHRyYXAKICAgCjIwMDEtMDEtMzEgMjM6MDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRml4IGJhZCByZXR1cm4gb2YgYSBwb2ludGVyIHRvIG5vbi1zdGF0aWMgc3RvcmFnZQogICAKMjAwMS0wMS0zMSAxNTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBCYXJ0ZWxzIGZvciBmcmVlYnNkIGZpeGVzCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMjkgMTM6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgZml4IGJ1ZyAjMTMwNDEwOiAgc2V0IHRoZSB3cml0ZV9tZXRob2QgaW4gdmFyX3NtdXggYmVmb3JlIHJldHVybmluZwogICBOVUxMIHRvIG1ha2Ugc3VyZSB0aGF0IHNldHMgaGFwcGVuIG9uIE9JRHMgdGhhdCBkb24ndCBleGlzdCBmaXJzdC4KICAgCjIwMDEtMDEtMjkgMTM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IHN1Z2dlc3RlZCBpbiBidWcgIzEyOTk0ODogY2hlY2sgZm9yIC0gYXJndW1lbnRzIGF0IHRoZSBiZWdnaW5uaW5nCiAgIG9mIHRoZSBjb21tYW5kIGxpbmUgdG9rZW4gKGRvbid0IG1hdGNoIG1pYi0yLCBlZykuCiAgIAoyMDAxLTAxLTI5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBmaXggc3VnZ2VzdGVkIGluIGJ1ZyAjMTI5ODc2OiBjaGVjayBmb3IgaGludCAhPSBOVUxMIGJlZm9yZSBmcmVlaW5nLgogICAKMjAwMS0wMS0yNiAwNTo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIEZpeCBidWcgb24gRnJlZUJTRCB3aGVuIC9ldGMvcHJpbnRjYXAgaXMgZW1wdHkKICAgCjIwMDEtMDEtMjUgMTQ6MzggIG5iYQoKICAgKiBtaWJzL1JNT04tTUlCLnR4dDoKCiAgIFVwZGF0ZWQgdG8gUkZDIDI4MTkKICAgCjIwMDEtMDEtMjQgMjE6MzcgIG5iYQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgbGlicmFyaWVzIGJlZm9yZSBhZ2VudCBzbyB0aGF0IGxpYnRvb2wgY2FuIHJlbGluay4KICAgCjIwMDEtMDEtMjAgMDU6NTQgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL2ludDY0LmM6CgogICBUd28gQ291bnRlcjY0IGdsaXRjaGVzIGRldGVjdGVkIGJ5IEphc29uIEdsb3Vkb24gPHNubXBAZ2xvdWRvbi5jb20+CiAgIAoyMDAxLTAxLTIwIDA1OjQ0ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIERvbnQgc2V0IHVwIHRoZSBzZWxlY3QgcGFyYW1ldGVycyBiZWZvcmUgY2FsbGluZyBpbnRlcnJ1cHQgaGFuZGxlcnMhCiAgIFRoYW5rcyB0byBGcmFuayBTdHJhdXNzLgogICAKMjAwMS0wMS0yMCAwNTo0MiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBlbmNvZGluZyBvZiBCSVRTIHZhcmlhYmxlLCB0aGFua3MgdG8gRnJhbmsgU3RyYXVzcwogICAKMjAwMS0wMS0yMCAwNTozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgUmF3IElPIGNvdW50ZXJzIGZyb20gSm9jaGVuIEttaWV0c2NoCiAgIAoyMDAxLTAxLTIwIDA1OjM2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFByZXBhcmUgZm9yIG1vcmUgcmF3IGNvdW50ZXJzCiAgIAoyMDAxLTAxLTE1IDE1OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHVuZG8gYSBjaGFuZ2UgdGhhdCBzbmVha2VkIGluIGJ5IG1pc3Rha2UKICAgCjIwMDEtMDEtMTUgMTQ6MDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oOgoKICAgRXh0ZW5kIHRoZSBzeXN0ZW1TdGF0cy5jcHVSYXcgc2VjdGlvbiB0byBpbmNsdWRlIG1vcmUgcmF3IGNvdW50ZXJzIGZvciB2YXJpb3VzCiAgIG9wZXJhdGluZyBzeXN0ZW1zLiAgQmFzaWMgdGVzdGluZyBwZXJmb3JtZWQgZm9yIFNvbGFyaXMgYW5kIEZyZWVCU0QuIENvZGUKICAgZ3Vlc3N0aW1hdGUgZm9yIE5ldEJTRCBhbmQgQlNEaS4KICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYml0X3N0cmluZyBmaXhlcwogICAtIG1ha2Ugc25tcF9hZGRfdmFyIGNhbGwgc25tcF9wYXJzZV9vaWQoKSBpbnN0ZWFkIG9mIHJlYWRfb2JqaWQoKS4KICAgCjIwMDEtMDEtMTIgMDc6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgY29tbWVudCBvdXQgcmVhbGx5IG9kZCAoYW5kIGJyb2tlbikgY2hlY2sgZnJvbSBhc25fYml0c3RyaW5nX2NoZWNrPz8/CiAgIAoyMDAxLTAxLTEyIDA3OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLnN0b3JhZ2UuY29uZiwgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0xMCAyMTo1NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBjYWxsaW5nIG9mIGluaXRfY2FsbGJhY2tzIGV2ZW4gaWYgaW5pdF9zbm1wIGNhbGxlZCB3aXRoIE5VTEwgcGFyYW1ldGVyCiAgIAoyMDAxLTAxLTEwIDIxOjUzICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGJhZGx5IGFwcGxpZWQgcHJldmlvdXMgcGF0Y2gKICAgCjIwMDEtMDEtMTAgMjE6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBGaXggdXNhZ2UgbWVzc2FnZSAoLWUgaXMgbm93IC1DZSkKICAgCjIwMDEtMDEtMTAgMjE6NTEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEZpeCBhIGJhZCBpcFJvdXRlUHJvdG9jb2wgcmV0dXJuCiAgIAoyMDAxLTAxLTEwIDIxOjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgRml4IHByb2JsZW0gd2hlbiBydW5uaW5nIC0td2l0aG91dC1yb290LWFjY2VzcyBmb3IgRnJlZUJTRC4gVGhhbmtzIHRvCiAgIEJlcnQgRHJpZWh1aXMuCiAgIAoyMDAxLTAxLTEwIDIxOjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgVXNlIHRoZSBpZnNwZWVkIGF0dHJpYnV0ZSBmcm9tIGRyaXZlciB3aGVuIGF2YWlsYWJsZQogICAKMjAwMS0wMS0wOSAwNjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQXBwbHlpbmcgcGF0Y2ggZm91bmQgaW4gYnVnICMxMjcyOTk6CiAgICAgLSBzd2l0Y2ggaWZBZG1pbiBhbmQgaWZPcGVyU3RhdHVzIG1lYW5pbmdzIHRvIG1hdGNoIGtlcm5lbCBwYXJhbWV0ZXJzIGJldHRlci4KICAgCjIwMDEtMDEtMDkgMDY6MjEgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIGFkZGVkIGdldG9wdC5jIHRvIGxpc3QKICAgCjIwMDEtMDEtMDggMDg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFBhdGNoIGZyb20gQW5kZXJzIEVsbGVmc3J1ZAogICAgIC0gZml4IGhyX3N3cnVuIHdoZW4gcHJvZ3JhbXMgaGF2ZSBleGl0ZWQgc28gd2UgZG9uJ3QgdHJ1bmNhdGUKICAgICAgIGdldG5leHQgcXVlcmllcy4KICAgCjIwMDEtMDEtMDggMDg6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGZpeCBCSVRTIGVuY29kaW5nIGxlbmd0aCB3aGVuIG1pYiBrbm93bGVkZ2UgaXMgYXZhaWxhYmxlLgogICAKMjAwMS0wMS0wNCAyMzoxOCAgbmJhCgogICAqIGFwcHMvOiBzbm1wc2V0LmMsIHNubXB0cmFwLmM6CgogICBUcnkgZml4aW5nIHByb2JsZW1zIHdpdGggc25tcHNldCBvZiBuZWdhdGl2ZSB2YWx1ZXMKICAgCjIwMDEtMDEtMDQgMjM6MTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYzoKCiAgIEFkZCB0aGUgcmF3IGNwdSBjb3V0ZXJzIGZvciBCU0RpLiBDb3VydGVzeSBCZXJ0IERyaWVodWlzLgogICAKMjAwMS0wMS0wNCAyMzoxMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBTYXZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcwogICAKMjAwMS0wMS0wNCAyMzowOSAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEFkZCBtaXNzaW5nIGRtYWxsb2Mgc3VwcG9ydCBmb3Igc29tZSBmaWxlcwogICAKMjAwMS0wMS0wNCAyMzowNCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgRW5zdXJlIHNvcnQgb3JkZXIgZm9yIGNvbmZpZy5oLmluCiAgIAoyMDAxLTAxLTA0IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBzZW1pLWNvbG9uIHByb2JsZW0uICBQYXRjaCAjMTAzMTAxLgogICAKMjAwMS0wMS0wMyAwNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgL3Byb2MvJWQvY21kbGluZSBtYXkgYmUgYW4gZW1wdHkgZmlsZSBmb3Igc29tZSBwcm9jZXNzZXMuICBSZXR1cm4gIiIgaWYgc28uCiAgIAoyMDAxLTAxLTAyIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgYWRkIGEgIiVzIiBmb3JtYXR0aW5nIHN0cmluZyB0byB0aGUgc3lzbG9nKCkgY2FsbCAocmVkaGF0IGJ1ZyAjMTgxNTMpLgogICAKMjAwMC0xMi0yOSAxMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAtIGJldHRlciBjaGVja2luZyBmb3IgZm9ybWF0dGluZyBvZiB0aGUgL3Byb2MvbmV0L2RldiBmaWxlIHRvIGF2b2lkCiAgICAgICBsaW51eCBjb3JlIGR1bXBzIHdoZW4gdGhlIGtlcm5lbCBtaXMtYmVoYXZlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgIFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwgVDExM2FnZW50eHRyYXA6CgogICAtIHRyYXAgQVBJIHRlc3Rpbmcgc3VpdGUgZW5oYW5jZWQgdG8gdGVzdCBtb3JlIGNhc2VzLgogICAKMjAwMC0xMi0yNyAxNjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NhbGxiYWNrLmg6CgogICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgd29yayBtb3JlIHZpYSBjYWxsYmFja3MgYW5kIHJlbW92ZSBpZmRlZnMgaW4KICAgICBhZ2VudF90cmFwLmMKICAgLSBNYWtlIHRoZSBhZ2VudF90cmFwLmMgZmlsZSBjaGVjayBmb3IgY2FsbGJhY2sgcmVnaXN0cmF0aW9ucyBhbmQKICAgICBoYW5kbGUgaXQgaW50ZXJuYWxseSB1c2luZyB0aGUgb2xkIHRyYXBzaW5rIHN1cHBvcnQgaWYgbm8gY2FsbGJhY2sKICAgICBpcyBmb3VuZC4KICAgLSBUaGlzIGZpeGVzIHRoZSBwcm9ibGVtIHdoZW4gaW5pdF9taWJfbW9kdWxlcygpIGlzbid0IGNhbGxlZCBpbiBzdWJhZ2VudHMuCiAgIAoyMDAwLTEyLTI3IDE2OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBtYWtlIHRoZSBleGFtcGxlIHRyYXBzIGJlIHNlbnQgdXNpbmcgYSBlbnRlcnByaXNlIHNwZWNpZmljIHRyYXAgb2YgOTkKICAgcmF0aGVyIHRoYW4gMy4gIFdlIG5lZWQgdG8gZGVmaW5lIGl0IGluIHRoZSBtaWIgc3RpbGwuCiAgIAoyMDAwLTEyLTI3IDE1OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBicm9rZW4gY29tcGlsZXIgcHJlY2VkZW5jZSBhcyByZXBvcnRlZCBpbiBzdXBwb3J0ICMxMTA0NzMuCiAgIAoyMDAwLTEyLTIyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBjb3VudGVyNjQgcmV2ZXJzZSBlbmNvZGluZ3MuCiAgIAoyMDAwLTEyLTIyIDA2OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0yMSAxNDo0MyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGZpeCBwcm9ibGVtIHdpdGggcG9zaXRpb25hbCBjb21tdW5pdHkgYXJndW1lbnQgdG8gc25tcG5ldHN0YXQKICAgCjIwMDAtMTItMjEgMTQ6MzcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogbWFrZSBzdXJlIGluaXRfbWliX2ludGVybmFscyBpcyBjYWxsZWQgYmVmb3JlIGRvaW5nIGFueXRoaW5nCiAgIAlzZXJpb3VzIGluIGluaXRfbWliCiAgIAoyMDAwLTEyLTIxIDA4OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gZml4IHN1cHBvcnQgZm9yIEJJVFMKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjEuMiAtPiBWNC4yCgoyMDAwLTEyLTA0IDE1OjMwICBoYXJkYWtlcgoKCS0gKE5FV1MsIFJFQURNRSk6IHVwZGF0ZXMuCgkKMjAwMC0xMi0wNCAxNDo0OCAgbWFyegoKCWVuc3VyZSBtaWJsb2FkLnQgdXNlcyBjb3JyZWN0IE1JQkRJUiBmb3IgdGVzdGluZwoJCjIwMDAtMTItMDQgMTE6MDUgIGhhcmRha2VyCgoJLSAoQUdFTlQudHh0LCBGQVEsIFJFQURNRSk6IGNvbnZlcnQgdXJsJ3MgdG8gd3d3Lm5ldHNubXAub3JnLgoJCjIwMDAtMTItMDQgMDg6NDUgIGhhcmRha2VyCgoJLSAoTkVXUyk6IGFnZW50eCBub3RlIGNoYW5nZXMuCgkKMjAwMC0xMi0wMyAwNzoyOSAgbmJhCgoJLSBzbm1wdHJhcGRfbG9nLmM6IGZveCBtaXNzaW5nIGxlYWRpbmcgemVyb2VzIGZvciAlLjJkIGxpa2UgZm9ybWF0cy4KCQlBZGQgYW4gYWx0ZXJuYXRlIGZvcm1hdCBmb3IgdXAtdGltZSBkaXNwbGF5cy4KCQoyMDAwLTEyLTAyIDE4OjIyICBtYXJ6CgoJZm91bmQgdGhlIHVuaW5pdGlhbGl6ZWQgZGF0YSBidWcuLi5tdXN0IGhhdmUgYmVlbiBpbiB0aGVyZSBkb3JtYW50IGZvciBhIHdoaWxlLCBvdGhlciB0ZXN0IGZpeGVzIC0gZ29vZCB0byBnbyEKCQoyMDAwLTEyLTAxIDE2OjM2ICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCgkKMjAwMC0xMi0wMSAxNjozNSAgaGFyZGFrZXIKCgktIChBR0VOVC50eHQpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCgkKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCgktIChUT0RPKTogcmVmZXJlbmNlIG5ldC1zbm1wLWNvZGVycy4KCQoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE2OjMzICBoYXJkYWtlcgoKCS0gKGJ1Zy1yZXBvcnQsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiByZW1vdmUgdGhlIGJ1ZyByZXBvcnQgc2NyaXB0LgoJCjIwMDAtMTItMDEgMTY6MzEgIGhhcmRha2VyCgoJLSAoUE9SVElORyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKCS0gKG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZik6IG1lbnRpb24gdGhlIGZhY3QgdGhhdCBzbm1wdjMgdHJhcHMgYXJlCgkgIHRoZSBzYW1lIGFzIHNubXB2MiB0cmFwcy4KCQoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKCS0gKE5FV1MpOiB1cGRhdGUuCgkKMjAwMC0xMi0wMSAxNTozMSAgaGFyZGFrZXIKCgktIChSRUFETUUpOiB1cGRhdGUuCgkKMjAwMC0xMi0wMSAxNToxNiAgaGFyZGFrZXIKCgktIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIGZvciBwcm94eSBzdXBwb3J0LgoJCjIwMDAtMTItMDEgMTQ6MzYgIGhhcmRha2VyCgoJLSAoRkFRKTogdXBkYXRlIGEgZmV3IHRoaW5ncy4KCQoyMDAwLTEyLTAxIDE0OjI4ICBuYmEKCgktIG1pYi5jOiBkaWFnbm9zZSB3cm9uZyBxdW90aW5nIGluIGluZGljZXMKCQoyMDAwLTEyLTAxIDE0OjIzICBuYmEKCgktIHBhcnNlLmM6IGFkZCBSRkMtMTIxMyBhcyBhbiBhbGlhc2UgZm9yIFJGQzEyMTMtTUlCICh1c2VkIGluIG1hbnkgbWlicykKCQoyMDAwLTEyLTAxIDE0OjE5ICBuYmEKCgktIHNtdXguYzogcmVmb3JtYXQgc29tZSBkZWJ1ZyBtZXNzYWdlcyBmb3IgcmVhZGFiaWxpdHkKCQoyMDAwLTEyLTAxIDE0OjE3ICBuYmEKCgktIGludGVyZmFjZXMuYzogZml4IGlmVHlwZSB2YWx1ZXMgZm9yIExpbnV4CgkKMjAwMC0xMi0wMSAxNDoxNCAgbmJhCgoJLSBzdWJhZ2VudC5jOiBzdXBwbHkgYSBtaXNzaW5nIHJldHVybiB2YWx1ZQoJCjIwMDAtMTItMDEgMTA6MDQgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBxdW90ZSB0aGluZ3Mgd2l0aCBzcGFjZXMgaW4gdGhlbS4KCQoyMDAwLTEyLTAxIDA5OjQ5ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mLjEpOiBxdWljayBtYW4gcGFnZSBmb3Igc25tcGNvbmYuCgkKMjAwMC0xMi0wMSAwOToxNSAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9tb25pdG9yKTogY2xlYW51cHMuCgkKMjAwMC0xMi0wMSAwOToxNCAgaGFyZGFrZXIKCgktIChzbm1wbGliL3BhcnNlLmMpOiBjaGFuZ2Ugbm8tcGFyZW50IGxvZyBtZXNzYWdlIGludG8gYSB3YXJuaW5nLgoJCjIwMDAtMTItMDEgMDk6MTEgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgpOiB1cGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTItMDEgMDk6MTAgIGhhcmRha2VyCgoJLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZS4KCQoyMDAwLTEyLTAxIDA3OjU5ICBoYXJkYWtlcgoKCS0gKGFnZW50L2FnZW50X3RyYXAuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CgkgIC0gc3VwcG9ydCB2Mi0+djEgdHJhcCBjb252ZXJzaW9uLgoJCjIwMDAtMTItMDEgMDc6NTYgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0eXBvLgoJCjIwMDAtMTItMDEgMDc6NDIgIG1hcnoKCglhZGRpdGlvbmFsIGZpeGVzIHRvIHN1cHBvcnQgdGFyZ2V0dGVkIGJ1aWxkcyBvZiBwZXJsL1NOTVAgdXNpbmcgLU5FVC1TTk1QLVBBVEggKGFuZCB3aGl0ZSBzcGFjZSByZW1vdmFsIGFzIG15IGVtYWNzIGtpbmRseSBkb2VzIHRoYXQgZm9yIG1lPykKCQoyMDAwLTExLTMwIDE0OjA2ICBuYmEKCgktIGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDogZXh0ZXJuICJDIiBicmFja2V0aW5nCgkKMjAwMC0xMS0zMCAxNDowNCAgbmJhCgoJLSBzbm1wZC5jb25mLjUuZGVmOiBmaXggZm9ybWF0dGluZyBvZiBzbXV4cGVlciB0b2tlbgoJCjIwMDAtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgoJLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZS4KCQoyMDAwLTExLTMwIDEwOjE4ICBoYXJkYWtlcgoKCS0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBiYWQgc2V0cyBmb3IgYWdlbnR4LgoJCjIwMDAtMTEtMzAgMDk6MTkgIGhhcmRha2VyCgoJLSAob3YvUkVBRE1FKTogbWlub3IgY29ycmVjdGlvbnMsIHByb2JhYmx5IHN0aWxsIGluY29ycmVjdC4KCQoyMDAwLTExLTMwIDA5OjE4ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluLCBzbm1wY29uZiwgYWNsLCBiYXNpY19zZXR1cCwgbW9uaXRvciwgb3BlcmF0aW9uLAoJICBzeXN0ZW0sIHRyYXBzaW5rcyk6CgkgIC0gZ3JvdXBpbmcgc3VwcG9ydC4KCSAgLSBzb3J0LW9mLXF1aWV0IG91dHB1dCBzdXBwb3J0LgoJICAtIG9wZXJhdGlvbiBtb2RlIHN1cHBvcnQgKHNldHRpbmcgdXNlciwgZ3JvdXAsIHBvcnRzLi4uKQoJCjIwMDAtMTEtMzAgMDk6MTMgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2F2ZSBhIHdhcm5pbmcgaGVhZGVyIGF0IHRoZSB0b3Agb2YgdGhlCgkgIHBlcnNpc3RlbnQgZGF0YSBmaWxlLgoJCjIwMDAtMTEtMzAgMDk6MTEgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jKTogQ2xlYW51cCBwYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCgkKMjAwMC0xMS0zMCAwOToxMCAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wZC5jKTogc2V0IERTX0FHRU5UX05PX1JPT1RfQUNDRVNTIGluIC1IIGhlbHAgb3V0cHV0LgoJCjIwMDAtMTEtMzAgMDk6MDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtZW50aW9uIHRoZSBUVU5ORUwtTUlCIHN1cHBvcnQuCgkKMjAwMC0xMS0yOSAxODoyMSAgc2xpZgoKCVVwZGF0ZSBlLW1haWwgYWRkcmVzcyBmb3IgU2xpZmNhawoJCjIwMDAtMTEtMjkgMTE6MzQgIG1hcnoKCglmaXhlZCBvcmRlciBvZiBmdW5jdGlvbiBjaGVja2luZyBzbyB0aGF0IHZzbnByaW50ZiBpcyBub3QgZm91bmQgaW4gbGliZGIgKEJTRCBkYikgYnkgbWlzdGFrZQoJCjIwMDAtMTEtMjkgMDU6MTggIG1hcnoKCglwYXJ0aWFsIHN1Ym1pdCB0byBnZXQgcGVybC9TTk1QIHRlc3RzIHRvIHBhc3MgYW5kIHVwZGF0ZSB0aGUgZG9jcyBzb21ld2hhdCAtIHN0aWxsIGdldHRpbmcgY29yZXMgaW4gbm90aWZ5LnQuIGhhZCB0byBjaGFuZ2UgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyB1c2VyIGluY2FzZSAyIHNlc3Npb25zIGFyZSBzdGFydGVkIHdpdGggdGhlIHNhbWUgdXNlcgoJCjIwMDAtMTEtMjggMTg6MDAgIG1hcnoKCglwYXJ0aWFsIHN1Ym1pdCB0byBnZXQgcGVybC9TTk1QIHRlc3RzIHRvIHBhc3MgYW5kIHVwZGF0ZSB0aGUgZG9jcyBzb21ld2hhdCAtIHN0aWxsIGdldHRpbmcgY29yZXMgaW4gbm90aWZ5LnQuIGhhZCB0byBjaGFuZ2UgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyB1c2VyIGluY2FzZSAyIHNlc3Npb25zIGFyZSBzdGFydGVkIHdpdGggdGhlIHNhbWUgdXNlcgoJCjIwMDAtMTEtMjcgMTQ6MzcgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvYmFzaWNfc2V0dXApOiBiYXNpYyBzZXR1cCBzZXJpZXMgb2YgcXVlc3Rpb25zLgoJCjIwMDAtMTEtMjcgMTQ6MzYgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvYWNsKTogdHlwb3MuCgkKMjAwMC0xMS0yNyAxNDozNiAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZik6CgkgIC0gYWRkIHN1cHBvcnQgZm9yICJncm91cHMiIG9mIGl0ZW1zLgoJICAtIGRvbid0IHVzZSBJTzo6RGlyLCBhcyBpdHMgbm90IGluIHRoZSBzdGFuZGFyZCBwZXJsIG1vZHVsZSBkaXN0cmlidXRpb25zLgoJCjIwMDAtMTEtMjcgMTQ6MzQgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCk6IHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZSByZWZlcmVuY2UuCgkKMjAwMC0xMS0yNyAxNDozMyAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGZpeCBhdXRvLXNldCBzdXBwb3J0IGZvciB0aGUgYWdlbnQgKGFuZCBwbHVnIGEgbWVtb3J5IGxlYWspLgoJCjIwMDAtMTEtMjcgMTM6NDIgIG5iYQoKCS0gc25tcC5jb25mLjUuZGVmOiBkb2N1bWVudCB0b2tlbnMgZXh0ZW5kZWRJbmRleCBhbmQgbm9SYW5nZUNoZWNrCgkKMjAwMC0xMS0yNyAxMzo0MSAgbmJhCgoJLaBwYXJzZS5jOiBmaXggYSBDKysgc3R5bGUgY29tbWVudAoJCjIwMDAtMTEtMjQgMTU6MTQgIG5iYQoKCS0gbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdF9uZXRic2QxLmM6IG1pbm9yIGZpeGVzIGZvciBOZXRCU0QgMS41LCBPUGVuQlNEIDIuNgoJCjIwMDAtMTEtMjIgMTM6NDggIGhhcmRha2VyCgoJLSAobWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyk6IFBhdGNoIGZyb20gU2VhbiBIYXJkaW5nOgoJICAtIGRvbid0IGV4cG9ydCBhbiBpbnRlcm5hbCB2YXJpYWJsZS4KCQoyMDAwLTExLTIxIDE1OjE3ICBuYmEKCgktIG1pYi5jOiBmaXggcGFyc2luZyBvZiBvaWQgbGlrZSA5OS4xMy5cImd1ZlwiOAoJCjIwMDAtMTEtMTkgMTM6MDMgIG5iYQoKCS0gU05NUC54cywgbWliMmMudmFydHlwZXMuY29uZjogVGhlIHJlY2VudCBzcGVjaWFsaXNhdGlvbiBvZiB0aGUgSW50ZWdlcgoJCXR5cGVzIGluIHRoZSBwYXJzZXIgY3JlYXRlZCBwcm9ibGVtcyBmb3IgdGhlIHBlcmwgbW9kdWxlIGFuZCBpbiB0dXJuCgkJZm9yIG1pYjJjLiBTb3JyeSBmb3Igbm90IGNhdGNoaW5nIHRoaXMgYmVmb3JlIHByZTIgOi0oCgkKMjAwMC0xMS0xOSAxMjo1OCAgbmJhCgoJLSBmaXhlcyB0byAuL2NvbmZpZ3VyZSAtLXdpdGgtZGVmYXVsdHMgLS1lbmFibGUtbWluaS1hZ2VudDsgbWFrZSBpbnN0YWxsCgkJYW5kIHJ1biB0aGUgdG9vbHMgdW5kZXIgY3lnd2luLiBIYXZlbid0IHRyaWVkIHRoZSBhZ2VudCB5ZXQgOi0pCgkKMjAwMC0xMS0xOCAwNzoxNCAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUyICkKCQoyMDAwLTExLTE4IDA3OjEyICBoYXJkYWtlcgoKCS0gKFQwNDlzbm1wdjNpbmZvcm0pOiB2MyBpbmZvcm0gdGVzdCBhZGRlZC4KCQoyMDAwLTExLTE3IDExOjAxICBuYmEKCgktIG1pYi5jLCBzbm1wX2FwaS5jOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIGJhZCBzbm1wc2V0IGNhbGxzIGFuZCBiYWQKCQlpbmRpY2VzLiBBbHNvIGZpeCBhIGJ1ZyB3aXRoIHF1b3RlZCBpbmRpY2VzLgoJCjIwMDAtMTEtMTcgMTA6MzIgIGhhcmRha2VyCgoJLSAodGVzdHMvVDA1MHNubXB2M3RyYXApOiB0ZXN0IGZvciBzbm1wdjMgdHJhcHMuCgkKMjAwMC0xMS0xNyAxMDozMCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IGZpeCBjYXNlcyB3aGVyZSB0aGUgZm9ybWF0IHN0cmluZ3MgYXJlIHNwZWNpZmllZC4KCQoyMDAwLTExLTE3IDEwOjI2ICBuYmEKCgktIElBTkFpZlR5cGUtTUlCLnR4dDogdXBkYXRlIGZyb20gSUFOQQoJCjIwMDAtMTEtMTcgMDg6MzIgIGhhcmRha2VyCgoJLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CgkgIC0gZml4IG1lbW9yeSBsZWFrcy4KCSAgLSBmaXggYWdlbnR4IHByb2JsZW1zIHdpdGggYmFkIHNldHMuCgkKMjAwMC0xMS0xNiAxNzo1NSAgaGFyZGFrZXIKCgktIChzbm1wbGliL3NubXB2My5jKTogYWRkZWQgYSBzcGFjZSBpbiBhIGRlYnVnZ2luZyBvdXRwdXQgc3RhdGVtZW50LgoJCjIwMDAtMTEtMTYgMTc6NTQgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2ltcGxlIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYWRkZWQuCgkKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBzZXQgRFNfTElCX0FQUFRZUEUgaWYgaXQgaGFzbid0IGJlZW4gc2V0IHlldC4KCQoyMDAwLTExLTE2IDE3OjUyICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGFkZCBDT05GSUdUUkFQRC4KCQoyMDAwLTExLTE2IDE3OjUwICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCgkgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCk6CgkgIC0gc3VwcG9ydCAtSXIgZm9yICJkb250IGNoZWNrIHJhbmdlL3R5cGUgdmFsdWVzIiAobGV0dGVyIHIgc3ViamVjdCB0byBkZWJhdGUpLgoJCjIwMDAtMTEtMTYgMTc6MjUgIGhhcmRha2VyCgoJLSAoY2FsbGJhY2suYyk6IGJldHRlciBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGRpc3BsYXkgYSBjYWxsYmFjayBjb3VudCB3aGVuIGRvbmUuCgkKMjAwMC0xMS0xNiAxNjo1MiAgaGFyZGFrZXIKCgktIChUMTEzYWdlbnR4dHJhcCk6IEEgbmV3IHRlc3QgdG8gdGVzdCB0cmFwIHN1cHBvcnQgZnJvbSBhZ2VudHggc3ViYWdlbnRzLgoJCjIwMDAtMTEtMTYgMTY6NTAgIGhhcmRha2VyCgoJLSAoVDA1OGFnZW50YXV0aHRyYXApOiBzbGVlcCBzb21lIGFuZCBvbmx5IHBlcmZvcm0gb25lIGdldCByZXF1ZXN0LgoJCjIwMDAtMTEtMTYgMTY6NDkgIGhhcmRha2VyCgoJLSAoVDA1NGFnZW50djJjdHJhcCk6IHNsZWVwIGEgYml0IGFuZCBvbmx5IHNlbmQgb25lIHNubXAgc2V0IHJlcXVlc3QuCgkKMjAwMC0xMS0xNiAxNTo0NyAgbmJhCgoJLSBnZXRvcHQuYzogcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKCQoyMDAwLTExLTE2IDE1OjMxICBuYmEKCgktIHBhcnNlLltjaF0sIG1pYi5jLCBzbm1wX2FwaS5jOiByZW5hbWUgVFlQRV9VSU5URUdFUjMyIGJhY2sgdG8gVFlQRV9VSU5URUdFUgoJCjIwMDAtMTEtMTYgMTU6MTYgIG5iYQoKCS0gc25tcHRyYXBkLmMsIHNubXB0cmFwZC5jb25mOiBuZXcgY29uZmlnIGRpcmVjdGl2ZXMgZm9ybWF0MSBhbmQgZm9ybWF0MiB0bwoJCXNldCBsb2cgZm9ybWF0cyBmb3IgVFJBUDEgYW5kIFRSQVAyIHBkdXMuCgkKMjAwMC0xMS0xNiAxMzo1MCAgbmJhCgoJLSBzbm1wX2FwaS5jOiBhZGQgZnVuY3Rpb25hbGl0eSB0byBjaGVjayB2YWx1ZSB0eXBlcyBpbiBhZGRpdGlvbiB0byByYW5nZXMKCQlmb3Igc25tcHNldCBhbmQgc25tcHRyYXAuCgkKMjAwMC0xMS0xNiAxMzo0NyAgbmJhCgoJLSBwYXJzZS5jOiBGaXggREVGVkFMIHBhcnNpbmcgZm9yICBPQkpFQ1QgSURFTlRJRklFUiBvciBCSVRTIHZhbHVlcwoJCShpLmUuIERFRlZBTCB7IHsgMCAwIH0gfSBldGMpCgkKMjAwMC0xMS0xNiAxMTozOSAgaGFyZGFrZXIKCgktIChUMDU4YWdlbnRhdXRodHJhcCk6IGFkZCBhIGdyZWF0ZXIgdGltZW91dCB0byB0aGUgZ2V0IHJlcXVlc3QuCgkKMjAwMC0xMS0xNiAxMTozNSAgaGFyZGFrZXIKCgktIChleGFtcGxlLmMpOgoJICAtIHNlbmQgYSB2MmMgdHJhcCB1c2luZyBpdHMgb3duIGRhdGEsIG5vdCB0aGUgc3lzdGVtX21pYidzLgoJICAtIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCgkKMjAwMC0xMS0xNiAxMTozNCAgaGFyZGFrZXIKCgktIChUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsIFQwNThhZ2VudGF1dGh0cmFwKToKCSAgLSBuZXcgdGVzdHMgZm9yIHRyYXBzIHNlbnQgYnkgdGhlIGFnZW50LgoJCjIwMDAtMTEtMTYgMDk6NTYgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmMpOiBEb24ndCBkZWxldGUgUkVBRE9OTFkgdHJhcCBzZXNzaW9ucy4KCQoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0pOiB0ZXN0IGluZm9ybSBzZW5kaW5nL3JlY2VpdmluZy4KCQoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXAuYywgbWFuL3NubXB0cmFwLjEpOiBzdXBwb3J0IC1DaSBmb3Igc2VuZGluZyBpbmZvcm1zLgoJCjIwMDAtMTEtMTUgMTU6NDggIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkX2xvZy5jKTogdXNlIFNOTVBfTUFYQlVGIGluc3RlYWQgb2YgYSBsb2NhbCBsZW5ndGggZGVmaW5pdGlvbi4KCQoyMDAwLTExLTE1IDE0OjE4ICBuYmEKCgktIE1ha2VmaWxlLmluOiBmaXggbWFrZSdpbmcgaW4gcmVtb3RlIGRpcmVjdG9yeQoJCjIwMDAtMTEtMTUgMTQ6MTEgIG5iYQoKCS0gbWFpbi5jOiB1cGRhdGUgdG8gdXNlIGdldG9wdCBmb3IgYXJndW1lbnQgcGFyc2luZy4KCQoyMDAwLTExLTE1IDE0OjEwICBuYmEKCgktIHNubXBfYWdlbnQuYzogZml4IGEgY29uZnVzaW5nIGluZGVudGF0aW9uLgoJCjIwMDAtMTEtMTUgMTQ6MDkgIG5iYQoKCS0gYWdlbnRfdHJhcC5jOiBtYWtlIHN1cmUgY29tbXVuaXR5IGlzIFwwLXRlcm1pbmF0ZWQgaW4gdGFyZ2V0UGFyYW1zVGFibGUKCQoyMDAwLTExLTE1IDE0OjAzICBuYmEKCgktIHNubXB0cmFwZF9sb2c6IGZpeCBhIGJ1ZmZlciB0aGF0IGlzIHdheSB0b28gc2hvcnQgZm9yIGEgdHJhcCB3aXRoIGp1c3QgYQoJCXNpbmdsZSBwYXJhbWV0ZXIuIEZpeCBhIGJhZCBsaW1pdCB0ZXN0IGluIHN0cl9hcHBlbmQuCgkKMjAwMC0xMS0xNSAxNDowMCAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLmM6IGZpeCBhIHN0dXBpZCBwZXJyb3IgZm9yIHNubXBfcGVycm9yCgkKMjAwMC0xMS0xNSAxMzo1OCAgbmJhCgoJLSBwYXJzZS5bY2hdLCBtaWIuYzogZW5oYW5jZSB0aGUgcGFyc2VyIHRvIGRpc3Rpbmd1aXNoIElOVEVHRVIsIEludGVnZXIzMiwKCQlVbnNpZ25lZDMyLCBVSW50ZWdlcjMyLgoJCjIwMDAtMTEtMTUgMTM6NTUgIG5iYQoKCXNubXBfYXBpLmM6IHJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUKCQoyMDAwLTExLTE1IDA3OjQ5ICBoYXJkYWtlcgoKCS0gKHNubXBfdmFycy5jLCBzdWJhZ2VudC5jKTogUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkOgoJICAtIERvbid0IG1ha2UgaW5pdF9hZ2VudCgpL3N1YmFnZW50X3ByZV9pbml0KCkgZXhpdCBidXQgcmV0dXJuIGFuCgkgICAgZXJyb3IgY29uZGl0aW9uIGluc3RlYWQuCgkKMjAwMC0xMS0xMiAwODowOCAgaGFyZGFrZXIKCgktICh1Y2REZW1vUHVibGljLmMpOiBhZGQgTlVMTCB0byBlbmQgb2YgZGVtbyBzdHJpbmcgYW5kIGNoZWNrIGZvciBsZW49MC4KCQoyMDAwLTExLTEyIDA0OjQ1ICBuYmEKCglzbm1wX2FwaS5jOiBNYWtlIHN1cmUgdGhlIG5vUmFuZ2VDaGVjayB0b2tlbiBpcyBhIGJvb2xlYW4KCQoyMDAwLTExLTEyIDA0OjQxICBuYmEKCgktIG1pYi5jOiBnaXZlIHRoZSB0cmVlLXRvcCBhIG5hbWUgdG8gcHJvdGVjdCBlcnJvciBtZXNzYWdlIHdoZW4gbG9va2luZyB1cCAuZm9vCgkKMjAwMC0xMS0xMiAwNDozNiAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLmM6IHVzZSBjb25maWdfcGVycm9yIGZvciBhIGJldHRlciBlcnJvciBtZXNzYWdlCgkKMjAwMC0xMS0xMiAwNDozNCAgbmJhCgoJLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTEtMTIgMDQ6MzMgIG5iYQoKCS1hZ2VudF90cmFwcy5jOiBNb3ZlIGEgY29uZGl0aW9uYWxseSB1c2VkIHZhcmlhYmxlCgkKMjAwMC0xMS0xMiAwNDozMiAgbmJhCgoJRml4IGEgYm9ndXMgI2lmZGVmCgkKMjAwMC0xMS0xMCAwOToxOCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFwcGx5IHBhdGNoICMxMDIyMjQgZnJvbSBqYnBuIGZvciBjcm9zcy1jb21waWxpbmcuCgkKMjAwMC0xMS0xMCAwODo1NiAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwKToKCSAtIGZpcnN0IHBhc3MgYXQgYSB0ZXN0aW5nIHNjcmlwdCB0byB0ZXN0IHRyYXAgZnVuY3Rpb25hbGl0eS4KCSAgIC0gd2hpY2ggZXZlbiB1bmNvdmVyZWQgYSBidWcuCgkKMjAwMC0xMS0xMCAwODo1NSAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwZC5jKToKCSAgLSBmb3JrIGlmIGZpbGUgbG9nZ2luZyBvciBzeXNsb2dnaW5nLCBidXQgbm90IHByaW50aW5nLgoJICAtIGRvbid0IGNsb3NlIG9wZW4gZmlsZSBkZXNjcmlwdG9ycy4gIFRoZXJlIHNob3VsZG4ndCBiZSBhbnkuCgkKMjAwMC0xMS0xMCAwODo1MyAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwZF9sb2cuYyk6IHByb3Blcmx5IG51bGwgdGVybWluYXRlIGxvZyBzdHJpbmdzLgoJCjIwMDAtMTEtMDkgMTY6NDAgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLmluKTogYXR0ZW1wdCB0byBpbXBsZW1lbnQgYSAtLXdpdGgtcnNhcmVmIGZsYWcuCgkKMjAwMC0xMS0wOSAxNTozMiAgaGFyZGFrZXIKCgktIChSRUFETUUsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCgkKMjAwMC0xMS0wOSAxNTozMSAgaGFyZGFrZXIKCgktIChORVdTLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgoJCjIwMDAtMTEtMDkgMTQ6NTYgIGhhcmRha2VyCgoJLSAoZXhhbXBsZXMvYnVsa3dhbGsucGwsIHQvYnVsa3dhbGsudCk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KCQoyMDAwLTExLTA5IDE0OjUzICBoYXJkYWtlcgoKCS0gKE1BTklGRVNULCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBzdXBwb3J0IGJ1bGsgcmVxdWVzdHMuCgkKMjAwMC0xMS0wOCAyMzozMyAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogZml4IC1IIG91dHB1dC4KCQoyMDAwLTExLTA4IDIzOjAyICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IG1ha2UgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBjYWxsIHJ1bl9hbGFybXMoKS4KCQoyMDAwLTExLTA4IDIyOjQ1ICBoYXJkYWtlcgoKCS0gKGRpc2tpby5jKTogZml4IE9JRC4KCQoyMDAwLTExLTA4IDE3OjA2ICBoYXJkYWtlcgoKCS0gKFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIE1hcmsgQ2F2YWdlIGZvciBkZWZhdWx0IHZhbHVlIHN1cHBvcnQuCgkKMjAwMC0xMS0wOCAxNzowMyAgaGFyZGFrZXIKCgktIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IG1pbmltYWwgREVGVkFMIHBhcnNpbmcgc3VwcG9ydC4KCQoyMDAwLTExLTA4IDE2OjIwICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgbGlicnNhcmVmLCBldGMsIGlmIG5lZWRlZC4KCQoyMDAwLTExLTA3IDE1OjE1ICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKCSAgYWdlbnQvc25tcGQuYyk6CgkgIC0gdWlkL2dpZCBjaGFuZ2VzLgoJCjIwMDAtMTEtMDcgMTU6MTAgIGhhcmRha2VyCgoJLSAoU05NUC54cyk6IGZpeCBUWVBFX05PVElGIC0+IFRZUEVfTk9USUZUWVBFLgoJCjIwMDAtMTEtMDcgMTE6MzAgIGhhcmRha2VyCgoJLSAoU05NUC9TTk1QLnBtLCBTTk1QL1NOTVAueHMpOiBQYXRjaCBmcm9tIEpvZSBDbGFya2U6CgkgIC0gaW1wbGVtZW50IGJlc3QtZ3Vlc3MgKC1JYikgcGFyc2luZy4KCSAgLSBhY2Nlc3MgdG8gdHJhcCB2YXJiaW5kcy4KCSAgLSByYW5nZSBhY2Nlc3MuCgkKMjAwMC0xMS0wNyAxMTowMCAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogaWdub3JlIGJ1aWxkIGNyZWF0ZWQgZmlsZXMuCgkKMjAwMC0xMS0wNyAxMDo1OCAgaGFyZGFrZXIKCgktIChSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBpbXBsZW1lbnQgYSBmaW5pc2goKSBjYWxsLgoJCjIwMDAtMTEtMDcgMTA6NTQgIGhhcmRha2VyCgoJLSAoU05NUC9TTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gbXVsdGlwbGUgY2FsbGJhY2sgcGF0Y2ggZm9yIHBlcmwvU05NUC9TTk1QLnhzLgoJCjIwMDAtMTEtMDcgMTA6NDggIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBvcHRpb25hbCBjb25maWcgZmlsZSBETkUuCgkKMjAwMC0xMS0wNyAxMDo0MSAgaGFyZGFrZXIKCgktIChTTk1QLnBtKTogZml4IGlpZCBwYXJzaW5nIHdpdGggcmVzcGVjdCB0byBtaWIgbm9kZXMgd2l0aCBhIC0gaW4gaXQuCgkKMjAwMC0xMS0wNyAxMDoyOSAgaGFyZGFrZXIKCgktIChpZl9maWVsZHMuaCwgaW50ZXJmYWNlcy5jLCBpcE1lZGlhLmMsIGlwUm91dGUuYywgdGNwLmMsIHRjcFRhYmxlLmMsCgkgIHVkcC5jLCB1ZHBUYWJsZS5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIG1pYkpKIGZpeGVzIFtGcmVlQlNEL290aGVyIEJTRCdzXS4KCQoyMDAwLTExLTA3IDEwOjEzICBoYXJkYWtlcgoKCS0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBkLmMsCgkgIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGltcGxlbWVudCB1aWQvZ2lkIGNoYW5nZXMgYWZ0ZXIgc3RhcnR1cCBmb3IgdGhlIGFnZW50LgoJCjIwMDAtMTEtMDcgMDg6MzMgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmMpOiBhIGJldHRlciBzYW5pdHkgY2hlY2sgZm9yIHNlc3Npb24gZGVsZXRpb24uCgkKMjAwMC0xMS0wNyAwNzoyNCAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IFBhdGNoIGZyb20gRGF2ZSB0byBzYW5pdHkgY2hlY2sgcGFyYW0tPnVwZGF0ZVRpbWUuCgkKMjAwMC0xMS0wNiAxMTowMCAgaGFyZGFrZXIKCgktIChtZDUuYyk6IGNoZWNrIHRvIHNlZSB0aGF0IE1Ec2lnbigpIGRhdGEgbGllcyBvbiBhIDMyIGJ5dGUgYm91bmRyeS4KCSAgLSBpdHMgcG9zc2libGUgc29tZSBjb21waWxlcnMgd2lsbCBjaG9rZSBvbiB0aGlzIGhhY2suCgkgIC0gZml4ZXMgYnVnICMxMjE3NS4KCQoyMDAwLTExLTAzIDE3OjU0ICBoYXJkYWtlcgoKCS0gKG1pYjJjKTogc29ydCBPSURzIHByb3Blcmx5LgoJCjIwMDAtMTEtMDMgMTY6NDQgIGhhcmRha2VyCgoJLSAoZXhhbXBsZS5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBmaXggbWliIHJlZ2lzdHJhdGlvbnMgZm9yIGR1cGxpY2F0ZSBPSURzIGJlaW5nIHVzZWQgZm9yIHRoZSB0cmFwIGV4YW1wbGVzLgoJCjIwMDAtMTEtMDMgMTU6MzEgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgoJICAtIFVtLCBhcHBsaWVkIGNvcnJlY3RseSB0aGlzIHRpbWUgKEkgaG9wZSkuCgkKMjAwMC0xMS0wMyAxNToyOSAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCgkKMjAwMC0xMS0wMiAyMjoxOSAgbmJhCgoJQ2xlYW4gdXAgc29tZSB1bnVzZWQgdmFyaWFibGVzIGV0Yy4KCQoyMDAwLTExLTAyIDIyOjE2ICBuYmEKCgktIE1ha2VmaWxlLmluOiBmaXggc29tZSAkKHNyY2RpcikgcmVmZXJlbmNlcyB3aGVuIHJ1bm5pbmcgb3V0c2lkZSBzb3VyY2UKCQoyMDAwLTExLTAyIDIyOjE1ICBuYmEKCgktIHNubXB0cmFwZC5jOiBmaXggdGhlIGZvcm1hdCBzdHJpbmcgZm9yIGZvcm1hdF90cmFwCgkKMjAwMC0xMS0wMiAyMjoxNCAgbmJhCgoJLSBNYWtlZmlsZS5pbjogcmVtb3ZlIHNvbWUgZHVwbGljYXRlcyBmcm9tIGZpbGUgbGlzdHMKCQoyMDAwLTExLTAyIDIyOjEyICBuYmEKCglEb2N1bWVudCB0aGUgLU9YIG91dHB1dCBvcHRpb24KCQoyMDAwLTExLTAyIDIyOjExICBuYmEKCglEb2N1bWVudCB0aGUgc3lzc2VydmljZXMgdG9rZW4KCQoyMDAwLTExLTAyIDE2OjE3ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgpOiBhZGQgdWNkLXNubXAvcHJveHkuCgkKMjAwMC0xMS0wMiAxNjoxNiAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC92ZXJzaW9udGFnKTogY2hhbmdlIGN2cyBhcmNoaXZlIHNpdGUgYW5kIHBhY2thZ2UgbmFtZS4KCQoyMDAwLTExLTAyIDEzOjIzICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IFBhdGNoIDEwMjIzOSBmcm9tIGRvdWd3YXJ6IHRvIGZpeCBhIHByZXZpb3VzbHkgYmFkIHNtdXguYyBwYXRjaC4KCQoyMDAwLTExLTAxIDE2OjM2ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTEgKQoJCjIwMDAtMTEtMDEgMTY6MTQgIGhhcmRha2VyCgoJLSAoVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsIFQxMjJwcm94eXNldGZhaWwpOiBwcm94eSB0ZXN0IHN1aXRlLgoJCjIwMDAtMTEtMDEgMTY6MDggIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCk6CgkgIC0gbWluaW1hbCBTRVQgc3VwcG9ydCBmb3IgdGhlIHByb3h5IGNvZGUuCgkKMjAwMC0xMS0wMSAxMDoyMiAgaGFyZGFrZXIKCgktIChUMTEyYWdlbnR4c2V0ZmFpbCk6IHRlc3QgZm9yIGFnZW50eCBzZXRzIHRoYXQgc2hvdWxkIGZhaWwgcHJvcGVybHkuCgkKMjAwMC0xMC0zMSAxNDozMCAgbmJhCgoJLSB0Y3BUYWJsZS5jOiByZW1vdmUgYW4gdW5uZXNjZXNzYXJ5ICNpbmNsdWRlCgkKMjAwMC0xMC0zMSAxNDoyOCAgbmJhCgoJLSBzbXV4LmM6IGZpeCB3cm9uZyB2YXJpYWJsZSBsZW5ndGgKCQoyMDAwLTEwLTMxIDE0OjI1ICBuYmEKCgktIHByb3RvY29sLmM6IGZpeCBzb21lIHN1c3BpY2lvdXMgbG9va2luZyBjb2RlCgkKMjAwMC0xMC0zMSAxNDoyMSAgbmJhCgoJLSBtYW4vc25tcGQuY29uZjogZml4IGEgdHlwbwoJCjIwMDAtMTAtMzEgMTI6NDEgIG5iYQoKCS0gbWliLmM6IGFkZCAtT1ggb3V0cHV0IGZvcm1hdCwgZm9yIGp1c3QgYW5vdGhlciB3YXkgb2YgcHJpbnRpbmcgaW5kaWNlcwoJCjIwMDAtMTAtMzEgMTI6MjcgIG5iYQoKCS0gaW50ZXJmYWNlLmM6IGFkZCAiaW50ZXJmYWNlIiBjb25maWcgZm9yIHVuZ3Vlc3NhYmxlIGludGVyZmFjZSB0eXBlL3NwZWVkCgkKMjAwMC0xMC0zMSAxMjoyNSAgbmJhCgoJLSBhcHBzLyo6IG1ha2Ugc3VyZSB3ZSByZXBvcnQgYW55IGVycmluZGV4L2VycmNvZGUgaW4gdGhlIHJlc3BvbnNlCgkKMjAwMC0xMC0zMSAxMjowNCAgbmJhCgoJLSBwcm90b2NvbC5jOiBjbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTAtMzEgMTA6MTMgIGhhcmRha2VyCgoJLSAoc211eC5jKTogcGF0Y2ggIzEgZnJvbSBidWcgIzExNzI3MyBhcHBsaWVkIHRvIGZpeCBzbXV4IHNvY2tldCBwcm9ibGVtcy4KCQoyMDAwLTEwLTMxIDA5OjI0ICBoYXJkYWtlcgoKCS0gKFNOTVAueHMpOiBwcmludCBjb3VudGVyNjQncyBhcyB1bnNpZ25lZC4KCQoyMDAwLTEwLTMxIDA3OjU0ICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzdWJhZ2VudC5jLCBzbm1wTm90aWZ5VGFibGUuYywKCSAgc25tcE5vdGlmeVRhYmxlLmgpOiBQYXRjaCBmcm9tIERhdmU6CgkgIC0gZml4IG5vdGlmaWNhdGlvbnMgZnJvbSBhZ2VudHggc3ViYWdlbnRzLgoJCjIwMDAtMTAtMzAgMjI6MDMgIGhhcmRha2VyCgoJLSAoc211eC5jKTogZml4IGJ1ZyAjMTE5Nzg2OiBtYWtlIHNtdXggcmV1c2Ugc29ja2V0IGFkZHJlc3MuCgkKMjAwMC0xMC0zMCAyMTo0MiAgaGFyZGFrZXIKCgktIChldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0KToKCSAgLSBmaXggYnVnICMzODIKCSAgLSBmaXggYWdlbnR4IG5vbi1yb290IHRlc3RzIHRvIHVzZSAteCAvdG1wL2JsYWgvYWdlbnR4X3NvY2tldC4KCQoyMDAwLTEwLTMwIDEzOjQ1ICBoYXJkYWtlcgoKCS0gKHNubXBkLjEuZGVmKTogZml4IGEgdHlwbyBwb2ludGVkIG91dCBieSBDaHJpcyBQZXBwZXIuCgkKMjAwMC0xMC0zMCAxMTo0NiAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMTExYWdlbnR4c2V0KTogdGVzdCBzY3JpcHQgZm9yIEFnZW50WCBzZXQgc3VwcG9ydC4KCQoyMDAwLTEwLTMwIDExOjQzICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QxMTBhZ2VudHhnZXQpOiBoZWFkZXIgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSB3b3JkIEdFVC4KCQoyMDAwLTEwLTMwIDExOjEzICBuYmEKCgktIHVjZC1zbm1wL3Ztc3RhdF8qLCBtZW1vcnlfZnJlZWJzZDIuYywgZGxtb2QuYzogTWFrZSBzc1Jhd0NwdSBvYmplY3RzIENvdW50ZXJzLAoJCWFuZCBhZGQgc3VwcG9ydCBmb3IgKkJTRCAoaW5jbHVkaW5nIE9wZW5CU0QpCgkKMjAwMC0xMC0zMCAxMTowNyAgbmJhCgoJLSBDbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTAtMzAgMTE6MDQgIGhhcmRha2VyCgoJLSAodGVzdGluZy90ZXN0cy9UMTAxYWdlbnR4LCB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQpOgoJICAtIHJlbmFtZWQgdGhlIGFnZW50eCB0ZXN0IHNjcmlwdC4KCQoyMDAwLTEwLTMwIDExOjAzICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGRvbid0IGFkZCAtYyBDT05GSUdGSUxFIGlmIGl0IGRvZXNuJ3QgZXhpc3QuCgkKMjAwMC0xMC0zMCAxMDozOSAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wZC5jKTogZXJyb3Igd2hlbiBwYXJzaW5nIC1YIGZvciBub24tYWdlbnR4IGJ1aWxkcy4KCQoyMDAwLTEwLTI3IDExOjI5ICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkLmMpOiBhZGQgLW8gZmxhZyB0byBsb2cgdG8gYSBwYXJ0aWN1bGFyIGZpbGUuCgkKMjAwMC0xMC0yNyAxMDo0MSAgaGFyZGFrZXIKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiB1c2UgbWtzdGVtcCBpZiBhdmFpbGFibGUuCgkKMjAwMC0xMC0yNyAxMDo0MCAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTZWFyY2ggZm9yIG1rc3RlbXAoKS4KCQoyMDAwLTEwLTI3IDEwOjA4ICBoYXJkYWtlcgoKCS0gKEZBUSk6IHVwZGF0ZSBsaW51eCBrZXJuZWwgbGlzdCB0byBpbmNsdWRlIDIuMi4KCQoyMDAwLTEwLTI2IDE3OjUxICBoYXJkYWtlcgoKCS0gKGV2YWxfdG9vbHMuc2gpOiBtYWtlIFNLSVBJRk5PVCBjaGVjayB0aGUgbWliIG1vZHVsZSBsaXN0IHRvby4KCQoyMDAwLTEwLTI2IDE3OjQ4ICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QxMDFhZ2VudHgpOiBBZ2VudFggc3ViYWdlbnQgdGVzdCBmb3Igc2ltcGxlIGdldCByZXRyaWV2YWwuCgkKMjAwMC0xMC0yNSAxNzo0NCAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogQWRkIC1YIG9wdGlvbiB0byBzbm1wZCB0byBydW4gYXMgYSBzdWJhZ2VudC4KCQoyMDAwLTEwLTI1IDE3OjA2ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBmaXggZm9yIGNhc2VzIHdoZW5lIGRlYnVnZ2luZyBpcyBhbHdheXMgb2ZmLgoJCjIwMDAtMTAtMTcgMTU6MzAgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bgoJCjIwMDAtMTAtMTYgMDM6MTMgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlci5jKTogU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIHRoZSAocHNldWRvLSlhbnN3ZXIgdG8gYSByZXF1ZXN0LgoJCVRoaXMgYWxsb3dzIGl0IHRvIGJlIGNhY2hlZCBjb3JyZWN0bHkgZm9yIG11bHRpLXBhc3MgU0VUIGhhbmRsaW5nLgoJCjIwMDAtMTAtMTYgMDM6MTEgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBEb24ndCBvdmVyd3JpdGUgc2F2ZWQgbW9kZSBpbmZvcm1hdGlvbgoJCVRoaXMgc2hvdWxkIGhlbHAgd2l0aCAoc29tZSBvZikgdGhlIFNFVCBoYW5kbGluZyBwcm9ibGVtcy4KCQoyMDAwLTEwLTE2IDAxOjU2ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRG9uJ3QgZnJlZSBjYWxsYmFjayBkYXRhIHN0cnVjdHVyZS4KCQlUaGlzIGhvbGRzIGluZm9ybWF0aW9uIHRoYXQgbmVlZHMgdG8gcGVyc2lzdCBhY3Jvc3MgbXVsdGktcGFzcyByZXF1ZXN0cy4KCQlJIHJlYWxpc2UgdGhhdCB0aGlzIGludHJvZHVjZXMgYSBtZW1vcnkgbGVhaywgYnV0IHRoaXMgaXNuJ3QgdGhlCgkJY29ycmVjdCBwbGFjZSB0byBoYW5kbGUgdGhpcy4KCQoyMDAwLTEwLTEyIDE0OjUyICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBhZGQgLUkgdG8gdGhlIGhlbHAgb3V0cHV0LgoJCjIwMDAtMTAtMTIgMTQ6MjQgIGhhcmRha2VyCgoJLSAoYWdlbnQvZGxtb2RzLyopOiByZW1vdmUgb2Jzb2xldGUgdmVyc2lvbnMKCQoyMDAwLTEwLTEyIDE0OjA4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KCQoyMDAwLTEwLTEyIDE0OjAxICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE1hdHQgQnJhaXRod2FpdGU6CgkgIC0gdWRwIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0byBjaGVjayBmb3IgbWlzYyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCgkKMjAwMC0xMC0xMiAxMzo0OCAgaGFyZGFrZXIKCgktIChUVU5ORUwtTUlCLnR4dCk6IFRVTk5FTC1NSUIgZGVmaW5pdGlvbi4KCQoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKHR1bm5lbC5oKTogY29uZmlnX2FkZF9taWIoVFVOTkVMLU1JQikuCgkKMjAwMC0xMC0xMiAxMzo0NyAgaGFyZGFrZXIKCgktICh0dW5uZWwuaCwgdHVubmVsLmMsIHR1bm5lbC5oKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGltcGxlbWVudCB0aGUgVFVOTkVMLU1JQi4KCQoyMDAwLTEwLTEwIDE0OjMzICBtc2xpZmNhawoKCUZpeCB1bmxpbmtfdHJlZSBmb3IgInRvcCBsZXZlbCIgdHJlZSBub2Rlcy4KCQoyMDAwLTEwLTEwIDExOjAyICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogcmV2ZXJzZSBsaWJyYXJ5IGxpbmsgb3JkZXJpbmcgYWdhaW4uLi4KCQoyMDAwLTEwLTEwIDA5OjAzICBtc2xpZmNhawoKCVJlbW92ZSByZWxhdGl2ZSBwYXRoIHRvIGluY2x1ZGUgc3lzdGVtLmguCgkKMjAwMC0xMC0xMCAwNjo1MyAgbXNsaWZjYWsKCglSZW1vdmUgdW5uZWVkZWQgZGVjbCBvZiB2c25wcmludGYgd2l0aG91dCBzdGRhcmcvdmFyYXJncyBkZWNsIG9mIHZhX2xpc3QuCgkKMjAwMC0xMC0xMCAwNToxNSAgbXNsaWZjYWsKCglBcHBseSBwYXRjaCBmb3IgREVDIEFscGhhIEVWNiwgc3VwcGxpZWQgYnkgU2h1bW9uIEh1cXVlPHNodXF1ZUBpc2MudXBlbm4uZWR1PgoJCjIwMDAtMTAtMDkgMTc6MDYgIG1zbGlmY2FrCgoJcGF0Y2ggdG8gZml4IGxlYWRpbmcgemVybyBlcnJvciBpbnRyb2R1Y2VkIGJ5IGNoYW5nZXMgZm9yIHNodXRkb3duX21pYi4KCQoyMDAwLTEwLTA5IDE1OjUxICBoYXJkYWtlcgoKCS0gKGRsbW9kLmMpOiBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGFkZGl0aW9ucy4KCQoyMDAwLTEwLTA5IDE1OjUxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogbW92ZSBhdXRvX25saXN0IHRvIGxpYnVjZG1pYnMuCgkKMjAwMC0xMC0wOSAxMTo0MyAgaGFyZGFrZXIKCgktIChGQVEsIFJFQURNRSk6IGFkZCBuZXcgbWlycm9yLgoJCjIwMDAtMTAtMDkgMTA6MjYgIG1zbGlmY2FrCgoJTW92ZSBjb25maWctIGFuZCBzdG9yZS1yZWxhdGVkIGNsZWFudXAgZnJvbSBzaHV0ZG93bl9taWIgdG8gc25tcF9zaHV0ZG93bi4KCQoyMDAwLTEwLTA5IDAyOjM2ICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFF1YWxpZnkgYW4gaW5kaXZpZHVhbCBpbnRlcmZhY2UgdHlwZSB0ZXN0IHN5bWJvbAoJCShRbjogc2hvdWxkIGFueS9hbGwgb2YgdGhlIG90aGVycyBiZSBxdWFsaWZpZWQgYXMgd2VsbD8pCgkKMjAwMC0xMC0wNiAwODo1NiAgbXNsaWZjYWsKCglTdXBwb3J0IGZvciBzaHV0ZG93bl9taWIgLSBjbGVhcmluZyB0aGUgTUlCIHRyZWVzIGFuZCBjb25maWd1cmVkIHJlZ2lzdHJhdGlvbnMuCgkKMjAwMC0xMC0wNiAwNTozMyAgbXNsaWZjYWsKCglQbHVnIG1lbW9yeSBsZWFrIGZvciB1Y2Qtc3VwcGxpZWQgc2V0ZW52IG9uIFdpbjMyIHBsYXRmb3JtLgoJCjIwMDAtMTAtMDYgMDQ6NTggIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0wNSAyMzo0NSAgbmJhCgoJLSBtaWIuYzogZml4IHNpbGx5IGJ1ZyBpbiBuZXcgb2lkIHBhcnNlciwgd2hlbiBsZWF2aW5nIHRoZSB0cmVlIGFuZCBnb2luZwoJCWludG8gc3ViLWlkcyB3ZSBrbm93IG5vdGhpbmcgYWJvdXQKCQoyMDAwLTEwLTA1IDE2OjAzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmN5IG9yZGVyLgoJCjIwMDAtMTAtMDQgMTc6NTkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsICJleHRlbmRpbmciIHNubXBjb25mIGZpbGUuCgkKMjAwMC0xMC0wNCAxNzo1OCAgaGFyZGFrZXIKCgktIChleHRlbmRpbmcpOiBhZGQgc25tcGNvbmYgc3VwcG9ydCBmb3IgZXh0ZW5kaW5nIHRoZSBhZ2VudCAocGFzcywgZXhlYywgLi4uKQoJCjIwMDAtMTAtMDQgMTc6NTggIGhhcmRha2VyCgoJLSAobW9uaXRvcik6IG1pc2MgdXBkYXRlcyBhbmQgYWRkICJmaWxlIiB3YXRjaGluZy4KCQoyMDAwLTEwLTA0IDE3OjU3ICBoYXJkYWtlcgoKCS0gKGFjbCk6IGRvbid0IHNwZWNpZnkgbGluZSBzcGVjaWZpY2F0aW9ucyBmb3IgZGVmYXVsdCBzbm1wY29uZiB1c2FnZS4KCQoyMDAwLTEwLTA0IDE0OjUwICBuYmEKCgktIEZBUTogZml4IGEgY29uZnVzaW9uIGJldHdlZW4gIm9taXQiIGFuZCAiaW5jbHVkZSIKCQoyMDAwLTEwLTA0IDEzOjI1ICBoYXJkYWtlcgoKCS0gKHBhc3NfcGVyc2lzdC5jKTogb3BhcXVlcyBpbiBwYXNzX3BlcnNpc3QuCgkKMjAwMC0xMC0wNCAxMDozNSAgaGFyZGFrZXIKCgktIChwYXNzLmMpOiBzdXBwb3J0IG9wYXF1ZSByZXR1cm4gdHlwZXMuCgkKMjAwMC0xMC0wNCAwNzoxNSAgbXNsaWZjYWsKCglGaXggcGFyc2luZyBwcm9ibGVtIGZvciAtUGMgb3B0aW9uOyByZXBvcnRlZCBieSBDaHJpc3RpYW4gTWF1dG5lci4KCQoyMDAwLTEwLTA0IDA3OjAyICBtc2xpZmNhawoKCXF1YWxpZnkgbmV3IGkvZiB0eXBlcy4KCQoyMDAwLTEwLTA0IDA2OjUyICBtc2xpZmNhawoKCXF1YWxpZnkgc3ltYm9scyBmb3IgbmV3IGkvZiB0eXBlcy4KCQoyMDAwLTEwLTA0IDA2OjUxICBtc2xpZmNhawoKCVRlcm1pbmF0ZSBsaXN0IHRvIGNvbXBpbGUgKGFkZCBhIGNvbW1hKS4KCQoyMDAwLTEwLTA0IDAwOjE4ICBuYmEKCgktIHNubXB0YWJsZS5jOiBpbmRleCBjb2x1bW50ICgtQ2kpIHdpZHRoIG5vdCBwcm9wZXJseSBjb21wdXRlZCB3aGVuIHVzaW5nCgkJR0VUQlVMSwoJCjIwMDAtMTAtMDMgMTg6MTkgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gYWRkIGEgcGFzc2JhY2sgYXJndW1lbnQgdG8gcmVnaXN0ZXJfcmVhZGZkKCkgY2FsbGJhY2tzLgoJCjIwMDAtMTAtMDMgMTg6MTcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIG1vdmUgYXV0b19ubGlzdC5vL2xvIHRvIGxpYnVjZGFnZW50IHNpbmNlIHNvbWUgbWliLW1vZHVsZXMgbmVlZCBpdC4KCQoyMDAwLTEwLTAzIDE4OjA3ICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9jaGVuIEZyaWVkcmljaDoKCSAgLSBmaXggZ2V0bmV4dCByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCgkKMjAwMC0xMC0wMyAxNzoyNiAgaGFyZGFrZXIKCgktIChtaWJKSi9pbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gYmV0dGVyIGlmdHlwZSBndWVzc2luZy4KCQoyMDAwLTEwLTAzIDE3OjI0ICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgoJCjIwMDAtMTAtMDMgMTY6NTIgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggZnJvbSBEb3VnIFdhcnplY2hhOgoJICAtIGZpeCBvaWQgcGFyc2luZyBpbiB0cmFwcy4KCQoyMDAwLTEwLTAzIDE2OjIzICBoYXJkYWtlcgoKCS0gKGV4YW1wbGUuYywgZXhhbXBsZS5oKTogZXhhbXBsZSBvZiBjb2RpbmcgYSB2MiB0cmFwIGZyb20gc29tZW9uZSB3aG8KCSAgSSBoYXZlIHZlcnkgc2FkbHkgZm9yZ290dGVuLiAgSSd2ZSBiZWVuIGxvb2tpbmcgZm9yIHRoYXQgbWVzc2FnZSBmb3IKCSAgYSB3aGlsZSB0byBwcm9wZXJseSBhdHRyaWJ1dGUgdGhpcyBwYXRjaC4gIFNpZ2guCgkKMjAwMC0xMC0wMyAxNjoyMSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERvdWdsYXMgV2FyemVjaGE6CgkgIC0gc25tcGQgcmV0dXJucyB3cm9uZyBlcnJvciBpbmRleCBvbiBTTk1QdjEgcmVxdWVzdCAoQlVHIzM3NSkuCgkKMjAwMC0xMC0wMyAwOToxMiAgbXNsaWZjYWsKCglGaXggbnVsbCBkZXJlZiBvZiBzcy0+Y29tbXVuaXR5LCByZXBvcnRlZCBieSBKaW0gUGlja2VyaW5nLgoJCjIwMDAtMTAtMDMgMDg6MDMgIG1zbGlmY2FrCgoJQ2FzdGluZyB0byBmaXggcHJvYmxlbXMgYnVpbGRpbmcgd2l0aCBhQ0MKCVRoYW5rcyB0byBNYXJra3UgTGF1a2thbmVuIDxwa3lAbW9yZW1hZ2ljLmNvbT4KCQoyMDAwLTEwLTAzIDA1OjU5ICBtc2xpZmNhawoKCVJlbW92ZSBjaGRpciB0byB1bmRvIGZpeCBmb3IgKEJVRyMyOTgpCgkKMjAwMC0xMC0wMiAyMTo0MSAgbmJhCgoJLSBtaWIuYzogRXNjYXBlICIgYW5kIFwgaW4gdGV4dCBzdHJpbmdzLgoJCjIwMDAtMTAtMDIgMjE6MzkgIG5iYQoKCS0gc25tcF9sb2dnaW5nLmM6ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CgkKMjAwMC0xMC0wMiAyMTozOCAgbmJhCgoJLSBNYWtlZmlsZS5pbjogZml4IGEgbWlzc2luZyAkKHNyY2RpcikgZHVyaW5nIG1ha2UgaW5zdGFsbCBvZiBtaWIyYwoJCWNvbmZpZ3VyYXRpb24gZmlsZXMKCQoyMDAwLTEwLTAyIDIxOjM3ICBuYmEKCgktIHNubXBzZXQuYzogRG8gYSBleGl0KDIpIGZvciBmYWlsdXJlIGluIHNldHRpbmcgdGhlIHZhcmlhYmxlLgoJCjIwMDAtMTAtMDIgMjE6MzYgIG5iYQoKCS0gaHJfc3dydW4uYzogYWRkIGEgc2FmZWd1YXJkIGZvciB2ZXJ5IGxvbmcgYXJndW1lbnQgbGlzdHMuCgkKMjAwMC0xMC0wMiAyMTozNCAgbmJhCgoJLSBocl9kaXNrLmM6IEFkZCBhIG5hbWUgcGF0dGVybiB0aGF0IG1hdGNoZXMgeDg2IElERSBkaXNrcyBmb3IgU29sYXJpcy4KCQoyMDAwLTEwLTAyIDIxOjMzICBuYmEKCgktIGtlcm5lbF9zdW5vczUuYzogbWFrZSB0aGUgYnVmZmVyIGZvciBTSU9DR0lGQ09ORiBkeW5hbWljLgoJCjIwMDAtMTAtMDIgMTE6NDEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXB1c20uaC4KCQoyMDAwLTEwLTAyIDEwOjQ4ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKToKCSAgLSBuZXcgb3B0aW9ucyBmb3IgaW5zdGFsbGluZyBjcmVhdGVkIGZpbGVzLgoJICAtIG1vcmUgY29tbWVudHMgaW4gdGhlIGNvZGUuCgkgIC0gYWxsb3cgcmVhZGluZyBhIC5jb25mIGRpcmVjdGx5IHRvIHdyaXRpbmcgZm9yIGF1dG8tY29tbWVudGluZyAuY29uZiBmaWxlcy4KCSAgLSBtaXNjLgoJCjIwMDAtMTAtMDIgMTA6NDcgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQtbGVzcy4KCQoyMDAwLTEwLTAyIDA5OjM1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGJ5dGUgc3RhdFAgbWFsbG9jcy4KCQoyMDAwLTEwLTAyIDA5OjE0ICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CgkgIC0gZml4IGludGVyZmFjZXMuYyBmb3IgdmFyaWFibGUgbGVuZ3RoIG51bWJlciBmb3JtYXR0aW5nIGluIC9wcm9jL25ldC9kZXYuCgkKMjAwMC0xMC0wMSAxNjo0MCAgbXNsaWZjYWsKCglQZXIgTmllbHMgcmVjb21tZW5kYXRpb24sIGNoZGlyIHRvIFBFUlNJU1RFTlRfRElSRUNUT1JZIChyZTogYnVnICMyOTgpCgkKMjAwMC0wOS0zMCAwODo1NyAgbXNsaWZjYWsKCglGaXggREVCVUdNU0dUTCBub3QgZm91bmQgZXJyb3IgZm9yIGJ1aWxkcyB3aXRob3V0IGRsbW9kIHN1cHBvcnQuCglUaGFua3MgdG8gc2ltb25AemlkLnR1d2Vpbi5hYy5hdAoJCjIwMDAtMDktMzAgMDg6NTAgIG1zbGlmY2FrCgoJRml4IHNvbWUga2VybmVsIHN5bWJvbHMgLSB0aGFua3MgdG8gc2ltb25AemlkLnR1d2llbi5hYy5hdAoJCjIwMDAtMDktMjkgMTQ6MzUgIGhhcmRha2VyCgoJLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kICsgLm8gLT4gLmxvIGZpeGVzLgoJCjIwMDAtMDktMjkgMTQ6MjcgIGhhcmRha2VyCgoJLSAobWFrZWZpbGVpbmRlcGVuZC5wbCk6IHNraXAgZW1wdHkgZGVwZW5kIGxpbmVzLgoJCjIwMDAtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBkcm9wIGR1cGxpY2F0ZSBsaW5lcyBmcm9tIHJlYWQgaW4gc25tcGQuY29uZiBmaWxlcy4KCQoyMDAwLTA5LTI5IDEzOjQ2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogc29ydCB1bmtub3duIGRpcmVjdGl2ZXMgYnkgZmlsZXR5cGUgKHdob29wcykuCgkKMjAwMC0wOS0yOSAxMzo0MiAgaGFyZGFrZXIKCgktIChtb25pdG9yKTogbWlub3Igd29yZGluZyBhZGp1c3RtZW50cy4KCQoyMDAwLTA5LTI5IDEzOjQyICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogcHJpbnQgbW9yZSBpbmZvcm1hdGlvbi9jb21tZW50cyB0byB0aGUgc2NyZWVuLgoJCjIwMDAtMDktMjkgMTE6MzEgIGhhcmRha2VyCgoJLSAodmFyX3N0cnVjdC5oKTogaW5jcmVhc2UgcmVnaXN0cmF0aW9uIG5hbWUgbGVuZ3RoIHRvIDMyIGZyb20gMTYgKEJ1ZyAjMTcyKQoJCjIwMDAtMDktMjkgMTE6MTIgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IGluY29ycmVjdCB2YWwgbGVuZ3RoIHBhc3NlZCB0byBwYXJzZV91bnNpZ25lZF9pbnQgKEJ1ZyAjMzM5KS4KCQoyMDAwLTA5LTI5IDExOjAxICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBmaXggQnVnIzM1MyBmb3IgaG9zdG5hbWVzIHRoYXQgbG9vayBsaWtlICI1dyIuCgkgIC0gZG9uJ3QgaW50ZXJwcmV0ZSB0aGVtIGFzIGFuIGlwLXBvcnQuCgkKMjAwMC0wOS0yOSAxMDozOSAgaGFyZGFrZXIKCgktIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbToKCSAgLSBUaGVyZSBpcyBhIHBlY3VsaWFyaXR5IGluIHRoZSBzbm1wX2FsYXJtX3VucmVnaXN0ZXIgZnVuY3Rpb24gaW4KCSAgICBzbm1wbGliL3NubXBfYWxhcm0uYyB3aGljaCBjYW4gY2F1c2UgYSBzZWdtZW50YXRpb24gZmF1bHQuIChCdWcgIzM2NykKCQoyMDAwLTA5LTI5IDEwOjM0ICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBmaXggdXNlIG9mIE5VTEwgdGltZXN0YW1wIHBvaW50ZXIgaW4gbmV3IHJvdyBjcmVhdGlvbiAoQnVnICMzNDYpCgkKMjAwMC0wOS0yOCAxNDozOCAgbmJhCgoJLSBtaWJfYXBpLjM6IGFkZCBhIGZldyBmdW5jdGlvbnMgdG8gdGhlIGhlYWRlcgoJCjIwMDAtMDktMjggMTQ6MTQgIG5iYQoKCS0gc25tcHRyYXAuYzogcmVtb3ZlIGFuIGV4dHJhbmVvdXMgc25tcF9mcmVlX3BkdQoJCjIwMDAtMDktMjggMTQ6MTMgIG5iYQoKCS0gbWFuLzogYWRkIG1hbiBlbnRyaWVzIGZvciBtYW55IGxpYnJhcnkgZnVuY3Rpb25zIChwb2ludGluZyB0byBzbm1wX2FwaS4zKQoJCjIwMDAtMDktMjggMTE6MDkgIG1zbGlmY2FrCgoJcmVtb3ZlIHNlY29uZCBjb3B5IG9mIHN5cy9zb2NrZXQuaAoJCjIwMDAtMDktMjggMTE6MDggIG1zbGlmY2FrCgoJRm9yIGJ1aWxkaW5nIG9uIFVsdHJpeCBWNC54CgkKMjAwMC0wOS0yNyAxMjo1OSAgaGFyZGFrZXIKCgktIChkbG1vZC5oKTogYWRkIHRoZSBVQ0QtRExNT0QtTUlCIHRvIHRoZSBkZWZhdWx0IGxvYWQgbGlzdC4KCQoyMDAwLTA5LTI3IDEyOjU1ICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdWNkX3NubXAuaCwgZGxtb2QuYyk6CgkgIC0gaW5jbHVkZSB1Y2Qtc25tcC9kbG1vZCBieSBkZWZhdWx0LgoJICAtIGJ1aWxkIGNvZGUgb25seSBpZiBkbG9wZW4gaXMgZm91bmQuCgkKMjAwMC0wOS0yNyAwODozMSAgaGFyZGFrZXIKCgktIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGRvbid0IHByaW50IGtlcm5lbCBiYXNlZCB3YXJuaW5nIG1lc3NhZ2VzIHdoZW4gLXIsIGV0YywgaXMgc3BlY2lmaWVkLgoJCjIwMDAtMDktMjYgMTY6MDcgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogbWlub3IgYnVnIGZpeGVzLgoJCjIwMDAtMDktMjYgMTQ6MjEgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtLCBtYW5hZ2VyLnBtKToKCSAgLSBkaXNwbGF0YWJsZSBzdXBwb3J0cyAtbWFyay8tb25tYXJrZWQuCgkgIC0gdXNlcidzIG9uY2FsbCBzY2hlZHVsZSBpcyBtb2RpZmlhYmxlIHZpYSB0aGUgd2ViLgoJCjIwMDAtMDktMjYgMTM6MTcgIG1zbGlmY2FrCgoJRm9yIFdpbjMyIEFQSTogRGVjbGFyZSBzdHJ0b3VsLCB2c25wcmludGY7IEVuYWJsZSByZXZlcnNlIEJFUiBlbmNvZGluZy4KCQoyMDAwLTA5LTI2IDEzOjE1ICBtc2xpZmNhawoKCUluY2x1ZGUgc3lzdGVtLmggKHZzbnByaW50ZiBkZWNsKQoJCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgoJRml4IHVuc2lnbmVkIGNvbXBhcmlzb24uCgkKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCglGaXggdW5zaWduZWQgY29tcGFyaXNvbnMuCgkKMjAwMC0wOS0yNiAxMzoxMyAgbXNsaWZjYWsKCglGaXggc2lnbmVkIGNvbXBhcmlzb247IFJlbW92ZSB1bnVzZWQgdmFyLgoJCjIwMDAtMDktMjYgMTM6MTIgIG1zbGlmY2FrCgoJSW5jbHVkZSBnZXRvcHQuaCAob3B0YXJnIGRlY2wpOyBSZW1vdmUgdW51c2VkIHZhci4KCQoyMDAwLTA5LTI2IDEzOjExICBtc2xpZmNhawoKCU1hdGNoIEluaXRpYWxpc2VfVGFibGUgYXJncyAzLDQgZGVjbGFyYXRpb25zIHdpdGggZGVmaW5pdGlvbnMuCgkKMjAwMC0wOS0yNiAxMjo1OCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBtYWtlIHRoZSBhZG1pbnN0YXR1cyBST05MWS4KCQoyMDAwLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKCS0gKG1pYjJjKTogY2hvbXAoJDEpIGlzIGlsbGVnYWwuCgkKMjAwMC0wOS0yNiAwMzowNCAgbXNsaWZjYWsKCglFeHBsaWNpdGx5IGJ1aWxkIHBhdGggdG8gQ0FDSEVGSUxFLCBhcyBub3QgYWxsIEMgY29tcGlsZXJzIHN1cHBvcnQgIiMjIi4KCQoyMDAwLTA5LTI1IDE3OjQ5ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IFdlcyBhY3R1YWxseSBkb2N1bWVudGVkIHNvbWV0aGluZz8gIHlvdSBtdXN0IGJlIGtpZGRpbmchCgkKMjAwMC0wOS0yNSAxNjo1NiAgbXNsaWZjYWsKCgljaGRpciBqdXN0IGJlZm9yZSBzZW5kaW5nIGNvbGRzdGFydCB0cmFwLCB0byBhbGxvdyBmb3IgcGF0aHMgdG8gYmUKCXJlc29sdmVkLgoJCjIwMDAtMDktMjUgMTU6MDggIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogbWlub3IgZ3JhcGhpbmcgY2hhbmdlcwoJCjIwMDAtMDktMjUgMDk6MzUgIG1zbGlmY2FrCgoJY2FzZSBpbnNlbnNpdGl2ZSB0b2tlbiBzZWFyY2ggKHVzZSBzdHJjYXNlY21wKS4KCQoyMDAwLTA5LTIyIDA2OjAzICBuYmEKCgkgLW1pYnMvOiBNSUIgdXBkYXRlcwoJCjIwMDAtMDktMjIgMDU6NTUgIG5iYQoKCS0gbWlicy86IE1JQiB1cGRhdGVzCgkKMjAwMC0wOS0yMiAwNTo1MiAgbmJhCgoJLSBzbm1wX2FwaS5jOiBzdXBwb3J0IHNldHRpbmcgb2YgQklUUyB2YXJpYWJsZXMKCQoyMDAwLTA5LTIyIDA1OjUwICBuYmEKCgktIHNubXBzdGF0dXMuYzogc2hvdyBlcnJvciBvYmplY3QKCQoyMDAwLTA5LTIyIDA0OjI5ICBuYmEKCgktIHNubXB1c20uYzogaXNzdWUgZXJyb3IgbWVzc2FnZSB3aXRoIG9iamVjdAoJCjIwMDAtMDktMjIgMDQ6MjggIG5iYQoKCS0gc3lzdGVtLmg6IHByb3ZpZGUgcHJvdG90eXBlcyBmb3Igc3RydG9sLCBzdHJ0b3VsLCBzbnByaW50ZiwgdnNucHJpbnRmCgkKMjAwMC0wOS0yMiAwNDoyNyAgbmJhCgoJLSB2YWNtX3ZhcnMuYzogcHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2Ygc3RyaW5ncwoJCjIwMDAtMDktMjEgMTY6MTcgIG5iYQoKCS0gYXBwcy86IGRpc3BsYXkgZmFpbGVkIG9iamVjdCB3aGVuIG9uZSBpcyBpZGVudGlmaWVkIGJ5IHBkdS0+ZXJyaW5kZXgKCQoyMDAwLTA5LTIxIDE1OjU5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wZGYuMSk6IGRvY3VtZW50IHRoZSBzbm1wZGYgY29tbWFuZC4KCQoyMDAwLTA5LTIxIDE1OjUwICBuYmEKCgktIHNubXB0YWJsZTogdXNlIEdFVEJVTEsgdG8gY29sbGVjdCBkYXRhIHdoZW4gcHJvdG9jb2wgYWxsb3dzIGl0LiBBZGQKCQktQ0Igb3B0aW9ucyB0byBmYWxsIGJhY2sgdG8gR0VUTkVYVC4KCQoyMDAwLTA5LTIxIDE1OjM4ICBuYmEKCgktIG1pYi5jOiByZXdyaXRlIGluZGV4IGhhbmRsaW5nIGluIG9iamVjdCBpZHMsIHRvIGFsbG93IHN5bWJvbGljIGVudW1zLgoJCUFkZCBEYXZlcyBzdWdnZXN0ZWQgLU92IG91dHB1dC4gQWxzbyBlbmhhY2UgLVRkIG91dHB1dCB0bwoJCWRlc3Rpbmd1aXNoIE9CSkVDVC1UWVBFIGZyb20gVFJBUC1UWVBFLCBNT0RVTEUtSURFTlRJVFkgZXRjLgoJCjIwMDAtMDktMjEgMTU6MzEgIGhhcmRha2VyCgoJLSAoc25tcGRmLmMpOiB1c2UgdGhlIFVDRC1TTk1QLU1JQidzIGRza1RhYmxlIGlmIHRoZQoJICBIT1NULVJFU09VUkNFUy1NSUIgaXMgZW1wdHkgb3IgaWYgLUN1IGlzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgoJCjIwMDAtMDktMjEgMTU6MjggIG5iYQoKCS0gcGFyc2UuYzogYWRkIGFiaWxpdHkgdG8gY29sbGVjdCBWQVJJQUJMRVMvT0JKRUNUUyBmb3IgVFJBUC1UWVBFCgkJYW5kIE5PVElGSUNBVElPTi1UWVBFLiBJZ25vcmUgZmlsZXMgdGhhdCBkb2VzIG5vdCBoYXZlIERFRklOSVRJT05TCgkJYXMgdGhlaXIgc2Vjb25kIHRva2VuLiBFbmhhbmNlIC1UZCBvdXRwdXQgYWNjb3JkaW5nbHkuCgkKMjAwMC0wOS0yMSAxNToyMiAgbmJhCgoJLSBzbm1wbGliOiBhZGQgc25wcmludGYsIHN0cnRvbCwgc3RydG91bCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgdGhlbQoJCjIwMDAtMDktMjEgMTU6MTAgIGhhcmRha2VyCgoJLSAobWliLmgpOiBhZGQgZmFrZSBzdHJ1Y3QgZGVmaW5pdGlvbiBmb3IgZW51bXMKCQoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCglmaWxlIHN0cnRvdWwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCglmaWxlIHN0cnRvbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc25wcmludGYuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA5LTIxIDA2OjE2ICBoYXJkYWtlcgoKCS0gKG1pYi5jLCBtaWIuaCk6IG1ha2Ugc3ByaW50KiBub24tc3RhdGljIChidWcgIzEzMikuCgkKMjAwMC0wOS0yMSAwMDoyNSAgaGFyZGFrZXIKCgktIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGZpeCBidWcgIzM2MCB3aGVyZSBhIGNsaWVudCBtaWdodCByZW1vdmUgYSBhbGFybSByZWdpc3RyYXRpb24KCSAgICBkdXJpbmcgYSBjYWxsIHRvIHRoZSBhbGFybSBmdW5jdGlvbiBhbmQgaW52YWxpZGF0ZSB0aGUgcG9pbnRlcgoJICAgIGJlaW5nIHVzZWQgYnkgdGhlIGNhbGxpbmcgZnVuY3Rpb24uCgkKMjAwMC0wOS0yMSAwMDoyMiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0tZGlzYWJsZS1zaGFyZWQgYnkgZGVmYXVsdCBpbiBjdnMgY2hlY2tvdXRzLgoJCjIwMDAtMDktMjAgMTc6MzEgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBzcGFjZSBpbmRlbnQgdG9rZW5zIGlmICMgcHJlcGVuZGVkLgoJCjIwMDAtMDktMjAgMTc6MzAgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IG51bGwgaW50ZXJuYWwgaGVscCBsaW5lcy4KCQoyMDAwLTA5LTIwIDE3OjI5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBtb25pdG9yKTogZGlzaywgcHJvYywgYW5kIGxvYWQgY2hlY2tzLgoJCjIwMDAtMDktMjAgMTc6MjggIGhhcmRha2VyCgoJLSAoYXV0aG9wdHMpOiBmaXggdmFsaWQgYW5zd2VycyBmb3IgYXV0aCBhbmQgcHJpdiB0eXBlcy4KCQoyMDAwLTA5LTIwIDE3OjI3ICBoYXJkYWtlcgoKCS0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMsIHNubXB2My5jKTogTlVMTCBvdXQgaGVscCBtZXNzYWdlcyBmb3IgLmNvbmYKCSAgdG9rZW5zIHRoYXQgYXJlIGVpdGhlciBpbnRlcm5hbCBvciBubyBsb25nZXIgdGhlIHN0YW5kYXJkIHdheSBvZgoJICBkb2luZyB0aGluZ3MuCgkKMjAwMC0wOS0yMCAxNzoyNiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGV4cG9ydCBTTk1QQ09ORlBBVEggdG8gTWFrZWZpbGVzCgkKMjAwMC0wOS0yMCAxNzoyNSAgaGFyZGFrZXIKCgktIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3IgY29ycmVjdGlvbiBvZiB0YWJsZSBuYW1lLiAgTW9yZSBlcnJvcnMgZXhpc3QuCgkKMjAwMC0wOS0yMCAxNjo0NiAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgZGVidWdnaW5nLCBtaWJzLCBvdXRwdXQpOiBtb3JlIHNubXAuY29uZiBzbm1wY29uZiBjb25maWcgZmlsZXMuCgkKMjAwMC0wOS0yMCAxNToxNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgYXV0aG9wdHMpOiBzbm1wLmNvbmYgc3VwcG9ydCBmb3IgYmFzaWMgYXV0aGVudGljYXRpb24gb3B0aW9ucy4KCQoyMDAwLTA5LTIwIDE0OjU1ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKToKCSAtIGRvbid0IGZvcmNlIHJlYWRpbmcgb2YgL3Vzci9sb2NhbC9zaGFyZS9zbm1wZC5jb25mLgoJIC0gZG9uJ3QgcHJpbnQgdW5rbm93biBkaXJlY3RpdmUgY29tbWVudCBoZWFkZXJzIGlmIHRoZXJlIGFyZW4ndCBhbnkuCgkKMjAwMC0wOS0yMCAxNDo0NSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHNwYWNlIHRoaW5ncyBvdXQgb24gdGhlIHNjcmVlbiBhIGJpdCBiZXR0ZXIuCgkKMjAwMC0wOS0yMCAxNDo0NCAgaGFyZGFrZXIKCgktICh0cmFwc2lua3MpOiBhZGQgcG9ydCBudW1iZXIgb3B0aW9uIHRvIHRyYXBzaW5rIGRpcmVjdGl2ZXMuCgkKMjAwMC0wOS0yMCAxNDozNSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgc25tcGNvbmYpOiBpbnN0YWxsIHNubXBjb25mIGFuZCBpdHMgdmFyaW91cyBzdXBwb3J0IGZpbGVzLgoJCjIwMDAtMDktMjAgMTQ6MjAgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGRvIHJldmVyc2UgdjMgaGVhZGVyIGVuY29kaW5nIHdpdGggYSBzdGF0aWMgYnVmZmVyLgoJCjIwMDAtMDktMjAgMTE6MzcgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBtaXNjIHVwZGF0ZXMgYW5kIGltcHJvdmVtZW50cy4KCQoyMDAwLTA5LTIwIDA4OjU0ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBGaXggZHluYW1pYyBhcnJheSAgcHJvYmxlbSBwb2ludGVkIG91dCBieSBKb2NoZW4gS21pZXRzY2guCgkKMjAwMC0wOS0yMCAwMjowNSAgZGF2ZXMKCgktIChhZ2VudHgvcHJvdG9jb2wuYyk6IERvbid0IGluY2x1ZGUgY29udGV4dCBzdHJpbmdzIG9uIFBEVXMgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0aGVtCgkJKFRoYW5rcyB0byBQZWRybyBQZXJlaXJhIGZvciBpZGVudGlmeWluZyB0aGlzKQoJCjIwMDAtMDktMTkgMTc6MDcgIGhhcmRha2VyCgoJLSAoYWNsLCBzeXN0ZW0sIHRyYXBzaW5rcyk6IGluaXRpYWwgc25tcGNvbmYgZGVzY3JpcHRpb24gZmlsZXMuCgkKMjAwMC0wOS0xOSAxNzowNiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHJlYWQgb2xkZXIgY29uZmlndXJhdGlvbiBmaWxlcyBpbiBhbmQgbWVyZ2Ugd2l0aCBuZXcgcmVzdWx0cy4KCQoyMDAwLTA5LTE5IDE0OjQwICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBwcmludCBwZHUgdHlwZSBvbiBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCgkKMjAwMC0wOS0xOSAxNDoxNSAgaGFyZGFrZXIKCgktIChhc24xLmMsIHNubXAuYyk6IHJldmVyc2UgZW5jb2Rpbmcgc3VwcG9ydCBmb3Igc3BlY2lhbGl6ZWQgb3BhcXVlCgkgIGRhdGF0eXBlcyAoZmxvYXQsIGRvdWJsZSwgZXRjKS4KCQoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKCS0gKGFjbG9jYWwubTQpOiBkb2N1bWVudCBtYWNyb3MgYSBiaXQgbW9yZSBmb3Igc3VibWlzc2lvbiB0byB0aGUKCSAgYXV0b2NvbmYgbWFjcm8gbGlicmFyeS4KCQoyMDAwLTA5LTE5IDA4OjMwICBtc2xpZmNhawoKCUZpeCBidWcgIzI5NSByZXBvcnRlZCBieSBKb2huIFdoaXRuZXkgam9obndAYWlpbmV0LmNvbQoJCjIwMDAtMDktMTggMTQ6NTkgIGhhcmRha2VyCgoJLSAoc25tcF92YXJzLmgsIHNubXBkLmgpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIG1vdmUgZ2V0U3RhdFB0ciBkZWZpbml0aW9uIHRvIHByb3BlciAuaCBmaWxlLgoJCjIwMDAtMDktMTggMTQ6NTUgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMzQ3IHJlcG9ydGVkIGJ5IGRhc19kZW5pekB5YWhvby5jb206IG1ha2Ugc2JpbiBpbnN0YWxsIGRpcgoJCjIwMDAtMDktMTQgMDk6MDUgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gYWRkIGEgcG9ydCBzcGVjaWZpY2F0aW9uIHNubXBkLmNvbmYgdG9rZW4uCgkKMjAwMC0wOS0xNCAwODo1MiAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMpOiBpZ25vcmUgb3V0cHV0IG9mIGdldGhvc3RieW5hbWUgZm9yIHRyYXAgc2Vzc2lvbiBhZGRpbmcuCgkKMjAwMC0wOS0xMyAxNTowNiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IG5ldyB1dGlsaXR5IHRvIGdlbmVyYXRlIC5jb25mIGZpbGVzIGJ5IHByb21wdGluZyB0aGUKCSAgdXNlciB3aXRoIHF1ZXN0aW9ucy4KCQoyMDAwLTA5LTA4IDEzOjA3ICBoYXJkYWtlcgoKCS0gKHByb3h5LmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjoKCSAgLSBmaXggcHJveHkgc3VwcG9ydCBmb3IgbnVsbCBsZW5ndGggc3RyaW5ncy4KCQoyMDAwLTA5LTA3IDEwOjEyICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CgkgLSBmaXggb3BlbnNzbCBjaGVja3MuCgkgLSBydW4gYXV0b2hlYWRlci4KCQoyMDAwLTA5LTA1IDEzOjM1ICBtc2xpZmNhawoKCU1pbm9yIHRvdWNodXBzIHRvIGJ1aWxkIG9uIFdpbjMyIHBsYXRmb3JtLgoJCjIwMDAtMDktMDUgMTM6MzQgIG1zbGlmY2FrCgoJV2VsY29tZSB0aGUgbmV3ZXN0IHVjZC1zbm1wIGFwcGxpY2F0aW9ucyB0byB0aGUgV2luMzIgYnVpbGRzLgoJCjIwMDAtMDktMDQgMTU6MTkgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogcmVzdGFydCBlcnJvcmNvdW50IHdoZW4gcmVsb2FkaW5nIGNvbmZpZwoJCjIwMDAtMDktMDQgMTU6MTIgIG5iYQoKCS0gc25tcG5ldHN0YXQuMTogYWxpZ24gbWFuIHBhZ2Ugd2l0aCBwcm9ncmFtCgkKMjAwMC0wOS0wNCAxNToxMCAgbmJhCgoJLSBpcEFkZHIuYzogcmVtb3ZlIGEgYmFkIG50b2hsIGZvciBPcGVuQlNECgkKMjAwMC0wOS0wNCAxNTowOSAgbmJhCgoJLSBtaWJpbmNsLmgsIHt0Yyx1ZH1weyxUYWJsZX0uYzogZW5zdXJlIGp1c3Qgb25lIGluY2x1ZGUgb2Ygc29ja2V0LmgKCQl0byBtYWtlIHVucHJvdGVjdGVkIGluY2x1ZGUgZmlsZSBpbiBVbHRyaXggaGFwcHkKCQoyMDAwLTA5LTA0IDE1OjA1ICBuYmEKCgktIGNvbmZpZ3VyZS5pbjogbWFrZSAtLXdpdGhvdXQtbGlid3JhcCB3b3JrCgkKMjAwMC0wOS0wMSAxNToxNCAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKCSAgLSB1cGRhdGVkIGNvZGUuCgkKMjAwMC0wOS0wMSAxMTo1NCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IFNjb3R0IExpcGNvbiBub3RlZCB0aGF0IHNubXB0cmFwZCBkb2Vzbid0IHN1cHBvcnQgLVQuCgkKMjAwMC0wOC0zMCAxMzoyOCAgbmJhCgoJLSBwYXJzZS5jOiBmaXggbG9vcCBpbiBzeW50YXggZXJyb3IgaW4gREVGVkFMIGNsYXVzZS4gQWxzbyBmaXggcmVhZGluZwoJCW9mIC5pbmRleCBmaWxlIHdpdGggZmlsZW5hbWVzIGNvbnRhaW5pbmcgYmxhbmtzLgoJCjIwMDAtMDgtMjggMTM6NDMgIG1hcnoKCgltaW5vciBzeW50YXggZ2xpdGNoIGluIFBPRCBkb2NzCgkKMjAwMC0wOC0yNCAwMTo1NSAgZGF2ZXMKCgktIChhcHBzL3NubXB0YWJsZS5jKTogRml4IGJ1ZyB3aXRoIGRpc3BsYXlpbmcgaGVhZGVyLWxlc3MgaW5kZXhlZCB0YWJsZXMKCQkoVGhhbmtzIHRvIEVybmllIE1pbGxlcikKCQoyMDAwLTA4LTE5IDExOjI5ICBtc2xpZmNhawoKCUFwcGx5IHBhdGNoIGZyb20gPENocmlzdG9waC5NYW1taXR6c2NoQHR1LWNsYXVzdGhhbC5kZT4KCXRvIGZpeCBzaWduIGluIGFzbl9yYnVpbGRfdW5zaWduZWRfaW50IC4KCQoyMDAwLTA4LTE4IDA0OjE4ICBtc2xpZmNhawoKCXJlc3RvcmUgcHJldmlvdXMgdmVyc2lvbjsgb3BlbmJzZCwgc29sYXJpcywgbGludXggYnVpbGQgb2suCgkKMjAwMC0wOC0xOCAwMzo0NCAgbXNsaWZjYWsKCglyZW1vdmUgdW51c2VkIHByaW50ZiBhcmd1bWVudCBwYXNzZWQgdG8gc25tcF9sb2cuCgkKMjAwMC0wOC0xOCAwMzoyMCAgbXNsaWZjYWsKCglmaXggYnVnIDI1MyB3aXRoIHBhdGNoIHN1cHBsaWVkIGJ5IEplZmZyZXkgSG9uaWcgPGpjaEBic2RpLmNvbT4KCQoyMDAwLTA4LTE4IDAyOjUyICBtc2xpZmNhawoKCWZpeCBidWcgMzE4IC0gdGVzdCA5IGFuZCAxMCBleHBsaWNpdGx5IGNyZWF0ZSB0aGUgdGVzdCB1c2VyLgoJCjIwMDAtMDgtMTcgMTM6NDIgIG1zbGlmY2FrCgoJVGhlIGJhdHRsZSB0byB0cmltIG5ld2xpbmVzIGNvcnJlY3RseSBjb250aW51ZXMuLi5yZWR1Y2UgbGVuZ3RoIGJ5IG9uZS4KCQoyMDAwLTA4LTE2IDE1OjA0ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IGZpeCB2YXJpb3VzIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBwcm9ibGVtcy4KCQoyMDAwLTA4LTE2IDE1OjAzICBoYXJkYWtlcgoKCS0gKHNjYXBpLmMpOiBmaXggcGFkZGluZyBzaXplIGluIGVuY3J5cHRpb24uCgkKMjAwMC0wOC0xNiAxNDo0OCAgaGFyZGFrZXIKCgktIChzY2FwaS5jKTogc2V0IHBsYWludGV4dCBsZW5ndGggYXQgdGhlIGVuZCBvZiBzY19kZWNyeXB0LgoJCjIwMDAtMDgtMTUgMDU6MDggIG1zbGlmY2FrCgoJRml4IGJ1ZyAyODQgd2l0aCBhIHNob3J0IGV4cGxhbmF0aW9uIGFib3V0IHNubXAuY29uZi4KCQoyMDAwLTA4LTE1IDAzOjAwICBtc2xpZmNhawoKCUZpeCBidWcgMjgzIC0gdW1hc2sgMDIyLCBtYWtlIGluc3RhbGwuIFRoYW5rcyB0byBjc2FiYS50b3RoQHN6ay5ia2UuaHUKCQoyMDAwLTA4LTE1IDAwOjA5ICBuYmEKCgktIHNubXB0ZXN0LmM6IG92ZXJoYXVsIGlucHV0X3ZhcmlhYmxlLCBraWxsIG5ld2xpbmUKCQoyMDAwLTA4LTE0IDIyOjA1ICBuYmEKCgktIGFjbG9jYWwubTQsIGNvbmZpZ3VyZS5pbjogZml4ZXMgZm9yIGNvbmZpZ3VyZSAtLXNpbGVudAoJCjIwMDAtMDgtMTQgMTc6MjcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CgkgIC0gLS1lbmFibGUtc2lsZW50LWxpYnRvb2wgdG8gbWFrZSBOaWVscyBzbWlsZS4KCQoyMDAwLTA4LTE0IDE3OjE3ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBhIG5ldyAoZGVmYXVsdCkgZW5naW5lSUQgdHlwZSBiYXNlZAoJICBvbiBhIHJhbmRvbSBudW1iZXIsIGFuZCBhIHRpbWVzdGFtcC4KCSAgLSBJIHRoaW5rIGl0IHdvbid0IGludmFsaWRhdGUgZXhpc3RpbmcgaW5zdGFsbGF0aW9ucyAoaGVoKS4KCQoyMDAwLTA4LTE0IDE2OjQ3ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOgoJICAtIGlmIC1EcmVhZF9jb25maWcsIHRoZW4gcHJpbnQgZXZlbiBuby1oZWxwIHRva2VucyBhbmQgYSAqIGZvciBQUkVNSUIgb25lcy4KCQoyMDAwLTA4LTE0IDE0OjUxICBuYmEKCgktIChtYW55KTogcG9ydGFiaWxpdHkgZml4ZXMgZm9yIE9wZW5CU0QgMi42LCBGcmVlQlNEIDQuMSwgVWx0cml4IDQuNQoJCjIwMDAtMDgtMTQgMTE6MzMgIGhhcmRha2VyCgoJLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CgkgIC0gcmVtb3ZlIHVudXNlZCBjb250ZXh0IHZhcmlhYmxlcy4KCQoyMDAwLTA4LTE0IDExOjI5ICBoYXJkYWtlcgoKCS0gKHNjYXBpLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgoJICAtIHJlbW92ZSBkdXBsaWNhdGUga2V5bGVuZ3RoIGNoZWNrLgoJCjIwMDAtMDgtMTEgMTM6MDkgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IG9wdGltaXplIHJldmVyc2UgZW5jb2Rpbmcgb2YgdmFyYmluZGxpc3RzLgoJCjIwMDAtMDgtMTEgMDg6NTUgIGhhcmRha2VyCgoJLSAoUkVBRE1FLm1pYjJjKTogUGF0Y2ggZnJvbSBKYW4gQWxmcmVkIFNhbmR2ZW46CgkgIC0gdHlwb3MuCgkKMjAwMC0wOC0xMSAwNjowNSAgbmJhCgoJLSBhcHBzLyo6IHNubXBhcHAgLVYgc2hvdWxkIG5vdCBnaXZlIHRoZSB1c2FnZSBtZXNzYWdlIHRvby4KCQoyMDAwLTA4LTExIDAwOjQ0ICBuYmEKCgktIHNubXB0cmFwZC44OiBmaXggdHlwby4gVGhhbmtzIHRvIEcuIEFsbGVuIE1vcnJpcyBJSUkgPGdhbTNAYWNtLm9yZz4KCQoyMDAwLTA4LTEwIDIzOjIzICBuYmEKCgktIHBhcnNlLmM6IHByZWRlZmluZSBPYmplY3RTeW50YXgsIEFwcGxpY2F0aW9uU3ludGF4LCBTaW1wbGVTeW50YXggYW5kCgkJT2JqZWN0TmFtZQoJCjIwMDAtMDgtMTAgMTY6MjAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIG1pYjJjKToKCSAgLSBtYWtlIG1pYjJjIGxvb2sgaW4gJChzbm1wbGliZGlyKSBmb3IgLmNvbmYgZmlsZXMuCgkgIC0gaW5zdGFsbCBtaWIyYyBhbmQgLmNvbmYgZmlsZXMuCgkKMjAwMC0wOC0xMCAxNDozMyAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBkeW5hbWljYWxseSBkZWNpZGUgdG8gcmV2ZXJzZS9mb3J3YXJkIGVuY29kZS4KCQoyMDAwLTA4LTEwIDE0OjMxICBoYXJkYWtlcgoKCS0gKGV4dGVuc2libGUuYyk6IGZpeCBDUiB0ZXJtaW5hdGlvbi4KCQoyMDAwLTA4LTEwIDE0OjI1ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIHJldmVyc2UgZW5jb2Rpbmcgb24gYnkgZGVmYXVsdC4KCQoyMDAwLTA4LTEwIDEzOjAyICBtc2xpZmNhawoKCWZpeCBidWcgMjUyIGZvciBjb25maWd1cmUgYW5kIHN5cy9zb2NrZXQuaCBvbiBCU0QvT1MgNC4yCgkKMjAwMC0wOC0xMCAwOTowNyAgaGFyZGFrZXIKCgktIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywKCSAgc25tcHVzbS5oLCBzbm1wdjMuYyk6CgkgIC0gaW1wbGVtZW50IHJldmVyc2UgZW5jb2RlZCBtZXNzYWdlcy4KCSAgICAtIFRPRE86IGNsZWFuIHVwLCBydW4tdGltZSBkZXRlcm1pbmF0aW9uIG9mIHdlYXRoZXIgdG8gdXNlIGl0IG9yIG5vdC4KCQoyMDAwLTA4LTA5IDE1OjQwICBtc2xpZmNhawoKCUZpeCBidWcgMzMxIHdpdGggcGF0Y2ggaW4gcGFydCBwcm92aWRlZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJCjIwMDAtMDgtMDkgMTU6MjcgIG1zbGlmY2FrCgoJbm8gLy8gY29tbWVudCwgaW4gZGVmZXJlbmNlIHRvIG5vbi1BTlNJLUMgY29tcGlsZXJzLgoJCjIwMDAtMDgtMDkgMDc6MjEgIG5iYQoKCS0gaHJfc3dydW4uYzogZml4IHRoZSBSdW5QYXRoIGZvciBzd2FwcGVkIG91dCBMaW51eCBwcm9jZXNzCgkKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgoJLSBocl9wcmludC5jOiBmaXggYSBkZWJ1ZyB0b2tlbgoJCjIwMDAtMDgtMDkgMDQ6NDQgIG5iYQoKCS0gbWFpbi5jOiBmaXggcGFyc2luZyBvZiAtdgoJCjIwMDAtMDgtMDkgMDE6MTMgIGRhdmVzCgoJLSAobWliSkovaXBSb3V0ZS5oKTogT21pdCByb3V0ZV93cml0ZSBmb3Igbm93CgkKMjAwMC0wOC0wOSAwMDo1OCAgZGF2ZXMKCgktIChtaWJKSi8qKTogRXhwZXJpbWVudGFsIHJlLXdyaXRlIG9mIG1pYklJCgkJKFBpbG90IGVycm9yIHdoZW4gdHJ5aW5nIHRvIGNvbW1pdCB0aGUgY2hhbmdlcyBlYXJsaWVyIC0gc29ycnkhKQoJCjIwMDAtMDgtMDggMTA6MDYgIGhhcmRha2VyCgoJLSAoZXh0ZW5zaWJsZS5jKTogc3RyaXAgbmV3bGluZXMuCgkKMjAwMC0wOC0wOCAwODo1MSAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOiBzdGFydCBvcHRpbmQgYXQgMSBub3QgMC4KCSAgLQoJCjIwMDAtMDgtMDggMDY6MzYgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjk1IChmcmVlICpzZWNTdGF0ZVJlZiBiZWZvcmUgYWxsb2NhdGluZyBhbm90aGVyIG9uZSkuCgkKMjAwMC0wOC0wOCAwNjowNSAgbXNsaWZjYWsKCglmaXggYnVnICMyOTggcmVwb3J0ZWQgYW5kIHBhdGNoIHN1cHBsaWVkIGJ5IENvbnJhZCBMaW5rIDxjbGlua0BtbC5jb20+CgkKMjAwMC0wOC0wOCAwNDo1OSAgbmJhCgoJLSBzbm1wX2FwaS5jOiBmaXggYSBidXN5IGxvb3Agd2hlbiBhbGFybSBxdWV1ZSBpcyBhY3RpdmUgd2l0aG91dCBhbnkKCQlvdXRzdGFuZGluZyByZXF1ZXN0cwoJCjIwMDAtMDgtMDggMDQ6NDcgIG5iYQoKCS0gc25tcHNldC4xOiBjYW5ub3Qgc2V0IGNvdW50ZXJzCgkKMjAwMC0wOC0wOCAwNDo0MiAgbXNsaWZjYWsKCglGaXhlZCAoQlVHIzMzMikgdXNpbmcgcGF0Y2ggc3VibWl0dGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CglBbHNvIGNvbnNvbGlkYXRlZCBjb21tZW50cyBhYm91dCB0aGUgZm91ciBzZW5kIFBEVSBmdW5jdGlvbnMuCgkKMjAwMC0wOC0wNyAwNjo1OSAgbXNsaWZjYWsKCglGaXggbGVhayBpbiByZXBvcnRhYmxlIGVycm9ycyBmb3VuZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJCjIwMDAtMDgtMDcgMDU6NDggIG5iYQoKCWZpbGUgYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDU6NDggIG5iYQoKCWZpbGUgcmVhZF9vYmppZC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHNubXBfc2V0X21pYl93YXJuaW5ncy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9tb2R1bGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfYWxsX21pYnMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF92YXJpYWJsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfdmFsdWUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF9kZXNjcmlwdGlvbi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBpbml0X21pYl9pbnRlcm5hbHMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGluaXRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBnZXRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGFkZF9taWJkaXIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA0IDE3OjEzICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWRkIGluIHRoZSBub3RpZmljYXRpb24gZ3JvdXAgYnkgZGVmYXVsdC4KCQoyMDAwLTA4LTA0IDE3OjA4ICBoYXJkYWtlcgoKCS0gKG5vdGlmaWNhdGlvbi5oKTogbm90aWZpY2F0aW9uIG1pYiB3cmFwcGVyLgoJCjIwMDAtMDgtMDQgMTc6MDYgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOgoJIC0gaW5pdGlhbGl6ZSBvcHRpbmQgYmVmb3JlIGNhbGxpbmcgZ2V0b3B0LgoJIC0gZGVidWdnaW5nIG91dHB1dC4KCQoyMDAwLTA4LTA0IDE2OjU2ICBoYXJkYWtlcgoKCS0gKHByb3h5LmMpOiBwcm9wZXJseSBzZXQgdGhlIGZpcnN0ICh1bnVzZWQpIGFyZ3VtZW50IHRvIHNubXBfcGFyc2VfYXJncygpLgoJCjIwMDAtMDgtMDQgMTY6NTMgIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBzbm1wTm90aWZ5VGFibGUuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAoJICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAoJICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgdGFyZ2V0LmMpOgoJICAtIGlmIHVzaW5nIHRoZSBzbm1wTm90aWZpY2F0aW9uVGFibGUsIGluc2VydCBub24tdjEgdHJhcCBzaW5rcyBpbnRvIGl0LgoJCjIwMDAtMDgtMDQgMDU6MjYgIGRhdmVzCgoJLSAobWliZ3JvdXAvbWliSkouaCBtaWJncm91cC9taWJKSi8qKTogRXhwZXJpbWVudGFsIHJlLXdyaXRlIG9mIG1pYklJCgkKMjAwMC0wOC0wNCAwNToyMSAgZGF2ZXMKCgktIChtaWJncm91cC91dGlsX2Z1bmNzLltjaF0pOiBOZXcgJ2NhY2hlZCB0YWJsZScgcm91dGluZXMKCQoyMDAwLTA4LTAzIDA4OjM3ICBtc2xpZmNhawoKCUZpeCBidWcgIzMyNSBpZGVudGlmaWVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBJUC1GT1JXQVJELU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBJTkVULUFERFJFU1MtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBIQ05VTS1UQy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMiAwNzowNiAgbXNsaWZjYWsKCglTaWxlbnQgcnVubmluZyBncmVwIHJlc3VsdHMuCgkKMjAwMC0wOC0wMiAwNjoxMCAgbXNsaWZjYWsKCglGaXggQlVHICMyOTEgOiBhbGxvdyAiMjU1LjI1NS4yNTUuMjU1IiBmb3IgdGV4dCBpbnB1dCB0byBBU05fSVBBRERSRVNTCgkKMjAwMC0wOC0wMiAwNToyMCAgbXNsaWZjYWsKCglGaXggKEJVRyMzMjMpIDogZnJlZSBQRFUgd2hlbiBzbm1wX3NlbmQgZmFpbHMuCgkKMjAwMC0wOC0wMiAwNTowNiAgbXNsaWZjYWsKCglBZGQgLXAgb3B0aW9uIG9uY2UgdG8gc25tcGQgYXJncy4KCUZpbmQgTUlCRElSUyBpbiBzb3VyY2UgdHJlZS4KCUZpeCBjb25kaXRpb24gdG8gc2V0IFBBVEguCgkKMjAwMC0wOC0wMSAyMzozMCAgbmJhCgoJLSBpcC5jOiBPbmUgbW9yZSAjaWYgc29sYXJpcwoJCjIwMDAtMDgtMDEgMjM6MTkgIG5iYQoKCS0gaXAuYzogQSBiYWQgI2lmIC4uLiB0aGUgcHJvcGVyIGRlZmluZSB0byB0ZXN0IGZvciBTb2xhcmlzIGlzIHNvbGFyaXMyCgkKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSB1bnVzZWQgdXNhZ2UoKSB0eXBlZGVmLgoJCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgoJLSAocHJveHkuYywgcHJveHkuaCk6IC1XYWxsIHdhcm5pbmcgZml4ZXMuCgkKMjAwMC0wOC0wMSAxNjozOSAgaGFyZGFrZXIKCgktIChGQVEpOiBtZW50aW9uIG5ld2VyIHZlcnNpb25zIG9mIFNvbGFyaXMuCgkKMjAwMC0wOC0wMSAxNjozNyAgaGFyZGFrZXIKCgktIChURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW4pOiByZXZlcnQgdG8gbm9uLWNvbmZpZ2VkIFRFU1RDT05GLgoJCjIwMDAtMDgtMDEgMTY6MzEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wKTogbWFrZSB1bi1xdWlldC4KCQoyMDAwLTA4LTAxIDEwOjIzICBoYXJkYWtlcgoKCS0gKHNubXAtdWNkLnNoKTogZml4IGJ1ZyAjMjk3IChkb24ndCBraWxsIGdyZXAgYW5kIGluaXQgc2NyaXB0IGludm9jYXRpb25zKS4KCQoyMDAwLTA4LTAxIDA0OjQ1ICBtc2xpZmNhawoKCUZpeCBidWcgZm91bmQgYnkgWWlnYWwgSG9jaGJlcmcgPGhvY2hiZXJnQGRtaHNvZnR3YXJlLmNvbT4KCQoyMDAwLTA4LTAxIDAzOjMwICBkYXZlcwoKCS0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IGJ1aWxkaW5nIG9mIGNvbXBsZXRlIE9JRAoJCSh3b3JrIHdpdGggdGhlIG5hbWUgb3JpZ2luYWxseSByZWdpc3RlcmVkLAoJCSBub3QgYW55IHN1YnNlcXVlbnQgZGl2aXNpb24gYm91bmRhcmllcykKCQoyMDAwLTA3LTMxIDIwOjA5ICBtc2xpZmNhawoKCVJlbW92ZSBkdXBsaWNhdGUgZm9wZW4gZnJvbSBzaGVsbF9jb21tYW5kLgoJCjIwMDAtMDctMzEgMTg6NTggIG1zbGlmY2FrCgoJKFRFU1RDT05GLnNoLmluKSAtIHNldCBNSUJESVJTIHRvIHNpYmxpbmcgb2YgdGhlIHRlc3RpbmcgZGlyZWN0b3J5LgoJKFJVTlRFU1RTKSAtIGFsbG93IGJpbmFyaWVzIHRvIGJlIGluIHRoZSAiLUQgYmluZGlyIiBkaXJlY3RvcnkuCgkKMjAwMC0wNy0zMSAxNToyNSAgbXNsaWZjYWsKCglEb250IGFkanVzdCBQQVRIIGlmIFNOTVBfUEFUSCBpcyBzZXQuCglEb250IGFkZCBwb3J0IHNwZWMgdG8gU05NUF9GTEFHUyBpZiBvbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQuCgkKMjAwMC0wNy0zMSAxMzo0OSAgbXNsaWZjYWsKCglSZW1vdmUgdGVzdCBkaXJlY3RvcmllcyBmb3Igc2tpcHBlZCB0ZXN0cy4KCUtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgZmFpbGVkIHRlc3RzLgoJS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBwYXNzZWQgdGVzdHMgd2hlbiAiUlVOVEVTVFMgLXMiIGlzIHNwZWNpZmllZC4KCVNlYXJjaCBjb25maWcuaCBhdCB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgdHJlZS4KCQoyMDAwLTA3LTMxIDExOjMyICBtc2xpZmNhawoKCU1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcCwgQ3JheS1UMywgU1gtNCwgU1gtNQoJCjIwMDAtMDctMzEgMTE6MzEgIG1zbGlmY2FrCgoJTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwCgkKMjAwMC0wNy0zMCAxNzozOCAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6CgkgIC0gaW1wbGVtZW50IHVudGVzdGVkIGZpbHRlcmluZyBmdW5jdGlvbiBjYWxsYmFjayBmb3IgdGFyZ2V0IHNlYXJjaGVzLgoJICAtIGRlbGV0ZSB1bnVzZWQgZnVuY3Rpb24uCgkgIC0gbWlzYyB3YXJuaW5nIGZpeGVzLgoJCjIwMDAtMDctMzAgMTc6MDcgIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCgkgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCk6CgkgIC0gbW9yZSBub3RpZmljYXRpb24gdGFibGUgaW1wbGVtZW50YXRpb25zIGZvciBmaWx0ZXJpbmcuCgkgICAgLSBGcmFtZXdvcmsgY29tcGxldGUsIGZ1bmN0aW9uYWxpdHkgaXMgbm90LgoJCjIwMDAtMDctMzAgMTc6MDUgIGhhcmRha2VyCgoJLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CgkgIC0gaGFuZGxlIGltcGxpZWQgb2JqZWN0cy4KCSAgLSBpbXBsZW1lbnQgaGVhZGVyX2NvbXBsZXhfZ2V0KCkgZm9yIHNpbXBsZSBkYXRhIHJldHJpZXZhbHMuCgkKMjAwMC0wNy0yOCAwNjoxNSAgbXNsaWZjYWsKCglDbGVhbnVwIGluY2x1ZGUgaGVhZGVycyB0byBmaXggYnVnICMzMDcuIFRoYW5rcyB0byBzYW5kdmVuQHJlc2VhcmNoLmF0dC5jb20uCgkKMjAwMC0wNy0yNyAxNToxOSAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gVmluYXkgTW9odGE6CgkgIC0gYWNjZXNzX2hvc3RzKCkgcmVxdWlyZXMgYW4gYXJndW1lbnQgc28gZmFrZSBvbmUuCgkKMjAwMC0wNy0yNyAxNTowMCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1hdHRpYXMgQmFydGhlbDoKCSAgLSBmaXggZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBhdHRhY2hlZCBJUCBhZGRyZXNzLgoJCjIwMDAtMDctMjcgMTQ6NTUgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CgkgIC0gc3VwcG9ydCByYXcgdmFsdWVzLgoJCjIwMDAtMDctMjcgMDg6MjUgIGhhcmRha2VyCgoJLSAoc25tcHVzbS5jKTogcHJpbnQgZXJyb3JzIHRvIHN0ZGVyci4KCQoyMDAwLTA3LTI3IDA2OjIwICBuYmEKCgktIHBhcnNlLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGl6YXRpb24gd2hlbiBvbmUgTUlCIGhvbGRzIE1PRFVMRS1DT01QTElBTkNFCgkJZm9yIGFub3RoZXIKCQoyMDAwLTA3LTI3IDAxOjM1ICBuYmEKCgktIHNubXBfYXBpLmM6IEZpeCBwZHUtPmNvbW11bml0eSBiZWluZyBvdmVyd3JpdHRlbiB3aXRoIHNlc3Npb24tPmNvbW11bml0eQoJCVRoYW5rcyB0byBEYW5hIFAuIENvb2sgPGRjb29rQGNhYmxldHJvbi5jb20+CgkKMjAwMC0wNy0yNiAyMjoyOCAgbXNsaWZjYWsKCglVcGRhdGUgZm9yIHdpbjMyIGJ1aWxkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgdW5wdWJsaXNoZWQgbWV0aG9kLgoJCjIwMDAtMDctMjYgMDg6NTMgIGhhcmRha2VyCgoJLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCgkKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCgktICh0a21pYik6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSB0cmFuc2xhdGVPYmogaGFjay4KCQoyMDAwLTA3LTI2IDA4OjQ5ICBoYXJkYWtlcgoKCS0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIHJlbW92ZSBiZWdpbm5pbmcgbmV3bGluZSBpbiBkZXNjcmlwdGlvbiBjbGF1c2VzLgoJCjIwMDAtMDctMjEgMTQ6MDAgIGhhcmRha2VyCgoJLSAoc2V0dXBkYiwgc25tcHRvc3FsKTogb25seSBkZWxldGUgaGlzdG9yeSByb3dzIG9uY2UgZXZlcnkgaG91ciBvciBzby4KCSAgLSB0b28gQ1BVIGludGVuc2l2ZSBmb3IgbGFyZ2UgdGFibGVzLgoJCjIwMDAtMDctMjEgMTI6NTkgIGhhcmRha2VyCgoJLSAoc2V0dXBkYiwgc25tcHRvc3FsKTogcmVjb3JkIGFuZCBkaXNwbGF5IHN5c1VwVGltZSBhbmQgb3RoZXJzLgoJCjIwMDAtMDctMjEgMTI6NTcgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IGdyYXBoaW5nIHdvcmtzIGFnYWluLgoJCjIwMDAtMDctMjEgMTI6NTcgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogY29tbWVudHMsIGxlZ2VuZHMsIGFuZCBtYXgvbWluIHdvcmsgYWdhaW4uCgkKMjAwMC0wNy0xNyAxMTowMCAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuaCk6IGNvbmZpZ19yZXF1aXJlIGtlcm5lbF9zdW5vczUuCgkKMjAwMC0wNy0xMiAwOToyOSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGNvcHkga2V5IGxlbmd0aCBhcyB3ZWxsIGFzIHRoZSBrZXkgd2hlbiB1c2luZyB0aGUgc2FtZQoJICBwcml2YWN5IGtleSBhcyB0aGUgYXV0aCBrZXkuCgkKMjAwMC0wNy0xMSAxMzozNCAgbWFyegoKCWFkZGVkIHJhbmdlcyBmaWVsZCB0byBTTk1QOjpNSUIgaGFzaAoJCjIwMDAtMDctMTEgMTA6MDUgIGhhcmRha2VyCgoJLSAobWliLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBtYWtlIG51bGwgUFJFRklYIHZhcmlhYmxlIHBvc3NpYmxlIHNvIG5vbi1kb3QtbGVhZGluZyBvaWRzIGFyZSBhY2NlcHRlZC4KCQoyMDAwLTA3LTExIDA5OjIyICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKCSAgLSBtYWtlIHRoZSBzZXNzaW9uIHBvaW50ZXJzIGluZGljYXRlIHdlYXRoZXIgb3Igbm90IHRoZXkgYXJlCgkgICAgImF1dGhvcml0YXRpdmUiLCBtZWFuaW5nIHdlYXRoZXIgdGhleSBzaG91bGQgYmUgbGVhcm5pbmcgZW5naW5lSURzCgkgICAgb3IgcmVwb3J0aW5nIG9uIHRoZW0uCgkgIC0gcGFzcyB0aGUgcmVjZWl2ZWQtcGFja2V0IHNlc3Npb24gcG9pbnRlciBpbnRvIHNubXB2M19wYXJzZSBhbmQKCSAgICB1c21fcHJvY2Nlc3NfaW5fbXNnKCkgdG8gdXNlIHRoaXMgZmxhZy4KCSAgLSBzZXQgaXNBdXRob3JhdGF0aXZlID0gdHJ1ZSBpbiB0aGUgYWdlbnQsIGFuZCB1bmtub3duIGluIHRoZSBzbm1wdHJhcGQuCgkKMjAwMC0wNy0xMSAwODozMiAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IG1ha2UgdGhlIGNyZWF0ZVVzZXIgdG9rZW4gYWNjZXB0IGFuIGVuZ2luZWlkICgtZSBBUkcpIHRvIHVzZS4KCQoyMDAwLTA3LTA3IDAxOjM3ICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFJlY29nbmlzZSBUb2tlbiBSaW5nIGludGVyZmFjZXMgdW5kZXIgTGludXgKCQoyMDAwLTA3LTA2IDE3OjE5ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBwcmludCBnZW5lcmljIHN0cmluZ3Mgd2hlbiBzYXZpbmcgcGVyc2lzdGVudCBkYXRhCgkgIHdoZXJlIHBvc3NpYmxlLiAgKElFLCBjaGVjayBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMgYmVmb3JlIHByaW50aW5nIGhleCkuCgkKMjAwMC0wNy0wNiAxNzowNSAgaGFyZGFrZXIKCgktIChURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW4pOiBtb3ZlZCBURVNUQ09ORi5zaCB0byBURVNUQ09ORi5zaC5pbgoJICBhbmQgaGF2ZSB0aGUgTUlCUyBwYXRoIHZhcmlhYmxlIGJ1aWx0IGJ5IGNvbmZpZ3VyZSBzaW5jZSBpdCBrbm93cwoJICB3aGVyZSB0aGUgcm9vdCBsZXZlbCBzb3VyY2UgZGlyZWN0b3J5IGlzLgoJCjIwMDAtMDctMDYgMTc6MDQgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhlYWRlcl9jb21wbGV4LmMsIHNubXBOb3RpZnlUYWJsZS5jLAoJICBhc24xLmgsIHNubXBfYXBpLmMpOgoJICAtIGltcGxlbWVudCBJTVBMSUVEIGluZGV4IGhhbmRsaW5nLgoJICAtIG1ha2UgdGhlIGNyZWF0ZWQgVVNNIGVudHJpZXMgc2V0IHRoZSBzdG9yYWdlVHlwZSBhbmQgUm93U3RhdHVzCgkgICAgYXBwcm9wcmlhdGVseS4KCQoyMDAwLTA3LTA2IDE3OjAyICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmgpOiBiZXR0ZXIgY29tbWVudHMgb24gYSBjb3VwbGUgb2YgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCgkKMjAwMC0wNy0wNSAwNzo1MCAgbXNsaWZjYWsKCglmaXggKEJVRyMyOTApIGdyYWNlZnVsbHkgaGFuZGxlIHNvbWUgUERVcyB0aGF0IGhhdmUgbm8gdmFyaWFibGVzLgoJCjIwMDAtMDctMDUgMDY6NDYgIG1zbGlmY2FrCgoJW25vIGxvZyBtZXNzYWdlXQoJCjIwMDAtMDctMDQgMTA6MjEgIGhhcmRha2VyCgoJLSAoc25tcF92YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CgkgIC0gcmVtb3ZlIGxhc3QgcmVtbmFudHMgb2YgdGhlICJpbml0aWFsIiB1c2VyLgoJICAtIG1ha2UgZW5naW5laWQgcmVwb3J0cyBmcm9tIHRoZSB1c20gaGFwcGVuIGJhc2VkIG9uIHRoZSByZXBvcnQgZmxhZwoJICAgIGluIHRoZSBtZXNzYWdlIGZsYWcuCgkgICAgLSBOb3RlOiB0aGlzIGlzIGEgYmlnIGlzc3VlIHdpdGggdGhlIFNOTVB2MyBwcm90b2NvbCBzcGVjcy4gIFRoZQoJICAgICAgc3BlY2lmaWNhdGlvbnMgbm90ZSB0aGF0IHlvdSBzZW5kIGEgcmVwb3J0IGlmIHlvdSBhcmUKCSAgICAgICJhdXRob3JpdGF0aXZlIiwgYnV0IGRvbid0IGRlc2NyaWJlIGhvdyB0byBrbm93IGlmIHlvdSBhcmUKCSAgICAgIGF1dGhvcml0YXRpdmUgb3Igbm90LiAgRm9yIHNpdHVhdGlvbnMgbGlrZSBwcm94aWVzIGFuZAoJICAgICAgbm90aWZpY2F0aW9uIHJlY2VpdmVycywgd2hlcmUgeW91IGFyZSBzb21ldGltZXMgYXV0aG9yaXRhdGl2ZQoJICAgICAgYW5kIG90aGVyIHRpbWVzIHlvdSdyZSBub3QsIHRoaXMgaXMgcHJvYmxlbWF0aWMuICBUaGUgU05NUHYzCgkgICAgICBBU0lzIGRvIG5vdCBwYXNzIGluIGVub3VnaCBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgdGhpcyBhbmQgdGhlCgkgICAgICBXRyBoYXMgcHJvY2xhaW1lZCB0aGF0IHRoZSBBU0lzIGFyZSBub3QgbWVhbnQgdG8gYmUgdXNlZCBhcyBhbgoJICAgICAgQVBJLCBidXQgdGhlIGluaXRpYWwgd29yayBkb25lIGJ5IE5BSSBhbmQgVElTTGFicyBhdHRlbXB0ZWQgdG8KCSAgICAgIGltcGxlbWVudCB0aGUgVVNNIHN1Y2ggdGhhdCBpdCB3b3VsZCBiZSBhICJyZWZlcmVuY2UiIHJlbGVhc2UKCSAgICAgIGFuZCBoZW5jZSB3ZSBmb2xsb3dlZCB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlciBhbmQgdXNlZAoJICAgICAgdGhlIEFTSXMgYXMgQVBJcyBqdXN0IHRvIHNlZSBpZiB3ZSBjb3VsZC4gIFdlIGNvdWxkIHByZXZpb3VzbHkKCSAgICAgIG9ubHkgYmVjYXVzZSB3ZSB3ZXJlIGFsd2F5cyBlaXRoZXIgYXV0aG9yaXRhdGl2ZSBvcgoJICAgICAgbm9uLWF1dGhvcml0YXRpdmUuICBTaW5jZSBiZWdpbm5pbmcgdG8gd29yayBvbiBwcm94eSBhbmQgdGhlCgkgICAgICBub3RpZmljYXRpb24gbWliLCB0aGlzIGlzIG5vIGxvbmdlciBwb3NzaWJsZS4gIEZvciB0aGUgcmVjb3JkLCBJCgkgICAgICBhbSBoZXJlYnkgY2hhbmdpbmcgdGhlIGluaXRpYWwgcmVmZXJlbmNlIHJlbGVhc2UgaW4gc3VjaCBhCgkgICAgICBtYW5uZXIgYXMgaXQgbm8gbG9uZ2VyIGNvbmZvcm1zIGV4YWN0bHkgdG8gdGhlIFNOTVB2MyBBU0lzLiAgU28KCSAgICAgIGFzIG5vdCB0byBjb25mdXNlIGFueW9uZSwgdGhpcyBpcyBhbiBlbnRpcmVseSB0aGVvcmV0aWNhbCBpc3N1ZQoJICAgICAgd2l0aCByZXNwZWN0IHRvIHRoZSBTTk1QdjMgc3BlY2lmaWNhdGlvbiBhbmQgaXMgcGVyZmVjdGx5IGxlZ2FsCgkgICAgICB0byBkby4gIFRob3VnaCBJIGNvdWxkIGVhc2lseSBnbyBvbiwgSSdsbCBzdGVwIG9mZiBteSBzb2FwIGJveCBub3cuCgkKMjAwMC0wNy0wMyAxMDoxMCAgaGFyZGFrZXIKCgktIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHNubXBOb3RpZnlUYWJsZS5jLAoJICBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKCSAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CgkgIC0gQWRkIGEgbmV3IGNhbGxiYWNrIGZvciBzZW5kaW5nIHRyYXBzLgoJICAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiB1c2UgaXQuCgkgIC0gbWFrZSB0aGUgdGFyZ2V0IG1pYiBnZW5lcmF0ZSBtb3JlIHBlcnNpc3RlbnQgc2Vzc2lvbnMuCgkgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiBhbHdheXMgYXNrIHRoZSB0YXJnZXQgbWliIGZvciBhIHNlc3Npb24KCSAgICBsaXN0LCB3aGljaCBpcyBub3cgY2FjaGVkIGRpcmVjdGx5IGJ5IHRoZSB0YXJnZXQgbWliLgoJCjIwMDAtMDctMDMgMDg6MzggIG1zbGlmY2FrCgoJZml4IChCVUcjMjYyKSAtIChzb21lKSBzdGF0ZW1lbnRzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQuCgkKMjAwMC0wNy0wMyAwNzo1NSAgbXNsaWZjYWsKCglmaXggKEJVRyMyODcpCgkKMjAwMC0wNy0wMyAwNjoxMSAgbXNsaWZjYWsKCglmaXggYnVnICMgMjg5CgkKMjAwMC0wNi0zMCAwNDo0NSAgbXNsaWZjYWsKCglzaW1wbGlmeSBtZW1vcnkgYWxsb2NhdGlvbiBpbiByZWFkX2NvbmZpZ19yZWFkX3tvY3RldF9zdHJpbmcsIG9iamlkfQoJCjIwMDAtMDYtMzAgMDA6NDcgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogRml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBmb3Iga2V5d29yZHMgd2l0aG91dCBoZWxwCgkKMjAwMC0wNi0yOCAyMzozNyAgbmJhCgoJLSBJRi1NSUIudHh0OiB1cGdyYWRlIHRvIFJGQyAyODYzCgkKMjAwMC0wNi0yOCAwMDo1OCAgbmJhCgoJLSBpbnRlcmZhY2VzLmMsIGNvbmZpZ3VyZTogSXJpeCA2LjUgaGFzIGlmaV9iYXVkcmF0ZS5pZnNfdmFsdWUKCQoyMDAwLTA2LTI3IDAxOjM0ICBuYmEKCgktIG1haW4uYzogYmV0dGVyIG9wdGlvbiBwYXJzaW5nLgoJCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKCS0gc25tcHYzLmM6IGRvIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2Ygb3B0aW9uIHZhbHVlcy4KCQoyMDAwLTA2LTI3IDAwOjMzICBuYmEKCgktIHNubXB0cmFuc2xhdGUuMTogZG9jdW1lbnQgdGhhdCAtdyBpcyBhbHNvIGZvciAtVGQKCQoyMDAwLTA2LTI3IDAwOjMwICBuYmEKCgktIHZhcmlvdXMgbWFuIHBhZ2Ugbml0LXBpY2tpbmcKCQoyMDAwLTA2LTI3IDAwOjI4ICBuYmEKCgktIHNubXB0YWJsZS5jOiBmaXhlcyBhbmQgdXNhZ2UgbWVzc2FnZSBmb3IgLUNoIGFuZCAtQ0gKCQoyMDAwLTA2LTI2IDIzOjQzICBuYmEKCgktIE1ha2VmaWxlLmluLCAqTUlCLnR4dDogdXBkYXRlIHRvIGN1cnJlbnQgUkZDIHZlcnNpb24KCQoyMDAwLTA2LTI2IDIzOjQyICBuYmEKCgktIE1ha2VmaWxlLm1pYiwgbWliZmV0Y2gsIHNtaXN0cmlwOiB0b29scyB0byBleHRyYWN0IE1JQnMgZnJvbSBSRkMKCQlkb2N1bWVudHMuCgkKMjAwMC0wNi0yNiAyMzo0MCAgbmJhCgoJLSBwYXJzZS5jLCBtaWIuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhZGQgcGFyc2luZyBvZiBDSE9JQ0UgYW5kIGNoZWNrcyBmb3IKCQlPQkpFQ1QtR1JPVVAgYW5kIEFHRU5ULUNBUEFCSUxJVElFUy4gVGhpcyBhbGxvd3MgdXMgdG8gcGFyc2UKCQljb21wbGV0ZSBNSUIgZXh0cmFjdHMgZnJvbSBSRkMgZG9jdW1lbnRzLgoJCjIwMDAtMDYtMjYgMjM6MzggIG5iYQoKCS0gTWFrZWZpbGUudG9wOiBtYWtlIGxpYnRvb2wgc2lsZW50LCBzbyB3ZSBjYW4gc2VlIHRob3NlIHdhcm5pbmdzCgkKMjAwMC0wNi0yNiAyMzozNyAgbmJhCgoJLSBzbm1wVGFyZ2V0QWRkckVudHJ5LmM6IGRvIGEgY2FzdCB0byBraWxsIGEgd2FybmluZwoJCjIwMDAtMDYtMjYgMjM6MzIgIG5iYQoKCS0gYWdlbnRfdHJhcC5jOiBGaXggYSBsZWFrIHdoZW4gcmVxdWVzdCBpcyBibG9ja2VkIGJ5IFZBQ00gYW5kIG5vIHRyYXAKCQlpcyBzZW50LgoJCjIwMDAtMDYtMjYgMTE6NTYgIG1zbGlmY2FrCgoJZml4IChCVUcjMjMzKQoJCjIwMDAtMDYtMjMgMDY6NDIgIG1zbGlmY2FrCgoJcmVwbGFjZSBtYWxsb2MvbWVtc2V0IDAgd2l0aCBjYWxsb2MuCgkKMjAwMC0wNi0yMyAwMTowOCAgZGF2ZXMKCgktIChtaWJJSS9rZXJuZWxfbGludXguW2NoXSwgbWliSUkvaXAuYyk6IEFkZGVkIHN1cHBvcnQgZm9yIGlwUm91dGluZ0Rpc2NhcmRzCgkJKFRoYW5rcyB0byBCcnlhbiBCbGFja21hbikKCQoyMDAwLTA2LTIyIDE3OjA5ICBtc2xpZmNhawoKCXJlbW92ZSBleHRyYSBpbmNsdWRlIGVycm9ybWliLmgKCQoyMDAwLTA2LTIyIDE2OjUwICBtc2xpZmNhawoKCUZpeCBidWcgIzI3NiAtIGNsb3NlIG1vc3QgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgZXhlYydpbmcgY29tbWFuZC4KCQoyMDAwLTA2LTIyIDE1OjU5ICBtc2xpZmNhawoKCWZnZXRzOiB1c2Ugc2l6ZW9mKGJ1ZikgaW4gbGlldSBvZiBjb21waWxlciBjb25zdGFudCBTVFJNQVguCgkKMjAwMC0wNi0yMiAxNTo1MyAgbXNsaWZjYWsKCglVc2UgZmV3ZXIgbGFyZ2Ugc3RhdGljIGJ1ZmZlcnMuICBwYXNzX3BlcnNpc3QgdXNlcyBiaWdnZXIgYnVmZmVycyBub3cuCgkKMjAwMC0wNi0yMSAxNDo1OSAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtLCBzbm1wdG9zcWwpOiByZWNvcmQgYW5kIHJlcG9ydCBzeXNVcFRpbWUuCgkKMjAwMC0wNi0yMSAxNDozMSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBtaW5vciBzcWwgY2FjaGluZyBzcGVlZCBvcHRpbWl6YXRpb25zLgoJCjIwMDAtMDYtMjEgMTM6MzMgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogQWNrLiAgRG9uJ3QgZGVsZXRlIHN0dWZmIGZyb20gdGhlIGhpc3RvcnkgdGFibGUgdGhhdCBmcmVxdWVudGx5LgoJCjIwMDAtMDYtMjEgMTI6NTEgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogYmV0dGVyIGVycm9yIGRlc2NyaXB0aW9uIHN1cHBvcnQuCgkKMjAwMC0wNi0yMSAxMjo0NiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtLCBzbm1wdG9zcWwpOiBjb2xsZWN0IHN5c0Rlc2NyLCBzeXNPYmplY3RJZCwgJiB2ZXJzaW9uVGFnLgoJCjIwMDAtMDYtMjEgMTI6NDYgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogYWRkIC1zZWxlY3RvcmRlci4KCQoyMDAwLTA2LTIxIDEyOjI1ICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jKTogVWgsIG9ubHkgaWYgbm90IGRlbGV0ZWQuCgkKMjAwMC0wNi0yMSAxMjoyMyAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5VGFibGUuYyk6IGNoYW5nZSBjcmVhdGVBbmRHby9jcmVhdGVBbmRXYWl0IHN0YXRlcyB0byBhY3RpdmUvTklTLgoJCjIwMDAtMDYtMjAgMjA6MDEgIG1zbGlmY2FrCgoJRGVjbGFyZSB0b3BfYnVpbGRkaXIgdG8gYXZvaWQgYW5ub3lpbmcgL2xpYnRvb2wgbm90IGZvdW5kIG1lc3NhZ2UuCgkKMjAwMC0wNi0yMCAxNzozMCAgbXNsaWZjYWsKCglEb250IGFzc3VtZSBBTlNJIEMtcHJlcHJvY2Vzc29yIChyZXBsYWNlICIjIyIgY29uY2F0ZW5hdGlvbiB3aXRoIHNwcmludGYpLgoJCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgoJV2luMzIgTVMtVkMrKyBidWlsZCBmaXh1cHMuCgkKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCglFbmNhcHN1bGF0ZSBsb2NhbCB2YXJpYWJsZSAieCIgdG8gdGhlIHNjb3BlIHdoZXJlIG5lZWRlZC4KCQoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFyICJuZXd2YXIiLgoJCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgoJVXNlIGludCB2cyB1bG9uZyBmb3IgYXJyYXkgaW5kZXhpbmcgdmFyaWFibGVzIHRvIGF2b2lkIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaC4KCQoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFycyBzdHJ1Y3QgdG0sIHRpbWVfdC4KCQoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFyICJpbml0bGlzdCIuCgkKMjAwMC0wNi0yMCAxNTozMyAgbXNsaWZjYWsKCglEZWNsYXJlIHN0cm5jYXNlY21wIGluIHN5c3RlbS5oIDsgUmVtb3ZlIHVudXNlZCB2YXIgInN0YXR1cyIuCgkKMjAwMC0wNi0yMCAxNTozMSAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhcnMuCgkKMjAwMC0wNi0yMCAxNTozMCAgbXNsaWZjYWsKCglEZWNsYXJlIG9wdGFyZyBpbiBnZXRvcHQuaC4KCQoyMDAwLTA2LTIwIDE0OjAwICBoYXJkYWtlcgoKCS0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IG1pc2MgbWlub3IgY2hhbmdlcy4KCQoyMDAwLTA2LTIwIDEzOjU5ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUsIHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCk6CgkgIC0gU05NUC1OT1RJRklDQVRJT04tTUlCJ3Mgc25tcE5vdGlmeVRhYmxlIGltcGxlbWVudGVkOgoJICAgIC0gdXNlcyB0aGUgU05NUC1UQVJHRVQtTUlCIHRvIGdldCBpdHMgYWRkcmVzc2VzIGZyb20uCgkgICAgLSB1c2VzIGhlYWRlcl9jb21wbGV4IHRvIGhhbmRsZSB0aGUgZGF0YS4KCSAgICAtIG11Y2ggdG9kbzoKCSAgICAgIC0gZHluYW1pYyB0YXJnZXQvbm90aWZpY2F0aW9uIG1pYiB1cGRhdGluZyB3aXRob3V0IGtpbGwgLUhVUCBuZWVkZWQuCgkgICAgICAgIC0gdGhpcyB3aWxsIGJlIGEgcmVhbCBwYWluLgoJICAgICAgLSBmaXggdjMgcmVsYXRlZCB0cmFwcyBzdGlsbCAoc2FtZSB1c20gYnVnIEkndmUgYmVlbiBtZWFuaW5nIHRvIGZpeCkuCgkgICAgICAtIHRoZSByZXN0IG9mIHRoZSBTTk1QLU5PVElGSUNBVElPTi1NSUIgdGFibGVzLgoJCjIwMDAtMDYtMjAgMTM6NTMgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCgkgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6CgktIGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KCS0gbWlzYyBvdGhlciBtaW5vciBmaXhlcy4KCQoyMDAwLTA2LTIwIDEzOjUxICBoYXJkYWtlcgoKCS0gKHRhcmdldC5oLCB0YXJnZXQuYywgdGFyZ2V0LmgpOiBnZW5lcmljIHRhcmdldCBzZXNzaW9uIGNyZWF0aW9uCgkgIGJhc2VkIG9uIGVudHJpZXMgaW4gdGhlIFNOTVAtVEFSR0VULU1JQiB0YWJsZS4KCQoyMDAwLTA2LTIwIDEzOjUwICBoYXJkYWtlcgoKCS0gKGhlYWRlcl9jb21wbGV4LmMpOiByZW1vdmUgTWljaGFlbCdzIGhvcnJpYmxlbHkgd3JvbmcgImZpeGVzIi4KCQoyMDAwLTA2LTIwIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKTogYWRkIHJlbW92ZV90cmFwX3Nlc3Npb24oKS4KCQoyMDAwLTA2LTIwIDEzOjQ2ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBkZWFsIHdpdGggMC1sZW5ndGggcGVyc2lzdGVudCBzdHJpbmdzIGJldHRlci4KCQoyMDAwLTA2LTE5IDEyOjMyICBtc2xpZmNhawoKCUNoZWNrIG1vcmUgYWxsb2MgZmFpbHVyZXMuCgkKMjAwMC0wNi0xOSAxMjoxNSAgbXNsaWZjYWsKCgkocHJvdG9jb2wuYykgVXNlIHNpemVvZihvaWQpLCBub3QgNCEKCShjbGllbnQuYykgQWRkIF9hbGxfIG9mIE9JRCB2YWx1ZSBmb3IgYWdlbnR4X3JlZ2lzdGVyIGFuZCBhZ2VudHhfdW5yZWdpc3Rlci4KCQoyMDAwLTA2LTE5IDExOjQxICBtc2xpZmNhawoKCSBSZW1vdmVkIHNpemVvZih1X2NoYXIpIGFuZCB1bm5lY2Vzc2FyeSAodW5zaWduZWQpIGNhc3RzIHRvIG1hbGxvYyBwYXJhbXMuCgkKMjAwMC0wNi0xOSAwMzowNCAgbmJhCgoJUHJvdG90eXBlIGZpeHVwLgoJCjIwMDAtMDYtMTkgMDM6MDEgIG5iYQoKCXMvY29uaWZnL2NvbmZpZy8gLi4uLiBIcnJybW1tcGYKCQoyMDAwLTA2LTE5IDAyOjU4ICBuYmEKCgktIG1ha2Vub3N5c2RlcGVuZC5wbCBNYWtlZmlsZS5pbjogb2JqZWN0IGZpbGVzIGFyZSBub3cgbmFtZWQgLmxvIC4uLgoJCjIwMDAtMDYtMTYgMTY6MDEgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5oKTogYWRkIHRoZSBTTk1QdjItVE0gbWliIHRvIHRoZSBkZWZhdWx0IGxpc3QuCgkKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogZml4IGluY29ycmVjdCBPSURzLgoJCjIwMDAtMDYtMTUgMDY6NDUgIG1hcnoKCglmYXQgZmluZ2VycwoJCjIwMDAtMDYtMTUgMDY6NDIgIG1hcnoKCglhZGQgZGVmYXVsdHMgdG8gZGFlbW9uIHNlYXJjaCBwYXRoLi4ucmVjYWxjIHQvc25tcHRlc3QuY21kIGV2ZXJ5dGltZSBwZXIgbWFrZWZpbGUuUEwgaXMgcnVuCgkKMjAwMC0wNi0xNCAxNjoxNSAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogZml4IHVzZXIgcHJlZmVyZW5jZXMuICBDb2x1bW5zIGFyZSBvcHRpb25hbGx5CgkgIGRpc3BsYXlhYmxlIGFnYWluLgoJCjIwMDAtMDYtMTQgMTY6MTUgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogZml4IGhpc3RvcnkgZGVsZXRpb24uCgkKMjAwMC0wNi0xMiAxNjo0MyAgaGFyZGFrZXIKCgktIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdHJhcHNlc3MuCgkKMjAwMC0wNi0xMiAxNjozOSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCk6CgkgIC0gbmV3IHNubXBkLmNvbmYgdG9rZW4gZm9yIHRyYXAgc2Vzc2lvbnM6ICJ0cmFwc2VzcyIuCgkgICAgLSB1c2VzIHNubXBfcGFyc2VfYXJncyBzbyBhbnkgdHlwZSBvZiB0cmFwIGNhbiBiZSBzZW50IHdpdGggaXQKCSAgICAgIG1vZGlmaWVkIGJ5IGFueSBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGFyZSBkb2N1bWVudGVkIGluIHNubXBjbWQoMSkuCgkgICAgLSB2MyB0cmFwcyBkb24ndCB3b3JrIGR1ZSB0byB0aGUgc2FtZSBVU00gcHJvYmxlbXMgZm91bmQgaW4gdGhlCgkgICAgICByZWNlbnQgcHJveHkgc3VibWlzc2lvbnMgKG15IG5leHQgdGFyZ2V0KS4KCSAgICAtIC1DaSBpbiB0aGUgYXJndW1lbnQgc3BlY2lmaWVzIGluZm9ybXMgc2hvdWxkIGJlIHVzZWQuCgkKMjAwMC0wNi0xMiAxNjoxOCAgaGFyZGFrZXIKCgktIChtYXN0ZXJfcmVxdWVzdC5jKTogcmUtZW5hYmxlIGZyZWVpbmcgb2YgbWFzdGVyIHJlcXVlc3QuCgkKMjAwMC0wNi0xMiAxNjoxNyAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNhdmUgZXhlYyBkYXRhIHRvIC92YXIvdWNkLXNubXAuCgkgIC0gY291bGQgY2F1c2UgcHJvYmxlbXMgZm9yIG5vbi1yb290IHJ1bnMuICBVbnRlc3RlZC4KCQoyMDAwLTA2LTEyIDE0OjEyICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZF9sb2cuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKCSAgLSByZW1vdmUgZW5kaW5nIGNvbW1hcyBpbiBlbnVtIGxpc3QuCgkKMjAwMC0wNi0xMiAxMDozNiAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzZXR1cHVzZXIsIHNubXB0b3NxbCk6IHVzZSAiVGFibGUicyBpbnN0ZWFkIG9mICJFbnRyeSJzLgoJCjIwMDAtMDYtMTIgMTA6MzMgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3IgZGlzcGxheSBwdXJwb3NlcyAoYWdhaW4pLgoJCjIwMDAtMDYtMTIgMTA6MjkgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCQoyMDAwLTA2LTEyIDEwOjI3ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBwcm9wZXJseSBzb3J0IGRpc3BsYXllZCB0YWJsZSBjb2x1bW5zIGFnYWluLgoJCjIwMDAtMDYtMDcgMTM6MjMgIGhhcmRha2VyCgoJLSAoc25tcF9jb25maWcuNS5kZWYsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgoJICAtIHRoZSBUWVBFLmNvbmYgcGFyc2VyIG5vdyBhY2NlcHRzIHRva2VucyBmcm9tIGEgZGlmZmVyZW50IC5jb25mCgkgICAgZmlsZSBUWVBFIGlmIGEgc3BlY2lhbCAiW1RZUEVdIiBrZXl3b3JkIGlzIGluc2VydGVkIGludG8gdGhlCgkgICAgLmNvbmYgZmlsZS4gIFNlZSBzbm1wX2NvbmZpZyg1KSBmb3IgYSBiZXR0ZXIgZGVzY3JpcHRpb24uCgkKMjAwMC0wNi0wNyAxMzoyMiAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgoJICAtIG1hcCBzdHJ0b3VsIHRvIGF0b2kgaWYgdGhlIGZ1bmN0aW9uIGlzbid0IGZvdW5kLgoJCjIwMDAtMDYtMDYgMTQ6MjYgIGhhcmRha2VyCgoJLSAoSU5TVEFMTCwgZ3JlZW4uZ2lmLCBtYW5hZ2VyLnBtLCByZWQuZ2lmLCBzZXR1cGF1dGgsIHNldHVwZGIsCgkgIHNldHVwbmV3aG9zdCwgc2V0dXB1c2VyLCBzbm1wdG9zcWwsIHNubXB0b3NxbHRhYmxlLCBzcWx0b2h0bWwpOgoJICAtIG1hbmFnZW1lbnQgY2xlYW51cCBhbmQgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyB3cml0dGVuLgoJICAtIHNob3VsZCBiZSBtb3N0bHkgY29tcGxldGUgKGllLCBiYXJlbHkgZnVuY3Rpb25hbCkgZm9yIHRoZSBhbHBoYSB0ZXN0ZXJzLgoJCjIwMDAtMDYtMDYgMDg6MDMgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogaG9zdCBuYW1lIGNoYW5nZXMgLT4gdmFyY2hhcig2NCkKCQoyMDAwLTA2LTA2IDA4OjAyICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBtYW55IG1pbm9yIGZpeGVzIGFuZCBjaGFuZ2VzLgoJCjIwMDAtMDYtMDYgMDg6MDIgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogYWxsb3cgdGFibGUgdGl0bGUgc2V0dGluZy4KCQoyMDAwLTA2LTAyIDExOjQxICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBhZGQgKi5tYWRlLgoJCjIwMDAtMDYtMDIgMTE6NDAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIGZpeHByb2MsIGlwZi1tb2QucGwsIG1pYjJjLCB0a21pYik6CgkgIC0gbWFrZSAoYW5kIGluc3RhbGwpIHBlcmwgc2NyaXB0cyBkaWZmZXJlbnRseSwgd2l0aG91dCBtb2RpZnlpbmcgdGhlIG9yaWcuCgkKMjAwMC0wNi0wMSAxNjo0NyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiB0eXBvcy4KCQoyMDAwLTA2LTAxIDE2OjQ0ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6CgkgIC0gZGVidWdnaW5nIHRvIFNUREVSUi4KCSAgLSBhdXRvIGRlbGV0aW9uIG9mIG9sZCBoaXN0b3JpY2FsIGRhdGEuCgkKMjAwMC0wNi0wMSAxNjo0NCAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogYmVnaW5uaW5ncyBvZiBhIG5pY2VyIHJlYWwgaW50ZXJmYWNlLgoJCjIwMDAtMDYtMDEgMTY6NDMgIGhhcmRha2VyCgoJLSAoZ2V0VmFsdWVzLnBtKTogc29tZSB2YXJpYWJsZXMgd2VyZSBnbG9iYWwgYW5kIGhlbmNlIHBlcnNpc3RlbnQgYW5kCgkgIHdlcmUgbWVzc2luZyB0aGluZ3MgdXAuCgkKMjAwMC0wNi0wMSAxNDo0OCAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogc3RvcmUgcGVyc2lzdGVudCBkYXRhIGltbWVkaWF0ZWx5IGFmdGVyIGluaXQnaW5nIHRvCgkgIGVuc3VyZSB3ZSB1cGRhdGUgY291bnRlcnMgYW5kIHN0dWZmIHRoYXQgbXVzdCBjaGFuZ2UgKGVnLCBlbmdpbmVCb290cykuCgkKMjAwMC0wNS0zMSAxNjoyMiAgaGFyZGFrZXIKCgktIChzbm1wZC4xLmRlZik6IGRlc2NyaWJlIC1JLgoJCjIwMDAtMDUtMzEgMTU6NTIgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBkLmMpOgoJICAtIG5ldyAtSSBzd2l0Y2ggdG8gc25tcGQgdG8gZG8gZHluYW1pYyBkZXRlcm1pbmF0b24gb2Ygd2hpY2ggbWliCgkgICAgbW9kdWxlcyB0byBpbml0aWFsaXplIChhbmQgaGVuY2Ugd2hpY2ggbWliIHRyZWUgc2VjdGlvbnMgdG8gc3VwcG9ydCkuCgkKMjAwMC0wNS0zMSAxNTo1MCAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6IGRlZmF1bHQgc3RvcmUgcm91dGluZXMgZm9yIHZvaWQgcG9pbnRlcnMuCgkgLSB3aGljaCBJIGltbWVkaWF0ZWx5IGRlY2lkZWQgdG8gZG8gc29tZXRoaW5nIGRpZmZlcmVudCBmb3Igd2hhdCBJCgkgICBvcmlnaW5hbGx5IGltcGxlbWVudGVkIGl0IGZvciwgc28gaXRzIG5vdCBiZWluZyB1c2VkIHlldC4KCQoyMDAwLTA1LTMxIDA1OjU5ICBkYXZlcwoKCS0gKG1pYklJL2lwLltjaF0pOiBBbGxvdyBJUCBzdXBwb3J0IHdpdGhvdXQgdGhlIEF0L2lwTmV0VG9NZWRpYSBtb2R1bGUKCQoyMDAwLTA1LTMwIDE3OjExICBoYXJkYWtlcgoKCS0gKHByb3h5LmMsIHByb3h5LmgpOiBzaW1wbGUgcHJveHkgc3VwcG9ydC4KCSAgLSBtYXBzIG9uZSBvaWQgaW5zaWRlIHRoZSBhZ2VudCB0byBhIHBvc3NpYmx5LWRpZmZlcmVudCBvaWQgb24gYSB0YXJnZXQuCgkgIC0gdXNlcyBzbm1wX3BhcnNlX2FyZ3MoKSBzbyBpdCB0YWtlcyBzdGFuZGFyZCBjb21tYW5kIGxpbmUgY29uZmlnIG9wdGlvbnMuCgkgIC0gbm8gc2V0IHN1cHBvcnQuCgkgIC0gbm8ga2lsbCAtSFVQIHN1cHBvcnQuCgkgIC0gbm8gU05NUHYzIHN1cHBvcnQgKHNpZ2gpLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgSUFOQS1MQU5HVUFHRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIEFHRU5UWC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMDc6NDcgIG1zbGlmY2FrCgoJRml4IHByb2JsZW0gaWRlbnRpZmllZCBieSBWLiBHcmVuZXQgOiBuZXcgbWV0aG9kIHNubXBfb2lkX21pbl9jb21wYXJlCgkKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgoJZmlsZSBtaWJmZXRjaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCglmaWxlIHNtaXN0cmlwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKCWZpbGUgTWFrZWZpbGUubWliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMjYgMDk6MjQgIGRhdmVzCgoJLSAobWliSUkvc3lzT1JUYWJsZS5jIG1pYklJL3N5c3RlbV9taWIuYyk6CgkgIC0gVXNlIG5ldyB0aW1lIHV0aWxpdHkgcm91dGluZXMgdG8gc2ltcGxpZnkgcHJvY2Vzc2luZwoJICAtIFVwZGF0ZSBzeXNPUkxhc3RDaGFuZ2Ugd2hlbiBhZGRpbmcvcmVtb3ZpbmcgZW50cmllcwoJCjIwMDAtMDUtMjYgMDk6MjMgIGRhdmVzCgoJLSAodXRpbF9mdW5jcy5bY2hdKTogTmV3IHRpbWUtZGlmZiB1dGlsaXR5IHJvdXRpbmVzCgkKMjAwMC0wNS0yNiAwODo0NiAgZGF2ZXMKCgktIChzbm1wZC5jIHNubXBfYWdlbnQuYyBtaWJJSS92YXJfcm91dGUuYyk6IFVzZSAnbWliaW5jbC5oJyBoZWFkZXIKCQoyMDAwLTA1LTI2IDA3OjQ4ICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdCgkgICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CgkgICAtIFN1cHBvcnQgZm9yIE1JQiByZWdpb24gdGltZW91dHMKCQoyMDAwLTA1LTI2IDA3OjQ2ICBkYXZlcwoKCS0gKHNubXAuaCBzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBTdXBwb3J0IGZvciBwZXItcmVxdWVzdCB0aW1lb3V0IGhhbmRsaW5nCgkKMjAwMC0wNS0yNiAwNzo0NSAgZGF2ZXMKCgktIChhZ2VudHgvcHJvdG9jb2wuYyk6IE1pbm9yIGVycm9yIGluIEFnZW50WCBwYWNrZXQgZHVtcAoJCjIwMDAtMDUtMjUgMTA6MDcgIGhhcmRha2VyCgoJLSAobWVtb3J5LmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLavhyc3RhZDoKCSAgLSBmaXhlZCBsaW51eCBwcm9ibGVtOiB3cm9uZyBwYXJhbXMgZ2V0dGluZyByZXR1cm5lZC4KCQoyMDAwLTA1LTI1IDA1OjM4ICBtc2xpZmNhawoKCUZpeCB1c2Ugb2YgYmluMmFzYyB0byBub3QgYWx3YXlzIHNob3cgInN0cmluZyI7IHVzZSBzbm1wX29pZF9jb21wYXJlLCB0b28uCglTZWUgYnVnICMyMzQgZm9yIGRldGFpbHMuCgkKMjAwMC0wNS0yNSAwMzozOSAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb25zb2xpZGF0ZSBoZWFkZXIgaGFuZGxpbmcuCgkKMjAwMC0wNS0yNSAwMzozMSAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb3JyZWN0IGNvbmZ1c2luZyBjb21tZW50CgkKMjAwMC0wNS0yNSAwMTo1MyAgZGF2ZXMKCgktIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogUmVwbGFjZSB1c2Ugb2YgJ2N1dCcgd2l0aCBlcXVpdmFsZW50ICdzZWQnIGNhbGxzCgkKMjAwMC0wNS0yNSAwMTozMCAgZGF2ZXMKCgktIChjb25maWd1cmUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUpOgoJICAtIERpcmVjdCBjZXJ0YWluIGNoZWNrcyB0byB0aGUgYXBwcm9wcmlhdGUgZmlsZSBkZXNjcmlwdG9yIChzZWUgQlVHIzI0NykKCQoyMDAwLTA1LTIyIDE2OjIyICBoYXJkYWtlcgoKCS0gKGFwcHMvLmN2c2lnbm9yZSk6IGFkZCBtb3JlIHN0dWZmIHRvIGlnbm9yZS4KCQoyMDAwLTA1LTIyIDE2OjIxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrZ2V0LmMsCgkgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKCSAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAoJICBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywKCSAgc25tcF9wYXJzZV9hcmdzLmgpOgoJICAtIG1vdmVkIHNubXBfcGFyc2VfYXJncyB0byB0aGUgbGlicmFyeSwgYXMgSSBwcm9taXNlZCB0byBkbyBhZ2VzIGFnby4KCSAgICAtIG5vIGxvbmdlciBjYWxscyB1c2FnZSgpIGRpcmVjdGx5LCBidXQgcmV0dXJucyAtMSBpZiB5b3Ugc2hvdWxkLgoJCjIwMDAtMDUtMjIgMDU6NDcgIGRhdmVzCgoJLSAoc25tcGxpYi90b29scy5bY2hdKTogUm91dGluZSBmb3IgY29tcGFyaW5nIHR3byBtYXJrZXJzLgoJCjIwMDAtMDUtMjIgMDU6NDIgIGRhdmVzCgoJLSAobG9jYWwvbWliMmMpOiBHZW5lcmF0ZSBtdWx0aXBsZSB0YWJsZXMgaW4gb25lIGNvZGUgZmlsZQoJCjIwMDAtMDUtMTcgMTA6MjggIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSB3cml0YWJsZSB2YWNtIG1pYiBzdXBwb3J0LgoJICAtIG90aGVyIG1pc2MgdmFjbSBmaXhlcy4KCQoyMDAwLTA1LTE3IDEwOjI2ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSBEb24ndCBzZWdmYXVsdCBvbiBhbiB1bmtub3duIGNvbW1hbmQsIGluc3RlYWQgcHJpbnQgYSB3YXJuaW5nLi4KCQoyMDAwLTA1LTE3IDEwOjI1ICBoYXJkYWtlcgoKCS0gKHNubXB2YWNtLmMpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CgkgIC0gYWRkZWQgYSBuZXcgY29tbWFuZDogc25tcHZhY20uCgkKMjAwMC0wNS0xNyAwOToyNSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogbWVudGlvbiB0aGUgcG9ydCBudW1iZXIgb24gdGhlIHRyYXBzaW5rIGhlbHAgbGluZS4KCQoyMDAwLTA1LTE3IDA5OjIwICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogdXNlIHN0YW5kYXJkaXplZCBidWZmZXIgc2l6ZXMKCQoyMDAwLTA1LTE3IDA5OjEzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20KCSAgSmVmZiBDb3VyczoKCSAgLSBjdXN0b21pemVkIGZvcm1hdHRpbmcgb2YgdHJhcCBvdXRwdXQuCgkKMjAwMC0wNS0xNyAwOToxMSAgaGFyZGFrZXIKCgktIChSRUFETUUpOiBhZGQgSmVmZiBhbmQgQXJuZS4KCQoyMDAwLTA1LTE3IDA4OjE1ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogKmNvcnJlY3RseSogYXNzb2NpYXRlIGVzY2FwZVF1b3RlcyB3aXRoIHRoZSByaWdodCBkZWZhdWx0X3N0b3JlIGJvb2wuCgkKMjAwMC0wNS0xNyAwODoxMSAgaGFyZGFrZXIKCgktIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBlc2NhcGVRdW90ZXMuCgkKMjAwMC0wNS0xNyAwODowOSAgaGFyZGFrZXIKCgktIChzbm1wY21kLjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBuZXcgb3B0aW9uIC1PRToKCSAgLSBzaGVsbCBiYWNrc2xhc2ggZXNjYXBlIHF1b3RhdGlvbnMgbWFya3MgZm9yIGN1dHRpbmcgYW5kIHBhc3RpbmcKCSAgICBvbnRvIGFub3RoZXIgc25tcCBjb21tYW5kIGxpbmUuCgkKMjAwMC0wNS0xNSAwOToyNCAgZGF2ZXMKCgktIChtaWJJSS97aXAsaWNtcCx0Y3AsdWRwLGtlcm5lbF9saW51eH0uW2NoXSk6CgkgIC0gIFB1bGwgTGludXggTUlCLUlJIHN0YXRpc3RpY3MgZ2F0aGVyaW5nIGludG8gYSBzaW5nbGUgcm91dGluZS4KCSAgLSAgQ2FjaGUgTUlCLUlJIHN0YXRpc3RpY3Mgb24gYWxsIGFyY2hpdGVjdHVyZXMuCgkKMjAwMC0wNS0xNSAwODo1MyAgaGFyZGFrZXIKCgktICh1Y2Rfc25tcC5oLCB2bXN0YXRfYnNkaTQuYywgdm1zdGF0X2JzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gdm1zdGF0IHN1cHBvcnQgZm9yIGJzZGk0LgoJCjIwMDAtMDUtMTUgMDM6MDYgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKCQkoSXQgcmVhcHBlYXJlZCBkdXJpbmcgYSByZWNlbnQgY2hhbmdlKQoJCjIwMDAtMDUtMTUgMDM6MDAgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBJbXBsZW1lbnQgbWlzc2luZyByb3V0aW5lICd1bnJlZ2lzdGVyX21pYl9jb250ZXh0JwoJCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50X2luZGV4LltjaF0pOiBNb3ZlICdmZCcgcmVnaXN0cnkgaGFuZGxpbmcgYmFjayB0byBhZ2VudF9yZWdpc3RyeQoJCgktIChhZ2VudHgvY2xpZW50LmMpOiBSZWNvZ25pc2UgbmV3IGNvZGUgZmlsZSBmb3IgaW5kZXggaGFuZGxpbmcKCQoyMDAwLTA1LTEyIDEwOjE1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IFVtLCBkZWZhdWx0IHRvIHBvcnQgMTYxLiAgT3Bwcy4KCQoyMDAwLTA1LTEyIDA5OjAwICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gdmFyX3N0cnVjdC5oIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gUHJlcGFyYXRpb24gZm9yIHBlci1NSUIgcmVnaW9uIHRpbWVvdXQsIGFuZCBjb250ZXh0IHN1cHBvcnQKCQoyMDAwLTA1LTEyIDA4OjQ1ICBkYXZlcwoKCS0gKGtlcm5lbF9zdW5vczUuYyk6IFJlY29nbmlzZSBTb2xhcmlzIEFUTSBMQU4gRW11bGF0aW9uIGludGVyZmFjZXMKCQlUaGFua3MgdG8gSmF5IFlvdW5nCgkKMjAwMC0wNS0xMiAwODoxMyAgZGF2ZXMKCgktIChhZ2VudF9pbmRleC5bY2hdIGFnZW50X3JlZ2lzdHJ5LltjaF0gTWFrZWZpbGUuaW4gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBTcGxpdCBpbmRleCBoYW5kbGluZyBvdXQgZnJvbSB0aGUgTUlCIHJlZ2lzdHJ5LgoJCjIwMDAtMDUtMTIgMDc6MDIgIGRhdmVzCgoJLSAoa2VybmVsX3N1bm9zNS5jKTogQWRkIHN1cHBvcnQgZm9yIHJlY29nbmlzaW5nIFF1YWRGYXN0RXRoZXIgaW50ZXJmYWNlCgkKMjAwMC0wNS0xMiAwNjo1NyAgZGF2ZXMKCgktIChhcHBzL3NubXB0YWJsZS5jKTogRml4IHByb2JsZW0gd2l0aCBtaXNzaW5nIHNlcGFyYXRvciAod2l0aCAtQ2kgLUNmKQoJCVRoYW5rcyB0byBYYXZpZXIgRk9VUk5FVAoJCjIwMDAtMDUtMTIgMDQ6MDIgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKCQlJJ20gc3VyZSB0aGlzIHdhcyBwdXQgaW4gZm9yIGEgcmVhc29uLCBidXQgSSBjYW4ndCByZW1lbWJlciB3aGF0LgoJCUl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgbm93LCBhbmQganVzdCBsZWFrcyBtZW1vcnkuCgkJSGVyZSdzIGhvcGluZy4uLi4uCgkKMjAwMC0wNS0xMiAwMzoxMSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wZC5jKTogQ2F0Y2ggKGFuZCBpZ25vcmUpIFNJR1BJUEUgc2lnbmFscy4KCQlEaXNhcHBlYXJpbmcgc3ViYWdlbnRzIHRoZXJlZm9yIGFwcGVhciBhcyBub3JtYWwgSS9PIGZhaWx1cmVzCgkKMjAwMC0wNS0xMiAwMjoyNCAgZGF2ZXMKCgktIChhZ2VudHgvcHJvdG9jb2wuYyk6CgkgIC0gSW1wbGVtZW50IG9wYXF1ZS1lbmNvZGVkIGZsb2F0ICYgZG91YmxlIHR5cGVzCgkgIC0gQnJpbmcgcGFja2V0IGR1bXAgaW4gbGluZSB3aXRoIHRoZSBtYWluIGxpYnJhcnkgc3R5bGUKCSAgLSBBZGQgcGFja2V0IGR1bXAgY2FwYWJpbGl0eSBmb3Igb3V0Z29pbmcgUERVcwoJCjIwMDAtMDUtMTAgMTY6NTIgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtcC4KCQoyMDAwLTA1LTEwIDE2OjQzICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgdHJhbnNwb3J0IG1hcHBpbmcsIG5vdCB0aGUgbGFzdCBvbmUuCgkKMjAwMC0wNS0xMCAxNjoyNSAgaGFyZGFrZXIKCgktIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbXBsZW1lbnQgbXVsdGlwbGUgdHJhbnNwb3J0CgkgIG1hcHBpbmdzIHZpYSAtcCBbdHJhbnNwb3J0Ol1wb3J0W0BhZGRyZXNzXS4KCQoyMDAwLTA1LTEwIDExOjA4ICBtc2xpZmNhawoKCWZpeCB1ZHBzdGF0IC0tPiB0Y3BzdGF0CgkKMjAwMC0wNS0xMCAwNzo1OSAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gSGFuZGxlIHN1YmFnZW50IGRpc2FwcGVhcmluZyB3aXRob3V0IHdhcm5pbmcKCQoyMDAwLTA1LTEwIDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyBzbm1wbGliL3NubXBfYXBpLmgpOgoJICAtIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gaGFuZGxlIGFzeW5jaHJvbm91cyBzZW5kIGZhaWx1cmVzLgoJCjIwMDAtMDUtMTAgMDY6MTMgIGRhdmVzCgoJLSAoc25tcF9hcGkuaCk6IExvZ2ljYWwgTk9UPyBCaXR3aXNlIE5PVD8gV2hvJ2xsIG5vdGljZSB0aGUgZGlmZmVyZW5jZSBhbnl3YXkhCgkKMjAwMC0wNS0xMCAwNTozNCAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEhhbmRsZSBub24tcmVzcG9uc2l2ZSBzdWJhZ2VudHMKCQoyMDAwLTA1LTEwIDA1OjMzICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMgbWliSUkvc3lzT1JUYWJsZS5jKTogRG9uJ3QgYXNzdW1lIHN1YnNlc3Npb24gbGluayBpcyB2YWxpZAoJCjIwMDAtMDUtMTAgMDU6MjkgIGRhdmVzCgoJLSAoc25tcF9hcGkuaCk6IERlZmluaXRpb25zIGZvciBzZXNzaW9uIGNsb3NlZG93biBoYW5kbGluZwoJCjIwMDAtMDUtMDkgMTQ6NDIgIG1zbGlmY2FrCgoJYWxzbyBjbGVhbiBXaW4zMiBiaW5hcnkgb2JqZWN0cywgYW5kIGNvcmUgZmlsZXMuCgkKMjAwMC0wNS0wOSAxNDozNCAgbXNsaWZjYWsKCgl0b3VjaCB1cCB0aGUgImNsZWFuIiBydWxlLgoJCjIwMDAtMDUtMDkgMTE6MzIgIG1zbGlmY2FrCgoJdW50aWwgRGF2ZSdzIHZlcnNpb24gd2lucywgbmVlZCBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIGJ1aWxkIFdpbjMyIGFnZW50LgoJCjIwMDAtMDUtMDkgMTE6MzEgIG1zbGlmY2FrCgoJZml4IHNvbWUgV2luMzIgYnVpbGRzIChzaWduYWxzPyB3ZSBkb24ndCBuZWVkIG5vIHN0ZWVua2luZyBzaWduYWxzISkKCQoyMDAwLTA1LTA5IDExOjMwICBtc2xpZmNhawoKCVJlbW92ZSB0cmFpbGluZyBDUiBbMHgwZF0gZnJvbSBvbmUgbGluZS4KCQoyMDAwLTA1LTA5IDA4OjUwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwoJICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgoJCjIwMDAtMDUtMDkgMDg6NDcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCgkgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCgkKMjAwMC0wNS0wOSAwNzo0MyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IFNlbmQgb3V0IHJlLWRlbGVnYXRlZCByZXF1ZXN0cwoJCShhbmQgZml4IGEgcHJvYmxlbSB3aXRoIHNwZWNpZnlpbmcgdGhlIGVuZC1vZi1yYW5nZSB2YWx1ZSkKCQoyMDAwLTA1LTA5IDA3OjQwICBkYXZlcwoKCS0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIGVycm9yIHJlc3BvbnNlIGdlbmVyYXRpb24KCQkoYnkgYW5hbG9neSB3aXRoIHJlY2VudCBjaGFuZ2VzIHRvIHNubXBfYWdlbnQuYykKCQoyMDAwLTA1LTA5IDA3OjM0ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IEhhbmRsZSBBZ2VudFggImVuZC1vZi1yYW5nZSIgaW5kaWNhdGlvbi4KCQkoVGhpcyBpcyBub3QgdGhlIGNsZWFuZXN0IHdheSBvZiBkb2luZyB0aGluZ3MsCgkJIGJ1dCB3b3JrcyBmb3Igbm93LiAgV2UgY2FuIHRpZHkgdXAgbGF0ZXIpLgoJCjIwMDAtMDUtMDkgMDc6MTYgIGRhdmVzCgoJLSAoc25tcF92YXJzLmMpOiBVc2UgTUlCIHJlZ2lzdHJ5ICdzdGFydCcgdmFsdWVzCgkJKHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBuYW1lIHJlZ2lzdGVyZWQpCgkJVGhpcyBoYW5kbGVzIHN1YnNlcXVlbnQgcGFydCBvZiAnc3BsaXQnIHJhbmdlcyBwcm9wZXJseS4KCQoyMDAwLTA1LTA4IDExOjA4ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogSSBjYW4ndCBiZWxpZXZlIHRoZSBsYXN0IGNoZWNraW4gZXZlbiBjb21waWxlZCAobHVjaykuCgkKMjAwMC0wNS0wOCAxMTowMyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGZpeCBsaWJyYXJ5IGxpc3QuCgkKMjAwMC0wNS0wNSAwOTo1NiAgaGFyZGFrZXIKCgktIChkaXNraW8uYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBkaXNrIGlvIHN1cHBvcnQgZm9yIEJTRC9PUy4KCQoyMDAwLTA1LTA1IDA5OjU0ICBoYXJkYWtlcgoKCS0gKGF0LmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gZml4IGEgemVybyBieXRlIG1hbGxvYyBidWcgKG1vc3RseSBub3RpY2VkIHdpdGggLWxlZmVuY2UpLgoJCjIwMDAtMDUtMDUgMDk6NDMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CgkgIC0gLS13aXRoLWxpYndyYXAgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDUtMDUgMDk6MDAgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOgoJICAtIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBBZ2VudFggcHJvY2Vzc2luZwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNSAwODo1OCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLltjaF0gc25tcGxpYi9zbm1wX2NsaWVudC5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSk6CgkgIC0gTWlub3IgY2hhbmdlcyB0byBhc3Npc3Qgd2l0aCBBZ2VudFggZGV2ZWxvcG1lbnQKCQkoVGhlc2UgbWF5IG5vdCBiZSBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSwgYnV0IHRoZXkgZ2V0IHRoaW5ncyB3b3JraW5nIGFnYWluISkKCQoyMDAwLTA1LTA0IDE2OjIxICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWlub3IgdW5pbXBvcnRhbnQgLS13aXRob3V0LW9wZW5zc2wgZml4LgoJCjIwMDAtMDUtMDQgMTY6MTkgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKCSAgLSBhbGxvdyAtLXdpdGhvdXQtb3BlbnNzbCB0byB3b3JrLgoJCjIwMDAtMDUtMDQgMTY6MTUgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBhZGQgdGhlIERJU01BTi1TQ1JJUFQtTUlCLnR4dAoJCjIwMDAtMDUtMDQgMTY6MDEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CgkgIC0gaW5zdGFsbCBVQ0QtRElTS0lPLU1JQi50eHQuCgkKMjAwMC0wNS0wNCAxNToyMSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0sIG1hbmFnZXIucG0pOiBtYWtlIHB1cmR5IGdyYXBocyB3aXRoIGhpc3RvcnkgdGFibGVzLgoJCjIwMDAtMDUtMDQgMDg6MjYgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2NsaWVudC5bY2hdKTogTmV3IHJvdXRpbmUgJ3NubXBfY2xvbmVfdmFyYmluZCgpJwoJCQkoRnJvbSBhIHN1Z2dlc3Rpb24gYnkgUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNCAwODoyNCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBWYXJpb3VzIG1pbm9yIGZpeGVzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA0IDAxOjI5ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuW2NoXSk6IEhhbmRsZSBpbmRleC9zdGF0dXMgaW5mb3JtYXRpb24gc2VwYXJhdGVseSBmcm9tIFBEVS4KCQlBbHNvIG1lYW5zIHRoYXQgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgYWNjZXNzIHRvIHZhcmlhYmxlIGluZGV4ZXMKCQkJKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBmcm9tIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDQgMDE6MDAgIGRhdmVzCgoJLSAodWNkLXNubXAvcHJvYy5jKTogSW5pdGlhbGl6ZSBuZXdseSBtYWxsb2NlZCBzdHJ1Y3R1cmUKCQkoVGhhbmtzIHRvIEplZmYgV2lsc29uIC0gc2VlIEJVRyAjMjMxKQoJCjIwMDAtMDUtMDMgMDk6MDYgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gQ2xvbmUgUERVIHdpdGhpbiBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KCSAgICBOZXcgcm91dGluZSAnZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24nCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTAzIDA4OjE3ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IFdoZW4gcmV0dXJuaW5nIGFuIGVycm9yIHJlc3BvbnNlLAoJCXVzZSBhIGNsZWFuIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QgUERVLgoJCjIwMDAtMDUtMDMgMDg6MTQgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdKTogUm91dGluZSB0byBoYW5kbGUgdmFyaWFibGVzIGluZGl2aWR1YWxseQoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wMyAwNDozNyAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBDaGVjayBhY2Nlc3NpYmlsaXR5IG9mIGV4YWN0IHJlcXVlc3RzIGJlZm9yZSBwcm9jZXNzaW5nCgkJKGFuZCByZW1vdmUgcmVkdW5kYW50ICdnZW5lcmljJyBTRVQgaGFuZGxpbmcpCgkKMjAwMC0wNS0wMiAwOTo1NiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogbG90cyBvZiBzbWFsbCBjaGFuZ2VzLgoJCjIwMDAtMDUtMDEgMTE6MzQgIG5iYQoKCS0gbWliLmM6IGZpeCBwcmludGluZyBvZiBCSVRTIHZhcmlhYmxlcwoJCjIwMDAtMDUtMDEgMDY6NTUgIG1hcnoKCgkgYXBwbGllZCBwYXRjaCBmcm9tIFN0ZXZlIFBoZXJhbiBTbm9kZ3Jhc3MgdG8gZml4IGluY29tcGF0aWJpbGl0eSB3aXRoIHBlcmw1LjYgcmVmIHN0cmluZ2lmaWNhdGlvbgoJCjIwMDAtMDQtMjkgMDc6NDYgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnRfcmVnaXN0cnkuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSB1c2Ugc2lnYWN0aW9uIHdoZW4gYXZhaWxhYmxlLgoJCjIwMDAtMDQtMjggMTY6MjIgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogZml4IC1tLy1NIHRoZSB3cm9uZyB3YXkuCgkKMjAwMC0wNC0yOCAxNjoxNSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOgoJIC0gZG8gaGlzdG9yeSBzYXZpbmcgYmV0dGVyIChkaWZmZXJlbnQgdGFibGUpLgoJIC0gLW0vLU0gbWliIGxvYWRpbmcgb3B0aW9ucyAod2hpY2ggZG9uJ3QgYXBwZWFyIHRvIGJlIHdvcmtpbmcgcmlnaHQgeWV0KS4KCQoyMDAwLTA0LTI4IDA3OjM2ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gZml4IHNpZ25hbCBoYW5kbGluZy4KCQoyMDAwLTA0LTI3IDE0OjU4ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wZGYuYyk6IGltcGxlbWVudCBhIHJlbW90ZSBkZiBjb21tYW5kIHZpYSBzbm1wCgkgIC0gKG5lZWRzIHRoZSBob3N0IHJlc291cmNlcyBtaWIgd29ya2luZyBvbiB0aGUgcmVtb3RlIHN5c3RlbSkuCgkKMjAwMC0wNC0yNyAxMDo1NyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJwbSBpcyBub3cKCSAgcmVxdWlyaW5nIHlldCBhbm90aGVyIGxpYnJhcnk6IGxpYnBvcHQuCgkKMjAwMC0wNC0yNiAxNToyMCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3ApOiBydW4gbGlidG9vbCAtLWZpbmlzaCB3aXRob3V0IC1uIChnbyBhaGVhZCBhbmQgZG8gdGhlIGNtZHMpCgkKMjAwMC0wNC0yNiAxNToxOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6CgkgIC0gbW9yZSBsaWJ0b29sIGZpeGVzICguc28gdmVyc2lvbmluZywgcHJvcGVybHkgaW5zdGFsbC4uLikKCQoyMDAwLTA0LTI2IDE0OjE4ICBoYXJkYWtlcgoKCS0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCgkgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CgkgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgoJICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCgkKMjAwMC0wNC0yNiAxNDoxNSAgaGFyZGFrZXIKCgktICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAoJICBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gpOgoJICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KCSAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQoJCjIwMDAtMDQtMjYgMDg6MTEgIGhhcmRha2VyCgoJLSAoRkFRKTogbmV3IHNlY29uZGFyeSBzbG9nYW4uCgkKMjAwMC0wNC0yNiAwNzoyMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBQRFUgd2hlbiBhIHJlcG9ydCBpcwoJICBiZWluZyBzZW50IHNvIHRoYXQgdGhlIHJlcXVlc3RpZCBjYW4gYmUgdXNlZCBpbiB0aGUgb3V0Z29pbmcgcmVwb3J0LgoJICBUaGlzIHNob3VsZCBmaXggYSBwcm9ibGVtIHdoZXJlIFNOTVAgUmVzZWFyY2gncyBFbWFudGUgYWdlbnQgaXMKCSAgZG9pbmcgZW5naW5lSUQgZGlzY292ZXJ5IHByb2JlcyBiYXNlZCBvbiB0aGUgcmVxdWVzdF9pZCAod2hpY2ggaXMgYQoJICBmYWlybHkgcG9vciBjaG9pY2UgYXMgdGhlIG1lc3NhZ2VfaWQgd291bGQgYmUgYSBiZXR0ZXIgb25lIHRvIG1hdGNoCgkgIG9uIGluIGdlbmVyYWwgYW5kIGlzIHRoZSBvbmx5IHBvc3NpYmxlIHRoaW5nIHRvIHVzZSBpbiBjYXNlcyB3aGVyZQoJICB0aGUgcmVwb3J0IGlzIGVuY3J5cHRlZCkuCgkKMjAwMC0wNC0yNSAxMzowOCAgaGFyZGFrZXIKCgktIChGQVEpOiBtZW50aW9uIHRoYXQgdGhlIHBlcmwgbW9kdWxlIGlzIGluY2x1ZGVkIHdpdGggdGhlIHNvdXJjZS4KCQoyMDAwLTA0LTI1IDA4OjI0ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBtaXNjIC1EZHVtcCBmaXhlcy4KCQoyMDAwLTA0LTI1IDA4OjAyICBoYXJkYWtlcgoKCS0gKHNubXB0YWJsZS5jKTogY2hlY2sgZm9yIGVuZCBvZiBtaWIgdmlldyBleGNlcHRpb25zICh2MmMsIHYzKS4KCQoyMDAwLTA0LTI0IDExOjI3ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiAtRCBzdXBwb3J0IGZvciB0aG9zZSAib2xkZXIiIHByb3RvY29scyB0aGF0IHNob3VsZG4ndAoJICBiZSB1c2VkIGFueW1vcmUgKHYxLCB2MmMpLgoJCjIwMDAtMDQtMjQgMTA6MzYgIGhhcmRha2VyCgoJLSAoYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAoJICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKCSAgLSB0aW1lc3RhbXBzIGNhbiBiZSBwcmludGVkIGFzIGEgbnVtZXJpYyBudW1iZXIgb25seSAoLU90KS4KCSAgLSBtb3JlIGNvbmZpZ3VyYWJsZSBwYWNrZXQgZHVtcGluZyBjb2RlIGZvciBib3RoIHNlbmQgYW5kIHJlY2VpdmUuCgkgICAgLSB1c2VzIG5ldyAtRCB0b2tlbnM6IGR1bXBoIChoZWFkZXJzKSwgZHVtcHggKGhleCksIGR1bXB2CgkgICAgICAodmFsdWVzKS4gIGR1bXB4XyBhbmQgZHVtcHZfIChub3RlIHRoZSBfcykgbWFrZSBpdCBlYXQgc3BhY2UKCSAgICAgIChhbmQgbmV3bGluZSkgYmVmb3JlIHRoZSBzZWdtZW50IGluIHF1ZXN0aW9uLiAgVHJ5IC1EZHVtcCB0aGVuCgkgICAgICAtRGR1bXBoLGR1bXB2XyB0byBzZWUgZXhhbXBsZXMuCgkgICAgLSB0b2RvOgoJICAgICAgLSBiZXR0ZXIgaG9yaXpvbnRhbGx5IGZvcm1hdGVkIGluZm9ybWF0aW9uIChwcm9iYWJseSB1c2luZyAiJU5VTXMiKS4KCSAgICAgIC0gVVNNIGlzIGNhbGxlZCBhZnRlciBwZHUgYnVpbGRpbmcgKG1ha2VzIHNlbnNlIGJ1dCBpcyBiYWNrd2FyZHMKCSAgICAgICAgdmlzdWFsbHkgaW4gdGhlIGR1bXBlZCBwYWNrZXQpLgoJICAgICAgLSBvcHRpb24gdG8gc3RyaXAgZGF0YXR5cGUgdG9rZW4gKGllIEludGVnZXI6KS4KCQoyMDAwLTA0LTI0IDA5OjM3ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTAgKQoJCjIwMDAtMDQtMjQgMDk6MTMgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFWFQuNC4yLnByZTAgKQoJCjIwMDAtMDQtMjEgMTQ6MTMgIGhhcmRha2VyCgoJLSAoc25tcHdhbGsuYyk6IGZpeCBHRVQgY2FsbCBmb3IgYW4gc25tcHdhbGsuICh3YXMgdXNpbmcgYSBHRVRORVhUIFBEVSwgYWNrKS4KCQoyMDAwLTA0LTIxIDEwOjQxICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogbW9yZSB1X2xvbmcgLT4gc2l6ZV90IGZvciBlbmdpbmVJRCBsZW4uCgkKMjAwMC0wNC0yMSAwODoxOCAgaGFyZGFrZXIKCgktIChtaWIuYyk6IGZpeCBmcHJpbnRfZGVzY3JpcHRpb24gdG8gY2hlY2sgZm9yIG51bGwgc3VidHJlZXMuCgkKMjAwMC0wNC0yMSAwODoxNyAgaGFyZGFrZXIKCgktIChzbm1wdjMuYywgc25tcHYzLmgpOiB1c2Ugc2l6ZV90IGZvciBlbmdpbmVpZCBsZW5ndGhzLgoJCjIwMDAtMDQtMTkgMTE6MDIgIG1hcnoKCgljaGFuZ2VkIG1vZGVfdCB0eXBlZGVmIHRvIGFncmVlIHdpdGggd2hhdCBBY3RpdmVTdGF0ZSBwZXJsIHVzZXMgKGFueW9uZSBoYXZlIGEgcHJvYmxlbSB3aXRoIHRoaXM/KQoJCjIwMDAtMDQtMTkgMTA6NTkgIG1hcnoKCglhZGRlZCBNYXJjIExlaG1hbiBwYXRjaCB0byBlbnN1cmUgYWxsb2MvZGVhbGxvYyB1c2Ugc2FtZSBtZWNoYW5pc20gKHBlcmwgdnMuIHN5c3RlbSBkZWZhdWx0KQoJCjIwMDAtMDQtMTkgMDg6MjYgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBhbHdheXMgYmxvY2sgaWYgY2FsbGVyIHJlcXVlc3RlZCBpdC4KCQoyMDAwLTA0LTE5IDA0OjM0ICBtc2xpZmNhawoKCW1vdmUgc3RhdGljIGRlY2wgdG8gLmM7bWlub3IgY2FzdGluZyBhYm91dCB0byBzdXBwb3J0IGFDQwoJCjIwMDAtMDQtMTggMTE6MTEgIG1zbGlmY2FrCgoJU3luY2ggZGV2ZWwgYnJhbmNoIHdpdGggcGF0Y2hlcyBicmFuY2guCgkKMjAwMC0wNC0xOCAxMTowNyAgbXNsaWZjYWsKCglEZWZpbmUgb3B0YXJnIGZvciBhcHBzIHVzZTsgRGVmaW5lIHZhY21faXNfY29uZmlndXJlZCBmb3IgYWdlbnQgdXNlLgoJCjIwMDAtMDQtMTggMDc6NTcgIGhhcmRha2VyCgoJLSAodm1zdGF0LmMsIHZtc3RhdC5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaXp1a2kgSG9uZGE6CgkgIC0gaW1wbGVtZW50IHJhdyBjcHUgdXNhZ2UgbnVtYmVycy4KCQoyMDAwLTA0LTE4IDAzOjE4ICBkYXZlcwoKCS0gKG1hbi9zbm1wdGFibGUuMSBhcHBzL3NubXB0YWJsZS5jKToKCSAgLSBDb21tYW5kLXNwZWNpZmljICctQycgb3B0aW9ucyBmb3Igc25tcHRhYmxlCgkKMjAwMC0wNC0xOCAwMjowMSAgZGF2ZXMKCgktIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogSGFuZGxlIHByZXZpb3VzIGZvcm0gb2YgLVogb3B0aW9uIGFzIHdlbGwKCQoyMDAwLTA0LTE3IDE1OjM2ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogZml4IC1aIGlmIGFyZ3MgYXJlIHdyb25nLgoJCjIwMDAtMDQtMTcgMTU6MzIgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IGZpeCAtWiB0byB1c2UgYSAnLCcuCgkKMjAwMC0wNC0xNyAxNTowNiAgaGFyZGFrZXIKCgktIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBQYXRjaCBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgoJICAtIHVwZGF0ZSBvbiB0aGUgc2VuZG1haWwgbW9kdWxlLgoJCjIwMDAtMDQtMTcgMTU6MDAgIGhhcmRha2VyCgoJLSAodm1zdGF0LmMpOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKCSAgLSBmaXggc3NDcHVTeXN0ZW0sIHNzQ3B1VXNlciwgc3NDcHVJZGxlLgoJCjIwMDAtMDQtMTcgMTQ6MTggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbik6IHByb3Blcmx5IHVzZSBMTl9TIGZvciBsaW5raW5nIHNubXBpbmZvcm0uCgkKMjAwMC0wNC0xNyAxMzo0NSAgaGFyZGFrZXIKCgktIChzbm1wdXNtLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6IGVuZ2luZUlEIGNoYW5nZXMgZm9yIGJldHRlciBhQ0Mgc3VwcG9ydC4KCQoyMDAwLTA0LTE3IDEzOjQ0ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgc25tcGluZm9ybS4KCQoyMDAwLTA0LTE3IDA5OjU4ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IGZpeCByb3cgY3JlYXRpb24uCgkKMjAwMC0wNC0xNyAwNzoyNSAgZGF2ZXMKCgktIChhdXRvX25saXN0LmMgc25tcGQuYyBhZ2VudHgvbWFzdGVyLmMpOiBEb24ndCBleGl0IG9uIGZhaWx1cmUgd2l0aCAnLXInCgkKMjAwMC0wNC0xNCAxNTowNyAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKCSAgc25tcHN0YXR1cy5jLCBzbm1wY21kLjEsIHNubXBnZXQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CgkgIC0gbW92ZSAtSWYgdG8gLUNmIGFuZCBpbnZlcnQgYmVoYXZpb3VyLgoJCjIwMDAtMDQtMTQgMTU6MDYgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgZGVidWdnaW5nIG91dHB1dCAob3BwcykuCgkKMjAwMC0wNC0xNCAwOTowMyAgaGFyZGFrZXIKCgktICh2ZXJzaW9pbmZvLmMpOiBhbHJpZ2h0LiAgV2hvIG1hZGUgdmVyc2lvbkNsZWFyQ2FjaGUgUk9OTFk/CgkKMjAwMC0wNC0xMyAwNTo0OSAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLjE6IGRlY3VtZW50IHRoZSAtdyB3aWR0aCBvcHRpb24KCQoyMDAwLTA0LTEyIDEyOjA1ICBtc2xpZmNhawoKCWhpZGUgdXNlcidzIGhvc3RuYW1lOyBwcm9tcHQgYmVmb3JlIHNlbmRpbmcgZS1tYWlsOyBwcm9tcHQgdG8gc2F2ZSBhcyBmaWxlLgoJCjIwMDAtMDQtMTIgMTE6MjIgIG1zbGlmY2FrCgoJZml4ICVmKCVzKQoJCjIwMDAtMDQtMTIgMDk6MjkgIGhhcmRha2VyCgoJLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUlmLgoJCjIwMDAtMDQtMTIgMDk6MTcgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwdXQgKysgYmFjayBpbiB0aGF0IGFjY2lkZW50aWNhbGx5IGdvdCBjaGVja2VkIGluLgoJCjIwMDAtMDQtMTIgMDk6MTYgIGhhcmRha2VyCgoJLSAoc25tcHNldC5jKTogcHV0IHNwYWNlIGJhY2sgaW4gdXNhZ2UgbGluZS4KCQoyMDAwLTA0LTEyIDA5OjEyICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CgkgIC0gQWRkIGEgbmV3IG9wdGlvbiAtSWYgdG8gc3BlY2lmeSBmaXhpbmcgb2YgUERVcy4KCSAgICAtIEFueW9uZSBrbm93IGEgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGlzIG9wdGlvbj8KCSAgLSBBcHBsaWNhdGlvbnMgZG9uJ3QgZG8gdGhpcyBieSBkZWZhdWx0IGFueW1vcmUsIGFuZCB5b3UgY2FuJ3QgaW4gc25tcHNldC4KCQoyMDAwLTA0LTEyIDA3OjM4ICBoYXJkYWtlcgoKCS0gKHZhY21fdmFycy5jLCB2YWNtLmMsIHZhY20uaCk6IGZpeCB0byBhbGxvdyBubyB2MS92MmMgcmVxdWVzdHMgd2hlbgoJICBjb25maWd1cmVkIGZvciBqdXN0IHYzLgoJCjIwMDAtMDQtMTIgMDY6NTAgIG1zbGlmY2FrCgoJZml4IE1TVkMgYnVpbGQgZm9yIGVuY29kZV9rZXljaGFuZ2UsIGFuZCBhZGQgbW9yZSBzeW1ib2xzIGZvciByZWxlYXNlIGJ1aWxkcwoJCjIwMDAtMDQtMTIgMDU6MzIgIG5iYQoKCS0gcGFyc2UuYzogY29ycmVjdCBwYXJzaW5nIG9mIHN1Yi10eXBlcyB0ZXh0dWFsIGNvbnZlbnRpb25zLiBBbGxvdyBwYXJzaW5nCgkJb2YgTUFDUk8gaW52b2NhdGlvbnMgZm9yIHN0YW5kYXJkIHN5bWJvbHMKCQoyMDAwLTA0LTEyIDA1OjMxICBuYmEKCgktIHBhcnNlLltjaF0sIHNubXB0cmFuc2xhdGUuYzogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiB3aXRoIGZvciAtVHAKCQoyMDAwLTA0LTEyIDA1OjMwICBuYmEKCgktIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dDogYWxpZ24gd2l0aCBwdWJsaXNoZWQKCQlSRkMgMjc5MAoJCjIwMDAtMDQtMTEgMTU6MzMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtYWtlIGNvbmZpZ19hZGRfbWliKCkgYWN0dWFsbHkgbG9vayBmb3IKCSAgdGhlIG1pYiBpbiAkc3JjZGlyL21pYnMvYmxhaCBhbmQgaW5zdGFsbCBpdCBpZiBmb3VuZC4KCQoyMDAwLTA0LTExIDE1OjIxICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IG1ha2UgbWFjYWRkciBlbmdpbmVpZCBzZXR1cCBub3QgbGludXgKCSAgc3BlY2lmaWMsIGJ1dCAjZGVmaW5lcyBhcmUgY2hlY2tlZCBpbnN0ZWFkLgoJCjIwMDAtMDQtMTEgMTU6MjAgIGhhcmRha2VyCgoJLSAoc25tcF9sb2dnaW5nLmgpOiByZW1vdmUgb2xkIGNhbGxiYWNrIHR5cGVkZWYgbm8gbG9uZ2VyIG5lZWRlZC4KCQoyMDAwLTA0LTExIDE0OjM4ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGVuYWJsZSBlbmdpbmVJRCB0byBiZSBzZXQgZnJvbSBNQUNBZGRyLgoJCjIwMDAtMDQtMTEgMDk6NTEgIGhhcmRha2VyCgoJLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogTmV3IG1vZHVsZSBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgoJICAtIGltcGxlbWVudHMgdGhlIE1UQS1NSUIgZm9yIG1vbml0b3Jpbmcgc2VuZG1haWwuCgkKMjAwMC0wNC0xMSAwOTo1MCAgaGFyZGFrZXIKCgktIChNVEEtTUlCLnR4dCwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0KTogbmV3IG1pYnMgZm9yIG5ldyBtb2R1bGVzLgoJCjIwMDAtMDQtMTEgMDM6MjUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogU2F2ZS9yZXN0b3JlIG9yaWdpbmFsIHN0YXRQIHZhbHVlIGZvciBTRVQgaGFuZGxpbmcuCgkKMjAwMC0wNC0xMSAwMjozNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXBvcnQgZmFpbHVyZXMgZnJvbSBBQ1RJT04gcGhhc2Ugb2YgU0VUIGNvcnJlY3RseS4KCQoyMDAwLTA0LTExIDAxOjU3ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRHluYW1pY2FsbHkgcmVzaXplIHN1YmFnZW50IHJlcXVlc3RzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA0LTEwIDA1OjA4ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBtdWx0aS1zdWJhZ2VudCByZXF1ZXN0cwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNC0wNyAxMjoyNSAgaGFyZGFrZXIKCgktIChzbm1wdHJhcC5jLCBzbm1wdXNtLmMpOgoJICAtIGZpeCBzbm1wdjMgdHJhcHMgdG8gYmUgYXV0aG9yaXRhdGl2ZSBmcm9tIHRoZSBjbGllbnQgc2lkZSwgbm90IHRoZQoJICAgIHJlY2VpdmVyIHNpZGUuICBzbm1wdjMgaW5mb3JtcyBzdGF5IGFzIGlzLiAgVW5mb3J0dW5hdGVseSwgZm9yCgkgICAgY29tbWFuZCBsaW5lIGFwcHMgdGhpcyBkb2Vzbid0IG1ha2UgYSB3aG9sZSBsb3Qgb2Ygc2Vuc2UgYnV0IGlzCgkgICAgcmlnaHQgaW4gdGVybXMgb2YgaG93IHRoZSBwcm90b2NvbCB3b3JrcyBhbmQgdGhpcyBpcyBoZW5jZQoJICAgIHNvbWV3aGF0IG9mIGEgaGFjay4KCQoyMDAwLTA0LTA3IDA3OjUwICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEhhbmRsZSB2MiBleGNlcHRpb24gdHlwZXMgaW4gdjEgcXVlcmllcwoJCjIwMDAtMDQtMDcgMDc6MTYgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMsIHJlYWRfY29uZmlnLmMsIHNubXB2My5jKToKCSAgLSBhbGxvdyBOVUxMIGhlbHAgbGluZXMgZm9yIGNvbmZpZyBkaXJlY3RpdmVzIGFuZCB1c2UgaXQgdG8gaGlkZQoJICAgIGludGVybmFsIGRpcmVjdGl2ZXMgdXNlZCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlLgoJCjIwMDAtMDQtMDYgMTU6MzEgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CgkgIC0gdHVybiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtYWNyb3MgYmFjayBpbnRvIGZ1bmN0aW9ucyBzbwoJICAgIGRlZmF1bHRfc3RvcmUuaCBkZXBlbmRlbmNpZXMgZ28gYXdheSBhZ2Fpbi4KCSAgLSBjcmVhdGUgYSBmbGFnIHRvIG5vdCBwcm9iZSBmb3IgZW5naW5lSURzIGR1cm5pbmcgc2Vzc19vcGVuKCkuCgkKMjAwMC0wNC0wNiAwNzoyMCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBGaXggbWlzaGFuZGxlZCBDb3VudGVyNjQgcGFyc2luZwoJCjIwMDAtMDQtMDYgMDM6MzYgIGRhdmVzCgoJLSAoYWdlbnQvc25tcGQuYyk6IEZpeCB1c2FnZSBtZXNzYWdlIGFsaWdubWVudC4KCQoyMDAwLTA0LTA2IDAzOjMxICBkYXZlcwoKCS0gKG1hbi9zbm1wZC4xLmRlZik6IERvY3VtZW50IHRoZSBBZ2VudFggc29ja2V0IGNvbW1hbmQtbGluZSBvcHRpb24KCQoyMDAwLTA0LTA1IDA4OjQxICBoYXJkYWtlcgoKCS0gKEZBUTJIVE1MKTogaXQncyBiZWVuIHNpdHRpbmcgaW4gbXkgcGVyc29uYWwgc3JjIHRyZWUgZm9yID4gMiB5ZWFycy4KCQoyMDAwLTA0LTA1IDA4OjM4ICBoYXJkYWtlcgoKCS0gKG1pYmluY2wuaCwgdXNtVXNlci5jLCBzbm1wdHJhcGQuYywgbGNkX3RpbWUuYywgc2NhcGkuYywgc25tcF9hcGkuYywKCSAgc25tcHVzbS5jLCBzbm1wdXNtLmgsIHNubXB2My5jKToKCSAgLSBtYWtlIHNubXB0cmFwZCBoYW5kbGUgdjMgdXNlcnMgcHJvcGVybHksIChhbmQgc2h1dGRvd24gcHJvcGVybHkgYXMgd2VsbCkuCgkgIC0gYSBtb3JlIGdlbmVyaWMgdXNlciBzdG9yYWdlIHJvdXRpbmUgYWRkZWQgdG8gc25tcHVzbS5jIGFuZCB1c2VkIGluCgkgICAgdXNtVXNlci5jIHdpdGggYSBzaWRlIGVmZmVjdCBvZiBuZWVkaW5nIGNhbGxiYWNrLmggYWJvdmUgc25tcHVzbS5oLgoJCjIwMDAtMDQtMDUgMDg6MjcgIGhhcmRha2VyCgoJLSAocnNubXApOiAtPiAvdXNyL2Jpbi9wZXJsCgkKMjAwMC0wNC0wNSAwODoyNCAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogbWlzYyBtaW5vciBhZGRpdGlvbnMgdG8gLwoJCjIwMDAtMDQtMDQgMTE6MDMgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIHVuaW1wbGVtZW50ZWQgb2JqZWN0cyByZXR1cm4gJ25vU3VjaE9iamVjdCcKCQoyMDAwLTA0LTAzIDE0OjU3ICBtc2xpZmNhawoKCUluaXRpYWxpemUgc3RhdFAuCgkKMjAwMC0wNC0wMyAwOToxMiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgYSB2MSBTRVQgcmV0dXJucyBhIHYxIGVycm9yIHN0YXR1cy4KCQoyMDAwLTA0LTAzIDA4OjMyICBoYXJkYWtlcgoKCS0gKENoYW5nZUxvZyk6IFllYXIgd2FzICIxMDAiIGZvciAyMDAwIChub3RpY2VkIGJ5IEpheSBSaWRkZWxsKToKCQoyMDAwLTA0LTAzIDA3OjUzICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBTRVRzIGZhaWwgaWYgb25lIHZhcmJpbmQgZG9lcy4KCQoyMDAwLTAzLTMxIDA3OjI1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IHRvIHJlcG9ydCAnbm9TdWNoT2JqZWN0JyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMKCQoyMDAwLTAzLTMxIDA3OjEzICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERvbid0IHJlcGVhdCB0aGUgZmlyc3QgZm91ciBieXRlcyBpbiBhIFBEVSBkdW1wCgkKMjAwMC0wMy0zMSAwNzowNCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfbG9nZ2luZy5jKTogSGFuZGxlIGxvZ2dpbmcgZW1wdHkgc3RyaW5ncyAoZS5nLiBhIG51bGwgaW5kZW50KQoJCjIwMDAtMDMtMzAgMDA6MTUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSW5pdGlhbGlzZSB0aW1lb3V0IHN0cnVjdHVyZSBwcm9wZXJseQoJCShUaGFua3MgdG8gYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDMtMjcgMTA6MzIgIG1zbGlmY2FrCgoJcmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBoclNXUnVuTmFtZSB2YWx1ZXMuCgkKMjAwMC0wMy0yNCAwOTowOSAgbXNsaWZjYWsKCgl0byBzeW5jIHdpdGggcGF0Y2hlcyBicmFuY2guCgkKMjAwMC0wMy0yNCAwNTowNyAgbmJhCgoJLSBzbm1wdHJhcGQuYzogY29ycmVjdGx5IGZyZWUgdGhlIHJlcG9uc2UgaWYgc2VuZGluZyBpdCBmYWlscwoJCjIwMDAtMDMtMjQgMDQ6MjIgIG1zbGlmY2FrCgoJeHhfc3luY2hfcmVzcG9uc2U6IGF2b2lkIGZyZWVpbmcgUERVIHR3aWNlLgoJCjIwMDAtMDMtMjMgMjM6MjkgIG5iYQoKCS0gc25tcGNtZC4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcC5jLCBNYWtlZmlsZS5pbjogSW5zdGFsbCBhbmQgZG9jdW1lbnQKCQlzbm1waW5mb3JtLgoJCjIwMDAtMDMtMjMgMDk6NTggIG1zbGlmY2FrCgoJRW5xdWV1ZSBvbmx5IGNvbXBsZXRlIHJlcXVlc3RfbGlzdCBlbnRyeTsgUmVkdWNlIHNjb3Bpbmcgb2YgY2FsbGJhY2sgdmFycy4KCQoyMDAwLTAzLTIzIDAzOjAyICBuYmEKCglmaWxlIHNubXBpbmZvcm0uMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTAzLTIyIDA4OjEzICBtc2xpZmNhawoKCXByaW50ZiA/CgkKMjAwMC0wMy0yMSAxMToxMiAgbXNsaWZjYWsKCgltb2RpZnkgRi4gU3RyYXVzcycgcGF0Y2ggcGVyIE4uIEJhZ2dlc2VuJ3Mgc3VnZ2VzdGlvbjogcmVtb3ZlIGV4cG9ydC1keW5hbWljLgoJCjIwMDAtMDMtMjEgMDk6MTQgIG1zbGlmY2FrCgoJbW9yZSBzbW9vdGggc2FpbGluZyB3aXRoIFdpbjMyIC5ETEwgLiBETExFWFBPUlQsIGFueW9uZSA/CgkKMjAwMC0wMy0yMSAwOTowNyAgbXNsaWZjYWsKCgl3aW4zMiBidWlsZCBjaGVjazogbm8gc2lnYWN0aW9uLCBTSUdDTEQgZGVmaW5lZC4KCQoyMDAwLTAzLTIxIDA4OjQ3ICBkYXZlcwoKCS0gKGRzX2FnZW50Lmggc25tcGQuYyBtaWJncm91cC9hZ2VudHgve21hc3RlcixzdWJhZ2VudH0uYyk6CgkgIC0gIENvbW1hbmQtbGluZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgQWdlbnRYIHBvcnQKCSAgICAgKGJhc2VkIG9uIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcykKCQoyMDAwLTAzLTIxIDA4OjM4ICBkYXZlcwoKCS0gKHNubXBfYXBpLmMpOiBTdXBwb3J0ICdob3N0OnBvcnQnIHJlcHJlc2VudGF0aW9uIG9mIHBlZXJuYW1lcwoJCjIwMDAtMDMtMjEgMDQ6MDUgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogTWlzc2luZyBuZXctbGluZSBvbiBkZWJ1ZyBvdXRwdXQKCQoyMDAwLTAzLTIxIDAyOjUyICBkYXZlcwoKCS0gKG1pYklJL3t0Y3AsdWRwLGlwLGljbXB9KikgQ29udGludWluZyBtaWJJSSBjb2RlIGNsZWFudXAKCQoyMDAwLTAzLTIwIDExOjE0ICBtc2xpZmNhawoKCUNvbW1lbnQgLUMgLS0gZG8gbm90IHVzZSB0aGlzIGZsYWcuCgkKMjAwMC0wMy0xNyAxNTozMiAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jKTogc2l6ZW9mKHgpKihsZW4rMSkgbm90IHNpemVvZih4KSpsZW4rMQoJCjIwMDAtMDMtMTYgMDA6MTAgIG5iYQoKCS0gY29uZmlndXJlLCBocl9wcmludC5jOiBkZXRlY3Qgc3lzdGVtIHByaW50ZXJzIChTeXNWL2xwc3RhdCwgKkJTRC9jZ2V0bmV4dCwKCQlMaW51eC9wcmludGNhcCkKCQoyMDAwLTAzLTE1IDE4OjMwICBtc2xpZmNhawoKCVNlY29uZCBwYXJ0IDogYWxsIG1lbWJlcnMgb2Ygc3RydWN0IHNubXBfaW5kZXggYXJlIHBvaW50ZXJzLgoJCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgoJRml4IG1lbW9yeSBsZWFrIHdpdGggdW5yZWdpc3Rlcl9pbmRleC4KCQoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKCUZpeCBtZW1vcnkgbGVhayB3aGVuIGNsZWFuaW5nIHVwIHRyYXAgdmFyaWFibGVzLgoJCjIwMDAtMDMtMTUgMDg6NDggIGRhdmVzCgoJLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogSW5pdGlhbGlzZSB2YXJiaW5kIGRhdGEgaG9vayBlbHNld2hlcmUgYXMgd2VsbC4KCQoyMDAwLTAzLTE1IDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IGluZmluaXRlIGxvb3AgcHJvYmxlbSB3aGVuIHdhbGtpbmcgc3ViYWdlbnQuCgkKMjAwMC0wMy0xNSAwNjowOSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBBdm9pZCBjYWxsaW5nIHJlYWQgcm91dGluZSBmb3IgZWFjaCBTRVQgaGFuZGxpbmcgcGFzcy4KCQlOLkI6ICBUaGlzIGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgeWV0CgkKMjAwMC0wMy0xNSAwNjowNyAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBQcm92aWRlIGhvb2sgZm9yIGludGVybmFsIHZhcmJpbmQtcmVsYXRlZCBkYXRhCgkKMjAwMC0wMy0xNSAwNToyMiAgZGF2ZXMKCgktIChhZ2VudC92YXJfc3RydWN0LmgpOiBVc2UgYSBzaW5nbGUgbWFnaWMgbnVtYmVyIGZvciBNSUIgcmVnaXN0cnkgbmFtZSBsZW5ndGhzLgoJCjIwMDAtMDMtMTUgMDE6NTEgIGRhdmVzCgoJLSAoc25tcGxpYi9zeXN0ZW0uaCk6IERvbid0IGRlY2xhcmUgZ2V0dGltZW9mZGF5KCkgaWYgdGhlIHN5c3RlbSBwcm92aWRlcyBpdC4KCQkoRml4IHByb3ZpZGVkIGJ5IFJvbiBNZXZpc3NlbikKCQoyMDAwLTAzLTE0IDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBzdGF0dXMgd2hlbiBjaGVja2luZyBhY2Nlc3MuCgkKMjAwMC0wMy0xNCAwNzo1MiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXR1cm4gYSByZXNwb25zZSwgZXZlbiBpZiB0aGUgcmVxdWVzdCBmYWlsZWQuCgkKMjAwMC0wMy0xMyAxNTozMiAgbmJhCgoJLSBpcGZ3YWNjLmg6IGZpeCB0aGUgTUlCIG5hbWUKCQoyMDAwLTAzLTEwIDEyOjQ4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSk6IGF1dG9jb25mIHJ1bgoJCjIwMDAtMDMtMTAgMTE6MDkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuZGxtb2QpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gZGxtb2QgYnVpbGQgTWFrZWZpbGUgZXhhbXBsZS4gIE5lZWRzIGluY29ycGVyYXRpb24gd2l0aCBtYWluIGNvbmZpZ3VyZS4KCQoyMDAwLTAzLTEwIDExOjAyICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBiZXR0ZXIgc2lnbmFsIGNoZWNrIGZyb20gTWljaGFlbCBTbGlmY2FrCgkKMjAwMC0wMy0xMCAxMDo1OSAgaGFyZGFrZXIKCgktIChVQ0QtRExNT0QtTUlCLnR4dCk6IHR5cG8gZm91bmQgYnkgTWljaGFlbCBTbGlmY2FrLgoJCjIwMDAtMDMtMTAgMTA6NTQgIGhhcmRha2VyCgoJLSAoZGxtb2QuYywgZGxtb2QuaCwgc25tcGQuY29uZi41LmRlZiwgVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tCgkgIEZyYW5rIFN0cmF1c3M6CgkgIC0gUmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGxtb2QgbWliIG1vZHVsZToKCSAgICBvIG1pYmdyb3VwL21pc2MvZGxtb2QgKyBkbG1vZHMvZGxtb2RfbWliIC0+IG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kCgkgICAgbyBmaXhlZCByZWdpc3RyYXRpb24gKHVjZGF2aXMudWNkRXhwZXJpbWVudGFsLjE0IGluc3RlYWQgb2YgdWNkYXZpcy4xNCkKCSAgICBvIGFkZGVkIGNvbmZpZ3VyZSBzdHVmZiBmb3IgSEFWRV9TTlBSSU5URiwgd2hpY2ggd2FzIHVzZWQgYnkgZGxtb2QuYwoJICAgIG8gcmVtb3ZlZCBgX2R5bmFtaWNfJyBwcmVmaXhlcyBmcm9tIGluaXQvZGVpbml0IGZ1bmN0aW9ucwoJICAgIG8gbWFkZSBkbG1vZEluZGV4IG5vdC1hY2Nlc3NpYmxlIChvbmx5IGltcGxlbWVudGF0aW9uLCBub3QgZGVmaW5pdGlvbikKCSAgICBvIHJlbW92ZWQgdGhlIGFzbl9wYXJzZV9YWFggc3R1ZmYKCSAgICBvIG1hZGUgZW50cmllcyB3aXRoIHN0YXRlIGBlcnJvcicgYWJsZSB0byBhY2NlcHQgc3RhdGUgYGxvYWQnCgkgICAgbyBtYWRlIHRoZSB3b21iYXQgZXhhbXBsZSB1c2FibGUgYXMgc3RhdGljIGFuZCBkeW5hbWljIG1vZHVsZQoJICAgIG8gYWRkZWQgc2ltcGxlIGNvbmZpZ19wYXJzZSBmdW5jdGlvbmFsaXR5IHRvIHRoZSB3b21iYXQgZXhhbXBsZQoJCjIwMDAtMDMtMTAgMTA6NTIgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBzaWduYWwgcmVnaXN0cnkgc3lzdGVtIGltcGxlbWVudGVkIChuZWVkcyB0byBiZSByZWRvbmUgYWxsb3dpbmcKCSAgICBtdWx0aXBsZSBjYWxsYmFja3MgYW5kIGhhbmRsZXJzIGZvciBhbGwgc2lnbmFscykuCgkgIC0gYXJiaXRyYXJ5IGZpbGUgZGVzY3JpcHRvci9zb2NrZXQgcmVnaXN0cmF0aW9uLgoJICAgIC0gdGhpcyBpcyBub3QgdGhlIHdheSBpdCBzaG91bGQgYmUgZG9uZSAodXNlIHNlc3Npb25zIGluc3RlYWQpLgoJCjIwMDAtMDMtMTAgMTA6NDQgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKCSAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKCSAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGNsZWFuIHVwIHNoYXJlZCBsaWJyYXJ5IHVzYWdlLgoJCjIwMDAtMDMtMTAgMTA6MTYgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJlLWFycmFuZ2VkIHNvbWUgc3R1ZmYuCgkKMjAwMC0wMy0wNyAxMTo1OCAgbXNsaWZjYWsKCgltb3JlIHRvdWNodXBzIHRvIGFsbG93IFVuaXhXYXJlIGJ1aWxkIHRvIGNvbXBsZXRlLgoJCjIwMDAtMDMtMDcgMTE6MjEgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5oKTogbWFrZSBNQVhfU1VCSURTIGxhcmdlciBhbmQgYSBtdWx0aXBsZSBvZiA4LgoJCjIwMDAtMDMtMDcgMTA6MTMgIG1zbGlmY2FrCgoJSW50cm9kdWNlIC0tZW5hYmxlLW1pbmktYWdlbnQgdG8gY29uZmlndXJlIGFnZW50IChzbm1wdjMsIG5vIG1pYklJIGludGVyZmFjZXMpLgoJCjIwMDAtMDMtMDcgMDk6MDMgIG1zbGlmY2FrCgoJYXNzdW1lICJzbm1wYXBwIiBpZiBubyBhcmcgcGFzc2VkIHRvIGluaXRfc25tcHYzLgoJCjIwMDAtMDMtMDcgMDg6NTggIG1zbGlmY2FrCgoJcmVtb3ZlIGluaXRfbWliKCkgY2FsbCAtIG5vdCBhcHByb3ByaWF0ZSBoZXJlLgoJCjIwMDAtMDMtMDcgMDg6MzUgIG1zbGlmY2FrCgoJTGV0IHRoZSBhaXg0IHBhdGNoIHdvcmsuCgkKMjAwMC0wMy0wNyAwNzowOCAgbXNsaWZjYWsKCgl0cmltIGZhdCBmcm9tIHJlY2VudCBjaGVjay1pbnMuCgkKMjAwMC0wMy0wNiAyMDowMSAgbXNsaWZjYWsKCgljbGVhbmVkIHVwIFNDTyBVbml4V2FyZSBidWlsZC4KCQoyMDAwLTAzLTA2IDE2OjQwICBtc2xpZmNhawoKCXN0YXJ0IHN1cHBvcnQgZm9yIFNDTyBVbml4V2FyZSA1IGFzIHN2cjUuCgkKMjAwMC0wMy0wNiAxMDo1NiAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBkb24ndCBjaGVjayByYW5nZXMgaWYgbm90IHJlcXVlc3RlZC4KCQoyMDAwLTAzLTA2IDEwOjU1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gZml4IGV4aXQoKWluZyBiZWhhdmlvdXIgaW4gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCgkKMjAwMC0wMy0wNiAxMDozNiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIC1uIHByaW50cyBudW1lcmljIElQIGFkZHJzLgoJCjIwMDAtMDMtMDYgMTA6MjUgIGhhcmRha2VyCgoJLSAoY2FsbGJhY2suaCwgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogSWRlYSBmcm9tIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbToKCSAgLSBjYWxsYmFjayBmdW5jdGlvbiAodXNpbmcgY2FsbGJhY2suaCkgYWRkZWQgZm9yIGV4dGVybmFsIGxvZ2dpbmcuCgkKMjAwMC0wMy0wNSAwNToyNSAgbWFyegoKCWZpeCB0byBwcmVzZXJ2ZSB0cmFpbGluZyBtdWx0aSBjb21wb25lbnQgaW5zdGFuY2UgaWQncyBhdCB0aGUgZW5kIG9mCglzeW1ib2xpYyBtaWIgbmFtZXMoZS5nLiwgZm9vLjYuNykgd2hlbiBkb2luZyB0cmFuc2xhdGVPYmouCgkKMjAwMC0wMy0wNCAxMTozNCAgbmJhCgoJLSBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZTogc3VwcG9ydCAtLXdpdGhvdXQtb3BlbnNzbCwgZXZlbiBpZiBPcGVuU1NMCgkJaXMgYXZhaWxhYmxlCgkKMjAwMC0wMy0wNCAxMTozMCAgbmJhCgoJLSBhZ2VudC8odmFyaW91cyk6IGdsb2JhbGl6ZSB0aGUga3ZtX3QgKmtkIHZhcmlhYmxlCgkKMjAwMC0wMy0wNCAxMToyNiAgbmJhCgoJLSBtaWJfbW9kdWxlcy5jLCBocl9zdG9yYWdlLmM6IHByZS1wcm9jZXNzb3IgIyBzaG91bGQgYmUgaW4gY29sdW1uIDEKCQoyMDAwLTAzLTA0IDExOjE3ICBuYmEKCgktIGluZXQuYywgaW5ldDYuYzogc3Vydml2ZSAtdiAyYyBleGNlcHRpb24gcmVwbGllcwoJCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKCS0gc25tcF9hcGkuYzogcmVtb3ZlIGEgc3VwZXJmbHVvdXMgJiBpbiBmcm9udCBvZiBhbiBhcnJheQoJCjIwMDAtMDMtMDQgMTE6MTUgIG5iYQoKCS0gdWNkX3NubXAuaCwge21lbW9yeSx2bXN0YXR9X25ldGJzZDEuW2NoXTogc3VwcG9ydCBmb3IgTmV0QlNECgkKMjAwMC0wMy0wNCAxMToxNCAgbmJhCgoJLSBocl9kaXNrLmM6IGZpeGVzIGZvciBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjEwICBuYmEKCgktIHZlcnNpb25pbmZvLmM6IGRvbid0IHJldHVybiB0aGUgdHJhaWxpbmcgbmV3bGluZQoJCjIwMDAtMDMtMDQgMTE6MDggIG5iYQoKCS0gaHJfc3dydW4uYzogZml4IHByb2Nlc3Mgc2l6ZSBmb3IgRnJlZUJTRCAzIGFuZCBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjA1ICBuYmEKCgktIGFnZW50X3RyYXAuaDogZml4IGEgd3JvbmcgcHJvdG90eXBlCgkKMjAwMC0wMy0wNCAxMTowNCAgbmJhCgoJLSBzbm1wdGFibGUuYzogZml4IHByb2JsZW1zIHByaW50aW5nIHRhYmxlIG5hbWUgYW5kIGhlYWRlcnMgd2hlbiB1c2luZwoJCS1PUyBmb3JtYXQKCQoyMDAwLTAzLTAyIDExOjUwICBuYmEKCgktIHNubXBfYXBpLmM6IGZpeCBhZGRyZXNzIGxlbmd0aCBpbmZvIGZvciB0Y3AgY29ubmVjdAoJCjIwMDAtMDMtMDIgMTE6NDggIG5iYQoKCS0gbG9hZGF2ZS5jOiBmaXggZm9yIEFJWCA0CgkKMjAwMC0wMy0wMiAwODozMCAgZGF2ZXMKCgktIChtaWIyL2lwLltjaF0gbWliMi9pcEFkZHIuW2NoXSk6IEZpcnN0IHN0YWIgYXQgdGlkeWluZyB1cCBtaWIyIHN1cHBvcnQuCgkKMjAwMC0wMy0wMSAxMzoyMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggZHluYW1pYyB0YWJsZSB0ZXN0aW5nIGZvciBjcmVhdGlvbiBuZWVkZWQuCgkKMjAwMC0wMy0wMSAxMzoyMiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtLCB1Y2Qtc25tcC5wbSk6IE9wcHMuICBXcm9uZyBuYW1lLiAgdWNkLXNubXAucG0gLT4gbWFuYWdlci5wbS4KCQoyMDAwLTAzLTAxIDEzOjIxICBoYXJkYWtlcgoKCS0gKHVjZC1zbm1wLnBtKTogdHVybmVkIHNxbHRvaHRtbCBpbnRvIGFuIGFwYWNoZSBtb2R1bGUuIDJ4IHNwZWVkIGltcHJvdmVtZW50LgoJCjIwMDAtMDMtMDEgMDg6MzIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAxODAgZm9yIGN5Z3dpbiBidWlsZCB3aXRoIF9SRUVOVFJBTlQ7IHBlciBhc2hpcG1hbkBlcmdncm91cC5jb20KCQoyMDAwLTAyLTI5IDE0OjMwICBtc2xpZmNhawoKCUludm9rZSBzbm1wX3Nlc3Nfc2VuZCBmcm9tIHdpdGhpbiBzbm1wX3JlYWQgdG8gYXZvaWQgbXV0ZXggZGVhZGxvY2tzLgoJCjIwMDAtMDItMjggMTQ6MjUgIG5iYQoKCS0gc25tcGQuaCwgc211eC5jOiBkb24ndCBpbml0aWFsaXplIHNtdXggbWFzdGVyIGluIHN1YiBhZ2VudAoJCjIwMDAtMDItMjggMTQ6MTYgIG5iYQoKCS0gc25tcF92YXJzLmM6IHVzZSBTVUJfQUdFTlQgc3ltYm9sCgkKMjAwMC0wMi0yOCAxNDoxMiAgbmJhCgoJLSBtaWIuYzogc3ByaW50X2J5X3R5cGUgc2hvdWxkIGhhbmRsZSBBU05fQklUX1NUUgoJCjIwMDAtMDItMjggMTQ6MTAgIG5iYQoKCS0gc25tcF9wYXJzZV9hcmdzLmM6IGNvcnJlY3RseSBjYWxsIHRoZSAtSSBvcHRpb25zIGlucHV0IG9wdGlvbnMKCQoyMDAwLTAyLTI4IDEwOjQ3ICBtc2xpZmNhawoKCWZpeCBidWcgIzE3NiAoQUlYIDQgLSB1c2Uga25saXN0IGluIGxpZXUgb2Ygbmxpc3QpCgkKMjAwMC0wMi0yNCAxNzoxNyAgbXNsaWZjYWsKCglhcHBseSBwYXRjaCB0byBmaXggYnVnIG5vLiAxNzcuCgkKMjAwMC0wMi0yNCAxMzozMSAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBuZXcgc25tcC5jb25mIGtleXdvcmQKCSAgdG8gZm9yY2UgdGhlIHBhcnNlciB0byBpZ25vcmUgdW5rbm93biB0b2tlbnMuCgkKMjAwMC0wMi0yNCAwMzo1OSAgbXNsaWZjYWsKCglkb2N1bWVudCBVTlNJR05FRDMyIGFuZCBDT1VOVEVSMzIgKCd1JyBhbmQgJ2MnKSBpbiBzbm1wc2V0IChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDItMjQgMDM6NTYgIG1zbGlmY2FrCgoJYWRkIHN1cHBvcnQgZm9yIENPVU5URVIzMiB0byBzbm1wX2FkZF92YXI7IGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMgoJKCd1JyBhbmQgJ2MnKSBpbiBzbm1wdHJhcCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKCQoyMDAwLTAyLTIzIDIzOjA2ICBuYmEKCgktIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGZpeCBzZXR0aW5nIG9mIG9jdGV0IHN0cmluZ3MuCgkKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgoJLSBtdF9zdXBwb3J0Lmg6IGEgYmFkIDsgaW4gdGhlIEMrKyBicmFja2V0aW5nCgkKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgoJLSBzeXN0ZW0uYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgaW5kaXJlY3Rpb25zIGluIHN0cmNhc2VjbXAKCQoyMDAwLTAyLTIzIDAyOjA3ICBuYmEKCgktIHZtc3RhdF9zb2xhcmlzLmM6IG1ha2Ugc3VyZSB3ZSBhZ3JlZSB3aXRoIHRoZSBwcm90b3R5cGUgb2YgZ2V0cGFnZXNpemUhCgkKMjAwMC0wMi0yMiAxNTozMSAgbmJhCgoJLSBwYXNzX3BlcnNpc3QuaDogZGVjbGFyZSBpbml0X3Bhc3NfcGVyc2lzdAoJCjIwMDAtMDItMjIgMDk6NTcgIG1zbGlmY2FrCgoJcHJ1bmUgdHdvIG1vcmUgc3ltYm9scyBub3QgdXNlZCBieSBhdXRvX25saXN0IGZvciBTb2xhcmlzLWJ1aWx0IE1JQiBtb2R1bGVzLgoJCjIwMDAtMDItMjEgMTY6MTcgIG1zbGlmY2FrCgoJQXBwbHkgUi4gU3RvcnkncyBwYXRjaCBmb3IgbWtkaXJoaWVyIGFuZCBzdHJuY2FzZWNtcCBvbiB3aW4zMgoJCjIwMDAtMDItMjEgMDc6MzkgIG1zbGlmY2FrCgoJZml4IGJ1ZyAxNzEgKHRoYW5rcyB0byBMYXJyeSBQYXJtZWxlZSkuCgkKMjAwMC0wMi0yMSAwNTo1NiAgbXNsaWZjYWsKCglyZW1vdmUgZnJlZSBhZnRlciBzbm1wX2Nsb3NlIChkb24ndCBmcmVlIHR3aWNlISkKCQoyMDAwLTAyLTIxIDA0OjU4ICBtc2xpZmNhawoKCUFkZGVkIGRlc2NyaXB0aW9uIGluIFNIX05BTUUgZm9yIHNldmVyYWwgbWFuLXBhZ2VzIChjL28gcmFnbmFyaykKCQoyMDAwLTAyLTE4IDEyOjE0ICBtc2xpZmNhawoKCXJlZmVyIHRoZSAuc28gbWFjcm8gdG8gbWFuMzsgYWRqdXN0IE1ha2VmaWxlLmluIHRvIHVzZSB0aGUgcmVuYW1lZCBmaWxlLgoJCjIwMDAtMDItMTcgMDU6MTcgIG1zbGlmY2FrCgoJaW5jbHVkZSBwYXNzX3BlcnNpc3QgaW4gdGhlIHJlcXVpcmVkIGxpc3QuCgkKMjAwMC0wMi0xNyAwMjowMCAgZGF2ZXMKCgktIChjb25maWd1cmUqIHVjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jKToKCSAgLSBQcm92aWRlIG1pc3NpbmcgJ2dldHBhZ2VzaXplJyByb3V0aW5lIGZvciBTb2xhcmlzIDIuNAoJICAgIChUaGFua3MgdG8gUmFnbmFyIEtq+HJzdGFkKQoJCjIwMDAtMDItMTYgMjA6MTcgIG1zbGlmY2FrCgoJaW5jbHVkZSBtaWJpbmNsLmggaW4gaHJfc3lzdGVtLmMgdG8gZml4IGJ1ZyAjMTU5LgoJCjIwMDAtMDItMTYgMTY6MzUgIG1zbGlmY2FrCgoJcmVtb3ZlIGF1dG9fbmxpc3Qgb2YgdW51c2VkICJzd2FwbGlzdCIgc3ltYm9sLgoJCjIwMDAtMDItMTYgMTU6MTcgIG1zbGlmY2FrCgoJcGF0Y2ggc3VnZ2VzdGVkIGJ5IFJpY2sgQmVhbWFuIDxiZWFtYW5AbWVkaWFvbmUubmV0PgoJCjIwMDAtMDItMTYgMTQ6NTggIG1zbGlmY2FrCgoJcmVtb3ZlIHVudXNlZCB2YXJzCgkKMjAwMC0wMi0xNiAxNDo1NyAgbXNsaWZjYWsKCgl0ZXN0IGxlbmd0aHMgYmVmb3JlIGFsbG9jYXRpbmcgbWVtb3J5OyB1c2UgbmV3IFZBQ01TVFJJTkdMRU4gY29uc3RhbnQuCgkKMjAwMC0wMi0xNiAwODoxOCAgbXNsaWZjYWsKCglpbmNsdWRlIHRpbWUuaCBvbmNlCgkKMjAwMC0wMi0xNiAwODowMiAgbXNsaWZjYWsKCglyZXN0b3JlICNpZiBIQVZFLi4uSU5fUENCX0gKCQoyMDAwLTAyLTE1IDIzOjQ3ICBuYmEKCgktIGNvbmZpZ3VyZS5pbiwgaXBjaC5bY2hdOiBpbml0aWFsIHN0YWJzIGF0IExpbnV4IGlwdjYgc3VwcG9ydC4gQSBsb3QgaXMKCQlsYWNraW5nIGluIHRoZSBrZXJuZWwgc3RhdGlzdGljcyB0aG91Z2guCgkKMjAwMC0wMi0xNSAyMzo0MCAgbmJhCgoJLSAobWFueSk6IGNvbmZpZ3VyZSBjaGVjayBmb3IgbmV0aW5ldC9pcDYuaAoJCjIwMDAtMDItMTUgMjM6MzQgIG5iYQoKCS0gaHJfZmlsZXN5cy5jOiBNTlRUWVBFIGRlZmluZXMgZm9yIEZyZWVCU0QtMyBhbmQgQlNESS00LCBhbmQgbW92aW5nIHRoZQoJCXJldHVybiB2YWx1ZSBmb3IgRXh0MkZTIHRvIHRoZSBuZXdseSBkZWZpbmVkIE9JRC4KCQoyMDAwLTAyLTE1IDIzOjI0ICBuYmEKCgktIGZyZWVic2QzLmg6IHNvbWUga2VybmVsIHN5bWJvbHMgbm90IHRvIGJlIHVzZWQgZm9yIEZyZWVCU0QgMwoJCjIwMDAtMDItMTUgMjM6MjMgIG5iYQoKCS0gc25tcHRhYmxlLmM6IGdpdmUgYSBzZW5zaWJsZSBvdXRwdXQgZm9yIGFuIGVtcHR5IHRhYmxlLgoJCjIwMDAtMDItMTUgMjM6MjIgIG5iYQoKCS0gdmFjbSo6IGJ1ZmZlciBsZW5ndGggY2hlY2tpbmchCgkKMjAwMC0wMi0xNSAyMzoyMCAgbmJhCgoJLSBocl9zdG9yYWdlLmM6IHJldHVybiBtZW1vcnkgc2l6ZSBpbiBwYWdlcy4KCQoyMDAwLTAyLTE1IDIzOjE3ICBuYmEKCgktIHVjZF9zbm1wLmgsIG1lbW9yeV9mcmVlYnNkMi5oOiBtYWtlIGl0IHdvcmsgZm9yIEZyZWVCU0QtMyB0b28KCQoyMDAwLTAyLTE1IDIzOjE2ICBuYmEKCgktIHNubXBfYWdlbnQuYzogb25lIG1vcmUgcGxhY2UgdG8gc2VuZCBhIEFVVEhGQUlMIHRyYXAKCQoyMDAwLTAyLTE1IDIzOjE1ICBuYmEKCgktIGFnZW50X3JlZ2lzdHJ5LmM6IGZpeCBhIHJldHVybiBmb3IgU05NUHYxL0NvdW50ZXI2NCBjYXNlCgkKMjAwMC0wMi0xNSAwMjoxMiAgZGF2ZXMKCgktIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogT21pdCBkZXByZWNhdGVkIG9wdGlvbnMgZnJvbSBvcHRhcmcgaGFuZGxpbmcuCgkKMjAwMC0wMi0xMSAxNTo0OCAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLyopOiAvdXNyL2xvY2FsL2Jpbi9wZXJsIC0+IC91c3IvYmluL3BlcmwKCQoyMDAwLTAyLTExIDE1OjQ3ICBoYXJkYWtlcgoKCS0gKG1ha2VkZXBlbmQuaW4pOiAvdXNyL2xvY2FsL2Jpbi9wZXJsIC0+IC91c3IvYmluL3BlcmwKCQoyMDAwLTAyLTExIDE1OjM4ICBoYXJkYWtlcgoKCS0gKHJzbm1wKTogcGVybDUgLT4gcGVybAoJCjIwMDAtMDItMTEgMTU6MTcgIGhhcmRha2VyCgoJLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX3RyYXBfYXBpLjMKCQoyMDAwLTAyLTExIDE0OjIwICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogbGFzdCBtaW51dGUgbWFrZWZpbGUgdG91Y2h1cAoJCjIwMDAtMDItMTEgMTQ6MDMgIGhhcmRha2VyCgoJLSAoTkVXUyk6IHVwZGF0ZSBmb3IgNC4xLjEKCQoyMDAwLTAyLTExIDEzOjQ3ICBoYXJkYWtlcgoKCS0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgNC4xLjEKCQoyMDAwLTAyLTExIDEzOjI5ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLjEgKQoJCjIwMDAtMDItMTEgMTI6NTMgIGhhcmRha2VyCgoJLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIGZvciBUaW1lb3V0IGZvciB2MmMuCgkKMjAwMC0wMi0xMSAxMjo0OSAgaGFyZGFrZXIKCgktIChsb2NhbC9NYWtlZmlsZS5pbik6IGRvbid0IGNwIGZvciBzbm1wY2hlY2sKCQoyMDAwLTAyLTExIDEyOjQ0ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogZml4IGZvciBzZXBlcmF0ZSBidWlsZCBwYXRoCgkKMjAwMC0wMi0xMSAxMjozMCAgaGFyZGFrZXIKCgktIChzeXNPUlRhYmxlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgoJICAtIGNvbXBpbGVyIHdhcm5pbmcgZml4LgoJCjIwMDAtMDItMTEgMTI6MjkgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogcGF0Y2ggZnJvbSBOaWVsczoKCSAgLSBkb24ndCBzZW5kIGF1dGhlcnJvciByZXNwb25zZXMgZm9yIHYyYy4KCSAgLSBzZW5kIGF1dGhGYWlsdXJlIHRyYXAuCgkKMjAwMC0wMi0xMSAxMjoyMiAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGNoYW5nZSBwZXJsIHBhdGggdG8gL3Vzci9iaW4uCgkKMjAwMC0wMi0xMSAwNjo1OCAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KCQoyMDAwLTAyLTEwIDExOjE0ICBtc2xpZmNhawoKCWZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgoJCjIwMDAtMDItMTAgMTA6MzMgIG1zbGlmY2FrCgoJW25vIGxvZyBtZXNzYWdlXQoJCjIwMDAtMDItMTAgMTA6MzIgIGhhcmRha2VyCgoJLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgoJCjIwMDAtMDItMTAgMTA6MjggIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KCQoyMDAwLTAyLTEwIDA4OjM5ICBuYmEKCgktIG1hbi8qOiBzZXQgdGhlIGRhdGVzIG9uIHRoZSBwYWdlcyB0byByZWZsZWN0IHRoZSByZXZpc2lvbiBkYXRlCgkKMjAwMC0wMi0xMCAwODoxMyAgbXNsaWZjYWsKCglmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKCQoyMDAwLTAyLTEwIDA4OjAwICBtc2xpZmNhawoKCXR5cGVkZWYgaW50IHNzaXplX3QgKG9uZSBsaW5lIGFkZGVkKSBmb3IgYnVpbGQgb24gU3VuT1MgNC4KCQoyMDAwLTAyLTEwIDA3OjU0ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gdGhlIHR1dG9yaWFsLgoJCjIwMDAtMDItMTAgMDc6MTQgIGRhdmVzCgoJLSAoRkFRKTogRXhwbGljaXQgZXhhbXBsZXMgb2Ygc2VuZGluZyB0cmFwcyBieSBoYW5kCgkKMjAwMC0wMi0xMCAwNDo0MSAgZGF2ZXMKCgktIChzbm1wbGliL3tzbm1wX2FwaSxzbm1wX2NsaWVudH0uYyBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMpOgoJICAtICBDb21tZW50IHVudXNlZCBjb2RlIG1vcmUgaW5mb3JtYXRpdmVseSBhcyB0byB3aHkgaXQgaXMgb21pdHRlZC4KCQoyMDAwLTAyLTA5IDEzOjUzICBoYXJkYWtlcgoKCS0gKGV2YWxfdG9vbHMuc2gsIFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKCSAgLSBza2lwIHNzbCB0ZXN0cyB3ZSBjYW4ndCBwZXJmb3JtLgoJCjIwMDAtMDItMDkgMTM6NTEgIG1zbGlmY2FrCgoJaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBnZXQgUEFUSF9NQVggb24gRnJlZUJTRC4KCQoyMDAwLTAyLTA5IDEzOjM4ICBoYXJkYWtlcgoKCS0gKFN2M1NIQURFU2NvbmZpZywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgoJICAtIG1ha2UgU0hBIHRlc3RzIGFjdHVhbGx5IHdvcmsuCgkKMjAwMC0wMi0wOSAxMzozMiAgaGFyZGFrZXIKCgktIChTdjNjb25maWdzaGEpOiBzaGEgY29uZmlnIHN1cHBvcnQKCQoyMDAwLTAyLTA5IDEzOjMxICBoYXJkYWtlcgoKCS0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCgkgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOiBmaXggZm9yIHByb3BlciBBQ00gZXJyb3Igb3V0cHV0cy4KCQoyMDAwLTAyLTA5IDEzOjMwICBtc2xpZmNhawoKCURlZmluZSBTTk1QX01BWFBBVEgsIGFuZCB1c2UgaXQuCgkKMjAwMC0wMi0wOSAxMzozMCAgaGFyZGFrZXIKCgktIChUMDI0c25tcHYzZ2V0U0hBMSBUMDI1c25tcHYzZ2V0U0hBREVTKTogbmV3IHRlc3RzCgkKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCgktIChVQ0QtU05NUC1NSUIudHh0KTogbWVudGlvbiBhIG5ldyB1Y2RFeHBlcmltZW50YWwgcmVnaXN0cmF0aW9uICh3YXZsYW4pLgoJCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgoJLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCgkgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgoJICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KCQoyMDAwLTAyLTA5IDExOjM4ICBoYXJkYWtlcgoKCS0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KCQoyMDAwLTAyLTA5IDEwOjQzICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZSBtb2RlIHRvIGF1dG9jb25mLgoJCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBmaXggcnNubXAgYnVpbGQuICBSZWFsbHkuICBJIG1lYW4gaXQuCgkKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCgktIChocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYyk6IFBhdGNoIGZyb20gQW5keSBIT09EOgoJICAtIFNvbGFyaXMgcGF0Y2hlcy4KCQoyMDAwLTAyLTA5IDEwOjM3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKToKCSAgLSBmaXggcnNubXAubWFkZS4KCSAgLSB1c2UgJChNQUtFKS4KCQoyMDAwLTAyLTA5IDA4OjQxICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAoJCjIwMDAtMDItMDcgMTE6NDkgIG1hcnoKCglvb3BzIG1pc3NpbmcgaW1wb3J0YW50IGZpeCBmb3Igd2luMzIgYnVpbGQgLSBmZF9zZXQgbXVzdCBiZSBzYW1lIHNpemUgYXMgaW4gd2luc29jawoJCjIwMDAtMDItMDcgMTE6MTggIG1zbGlmY2FrCgoJVW5kbyBsYXN0IGNoYW5nZTsgb24gU3VuLCBhZGRpdGlvbmFsIHBsYXRmb3JtIGluZm8gd2FzIG5vdCBvYnRhaW5lZDsKCXRoZSBwcm9wZXIgc29sdXRpb24gd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgdG9rZW4gKGhvc3RuYW1lKS4KCQoyMDAwLTAyLTA3IDEwOjQzICBtc2xpZmNhawoKCUtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgoJCjIwMDAtMDItMDcgMDc6MjAgIGhhcmRha2VyCgoJLSAoUE9SVElORyk6IE1pY2hhZWwgbGlrZXMgZGlmZiAtdS4KCQoyMDAwLTAyLTA2IDA2OjExICBuYmEKCgktIHJlYWRfY29uZmlnLmM6IEZpeCBvbmUgZmluYWwgJzonIHRvIEVOVl9TRVBBUkFUT1JfQ0hBUgoJCjIwMDAtMDItMDUgMTc6MzkgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KCQoyMDAwLTAyLTA1IDA4OjM3ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KCQoyMDAwLTAyLTA1IDA2OjU2ICBtYXJ6CgoJZml4IHZlcnNpb24gIG51bWJlcgoJCjIwMDAtMDItMDQgMTg6NTUgIG1hcnoKCgl3ZWlyZCBkZWxheSBpbiBjcmVhdGlvbiBvZiBwaWQgZmlsZXMKCQoyMDAwLTAyLTA0IDE4OjIxICBtYXJ6CgoJYnJhaW4tbwoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjEgLT4gVjQuMS4xCgptYXJ6ICA1IEZlYiAwMCAwNjo1Njo0MwogICAgZml4IHZlcnNpb24gIG51bWJlcgoKaGFyZGFrZXIgIDUgRmViIDAwIDA4OjM3OjI3CiAgICAtIChzbm1wdHJhcGQuYyk6IGZpeCB3cmFwcGVkIGxpbmUgY29udGludWF0aW9uIGluIHVzYWdlIG1lc3NhZ2UuCgpoYXJkYWtlciAgNSBGZWIgMDAgMTc6Mzk6NTQKICAgIC0gKHNubXB2My5jKTogY29ycmVjdCBzb21lIGF3ZnVsIHRleHQgLT4gZW5naW5lSUQgY3JlYXRpb24gbWlzdGFrZXMuCgpuYmEgIDYgRmViIDAwIDA2OjExOjU5CiAgICAtIHJlYWRfY29uZmlnLmM6IEZpeCBvbmUgZmluYWwgJzonIHRvIEVOVl9TRVBBUkFUT1JfQ0hBUgoKaGFyZGFrZXIgIDcgRmViIDAwIDA3OjIwOjI0CiAgICAtIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgoKbXNsaWZjYWsgIDcgRmViIDAwIDEwOjQzOjI5CiAgICBLZWVwIGN1c3RvbWVyJ3Mgbm9kZW5hbWUgb3V0IG9mIHRoZSBwdWJsaXNoZWQgJ3VuYW1lJyBpbmZvcm1hdGlvbi4KCm1zbGlmY2FrICA3IEZlYiAwMCAxMToxODoyNgogICAgVW5kbyBsYXN0IGNoYW5nZTsgb24gU3VuLCBhZGRpdGlvbmFsIHBsYXRmb3JtIGluZm8gd2FzIG5vdCBvYnRhaW5lZDsKICAgIHRoZSBwcm9wZXIgc29sdXRpb24gd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgdG9rZW4gKGhvc3RuYW1lKS4KCm1hcnogIDcgRmViIDAwIDExOjQ5OjAxCiAgICBvb3BzIG1pc3NpbmcgaW1wb3J0YW50IGZpeCBmb3Igd2luMzIgYnVpbGQgLSBmZF9zZXQgbXVzdCBiZSBzYW1lIHNpemUgYXMgaW4gd2luc29jawoKaGFyZGFrZXIgIDkgRmViIDAwIDA4OjQxOjExCiAgICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBVcGRhdGUgZnJvbSBKb2NoZW4gS21pZXRzY2gKCmhhcmRha2VyICA5IEZlYiAwMCAxMDozNzowMAogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIGZpeCByc25tcC5tYWRlLgogICAgICAtIHVzZSAkKE1BS0UpLgoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjQxOjE0CiAgICAtIChocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYyk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgICAtIFNvbGFyaXMgcGF0Y2hlcy4KCmhhcmRha2VyICA5IEZlYiAwMCAxMDo0MTo0NAogICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggcnNubXAgYnVpbGQuICBSZWFsbHkuICBJIG1lYW4gaXQuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6NDM6MDUKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZSBtb2RlIHRvIGF1dG9jb25mLgoKaGFyZGFrZXIgIDkgRmViIDAwIDExOjM4OjQyCiAgICAtIChocl9zd2luc3QuYyk6IHBhdGNoIGZyb20gcmVkaGF0IGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTM6MTY6MTcKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICAgICBzbm1wX2FnZW50LmMsIHZhY21fdmFycy5jKToKICAgICAgLSBmaXggcG9zaWJsZSBhY20gRG9TIHByb2JsZW1zIGJ5IGNoZWNraW5nIGFjY2VzcyB0YWJsZXMgZWFybHkgb24uCgpoYXJkYWtlciAgOSBGZWIgMDAgMTM6MTY6NTgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCgptc2xpZmNhayAgOSBGZWIgMDAgMTM6MzE6MDEKICAgIERlZmluZSBTTk1QX01BWFBBVEgsIGFuZCB1c2UgaXQuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTM6MzE6MjQKICAgIC0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOiBmaXggZm9yIHByb3BlciBBQ00gZXJyb3Igb3V0cHV0cy4KCm1zbGlmY2FrICA5IEZlYiAwMCAxMzo1MToxMgogICAgaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBnZXQgUEFUSF9NQVggb24gRnJlZUJTRC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzo1MzozNwogICAgLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgogICAgICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCgpkYXZlcyAxMCBGZWIgMDAgMDQ6NDE6MTAKICAgIC0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CiAgICAgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgoKZGF2ZXMgMTAgRmViIDAwIDA3OjE0OjUxCiAgICAtIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKCmhhcmRha2VyIDEwIEZlYiAwMCAwNzo1NDo0NgogICAgLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCgptc2xpZmNhayAxMCBGZWIgMDAgMDg6MDA6MjYKICAgIHR5cGVkZWYgaW50IHNzaXplX3QgKG9uZSBsaW5lIGFkZGVkKSBmb3IgYnVpbGQgb24gU3VuT1MgNC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAwODoxMzoxNAogICAgZml4IHZhcmFyZ3MgZGVjbC9kZWZuIG9mIHNubXBfbG9nCgpuYmEgMTAgRmViIDAwIDA4OjQwOjA0CiAgICAtIG1hbi8qOiBzZXQgdGhlIGRhdGVzIG9uIHRoZSBwYWdlcyB0byByZWZsZWN0IHRoZSByZXZpc2lvbiBkYXRlCgpoYXJkYWtlciAxMCBGZWIgMDAgMTA6Mjg6MjEKICAgIC0gKHNubXB2My5jKTogZml4IHNldHVwIGVuZ2luZUlEIGJ1ZmZlciBvdmVyZmxvdyBmb3VuZCBieSBNaWtlIEJhZXIuCgpoYXJkYWtlciAxMCBGZWIgMDAgMTA6MzI6MDgKICAgIC0gKGhyX3N3aW5zdC5jKTogbWlub3IgZml4ZXMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAxMDozMzo0NwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbXNsaWZjYWsgMTAgRmViIDAwIDExOjE0OjU4CiAgICBmaXggZm9yIG9sZGVyIHBsYXRmb3JtcyB0byB1c2UgcGFzc19wZXJzaXN0OyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDExIEZlYiAwMCAwNjo1ODowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb250IGRlZmluZSBQUk9DRklYQ01EIGFuZCBFWEVDRklYQ01EIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6MjI6MTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjoyOTozNwogICAgLSAoc25tcF9hZ2VudC5jKTogcGF0Y2ggZnJvbSBOaWVsczoKICAgICAgLSBkb24ndCBzZW5kIGF1dGhlcnJvciByZXNwb25zZXMgZm9yIHYyYy4KICAgICAgLSBzZW5kIGF1dGhGYWlsdXJlIHRyYXAuCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6MzA6MDIKICAgIC0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NDQ6MjMKICAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZml4IGZvciBzZXBlcmF0ZSBidWlsZCBwYXRoCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NDk6MDMKICAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjUzOjE1CiAgICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KCmhhcmRha2VyIDExIEZlYiAwMCAxMzoyOToyOQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjAuMSAtPiBWNC4xCgptc2xpZmNhayAyNCBBdWcgOTkgMDQ6NDQ6NDcKICAgIENsZWFuIENScyBmcm9tIHJlYWRfY29uZmlnLHNubXBfbG9nZ2luZzsgY29tbWVudCBkZWZpbmUgVVNFX0FTTl9TSE9SVF9MRU4uCgptc2xpZmNhayAyNCBBdWcgOTkgMDU6MTE6MTMKICAgIFJlbW92ZSBBU05fU0hPUlRfTEVOIGhhY2sgLSBrbm93biB0byBkdW1wIGNvcmUgaW4gYWdlbnQuCgptc2xpZmNhayAyNCBBdWcgOTkgMDY6MTk6NDkKICAgIEFkZCAiLiIgdG8gUEFUSCBmb3IgUlVOVEVTVFM7IERyb3Agb3B0cmVzZXQgdG8gYnVpbGQgbW9zdCBwbGF0Zm9ybXMKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxMDoyNTo1MwogICAgLSh0ZXN0aW5nL2V2YWxfdG9vbHMpIC0gbGV0IHNvbWUgKEFJWCkgYWdlbnRzIHNldHRsZSBiZWZvcmUgZmlyaW5nIHJlcXVlc3RzLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEyOjQ4OjIxCiAgICAtICh2YWNtX3ZhcnMuYyk6IGNvcnJlY3Qgc3lzT1JUYWJsZSBlbnRyeS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNjozNQogICAgLSAoc25tcHVzbS5jKTogY2hlY2sgZm9yIG51bGwgcmVzcG9uc2UgcG9pbnRlci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNzozMQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcHYzLmMpOgogICAgICAtIHByb3ZpZGUgZGVmVmVyc2lvbiB0b2tlbiBzdXBwb3J0IGluIHNubXAuY29uZiAoc29ydCBvZiBoYWNraXNoKS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzo0MToxOAogICAgLSAoVE9ETyk6IHJlbW92ZSBzbm1wdjMgc3VwcG9ydCA6LSkKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNDowNTozOQogICAgLSh0b3AvTWFrZWZpbGUuaW4pIC0gcmVtb3ZlIG1vcmUgZ2VuZXJhdGVkIGZpbGVzIHdpdGggZGlzdGNsZWFuIHJ1bGUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTQ6MTU6NDAKICAgIC0gKGFsbF9zeXN0ZW0uaCk6IHJlbW92ZS4gIGFnYWluLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjE3OjMzCiAgICAtKGhvc3QvaHJfc3dydW47bWliSUkvaWNtcCxpcDt1Y2Qtc25tcC9kaXNrLHByb2MpIGxvZ19wZXJyb3IgLS0+IHNubXBfbG9nX3BlcnJvcgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE1OjE0OjE4CiAgICAtKHNtdXguYykgYXBwbHkgTmljayBBbWF0bydzIHBhdGNoOiBwcmV2ZW50IFNNVVggY2xvc2Ugb24gcGFyc2Ugb3IgZXJyb3IuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTU6NTk6NDIKICAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdmVyc2lvbiBzZXR0aW5nIGluIHNubXBfYXBpLmMuICBOb3QgbmVlZGVkIHRoZXJlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE2OjAxOjU1CiAgICAtIChORVdTKTogNC4wLjEgdXBkYXRlCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6MDU6MTUKICAgIC0oY29uZmlndXJlLiopIG1vdmUgc3RhdGVtZW50IGFib3V0IHVjZERlbW9QdWJsaWMgaW50byBjb21tZW50IGZpZWxkLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE2OjQ5OjIyCiAgICAtKHRlc3RpbmcvKikgcnVuIHRlc3RzIHdoZW4gcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLCBhbmQgd2hlbgogICAgdGhlIGJ1aWxkIHRyZWUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgdHJlZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNzoxMzoyNQogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciA0LjAuMQoKaGFyZGFrZXIgMjQgQXVnIDk5IDE3OjE0OjUwCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC4xICkKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNzozOTo1NAogICAgLShSVU5URVNUUykgZXhwb3J0IFBBVEggYmVmb3JlIHVzZQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE3OjQzOjA0CiAgICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIG5vIG5lZWQgdG8gYnVpbGQgdGFyZ2V0cyBpbiB0ZXN0IHJ1bGUuCgptc2xpZmNhayAyNiBBdWcgOTkgMTM6MTg6MzEKICAgIC0odGVzdGluZy9SVU5URVNUUykgaW1wcm92ZWQgUEFUSCBzZXQKCm1zbGlmY2FrIDI2IEF1ZyA5OSAxMzo0MDoxMwogICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBkb24ndCBidWlsdCB0YXJnZXRzIHRoYXQgYXJlIG5vIGxvbmdlciB1c2VkCgptc2xpZmNhayAyNyBBdWcgOTkgMDc6MzU6MTAKICAgIC0oY29uZmlndXJlKiwgc2Vkc2NyaXB0KikgY2hhbmdlIC4uLkVYVEVOSVMuLi4gIHRvIC4uLkVYVEVOU0kuLi4KCm1zbGlmY2FrIDI3IEF1ZyA5OSAwODowMzo0NgogICAgSG93YXJkIFNwaW5kZWwgc3VnZ2VzdHMgYW4gQVBJIGZvciB0cmFwcyB3aXRoIHBhc3NfcGVyc2lzdC4KCmhhcmRha2VyIDI3IEF1ZyA5OSAwOToxNzowOAogICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIFN1c2FubmUgT3N0ZWQgcG9pbnRlZCBvdXQgYSBsYWNrIG9mICNpZiBIQVZFX1NZU19QQVJBTV9ILgoKaGFyZGFrZXIgMjggQXVnIDk5IDA3OjE5OjE2CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcF9hbGFybS4zLgoKaGFyZGFrZXIgMjggQXVnIDk5IDA3OjI5OjQ4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgICAtIGFkZCAvZXRjL3NubXAgdG8gZGVmYXVsdCBjb25mIGZpbGUgcGF0aCB0byBtYWtlIFJlZEhhdCBoYXBweS4KCmhhcmRha2VyIDMwIEF1ZyA5OSAwOTozMzo0MQogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywKICAgICAgYWdlbnRfdHJhcC5oLCBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmMsCiAgICAgIHNubXBkLmMsIHV0aWxfZnVuY3MuYywgc3lzT1JUYWJsZS5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgICBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgICAtIHJlc3RydWN0dXJlIHRoZSBhZ2VudCBpbnRvIHR3byBwaWVjZXM6IGEgbGlicmFyeSBhbmQgYSBhcHBsaWNhdGlvbi4KICAgICAgICAtIG5lZWRzIG11Y2ggbW9yZSB3b3JrLgogICAgICAgIC0gbWFueSBwYXJhbWV0ZXJzIGFyZSBub3cgY29udHJvbGxlZCBieSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncwogICAgICAgICAgdG8gaGVscCByZWxpZXZlIGNvbXBpbGUgdGltZSBiaW5kaW5ncy4KICAgICAgLSBtZXJnZSBpbml0X3NubXAgYW5kIHRoZSBjdXN0b20gdmVyc2lvbiBjYWxsZWQgaW5zaWRlIHRoZSBhZ2VudC4KICAgICAgLSBhZGQgYSBuZXcgcGxhY2UgZm9yIHRyYXAgc3BlY2lmaWMgYWdlbnQgY29kZSAoYWdlbnRfdHJhcC5bY2hdKS4KICAgICAgLSBwcm9iYWJseSBvdGhlciB0aGluZ3MgSSd2ZSBmb3Jnb3R0ZW4gdGhhdCBJIGRpZC4KCmhhcmRha2VyIDMwIEF1ZyA5OSAwOTozODoxOAogICAgLSAoY2xpZW50LmMsIG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jKToKICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgICAgLSB1c2UgbmV3IGRlZmF1bHRfc3RvcmUgc2V0dGluZ3MgaW5zdGVhZCBvZiBleHRlcm5hbCB2YXJpYWJsZXMuCgpoYXJkYWtlciAzMCBBdWcgOTkgMTA6MzA6NTYKICAgIC0gKG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jKTogeWV0IG1vcmUgZGVidWdnaW5nLgoKbmJhIDMwIEF1ZyA5OSAxMzowMjoxOAogICAgLSBtYW4vc25tcGQuY29uZi41LmRlZjogZG9jdW1lbnQgc211eHBlZXIgZGlyZWN0aXZlCgpuYmEgMzAgQXVnIDk5IDEzOjAzOjQwCiAgICAtIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6IHByb3Blcmx5IGhhbmRsZSBNSUI6b2lkIGNvbnN0cnVjdAoKbmJhIDMwIEF1ZyA5OSAxMzowNTowMgogICAgLSBhcHBzL3NubXB0cmFwZC5jOiBmaXggYXJndW1lbnQgcGFyc2VyCgpuYmEgMzEgQXVnIDk5IDAwOjA4OjQ1CiAgICAtIGFnZW50L3NubXBkLmM6IGRvbid0IHRyeSB0byBwYXJzZSBhIHBhY2tldCB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGluCiAgICAJcmVjdmZyb20KCm1zbGlmY2FrIDMxIEF1ZyA5OSAwODoxNzoyNAogICAgLShhZ2VudF90cmFwLmMpIGZpeCByZWNlbnQgbWVtb3J5IGxlYWssIGFuZCBzaXplb2Yob2JqaWRfc25tcHRyYXApIGJ1Zy4KCm1zbGlmY2FrIDMxIEF1ZyA5OSAwOToyNjoxNAogICAgLShhZ2VudF90cmFwLmMpIGFsd2F5cyBmcmVlIFBEVSBhZnRlciBzbm1wX3NlbmQuCgpkYXZlcyAgMiBTZXAgOTkgMDY6Mzg6MTYKICAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQoKZGF2ZXMgIDIgU2VwIDk5IDA2OjM4OjUzCiAgICAtIChhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYyk6IEZpeCBNSUIgbG9jYXRpb24gb2YgaXBmd2FjYyBtb2R1bGUKCmhhcmRha2VyICAyIFNlcCA5OSAwNzowNzowNAogICAgLSAoc3ViYWdlbnQuYyk6IHNodXRkb3duX3N1YmFnZW50IC0+IHN1YmFnZW50X3NodXRkb3duIHNvIGNvbmZpZ3VyZQogICAgICBkb2Vzbid0IGZpbmQgaXQuCgpoYXJkYWtlciAgMiBTZXAgOTkgMDg6NTI6NDgKICAgIC0gKHN1YmFnZW50LmMpOiBvcHBzLiAgRm9yZ290IGEgc2h1dGRvd24gbmFtZSBjaGFuZ2UgaW5zdGFuY2UuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MTU6MTUKICAgIC0gKGhpc3RvcnkuYywgaGlzdG9yeS5oLCBzbm1wX3ZhcnMubGludXguaCk6IHJlbW92ZWQuIE5vIGxvbmdlciBuZWVkZWQuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MTU6MzMKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBhZ2VudCBoZWFkZXIgZmlsZXMuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6Mjc6MTMKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBpbnN0YWxsIGxpYmFnZW50LmEuCiAgICAgIC0gbWtkaXJoZWlyIG9uIG5lZWRlZCBuZXcgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDEzOjMwOjM2CiAgICAtIChzbm1wbGliL01ha2VmaWxlLmluKTogaW5zdGFsbCBtb3JlIGxpYnJhcnkgaGVhZGVycy4KCmhhcmRha2VyICAzIFNlcCA5OSAxNDoyODo0NgogICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCBmYWxsIG9mZiB0aGUgZW5kIG9mIHRoZSBzZWFyY2ggdHJlZS4KCmhhcmRha2VyICAzIFNlcCA5OSAxNTowMTozOQogICAgLSAoRkFRKTogbW9yZSBCU0RJIHN5c3RlbSB2ZXJzaW9ucyBsaXN0ZWQuCgpuYmEgIDYgU2VwIDk5IDIzOjUzOjA3CiAgICAtIChtYW4vc25tcF9hcGkuMyBzbm1wbGliL3NubXBfYXBpLmMgYWdlbnQvc25tcGQuYyBhcHBzL3NubXB0cmFwLmMpOgogICAgCWZpeCBtZW1vcnkgbGVhayB3aGVuIGFnZW50IHNlbmRzIHRyYXBzIGJ5IGltcGxlbWVudGluZyB0aGUgbWlzc2luZwogICAgCWZyZWUgb2YgVFJBUCBwZHUgaW4gc25tcF9zZW5kLgoKbmJhICA2IFNlcCA5OSAyMzo1NTozOAogICAgLSBpZi5jOiBjb3JyZWN0IGNhbGxzIG9mIHNubXBfZml4X3BkdSB0byB1c2UgR0VUTkVYVAoKbXNsaWZjYWsgIDcgU2VwIDk5IDE0OjQ3OjE4CiAgICAtKHBhcnNlLiopIGZpeCBzbWFsbCBtZW1vcnkgbGVha3M7IGFsbG93IElOREVYe0lOVEVHRVIuLi59IGNsYXVzZXM7CiAgICAgICAgICAgICAgIGFsbG93IGxhcmdlciBERVNDUklQVElPTiBjbGF1c2VzIFttYXggODE5Ml0uCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MjI6MTQKICAgIHNubXB2My5jIC0gc2lsZW5jZSB0eXBlIHdhcm5pbmcgZnJvbSBNU1ZDKysuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MjM6MDIKICAgIChkZWZhdWx0X3N0b3JlLiopIC0gbWFrZSAzcmQgcGFyYW0gdG8gZHNfc2V0X3N0cmluZyB0eXBlIG9mIGNvbnN0IGNoYXIgKi4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMzo1MQogICAgKHdpbjMyL2NvbmZpZy5oKSAtIHNldCBTTk1QQ09ORlBBVEggdG8gc3VjY2VlZCBjb21waWxlOwogICAgKHdpbjMyKmxpYnNubXAuZGVmKSAtIGFkZCBuZXcgc25tcF9nZXRfdG9rZW4gdG8gbGlzdC4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNTozMjowMAogICAgLShzbm1wX2FwaS5oKSBzdHJ1Y3QgcGR1IGFuZCBzbm1wX3Nlc3Npb24gYWdyZWU6IGxvbmcgdHlwZSBmb3IgdmVyc2lvbiBtZW1iZXIuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MzI6NTkKICAgIC0ocGFyc2UuYykgcmVtb3ZlIHVubmVlZGVkIHN0cmR1cCB0byBGaWxlIHZhcmlhYmxlIGZyb20gaW5pdF9taWJfaW50ZXJuYWxzLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjU3OjEzCiAgICAtKHBhcnNlLmMpIGZpeCBVbmxpbmtlZCBPSUQgcHJpbnQgd2hlbiBvYmplY3QgaWRlbnRpZmllciBoYXMgbm8gcGFyZW50LgoKbXNsaWZjYWsgIDcgU2VwIDk5IDIwOjEyOjU3CiAgICAtKGFnZW50X3RyYXAuYyxzbm1wdHJhcC5jLHNubXBfYXBpLlszY10pIC0gc25tcF9mcmVlX3BkdSBmaXggQnVnICM1NCBwZXIgTmllbHMgQi4KICAgIC0oc25tcG5ldHN0YXQvaWYuYykgLSBmaXggZm9yIEdFVE5FWFQgcGVyIE5pZWxzIEIuCgptc2xpZmNhayAgNyBTZXAgOTkgMjA6MTk6NTIKICAgIHNubXB0cmFwLmMgLSByZXdvcmsgZml4IGJ1ZyAjNTQgKG1pc3NlZCBlbHNlKS4KCm1zbGlmY2FrICA4IFNlcCA5OSAwNToxNjozNAogICAgaW5jbHVkZSByZWFkX2NvbmZpZy5oCgpuYmEgIDggU2VwIDk5IDA3OjQ1OjU0CiAgICAtIChjb25maWd1cmUuaW4sIGxvYWRhdmUuYyk6IFNvbGFyaXMgMi43IGhhcyBnZXRsb2FkYXZnIHByb3RvdHlwZQoKbmJhICA4IFNlcCA5OSAwNzo0Njo1MQogICAgLSBzbm1wX2FwaS5oOiBtb3ZlIGluY2x1c2lvbiBwcm90ZWN0aW9uIHRvIHRoZSByZWFsIGJlZ2lubmluZy9lbmQgb2YgdGhlIGZpbGUKCm5iYSAgOCBTZXAgOTkgMDc6NDg6MDMKICAgIC0gdmFyX3N0cnVjdC5oOiB0aGUgQWdlbnR4IGNvZGUgdXNlcyB1bnNpZ25lZCB2YWx1ZXMgZm9yIHRoZSB2YXJpYWJsZSB0eXBlLgoKbmJhICA4IFNlcCA5OSAwNzo1MDozNwogICAgLSAodmFyaW91cyk6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKbmJhICA4IFNlcCA5OSAwNzo1MToyNgogICAgLSBzbm1wZC4xLmRlZjogZml4IGEgZm9ybWF0dGluZyBwcm9ibGVtCgpuYmEgIDggU2VwIDk5IDA3OjUyOjIzCiAgICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwcm9jZXNzaW5nICgtbGQgYW5kIHNpbWlsYXIpCgptc2xpZmNhayAgOCBTZXAgOTkgMTM6MDA6NDAKICAgIC0odGVzdGluZy9SVU5URVNUUykgcHJlZml4IFBBVEggd2l0aCAuIGFuZCAuLiAsIGFzIHRoZSBzY3JpcHQgY2hhbmdlcyBkaXIuCgptc2xpZmNhayAgOCBTZXAgOTkgMTM6MDQ6NTUKICAgIC0oc25tcGxpYi9zbm1wX2NsaWVudC4qKSBhZGQgc25tcF9zcGxpdF9wZHUsIHNubXBfdmFyYmluZF9sZW4gbWV0aG9kcy4KCm1zbGlmY2FrICA4IFNlcCA5OSAxNzowMjozNwogICAgbWliaW5jbC5oLCBtaWJncm91cC9taWJJSS8qIC0gZml4dXAgZm9yIEN5Z1dpbjMyIGJ1aWxkCgptc2xpZmNhayAgOCBTZXAgOTkgMTc6NDk6MTMKICAgIC0oY29uZmlnKix3aW4zMi8qLHNubXBsaWIvKikgcmVzb3VyY2UgbG9ja2luZyBvcmlnaW5hbGx5IGZyb20gTWFya2t1IExhdWtrYW5lbgoKbXNsaWZjYWsgIDggU2VwIDk5IDE3OjUyOjQ3CiAgICAtKG10X3N1cHBvcnQuKikgT3JpZ2luYWwgYnkgTWFya2t1IExhdWtrYW5lbiwgY2hhbmdlcyBieSBNLiBTbGlmY2FrCgptc2xpZmNhayAgOCBTZXAgOTkgMjI6MzA6MjkKICAgIC0oc211eC5jKSB2YXJfc211eF93cml0ZSBmaXhlZCBwZXIgTWlrZSBNaWNoYXVkIGFuZCBOaWNrIEFtYXRvCgptc2xpZmNhayAgOCBTZXAgOTkgMjI6MzQ6MzcKICAgIC0obWliaW5jbC5oKSBjb21tZW50IG91dCBkdXBsaWNhdGUgI2luY2x1ZGUgaGVhZGVyIGxpbmVzLgoKZGF2ZXMgIDkgU2VwIDk5IDAxOjMyOjE1CiAgICAtIChtaWJzL1NOTVB2Mi1DT05GLnR4dCk6IE9taXQgdW5uZWNlc3NhcnkgaW1wb3J0IGNsYXVzZQoKbXNsaWZjYWsgIDkgU2VwIDk5IDAyOjIxOjUwCiAgICAtKHdpbnN0dWIuYykgSGFjayB0byBhbGxvdyBzbm1wbmV0c3RhdCAtYSB0byB3b3JrIG9uIEFJWDQgKHNpYykuCgptc2xpZmNhayAgOSBTZXAgOTkgMDI6MzE6MjYKICAgIC0oKmNvbmZpZyopIHR1cm4gb24gcmVzb3VyY2UgbG9ja2luZyB3aXRoIC0tZW5hYmxlLXJlZW50cmFudC4KCm1zbGlmY2FrICA5IFNlcCA5OSAxMzo1OToyNgogICAgLShtaWIuYywgcGFyc2UuYykgbWliLmMgcHJpbnRfdHJlZV9ub2RlIHRlc3QgZGlzcGxheSBudWxsIHR5cGUgd2l0aCByYW5nZQogICAgICAgICAgICAgICAgICAgICAgcGFyc2UuYyB3b3JrIGFyb3VuZCBjb3JlIGR1bXAgZnJlZWluZyBUQ3MgdGhhdCBzcGVjaWZ5IHJhbmdlcy4KCm5iYSAxMiBTZXAgOTkgMjE6NTA6MjMKICAgIC0gdmFyX3JvdXRlLmM6IExpbnV4IGNsZWFudXAuIFJlcXVpcmVkIGZvciBMaW51eC9TUEFSQwoKbmJhIDEyIFNlcCA5OSAyMTo1NzoxOAogICAgLSBhZ2VudC8qLCBzbm1wbGliLyo6IG1hbGxvYyBmaXhlcywgc29tZSBwcm92b2tlZCBieSB0aGUgY29ycmVjdGVkCiAgICAJc25tcF9zZW5kIHNlbWFudGljcy4KCm5iYSAxMiBTZXAgOTkgMjE6NTg6MTcKICAgIC0gVEVTVENPTkYuc2g6IGZpeCBzb21lIGV4cG9ydHMgdG8gZXhwb3J0IHRoZSByaWdodCB2YXJpYWJsZS4KCm5iYSAxMiBTZXAgOTkgMjE6NTk6MzQKICAgIC0gcHJvdG9jb2wuYzogYWRkIGEgbWlzc2luZyBpbmNsdWRlIGZpbGUuCgpuYmEgMTIgU2VwIDk5IDIyOjAwOjMzCiAgICAtIHNubXBfaW1wbC5oOiByZW1vdmVkIHNvbWUgdW51c2VkL3VubmVlZGVkIGRlZmluZXMvc3RydWN0cwoKbmJhIDEzIFNlcCA5OSAwNDozNToxOAogICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCgpuYmEgMTMgU2VwIDk5IDEzOjMyOjA3CiAgICAtIHNubXBkLmM6IGZpeCBhIGJ1ZmZlciBvdmVyZmxvdwoKaGFyZGFrZXIgMTMgU2VwIDk5IDE1OjAxOjU0CiAgICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgICAgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgc3ViYWdlbnQuYywKICAgICAgc3ViYWdlbnQuaCwgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgICAtIGZ1cnRoZXIgc2VwYXJhdGlvbiBvZiBhZ2VudCBjaHVyY2ggYW5kIHN0YXRlOgogICAgICAgIC0gdXNlIGNhbGxiYWNrcyBldmVyeXdoZXJlIG5lZWRlZCB0byBub3QgY2FsbCBtaWIgbW9kdWxlIGNvZGUgZGlyZWN0bHkuCiAgICAgICAgLSBnZXQgcmlkIG9mIGFsbCBpbnN0YW5jZXMgb2YgVVNJTkdfIGluIGxpYmFnZW50IGNvZGUuCgptc2xpZmNhayAxMyBTZXAgOTkgMjA6MjA6NTQKICAgIC0oc25tcF9hcGkuYykgcmUtYXNzZXJ0IE5pZWxzJyBwYXRjaCB0byBzbm1wX3NlbmQgdG8gZnJlZSB2Mi92MSBUcmFwLVBEVXMKCm1zbGlmY2FrIDE0IFNlcCA5OSAwOTo1NDowNQogICAgLShGQVEsIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvcGFyc2UuKikgYWRkIHJlcGxhY2UgTUlCIGNhcGFiaWxpdHkoZXhwZXJpbWVudGFsKQoKbWFyeiAxNCBTZXAgOTkgMTM6MDA6MTIKICAgICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IGZpeCBzcHVyaW91cyBlcnJvciBtZXNzYWdlIHdoZW4gc25tcF9wYXJzZV9vaWQgZmFpbHMKCm1zbGlmY2FrIDE0IFNlcCA5OSAxMzoyMjozOQogICAgcGFyc2UuYyAtIGFub3RoZXIgZml4IGZvciBub2RlOiBjb25zaWRlciBOVUxMIG5hbWUgb3IgTlVMTCBwYXJlbnQKCm1zbGlmY2FrIDE1IFNlcCA5OSAwNjowODozMgogICAgaW5jbHVkZSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmggZm9yIGJlbmVmaXQgb2YgbWliX21vZHVsZV9kb3RfY29uZi5oCgpoYXJkYWtlciAxNSBTZXAgOTkgMDk6NDU6MzUKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMywgc25tcF9vcGVuLjMsCiAgICAgIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMsIHNubXBfc2VuZC4zLAogICAgICBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsCiAgICAgIHNubXBfc2Vzc19pbml0LjMsIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgICAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLCBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsCiAgICAgIHNubXBfc2Vzc19zZXNzaW9uLjMsIHNubXBfdGltZW91dC4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgIC0gY3JlYXRlIHNvbWUgZmFrZSBzb3VyY2luZyBtYW4gcGFnZXMgZm9yIGZ1bmN0aW9ucy4KCm1zbGlmY2FrIDE1IFNlcCA5OSAxMTozMDo1OAogICAgZmluZSB0dW5pbmcgbXQgc3VwcG9ydAoKbXNsaWZjYWsgMTYgU2VwIDk5IDE0OjE2OjM4CiAgICAtcGVyIGFncmVlbWVudCB3aXRoIE1hcmtrdSwgbm8gc3VwcG9ydCBuZWVkZWQgZm9yIFNvbGFyaXMtc3BlY2lmaWMgdGhyZWFkcy4KCmhhcmRha2VyIDE3IFNlcCA5OSAwNzoxNzoyMQogICAgLSAoc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTWFyayBILiBXb29kOgogICAgICAtIGZpeCBjb21tZW50cy4KCm1zbGlmY2FrIDE3IFNlcCA5OSAxMToxOTo0MgogICAgLShwYXJzZS5jKSAtIHJlbW92ZSB1bm5lZWRlZCB1c2Ugb2Ygc3RhdGljIHZhciAibGFzdCIKCm1zbGlmY2FrIDE3IFNlcCA5OSAxMToyNDo0OAogICAgLXJlbW92ZSBvbGQtc3R5bGUgaW5pdCBmb3IgcmVwbGFjZSBtaWIgZmVhdHVyZS4KCm1zbGlmY2FrIDE3IFNlcCA5OSAxMTo0MjoxNwogICAgbWFrZSBtb2R1bGVfbWFwKiBhbmQgdG9rZW5zIHN0cnVjdHVyZXMgc3RhdGljIChvbmx5IHVzZWQgaW4gcGFyc2UuYyA/KQoKaGFyZGFrZXIgMTcgU2VwIDk5IDE1OjM3OjQxCiAgICAtIChjb25maWd1cmUpOiB1cGRhdGUgdG8gMi4xMy4KCmRhdmVzIDIxIFNlcCA5OSAwOToyMTo1OQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogaGFuZGxlIGFkZGluZyAnZXJyb3InIHR5cGUgdmFyaWFibGVzIHRvIGEgUERVCgpkYXZlcyAyMSBTZXAgOTkgMDk6MjU6MjUKICAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jKTogSGFuZGxlIHBhcnNpbmcgbnVsbC1sZW5ndGggdmFyaWFibGVzCgpkYXZlcyAyMSBTZXAgOTkgMDk6MzI6MjcKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcGQuYyk6IFNpbXBsZSBydW4tdGltZSBkdW1wIG9mIHJlZ2lzdGVyZWQgTUlCcwoKbXNsaWZjYWsgMjEgU2VwIDk5IDEwOjQwOjQzCiAgICAtKG1pYi5jKSB1bmRvIGVycm9uZW91cyBjaGFuZ2UgdG8gaW5pdF9taWIgKHRoYW5rcyBOQiEpCgpkYXZlcyAyMiBTZXAgOTkgMDk6Mjc6MzcKICAgIC0gKGFnZW50L3NubXBkLmMpOiBzdHVwaWQgdHlwbwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjMxOjA4CiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jKTogc3R1cGlkIHR5cG8KCmRhdmVzIDIyIFNlcCA5OSAwOTozMzo1MQogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3ZpZGUgbWV0aG9kIGZvciBwcmlvcml0aXNlZCByZWdpc3RyYXRpb24KCmRhdmVzIDIyIFNlcCA5OSAwOTozNTowOQogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgLSBFbnN1cmUgbG9jYWwgc3lzT1JUYWJsZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgc3ViYWdlbnQgdmVyc2lvbnMKCmRhdmVzIDIyIFNlcCA5OSAwOTo1NDowMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyB2YXJfc3RydWN0LmgpOgogICAgICBDaGFuZ2UgdGhlIHdheSB0aGUgTUlCIHJlZ2lzdHJ5IGhhbmRsZXMgcmVnaXN0ZXJlZCByYW5nZXMuCiAgICAgIFRoaXMgc2hvdWxkIHdvcmsgbW9yZSByZWxpYWJseSAoYXMgd2VsbCBhcyBiZWluZyByYXRoZXIgc2ltcGxlciwgSU1ITykKCmRhdmVzIDIyIFNlcCA5OSAwOTo1ODoxMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IHJlbW92ZSByZWR1bmRhbnQgcm91dGluZXMKCmRhdmVzIDIyIFNlcCA5OSAxMDowMDo1NgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEVuc3VyZSByZWdpc3RyeSBpcyBpbml0aWFsaXNlZCBjb3JyZWN0bHkgb24gc3ViYWdlbnRzCgpkYXZlcyAyMiBTZXAgOTkgMTA6MDE6NDUKICAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSW1wcm92ZWQgQWdlbnRYIHJlc3BvbnNlIGhhbmRsaW5nCgptc2xpZmNhayAyMiBTZXAgOTkgMTI6NTE6MDAKICAgIC0oc25tcF9hcGkuYykgLSBJbXByb3ZlZCBlcnJvciBzdGF0dXMgYWdncmVnYXRpb24uCgpoYXJkYWtlciAyNyBTZXAgOTkgMTY6MjI6MjAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBPcHBzOiBEU19MSUJfRE9OVF9SRUFEX0NPTkZJR1MgbmVlZGVkIGFuICEuCgpoYXJkYWtlciAyOCBTZXAgOTkgMTY6NTI6MDQKICAgIC0gKE1ha2VmaWxlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6CiAgICAgIC0gbWFrZSBsaWJ1Y2RhZ2VudCBhbmQgbGlidWNkbWlicyBhcyBzZXBlcmF0ZSBsaWJyYXJpZXMuICBJbiB0aGVvcnksCiAgICAgICAgeW91IHNob3VsZG4ndCBuZWVkIGxpYnVjZG1pYnMgdG8gdXNlIGxpYnVjZGFnZW50LgoKZGF2ZXMgMjkgU2VwIDk5IDExOjE0OjQyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBwcm90ZWN0IHNubXBfY2xvc2UoKSBhZ2FpbnN0IGEgbnVsbCBTZXNzaW9ucyBsaXN0CgpkYXZlcyAyOSBTZXAgOTkgMTE6MTc6MDEKICAgIC0gKG10X3N1cHBvcnQuaCBzbm1wX2FwaS5bY2hdKTogU3VwcG9ydCBmb3Igc2Vzc2lvbiBhbmQgaW5jb21pbmcgdHJhbnNhY3Rpb24gSURzCgpkYXZlcyAyOSBTZXAgOTkgMTE6MjM6NDAKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBDb3JyZWN0IHZhbHVlIG9mIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHByaW9yaXR5CgpkYXZlcyAyOSBTZXAgOTkgMTE6MzY6NDMKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgICAtIEltcHJvdmUgcmVnaXN0cnkgZXJyb3IgaGFuZGxpbmcKICAgICAgLSBDb3JyZWN0bHkgaGFuZGxlIHVucmVnaXN0ZXJpbmcgTUlCIHJlZ2lvbnMKCmRhdmVzIDI5IFNlcCA5OSAxMTozODoyMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gJ0NoaWxkcmVuJyBub2RlcyBub3cgaGF2ZSBhIGRpZmZlcmVudCBzdGF0dXMsIGFuZCBzaG91bGRuJ3QgYmUgZnJlZWQuIE9vcHMhCgpkYXZlcyAyOSBTZXAgOTkgMTE6NDM6MDAKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aXNpb24gdG8gdW5yZWdpc3RlciBNSUJzIGJ5IHNlc3Npb24KCmRhdmVzIDI5IFNlcCA5OSAxMTo0NjowMgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOgogICAgICAtIE1vdmUgc2V0dGluZyBhZ2VudCBzdGFydCB0aW1lIHRvIGVhcmxpZXIgaW4gdGhlIGluaXRpYWxpc2F0aW9uIHNlcXVlbmNlCiAgICAgICAgKHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRkZW4gaW4gc3ViYWdlbnRzIHdpdGggdGhlIG1hc3RlcidzIHZhbHVlKQoKZGF2ZXMgMjkgU2VwIDk5IDExOjQ4OjU1CiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOiBDaGFuZ2UgaW4gTUlCIHJlZ2lzdHJhdGlvbiBpbnRlcmZhY2UKCmRhdmVzIDI5IFNlcCA5OSAxMjoxOTo1NgogICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOiAgQXNzb3J0ZWQgaW1wcm92ZW1lbnRzIQoKbXNsaWZjYWsgMjkgU2VwIDk5IDE0OjMxOjQ4CiAgICBSb2J1c3QgY29weSBvZiBpbmZvcm1hdGlvbiB0byB0cmVlLCBpbXBvcnRfbGlzdCwgZGlzcGxheSBoaW50cy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozNTo0MwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBmaXggUkFOTElCIHRlc3RpbmcgZm9yIC0tZW5hYmxlLXNoYXJlZC4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozNjowNwogICAgLSAoUkVBRE1FKTogYWRkZWQgTWlrZSBNaWNoYXVkIHRvIHRoZSB0aGFuayB5b3UgbGlzdC4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozODozNAogICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CiAgICAgIC0gbmV3IGV4dHJhY3Rpb24gYW5kIGZyZWVpbmcgZnVuY3Rpb25zLgogICAgICAtIGJ1ZyBmaXgsIG1pc3NpbmcgYSBtYWxsb2Mgc2l6ZSBieSBvbmUgKGVsZWN0cmljIGZlbmNlIGlzIHZlcnkgY29vbCkuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzg6NTkKICAgIC0gKGNsaWVudC5jKTogdGhhdHMgInRpbWV2YWwiIG5vdCAidGltZXZhbGUiIERhdmUgKGhlaGUpLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM5OjIxCiAgICAtIChjbGllbnQuaCk6IGRlZmluZSBERUZBVUxUX01JQl9QUklPUklUWSB0byAyNTUuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzk6NDIKICAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogLVdhbGwgZml4ZXMgYW5kIGZvdW5kIGEgbWlzc2luZyB9LgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjQwOjA4CiAgICAtIChwYXNzLmMpOiBydW4gbnRvaGwgb24gaXAgYWRkcmVzc2VzIHN0b3JlZCBpbiBhIGxvbmcuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6NDA6MzAKICAgIC0gKG1pYjJjLnZhcnR5cGVzLmNvbmYpOiByZW1vdmVkIGV4dHJhIFxuLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE3OjAxOjI4CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oKTogZml4IGJ1Z3MuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTc6MDE6NTAKICAgIC0gKG1pYl9tb2R1bGVzLmMpOiBpbmNsdWRlIG5ldGluZXQvaW4uaAoKbXNsaWZjYWsgMjkgU2VwIDk5IDIzOjQyOjQ5CiAgICBSZW1vdmUgdW51c2VkIGZpbGUuLiBzbm1wbGliL2hwdXguYwoKZGF2ZXMgMzAgU2VwIDk5IDAxOjA5OjI1CiAgICAtIChtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jKToKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgTlVMTCB1dG1wIGZpbGUgKGZyb20gRmFicmljZSBEdXByZSkKCmRhdmVzICAxIE9jdCA5OSAwOTo0ODoyMAogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBGaXggaW5jb21wYXRhYmlsaXR5IGluIGFnZW50IGxpYnJhcnkgbmFtZXMKCmRhdmVzICAyIE9jdCA5OSAxNDoyODoyMAogICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jKToKICAgICAgLSBGaXggYSBwcm9ibGVtIHdpdGggcmUtdXNlZCBQRFUgc3RydWN0dXJlcyBiZWluZyBmcmVlZCB0d2ljZS4KCmRhdmVzICA0IE9jdCA5OSAwMzo1ODoyMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgpOgogICAgICAtIGNvbnNvbGlkYXRlIGRlZmluaXRpb25zIG9mIGRlZmF1bHQgTUlCIHJlZ2lzdHJhdGlvbiBwcmlvcml0eQoKZGF2ZXMgIDQgT2N0IDk5IDA5OjUzOjQ4CiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIHNubXBfdmFycy5oIG1pYklJL3N5c09SVGFibGUuYwogICAgICAgYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgICAtIEhhbmRsZSBNSUIgcmFuZ2UgcmVnaXN0cmF0aW9uLCBhbmQgY2xlYW4gdXAgd3JhcHBlciBpbnRlcmZhY2VzCgpkYXZlcyAgNCBPY3QgOTkgMDk6NTg6MjYKICAgIC0gKG1pYl9tb2R1bGVzLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LltjaF0pOgogICAgICAtIEVuc3VyZSBzdWJhZ2VudCBpcyBpbml0aWFsaXNlZCBlYXJseSAocHJpb3IgdG8gTUlCIHJlZ2lzdHJhdGlvbiwgZXRjKQoKZGF2ZXMgIDQgT2N0IDk5IDEwOjE1OjM4CiAgICAtIChzbm1wbGliL2NhbGxiYWNrLmgpOiBJbmNyZWFzZSBudW1iZXIgb2YgYXBwbGljYXRpb24gY2FsbGJhY2tzIHN1cHBvcnRlZAoKZGF2ZXMgIDQgT2N0IDk5IDEwOjE3OjUzCiAgICAtIChhZ2VudF9jYWxsYmFja3MuaCAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5bY2hdCiAgICAgICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAgLSBDb21wbGV0ZSBzdWJhZ2VudCBoYW5kbGluZyBvZiBBZ2VudCBDYXBhYmlsaXRpZXMgLyBzeXNPUlRhYmxlCgpkYXZlcyAgNCBPY3QgOTkgMTA6MjI6MjUKICAgIC0gKGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBUcml2aWFsICdwaW5nJyBpbXBsZW1lbnRhdGlvbgoKbmJhICA0IE9jdCA5OSAxMTo0ODo1MQogICAgLSAoc25tcF9hcGk/LCBpbnQ2NC4/IHNubXB0cmFwLmMpOiBhZGQgc29tZSBlcnJvciBjaGVja2luZyBmb3IgdmFyaWFibGVzCgpuYmEgIDQgT2N0IDk5IDExOjUwOjUwCiAgICAtIE1ha2VmaWxlLmluOglhbHdheXMgdXNlICQoTUFLRSkgZm9yIG1ha2UgaW4gTWFrZWZpbGVzCgpuYmEgIDQgT2N0IDk5IDExOjUyOjI1CiAgICAtIGNvbmZpZ3VyZS5pbjoJcmVtb3ZlIC1wZWRhbnRpYyBmcm9tIC0td2l0aC1kZXZlbG9wZXIsIGFuZCB0aGUgc3lzdGVtIGhlYWRlcnMKICAgIAlhcmUgbm90IHByZXBhcmVkIGZvciBpdCAoYXQgbGVhc3Qgb24gTGludXggYW5kIE5ldEJTRCkKCm5iYSAgNCBPY3QgOTkgMTM6Mzg6MTkKICAgIC0gdmFyaW91czogaW5jbHVkZSBhZGRpdGlvbnMgYW5kIGZpeGVzIHRvIGtpbGwgd2FybmluZ3MKCmhhcmRha2VyICA0IE9jdCA5OSAxMzo1MTo1MQogICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNTZXJ2aWNlcyBjb25maWd1cmFibGUuCgpuYmEgIDQgT2N0IDk5IDEzOjUyOjIwCiAgICAtIHN1YmFnZW50LmgsIHN1YmFnZW50LmMsIG1pYl9tb2R1bGVzLmM6IHByZV9pbml0X3N1YmFnZW50IGNvbmZ1c2VzCiAgICAJY29uZmlndXJlIGludG8gYmVsaWV2aW5nIHRoZXJlIGlzIGEgaW5pdF9zdWJhZ2VudCBmdW5jdGlvbi4KICAgIAlSZW5hbWUgdG8gc3ViYWdlbnRfcHJlX2luaXQKCmhhcmRha2VyICA0IE9jdCA5OSAxNjozMjoxOQogICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGFkZGVkIGhlYWRlcl9jb21wbGV4X2ZpbmRfZW50cnkoKS4KCmRhdmVzICA1IE9jdCA5OSAwNzoyMzo0NQogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOiBXb3JraW5nIFNFVCBzdXBwb3J0CgpuYmEgIDUgT2N0IDk5IDIxOjQ5OjIyCiAgICAtIHNubXBfZGVidWcuaDogbWFrZSB0aGUgREVCVUcqIG1hY3JvcyBzYWZlIGZvciB1c2UgaW4gY29tcG91bmQgc3RhdGVtZW50cwoKbmJhICA1IE9jdCA5OSAyMjoxODo0NgogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZml4ZXMgdG8gcmVwb3J0IGludmFsaWQgZW5naW5lSWQKCm5iYSAgNSBPY3QgOTkgMjI6MjI6NTQKICAgIC0gc3ViYWdlbnQuYzogaW5jbHVkZSBzeXN0ZW0uaCBmb3IgcHJvdG90eXBlIGZvciBjYWxjdWxhdGVfdGltZV9kaWZmCgpoYXJkYWtlciAgNiBPY3QgOTkgMDg6NTc6NDIKICAgIC0gKGZpeHByb2MpOiBuZXcgY29tbWVudGVkIHZlcnNpb24uCgpoYXJkYWtlciAgNiBPY3QgOTkgMTY6MzE6NTMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAgLSBTYXZlIGFuZCBwYXJzZSBvbGRlciBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMgdG8gbWFrZSBzdXJlIGRhdGEgaXMKICAgICAgICBub3QgbG9zdCBkdXJpbmcgc3RvcmFnZSBjcmFzaGVzLgogICAgICAtIEZpeCBTTk1QdjMgZW5naW5lSUQgcHJvYmVzOiBQRFUncyBhcmUgYWxsb3dlZCB0byBoYXZlIGEgTlVMTCB2YXJiaW5kbGlzdC4KCmRhdmVzICA3IE9jdCA5OSAwNzoyNjoyMAogICAgLSAoYWdlbnRfdHJhcC5jIGFnZW50X3RyYXAuaCBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBkLmgpOgogICAgICAtICBSZS13cml0ZSBvZiBhZ2VudCB0cmFwIGhhbmRsaW5nOgogICAgCVByb3Zpc2lvbiBmb3IgdjEgdHJhcHMgd2l0aCB2YXJiaW5kcwogICAgCUNvbnNvbGlkYXRlIHYxIGFuZCB2MiB0cmFwIHNpbmsgbGlzdHMKICAgIAlQcmVsaW1pbmFyeSBJTkZPUk0gc3VwcG9ydAoKZGF2ZXMgIDcgT2N0IDk5IDA4OjQyOjE1CiAgICAtIChhZ2VudF90cmFwLltjaF0pOiBJbXByb3ZlIGFjY2Vzc2liaWxpdHkgZm9yIHN1YmFnZW50cwoKZGF2ZXMgIDcgT2N0IDk5IDA5OjAxOjI1CiAgICAtIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBOb3RpZmljYXRpb24gc3VwcG9ydAoKbXNsaWZjYWsgMTIgT2N0IDk5IDA1OjU4OjI4CiAgICBtaWIuYyA6IHF1aWNrX3ByaW50IGlzIGV4cG9zZWQgZm9yIENNVV9DT01QQVRJQkxFIGJ1aWxkcy4KICAgIGxjZF90aW1lLmMgOiBjb21tZW50ZWQgdW51c2VkIGR1bXBfZXRpbWVsaXN0X2VudHJ5IHVuZGVyIFNOTVBfVEVTVElOR19DT0RFLgoKbXNsaWZjYWsgMTIgT2N0IDk5IDA2OjA3OjQ0CiAgICBEZWZpbmUgYWRkcmVzcyBsZW5ndGggZm9yIEZyZWVCU0QgcGxhdGZvcm0uCgptc2xpZmNhayAxMyBPY3QgOTkgMDM6NTQ6MDIKICAgIGFkZCBtaXNzaW5nIHByb3RvIGZvciBzYXZlX3BlcnNpc3RlbnQuCgpuYmEgMTMgT2N0IDk5IDA3OjA5OjM2CiAgICAtIG1hc3Rlcl9hZG1pbi5jLCBzeXN0ZW1fbWliLmg6IGluY2x1ZGVzIGZvciBwcm90b3R5cGVzCgptc2xpZmNhayAxNSBPY3QgOTkgMDc6MDk6MTQKICAgIC0oZGVmYXVsdF9zdG9yZS5jLCBjYWxsYmFjay5jKSBmaXgKICAgIGJ1ZyBpbiBhcnJheS1ib3VuZGFyeSBjaGVjayBpbiBzbm1wbGliL2NhbGxiYWNrLmMKICAgIHJlcG9ydGVkIGJ5IEJlcnQgSG9sc3RlaW4gMTUgT2N0IDE5OTkuCgpoYXJkYWtlciAyMCBPY3QgOTkgMTc6MjY6NTkKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBwYXJzZWQgc3RyaW5ncyBmcm9tIG9pZCdzIGluY2x1ZGUgbnVsbCB0ZXJtaW5hdG9ycy4KCmhhcmRha2VyIDIwIE9jdCA5OSAxODowODozOQogICAgLSAobWliLmMpOiBlbmFibGUgb2lkIHBhcnNlciB0byBoYW5kbGUgc2ltcGxlIGVtYmVkZGVkIHN0cmluZ3MgaW4gb2lkcwogICAgICBhbmQgdG8gdHJhbnNsYXRlIHRoZW0gaW50byBvaWQgc2VnbWVudHMuCiAgICAgIEVHOiAuMS4zLlwiaGVsbG9cIi5cJ2hpXCcgLT4gLjEuMy41LjEwNC4xMDEuMTA4LjEwOC4xMTEuMTA0LjEwNQoKaGFyZGFrZXIgMjEgT2N0IDk5IDEwOjA3OjAwCiAgICAtIChtaWIuYyk6IGVuYWJsZSBvaWRuYW1lLiJoaSIuJ3RoZXJlJyBpbiBnZXRfbW9kdWxlX25vZGUoKSBhcyB3ZWxsLgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjIwOjE1CiAgICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3Igd2l0aG91dCBzcGVjaWZ5aW5nIHNubXBfZXJybm8gX291dHNpZGVfIHRoZSBsaWJyYXJ5LgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjI2OjI5CiAgICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3IgZnJvbSB3aXRoaW4gdGhlIGxpYnJhcnkuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6Mzc6NDkKICAgIG1pYi5jIC0gcmVzdG9yZSBsaW5lIHN0b21wZWQgaW4gbXkgbGFzdCB1cGRhdGUuCiAgICByZWFkX2NvbmZpZy5jIC0gZHJvcCB1bnVzZWQgdmFyaWFibGUuCiAgICBzbm1wX2FwaS5jIC0gbmV3IG1ldGhvZCBzbm1wX29wZW5fZXggcmVwbGFjZXMgc2V0IGludGVybmFsIGhvb2sgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjM5OjA5CiAgICBGaXh1cHMgZm9yIGJ1aWxkaW5nIHdpdGggTVNWQysrLiAobm8gaHB1eC5jLCBzdXBwbHkgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUykuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6NDE6MzgKICAgIHJlbWluZGVycyBmb3Igc25tcF9zZXNzX3BlcnJvciB1c2FnZSBhZnRlciBvcGVuLgogICAgc25tcHRhYmxlLmMgLSBvcGVuL2Nsb3NlIHNlc3Npb24gZnJvbSBtYWluKCkuCiAgICBuZXRzdGF0L21haW4uYyAtIHVzZSBzbm1wX3Nlc3NfcGVycm9yLgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjQyOjI4CiAgICB1c2Ugc25tcF9vcGVuX2V4LgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEyOjA5OjUxCiAgICBGaXggQlVHIzc4Cgptc2xpZmNhayAyMSBPY3QgOTkgMTI6MzE6MjgKICAgIHNtYWxsIHBhdGNoIGZyb20gTS4gTGF1a2thbmVuIHRvIGZpeCBIUCBhQ0MgYnVpbGQuCgpuYmEgMjEgT2N0IDk5IDEyOjUyOjI2CiAgICAtIG1lbW9yeV9zb2xhcmlzLmM6IHJlb3JkZXIgY29tcHV0YXRpb25zIHRvIGF2b2lkIG92ZXJmbG93LgoKbmJhIDIxIE9jdCA5OSAxMjo1NDo0MQogICAgLSBtZW1vcnlfc29sYXJpczIuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCgptc2xpZmNhayAyMiBPY3QgOTkgMDY6Mjk6MTYKICAgIEluIGZpeGluZyBidWcgIzgzIG9uIDQuMCBicmFuY2gsIGRpc2NvdmVyZWQgdGhhdCAzLjYgYnJhbmNoCiAgICBkaWQgbm90IGhhdmUgIm9jdGV0IiB0b2tlbiBzdXBwb3J0LiAgQWRkZWQuCgptc2xpZmNhayAyMiBPY3QgOTkgMDY6Mjk6NTIKICAgIEZpeCBCVUcgIzgzLgoKbXNsaWZjYWsgMjIgT2N0IDk5IDA3OjM5OjAxCiAgICBSZW1vdmVkIGR1cGxpY2F0ZWQgdmFyaWFibGUgaW4gYSBuZXN0ZWQgYmxvY2suIEFSZyEKCmhhcmRha2VyIDIyIE9jdCA5OSAwOTo1OTozOQogICAgLSAobWliLmMpOiBlbmFibGUgaGV4IHN0cmluZ3MgaW5zaWRlIG9pZHMuCgptc2xpZmNhayAyMiBPY3QgOTkgMTA6MTI6MjYKICAgIERpc3BsYXkgX3NvbWVfIG9jdGV0IHN0cmluZyBpbmRpY2VzIG9mIG9iamVjdCBpZGVudGlmaWVycyBhcyBxdW90ZWQgcHJpbnRhYmxlLgogICAgU2hvdWxkIGJlIGV4cGFuZGVkIHRvIGhhbmRsZSBvdGhlciBJTkRFWCB0eXBlcy4KCmhhcmRha2VyIDIyIE9jdCA5OSAxNToyODo1OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBrZXl0b29scy5jLAogICAgICBrZXl0b29scy5oLCBzY2FwaS5jKToKICAgICAgLSB1c2Ugb3BlbnNzbCBmb3IgbWQ1L3NoYSBzdXBwb3J0IChmcm9tIE9sYWZ1ciBHdWRtdW5kc3NvbikuCgpoYXJkYWtlciAyMiBPY3QgOTkgMTU6Mjk6MzgKICAgIC0gKG1pYi5jKTogcHJpbnQgc3RyaW5nIGJhc2VkIE9JRHMgYmV0dGVyLgoKaGFyZGFrZXIgMjQgT2N0IDk5IDA4OjI0OjAyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNOTVBDT05GUEFUSCB1c2VzIHN5c2NvbmZkaXIgbm90IGRhdGFkaXIuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjQ6MjEKICAgIC0gKFJFQURNRS5zbm1wdjMpOiB0eXBvLgoKaGFyZGFrZXIgMjQgT2N0IDk5IDA4OjI1OjM1CiAgICAtIChtaWIuYyk6IGZpeCAibWlicyIgYW5kICJtaWJkaXJzIiAuY29uZiBkaXJlY3RpdmVzIHRvIHByb3Blcmx5CiAgICAgIGhhbmRsZSBtdWx0aXBsZSBjYWxscyAoYWRkaXRpdmUpIGFuZCAnKydzIGFuZCB0aGluZ3MuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6Mjc6MjgKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIHByZW1pYiBkaXJlY3RpdmVzIHdlcmVuJ3QgZ2V0dGluZyByZWFkIGR1ZSB0byBhIG1pc3NpbmcgbmVnYXRpb24gKCEpLgogICAgICAtIG1vcmUgcGFyc2luZyBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KCm1zbGlmY2FrIDI1IE9jdCA5OSAwODowNjozMgogICAgbWlub3IgcmV3b3JrIHRvIGNsYXJpZnkgc2lnbmVkIGNvbXBhcmVzIGFuZCByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCm5iYSAyNSBPY3QgOTkgMTM6Mzk6MjcKICAgIC0gaW50ZXJmYWNlcy5jOiBmaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgTGludXggcGFydAoKbmJhIDI1IE9jdCA5OSAxMzo0MTowMQogICAgLSBjb25maWd1cmUuaW4sIHByb2MuYzogc3VwcG9ydCBmb3IgRnJlZUJTRCAyLjEgd2hlcmUgcHMgZG9lc24ndCBoYXZlIGMgZmxhZwoKbmJhIDI1IE9jdCA5OSAxMzo1MToyMgogICAgLSBocl9zeXN0ZW0uYzogcGxheSBpdCBzYWZlIHdoZW4gbm8gdXRtcCBmaWxlIGV4aXN0cwoKbmJhIDI1IE9jdCA5OSAxMzo1MzoyNgogICAgLSBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6IHN1cHBvcnQgZm9yIHRyYXBoYW5kbGUgREVGQVVMVAoKbmJhIDI1IE9jdCA5OSAxMzo1NjoyNgogICAgLSBSVU5URVNUUywgVEVTVENPTkYuc2ggZXZhbF9vbmVzY3JpcHQuc2ggZXZhbF90b29scy5zaDogc3VwcG9ydCBub24tYmFzaAogICAgCXNoZWxscyAoZWNobyAtbiB2cyBlY2hvIFxcYykuIERvbid0IHJlcXVpcmUgLiBpbiBQQVRICgpuYmEgMjUgT2N0IDk5IDEzOjU4OjAzCiAgICAtIHNubXB0cmFuc2xhdGUuYzogbGV0ICc6JyBpbiBPSUQgZG8gInRoZSByaWdodCB0aGluZyIKCm5iYSAyNSBPY3QgOTkgMTM6NTk6MDUKICAgIC0gcGFzcy5jOiBkbyBhbiBodG9ubCB3aGVuIHBhc3NpbmcgaXAgYWRkcmVzcwoKbmJhIDI1IE9jdCA5OSAxNDowNzoxMQogICAgLSBzbm1wZGVsdGEuYzogQ09VTlRFUjY0IHdpbGwgZGVyZWZlcmVuY2UgZnJlZWQgcG9pbnRlcgoKbmJhIDI1IE9jdCA5OSAxNDowODoyNQogICAgLSBzbm1wZC5jb25mLjUuZGVmOiBtaW5vciBxdWlyawoKbmJhIDI1IE9jdCA5OSAxNDoxMzo1NwogICAgLSAqOiBjb25maWd1cmUgc3VwcG9ydCBmb3IgZG1hbGxvYyBtYWxsb2MgZGVidWdnZXIgKHd3dy5kbWFsbG9jLmNvbSkKCmhhcmRha2VyIDI1IE9jdCA5OSAxNDozNTo1MQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogZW5hYmxlIC1wIHByaW50aW5nIG9mIG9ubHkgYSBzZWN0aW9uIG9mIHRoZSBtaWIgdHJlZS4KCmhhcmRha2VyIDI1IE9jdCA5OSAxNjowNTowMwogICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBwYXJzZS5jKTogaGFjayB0byBkbyB3aWxkIGNhcmQgc2VhcmNoZXMgZm9yIGEgbWliIG5vZGUuCgptc2xpZmNhayAyNiBPY3QgOTkgMTA6MzQ6NDAKICAgIEFsbG93IHVuc2lnbmVkIHJhbmdlIGZvciBjb3VudGVyL2dhdWdlL3RpbWV0aWNrcyAoZml4IEJVRyM4NCBwZXIgU2FuZGVyIFN0ZWZmYW5uKS4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozMzozMwogICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggdXAgdWNkLXNubXAtY29uZmlnLmggYnVpbGRpbmcuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzQ6MTAKICAgIC0gKHNubXBfYWdlbnQuaCk6IHByb3RvdHlwZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM0OjU1CiAgICAtIChNYWtlZmlsZS5pbiwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIGEgaGVhZGVyIGZpbGUgdG8KICAgICAgd3JhcCBhcm91bmQgdGhlIHZhcmlvdXMgYWdlbnQgaW5jbHVkZSBmaWxlcy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNToyNwogICAgLSAobWFzdGVyX2FkbWluLmMpOiBzaW1wbGUgZGVidWdnaW5nIHNvIHlvdSBjYW4gd2F0Y2ggc3R1ZmYgcmVnaXN0ZXIuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzY6MjEKICAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMsIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgICAgIGRlZmF1bHRfc3RvcmUuMy5oLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBzbm1wX2FnZW50X2FwaS4zKToKICAgICAgLSBuZXcgbWFudWFsIHBhZ2VzOiBkZWZhdWx0X3N0b3JlLjMsIHNubXBfYWdlbnRfYXBpLjMuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzY6NTUKICAgIC0gKGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgIC0gbWFyayByZWdpb25zIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBkZWZhdWx0X3N0b3JlLjMgbWFudWFsIHBhZ2UuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6Mzc6NDkKICAgIC0gKGxjZF90aW1lLmgpOiBkZWZpbmUgYW5kIGNvbW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgYmV0dGVyLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM4OjA2CiAgICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkIGRlZmF1bHRfc3RvcmUuaCBhbmQgc25tcF9sb2dnaW5nLmgKCmhhcmRha2VyIDI3IE9jdCA5OSAxNzoxMjowMQogICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZGVkIG1vcmUgaW5jbHVkZSBmaWxlcy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNzoxMjo1OQogICAgLSAobWliLmMpOiBiYWlsIGlmIHdlIGNhbid0IGZpbmQgYW4gaW5kZXggaW4gdGhlIG1pYiB0cmVlIHRvIHVzZSBmb3IKICAgICAgYnJlYWtpbmcgYW4gb2lkIGFwYXJ0LgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjMwOjI1CiAgICAtICh2YWNtX3ZhcnMuYyk6IHdhdGNoIGZvciBudWxsIGNvbW11bml0aWVzIHdoZW4gcHJpbnRpbmcgZGVidWcgc3RhdGVtZW50cy4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNDo1NTo1MgogICAgRGF2ZSdzIGNvbW1lbnQgYWJvdXQgcHJlX3BhcnNlIGV0Yy4gd2FzIHRvbyBnb29kIHRvIGxvc2UgaW4gZS1tYWlsLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA1OjIzOjA1CiAgICB1X2ludDgvMTYvMzJfdCB0eXBlcyBubyBsb25nZXIgbmVlZGVkIGZvciBXSU4zMiBidWlsZHMuCgptc2xpZmNhayAyOCBPY3QgOTkgMDU6MjU6MDIKICAgIE9vcHMhIHJlc3RvcmUgdmVyc2lvbiByMS4xMzEuCgptc2xpZmNhayAyOCBPY3QgOTkgMDY6NDk6MDMKICAgIHJlcGhyYXNlIHN1YnRyZWUgbm90IGZvdW5kIGNvZGUgaW4gX2dldF9zeW1ib2wuCgpoYXJkYWtlciAyOCBPY3QgOTkgMTM6NDc6NTcKICAgIC0gKHNubXB0b3NxbCk6IGRlYnVnZ2luZyBhbmQgZXJyb3IgY2hlY2tpbmcuCgpoYXJkYWtlciAyOSBPY3QgOTkgMDg6NTg6MTcKICAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBQYXRjaCBmcm9tIEtlaXRoIFR1c29uOgogICAgICAtIG1pc2MgZml4ZXMuCgpoYXJkYWtlciAyOSBPY3QgOTkgMDk6Mjg6MTEKICAgIC0gKEZBUSk6IGFkZGVkIHJlZmVyZW5jZSB0byBhbiBhYm92ZSBxdWVzdGlvbiBmb3IgcGVybCBpbnN0YWxsYXRpb24uCgpoYXJkYWtlciAyOSBPY3QgOTkgMDk6Mjg6NDMKICAgIC0gKHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgpOiBhZGRlZCB2YXJfc3RydWN0LmggYW5kIGFnZW50X3JlYWRfY29uZmlnLmgKCmhhcmRha2VyIDI5IE9jdCA5OSAwOTo1MjoxOAogICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IHR3byBuZXcgcHJpbnRpbmcgb3B0aW9uczoKICAgICAgLSBwcmludE51bWVyaWNPaWRzCiAgICAgIC0gcHJpbnROdW1lcmljRW51bXMKCmhhcmRha2VyIDI5IE9jdCA5OSAxMDowNjowMwogICAgLSAoZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gc25tcCBvdmVyIFRDUCBvcHRpb25zOiAtVCBUQ1AuCiAgICAgIC0gbmV3IHF1aWNrIHByaW50IG9wdGlvbnM6IC1xbyAtcWUgZm9yIG51bWVyaWMgb2lkcyBhbmQgZW51bXMuCgpoYXJkYWtlciAyOSBPY3QgOTkgMTA6MTM6NDQKICAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1UIGFuZCAtcVtvZV0KCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxNTowMQogICAgLShkZWZhdWx0X3N0b3JlLjN7LC5ofSk6IHJlbW92ZWQgZnJvbSBDVlMgc2luY2UgdGhleSBhcmUgYnVpbHQKCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxNTo0MwogICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBkZWZhdWx0X3N0b3JlLjN7LC5ofQoKaGFyZGFrZXIgMjkgT2N0IDk5IDE2OjU4OjA3CiAgICAtICh0a21pYik6IG1ha2UgaXQgZG8gc25tcHYzLiAgQWRkZWQgbWFueSB0aGluZ3MgdG8gdGhlIG9wdGlvbnMgbWVudS4KCm1hcnogMjkgT2N0IDk5IDE5OjU0OjEwCiAgICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMpOiBtYWtlIGVuZ2luZUlEIHNldHVwIGNvbmRpdGlvbmFsIG9uIGFwcCB0eXBlIHRvIHByZXZlbnQgYXBwcyBmcm9tIGVhc2lseSBlbmRpbmcgdXAgd2l0aCB0aGUgc2FtZSBlbmdpbmVJRCBhcyBhZ2VudCBvbiBzYW1lIGhvc3QKCmhhcmRha2VyICAxIE5vdiA5OSAxMzoxODowMAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXBfYWxhcm0uYyk6CiAgICAgIC0gZG9uJ3QgYnJlYWsgb2lkcyBpbnRvIHBpZWNlcyBpZiBxdWlja19wcmludCBpcyB0dXJuZWQgb24uCiAgICAgIC0gZGl0dG8gaWYgdGhlIG5ldyBkZWZhdWx0X3N0b3JlIG9wdGlvbiBpcyB0dXJuZWQgb24uCiAgICAgIC0gbWFkZSBhIGRlZmF1bHRfc3RvcmUgb3B0aW9uIHRvIG5vdCB1c2Ugc2lnYWxybSBmb3Igc25tcF9hbGFybXMuCgpoYXJkYWtlciAgMiBOb3YgOTkgMDk6NTc6MzEKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBvdGhlciBoZWFkZXIgZmlsZXMgbmVlZGVkIGJ5IFNOTVAucG0uCgptc2xpZmNhayAgMiBOb3YgOTkgMTU6Mzc6MDUKICAgIFVzZSBIQVZFX1NUREFSR19IIHdoZW4gZGVjaWRpbmcgdG8gdXNlIHZhcmFyZ3MgdnMgQU5TSS1DIHByb3RvdHlwZXMuCgptc2xpZmNhayAgMiBOb3YgOTkgMTU6NDY6MDgKICAgIEluc3RhbGwgc25tcF9hZ2VudF9hcGkuMwoKbXNsaWZjYWsgIDMgTm92IDk5IDA2OjExOjAzCiAgICBkZWNsYXJlIGZpbmRfYmVzdF90cmVlX25vZGUgZm9yIE1TVkMgYnVpbGQuCgptc2xpZmNhayAgMyBOb3YgOTkgMDY6NDk6MzAKICAgIE5lYXIgbGluZSA2NjMgOiBjbG9zZShmZCkgYmVmb3JlIGludm9raW5nIHdhaXRfb25fZXhlYwoKbXNsaWZjYWsgIDMgTm92IDk5IDEzOjE4OjU5CiAgICBGb2xsb3dpbmcgY2FsbCB0byBmZG9wZW4gKG5lYXIgZ2V0X2V4ZWNfb3V0cHV0KSwgZG8gbm90IGNsb3NlKGZkKS4KCm1zbGlmY2FrICAzIE5vdiA5OSAxMzoyMDoxNgogICAgRml4IGJ1aWxkIHByb2JsZW0gb24gTGludXggUmVkSGF0IDYuMCA6IGtleSBvZmYgR05VX0xJQlJBUlkgdmFsdWUuCgptc2xpZmNhayAgNCBOb3YgOTkgMDI6NDI6MTUKICAgIFBhdGNoIHRvIGJ1aWxkIEJTRC9PUyA0LjAuMTsgZnJvbSBCZXJ0IERyaWVodWlzIC0tIGRyaWVodWlzQHBsYXliZWluZy5vcmcKCm1zbGlmY2FrICA0IE5vdiA5OSAwNDoxNDoyOAogICAgTW9yZSBTVERDX0hFQURFUlMgY2xlYW51cDogdXNlIEhBVkVfU1RSSU5HX0gsIEhBVkVfU1RETElCX0ggaW5zdGVhZC4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNDozMzozMgogICAgQ2hhbmdlIGV4YW1wbGUgYXdheSBmcm9tIFNURENfSEVBREVSUy4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNTowODozMQogICAgRXZlcnkgI2RlZmluZSBpcyBnaXZlbiBhIHZhbHVlOyBzZXQgdG8gMSBpZiBubyB2YWx1ZSB3YXMgc3BlY2lmaWVkLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA1OjEzOjA1CiAgICBGaXJzdCBwYXNzIHN1cHBvcnQgZm9yIEZyZWVCU0QgNC4wIFtwcm9ibGVtcyB3aXRoIHByb2MgdGFibGUgbG9va3Vwc10uCgptc2xpZmNhayAgNCBOb3YgOTkgMDY6MTE6NDgKICAgIFVzZSBzeXNjdGwoQ1RMX1ZNLi4pIHRvIGdldCB2aXJ0dWFsIG1lbW9yeSBzdGF0cy4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDowMzo0NwogICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMpOgogICAgICAtIGRlZmluZSBJTl9VQ0RfU05NUF9TT1VSQ0UgaW4gY29uZmlnLmggYnV0IG5vdCBpbiB1Y2Qtc25tcC1jb25maWcuaC4KICAgICAgLSBtb3ZlIHVjZC1zbm1wLWNvbmZpZy5oIHVwIGluIHRoZSBidWlsZCBvcmRlciBiZWZvcmUgc3ViZGlycy4KICAgICAgLSBNYWtlIGRlZmF1bHQgTUlCRElSUyBzZWFyY2ggcGF0aCBpbmNsdWRlICRIT01FLy5zbm1wL21pYnMuCiAgICAgIC0gTWFrZSBNSUJESVJTIHBhcnNpbmcgaGFuZGxlICRIT01FIHZhcmlhYmxlcyBpbiBpdC4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDowNDo0MgogICAgLSAobWliMmMuY29uZik6IGluY2x1ZGUgaGVhZGVycyBmb3IgY29tcGlsYXRpb24gZm9yIGJvdGggaW50ZXJuYWwgYW5kCiAgICAgIGV4dGVybmFsIHRvIHRoZSB1Y2Qtc25tcCBzb3VyY2UuCgptc2xpZmNhayAgNCBOb3YgOTkgMTA6MTk6MzUKICAgIFJlZG8gRnJlZUJTRCA0LjA6IGRlZmluZSBmcmVlYnNkMyBpbiBzL2ZyZWVic2Q0Lmg7IHJlZHVjZSAiZGVmaW5lIiB0aHJhc2hpbmcuCgpoYXJkYWtlciAgNCBOb3YgOTkgMTA6Mjg6NDQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBtb3ZlIC1xIGZsYWdzIHRvIC1PLgoKbXNsaWZjYWsgIDQgTm92IDk5IDEzOjQzOjQwCiAgICBTcGVlZCB1cCBzcHJpbnRfdmFyaWFibGU6IGhhbHZlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gZ2V0X3N5bWJvbC4KCm1zbGlmY2FrICA1IE5vdiA5OSAwNjoyMjo1MgogICAgU2F5IGdvb2RieWUgdG8gU05NUF9NQUxMT0MsIG1hbGxvY196ZXJvLCB4Y2FsbG9jLCB4bWFsbG9jLCBhbmQgeHN0cmR1cC4KICAgIFJlc3BlY3RpdmVseSByZXBsYWNlZCB3aXRoIGNhbGxvYywgY2FsbG9jLCBjYWxsb2MsIG1hbGxvYywgYW5kIHN0cmR1cC4KCm5iYSAgOSBOb3YgOTkgMDE6NTA6MDkKICAgIC0gbWliLmMscGFyc2UuYzogbWFrZSBlcnJvciByZXBvcnRpbmcgaW4gcGFyc2VyIHdvcmsgYWNjb3JkaW5nIHRvIHNwZWMgKC1QZSkKICAgIAlzaG93IGRlZmluaW5nIG1vZHVsZXMgaW4gc25tcHRyYW5zbGF0ZSAtZAogICAgCXVzZSBkc190b2dnbGVfYm9vbGVhbgoKbmJhICA5IE5vdiA5OSAxMjo1OTo1MgogICAgLSBzbm1wdHJhcGQuYyxzbm1wdHJhcGRfaGFuZGxlcnMuYzogbWFrZSBpdCBjb21waWxlIHdpdGggVkMrKyA1LjAKICAgIAkoYnV0IG5vIGhhbmRsZXJzICh5ZXQpKQoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjAyOjE3CiAgICAtIChzbm1wZC5jKTogZml4IC1ILgoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjAyOjQxCiAgICAtICh1Y2Rfc25tcC5oKTogcmVxdWlyZSB0aGUgREVNTy1NSUIgKGp1c3QgZm9yIHR1dG9yaWFsIHB1cnBvc2VzKS4KCmhhcmRha2VyICA5IE5vdiA5OSAxMzowOToyMQogICAgLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oKTogc2ltcGxlIG5ldyAuY29uZiB0b2tlbnM6IHJvY29tbXVuaXR5LCByd2NvbW1pdHkuCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDk6NDAKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgREVNTy1NSUIuCgpuYmEgIDkgTm92IDk5IDE1OjE2OjAzCiAgICAtIHZhcmlvdXM6IGFkYXB0IHRvb2xzIHRvIHVzZSBnZXRvcHQgKGFuZCBwdXQgb25lIGluIGZvciBXaW4zMikKCm5iYSAgOSBOb3YgOTkgMjI6MjA6NTIKICAgIC4gc25tcF9wYXJzZV9hcmdzLmM6IGEgZ2xpdGNoIGluIHRoZSBjb252ZXJzaW9uIHRvIGdldG9wdCAodGhhbmtzIHRvCiAgICAJZHJpZWh1aXNAcGxheWJlaW5nLm9yZykKCm5iYSAgOSBOb3YgOTkgMjM6MzA6MDMKICAgIC0gZ2V0b3B0Lmg6IGFyZ3VtZW50cyB0byBnZXRvcHQgZGlkIG5vdCBtYXRjaCB0aG9zZSBpbiBnZXRvcHQuYwoKbmJhIDEwIE5vdiA5OSAwODozMDoxMwogICAgLSB3aW4zMi8qOiBmaXhlcyB0byB0aGUgVkMrKyBidWlsZCBwcm9qZWN0cwoKbmJhIDEwIE5vdiA5OSAwODozMjowMAogICAgLSB3aW4zMi8qOiBWQysrIHByb2plY3QgdXBkYXRlcwoKZGF2ZXMgMTAgTm92IDk5IDA4OjU3OjAwCiAgICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jKTogT25seSBzZXQgdXAgdHJhcCBzaW5rcyBvbiB0aGUgbWFzdGVyIGFnZW50CgpkYXZlcyAxMCBOb3YgOTkgMDg6NTg6MzgKICAgIC0gKGFnZW50L2FnZW50X3RyYXAuW2NoXSk6IG1pbm9yIHJlLXN0cnVjdHVyZSB0byBhbGxvdyBzdWJhZ2VudCB0cmFwICJzaW5rcyIKCmRhdmVzIDEwIE5vdiA5OSAwODo1OTo0NQogICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggQWdlbnRYIG5vdGlmeSBzdXBwb3J0CgpuYmEgMTAgTm92IDk5IDEyOjIwOjQ3CiAgICAtIHdpbjMyLyouZHNwOiB5ZXQgYW5vdGhlciByb3VuZCBvZiBtYWtpbmcgdGhpcyBjcmFwIHdvcmsKCm5iYSAxMCBOb3YgOTkgMTU6Mjk6MTgKICAgIC0gYXBwcy8qOiBjaGFuZ2VzIGZvciBnZXRvcHQgdXNhZ2UsIGFuZCByZXdvcmtpbmcgb2Ygc25tcF9wYXJzZV9hcmdzCgpuYmEgMTAgTm92IDk5IDIyOjEyOjA4CiAgICAtIHdpbjMyLyo6IGNsZWFuIHVwIHJlcG9zaXRvcnkgZmlsZXMsIGFuZCBhZGQgcHJvcGVyIC5jdnNpZ25vcmUgZmlsZXMKCmRhdmVzIDExIE5vdiA5OSAwMzozNzo1OQogICAgLSAoYWdlbnR4L2NsaWVudC5jKTogU2lsbHkgdHlwbyBpbiBzdGFydCB0aW1lIHN5bmNocm9uaXNhdGlvbgoKbmJhIDExIE5vdiA5OSAyMjoxNDoyNwogICAgLSBzbm1wY21kLjE6IHVwZGF0ZSBtYW4gcGFnZSB0byBjb3JyZXNwb25kIHRvIHRoZSBuZXcgZ2V0b3B0IHNpdHVhdGlvbgogICAgCU5vdGU6IGV2ZW4gdGhvdWdoIHNvbWUgb3B0aW9ucyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoaXMKICAgIAlwYWdlLCB0aGV5IHN0aWxsIHdvcmshCgpuYmEgMTEgTm92IDk5IDIyOjUwOjAwCiAgICAtIHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYzogYWxpZ25tZW50IG9mIG9wdGlvbiBjb2RlLgogICAgCVNvbWUgZW5oYW5jZW1lbnRzIHRvIHRoZSBzbm1wdHJhbnNsYXRlIC1kIG91dHB1dC4KCmRhdmVzIDEyIE5vdiA5OSAwODo0NjozMwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogUHJvdmlkZSBhIHVuaXF1ZSBJRCBmb3IgYWxsIGluY29taW5nIFBEVXMKCm1hcnogMTIgTm92IDk5IDEzOjAxOjA4CiAgICAgKGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGZpeCBlbmdpbmV0aW1lIHVwZGF0ZSBhbGdvcml0aG0gdG8gY29uZm9ybSB0byBzcGVjIHJmYzI1NzQgMy4yLjcuYi4xCgpuYmEgMTQgTm92IDk5IDAxOjQ4OjUxCiAgICAtIHNubXB0YWJsZSwgc25tcF9wYXJzZV9hcmdzOiBhbGxvdyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgb3B0aW9ucyB0bwoKbmJhIDE0IE5vdiA5OSAwMTo1MTo1NwogICAgLSBzbm1wdGFibGU6IGFkZCBpbiB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgc25tcHRhYmxlIG9wdGlvbnMgYmV0d2VlbgogICAgCXRoZSBub3JtYWwgb3B0aW9ucy4KCm5iYSAxNCBOb3YgOTkgMDE6NTM6MTYKICAgIC0gc25tcGJ1bGtnZXQ6IG5ldyB0b29sIHRvIGlzc3VlIGEgc2luZ2xlIEdFVEJVTEsgcmVxdWVzdAoKbmJhIDE0IE5vdiA5OSAwMTo1NDoxNwogICAgLSBzbm1wX3BhcnNlX2FyZ3M6IGNoYW5nZXMgdG8gc3VwcG9ydCBtdWx0aS12YWx1ZWQgb3B0aW9ucwoKbmJhIDE0IE5vdiA5OSAwMTo1OToyMAogICAgLSBtaWJzLyosIHZhY21fdmFycy5oOiB1cGRhdGUgdGhlIG1pYiBmaWxlcyB0byByZmMgMjU3MS0yNTc1LiBBbHNvIGFkZAogICAgCVNOTVBfQ09NTVVOSVRZX01JQiBmcm9tIHRoZSBjb2V4IGRyYWZ0LgoKbmJhIDE0IE5vdiA5OSAwMjowMDowMAogICAgLSB2YWNtX3ZhcnMuYzoga2lsbCBhIHdhcm5pbmcKCm5iYSAxNCBOb3YgOTkgMDI6MDE6MzcKICAgIC0gcGFzcy5jLCBzbm1wZC5jb25mLjUuZGVmOiBhZGQgYW4gVU5TSUdORUQgcmV0dXJuIHR5cGUKCm5iYSAxNCBOb3YgOTkgMDI6MDQ6NDYKICAgIC0gbWliLmMsIHNubXB0cmFuc2xhdGUuYzogbW92ZSB0aGUgTUlCOmlkIGhhbmRsaW5nIGluc2lkZSByZWFkX29iamlkIGZvcgogICAgCWNvbnNpc3RlbmN5LiBBbHNvIGZpeGVzIGEgYnVmZmVyIG92ZXJydW4gaW4gbWliLmMKCm5iYSAxNCBOb3YgOTkgMDI6NDI6MzgKICAgIC0gU05NUHYyLUNPTkYudHh0OiBjb21tZW50IG91dCB0aGUgSU1QT1JUIGNsYXVzZQoKbmJhIDE0IE5vdiA5OSAwNjoxMjowMwogICAgLSBzbm1wdHJhcGQuYzogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKCm5iYSAxNCBOb3YgOTkgMDY6MTU6MDEKICAgIC0gc25tcHRyYXBkLjg6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CgpuYmEgMTQgTm92IDk5IDA2OjMyOjI1CiAgICAtIGlwYzY6IEFkZCB0aGUgSVB2NiBjb2RlIGZyb20gdGhlIEthbWUgcHJvamVjdC4gSSBoYXZlIG9ubHkgbWFzc2FnZWQKICAgIAlpdCBzbyBtdWNoIGFzIHRvIHN0aWxsIGNvbXBpbGUgb24gbm9uLUlQdjYgc3lzdGVtcywgYW5kIGRldGVjdAogICAgCUxpbnV4LCBJTlJJQSwgU29sYXJpcyBJUHY2LiBObyBjb2RlIGZvciB0aGVtIHlldC4gT3JpZ2luYWwKICAgIAlhdXRob3I6IGl0b2p1bkBpaWpsYWIubmV0CgpkYXZlcyAxNSBOb3YgOTkgMDc6NTY6MDYKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IGhhbmRsaW5nIG9mIGZhaWxlZCBHRVQvU0VUIHJlcXVlc3RzCgptc2xpZmNhayAxNSBOb3YgOTkgMDg6Mjk6MDYKICAgIEZpeCBkZXNjcmlwdGlvbiBvZiByZWFkX29iamlkIHJldHVybiB2YWx1ZS4KCm5iYSAxNSBOb3YgOTkgMTQ6MDA6MjAKICAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGZ1cnRoZXIgZXJyb3IgY2hlY2tpbmcsIGNvdXJ0ZXN5IG1zbGlmY2FrCiAgICAgIHNubXBidWxrZ2V0LmM6IG5lZWRzICNpbmNsdWRlIDxnZXRvcHQuaD4gKFRoYW5rcyB0byBSb2JlcnQgU3RvcnkpCgpuYmEgMTUgTm92IDk5IDE0OjAzOjM2CiAgICAtIG1pYnMvOiByZXBsYWNlIFJGQzEyNzEtTUlOLnR4dCB3aXRoIFJNT04tTUlCLnR4dCAoUkZDIDE3NTcgdmVyc2lvbikKCm5iYSAxNSBOb3YgOTkgMTQ6MDU6NTcKICAgIC0gcGFyc2UuYzogZml4IGEgc3BlbGxpbmcgZXJyb3IgaW4gdGhlIE1JQiByZXBsYWNlbWVudCB0YWJsZS4KCm5iYSAxNSBOb3YgOTkgMTQ6MDk6MjkKICAgIC0gLmN2c2lnbm9yZTogdXBkYXRlcyB0byBrZWVwIGN2cyBzaWxlbnQgYWJvdXQgZ2VuZXJhdGVkIGZpbGVzLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjE4OjQ2CiAgICAtIChGQVEsIFJFQURNRSk6IG5ldyBtaXJyb3IgaW4gQXVzdHJhbGlhLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjE5OjIyCiAgICAtIChtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYyk6IG1vdmUgc3ViYWdlbnRfcHJlX2luaXQoKSB0byBpbml0X2FnZW50KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTk6NDcKICAgIC0gKFRPRE8pOiBtZW1vcnkgaW50IC0+IHVpbnQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjA6MTAKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBzZXQgdG8gJ1wwJyBpbnN0ZWFkIG9mIE5VTEwgZm9yIC1XYWxsLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjIxOjA3CiAgICAtIChtaWIyYywgdGttaWIpOiByZW1vdmUgLXcuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6MjgKICAgIC0gKHNubXBfYWdlbnRfYXBpLjMpOiBkb24ndCBjYWxsIHN1YmFnZW50X3ByZV9pbml0KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6NTcKICAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGluc2VydGVkLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjIyOjI0CiAgICAtIChhc24xLmMsIGFzbjEuaCk6IG5ldyBmdW5jdGlvbjogYXNuX2NoZWNrX3BhY2tldCgpLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjM2OjI2CiAgICAtIChzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMpOgogICAgICAtIGFkZCBkZWZhdWx0X3N0b3JlLmgKCmhhcmRha2VyIDE1IE5vdiA5OSAxNTozODoyNQogICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjQxOjM4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgICAgLSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgVENQIGJyb2tlbiBTTk1QIHBhY2tldHMgYnkgc3RvcmluZyBidWZmZXJzCiAgICAgICAgYW5kIGRlYWxpbmcgd2l0aCBwaWVjZXMgb2YgaW5jb21pbmcgZGF0YSB0aWxsIHdlIGhhdmUgYSBmdWxsIHBhY2tldC4KCm1zbGlmY2FrIDE1IE5vdiA5OSAxNjo0MzoyNQogICAgRG9uJ3QgYWRkIE5VTEwgdmFyYmluZCB3aGVuIEVORE9GTUlCVklFVyBpcyByZWFjaGVkLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE3OjQxOjEwCiAgICAtIChzbm1wX2FnZW50LmMsIG1hc3Rlci5jLCBwcm90b2NvbC5jLCBwcm90b2NvbC5oLCBzdWJhZ2VudC5jLAogICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtYWtlIFRDUCBzdXBwb3J0IGJldHRlciBmb3IgYWdlbnR4LiAgU3RpbGwgaGFzIGEgcHJvYmxlbSAoSSBicm9rZSBhZ2VudHgpLgoKbXNsaWZjYWsgMTUgTm92IDk5IDIxOjU3OjM2CiAgICBGaXggYnVnIzc1OiBidWlsZCAtLXdpdGhvdXQtb3BhcXVlLXR5cGVzCgptc2xpZmNhayAxNiBOb3YgOTkgMDM6MzY6MDkKICAgIEZpeCBzcGVsbGluZyBtaXN0ZWFrLgoKbmJhIDE2IE5vdiA5OSAwNjoyMToyNQogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYzogcmVkbyB0aGUgc25tcHRyYW5zbGF0ZSBvcHRpb25zCiAgICAJdG8gZm9sbG93IHRoZSBjb21tb24gb3B0aW9uIHNldC4gSXNzdWUgd2FybmluZ3Mgd2hlbiBzb21lb25lCiAgICAJdXNlcyB0aGUgb2xkIGZvcm0sIGFkdmlzaW5nIGFib3V0IHRoZSBuZXcuCgptc2xpZmNhayAxNiBOb3YgOTkgMDg6NDg6MzEKICAgIEVtYnJhY2UgYWxsIEhQLTkwMDAvNnh4LDd4eCwgOHh4IHNlcmllcyBwbGF0Zm9ybXMsIHdpdGhvdXQgcmVncmV0cy4KCmRhdmVzIDE2IE5vdiA5OSAwOToxMzo1OQogICAgLSAoc25tcGxpYi9hc24xLmMpOiBGaXggZW5jb2Rpbmcgb2Ygcm9vdCBPSURzLgoKaGFyZGFrZXIgMTYgTm92IDk5IDEwOjI0OjU5CiAgICAtIChwcm90b2NvbC5jKTogYWRkIHRoZSBoZWFkZXIgbGVuZ3RoIHRvIHRoZSBwYWNrZXQgbGVuZ3RoIGVzdGltYXRlLgoKaGFyZGFrZXIgMTYgTm92IDk5IDEwOjI2OjAyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCB0aGUgVDogZmxhZyBmb3IgLVQgdG8gZ2V0b3B0Cgptc2xpZmNhayAxNiBOb3YgOTkgMTQ6NDE6NTAKICAgIE1TVkMgdG91Y2h1cHM6CiAgICBBZGRlZCBzbm1wdHJhcGQgcHJvamVjdCAuRFNQIGZpbGU7IEFsbCAuRFNbUFddIGZpbGVzIENSLUxGIGxpbmUgdGVybWluYXRlZDsKICAgIEZpeCB3YXJuaW5ncyBpbiBhc24xLmMgYW5kIHNubXBfYXBpLmM7IFJlbW92ZSB1bnVzZWQgdmFyIGluIHNubXB0cmFuc2xhdGUuYy4KCm1zbGlmY2FrIDE2IE5vdiA5OSAxNDo1Njo1OQogICAgQnVpbGQgd2l0aCBnZXRvcHQuCgptc2xpZmNhayAxNyBOb3YgOTkgMDU6NTk6MTUKICAgIFJlcGxhY2UgdV9pbnQxNl90IHdpdGggbW9yZSB1bml2ZXJzYWxseSBzdXBwb3J0ZWQgdV9zaG9ydC4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNzozNTowMwogICAgUHJvamVjdCBmaWxlIGZvciBidWlsZGluZyBzbm1wYnVsa2dldCB1c2luZyBNU1ZDKysgZ3JhdGlzIFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNzozNjo1OAogICAgQWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwcyB0byBidWlsZC4KCmhhcmRha2VyIDE3IE5vdiA5OSAxMTo1NTo0MQogICAgLSAoZHNfYWdlbnQuaCwga2VybmVsLmMsIHNubXBkLmMsIHNubXBkLjEuZGVmKToKICAgICAgLSBydW4gdGltZSByb290bGVzcyBydW5uaW5nIHN1cHBvcnQgZm9yIHNubXBkLCBieSByZXFlc3Qgb2YgSm9lLiAoLXIpCgpoYXJkYWtlciAxNyBOb3YgOTkgMTI6MjE6MjYKICAgIC0gKHNubXB0b3NxbCk6CiAgICAgIC0gbW92ZSB0byBOZXQ6OlNNVFAuCiAgICAgIC0gTWFrZSBuZXcgYXV0aGdyb3VwIGFuZCBhdXRoaG9zdCB0YWJsZXMgdG8gY29udGFpbiBTTk1QOjpTZXNzaW9uIGRlZmF1bHRzLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA1OjAwCiAgICAtIChjb25maWd1cmUuaW4pOiB1cGRhdGUgdGhlIHNvIExEIGZvciBsaW51eCB0byAkKENDKS4KCmhhcmRha2VyIDE3IE5vdiA5OSAxMzowODoxNwogICAgLSAoY29uZmlndXJlKTogdXBkYXRlLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA5OjE0CiAgICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiB1cGRhdGUuICBEZWFscyB3aXRoIFJvd1N0YXR1cyBvYmplY3RzIGJldHRlci4KCm5iYSAxNyBOb3YgOTkgMjE6NTE6MTkKICAgIC0gZGVmYXVsdF9zdG9yZS5jOiBkc190b2dnbGVfYm9vbGVhbiBtaXNzZWQgYSBtYXNrCgptc2xpZmNhayAxOCBOb3YgOTkgMTc6NTg6NDcKICAgIENoZWNrLWluIGFnZW50IGNoYW5nZXMgdG8gc3VwcG9ydCBXaW4zMiBhZ2VudCBidWlsdCB3aXRoIE1TVkMrKy4KICAgIFRoYW5rcyB0byBSb2JlcnQgU3RvcnkuCgptc2xpZmNhayAxOCBOb3YgOTkgMTg6MTQ6NTgKICAgIE1vcmUgdG91Y2h1cCBwZXIgTVNWQysrIFdpbjMyIGFnZW50IHdvcmsuCgptc2xpZmNhayAxOCBOb3YgOTkgMTg6MjA6NDUKICAgIE1vcmUgTVNWQysrIFdpbjMyIGFnZW50IGZpbGVzLCBncmF0aXMgUm9iZXJ0IFN0b3J5LgoKZGF2ZXMgMTkgTm92IDk5IDExOjA2OjI2CiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogUHJvdmlkZSBtaXNzaW5nIGluZGV4IGFsbG9jYXRpb24gZGVmaW5lcy4KCmhhcmRha2VyIDE5IE5vdiA5OSAxMzo0NzowMQogICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZml4IG1pYjJjLnN0b3JhZ2UuY29uZi4KCmhhcmRha2VyIDE5IE5vdiA5OSAxNDoyMDoyNQogICAgLSAoc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgIC0gbWFrZSBzbm1wX3NlbGVjdF9pbmZvIHBvc3NpYmx5IGhhbmRsZSBhbGFybSB0aW1lcnMuCiAgICAgIC0gbWFrZSBzbm1wZCB1c2UgdGhlbSBhbmQgY2FsbCBzbm1wX3J1bl9hbGFybXMoKS4KCmhhcmRha2VyIDE5IE5vdiA5OSAxNToyNDoxNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgIGRpc2suYywgZGlzay5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgIC0gbW9uaXRvciBkaXNrIGlub2RlIHBlcmNlbnRhZ2VzLgoKbmJhIDIyIE5vdiA5OSAwNToyNzoxNQogICAgLSBjb25maWd1cmUuaW46IGNvbmZpZ3VyZSB0ZXN0IGZvciBuZXRpbmV0L2lwLmgKCm5iYSAyMiBOb3YgOTkgMDU6Mjg6MDkKICAgICBzbm1wX2xvZ2dpbmcuYzogb25seSB0aW1lc3RhbXAgZWZ0ZXIgYSBuZXdsaW5lCgpuYmEgMjIgTm92IDk5IDA1OjI4OjQ1CiAgICAtIHNubXBkLmM6IHJlaW5zdGF0ZSBzbm1wZCAtYSBmdW5jdGlvbmFsaXR5CgpuYmEgMjIgTm92IDk5IDA1OjI5OjM3CiAgICAtIHBhc3MuYzogcmVtb3ZlIGEgY29uc3QgY2FzdGluZyB3YXJuaW5nCgpuYmEgMjIgTm92IDk5IDA1OjMyOjA1CiAgICAtIElQVjYtVENQLU1JQiwgSVBWNi1VRFAtTUlCLCBpcHY2LmMsIHRjcC5jOiBtb3ZlIHRoZSBJUHY2IHRjcCBhbmQgdWRwCiAgICAJdGFibGVzIHRvIHRoZWlyIHByb3BlciBwb3NpdGlvbiBpbiB0aGUgdHJlZSwgYWNjb3JkaW5nIHRvIHRoZSBSRkMuCgpuYmEgMjIgTm92IDk5IDA2OjU5OjQ2CiAgICAtIGlwdjYuYzogdXBncmFkZSB0byB0aGUgY3VycmVudCBLYW1lIHBhdGNoCgpuYmEgMjIgTm92IDk5IDA3OjE2OjU5CiAgICAtIGlwdjYuYzogc29tZSBtb3JlIEFOU0kgcHJvdG90eXBlcwoKZGF2ZXMgMjIgTm92IDk5IDA3OjMwOjA2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgICBJbmRleCBkZS1hbGxvY2F0aW9uLCBhbmQgQWdlbnRYIGluZGV4IHN1cHBvcnQuCgptc2xpZmNhayAyMiBOb3YgOTkgMDg6MjA6MjkKICAgIFJldHJ5IGFkZCBNU1ZDKysgcHJvamVjdCBmaWxlLgoKbXNsaWZjYWsgMjIgTm92IDk5IDA4OjIxOjU4CiAgICBBZGQgQ1ZTIGlnbm9yZSBsaXN0IGZvciB3aW4zMi9saWJhZ2VudC4KCmhhcmRha2VyIDIyIE5vdiA5OSAwODoyOTozMwogICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAgLSBBZGRlZCBhYmlsaXR5IHRvIHVzZSBNSUIgdG8gcXVlcnkgdGFibGVzIHdpdGggbm9uLXNlcXVlbnRpYWwgY29sdW1uIE9JRHMuCiAgICAgIC0gQWRkZWQgY29kZSB0byBoYW5kbGUgc3BhcnNlIHRhYmxlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAwOTowMDo0NQogICAgLSAodXNtVXNlci5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwgU2xpZmNhay4KCmhhcmRha2VyIDIyIE5vdiA5OSAwOTowNzozNAogICAgLSAoUkVBRE1FKTogYWRkZWQgbW9yZSBwZW9wbGUgdG8gdGhlIHRoYW5rcyBsaXN0LgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjE4OjE1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaG9zdF9yZXMuaCwgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgICAtIGJzZGkgc3VwcG9ydCBmb3IgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYi4KCmhhcmRha2VyIDIyIE5vdiA5OSAwOToyNDo1MQogICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIHRlc3RzIGZvciBuZXcKICAgICAgZXJyb3IgbWVzc2FnZXMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTI6MzA6MDUKICAgIC0gKHZtc3RhdC5jLCB2bXN0YXRfZnJlZWJzZDIuYyk6IHVzZSBoZWFkZXJfZ2VuZXJpYyBub3QgaGVhZGVyX3NpbXBsZV90YWJsZQoKaGFyZGFrZXIgMjIgTm92IDk5IDEyOjQ5OjIxCiAgICAtICh2YWNtX3ZhcnMuYywgcGFzcy5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zLgoKbmJhIDIyIE5vdiA5OSAxMjo1NDowOAogICAgLSAqOiBjaGFuZ2UgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucyB0byBhCiAgICAJY29uc3Qgc3RyaW5nCgpoYXJkYWtlciAyMiBOb3YgOTkgMTM6MDU6MDUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdGNwLmMpOiBQYXRjaAogICAgICBmcm9tIEdhcnJldHQgV29sbG1hbjoKICAgICAgLSBGcmVlQlNEIDQueCBmaXhlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNjo0ODo1NAogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmUgY3JlYXRpb24gb2YgaW5pdGlhbCBhbmQgdGVtcGxhdGUqIHVzZXJzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE2OjUwOjI1CiAgICAtICh2YWNtX3ZhcnMuYywgdXNtVXNlci5jKTogbmV3IGNvbmZpZyB0b2tlbnMgYWxsb3dpbmcgZWFzeSB1c2VyIGFuZAogICAgICB2YWNtL3VzZXIgY29uZmlndXJhdGlvbiBhbmQgc2V0dXAuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTc6MDI6MTEKICAgIC0gKHNjYXBpLmMpOiBmaXggbGVuZ3RoIGNoZWNrIG9mIGtleSBzcGFjZS4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNzo1MjozNgogICAgLSAoUkVBRE1FLnNubXB2Myk6IHVwZGF0ZSB0byByZWZsZWN0IG5ldyBhbmQgZWFzaWVyIC5jb25mIG1lY2hhbmlzbXMuCgpuYmEgMjMgTm92IDk5IDAxOjIzOjE2CiAgICAtIGlwdjYuaDogcmVtb3ZlIGFuIF9fUCB0aGF0IGhhZCBzbmVha2VkIGluCgpuYmEgMjMgTm92IDk5IDAxOjI0OjM3CiAgICAtIElQU0VDLU1JQi50eHQ6IGNoYW5nZSBzb21lIHVuZGVybGluZXMgaW50byBkYXNoZXMsIGFuZCByZXBhaXIgdGhlCiAgICAJOjo9IChtYXliZSBJIHNob3VsZCBoYXZlIGxvb2tlZCBhdCB0aGlzIGZpbGUgYmVmb3JlIGFkZGluZyBpdCA6LSkpCgpuYmEgMjMgTm92IDk5IDAxOjI2OjI2CiAgICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBhcmd1bWVudHMgKGludCA9PiBzaXplX3QpLiBUaGFua3MgdG8KICAgIAlBbnRob255IFNoaXBtYW4gPGFzaGlwbWFuQGVyZ2dyb3VwLmNvbT4KCmRhdmVzIDIzIE5vdiA5OSAwMTozNzoyOQogICAgLSAoaG9zdC9ocl9zd3J1bi5jKTogRml4IGxpbnV4IHByb2Nlc3MgbWVtb3J5IHVzYWdlIGZpZ3VyZXMuCiAgICAJKFJlcG9ydGVkIGJ5IE1pdGNoIFNoaWVsZHMpCgpkYXZlcyAyMyBOb3YgOTkgMDI6MTE6NDMKICAgIC0gKGhvc3QvaHJfc3RvcmFnZS5jIGhvc3QvaHJfc3dydW4uYyk6IEd1YXJkIGFnYWluc3QgY2FsY3VsYXRpb24gb3ZlcmZsb3cKCm5iYSAyMyBOb3YgOTkgMDI6MjA6MTMKICAgIC0gc25tcF9hZ2VudC5jOiAjaW5jbHVkZSA8dW5pc3RkLmg+IGZvciBzZWxlY3QgcHJvdG90eXBlCgpkYXZlcyAyMyBOb3YgOTkgMDU6MjE6NTgKICAgIC0gKHNubXBfYWdlbnQuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgICBNYWtlIG1haW4gc2Vzc2lvbiBzdHJ1Y3R1cmUgdmlzaWJsZSB0aHJvdWdob3V0IHRoZSBhZ2VudCwKICAgICAgIGFuZCB1c2UgdGhpcyBmb3IgQWdlbnRYIHN1YmFnZW50IGFzIHdlbGwuCgpkYXZlcyAyMyBOb3YgOTkgMDU6NDA6MDkKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgICAtIE1ha2UgaW5kZXggcmVnaXN0cmF0aW9uIEFQSSBtb3JlIGltbWVkaWF0ZWx5IGNvbnZlbmllbnQKICAgICAgLSBBc3NvY2lhdGUgc3VjaCByZWdpc3RyYXRpb25zIHdpdGggdGhlIG1haW4gc2Vzc2lvbgogICAgICAtIG5ldyByb3V0aW5lIHRvIHVucmVnaXN0ZXIgYWxsIGluZGV4ZXMgZm9yIGEgZ2l2ZW4gc2Vzc2lvbgogICAgICAtIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBBTlkgaW5kZXggYW5kIE5FVyBpbmRleAogICAgICAtIGNsZWFuIHVwIGFzc29ydGVkIGNvbXBpbGVyIHdhcm5pbmdzCgpoYXJkYWtlciAyMyBOb3YgOTkgMTc6NTE6NDQKICAgIC0gKHNubXB0b3NxbCk6IGZpeCBmcm9tIGFkZHJlc3MgbGluZSwgb3RoZXIgbWlzYyBmaXhlcy4KCmRhdmVzIDI0IE5vdiA5OSAwOTowMzowMAogICAgLSAoYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogUmVsZWFzZSBhbGxvY2F0ZWQgaW5kZXhlcyBvbiBzdWJhZ2VudCBzaHV0ZG93bi4KCmhhcmRha2VyIDI0IE5vdiA5OSAwOTowOTowOAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1c21Vc2VyLmMsCiAgICAgIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIGxjZF90aW1lLmMsIHNjYXBpLmgsIHRvb2xzLmMsCiAgICAgIGtleW1hbmFnZXRlc3QuYywgc2NhcGl0ZXN0LmMsIGNvbmZpZy5oKToKICAgICAgLSBmb3JjZSAtLWVuYWJsZS1kZXZlbG9wZXIgZm9yIENWUyBjaGVja291dHMuCiAgICAgIC0gcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIEtNVC4KCmhhcmRha2VyIDI0IE5vdiA5OSAwOToxNjowMgogICAgLSAoSU5TVEFMTCk6IGNoYW5nZSBlZGl0aW5nIG9mIGNvbmZpZy5oIG5vdGUuCgpoYXJkYWtlciAyNCBOb3YgOTkgMTA6NDM6MDgKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGFsbG93IHNlcGVyYXRpb24gb2YgbWFzayB3aXRoIGJvdGggLiBhbmQgOi4KCm1zbGlmY2FrIDI0IE5vdiA5OSAxMTowNzowNQogICAgRml4IEJVRyM1NyB1c2luZyBtb2RpZmllZCBwYXRjaCBzdXBwbGllZCBieSB6YW55QHRyaXEubmV0LgoKbXNsaWZjYWsgMjQgTm92IDk5IDExOjA3OjQ5CiAgICBGaXggQlVHIzU3IHVzaW5nIDIvMyBvZiBwYXRjaCBzdXBwbGllZCBieSB6YW55QHRyaXEubmV0LgoKbmJhIDI1IE5vdiA5OSAxNDozMjo0NwogICAgLSBzbm1wX2FwaS5jLCBhZ2VudF90cmFwLmMsIHNubXBfYWdlbnQuYywgc25tcF9taWIuaCwgc25tcF9taWIuYzoKICAgIAlmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKCm5iYSAyNSBOb3YgOTkgMTQ6MzM6MTUKICAgIC0gc25tcF9taWIuaDogZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCgpuYmEgMjUgTm92IDk5IDE0OjUyOjU3CiAgICAtIHVzbVVzZXIuYzogbmV3IHVzZXIgaXMgbm90IGFkZGVkIHVubGVzcyBib3RoIGF1dGggYW5kIHByaXYgaXMgc3BlY2lmaWVkCiAgICAJb24gY3JlYXRlVXNlciBkaXJlY3RpdmUKCm5iYSAyNSBOb3YgOTkgMTQ6NTY6MTIKICAgIC0gZGVmYXVsdHNfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9wYXJzZV9hcmdzLmM6IGFkZCBkZWZDb21tdW5pdHkKICAgIAlkaXJlY3RpdmUKICAgIC0gc25tcF9hcGkuaCwgc25tcF9hcGkuYzogYWRkIGVycm9yY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKCm5iYSAyNSBOb3YgOTkgMTQ6NTc6NTcKICAgIC0gbWliLmM6IGtpbGwgeWV0IGFub3RoZXIgc2lsbHkgd2FybmluZyBmcm9tIGdjYwoKbmJhIDI2IE5vdiA5OSAxMToxODoyMwogICAgLSBkZWZhdWx0X3N0b3JlLmM6IGFsdGhvdWdoIHJlYWRfY29uZmlnIGlzIGNhc2UgaW5zZW5zaXRpdmUsIGRzX2hhbmRsZV9jb25maWcKICAgIAl3YXMgbm90LiBBdCB0aGUgc2FtZSB0aW1lIGl0IGZhaWxlZCB0byByZXBvcnQgdGhlIHByb2JsZW0gdGhhdAogICAgCWl0IHdhcyBjYWxsZWQgYnV0IGRpZG4ndCBrbm93IHdoYXQgdG8gZG8uCgptYXJ6IDI3IE5vdiA5OSAwNjozMToxMQogICAgIChhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZml4IC1yIHN3aXRjaCB0byBzdXByZXNzIGVycm9yIG1lc3NhZ2VzIGFib3V0IGZhaWxlZCBrZXJuZWwgYW5kIGFkZCAtciB0byBkZWZhdWx0IHRlc3RpbmcgY29kZSBzbyAnbWFrZSB0ZXN0IGNhbiBiZSBydW4gYnkgdXNlcgoKaGFyZGFrZXIgMjcgTm92IDk5IDA5OjE4OjE1CiAgICAtICh2YWNtX3ZhcnMuYyk6IHJlZG8gcnd1c2VyL3JvdXNlciB0byBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGF1dGggdHlwZS4KCm1zbGlmY2FrIDI5IE5vdiA5OSAwNTo1MDoyNwogICAgTW9yZSBIUC1VWCBhQ0MgZml4ZXMgc3VwcGxpZWQgYnkgTWFya2t1IExhdWtrYW5lbi4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMDozMDo1MQogICAgVXNlIG50b2hzIG1hY3JvIHRvIGNhcmVmdWxseSBvYnRhaW4gdGhlIGRlZmF1bHQgc2VydmljZSBwb3J0LgoKbXNsaWZjYWsgMjkgTm92IDk5IDEwOjMzOjQ1CiAgICBGaXggcmVmZXJlbmNlIHRvIHNubXBsaWIuCgptc2xpZmNhayAyOSBOb3YgOTkgMTA6MzY6NDMKICAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIERFQlVHX01BTExPQ19JTkMgZnJhZ21lbnRzLgoKbXNsaWZjYWsgMjkgTm92IDk5IDExOjU4OjM3CiAgICBGcmVlIFNUUkVBTSBwYWNrZXQgYnVmZmVyIHdoZW4gc2Vzc2lvbiBpcyBjbG9zZWQ7CiAgICBUZXN0IGZvciBjbG9zZSBpbiBwcm9ncmVzcyBmb3IgcmVhZCwgd3JpdGUsIHNlbGVjdCwgYW5kIHRpbWVvdXQgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjkgTm92IDk5IDEyOjQzOjM0CiAgICBVc2Ugc2l6ZV90IGZvciBuYW1lX2xlbiBtZW1iZXIuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDI6MDgKICAgIC0gKHN5c3RlbS5jLCBzeXN0ZW0uaCk6IGltcGxlbWVudCBzdHJjYXNlc3RyIChmcm9tIE1pY2hhZWwgU2xpZmNhaykuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDI6NTAKICAgIC0gKHBhcnNlLmMpOiBtYWtlIGJlc3QgbWF0Y2hpbmcgKC1iKSB1c2UgcmVnZXggd2hlbiBhdmFpbGFibGUuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDM6NDkKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIHJlZ2V4LmgsIHJlZ2NvbXAsIHN0cmNhc2VzdHIuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDQ6MDkKICAgIC0gKFJFQURNRSk6IGFub3RoZXIgbmFtZS4KCm5iYSAzMCBOb3YgOTkgMDM6MDE6MzQKICAgIC0gc25tcF9hcGkuaCwgc25tcF9taWIuW2NoXTogQSBjb3VwbGUgYWRkaXRpb25hbCBTTk1QIHN0YXRpc3RpY3MgcG9pbnRzCgpkYXZlcyAzMCBOb3YgOTkgMDc6MDc6MDEKICAgIC0gKGFnZW50eC9tYXN0ZXIuYyk6IFJlbW92ZSByZWR1bmRlbnQgcm91dGluZS4KCmRhdmVzIDMwIE5vdiA5OSAwNzowODo0MwogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaGFuZGxpbmcgb2YgbXVsdGktdmFyaWFibGUgcmVxdWVzdHMgdG8gc3ViYWdlbnRzLgoKbXNsaWZjYWsgMzAgTm92IDk5IDEzOjEwOjQwCiAgICBGaXggLVRkIHVzYWdlIGRlc2NyaXB0aW9uOyB1c2Ugc3dpdGNoIHdoZW4gY3VycmVudF9uYW1lIGlzIE5VTEwuCgptc2xpZmNhayAzMCBOb3YgOTkgMTM6MTE6MTQKICAgIEluY2x1ZGUgY3R5cGUuaAoKaGFyZGFrZXIgMzAgTm92IDk5IDE0OjMwOjMyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jKTogaW1wbGVtZW50IHJlZ2V4IG1hdGNoaW5nCiAgICAgIGV2ZXJ5d2hlcmUuCgptc2xpZmNhayAzMCBOb3YgOTkgMTQ6NDc6MzYKICAgIFVzZSBXZXMnIGNvb2wgbmV3IGdldF93aWxkX25vZGUgbWF0Y2ggbWV0aG9kLgoKbXNsaWZjYWsgMzAgTm92IDk5IDE2OjUwOjQxCiAgICBBZGQgbXVsdGlwbGUgbWF0Y2ggY2FwYWJpbGl0eSB0byBmaW5kX2Jlc3RfdHJlZV9ub2RlLCBhbmQgdXNlIGl0IGluCiAgICBzbm1wdHJhbnNsYXRlIChuZXcgLUIgb3B0aW9uKS4KCm1zbGlmY2FrICAxIERlYyA5OSAwNjo0MDowNwogICAgRXJyb3IgY2hlY2sgYW5kIGZyZWUgcmVzb3VyY2VzIGR1cmluZyByZWdleCBwcm9jZXNzaW5nLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDEwOjM4OjE4CiAgICBQcmV2ZW50IG92ZXJmbG93IG9mIG9iamVjdCBJRCBpbiBnZXRfbW9kdWxlX25vZGUuCiAgICBJbiBmaW5kX2Jlc3RfdHJlZV9ub2RlLCB0cmVhdCByZXN1bHQgZnJvbSByZWN1cnNlZCBjYWxsIHNhbWUgZm9yIG1hdGNoID0gMC4KCm1zbGlmY2FrICAxIERlYyA5OSAxNTo1NTo1NgogICAgRml4IGJ1ZyAjMTEyIGFuZCBmaW5pc2ggcGF0Y2ggc3VwcGxpZWQgYnkgQW50aG9ueSBTaGlwbWFuLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDE2OjMyOjE0CiAgICBVc2UgU05NUF9NQVhCVUYgd2hlbiBkZWZpbmluZyBsYXJnZSBzdGF0aWMgYnVmZmVyIHN0b3JhZ2UuCgpuYmEgIDIgRGVjIDk5IDA0OjQxOjU1CiAgICAtIG1pYi5jOiBhY2Nlc3NpbmcgYW5kIGZyZWVlaW5nIGVudl92YXIgbWlzcGxhY2VzIGFyb3VuZCBOVUxMIHRlc3QKCm5iYSAgMiBEZWMgOTkgMDQ6NDI6NTcKICAgIC0gc25tcHRyYXBkLmM6IGZpeCBzbm1wX2Nsb25lX3BkdTIgYnkgdXNpbmcgdGhlIHNubXBsaWIgdmVyc2lvbgoKbmJhICAyIERlYyA5OSAwNTowNjo1NQogICAgLSB1c21Vc2VyLmMgc25tcHYzLltjaF06IG1vdmUgdXNtX3BhcnNlX2NyZWF0ZV91c21Vc2VyIGZyb20gdGhlIGFnZW50CiAgICAgCXRvIHRoZSBsaWJyYXJ5LCBzbyB0aGF0IHNubXB0cmFwZCBjYW4gdXNlIGl0LgoKbXNsaWZjYWsgIDIgRGVjIDk5IDA5OjIxOjQ1CiAgICBGaXggYnVnICM4MSAtIGNvbnRpbnVlIGluc3RhbGwgYWZ0ZXIgZXJyb3IgY3JlYXRpbmcgcGVyc2lzdGVudCBkaXJlY3RvcnkuCgpoYXJkYWtlciAgMiBEZWMgOTkgMTY6NTk6NTUKICAgIC0gKHBhcnNlLmMpOiB0dXJuIG9uIFJFR0VYX0VYVEVOREVELgoKbmJhICAzIERlYyA5OSAxNTowMzo0OAogICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdCBoYW5kbGluZyBvZiBTSUdIVVAgdHAgcmVjb25maWd1cmUuCgpuYmEgIDMgRGVjIDk5IDE1OjA0OjE2CiAgICAtIHNubXB0cmFwZF9oYW5kbGVycy5jOiBhIGxpdHRsZSBuaWNlciBlcnJvciBtZXNzYWdlCgpuYmEgIDMgRGVjIDk5IDE1OjA1OjEzCiAgICAtIHBhcnNlLmM6IHJlbWVtYmVyIHRvIE5VTEwgYSBmcmVlZCBwb2ludGVyCgpoYXJkYWtlciAgMyBEZWMgOTkgMTY6NTE6NDMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3dpdGNoIHRvIFBJQyBmcm9tIHBpYy4KCmhhcmRha2VyICAzIERlYyA5OSAxNjo1MjoxNgogICAgLSAoTWFrZWZpbGUuaW4pOiB1c2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UuCgpoYXJkYWtlciAgMyBEZWMgOTkgMTY6NTI6NTEKICAgIC0gKHZtc3RhdC5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBsaW1pdHMuaCBpbmNsdWRlLgoKbmJhICA1IERlYyA5OSAyMTo0OTo1MAogICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBlbnN1cmUgcHJvcGVyIGJ5dGUgb3JkZXJpbmcgd2hlbiBwYXNzJ2luZwogICAgCWlwYWRkcmVzcy4KCm1zbGlmY2FrICA2IERlYyA5OSAwOToxOTowOAogICAgU2hvdyBhbGwgbm9uLXByaW50YWJsZSBzdWJpZHMgaW4gZHVtcF9vaWRfdG9fc3RyaW5nLgogICAgUmVjdXJzZSBjbGVhcl90cmVlX2ZsYWdzIG9ubHkgaWYgbmVjZXNzYXJ5LgoKaGFyZGFrZXIgIDYgRGVjIDk5IDEzOjQ3OjQxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGRlZmF1bHQgc3BlY2lmaWNhdGlvbnMgZm9yIGF1dGgvcHJpdiB0eXBlcy4KCmhhcmRha2VyICA2IERlYyA5OSAxMzo1MTozNAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwcmludCBlcnJvciBzdHJpbmdzIHJldHVybmVkIGJ5IGdlbmVyYXRlX0t1KCkuCgpuYmEgIDYgRGVjIDk5IDE0OjMyOjIyCiAgICAtIC5jdnNpZ25vcmU6IE1ha2UgQ1ZTIHNpbGVudCBhYm91dCBpbnN0YWxsYXRpb24gZmlsZXMKCmhhcmRha2VyICA2IERlYyA5OSAxNDo0ODowOAogICAgLSAoc25tcHVzbS5jKToKICAgICAgLSBtYWtlIHNubXB1c20gdXNhYmxlIGFnYWluLCBjaGFuZ2luZyBhcmd1bWVudHMgc2xpZ2h0bHkuCiAgICAgIC0gbWFrZSBpdCBhbHNvIHVzZSBkZWZhdWx0cyBmb3IgcGFzc3BocmFzZXMsIHVzZXIsIGV0Yy4KCmhhcmRha2VyICA2IERlYyA5OSAxNDo1NjoyMQogICAgLSAoU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKTogbWFrZSB2MyB0ZXN0aW5nIHdvcmsgYWdhaW4uCgpoYXJkYWtlciAgNiBEZWMgOTkgMTQ6NTg6MjgKICAgIC0gKHNubXB1c20uYyk6IGZpeCB1c2FnZSBmb3IgbmV3IGFyZ3MuCgptc2xpZmNhayAgNiBEZWMgOTkgMTU6MDk6NTMKICAgIENvbnZlcnQgVVNNX0VSUiogdG8gU05NUEVSUl9VU00qLgoKbmJhICA2IERlYyA5OSAxNToxMzoyMQogICAgLSBzeXN0ZW0uYywgY29uZmlnLmgsIHdpbjMyLmRzdywgKi5kc3AsIGxpYnNubXAuZGVmOiBjbGVhbmluZyB1cCBmb3IgVkMgYnVpbGRzCgptc2xpZmNhayAgNiBEZWMgOTkgMTY6MzE6MjYKICAgIE1vcmUgZnVuIHVwZGF0aW5nIE1TIFZDIGJ1aWxkIG9mIGFwcHMgYW5kIGxpYnJhcnkuCgptc2xpZmNhayAgNyBEZWMgOTkgMDg6MDM6MDYKICAgIFVzZSBhcmd2WzBdIHNpbmNlIHRoZSBhcHAgd29udCBiZSBzbm1wZ2V0bmV4dCwgcHJvYmFibHkuCgpkYXZlcyAgNyBEZWMgOTkgMDg6Mjk6NTUKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0gYWdlbnQvc25tcGQuW2NoXQogICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5bY2hdIHNubXBsaWIvc25tcF9hcGkuYyk6CiAgICAgICAtICBVc2UgdGhlIHNhdmVkIGFwcGxpY2F0aW9uIG5hbWUgZm9yIHJlZ2lzdGVyaW5nIGNvbmZpZyBoYW5kbGVycwogICAgCShOLkI6IFRoaXMgY2hhbmdlIHdpbGwgbmVlZCB0byBiZSBhcHBsaWVkIHRvIE1JQiBtb2R1bGVzIGFzIHdlbGwpCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MTQ6MzAKICAgIC0gKGhyX290aGVyLmMpOiBzaG9ydGVuIGNwdSBkZXNjcmlwdGlvbiBsZW5ndGguCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MTc6NDEKICAgIC0gKHN5c09SVGFibGUuYyk6IG1ha2Ugc3lzT3JJbmRleCBub3QtYWNjZXNzaWJsZSwgYXMgaXQgc2hvdWxkIGJlLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDA5OjMyOjAyCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gY29udmVydCB0byBTTUl2MiBhbmQgY2xlYW51cC4KCmhhcmRha2VyICA3IERlYyA5OSAxMzo0NTo1OQogICAgLSAoc25tcHdhbGsuYyk6CiAgICAgIC0gTmV3IGFiaWxpdHkgdG8gcGVmb3JtIGEgZ2V0IG9uIHRoZSByZXF1ZXN0ZWQgT0lEIHdoZW4gZWl0aGVyIG5vCiAgICAgICAgcmVzdWx0cyBhcmUgcmV0dXJuZWQgb3Igd2hlbiB0aGUgdXNlciByZXF1ZXN0cyBhbiBpbmNsdXNpdmUgb3B0aW9uLgogICAgICAtIE5ldyBhYmlsaXR5IHRvIHByaW50IG51bWJlciBvZiB2YXJpYWJsZXMgZm91bmQgYXQgdGhlIGVuZC4KCmhhcmRha2VyICA3IERlYyA5OSAxMzo1NDoxMQogICAgLSAoc25tcHdhbGsuMSk6IGRvY3VtZW50IC1DaSBhbmQgLUNwIChiYWRseSkuCgptc2xpZmNhayAgNyBEZWMgOTkgMTU6MjM6NDQKICAgIEVsaW1pbmF0ZSBtdWx0aXBseWluZyBieSBzaXplb2YoY2hhcikgb3Igc2l6ZW9mKHVuc2lnbmVkIGNoYXIpOwogICAgYWdlbnR4L2NsaWVudC5jIC0gc25tcF9mcmVlX3ZhcmJpbmQgcmVwbGFjZXMgZnJlZSBpbiBmb3VyIHBsYWNlczsKICAgIHNubXB2My91c21Vc2VyLmMgLSB1c21fZnJlZV91c2VyIHJlcGxhY2VzIGZyZWUgaW4gb25lIHBsYWNlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDA5OjE5OjA4CiAgICAtIChtaWIuYyk6IHJlZ2lzdGVyIGEgY29uZmlnIHRva2VuIGZvciBzdWZmaXggcHJpbnRpbmcuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTQ6MDg6MjAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIG1ySW5kZXggSU1QTElFRCBzaW5jZSBpdCBpcyBpbiB0aGUgY29kZS4KCmhhcmRha2VyICA4IERlYyA5OSAxNDo0MTo1MwogICAgLSAobWliLmMpOiBmaXggLU9zIGFuZCBpbmRleCBiYXNlZCBvaWQgcHJpbnRpbmcgdG8gd29yayBhZ2Fpbi4KCm1zbGlmY2FrICA4IERlYyA5OSAxNTowMToyMAogICAgSW5jbHVkZSBnZXRvcHQuaCB0byBkZWZpbmUgb3B0YXJnLgoKbXNsaWZjYWsgIDggRGVjIDk5IDE1OjA0OjU0CiAgICBBZGQgbWlzc2luZyBkc2tQZXJjZW50Tm9kZSB0byBEc2tFbnRyeSAodGhhbmtzIHRvCiAgICAgICAgICAgICBNaWNoYWVsIEtpcmtoYW0gPHN1cHBvcnRAaXdsLmNvbT4pLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjIzOjA3CiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgIC0gcmVtZW1iZXJlZCBJTVBMSUVEIGluZGV4ZXMuCiAgICAgIC0gcHJvcGVybHkgcHJpbnQgT0lEcyB3aXRoIGxlbmd0aCBwcmVmaXhlcyBvbiBwYXJzZWQgT0lEcyBzbwogICAgICAgIGN1dHRpbmcvcGFzdGluZyBvZiB0aGVtIHdvcmtzLgogICAgICAtIHByb3Blcmx5IHByaW50IHN0cmluZ3MgYW5kIG9pZHMgdGhhdCBhcmUgSU1QTElFRC4KICAgICAgLSBwcmludCBzdHJpbmdzIGluIGVpdGhlciAnIG9yICIgcXVvdGVzIGRlcGVuZGluZyBvbiBpZiB0aGVpciBJTVBMSUVELgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI2OjUxCiAgICAtIChSRUFETUUpOiBhZGQgSnVlcmdlbi4KCmhhcmRha2VyICA4IERlYyA5OSAxNToyODo1NAogICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICA4IERlYyA5OSAxNToyOTo1MgogICAgLSAoc25tcGQuYyk6IG1vdmUgc3lzL3BhcmFtIG91dCBvZiBpZmRlZiBGRF9TRVQuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6NDc6MDIKICAgIC0gKCouLk1ha2VmaWxlLmluKTogQSByZWFsIG1ha2UgZGVwZW5kIHdpdGggbm8gc3NsIGRlcGVuZGFuY2llcywgZXRjLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjQ5OjMyCiAgICAtIChtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcyk6CiAgICAgIC0gbW92ZSB0aGUgbWFrZSBkZXBlbmQgcGVybCBzY3JpcHRzIHRvIHRoZSB0b3AgbGV2ZWwgd2hlcmUgdGhleSBvbmx5CiAgICAgICAgbmVlZCB0byBiZSBlZGl0ZWQgb25jZS4KCmhhcmRha2VyICA4IERlYyA5OSAxNzoxMzoxNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1hc3Rlci5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgICAtIGltcGxlbWVudCBta2RpcmhpZXIoKSBhbmQgdXNlIGl0IGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UgYW5kIGFnZW50eAogICAgICAgIHNvY2tldCBmaWxlIGNyZWF0aW9uLgoKZGF2ZXMgIDkgRGVjIDk5IDA3OjM0OjAzCiAgICAtIChtYW4vc25tcF90cmFwX2FwaS4zKTogSW5pdGlhbCBkb2N1bWVudGF0aW9uIGZvciBhZ2VudCB0cmFwIGdlbmVyYXRpb24uCgpuYmEgIDkgRGVjIDk5IDA3OjM0OjA4CiAgICAtIG1pYi5jOiBpbXBsZW1lbnQgTUlCOjpsYWJlbAoKbmJhICA5IERlYyA5OSAwNzo0OTozNAogICAgLSBzbm1wY21kLjE6IHN1cHBvcnQgTUlCOjpsYWJlbAoKbXNsaWZjYWsgIDkgRGVjIDk5IDA4OjE0OjU5CiAgICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEp1ZXJnZW4gU2Nob2Vud2FlbGRlci4KCmhhcmRha2VyICA5IERlYyA5OSAxMDowODoyNgogICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKToKICAgICAgLSBmaXhlZCAtLWVuYWJsZS1zaGFyZWQgKGF0IGxlYXN0IG9uIGxpbnV4KS4KCmhhcmRha2VyICA5IERlYyA5OSAxNToyNjoyMwogICAgLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gTGVvbmFyZCBHb21lbHNreToKICAgICAgLSBnZW5lcmF0ZV9LdSgpIHNwZWVkIGltcHJvdmVtZW50cy4KCmhhcmRha2VyICA5IERlYyA5OSAxNjoxNjo0MAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgYWxsIGluc3RhbmNlcyBvZiBrYiB0byBrQi4KCmhhcmRha2VyICA5IERlYyA5OSAxNjo1MzoxNAogICAgLSAoc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZAoKaGFyZGFrZXIgIDkgRGVjIDk5IDE3OjA5OjIzCiAgICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZCBvbiBocHV4CgpuYmEgMTAgRGVjIDk5IDAzOjA2OjE4CiAgICAtIG1hc3Rlci5jOiBhZGQgYSBtaXNzaW5nICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IChhdCBsZWFzdCBmb3IgU29sYXJpcykuCgpuYmEgMTAgRGVjIDk5IDAzOjA3OjA2CiAgICAtIHBhc3MuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCgpuYmEgMTAgRGVjIDk5IDAzOjA5OjMzCiAgICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KCm5iYSAxMCBEZWMgOTkgMDM6MTA6MzAKICAgIC0gcmVhZF9jb25maWcuYzogYWRkIHNvbWUgbWlzc2luZyBjb25zdCBzcGVjaWZpZXJzCgpuYmEgMTAgRGVjIDk5IDAzOjIwOjEwCiAgICAtICh2YXJpb3VzKTogY2hhbmdlcyB0byBjb21waWxlIHNubXBkIHdpdGggVkMrKyA1LjAgKFJlbGVhc2UgbW9kZSkKCm1zbGlmY2FrIDEwIERlYyA5OSAwNzoyODozMwogICAgRml4IHRvIGJ1aWxkIGV4ZWN1dGFibGUgYWdlbnQgb24gSFAtVVguCgptc2xpZmNhayAxMCBEZWMgOTkgMTA6MjM6MzYKICAgIEFwcGx5IERhdmUncyBwYXRjaCB0byBmaXggbWF4IHZhcmJpbmRzIHRlc3Rpbmcgb24gR0VUQlVMSy4KCm1hcnogMTAgRGVjIDk5IDEwOjQ0OjI5CiAgICAgKHNubWxpYi9zbm1wX2FwaS5jKTogZml4IGJ1ZyBpbiBfc2Vzc19jb3B5IHdoZXJlIHBvaW50ZXJzIHRoYXQgd2VyZSBub3Qgb3duZWQgYnkgbmV3bHkgY3JlYXRlZCBzZXNzaW9uIGNvdWxkIGdldCBtaXN0YWtlbmx5IGZyZWVkIGlmIGVycm9ycyB3ZXJlIGVuY291bnRlcmVkIGR1cmluZyBzZXNzaW9uIGNvcHkgLSBhbHNvIGVsaW1pbmF0ZSBzb21lIHJlZHVuZGFudCBjb3B5aW5nIG9mIHNlY3VyaXR5e0F1dGh8UHJpdn1LZXkgZGF0YQoKbXNsaWZjYWsgMTAgRGVjIDk5IDEzOjAzOjU4CiAgICBGaXggSFAtVVggcHJvYmxlbSB3aXRoIGlwRGVmYXVsdFRUTC4KCmRhdmVzIDEzIERlYyA5OSAwMzoxNzo0MQogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEhhbmRsZSBkZWxlZ2F0ZWQgTUlCIHJlZ2lvbnMgcHJvcGVybHkgd2hlbiBzcGxpdC4KCmRhdmVzIDEzIERlYyA5OSAwMzoxODozOAogICAgLSAoYWdlbnRfdHJhcC5jKTogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBlbnRlcnByaXNlIE9JRCB3aGVuIHNlbmRpbmcgdHJhcHMKCmRhdmVzIDEzIERlYyA5OSAwNDo0MzoxNAogICAgLSAoYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguW2NoXSk6CiAgICAgIC0gUGF0Y2ggdG8gZ2V0IFNNVVggc3VwcG9ydCB3b3JraW5nIHdpdGggdGhlIG5ldyBhZ2VudCBhcmNoaXRlY3R1cmUuCiAgICAgICAgVGhpcyBpcyBwcm9iYWJseSBub3QgVGhlIFJpZ2h0IFdheSBUbyBEbyBUaGluZ3MgTm93LCBidXQgaXQgd29ya3MuCiAgICAgICAgVGhhbmtzIHRvIE5pY2sgQW1hdG8gYW5kIE1pa2UgTWljaGF1ZC4KCm1zbGlmY2FrIDEzIERlYyA5OSAwOTo0OToyOAogICAgQWRkZWQgcGF0Y2ggZnJvbSBNLk1pY2hhdWQgdG8gdXNlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMuCgpoYXJkYWtlciAxMyBEZWMgOTkgMDk6NTc6MzcKICAgIC0gKERMTU9ELU1JQi50eHQsIFVDRC1ETE1PRC1NSUIuaW5jLCBVQ0QtRExNT0QtTUlCLnR4dCk6CiAgICAgIC0gSnVlcmdlbnMgcGF0Y2ggdG8gbW92ZSBETE1PRC1NSUIgLT4gVUNELURMTU9ELU1JQiBhbmQgLT4gU01JdjIuCiAgICAgIC0gbW92ZWQgdG8gdGhlIGV4cGVyaW1lbnRhbCB0cmVlLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDEyOjA0OjE1CiAgICBDbGVhbiBhbHNvIHJlbW92ZXMgZ2VuZXJhdGVkIGRlZmF1bHRfc3RvcmUuMy5oIC4KCm1zbGlmY2FrIDEzIERlYyA5OSAxMzo1NDoyNwogICAgU2FuaXR5IGNoZWNrcyBhZGRlZCB0byBfZ2V0X3N5bWJvbC4KCmhhcmRha2VyIDEzIERlYyA5OSAxNDoyMDoxMAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS13aXRoLWVmZW5jZSBpbXBsZW1lbnRlZC4KICAgICAgLSAoZm9yY2VkIGNoZWNraW5nIGZvciAtLWVuYWJsZS1kZXZlbG9wZXIgYW5kIENWUyBjaGVja291dHMpCgptc2xpZmNhayAxMyBEZWMgOTkgMTQ6NTQ6MzEKICAgIEZpeCBwcm9ibGVtIHByaW50aW5nIElNUExJRUQgaW5kaWNlcyBvZiBPQkpFQ1RJRCB0eXBlLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDE1OjEyOjAxCiAgICBGaW5pc2ggc3ltYm9sIGNvbnZlcnNpb24gd2l0aCBudW1lcmljIHdoZW4gc3VidHJlZSBpcyBsZWFmIG5vZGUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTY6MDM6MDAKICAgIEFsbG93IHNwcmludF92YXJpYWJsZSB0byB3b3JrIGV2ZW4gaWYgbm8gTUlCIGZpbGVzIHdlcmUgcmVhZC4KCmhhcmRha2VyIDE0IERlYyA5OSAwODowODowMAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGRlZmF1bHRfc3RvcmUuaCwKICAgICAgbWliLmMsIG1pYi5oKToKICAgICAgLSBhcmd1bWVudCBzaHVmZmxpbmcuLi4KICAgICAgICAtSSBmb3IgaW5wdXQgYXJncyBjcmVhdGVkLCBhbmQgLU9SIG1vdmVkIHRoZXJlLgogICAgICAgIC1JYiBjcmVhdGVkLgogICAgICAgIC1UQiBjcmVhdGVkIGZvciBzbm1wdHJhbnNsYXRlICh3YXMgLUIpLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDA4OjQxOjQxCiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSB1cGRhdGVzLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDE0OjU0OjA5CiAgICAtIChrZXl0b29scy5jKTogcmV2ZXJzZSBnZW5lcmF0ZV9LdSBvcHRpbWl6YXRpb25zLCBhcyB0aGV5IGRvbid0IHdvcmsuCgpoYXJkYWtlciAxNCBEZWMgOTkgMTU6MTk6MzUKICAgIC0gKE1ha2VmaWxlLmluKTogRExNT0QgLT4gVUNELURMTU9ECgpoYXJkYWtlciAxNCBEZWMgOTkgMTY6MDU6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbW92ZSAtbGVmZW5jZSBjaGVjayB1cCB0byBmcm9udCAobGFzdCBpbiBsaW5rKS4KCmhhcmRha2VyIDE0IERlYyA5OSAxNjowNTozNwogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IGdldCBuZXh0IGluIGxpbmsgbGlzdCBiZWZvcmUgZGVsZXRpbmcgcm9vdC4KCm1zbGlmY2FrIDE1IERlYyA5OSAwNDoyMToyNwogICAgSXNvbGF0ZSBhbmQgcmV0b3VjaCBkZXByZWNhdGVkIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA1OjUxOjAwCiAgICBTaGFyZSBrc3RhdCBmZCBpZmYgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyIGlzIGFsc28gY29uZmlndXJlZC4KCmhhcmRha2VyIDE1IERlYyA5OSAwOToxNzowMwogICAgLSAoRXRoZXJMaWtlLU1JQi50eHQsIElQRklMVEVSLnR4dCwgVUNELUlQRklMVEVSLU1JQi5pbmMsCiAgICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gRXZlbiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAxNSBEZWMgOTkgMDk6MTk6MTQKICAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0IFNOTVB2Mi1NMk0tTUlCLnR4dCApOiByZW1vdmVkLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA5OjQyOjQ0CiAgICBSZW1vdmUgc25tcF9sb2dfc3lzbG9nLCBzbm1wX2xvZ19maWxlbG9nLCBzbm1wX2xvZ19zdGRlcnJsb2c7CiAgICBTaW1wbGlmeSBzbm1wX2xvZ19zdHJpbmcuCgptc2xpZmNhayAxNSBEZWMgOTkgMDk6NTY6MjQKICAgIEFkZCB0aW1lIG1hcmtlciBjcmVhdGUsIHNldCwgYW5kIGRlbHRhIHRpbWUgY2hlY2sgbWV0aG9kcy4KCm1zbGlmY2FrIDE1IERlYyA5OSAxMTowODoxOQogICAgUmVwbGFjZSBrYyBmcm9tIG1lbW9yeV9zb2xhcmlzMi5jIHdpdGgga3N0YXRfZmQsIGRlZmluZWQgaW4ga2VybmVsX3N1bm9zNS5jLgoKbmJhIDE2IERlYyA5OSAyMzowNTo0NwogICAgLSBrZXJuZWwuYzogb3V0cHV0IGVycm9yIHN0cmluZywgbm90IG51bWJlcgoKbmJhIDE2IERlYyA5OSAyMzowNjo1OAogICAgLSBzbm1wZC5jOiBcbiB0ZXJtaW5hdGUgc29tZSBsb2cgbWVzc2FnZXMKCm5iYSAxNiBEZWMgOTkgMjM6MDg6MDIKICAgIC0gc211eC5bY2hdOiBmaXggc29tZSBwcm90b3R5cGVzIGFuZCBpbmNsdWRlcy4KCm5iYSAxNiBEZWMgOTkgMjM6MDg6NTQKICAgIC0gc25tcHRyYW5zbGF0ZS5jOiBiZSBleHBsaWNpdCBpbiB0aGUgLXQgd2FybmluZwoKbmJhIDE2IERlYyA5OSAyMzowOTo0MgogICAgLSBtaWIuYzogZml4IGEgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24gcHJvYmxlbSBwcmludGluZyBvaWRzCgpuYmEgMTYgRGVjIDk5IDIzOjEwOjMxCiAgICAtIHNubXB2My5jOiBhIG1vcmUgc3BldmlmaWMgaGVscCBtZXNzYWdlIGZvciBkZWZWZXJzaW9uCgpuYmEgMTcgRGVjIDk5IDAyOjA4OjE3CiAgICAtIG1pYi5jOiBraWxsIHRoYXQgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24sIGl0IGp1c3QgYWRkcyB0b28gbWFueQogICAgCWNvbmRpdGlvbmFscy4gUHJvcGVybHkgb3V0cHV0IGFuIGVtcHR5IHN0cmluZyBpbmRleC4KCm5iYSAxNyBEZWMgOTkgMDI6MDk6MTgKICAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIHVzYWdlKCkgY2FsbHMuCgpuYmEgMTcgRGVjIDk5IDAyOjE0OjE4CiAgICAtIHNubXB0YWJsZS5jOiBjbGVhbnVwIG9mIHRoZSAibmV3IiBtaWIgd2FsayB0byBkZXRlcm1pbmUgZmllbGRzLiBNYWtlIGl0CiAgICAJZGVmYXVsdCAoZG9uJ3QgZXZlbiBkb2N1bWVudCB0aGUgLUMgY29tcGF0aWJpbGl0eSBvcHRpb24pLiBJZ25vcmUKICAgIAlub3QtYWNjZXNzaWJsZSBmaWVsZHMgaW4gdGhlIHdhbGsuCgpuYmEgMTcgRGVjIDk5IDAyOjE4OjMwCiAgICAtIHNubXB0cmFwZC5jOiBtYWtlIHRoZSBvaWRzIGdpdmVuIHRvIHRyYXBkIGhhbmRsZXJzIHByb3Blcmx5IC4wIHRlcm1pbmF0ZWQuCiAgICAJQWRkIGEgU05NUC1DT01NVU5JVFktTUlCOjpzbm1wVHJhcEFkZHJlc3MuMAogICAgCUFkZCBzeXNsb2cgb2YgdjIgdHJhcHMgYW5kIGluZm9ybXMKCm5iYSAxNyBEZWMgOTkgMDM6MjI6MzkKICAgIC0gbGlic25tcC5kZWY6IGFkZCBzb21lIGZ1bmN0aW9uIG5hbWVzCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6MDM6MDkKICAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JIGFuZCAtTyBmbGFncy4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzowNTowOAogICAgLSAoc25tcGNtZC4xKTogbWVudGlvbiB0aGF0IC1JUiBhbmQgLUliIGFyZSBhY3R1YWxseSB1c2VkIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6MTM6MDMKICAgIC0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGEgYnVuY2ggb2YgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoyNjowNQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHJvY29tbXVuaXR5LCByd2NvbW11bml0eSwgcm91c2VyLCByd3VzZXIuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6Mjg6MzQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0aGUgZmlsZSBkaXJlY3RpdmUuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6NDA6NDMKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBjcmVhdGVVc2VyLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjEwOjQyCiAgICAtIChORVdTKTogZmlyc3QgcGFzcyBhdCBjaGFuZ2VzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjExOjAyCiAgICAtIChzZWRzY3JpcHQuaW4pOiBQRVJTSVNURU5UX0RJUkVDVE9SWSB0b2tlbiBhZGRlZC4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxMTozNAogICAgLSAoc25tcGQuYyk6IHJlb3JkZXIgaW5pdCgpIHJvdXRpbmVzIGZvciAtSCB0byBwcmV2ZW50IHNlZ2ZhdWx0aW5nLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE2OjMyCiAgICAtIChNYWtlZmlsZS5pbik6IHB1dCBzbm1wZC5vIGludG8gdGhlIG9iamVjdCBsaXN0LCBhbmQgcmVtb3ZlIGl0IGZyb20KICAgICAgZGlyZWN0IGNvbXBpbGF0aW9uIGluIHRoZSBDQyBsaW5rIGxpbmUuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTc6MDUKICAgIC0gKHVzbVVzZXIuYyk6IGNoYW5nZWQgaGVscCBsaW5lIG9mIGNyZWF0ZVVzZXIgdG8gc2VwZXJhdGUgREVTIHRva2VuCiAgICAgIGZyb20gdGhlIHBhc3NwaHJhc2UuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTc6MjgKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlZCAtUiBmcm9tIHRoZSAtaCBvdXRwdXQuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTg6MjQKICAgIC0gKE5FV1MpOiBzZWNvbmQgcGFzcy4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxODo0MgogICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IHJlLXN0cnVjdHVyZSBiYXNlZCBvbiByZWNlbnQgY2hhbmdlcy4KCm1zbGlmY2FrIDE3IERlYyA5OSAxNDoyMzoyNQogICAgRml4ZWQgYSBmZXcgc3BlbGlsbmcgZXJyb3JzLgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE1OjIxOjM5CiAgICBBZGQgQmlsbCBGdW1lcm9sYSdzIHBhdGNoIGZvciBGcmVlQlNEIDQueCB0byB1c2Ugc3dhcGluZm8uCiAgICBJbmNsdWRlIEZyZWVCU0QgNC54IHNwZWNpZmljIG1lbW9yeSBhbmQgdm1zdGF0IHdoZW4gYnVpbGRpbmcgdGhhdCBhZ2VudC4KCm1zbGlmY2FrIDE3IERlYyA5OSAxNTo0MToxNAogICAgTm8gZHVtbXkgdmFsdWVzIGZvciBGcmVlQlNELCBwbGVhc2UuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTU6NDY6MDgKICAgIC0gKHNubXBfYWxhcm0uYyk6IG1pc3NpbmcgISBvcGVyYXRlciBvbiBzaWduYWwgdGVzdC4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NTo0OAogICAgLSAoTkVXUyk6IG1lbnRpb24gLUkuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTU6NTY6MjcKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jKToKICAgICAgLSBpbmNsdWRlICJzbm1wX2FsYXJtLmgiIGZvciBtaWIgbW9kdWxlcyB0aGF0IG5lZWQgdGhlIGNhbGxiYWNrIGRlZi4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NzoxMAogICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGNvbXBsZXRlbHkgcmVzdHJ1Y3R1cmVkLgogICAgICAtIGRyYXN0aWNseSByZWR1Y2VzIG1lbW9yeSB1c2FnZSBmb3IgbGFyZ2UgZGF0YSBzZXRzICgxLzMpLgoKZGF2ZXMgMjAgRGVjIDk5IDAzOjAxOjQ5CiAgICAtIChhZ2VudHgvUkVBRE1FLmFnZW50eCk6IFVwZGF0ZWQgdG8gZGVzY3JpYmUgY3VycmVudCBzdGF0dXMuCgpkYXZlcyAyMCBEZWMgOTkgMDQ6MTU6NTUKICAgIC0gKGFnZW50X3RyYXAuYyBzbm1wX3ZhcnMuYyBtaWJJSS5bY2hdIG1pYklJLyouYyBtaWJJSS9zeXNPUlRhYmxlLmgpOgogICAgICAtIFVzZSBTTk1QX09JRCBwcmVmaXggZGVmaW5pdGlvbnMgaW4gT0lEIHNwZWNpZmljYXRpb25zLgogICAgICAtIFJlZ2lzdGVyIHRoZSB2YXJpb3VzIE1JQi0yIG1vZHVsZXMgc2VwYXJhdGVseSBpbiBzeXNPUlRhYmxlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDA2OjQzOjQwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEZvcmNlIHNldCB0byAxIGZvciAtRCBzbyBtdWx0aXBsZSBzd2l0Y2hlcyBjYW4KICAgICAgYmUgZ2l2ZW4gKGllLCBkb24ndCB0b2dnbGUgdGhlIHZhbHVlKS4KCmhhcmRha2VyIDIwIERlYyA5OSAwNjo0ODoyNAogICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlZCBrZXJuZWwubyBpbnRvIHRoZSBsaWJ1Y2RhZ2VudCBsaWJyYXJ5LgoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjIzOjI1CiAgICAtIChJUFNFQy1NSUIudHh0KTogcmVtb3ZlZAoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjI1OjE1CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0byBVQ0QtSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjY6MDkKICAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCBhbmQgdXBkYXRlZCBmcm9tIElQRldBQ0MtTUlCLnR4dAoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjMwOjA2CiAgICAtIChVQ0QtSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxMzozMDozNgogICAgLSAoaXBmd2FjYy5jKTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxNTozODozNAogICAgLSAoTWFrZWZpbGUuaW4pOiBJUEZXQUNDLU1JQi50eHQgLT4gVUNELUlQRldBQ0MtTUlCLnR4dAoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjE5OjE4CiAgICAtIChhZ2VudF90cmFwLmMpOiBtYWtlIHVwdGltZSBhIGxvbmcgZm9yIDY0Yml0IGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MjA6MTUKICAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogbWFrZSBhIHRoaW5ncyBzaXplX3QgaW5zdGVhZCBvZiB1X2ludCAoZm9yIDY0Yml0IGNvZGUpLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjIwOjU1CiAgICAtIChzbm1wX2FwaS5jKTogRGlnaXRhbCBVbml4IGhhY2sgZm9yIGJhZCByZWN2ZnJvbSBpbXBsZW1lbnRhdGlvbi4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMTo0NQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIG5vdGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MzI6MjMKICAgIC0gKE5FV1MpOiBtZW50aW9uIFNNSXYyIHVwZGF0ZXMuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MzI6MzcKICAgIC0gKG1pYmluY2wuaCk6IGFkZCBhZ2VudF90cmFwLmgKCmhhcmRha2VyIDIwIERlYyA5OSAxNzozNDozMQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMSApCgpuYmEgMjEgRGVjIDk5IDAyOjM3OjE5CiAgICAtIHNubXBkLmMsIHNtdXguYywgc25tcF9hcGkuYzogdGFrZSBhd2F5IHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KCm5iYSAyMiBEZWMgOTkgMDI6NDE6NDIKICAgIC0gbWVtb3J5X2ZyZWVic2QyLmM6IG1ha2UgaXQgd29yayAoYWdhaW4pIGZvciBGcmVlQlNELTIgOi0pCgpuYmEgMjIgRGVjIDk5IDAyOjQzOjE1CiAgICAtIGhyX3N0b3JhZ2UuYzoga2lsbCBhIGR1bW15IHZhbHVlCgpuYmEgMjIgRGVjIDk5IDA1OjQ2OjIxCiAgICAtIHN5c3RlbS5jOiBuYXVnaHR5LCBuYXVnaHR5IE5pZWxzLCBqdXN0IHJlaW5kZW50aW5nIC4uLgoKbmJhIDIyIERlYyA5OSAwNTo0NzoxMQogICAgLSBzeXN0ZW1fbWliLmM6IHVzZSBzb21lICNkZWZpbmVzIGkgcGxhY2Ugb2YgbnVtYmVycwoKbmJhIDIyIERlYyA5OSAwNTo1ODoxOAogICAgLSB2YWNtIHJvdXRpbmVzOiBhbGlnbm1lbnQgd2l0aCBSRkMgbWlicywgcHJlcGFyaW5nIGZvciB0cmFwIGdlbmVyYXRpb24KICAgIAlhbmQgYSBiZXR0ZXIgaW50ZWdyYXRpb24gd2l0aCB2YXJpYWJsZSB0cmVlIHdhbGtpbmcKCmhhcmRha2VyIDIyIERlYyA5OSAxNToxMjoyNgogICAgLSAobWFzdGVyLmMpOiB1c2Ugc25tcF9zZXNzX29wZW4gZm9yIHRoZSBzZWNvbmQgdHJ5IGF0IG9wZW5pbmcgdGhlCiAgICAgIG1hc3RlciBwb3J0LgoKaGFyZGFrZXIgMjIgRGVjIDk5IDE1OjEzOjA1CiAgICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogaW5jcmVhc2UgbWF4IHZhcnMgdG8gNjQgKHdhcyAxNikuICBJIGhhdmUgYQogICAgICB0YWJsZSB3aXRoIG1vcmUgdGhhbiB0aGF0IG51bWJlciBpbiBjb2x1bW5zLCB3aGljaCBicmVha3Mgc25tcHRhYmxlLgoKaGFyZGFrZXIgMjIgRGVjIDk5IDE2OjMwOjAxCiAgICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAgLSBmaXJzdCBwYXNzIGF0IHZtc3RhdCBzdXBwb3J0IGZvciBzb2xhcmlzLgoKaGFyZGFrZXIgMjMgRGVjIDk5IDA4OjIxOjM3CiAgICAtICh2bXN0YXRfc29sYXJpczIuYyk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgICAtIG5vbiA4MC1jb2x1bW4gd3JhcHBlZCB2ZXJzaW9uLgoKaGFyZGFrZXIgMjggRGVjIDk5IDE1OjQyOjA4CiAgICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogcmVtb3ZlIHRoZSAhIGluIGZyb250IG9mIGluX2Ffdmlldywgd2hpY2ggY2hhbmdlZC4KCmhhcmRha2VyIDMwIERlYyA5OSAwNzo1MTozNgogICAgLSAoc25tcGQuYyk6IHVzYWdlIGxpbmUgb3JkZXIgbWVzc2VkIHVwLCBhcyBwb2ludGVkIG91dCBieSBSb2JlcnQgU3RvcnkuCgptc2xpZmNhayAzMCBEZWMgOTkgMTI6MDA6NTgKICAgIEZpeCBjb21waWxlIGVycm9ycy4KCm1zbGlmY2FrIDMxIERlYyA5OSAwOTozMToxMgogICAgRml4IGJ1ZyAjIDEyMgoKbXNsaWZjYWsgMzEgRGVjIDk5IDA5OjMyOjU4CiAgICBBcHBseSBwYXRjaCBwcm92aWRlZCBieSBTZXJnIFRydXNobmlrb3YgPHNhdEB6bWFpbC5ydT4gZm9yIEFJWCA0LjIuMSBrbmxpc3QKCm1zbGlmY2FrIDMxIERlYyA5OSAxMDoxMToxMgogICAgRml4IGJ1ZyAjMTI1IC0gaW5zZXJ0IHVuZGVyc2NvcmUgaW50byBzdHJ1Y3Qgc25tcF9pcGFkZHIgbWVtYmVyIG5hbWVzLgoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjMzOjE2CiAgICBBdXRvY29uZiBwYXRjaCBjL28gQWxiZXJ0IENoaW4tQS1Zb3VuZyA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjM2OjQ2CiAgICBGaXggd2FybmluZ3Mgb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCgptc2xpZmNhayAzMSBEZWMgOTkgMTI6NDM6NTAKICAgIEZpeCBidWcgIzQ4IDogbm8gc3RyY2FzZWNtcC9zdHJuY2FzZWNtcCBmb3IgU2luaXgKCm1zbGlmY2FrIDMxIERlYyA5OSAxMzoyNzo0NAogICAgQXBwbHkgc29tZSBOZXRCU0QgMS4zLngsIDEuNCBwYXRjaGVzIGMvbyBHcmVhIEEuIFdvb2RzIDx3b29kc0BwbGFuaXguY29tPgoKbmJhICAzIEphbiAwMCAxNToyMzoyMQogICAgLSBFWEFNUExFLmNvbmYuZGVmOiBhZGFwdCB0byBjaGFuZ2VzIGluIHZhbGlkIHZhY20gc3ludGF4CgpuYmEgIDMgSmFuIDAwIDE1OjI2OjA3CiAgICAtIHNubXBfdmFycy5jOiBpbmNsdWRlIGFnZW50X3JlZ2lzdHJ5Lmggb25seSBvbmNlCgpuYmEgIDMgSmFuIDAwIDE1OjI2OjUxCiAgICAtIHNubXBkLmM6IGFkZCBhIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVyCgpuYmEgIDMgSmFuIDAwIDE1OjI3OjI5CiAgICAtIG1pYklJLmg6IGFkZCBwcm90b3R5cGUgZm9yIGluaXRfbWliSUkKCm5iYSAgMyBKYW4gMDAgMTU6Mjg6MjQKICAgIC0gd29tYmF0LltjaF06IGNvcnJlY3QgcHJvdG90eXBlIGZvciB3b21iYXRfcGFyc2VfY29uZmlnCgpuYmEgIDMgSmFuIDAwIDE1OjMwOjI2CiAgICAtIHN5c3RlbS5oOiBhZGQgcHJvdG90eXBlIGZvciBzdHJjYXNlY21wCgpuYmEgIDMgSmFuIDAwIDE1OjMyOjU5CiAgICAtIHBhcnNlLmM6IGZpeCBGaWxlIHZhcmlhYmxlIGJlaW5nIGxlZnQgcG9pbnRpbmcgaW50byB0aGUgc3RhY2suCiAgICAJSWdub3JlIC5pbmRleCBmaWxlIG9uIFdJTjMyIHBsYXRmb3JtCgpuYmEgIDMgSmFuIDAwIDE1OjM0OjIyCiAgICAtIG1pYi5jOiBhbHNvIG5vdGUgVEVYVFVBTCBDT05WRU5USU9OIGluIC1UZCBvdXRwdXQKCm5iYSAgMyBKYW4gMDAgMTU6Mzk6NDAKICAgIC0gc25tcGNtZC4xOiBhZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBsaWNhdGlvbnMKICAgIC0gc25tcHRyYW5zbGF0ZS4xOiBleHBsYWluIC1UIG91dHB1dHMKICAgIC0gc25tcHRyYXBkLmNvbmYuNS5kZWY6IGRlZmFsdCB0cmFwaGFuZGxlciBpcyBpbXBsZW1lbnRlZAoKaGFyZGFrZXIgIDQgSmFuIDAwIDA4OjU4OjI0CiAgICAtIChSRUFETUUsIEZBUSk6IEphcGFuIG1pcnJvciBsb2NhdGlvbiBjaGFuZ2UuCgpoYXJkYWtlciAgNCBKYW4gMDAgMTA6MzM6NTQKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzdHJ1Y3QuaAoKaGFyZGFrZXIgIDQgSmFuIDAwIDEwOjM1OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBkZWFsIHdpdGggYmxvY2tpbmcgYmV0dGVyIGluIHNubXBfYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KCmhhcmRha2VyICA0IEphbiAwMCAxNjoyNzo0NQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTYW5kZXIgU3RlZmZhbm46CiAgICAgIC0gQWRkIC1JL3Vzci9pbmNsdWRlL3JwbSBiZWNhdXNlIG9mIGJhZGx5IHdyaXR0ZW4gcnBtIGhlYWRlciBmaWxlcy4KCm5iYSAgNCBKYW4gMDAgMjI6MTI6MTAKICAgIC0gRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBzbm1wZC5jb25mLjUuZGVmOiByZW1vdmUgYWxsIHRyYWNlcyBvZiBzZWN1cml0eQogICAgCW1vZGVsICJhbnkiIGluICJncm91cCIgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzCgpuYmEgIDQgSmFuIDAwIDIzOjUwOjI3CiAgICAtIHBhcnNlLmM6ICNpZmRlZiBzb21lIHZhcmlhYmxlcyBub3QgdXNlZCB1bmRlciB3aW4zMgoKbmJhICA0IEphbiAwMCAyMzo1MToxMQogICAgLSBzbm1wdHJhcGQuYzogaW1wbGVtZW50IHRyYW5kIGhhbmRsZXJzIGZvciB3aW4zMgoKZGF2ZXMgIDYgSmFuIDAwIDAxOjU4OjU2CiAgICAtIChtaWJncm91cC9taWJJSS5jKTogUmVtb3ZlIHJlZHVuZGFudCBmaWxlCgpoYXJkYWtlciAgNiBKYW4gMDAgMDg6NTc6MzEKICAgIC0gKHV0aWxfZnVuY3MuaCk6IHByb3Blcmx5IHdyYXAgc3RydWN0LmggaW5jbHVkZSBkaXJlY3RpdmUgZm9yCiAgICAgIG5vbi1zb3VyY2UtZGlyZWN0b3J5IGluY2x1ZGUuCgptYXJ6ICA2IEphbiAwMCAxMjo1Njo1MAogICAgdXBkYXRlIHN5bnRheCAoZXhhY3QpCgptYXJ6ICA2IEphbiAwMCAxMzowNzowMwogICAgd2Ugc2hvdWxkIG5vdCBwcmludCB0byBzdGRlcnIgaWYgc3RkZXJyIGxvZ2dpbmcgaXMgZGlhYmxlZCAtIHRoaXMgdGhvd3Mgb2ZmIHRoZSBhbGlnbm1lbnQgb2YgdGVzdCBvdXRwdXQgZm9yICdtYWtlIHRlc3QnIGluIGJvdGggdWNkLXNubXAgYW5kIFBlcmwvU05NUAoKbWFyeiAgNiBKYW4gMDAgMTM6MTQ6MTAKICAgIHVwZGF0ZSBjb25maWcgYWNjZXNzIHN5bnRheCAoZXhhY3QpCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDg6MjgKICAgIC0gKENPUFlJTkcpOiB5MmsgYnVnLgoKaGFyZGFrZXIgIDYgSmFuIDAwIDE1OjA4OjQ4CiAgICAtIChtaWIyYyk6IHJlbW92ZWQgYSBkZWJ1Z2dpbmcgc3RhdGVtZW50LgoKaGFyZGFrZXIgIDYgSmFuIDAwIDE1OjA5OjIwCiAgICAtIChtaWIyYy5jb25mKTogdW5xdW90ZWQgcXVvdGVzIHF1b3RlZC4KCmhhcmRha2VyICA3IEphbiAwMCAwOToyOTowNgogICAgLSAoc25tcF9hZ2VudC5jKTogYmV0dGVyIGhhbmRsaW5nIG9mIHdyaXRlIGZhaWx1cmVzLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDEwOjM4OjQ4CiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogdXBkYXRlIHRvIHY0IEFQSSBzZXQgY29kZS4KCmhhcmRha2VyICA3IEphbiAwMCAxMToyMjo0MAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgIC0gaGFuZGxlIG11bHRpcGxlIHRyYW5zbGF0ZWQgT0lEcy4KCmhhcmRha2VyICA3IEphbiAwMCAxNjoyMTo1MAogICAgLSAodmFjbV92YXJzLmMpOiBwcm9wZXJseSBncm91cCBydy9yb3VzZXJzIGludG8gdXNtIG5vdCB2MS92MmMuCgpuYmEgIDcgSmFuIDAwIDIzOjQzOjEwCiAgICAtIGNvbmZpZ3VyZS5pbjogc29tZSBtaXNzaW5nICJ4IiBpbiB0ZXN0cyBmb3IgLS13aXRoLW9wZW5zc2wgYW5kCiAgICAJLS1kaXNhYmxlLWRldmVsb3BlcgoKbmJhICA4IEphbiAwMCAwMDo1NjozMAogICAgLSBjb25maWd1cmUuaW46IGJ1Z2ZpeCBmb3IgYSBidWdmaXggYnVnCgptc2xpZmNhayAgOCBKYW4gMDAgMTE6NDQ6NTgKICAgIEZpeCBidWlsZCBmb3IgTGludXggUmVkSGF0IDYuMSAoY2FudCBsaW5rIGxpYndyYXAgd2l0aG91dCBsaWJuc2wpLgoKbXNsaWZjYWsgIDggSmFuIDAwIDEyOjA3OjQ0CiAgICBVc2Uga25saXN0IGlmZiBhaXg0IGFuZCBIQVZFX0tOTElTVCBbbm90IGNvbXBsZXRlIHcvbyBjb25maWd1cmUgbW9kc10KCmRhdmVzIDEwIEphbiAwMCAwMTozNzozMgogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkuaCk6IFJlLXJlbW92ZSByZWR1bmRhbnQgcHJvdG90eXBlLgoKZGF2ZXMgMTAgSmFuIDAwIDAyOjMxOjM5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBEaWZmZXJlbnRpYXRlIG1heC1yZXBldGl0aW9uIGFuZCBub24tcmVwZWF0ZXIgZXJyb3JzLgoKZGF2ZXMgMTAgSmFuIDAwIDAzOjA2OjQyCiAgICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBDb3VudCBudW1iZXJzIG9mIHZhcmlhYmxlcyByZXF1ZXN0ZWQvc2V0CgpkYXZlcyAxMCBKYW4gMDAgMDY6MTI6NDAKICAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiBSZS1zdHJ1Y3R1cmUgZ2V0X3VwdGltZSgpIHRvIGNhY2hlIGJvb3QgdGltZS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxMzoxNDowMwogICAgQWxsb3cgTVNWQysrIDUueCB1c2VycyB0byBidWlsZCB1c2luZyB0aGlzIHdvcmtzcGFjZS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxMzoyMTozMAogICAgUXVhbGlmeSB1c2Ugb2Ygd2l0aHZhbCB0byBkZWZpbmUgbGlicmFyeSBhbmQgaW5jbHVkZSBzZWFyY2ggcGF0aHMuCgptYXJ6IDEwIEphbiAwMCAxNDoyMToxNAogICAgQ2hlY2tpbmcgaW4gU05NUC0zLjEuMGIxCgptYXJ6IDEwIEphbiAwMCAxNDozNDo1MAogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAxMCBKYW4gMDAgMTQ6NDA6MDQKICAgIGFkZCBtaWJsb2FkCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6MzY6MTgKICAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3RkbGliLmggYW5kIG1hbGxvYy5oLgoKaGFyZGFrZXIgMTAgSmFuIDAwIDE1OjM2OjQwCiAgICAtIChTdjNjb25maWcpOiByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlLgoKaGFyZGFrZXIgMTAgSmFuIDAwIDE1OjM4OjQ0CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG1ha2UgLS13aXRob3V0LWVmZW5jZSB3b3JrLgogICAgICAtIGNoZWNrIGZvciAtbG5zbCBtb3JlIGV4cGxpY2l0bHkuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzA6NTEKICAgIHVjZERlbW9QdWJsaWMuYyAtIHJlbW92ZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBmcm9tIHdyaXRlIG1ldGhvZC4KICAgIHNubXBfdmFycy5jICAgICAtIHByb3BlciBvaWQgY29tcGFyZTsgbm8gY29weSBmcm9tIHNhdmUgaWYgb2lkcyBleGFjdCBtYXRjaAogICAgc25tcGQuYyAgICAgICAgIC0gdGVybWluYXRlIHN0YXRlbWVudC4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMToxNgogICAgc25tcHRyYW5zbGF0ZS4xICAgLSByZW1vdmUganVuayBsaW5lLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMxOjM4CiAgICBzbm1wdHJhbnNsYXRlLmMgIC0gc2ltcGxlIGRlZmF1bHQgY2FzZS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMjowOAogICAgc25tcF9hcGkuYyAgICAtIGJldHRlciBjb21tZW50IGZvciBzbm1wX29pZF9jb21wYXJlLgogICAgcmVhZF9jb25maWcuYyAtIHJlbW92ZSBzaXplb2YodV9jaGFyKSBmcm9tIG1hbGxvYyBzaXplIGNhbGMuCiAgICBzY2FwaS5oICAgICAgIC0gc3BlbGwgY2hlY2suCgptc2xpZmNhayAxMSBKYW4gMDAgMDE6MzM6NDUKICAgIFRyb2xsaW5nIGZvciBtYWxsb2MgZXJyb3JzOyBtb3JlIGdyYWNlZnVsIGRlZ3JhZGF0aW9uLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDAxOjUzOjA4CiAgICBHbGVhbiByZWZzIHRvIG1pYklJLm8gZnJvbSB0aGlzIG1ha2VmaWxlLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDA3OjQ0OjUwCiAgICBBZGQgSU5fVUNEX1NOTVBfU09VUkNFIHRvIG5vdCBicmVhayBXaW4zMiBidWlsZHMuCgptc2xpZmNhayAxMSBKYW4gMDAgMDc6NTk6MjMKICAgIEtlZXAgd2luMzIgcmVsZWFzZSBidWlsZCBmcm9tIGJyZWFraW5nLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDA4OjEwOjEwCiAgICBJbml0IGZpbGUgY291bnQgYXQgemVybywgbm90IGJ5IGluY3JlbWVudGluZyByYW5kb20gdmFsdWUuCgptc2xpZmNhayAxMSBKYW4gMDAgMDk6MTM6MzgKICAgIFJlc3RvcmUgbWVtZHVwIHVzYWdlIHRvIGl0cyBmb3JtZXIgbHVzdGVyLgoKbWFyeiAxMSBKYW4gMDAgMTA6Mzc6MjEKICAgIHJlbW92ZSBiYWQgc2Vzc2lvbiB0ZXN0IC0gc2Vzc2lvbi50IGhhcyBpdCBhbHJlYWR5IC0gbm90ZSB0aGUgY2FsbCB0byBnZXRob3N0YnluYW1lIGNhbiBoYW5nIGZvciBzb21lIHRpbWUgaWYgRE5TIGlzIG5vdCBzZXR1cCBjb3JyZWN0bHkgLSBhbnlvbmUga25vdyBhIHdheSBhcnJvdW5kIHRoaXM/Cgptc2xpZmNhayAxMSBKYW4gMDAgMTU6MDU6MDkKICAgIFVzZSBDRkxBR1Mgd2hlbiBsaW5raW5nIChjb3VsZCBoYXZlIHByb2ZpbGUgc3dpdGNoLCBldGMpLgoKaGFyZGFrZXIgMTIgSmFuIDAwIDExOjE2OjI3CiAgICAtIChzbm1wdjMuYyk6IGNhc3QgbWFsbG9jIHJldHVybnMuCgptc2xpZmNhayAxMiBKYW4gMDAgMjE6MDk6NDcKICAgIFVzZSBERUJVR01TR09JRCBsaWJlcmFsbHksIHJlcGxhY2luZyBzcHJpbnRfb2JqaWQ7IHNtYWxsIHNwZWVkdXAuCgpkYXZlcyAxMyBKYW4gMDAgMDI6NDY6NDcKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogUmVtb3ZlIGV4dHJhbmVvdXMgYnJhY2tldC4KCm1zbGlmY2FrIDEzIEphbiAwMCAwNTozNjoyMQogICAgTm8gZ2V0X2Jvb3R0aW1lIHN1cHBvcnQgZm9yIGN5Z3dpbiAoeWV0KS4gSG9wZWZ1bGx5IGEgdGVtcG9yYXJ5IGNvbmRpdGlvbi4KCmRhdmVzIDEzIEphbiAwMCAwNjozMTo0NAogICAgLSAoc25tcGxpYi9wYXJzZS5bY2hdKTogVW5sb2FkIE1JQiBtb2R1bGUKICAgIAkoTi5COiBTb21ld2hhdCBzaW1wbGlzdGljIHdpdGggcmVnYXJkIHRvIG11bHRpcGx5LWxvYWRlZCBub2RlcykKCmRhdmVzIDEzIEphbiAwMCAwNjozMzo0MAogICAgLSAoc25tcGxpYi9wYXJzZS5jKTogTW9yZSBjb21wbGV0ZSBoYW5kbGluZyBvZiB1bmxvYWRpbmcgTUlCIG1vZHVsZXMuCgptc2xpZmNhayAxNCBKYW4gMDAgMDk6MzM6MzkKICAgIFNtYWxsIGNvbXBpbGUgZml4IGFuZCBkZWJ1ZyBtZXNzYWdlIHJlc3RvcmF0aW9uLgoKaGFyZGFrZXIgMTQgSmFuIDAwIDExOjM0OjI1CiAgICAtIChidWctcmVwb3J0KTogZ3JlcCBmb3IgY29uZmlndXJlIGZsYWdzCgpoYXJkYWtlciAxNCBKYW4gMDAgMTY6MDk6MDkKICAgIC0gKHNjYXBpLmMpOiBpbXBsZW1lbnQgREVTIGVuY3J5cHRpb24uCgpoYXJkYWtlciAxNCBKYW4gMDAgMTY6MTA6MjkKICAgIC0gKE5FV1MpOiByZW1vdmUgZXhwb3J0IGNvbnRyb2wgbm90ZSBhYm91dCBERVMuCgpkYXZlcyAxNyBKYW4gMDAgMDY6MTM6MzkKICAgIC0gKG1hbi9zbm1wdHJhcGQuOCk6IERlc2NyaWJlIGRlZmF1bHQgbG9nZ2luZyBiZWhhdmlvdXIuCgpkYXZlcyAxNyBKYW4gMDAgMDk6MDI6MzIKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRGlzY2FyZCAidG9vLWxhdGUiIHJlc3BvbnNlcyBmcm9tIG92ZXJsYXBwZWQgcmVnaW9ucy4KCm1hcnogMTcgSmFuIDAwIDEyOjQ3OjU4CiAgICBhZGRlZCB2MiB0cmFwCgptYXJ6IDE4IEphbiAwMCAwNzowMDoyNgogICAgbW9kaWZpZWQgZm9yIHYyLXRyYXAuCgptYXJ6IDE4IEphbiAwMCAwNzo1NDoxMgogICAgZml4IGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gdmFscyBmb3IgdHJhcCBmdW5jcywgY2xlYW4gdXAgcGR1Cgptc2xpZmNhayAxOCBKYW4gMDAgMDg6MTQ6NDIKICAgIFByZXZlbnQgYXJyYXkgYm91bmRzIGVycm9yIHdoZW4gY3JlYXRpbmcgc3BlY2lmaWMgdHJhcCBvaWQuCgptc2xpZmNhayAxOCBKYW4gMDAgMTQ6MjM6NDQKICAgIExhdGVzdCB2bXN0YXRfc29sYXJpczIgZnJvbSB0aGUgYXV0aG9yIEpvY2hlbiBLbWlldHNjaC4KCm1zbGlmY2FrIDE4IEphbiAwMCAyMToyMjowNgogICAgQ2xlYW51cCBhcm91bmQgaXA2X3ZhcnMuaCBpbmNsdWRlIChubyAjaWYgMCkKCm1zbGlmY2FrIDE4IEphbiAwMCAyMToyNTo1MwogICAgUmVtb3ZlIGNvbW1lbnRlZCBvdXQgb2JqZWN0cyB0aGF0IGFyZSBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlLgoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjI5OjAxCiAgICAxLk1ha2Ugc25tcF9nZXRfZG9fbG9nZ2luZyB2aXNpYmxlIGZyb20gRExMCiAgICAyLkFwcGx5IFdpbjMyIHBhdGNoIGZyb20gUi5TdG9yeSB0byBhY3RpdmF0ZSBtaWIgc3RhdHMgbW9kdWxlIChzbm1wX21pYikuCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6Mzc6MDIKICAgIENvbnNpc3RlbnQgZ2V0cGFnZXNpemUgKGZpcnN0IGRpdmlkZSBieSAxMDI0KS4KCmRhdmVzIDIwIEphbiAwMCAwNDoyNTowNQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU3VwcG9ydCBzZWxlY3RpdmUgYmluZGluZyBvZiBzZXJ2ZXIgYWRkcmVzc2VzLgoKbXNsaWZjYWsgMjEgSmFuIDAwIDAxOjQ2OjA0CiAgICBSZW1vdmUgcGFydHkgY3J1ZDsgc3BlbGwgY2hlY2suCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDY6NDEKICAgIEFkZCBjb25zdCB0byBjbGVhbnVwIGEgZmV3IHNpZ25hdHVyZXMuCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDk6MzUKICAgIE1pbmltaXplIGRhdGEgaGFuZGxpbmcgYW5kIHVzZSByZWdpc3RlciB2YXJpYWJpZXMgaW4KICAgIHNubXBfb2lkX2NvbXBhcmUgYW5kIGNvbXBhcmVfdHJlZS4KCm1hcnogMjEgSmFuIDAwIDA3OjI3OjEzCiAgICBhZGRlZCB2MyBpbmZvcm0KCm1hcnogMjEgSmFuIDAwIDA4OjAwOjI3CiAgICBpbmZvcm0uCgptYXJ6IDIxIEphbiAwMCAwODoxMzoyNQogICAgaW5mb3JtCgptYXJ6IDIxIEphbiAwMCAxMDo0NzoyNAogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbXNsaWZjYWsgMjEgSmFuIDAwIDExOjE5OjA5CiAgICBjb25maWdfYXJjaF9yZXF1aXJlIHNvbGFyaXMyIHZlcnNpb24gb2Ygdm1zdGF0LgoKbmJhIDIzIEphbiAwMCAwODo1MTozOQogICAgLSBwYXJzZS5jOiBhZGQgc29tZSBtb3JlIGVycm9yIGNoZWNraW5nIHRvIGdldG9pZAoKbmJhIDIzIEphbiAwMCAxMjo0MjoxMQogICAgLSBwYXJzZS5jOiBmaXggbWVyZ2luZyBvZiBhbm9ueW1vdXMgbm9kZXMgd2hlbiB0aGV5IGFyZSBuYW1lZAoKbmJhIDIzIEphbiAwMCAxMjo0Mzo1NAogICAgLSBwYXJzZS5jOiBlcnJlbm91cyA9PiBlcnJvbmVvdXMKCm1hcnogMjMgSmFuIDAwIDE2OjQxOjA2CiAgICBoYW5kbGUgYWRkaW5nIE9QQVFVRSB2YXJzIGZvciBzZXR0aW5nIGFuZCB0cmFwcyBldGMuCgpkYXZlcyAyNCBKYW4gMDAgMDc6MjE6MzQKICAgIC0gKGV4YW1wbGVzL3tleGFtcGxlLHdvbWJhdH0uW2NoXSk6CiAgICAgIC0gQ29uc29saWRhdGVkIGV4YW1wbGUgbW9kdWxlcyBpbnRvIG9uZSwgaW5jbHVkaW5nIGNvbmZpZyBhbmQgU0VUIHN1cHBvcnQuCgptYXJ6IDI0IEphbiAwMCAwODo1OTozMgogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbXNsaWZjYWsgMjQgSmFuIDAwIDA5OjQ0OjQ1CiAgICBNYWtlIHN1cmUga3N0YXRfZmQgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQuCgptc2xpZmNhayAyNCBKYW4gMDAgMDk6NTU6MzIKICAgIEZpeCBCdWcgIzE0NCBpdGVtcyAxLDMsNCA6IGNhc2UgaW5zZW5zaXRpdmUgY2hlY2sgZm9yICJhbGwiIGtleXdvcmQuCgptc2xpZmNhayAyNCBKYW4gMDAgMTA6MDU6MTIKICAgIEl0b2p1bidzIG5ldGJzZCBFTEYgcGF0Y2ggKyByZW1vdmUgd29tYmF0IFtEYXZlJ3MgZXhhbXBsZSBmaXhdCgptc2xpZmNhayAyNCBKYW4gMDAgMTA6MTQ6NTYKICAgIEZpeCBwcmludGluZyBJTVBMSUVEIGluZGV4IChmcm9tIGFzc29jaWF0ZSBvZiBKLiBLbWlldHNjaCkgbW9kaWZpZWQgYW5kIGFwcGxpZWQuCgptYXJ6IDI0IEphbiAwMCAxMDozNjo0MwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAyNSBKYW4gMDAgMDY6NDk6NDMKICAgIHN5bnRheCBmb3Igd2luMzIgYnVpbGQKCm1hcnogMjUgSmFuIDAwIDExOjQ3OjEyCiAgICBhZGQgbWlzc2luZyBzeW5ib2xzIGZvciBwZXJsL1NOTVAgbW9kdWxlCgptYXJ6IDI1IEphbiAwMCAxMjowNTo1OQogICAgYWRkaXRpb25hbCB3aW4zMiBpbnN0YWxsIG5vdGVzCgpuYmEgMjUgSmFuIDAwIDEzOjUyOjQyCiAgICAtIHBhcnNlLmM6IGZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gb2YgdGNfaW5kZXgKCmhhcmRha2VyIDI1IEphbiAwMCAxMzo1NTozMwogICAgLSAodmVzdGludGVybmV0dC9kaXNraW8uW2NoXSk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KCmhhcmRha2VyIDI1IEphbiAwMCAxMzo1NjowMgogICAgLSAoVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KCm5iYSAyNSBKYW4gMDAgMTQ6MTI6NTgKICAgIC0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LCBNYWtlZmlsZS5pbjoKICAgIAlVcGRhdGUgdG8gdGhlIGN1cnJlbnQgZHJhZnQgSE9TVC1SRVNPVVJDRVMgKGRyYWZ0LW9wcy1ob3N0bWliLTAxKQoKaGFyZGFrZXIgMjUgSmFuIDAwIDE0OjQ3OjU5CiAgICAtIChjb25maWd1cmUpOiBoZWxwIHVwZGF0ZQoKaGFyZGFrZXIgMjUgSmFuIDAwIDE0OjUwOjU2CiAgICAtIChzbm1wX2FsYXJtLjMsIHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAgLSBmaXggcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIHRvIGRvIHdoYXQgaXQgc2F5cyBpdCBzaG91bGQgZG8uCgptc2xpZmNhayAyNSBKYW4gMDAgMTk6MzA6NTEKICAgIExhcmdlciBidWZmZXIgZm9yIHByaW50X21vZHVsZV9uYW1lOyBGaXggcG9zc2libGUgbnVsbCBkZXJlZiBpbiBnZXRfdGMuCgptc2xpZmNhayAyNSBKYW4gMDAgMjE6NDY6MTQKICAgIG1pYi5jOnByaW50X3RyZWVfbm9kZSAtIHNob3cgbW9kdWxlIG5hbWUgb25jZSBpbiAtLSBGUk9NOwogICAgcGFyc2UuYzogc2hvdyAiQ2Fubm90IGZpbmQgbW9kdWxlIiBvbmNlIHBlciBtaXNzaW5nIG1vZHVsZS4KCm1zbGlmY2FrIDI2IEphbiAwMCAwNzoxNDo1MAogICAgZml4IGNvbXBpbGUgZXJyb3Igd2hlbiAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MgaXMgdXNlZCAoc3RyYXVzc0BpYnIuY3MudHUtYnMuZGUpCgptc2xpZmNhayAyNiBKYW4gMDAgMDc6MjY6MjIKICAgIEFja25vd2xlZGdlIG1vcmUgY29udHJpYnV0b3JzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDEwOjI0OjIxCiAgICAtIChnZXRWYWx1ZXMucG0pIGdldFZhbHVlcy5wbSB3YXMgbm90ZWQgbWlzc2luZwoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjI5OjU0CiAgICAtIChVQ0QtRElTS0lPLU1JQi5pbmMsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6CiAgICAgIFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIGZpeCB0aGUgZGlza2lvIG1pYiwgY29udmVydCB0byBTTUl2MiwgYW5kIG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMwOjQyCiAgICAtIChVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHByZWZpeCBvaWQgd2l0aCAidWNkIi4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozMTowMAogICAgLSAoVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBwcmVmaXggb2lkcyB3aXRoICJ1Y2QiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMyOjI1CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gY2xlYW4gdXAgYW5kIHJlZm9ybWF0IHN1Yi1yZWdpc3RyYXRpb24gY29tbWVudHMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzQ6MjAKICAgIC0gKFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjb3JyZWN0IHVjZC1zbm1wLWNvZGVycyBlbWFpbCBhZGRyZXNzIHRvIHJlcGxhY2UgImVjZSIgd2l0aCAidWNkLXNubXAiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE2OjA2OjMxCiAgICAtIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAgLSBhZGQgYWJpbGl0eSB0byBhbGxvdyBzZW5kaW5nIHRyYXBzIHRvIHBvcnRzIG90aGVyIHRoYW4gMTYyLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE2OjI4OjIyCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6NTM6NDEKICAgIC0gKHNubXB2My5jKTogZml4IHByaXYga2V5IGxlbmd0aCBleHRyYXBvbGF0aW9uLiAgU2hvdWxkIGJlIGRvbmUgZGlmZmVyZW50bHk/LgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE2OjU0OjQzCiAgICAtIChTdjNERVNjb25maWcsIFQwMjNzbm1wdjNnZXRNRDVERVMpOiBmaXggREVTIHRlc3Qgc28gaXQgd29ya3MuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MTU6MDcKICAgIC0gKHNubXBjbWQuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMSk6CiAgICAgLSBiYWRseSBkb25lIHVwZGF0ZXMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MTg6MTcKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTIgKQoKaGFyZGFrZXIgMjYgSmFuIDAwIDE3OjMyOjQxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFsbG93ICcsJyBzZXBlcmF0ZWQgLS13aXRoLSotbW9kdWxlcyBmbGFnIHZhbHVlcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxOToyMjo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEtY2hhbWVsZW9uLgoKaGFyZGFrZXIgMjcgSmFuIDAwIDA4OjMzOjQzCiAgICAtIChkZWZhdWx0X3N0b3JlLmMpOiBtYWtlIGNvbmZpZyBwYXJzZXIgaGFuZGxlICIiIChudWxsKSBwYXJzZWQgc3RyaW5ncy4KCm1hcnogMjcgSmFuIDAwIDExOjE0OjA5CiAgICByZW1vdmUgbm8tb3Agc25tcF9zeW5jaF9zZXR1cAoKbXNsaWZjYWsgMjcgSmFuIDAwIDE0OjUxOjM5CiAgICAgMS4gRml4IG1lbW9yeSBsZWFrIHdoZW4gYW5vbnltb3VzbHkgbmFtZWQgbm9kZXMgYXJlIHVzZWQuCiAgICAgMi4gSGFjayBhcm91bmQgc21pY25nJ3MgIlNNSSAiIHN0YXRlbWVudHMgdG8gcHJldmVudCBvdGhlciBtZW1vcnkgbGVha3MuCgptc2xpZmNhayAyNyBKYW4gMDAgMTY6MTM6NTgKICAgIFJlbW92ZSBoYWNrIGFyb3VuZCAiU01JIiB0b2tlbjsga2VlcCB0aGUgZ29vZCBwYXJ0IG9mIHRoZSBwcmV2aW91cyBwYXRjaC4KCm1zbGlmY2FrIDI4IEphbiAwMCAwNzoxODowOQogICAgU29tZSB2YXJpYWJsZSByZW5hbWluZyBmb3IgY29uc2lzdGVuY3ksIGVycm9yIGNoZWNraW5nCiAgICBpbXByb3ZlZCwgbWlzc2luZyBzdHJpbmcuaCBpbmNsdWRlZC4gIFBhdGNoIHN1cHBsaWVkIGJ5IGF1dGhvci4KCm1zbGlmY2FrIDI4IEphbiAwMCAxMjozMDoyMAogICAgRml4IHNwZWxsIExJVFRMRV9FTkRJQU4uIFRoYW5rcyB0byB0YWxtYW5AaGl0dC5ubC4KCm1zbGlmY2FrIDI4IEphbiAwMCAxMjozODoyMgogICAgQ2hhbmdlIGFnZW50eF97YnVpbGQscGFyc2V9X3Nob3J0IC4gVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW5AaGl0dC5ubC4KCm1zbGlmY2FrIDI4IEphbiAwMCAxMjo1MjoyNQogICAgVGhpcyB3aXRoIHByZXZpb3VzIHR3byBjaGFuZ2VzIGNvbXBsZXRlcyBhIHBhdGNoIGZvciBpdGVtcyAyLDMsNAogICAgZm9yIGJ1ZyAjMTQ5LgoKbmJhIDMwIEphbiAwMCAwMzowMTo1MgogICAgLSBob3N0Lmg6IGNvbmZpZ19yZXF1aXJlX21pYihIT1NULVJFU09VUkNFUy1UWVBFUykKCm5iYSAzMCBKYW4gMDAgMDM6MDQ6MjIKICAgIC0gaHJfZGlzay5jOiBjb252ZXJ0IHRvIDFrIGJsb2NrcwoKbmJhIDMwIEphbiAwMCAwMzowOTozOAogICAgLSBocl9zdG9yYWdlLmM6IGNvbnZlcnQgZnJvbSBwYWdlcyB0byAxayBibG9ja3MKCm5iYSAzMCBKYW4gMDAgMDM6MTE6MjgKICAgIC0gaWYuYzogZGVmZW5zaXZlIHRlc3QgZm9yIG1pc3Npbmcgb2JqZWN0cyAoaXQgbWlnaHQgZmFpbCB0byBzaG93CiAgICAJZG93biBzdGF0dXMgcHJvcGVybHkpCgptYXJ6IDMwIEphbiAwMCAwODoxOTozNAogICAgY3JlYXRlIFYzIHVzZXIgZW50cnksIGNsZWFudXAKCm1hcnogMzAgSmFuIDAwIDEwOjQyOjM2CiAgICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgICAKICAgIE5vdGU6IEtOT1dOIEJVR1MKICAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCgptYXJ6IDMwIEphbiAwMCAxMDo0NDozNwogICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAgCiAgICBOb3RlOiBLTk9XTiBCVUdTCiAgICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQogICAgCiAgICBub3Qgc3VyZSB0aGF0IHRoaXMgZXZlciB3b3JrZWQgLSB3aWxsIGhhdmUgdG8gbG9vayBhdCBvbGQgT0NURVRTVFIKICAgIGJlaGF2aW91ciBhbmQgc2VlIGhvdyB0byByZWNyZWF0ZSBpdAoKbWFyeiAzMCBKYW4gMDAgMTA6NTg6MDIKICAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgoKZGF2ZXMgMzEgSmFuIDAwIDAxOjA1OjE2CiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogTG9nIGZhaWxlZCBNSUIgcmVnaXN0cmF0aW9ucy4KCmRhdmVzIDMxIEphbiAwMCAwMTo0NToxNQogICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogSW5jbHVkZSBpbnN0YW5jZSBzdWJpZGVudGlmaWVyIGluIHNubXBUcmFwT0lEIGFuZAogICAgCXNubXBUcmFwRW50ZXJwcmlzZSBPSUQgZGVmaW5pdGlvbnMuICAoVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW4pCgpkYXZlcyAzMSBKYW4gMDAgMDI6NDA6MDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFJlc3RvcmUgdHJhZGl0aW9uYWwgc29ja2V0IGZpZWxkIG5hbWVzLgoKZGF2ZXMgMzEgSmFuIDAwIDAzOjAwOjE2CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBJcml4IHNvY2tldCBoYW5kbGluZy4KCmRhdmVzIDMxIEphbiAwMCAwMzowMzoxNQogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAgLSBBdHRlbXB0IHRvIGRldGVjdCBub24tdHJhZGl0aW9uYWwgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIChvbiBJcml4IDYueCkuCgpkYXZlcyAzMSBKYW4gMDAgMDM6MTQ6NTAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEluaXRpYWxpemUgYWRkcmxlbiBpbiBfc2Vzc19yZWFkKCkuICAoRnJhbmsgU3RyYXVzcykKCmRhdmVzIDMxIEphbiAwMCAwMzo0MTowOAogICAgLSAoQUdFTlQudHh0KTogUmV2aXNlZCBhbmQgdXBkYXRlZCB2ZXJzaW9uLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjQ5OjUwCiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgICAtIEltcHJvdmVkIGNoZWNraW5nIGZvciBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1MTo1NAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKTogQXR0ZW1wdCB0byBtaW1pYyBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1Mzo1MgogICAgLSAoc25tcGxpYi9hc24xLmMgc25tcGxpYi9zbm1wLmMgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHVzbS5jKToKICAgICAgLSBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKCmRhdmVzIDMxIEphbiAwMCAwNzo1NTowNgogICAgLSAoc25tcGxpYi9zbm1wdjMuW2NoXSk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAgICAtIE4uQjogVGhpcyBjaGFuZ2VzIHRoZSBpbnRlcmZhY2Ugb2Ygc25tcHYzX2dlbmVyYXRlX2VuZ2luZUlEKCkgc2xpZ2h0bHkuCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTY6MzgKICAgIC0gKGFwcHMvc25tcHRlc3QuYyk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQoKZGF2ZXMgMzEgSmFuIDAwIDA3OjU3OjU2CiAgICAtIChtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLltjaF0pOgogICAgICAtIFByb3ZpZGUgYW4gZXhhbXBsZSBmb3IgaG93IHRvIHRyaWdnZXIgYSB0cmFwLgoKbWFyeiAzMSBKYW4gMDAgMTA6NDE6MTYKICAgIHNldCBEU19MSUJfRE9OVF9CUkVBS0RPV05fT0lEUyB0byBnZXQgcHJldmlvdWxzeSByZWxlYXNlZCBiZWhhdmlvdXIgb2YgZ2V0X3N5bWJvbCB3cnQgb2N0ZXQgYmFzZWQgaW5zdGFuY2UgaWRzIChpLmUuLCBubyBkb3VibGUtcXVvdGluZykKCmRhdmVzICAxIEZlYiAwMCAwMTo0OTo1NQogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlIHNubXBsaWIvc25tcF9hcGkuaCk6CiAgICAgIC0gRml4IGJyb2tlbiBzZXR0aW5nIG9mIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZSBjaG9pY2UuCgpkYXZlcyAgMSBGZWIgMDAgMDM6Mzc6MjUKICAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IHNlc3Npb24gSUQgaGFuZGxpbmcgd2hlbiBkZWxlZ2F0aW5nIHJlcXVlc3RzLgoKZGF2ZXMgIDEgRmViIDAwIDA0OjE5OjE2CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2F0Y2ggY29tbW9uIGludmFsaWQgY29uZmlndXJlIG9wdGlvbnMuCgpkYXZlcyAgMSBGZWIgMDAgMDU6Mjc6MDMKICAgIC0gKEZBUSk6IEV4cGFuZCB0aGUgZGVzY3JpcHRpb24gb2YgZ2VuZXJhdGluZyB0cmFwcyBmcm9tIHRoZSBhZ2VudCBzbGlnaHRseS4KCmhhcmRha2VyICAxIEZlYiAwMCAwODozMjowMwogICAgLSAoZGlza2lvLiopOiBtb3ZlZCB0byB0aGUgdWNkLXNubXAgZGlyZWN0b3J5CgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6MzQ6MDkKICAgIC0gKGRpc2tpby5oKTogbG9hZCB0aGUgbWliLgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjM0OjI0CiAgICAtIChkaXNraW8uYyk6IG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLjE1LgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjQzOjAzCiAgICAtIChORVdTKTogdXBkYXRlIChhZ2FpbikuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6NDU6NDEKICAgIC0gKHNubXBjbWQuMSk6IC5QUCAtPiAuSVAgZm9yIC1PYi4KCmhhcmRha2VyICAxIEZlYiAwMCAwODo0NjowNwogICAgLSAoc25tcHVzbS4xKTogY2hhbmdlZCBjb250ZXh0IHN0cmluZyBpbiBleGFtcGxlcyB0byAiIi4KCm1zbGlmY2FrICAxIEZlYiAwMCAxMToyNjozNgogICAgRml4dXAgbW9yZSBzaWduZWQvdW5zaWduZWQgY29tcGFyaXNvbnMuCgpkYXZlcyAgMiBGZWIgMDAgMDE6MTI6MzcKICAgIC0gKGhvc3QvaHJfZGlzay5jKTogRml4IHNvbGFyaXMgaW5pdGlhbGlzYXRpb24sIHBsdXMgZXh0cmEgZGVidWdnaW5nIGluZm8uCgptc2xpZmNhayAgMiBGZWIgMDAgMDQ6NDQ6MjMKICAgIFJlbW92ZSBkZXBlbmRlbmNpZXMgb24gKG1vdmVkKSB2ZXN0aW50ZXJuZXR0L2Rpc2tpbwoKbmJhICAyIEZlYiAwMCAwNjo0NDozMQogICAgLSBzb2xhcmlzMi44Lmg6IFNvbGFyaXMgOCBzZWVtcyBjbG9zZSB0byBTb2xhcmlzIDcKCm5iYSAgMiBGZWIgMDAgMDY6NDU6MjUKICAgIC0gaHJfZGlzay5jOiBhZGQgTmV0QlNEIHN1cHBvcnQKCmhhcmRha2VyICAyIEZlYiAwMCAwNzoxNzoyOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscAoKZGF2ZXMgIDIgRmViIDAwIDA4OjAyOjQ2CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IENvcnJlY3RseSBoYW5kbGUgaW5kaXZpZHVhbGx5IGV4Y2x1ZGVkIGluc3RhbmNlcwoKbXNsaWZjYWsgIDIgRmViIDAwIDA4OjQyOjE3CiAgICBBbGxvdyAtQ28gdG8gYWZmZWN0IHRoZSBvdXRjb21lLgoKbXNsaWZjYWsgIDIgRmViIDAwIDA4OjUyOjQzCiAgICBmaXggdGhlIGZhdC1maW5nZXJpbmcgcGF0Y2ggSSBqdXN0IG1hZGUuIGZlaC4KCmhhcmRha2VyICAyIEZlYiAwMCAxMDo1MjozMwogICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgTWlsZXM6CiAgICAgIC0gdmFyaW91cyBmaXhlczoKICAgICAgICAxKSBUaGUgZmlyc3QgcmVnaXN0cmF0aW9uIHJlcXVlc3QgY291bGQgYmUgbG9zdC4KICAgICAgICAyKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIG5ldmVyIHJlY2VpdmVkIGEgcmVzcG9uc2UuCiAgICAgICAgMykgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyB3ZXJlIG5vdCBmaW5kaW5nIHRoZSByZWdpc3RyYXRpb24gd2hlbiB0aGUKICAgICAgICAgICBkZWxldGUncyBwcmlvcml0eSB3YXMgc2V0IHRvIC0xLgogICAgICAgIDQpIE5vbi16ZXJvIHZhbHVlcyB3ZXJlIG5vdCBiZWluZyBlbmNvZGVkIHByb3Blcmx5IGluIHJlZ2lzdHJhdGlvbgogICAgICAgICAgIHJlc3BvbnNlcy4KCm1hcnogIDIgRmViIDAwIDE0OjE4OjA5CiAgICBhZGQgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB3LyBPcGVuU1NMIG9uIFZDKysKCm1zbGlmY2FrICAyIEZlYiAwMCAxNDoxODoyMgogICAgTGV0IGhyUHJvY2Vzc29yTG9hZCBvdXQgb2YgdGhlIGdlbmllJ3MgYm90dGxlLgoKbXNsaWZjYWsgIDIgRmViIDAwIDE2OjI0OjE1CiAgICBUb3VjaHVwIGZvciBidWlsZGluZyBtb3JlIE1JQiBtb2R1bGVzIGluIFdpbjMyIChNU1ZDKS4KCm1zbGlmY2FrICAyIEZlYiAwMCAxNjozNjoyMQogICAgVG91Y2h1cCB0byBidWlsZCBtb3JlIE1JQiBtb2R1bGVzIG9uIFdpbjMyLgoKZGF2ZXMgIDMgRmViIDAwIDAxOjM1OjEyCiAgICAtIChGQVEpOiBEb2N1bWVudCBjaGFuZ2VzIHRvIGFjY2VzcyBjb250cm9sIHN0dWZmLgoKbXNsaWZjYWsgIDMgRmViIDAwIDA0OjEyOjU3CiAgICBVbmRvIHVuaW5mb3JtZWQgY2hhbmdlIDogbG9hZCBhdmVyYWdlICE9IGF2ZXJhZ2UgdGltZSB0aGF0IENQVSBpcyBpZGxlLgoKbXNsaWZjYWsgIDMgRmViIDAwIDA2OjQzOjEwCiAgICBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggdG8gbWFrZSB0aGUgVVNJTkdfIGNvbnN0YW50cyB2aXNpYmxlLgoKbWFyeiAgMyBGZWIgMDAgMDk6NDQ6MzcKICAgIHVwZGF0ZSBteSBlbWFpbAoKbXNsaWZjYWsgIDMgRmViIDAwIDA5OjU2OjQ4CiAgICBJbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggZnJvbSBtaWJpbmNsLmgsIG5vdCB0b3AgbGV2ZWwgY29uZmlnLmguCgptYXJ6ICAzIEZlYiAwMCAxMDo0ODozNwogICAgYWRkIC11IFBJREZJTEUgdG8gc25tcHRyYXBkLCBub3cgd2UgbmVlZCAtYyAtQyA6KSwgYnR3IGlzIHRoZSB2YWx1ZSBvZiBvcHRhcmcgcmVsaWFibGUgYWZ0ZXIgZ2V0b3B0IGhhcyBiZWVuIGNhbGxlZCBhZ2Fpbi4uLml0IHNlZW1zIHRvIHdvcmsKCm1zbGlmY2FrICAzIEZlYiAwMCAxMjo1NzoyMAogICAgUmVtb3ZlIERPUy1zdHlsZSBsaW5lIHRlcm1pbmF0aW9uIChDUi1MRiAtLT4gTEYpLgogICAgbGlic25tcC5kZWYgLSByZW1vdmUgdW5uZWVkZWQgY29tbWVudCBhYm91dCBvYnNvbGV0ZSB2MnBhcnR5LgoKbXNsaWZjYWsgIDMgRmViIDAwIDEyOjU4OjI3CiAgICBOb3RlIHRoZSB3b21iYXQgaXMgcmVwbGFjZWQgYnkgZXhhbXBsZSBpbiBtb3JlIHBsYWNlcy4KCm1zbGlmY2FrICAzIEZlYiAwMCAxMzoyODozMQogICAgRm9sbG93IGNvbmRpdGlvbiBIQVZFX0dFVFBJRCBmb3IgcGlkX2ZpbGUgb2JqZWN0LgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjI5OjE5CiAgICAtIChkdW1teS8qKTogcmVtb3ZlZCwgdXNlIGV4YW1wbGUgaW5zdGVhZC4KCmhhcmRha2VyICAzIEZlYiAwMCAxNDo0NDozMwogICAgLSAoc3ViYWdlbnQuYyk6IGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaC4KCmhhcmRha2VyICAzIEZlYiAwMCAxNDo0NjoxMAogICAgLSAoc3ViYWdlbnQuYyk6IHByb3RlY3Qgc3lzT1JUYWJsZSBjYWxsYmFja3Mgd2l0aCAjaWZkZWZzLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjUxOjQwCiAgICAtIChSRUFETUUpOiByZW1vdmUgZHVtbXkgcmVmZXJlbmNlLgoKbmJhICAzIEZlYiAwMCAyMzo1Nzo0OQogICAgLSBhZ2VudC9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsIGNsaWVudC5jOiBjaGFuZ2Ugc29tZSB0eXBlIGNhc3RzIGZyb20KICAgIAkoY2hhciAqKSB0byAodV9jaGFyICopIHRvcCBzaWxlbmNlIHNvbWUgd2FybmluZ3MuCgpuYmEgIDMgRmViIDAwIDIzOjU5OjU3CiAgICAtIG10X3N1cHBvcnQuaDogYW5vdGhlciB3YXkgb2YgZG9pbmcgbm90aGluZywgbm90IGdpdmluZyBhICJudWxsIGVmZmVjdCIKICAgIAl3YXJuaW5nIGZyb20gZ2NjLgoKbmJhICA0IEZlYiAwMCAwMDoxNjowMQogICAgLSByZWFkX2NvbmZpZy5jLCBtaWIuYzogZml4IHNvbWUgUEFUSCBzZXBhcmF0b3JzIGZyb20gY29uc3RhbnQgOiB0bwogICAgCUVOVl9TRVBBUkFUT1J7X0NIQVJ9CgpuYmEgIDQgRmViIDAwIDAwOjE3OjQ4CiAgICAtIGhyX2Rpc2suYzogQSBsaXR0bGUgY2xlYW51cCBvZiB0aGUgZGlzayBkZXZpY2UgZGVmaW5pdGlvbnMsIGFsc28gYWRkaW5nCiAgICAJU0NTSSB0byBGcmVlQlNEIDMKCm5iYSAgNCBGZWIgMDAgMDE6MjA6NTUKICAgIC0gdmFjbV92YXJzLmM6IHNsaWdodCByZXdvcmRpbmcgb2Ygd2FybmluZyBtZXNzYWdlCgpuYmEgIDQgRmViIDAwIDA0OjAwOjI3CiAgICAtIGhyX2Rpc2suYzogcmVhbGx5IGRvIHRoYXQgRnJlQlNEIHNjc2kgdGhpbmcKCm1hcnogIDQgRmViIDAwIDA2OjQ0OjI0CiAgICAgaGF2ZSBtaWIgbG9hZGluZyBhcGkgcmV0dXJuIHJlc3VsdCBjb2RlcwoKbWFyeiAgNCBGZWIgMDAgMDg6NTU6NDIKICAgIGFkZCBkZWZhdWx0cyBmb3IgdjIgdHJhcCBwYXJhbXMKCmhhcmRha2VyICA0IEZlYiAwMCAxMjowMTozMgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogZmluZCwgbG9jYXRlLCBhbmQgdXNlIHBlcmwgaWYgZm91bmQuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTI6NDc6MjYKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jKTogcHJvdmlkZSB2MyBkZWZhdWx0cy4KCmhhcmRha2VyICA0IEZlYiAwMCAxMzoxMjoxOAogICAgLSAocmVhZF9jb25maWcuYyk6IGRvbid0IHByaW50IGZhaWxlZCBhY2Nlc3MgZXJyb3JzIChFQUNDRVMpLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjE1OjUxCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6NTA6MTUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBkb24ndCByZWFkIHRoZSBvcHQgY29uZmlnIGZpbGUgb3IgY2FsbAogICAgICBwb3N0X2NvbmZpZyBjYWxsYmFja3MsIHNpbmNlIHRoZSBsaWJyYXJ5IHRha2VzIGNhcmUgb2YgdGhhdCBub3cuCgptYXJ6ICA0IEZlYiAwMCAxMzo1MjowOAogICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6NTY6MTkKICAgIC0gKHNubXB0cmFwZC5jKToKICAgICAgLSBpbXBsZW1lbnQgLWMgYW5kIC1DIGZsYWdzIGZvciBKb2UuCiAgICAgIC0gcmVkaWQgdGhlIGluaXQgc3RydWN0dXJlIHRvIG1ha2UgaXQgbG9vayBtb3JlIGxpa2UgdGhlIGN1cnJlbnQgYWdlbnQuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTQ6MDE6MzAKICAgIC0gKHNubXB0cmFwZC44KTogZG9jdW1lbnQgLWMgYW5kIC1DLgoKbWFyeiAgNCBGZWIgMDAgMTU6MjE6NDEKICAgIGJ1aWxkIGZpeGVzIGFuZCB0ZXN0IGVuaGFuY2VtZW50cwoKbWFyeiAgNCBGZWIgMDAgMTU6NDQ6NDQKICAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMCAtPiBWNC4wLjEKCmhhcmRha2VyIDIzIEF1ZyA5OSAxNjo0NDoyNwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBzbm1wdXNtLjEgbWFudWFsIHBhZ2UuCgptc2xpZmNhayAyNCBBdWcgOTkgMDQ6NDQ6NDcKICAgIENsZWFuIENScyBmcm9tIHJlYWRfY29uZmlnLHNubXBfbG9nZ2luZzsgY29tbWVudCBkZWZpbmUgVVNFX0FTTl9TSE9SVF9MRU4uCgptc2xpZmNhayAyNCBBdWcgOTkgMDU6MTE6MTMKICAgIFJlbW92ZSBBU05fU0hPUlRfTEVOIGhhY2sgLSBrbm93biB0byBkdW1wIGNvcmUgaW4gYWdlbnQuCgptc2xpZmNhayAyNCBBdWcgOTkgMDY6MTk6NDkKICAgIEFkZCAiLiIgdG8gUEFUSCBmb3IgUlVOVEVTVFM7IERyb3Agb3B0cmVzZXQgdG8gYnVpbGQgbW9zdCBwbGF0Zm9ybXMKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxMDoyNTo1MwogICAgLSh0ZXN0aW5nL2V2YWxfdG9vbHMpIC0gbGV0IHNvbWUgKEFJWCkgYWdlbnRzIHNldHRsZSBiZWZvcmUgZmlyaW5nIHJlcXVlc3RzLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEyOjQ4OjIxCiAgICAtICh2YWNtX3ZhcnMuYyk6IGNvcnJlY3Qgc3lzT1JUYWJsZSBlbnRyeS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNjozNQogICAgLSAoc25tcHVzbS5jKTogY2hlY2sgZm9yIG51bGwgcmVzcG9uc2UgcG9pbnRlci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNzozMQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcHYzLmMpOgogICAgICAtIHByb3ZpZGUgZGVmVmVyc2lvbiB0b2tlbiBzdXBwb3J0IGluIHNubXAuY29uZiAoc29ydCBvZiBoYWNraXNoKS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzo0MToxOAogICAgLSAoVE9ETyk6IHJlbW92ZSBzbm1wdjMgc3VwcG9ydCA6LSkKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNDowNTozOQogICAgLSh0b3AvTWFrZWZpbGUuaW4pIC0gcmVtb3ZlIG1vcmUgZ2VuZXJhdGVkIGZpbGVzIHdpdGggZGlzdGNsZWFuIHJ1bGUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTQ6MTU6NDAKICAgIC0gKGFsbF9zeXN0ZW0uaCk6IHJlbW92ZS4gIGFnYWluLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjE3OjMzCiAgICAtKGhvc3QvaHJfc3dydW47bWliSUkvaWNtcCxpcDt1Y2Qtc25tcC9kaXNrLHByb2MpIGxvZ19wZXJyb3IgLS0+IHNubXBfbG9nX3BlcnJvcgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE1OjE0OjE4CiAgICAtKHNtdXguYykgYXBwbHkgTmljayBBbWF0bydzIHBhdGNoOiBwcmV2ZW50IFNNVVggY2xvc2Ugb24gcGFyc2Ugb3IgZXJyb3IuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTU6NTk6NDIKICAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdmVyc2lvbiBzZXR0aW5nIGluIHNubXBfYXBpLmMuICBOb3QgbmVlZGVkIHRoZXJlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE2OjAxOjU1CiAgICAtIChORVdTKTogNC4wLjEgdXBkYXRlCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6MDU6MTUKICAgIC0oY29uZmlndXJlLiopIG1vdmUgc3RhdGVtZW50IGFib3V0IHVjZERlbW9QdWJsaWMgaW50byBjb21tZW50IGZpZWxkLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE2OjQ5OjIyCiAgICAtKHRlc3RpbmcvKikgcnVuIHRlc3RzIHdoZW4gcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLCBhbmQgd2hlbgogICAgdGhlIGJ1aWxkIHRyZWUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgdHJlZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjYuMiAtPiBWNC4wCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MTE6NTcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hhbmdlIHRoZSBQRVJTSVNURU5URklMRSBkZWZpbmUgdG8gUEVSU0lTVEVOVERJUi4KCmhhcmRha2VyIDE0IFNlcCA5OCAwOToxNzo0NQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgc25tcGQuaCwgc3lzdGVtLmMpOgogICAgICAtIG1vdmUgcGVyc2lzdGVudCBjYWNoZSBjYXBhYmlsaXR5IGludG8gdGhlIGxpYnJhcnkgZnJvbSB0aGUKICAgICAgICBhZ2VudC4gKHNubXB0cmFwZCwgYW5kIG90aGVycyB3aWxsIG5lZWQgdGhpcyBhcyB3ZWxsKS4KICAgICAgLSBpbXBsZW1lbnQgc29tZSBuZXcgZnVuY3Rpb25zOiBpbml0X3NubXB2MygpLCBzbm1wdjNfc2h1dGRvd24oKSwKICAgICAgICBzbm1wdjNfZ2V0X2VuZ2luZV9ib290cygpLCBldGMuCiAgICAgIC0gYWdlbnRCb290cyAtPiBlbmdpbmVCb290cy4KCmhhcmRha2VyIDE0IFNlcCA5OCAwOToyMTowNQogICAgLSAoTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gbW92ZSBwZXJzaXN0ZW50IGNhY2hlIGNhcGFiaWxpdHkgaW50byB0aGUgbGlicmFyeSBmcm9tIHRoZQogICAgICAgIGFnZW50LiAoc25tcHRyYXBkLCBhbmQgb3RoZXJzIHdpbGwgbmVlZCB0aGlzIGFzIHdlbGwpLgogICAgICAtIGltcGxlbWVudCBzb21lIG5ldyBmdW5jdGlvbnM6IGluaXRfc25tcHYzKCksIHNubXB2M19zaHV0ZG93bigpLAogICAgICAgIHNubXB2M19nZXRfZW5naW5lX2Jvb3RzKCksIGV0Yy4KICAgICAgLSBhZ2VudEJvb3RzIC0+IGVuZ2luZUJvb3RzLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjIzOjA5CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywKICAgICAgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgICAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB3YWxrLmMpOgogICAgICAtIHBhc3MgYXBwIG5hbWUgdG8gc25tcF9wYXJzZV9hcmdzLCBzbyBpdCBjYW4gcGFzcyBpdCB0bwogICAgICAgIGluaXRfc25tcCgpLCB3aGljaCBub3cgbmVlZHMgaXQgZm9yIHBlcnNpc3RlbnQgY2FjaGUgcmVhZGluZy4KCmhhcmRha2VyIDE0IFNlcCA5OCAwOToyNToxMwogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIEJlZ2luIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTTk1QLUZSQU1FV09SSy1NSUIuCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDM6MTIKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIEVOVEVSUFJJU0VfTlVNQkVSIHRvIDIwMjEuCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDM6NTAKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBzbm1wRW5naW5lSUQgY3JlYXRpb24gYW5kIGNvbmZpZ3VyYXRpb24uCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDQ6MDYKICAgIC0gKHNubXBFbmdpbmUuYyk6IHJlcG9ydCBzbm1wRW5naW5lSUQgcHJvcGVybHkuCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDk6MTUKICAgIC0gKHNubXB2M21pYnMuaCk6IGhpZ2gtbGV2ZWwgbW9kdWxlIGNyZWF0ZWQgdG8gaW1wb3J0IHYzIHJlbGVhdGVkIG1pYnMuCgpoYXJkYWtlciAxNCBTZXAgOTggMjE6MDk6NDEKICAgIC0gKHV0aWxfZnVuY3MuW2NoXSwgc25tcEVuZ2luZS5jLCBzbm1wdjMuW2NoXSwgc3lzdGVtLltjaF0pOgogICAgICAtIG1vdmUgc25tcEVuZ2luZVRpbWUgY2FsY3VsYXRpb24gdG8gc25tcGxpYi9zbm1wdjMuYy4KICAgICAgLSBtb3ZlIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSB0byBzeXN0ZW0uYyBmcm9tIHV0aWxfZnVuY3MuYy4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMjoyOTo1NQogICAgLSAoc25tcE1QRFN0YXRzLmMsIHNubXBNUERTdGF0cy5oKToKICAgICAtIGltcGxlbWVudCBTTk1QLU1QRC1NSUIuCgpoYXJkYWtlciAxNCBTZXAgOTggMjI6MzA6MTAKICAgIC0gKHNubXB2M21pYnMuaCk6IGFkZCBzbm1wTVBEU3RhdHMgbW9kdWxlLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIyOjQwOjI0CiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBNUERTdGF0cy5jKTogcmVnaXN0ZXIgdGhlIG1vZHVsZXMgaW4gc3lzT1JUYWJsZS4KCmhhcmRha2VyIDE2IFNlcCA5OCAwNzowNDoxMQogICAgLSAoc25tcE1QRFN0YXRzLmMpOiBkb3VibGUgYmxhbmsgLT4gc2luZ2xlLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA0OjU4CiAgICAtICh1c21TdGF0cy5jLCB1c21TdGF0cy5oKTogaW1wbGVtZW50IHRoZSB1c21TdGF0cyBwb3J0aW9uIG9mIHRoZQogICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA1OjQzCiAgICAtIChzbm1wdjNtaWJzLmgpOiBhZGQgdXNtU3RhdHMgdG8gcmVxdWlyZSBsaXN0LgoKaGFyZGFrZXIgMTggU2VwIDk4IDA5OjU0OjA4CiAgICAtIChzbm1wX2FwaS5jKTogY2hhbmdlIHNwcmludGZfb2lkIGJ1ZiBsZW5ndGggaW4gREVCVUdQT0lEIHRvIDQwOTYuCgpoYXJkYWtlciAxOCBTZXAgOTggMDk6NTU6MDcKICAgIC0gKHNubXBkLmMpOiBpbml0X3NubXB2MyBuZWVkcyB0byBnbyBhYm92ZSBpbml0X2FnZW50IGZvciBlbmdpbmVJRCBjcmVhdGlvbi4KCmhhcmRha2VyIDE4IFNlcCA5OCAwOTo1OToyMAogICAgLSAoc25tcHYzbWlicy5oLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgTWFrZWZpbGUuaW4sIHNubXB1c20uYywKICAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIGJhc2ljIHVzbVVzZXIgc3RydWN0dXJlIGNyZWF0ZWQgZm9yIHRoZSBsaWJyYXkgd2l0aCBzdXBwb3J0CiAgICAgICAgZnVuY3Rpb25zOgogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9nZXRfdXNlcigqZW5naW5lSUQsICBlbmdpbmVJRExlbiwgICpuYW1lLCAqdXNlckxpc3QpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9hZGRfdXNlcigqdXNlciwgKnVzZXJMaXN0KTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fZnJlZV91c2VyKCp1c2VyKTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fY2xvbmVfdXNlcigqZnJvbSk7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2NyZWF0ZV9pbml0aWFsX3VzZXIoKTsKICAgICAgLSBmaXJzdCBwYXNzIGF0IGJhc2ljIFVTTSBtb2R1bGUgc3VwcG9ydCBhZGRlZCB0byB0aGUgYWdlbnQuCgpoYXJkYWtlciAxOCBTZXAgOTggMTI6NDI6NDYKICAgIC0gKHNubXAtdGMuaCk6IGNyZWF0ZSBhIG5ldyAuaCBmaWxlIHRvIHN0b3JlIGNvbW1vbiB0ZXh0dWFsIGNvbnZlbnRpb24gZGVmaW5lcy4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMjo0NjozOAogICAgLSAodXNtVXNlci5jLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2Ugc3RvcmFnZVR5cGUvdXNlclN0YXR1cyBpbiB0aGUgdXNtVXNlciBzdHJ1Y3R1cmUuCiAgICAgIC0gZml4IHRoZSBhdXRoL3ByaXYgcHJvdG9jb2wgcG9pbnRlciBpbml0aWFsaXphdGlvbnMgZm9yIHRoZSAiaW5pdGlhbCIgdXNlci4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NjoxMwogICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIHNubXB1c20uaCBhbmQgc25tcHYzLmguCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDc6MTcKICAgIC0gKHNubXBfYWdlbnQuYyk6IGlmIGEgbWliIG1vZHVsZSByZXR1cm5zIGFuIGVycm9yID4gU05NUF9HRU5fRVJSLAogICAgICB0cmFuc2xhdGUgdGhlIGVycm9yIHRvIFNOTVBfR0VOX0VSUiBmb3IgdjEgcmVxdWVzdHMuCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDk6MDQKICAgIC0gKG1pYjJjKToKICAgICAgLSBmcHJpbnRmIC0+IERFQlVHUC4KICAgICAgLSBfX1AgLT4gQU5TSS4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo1MjowOAogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIGdldE5leHQgYnVnIGZpeGVzLgogICAgICAtIG1ha2UgdXNtUHVibGljIHRydWVseSB3cml0YWJsZS4KICAgICAgLSBpbXBsZW1lbnQgdXNtX3BhcnNlX29pZCgpIHRvIHBhcnNlIGFuIG9pZCBpbnRvIGVuZ2luZUlEL25hbWUuCiAgICAgIC0gaW1wbGVtZW50IHRoZSB1c21Vc2VyU3BpbkxvY2suCiAgICAgIC0gbWlzYyBvdGhlciBidWcgZml4ZXMuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTI6NDkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDA6MDQKICAgIC0gKFNOTVB2Mi1UQy50eHQpOiByZWp1c3RpZnkgYSB0YWJsZS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0NToxMwogICAgLSAodXNtVXNlci5jKToKICAgICAgLSBNYWtlIHVzbVVzZXJTdGF0dXMgYWN0dWFsbHkgd3JpdGFibGUgYW5kIGNhcGFibGUgb2YgY3JlYXRpbmcgbmV3IHJvd3MuCiAgICAgIC0gQmVnaW4gKGJyb2tlbikgY2xvbmVGcm9tIHNldHRpbmcuCiAgICAgIC0gRml4ZXM6CiAgICAgICAgLSBwcm9wZXJseSBtYWxsb2Mgc3BhY2UuCiAgICAgICAgLSBwcm9wZXJseSB1c2UgZG91YmxlIGNoYXIgbmFtZSBhbmQgZW5naW5lSUQgcG9pbnRlcnMuCiAgICAgICAgLSBkbyBwcm9wZXIgb2lkIGNvbXBhcmlzb25zIGZvciBnZXROZXh0cy4KICAgICAgICAtIGNoZWNrIHRvIHNlZSB0aGF0IHVwdHIgaXMgZGVmaW5lZCBiZWZvcmUgdXNpbmcgaXQgdG8gcmV0cmlldmUgZGF0YS4KICAgICAgICAtIGNsb25lRnJvbSBzaG91bGQgYWx3YXlzIHJldHVybiB0aGUgWmVyb0RvdFplcm8gT0lELgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ2OjM1CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIGZpeCB1c21fYWRkX3VzZXIoKSBmcm9tIGFsd2F5cyBhZGRpbmcgdGhlIHVzZXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAgICAgLSBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGF1dGgvcHJpdiBwcm90b2NvbHMgb24gbmV3IHVzZXJzLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ3OjI4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogY3JlYXRlIHNubXBfZHVwbGljYXRlX29iamlkKCkgdG8gbWFsbG9jIGEgbmV3IG9pZC4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMjoxNToxMQogICAgLSAoSVNTVUVTKTogdXBkYXRlCgpoYXJkYWtlciAyMyBTZXAgOTggMTI6MjQ6MDQKICAgIC0gKElTU1VFUyk6IHRvb2sgb25lLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE3OjU4OjQ5CiAgICAtIChJU1NVRVMpOiBjbG9uaW5nL21hbGxvYyBpc3N1ZS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxNzo1OTo0MAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBjcmVhdGVkIHVzbV9jbG9uZUZyb21fdXNlcigpIHRvIGNsb25lIHNlYyBpbmZvLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE4OjAwOjIxCiAgICAtICh1c21Vc2VyLmMpOiBtYWtlIHVzbUNsb25lRnJvbSBhY3R1YWxseSB3b3JrIChpcyBzZXRhYmxlKS4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDoxNTo1NwogICAgLSAoSVNTVUVTKTogc3RvcmFnZSB0eXBlIGlzc3Vlcy4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDoxNjoyNAogICAgLSAodXNtVXNlci5jKTogbWFrZSB1c21Vc2VyQXV0aFByb3RvY29sIGFuZCB1c21Vc2VyUHJpdlByb3RvY29sIHdyaXRhYmxlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjUwOjA1CiAgICAtIChJU1NVRVMpOiBSb3dTdGF0dXMgcXVlc3Rpb24gYWRkZWQuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTA6NDUKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogY3JlYXRlIHVzbV9yZW1vdmVfdXNlcigpIHRvIHJlbW92ZSBhIHVzZXIKICAgICAgZnJvbSBhIGxpc3QuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTE6NDYKICAgIC0gKHVzbVVzZXIuYyk6IG1ha2UgdXNtVXNlclN0YXR1cyBkZXN0cm95J3MgYWN0dWFsbHkgcmVtb3ZlIGEgdXNlci4KCmhhcmRha2VyIDI3IFNlcCA5OCAyMjo1Mzo1MwogICAgLSAoSVNTVUVTKTogbW9yZSBzdHVmZi4KCmhhcmRha2VyIDI3IFNlcCA5OCAyMjo1NTowOQogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIGJ1ZyBmaXhlcy4KICAgICAgLSBuZXcgc3VwcG9ydCBmdW5jdGlvbnMgZm9yIHNhdmluZyB1c2VycyB0byB0aGUgcGVyc2lzdGVudCBjYWNoZS4KCmhhcmRha2VyIDI3IFNlcCA5OCAyMjo1NzowMAogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIGJ1ZyBmaXhlcy4KICAgICAgLSB1c21Vc2VyU3RhdHVzIGlzIHNldGFibGUgKHRvIGVpdGhlciB2b2xhdGlsZSBvciBub25Wb2xhdGlsZSkuCiAgICAgIC0gdXNlcnMgY3JlYXRlZCBieSBzZXQncyBhcmUgc2F2ZWQgKGlmIHNldCB0byBub25Wb2xhdGlsZSkgb24gYWdlbnQgc2h1dGRvd24uCgpoYXJkYWtlciAyOSBTZXAgOTggMjA6MTE6MjAKICAgIC0gKElTU1VFUyk6IGVycm9yIG1hcHBpbmcgKGNvZXggd29yaykuCgptYXJ6ICAxIE9jdCA5OCAxMjo1ODo0MgogICAgLSAoc25tcC5oLCBzbm1wdXNtLltjaF0sIHNubXBfYXBpLltjaF0pOiBhZGRlZCBVU00gYXBpIGFuZCBzbm1wdjNfYnVpbGQsIHNvbWUgdHdlYWtzIHRvIHBhcnNlIGluIHByZXAgZm9yIHNubXB2M19wYXJzZQoKbWFyeiAgMSBPY3QgOTggMTQ6MDU6NDUKICAgIC0gKHNubXBfYXBpLmMpOiBmaXhlcyB0byBzbm1wdjNfcGFyc2UKCm1hcnogIDQgT2N0IDk4IDE3OjIwOjMwCiAgICAgLSAoc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuYywgc25tcHVzbS5jKTogYWRkZWQgc25tcHYzIHBhcnNpbmcgcm91dGluZXMKCmhhcmRha2VyICA1IE9jdCA5OCAyMDowNTowMwogICAgLSAoSVNTVUVTKTogbW9yZSBzdHVmZi4KCmhhcmRha2VyICA1IE9jdCA5OCAyMDowNjo1NwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGJyZWFrZG93biBvZiBzbm1wdjNfYnVpbGQoKSBpbnRvIHN1Yi1mdW5jdGlvbnMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjE6NTk6MjYKICAgIC0gKHNubXB1c20uYyk6IG1ha2UgZ2VuZXJhdGVSZXF1ZXN0TXNnIGRvIHNvbWV0aGluZyBnZW5lcmljLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIyOjAwOjIyCiAgICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiByZXR1cm4gYSB1X2NoYXIgKiBpbnN0ZWFkIG9mIGEgY2hhciAqIGZvciBlbmdpbmVJRHMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjI6MDE6MDQKICAgIC0gKHNubXBfYXBpLmMpOiBtaXNjIGJ1ZyBmaXhlcy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMjo1MDoxMAogICAgLSAoc25tcF9hcGkuYyk6IGxhc3Qgb2Yga25vd24gYnVncyBpbiBzbm1wdjNfYnVpbGQgZml4ZWQgKGEgcG9pbnRlcgogICAgICB3YXMgYmVpbmcgdXNlZCB0d2ljZSBpbiBvdmVybGFwcGluZyBuZWVkZWQgdGltZSBwZXJpb2RzKS4KCm1hcnogIDcgT2N0IDk4IDEzOjAyOjQwCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCB2MyBzdXBwb3J0CgptYXJ6ICA3IE9jdCA5OCAxMzowNjo0MQogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcHVzbS5bY2hdLCBzbm1wdjMuYyk6IGFkZGVkIHBkdSBmaWVsZCB0byBob2xkIHNlYyBzdGF0ZSByZWYsIGZpeGVkIHVzbSBwcm90b3R5cGVzLCBhZGRlZCBjaGVjayBmb3IgbnVsbCBoZW50IHJldHVybgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM2OjA1CiAgICAtIChzbm1wdXNtLmMpOiBmbHVzaCBvdXQgYSBnZW5lcmljIHByb2Nlc3NJbmNvbWluZ01zZygpLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM2OjM2CiAgICAtIChzbm1wX2ltcGwuaCk6IGFkZCBzZWN1cml0eU5hbWUgdG8gdGhlIGFnZW50J3MgcGFja2V0X2luZm8gc3RydWN0dXJlLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM4OjAwCiAgICAtIChzbm1wX2FwaS5jKTogbWFueSBtYW55IGJ1ZyBmaXhlcyB0byB2MyBwYXJzZS9idWlsZCByb3V0aW5lcy4KCmhhcmRha2VyICA3IE9jdCA5OCAxNTozOToxNwogICAgLSAodmFjbV92YXJzLmMpOiByZWNvZ25pemUgdGhlIHNlY3VyaXR5TmFtZSB3aGVuIFVTTSBtb2RlbCBpcyBpbiB1c2UuCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6MTc6MTAKICAgIC0gKHNubXBfYWdlbnQuYyk6IGluaXRpYWwgcGFzcyBhdCB2My4gIFdpbGwgZmFpbCBvbiBzZW5kaW5nIGVycm9yIG1lc3NhZ2VzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjQ1OjIyCiAgICAtIChzbm1wX2FwaS5jKTogcGFzcyBpbiB0aGUgc2VjX3Bhcm1zIGxlbmd0aCB0byBwcm9jZXNzSW5jb21pbmdNc2cKCmhhcmRha2VyICA3IE9jdCA5OCAxNzo0NjowNAogICAgLSAoc25tcF9hZ2VudC5jKTogYnVnIGZpeDogdXNpbmcgYW4gYXJyYXkgYXMgYSBwb2ludGVyICh1c2VkIHRvIGJlIG9uZSkuCgpoYXJkYWtlciAgNyBPY3QgOTggMjI6NDA6NDMKICAgIC0gKHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gZGVmYXVsdCBzbm1wdjMgcGFyYW1ldGVycyBjYW4gYmUgc3BlY2lmaWVkIGluIGEgc25tcC5jb25mIGZpbGUuCgpoYXJkYWtlciAgOCBPY3QgOTggMTA6MTM6MjMKICAgIC0gKElTU1VFUyk6IGV2ZXJ5b25lIGxvdmVzIGlzc3VlcyEKCmhhcmRha2VyICA5IE9jdCA5OCAwODowMzo1NwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXNlIHpsaWIgd2hlbiB1c2luZyBycG0gbGlicmFyaWVzLgoKZHJlZWRlciAgOSBPY3QgOTggMTM6NTk6MTIKICAgIC0gKElTU1VFUyk6IE5lZWQgYSBwYXNzIGZvciB0cmFkaXRpb25hbCBVTipYIHN5c3RlbSBwcm9ncmFtbWluZyBob2xlcy4KCmhhcmRha2VyICA5IE9jdCA5OCAxODoyMzoyNwogICAgLSAoc25tcHVzbS5jKTogZ2VuZXJhdGVSZXF1ZXN0TXNnKCkgZG9lc24ndCBBU04gZW5jb2RlIHRoZSBzZWNfcGFyYW1zLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjI0OjAyCiAgICAtIChzbm1wX2FwaS5jKTogcmVzdHJ1Y3R1cmUgdGhlIHBhY2tldCBidWlsZGluZyB0byB1c2UgbGVzcyBtZW1jcHkncy4KCmhhcmRha2VyICA5IE9jdCA5OCAxODoyNDoyNgogICAgLSAoc25tcF9hZ2VudC5jKTogdXNlIHNubXBfYnVpbGRfcGFja2V0KCkgdG8gY29uc3RydWN0IGFsbCB2MyBkYXRhLgoKZHJlZWRlciAxMiBPY3QgOTggMDc6MTg6NTYKICAgIC0gKElTU1VFUyk6IHByb29mIG1lbW9yeSBpbnZvY2F0aW9uL2Rpc3Bvc2FsOyBwdXQgdGltZSBzdGFtcHMgaW4gbG9nIGZpbGVzLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjE5OjI4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBuZXcgc3RhdHMgY291bnRlciBBUEkuCiAgICAgIC0gYnVnIGZpeGVzLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjQyOjI4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogYnVnIGZpeGVzIHdpdGggY291bnRlcnMgKHJldHVybnMgdV9pbnQsIEVHKS4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzo0NDo1NQogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBtYWtlIHYzIGNvZGUgcmV0dXJuIGVycm9ycyBwcm9wZXJseS4KICAgICAgLSBidWcgZml4ZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6NDU6MTEKICAgIC0gKHNubXBNUERTdGF0cy5jLCBzbm1wTVBEU3RhdHMuaCwgdXNtU3RhdHMuYywgdXNtU3RhdHMuaCk6CiAgICAgIC0gdXNlIHRoZSBuZXcgc3RhdHMgY291bnRlciBBUEkuCgptYXJ6IDEyIE9jdCA5OCAwNzo1NjozMAogICAgIC0oc25tcF9wYXJzZV9hcmdzLmMpOiBtZXJnZWQgaGV4IHRvIGJpbiBmdW5jcyAtIFRoZXJlIGNhbiBiZSBvbmx5IE9uZQoKbWFyeiAxMiBPY3QgOTggMDg6MTE6NDYKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXB1c20uW2NoXSk6IG1lcmdlZCBoZXggdG8gYmluIGZ1bmNzLCBmaXhlZCBNUC9VU00gYXBpLCBpbXBsZW1lbnRlZCBub0F1dGhOb1ByaXYgVVNNLCBpbXBsZW1lbnRlZCBlbmdpbmUgcHJvYmUgYWxnb3JpdGhtCgpoYXJkYWtlciAxMiBPY3QgOTggMDk6MjM6NDkKICAgIC0gKElTU1VFUyk6IG5vdGUgb24gRGF2aWQncyBpc3N1ZS4KCmhhcmRha2VyIDEyIE9jdCA5OCAxMjoyNjowNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBsb29rIGZvciAvZGV2L3JhbmRvbSBhbmQgZGVmaW5lIEhBVkVfREVWX1JBTkRPTS4KICAgICAgLSBsb29rIGZvciBsaWJrbXQgYW5kIGxpYmNyeXB0byBhbmQgZGVmaW5lIEhBVkVfTElCWFhYLgoKbWFyeiAxMiBPY3QgOTggMTU6NDY6MzYKICAgIC0gKHNubXB1c20uYyk6IGZpeGVkIGhlYWRlciBzaXplIGlzc3VlcyAoZGlmZmVyZW5jZSBiZXR3ZWVuIGFzbl9idWlsZF9oZWFkZXIgYW5kIGFzbl9idWlsZF9zZXF1ZW5jZSkKCmhhcmRha2VyIDEyIE9jdCA5OCAyMTo1Njo0MgogICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogbWFrZSBjYWxjdWxhdGVfdGltZV9kaWZmIHRha2UgYSBwb2ludGVyLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIxOjU5OjUzCiAgICAtIChzbm1wdjMuYyk6IHVzZSBuZXcgY2FsY3VsYXRlX3RpbWVfZGlmZigpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjA0OjA2CiAgICAtIChzbm1wX2NsaWVudC5jKTogYnVnIGZpeGVzOgogICAgICAtIHNubXBfc3luY2hfaW5wdXQoKSBuZWVkcyB0byBjbG9uZSBhIHJlcG9ydCBwZHUgdG9vLgogICAgICAtIHNubXBfY2xvbmVfcGR1KCkgbmVlZHMgdG8gY29weSBjb250ZXh0RW5naW5lSUQsIGNvbnRleHROYW1lLCBhbmQKICAgICAgICBzZWN1cml0eU5hbWUKCmhhcmRha2VyIDEyIE9jdCA5OCAyMjoxMjo1MAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbWFrZSBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoKSByZXR1cm4gdGhlIGNoYW5nZWQgdmFsdWUuCiAgICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbjogc25tcF9mcmVlX3ZhcmJpbmQoKSB0byBmcmVlIGEgbGlzdC4KICAgICAgLSBcbidzIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBkZWJ1Z2dpbmcgbWVzc2FnZXMgZm9yIGVuZ2luZUlEIGRpc2NvdmVyeS4KICAgICAgLSBNZXJnZSByZXNwb25zZS9yZXBvcnQgaGFuZGxpbmcgdG8gbWFrZSByZXBvcnQncyBjYWxsIHRoZWlyCiAgICAgICAgY2FsbGJhY2sgYXMgd2VsbCAoZW5naW5lSUQgZGlzY292ZXJ5IHdhcyBuZXZlciByZXR1cm5pbmcpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjE5OjU0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudC4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjoyMjozNgogICAgLSAoSVNTVUVTKTogd2llcmQgbWVtb3J5IHF1ZXN0aW9uLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjIzOjE2CiAgICAtIChzeXN0ZW0uYyk6IHVzZSBuZXcgY2FsY3VsYXRlX3RpbWVfZGlmZigpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjI1OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBoYW5kbGUgZW5naW5lSUQgZGlzY292ZXJ5IHJlcXVlc3RzLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU4OjI2CiAgICAtICh1c21Vc2VyLmMpOiBuZXcgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSB1c2VyTGlzdC4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjo1ODo1NQogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBuZXcgZnVuY3Rpb24gdXNtX2NoZWNrX3NlY0xldmVsKGludCwgc3RydWN0ICp1c21Vc2VyKTsKCmhhcmRha2VyIDEyIE9jdCA5OCAyMjo1OTozNgogICAgLSAoc25tcF9hZ2VudC5jKTogaGFuZGxlIHVua25vd25TZWN1cml0eU5hbWUgYW5kIHVuc3VwcG9ydGVkU2VjdXJpdHlMZXZlbC4KCmhhcmRha2VyIDEzIE9jdCA5OCAxMzoyNzoxNAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBuZXcgb3B0aW9uczogLS1kaXNhYmxlLXByaXZhY3ksIC0tZW5hYmxlLXYycC1tZDUuCgpoYXJkYWtlciAxMyBPY3QgOTggMTM6MzE6MjIKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY29tbWVudCBmb3JtYXR0aW5nLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjI5OjA1CiAgICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX2FkZF92YXIgc2V0IHRoZSBzaXplIG9mIHRoZSBvaWQgYnVmZmVyLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjI5OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG1vdmVkIHRoZSBkZWZhdWx0IHVzZXJMaXN0IGludG8gdGhlIGxpYnJhcnkuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6MzE6MjkKICAgIC0gKHVzbVVzZXIuYyk6IHVzZSB0aGUgbmV3IGxpYnJhcnkgZGVmYXVsdCB1c2VyIGxpc3QuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6MzI6NTgKICAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgIC0gdXNlIHRoZSBuZXcgbGlicmFyeSBkZWZhdWx0IHVzZXIgbGlzdC4KICAgICAgLSBkb24ndCBmcmVlIGEgbm9uZXhpc3RlbnQgcGR1IChpdCBvbmx5IGV4aXN0cyBmb3IgdjMgcmVxdWVzdHMpLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjQ3OjU2CiAgICAtIChzbm1wX2FnZW50LmMpOiBtYWtlIHN1cmUgcGR1LT5zZWN1cml0eU5hbWUgaXMgbnVsbCB0ZXJtaW5hdGVkLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE3OjUyOjIzCiAgICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgICAtIG5ldyBhcmd1bWVudHMgdG8gY29uZmlndXJlIHRvIHNldCBDRkxBR1MgYW5kIExJQlM6CiAgICAgICAgLSAtLXdpdGgtS01UPXBhdGgKICAgICAgICAtIC0td2l0aC1TU0xlYXk9cGF0aAogICAgICAtIGZpeCB0byBhZ2VudC9taWJncm91cC9NYWtlZmlsZSB0byBrZWVwIHRoZSBhYm92ZSBmcm9tIGdldHRpbmcgdGhlCiAgICAgICAgd3JvbmcgYXNuMS5oIGZyb20gdGhlIFNTTGVheSBwYWNrYWdlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDIwOjQxOjA3CiAgICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICovTWFrZWZpbGUuaW4pOgogICAgICAtIGNoZWNrIGZvciBrbXQuaAogICAgICAtIHJlLW9yZGVyIENQUEZMQUdTIHRvIHB1dCAtSSBmbGFncyBsYXN0LgoKaGFyZGFrZXIgMTQgT2N0IDk4IDIwOjQ1OjUxCiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIG1vdmUgdXNtX3BhcnNlX2NvbmZpZ191c21Vc2VyIHRvIHRoZSBsaWJyYXJ5LgoKaGFyZGFrZXIgMTQgT2N0IDk4IDIwOjQ3OjQ4CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogaW5jbHVkZSBzbm1wdXNtLmgKCmRyZWVkZXIgMTUgT2N0IDk4IDEyOjAyOjQwCiAgICAtIEJhc2UgZm9yIFNDQVBJICsgc29tZSBmb3JtYXR0aW5nIG9uIHRoZSBwYXRoIHRvIHNubXB2MyBzdGFydHVwIGFuZCBzaHV0ZG93bi4KICAgIC0gU2h1ZmZsaW5nIGluIGhlYWRlciBmaWxlcyB0byBkZWZlYXQgd2FybmluZ3Mgb2YgI2RlZmluZSByZWR1bmRhbmNpZXM6CiAgICAJbm90YWJseSwgcy9mcmVlYnNkKi5oIGFuZCBzbm1wbGliL3N5c3RlbS5oCiAgICAtIERlYnVnICYgdGluaSB0b29sYmFnIGluIHNubXBsaWIve2RlYnVnLHRvb2xzfS4qCiAgICAtIENoYW5nZWQgY29uZmlndXJlIG9wdGlvbiAtLWVuYWJsZS12MnAtbWQ1IHRvIC0tZW5hYmxlLWludGVybmFsLW1kNS4KICAgIC0gQ29uc29saWRhdGVkIGxpYnJhcnkgc3lzdGVtIGFuZCBsb2NhbCBoZWFkZXIgaW5jbHVkZSBzZXF1ZW5jZXMgaW50bwogICAgCXNubXBsaWIvYWxsXyouaCBmaWxlcy4gIFBvc3NpYmx5IGJldHRlciBzb2x1dGlvbnMgZm9yIHRoaXMuLi4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNDo1MgogICAgLSAodXNtVXNlci5jKTogcmVtb3ZlZCB1c21fcGFyc2VfY29uZmlnX3VzbVVzZXIgdGhhdCBEYXZpZCBwdXQgYmFjayBieQogICAgICBhY2NpZGVudCB3aGVuIGRvaW5nIGZvcm1hdGluZy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNToxNwogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCk6IGFkZGVkIGxlbmd0aCB0byBlbmdpbmVJRC4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNTo1OAogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IG1ha2UgY29weV93b3JkIHJldHVybiBhIHBvaW50ZXIuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6MjY6MjEKICAgIC0gKHNjYXBpLmMsIHNjYXBpLmgpOiBtb3ZlICNpbmNsdWRlcyBmcm9tIC5oIHRvIC5jLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI3OjAzCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG5ldyBjb25maWcgb3B0aW9ucyB0byBjaGFuZ2Uga2V5cy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNzo1OAogICAgLSAoc25tcHYzLmMpOiBkb24ndCBjYWxsIGluaXRfa210KCkgdW5sZXNzIEhBVkVfTElCS01UIGlzIGRlZmluZWQuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6NDI6MDAKICAgIC0gKGtleXRvb2xzLmMsIGtleXRvb2xzLmgpOiBtb3ZlICNpbmNsdWRlIGZyb20gLmggdG8gLmMuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6NDc6NTYKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSB1c2UgZG9fa2V5Y2hhbmdlKCkgdG8gaW1wbGVtZW50IHRoZSBrZXkgY2hhbmdlIHdyaXRlIG1ldGhvZHMuCiAgICAgIC0gYSBiaXQgb2YgLVdhbGwgY2xlYW51cC4KCmRyZWVkZXIgMTYgT2N0IDk4IDExOjI4OjEyCiAgICAtIFVwZGF0ZWQgU0NBUEkgY3J5cHRpbmcgZnVuY3Rpb25zIHRvIGlkZW50aWZ5IHRyYW5zZm9ybXMgT0lEcyBub3QgI2RlZmluZSdzLgogICAgLSBNb3ZlZCAiZ2xvYmFsIiBkZWZpbml0aW9ucyBvZiBPSUQgdHJhbnNmb3JtcyB0byBzbm1wdXNtLmgsIGFuZCBvdXQgb2YKICAgIAl1c21Vc2VyLmMgYW5kIHNubXB1c20uYy4KICAgIC0gc2NfZ2VuZXJhdGVfa2V5ZWRfaGFzaCgpIHN0YW5kcyBhcyBhIGdvb2QgZXhhbXBsZSBvZiB3aGF0IG90aGVyIGZ1bmN0aW9ucwogICAgCXdpbGwgbG9vayBsaWtlLgoKZHJlZWRlciAxNiBPY3QgOTggMTE6NTA6MDkKICAgIC0gKHNjYXBpLmMsIHNjYXBpLmgpIE91dHB1dCBidWZmZXIgYXJndW1lbnRzIGZvciAoZW58ZGUpY3J5cHRpbmcgYXJlCiAgICAJc2luZ2xlLXBvaW50ZXJzLgoKbGV3aXMgMTYgT2N0IDk4IDEzOjE1OjE2CiAgICAtIC0gKHNubXB1c20uaCk6CiAgICAgIC0gQWRkZWQgVVNNX0VSUiBzeW1ib2xzIHVzZWQgYnkgdXNtX2dlbmVyYXRlX291dF9tc2cKCmxld2lzIDE2IE9jdCA5OCAxMzoyMDowNwogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gUmV3cm90ZSB1c21fZ2VuZXJhdGVfb3V0X21zZywgcmVuYW1pbmcgb2xkIGltcGxlbWVudGF0aW9uIHRvCiAgICAgICAgdXNtX2dlbmVyYXRlX291dF9tc2dfTlVMTAogICAgICAtIFRoaXMgY29kZSBjb21waWxlZCBvbiBGcmVlQlNELCBub3QgdGVzdGVkIGZvciBsaW5raW5nIG9yIHJ1bm5pbmcKICAgICAgLSBBZGRlZCBmdW5jdGlvbnMgdG8gY2FsY3VsYXRlIGluZGljaWVzIChhc25fcHJlZGljdF9pbnRfbGVuZ3RoLAogICAgICAgIGFzbl9wcmVkaWN0X2xlbmd0aCwgdXNtX2NhbGNfb2Zmc2V0cykgYW5kIHRvIG1ha2UgdGhlIENCQy1ERVMKICAgICAgICBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVzbV9zZXRfc2FsdCkuCgpkcmVlZGVyIDE4IE9jdCA5OCAyMToxNDowOQogICAgLSBTQ0FQSSBjb2RlIGNvbXBsZXRlLCBidXQgbm90IGNvbXBsZXRlbHkgdGVzdGVkLgogICAgCUFkZGVkIHRlc3RpbmcvIGRpcmVjdG9yeS4KICAgIAlWZXJpZmllZCB0aGF0IEVkJ3MgcmVjZW50IGNoYW5nZXMgY29tcGlsZSBjbGVhbmx5LgogICAgCVRyaWVkIHRvIHBhdGNoIHVwICJjcml0aWNhbCIgLVdhbGwgd2FybmluZ3MuCgpoYXJkYWtlciAxOSBPY3QgOTggMDc6MTA6MjcKICAgIC0gKE1ha2VmaWxlLnRvcCk6IHJlbW92ZSAtV2FsbCByZXF1aXJlbWVudC4KCmRyZWVkZXIgMTkgT2N0IDk4IDE1OjEyOjU3CiAgICAtIENvcmUgU0NBUEkgcm91dGluZXMgYXBwZWFyIHNvdW5kLiAgdGVzdGluZy8gZGlyZWN0b3J5IGlzIG5vIGxvbmdlcgogICAgCWNvbW1lbnRlZCBvdXQuICBTTk1QdjMgc3R5bGUga2V5IG1hbmlwdWxhdGlvbnMgdW50ZXN0ZWQgeWV0LgogICAgCUNyZWF0ZWQgKD8pIGEgc2xldyBvZiBuZXcgd2FybmluZ3MgZnJvbSBmaWxlcyBlYXJseSBpbiBjb21waWxlIHNlcXVlbmNlLgoKZHJlZWRlciAyMCBPY3QgOTggMTE6Mzg6NDIKICAgIC0gVGVzdHMgZm9yIGdlbmVyYXRlX0t1IGFuZCBnZW5lcmF0ZV9rdWwuICAodGVzdGluZy9rdGVzdCAtaCBmb3IgaGVscC4pCiAgICAJQ2xlYW5lZCB1cCBuZXcgc2V0IG9mICJjcml0aWNhbCIgd2FybmluZ3MgLS0gbW9zdGx5IGFkZGluZyAjaW5jbHVkZSdzLgogICAgCUZpeGVkIEtNVC9hcHBzL3JhbmR0ZXN0LmMgc28gaXQgY29tcGlsZXMgdW5kZXIgTGludXguCgptYXJ6IDIxIE9jdCA5OCAwODoxODowMwogICAgIC0oc25tcF9hcGkuW2NoXSk6IGFkZCBmaWVsZHMgZm9yIGF1dGhLZXkgYW5kIHByaXZLZXkKCmxld2lzIDIxIE9jdCA5OCAxMjowNzoxNgogICAgLSAtIChzbm1wLmgpCiAgICAgIC0gQWRkZWQgU05NUF9FUlJfIGVycm9yIHN5bWJvbGljIGNvbnN0YW50cyBmb3IgdGhlIGF1dGgvcHJpdiAoVVNNKSBtb2R1bGUKICAgICAgICByZXBvcnRlZCBlcnJvcnMuCiAgICAgIC0gVXNlZCB2YWx1ZXMgMTktMjcsIHVwZGF0ZWQgTUFYX1NOTVBfRVJSIHRvIDI3LgoKbGV3aXMgMjEgT2N0IDk4IDEyOjA4OjI0CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBzeW1ib2xpYyBjb25zdGFudHMgZm9yIGVycm9ycyBmb3VuZCBwcm9jZXNzaW5nIGluY29taW5nIG1lc3NhZ2VzLgogICAgICAtIEVxdWF0ZWQgdGhlIHN5bWJvbHMgd2l0aCB0aG9zZSBhZGRlZCB0byBzbm1wLmgKCmhhcmRha2VyIDIxIE9jdCA5OCAxMjoxMDowMwogICAgLSAoc25tcF9hcGkuaCk6IGFkZGVkIEFTTi9TTk1QIGNvdW50ZXJzIHRvIHRoZSBjb3VudGVyIGxpc3QuCgptYXJ6IDIxIE9jdCA5OCAxMjo1MDoyNAogICAgIC0oc25tcF9hcGkuW2NoXSk6IGNvcnJlY3RseSBhZGQgI2RlZmluZSBzaXplcyBmb3IgYXV0aEtleSBhbmQgcHJpdktleQoKbWFyeiAyMSBPY3QgOTggMTM6Mzg6NTcKICAgICAtKHNubXBfYXBpLltjaF0pOiBhZGRlZCBhdXRoL3ByaXYgcHJvdG9jb2wgdHlwZSBmaWVsZHMgdG8gc2Vzc2lvbgoKbWFyeiAyMSBPY3QgOTggMTM6NDk6MTEKICAgICAtKHNubXBfYXBpLmMpOiBhZGRlZCBjYXN0IGZvciBpbnRlcm5hbCBwZHUgKGludGVybmFsIHBkdSBzaG91bGQgYmUgZWxpbWlhbnRlZCBzb21lZGF5KQoKaGFyZGFrZXIgMjEgT2N0IDk4IDEzOjUzOjM4CiAgICAtIChzbm1wX2FwaS5oKTogU1RBVF9NQVhfU1RBVFMgLT4gTUFYX1NUQVRTLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjU0OjA4CiAgICAtIChzbm1wdjMuYyk6IHJlbW92ZSBzbm1wX3BlcnJvcigpIGRlZmluZWQgYXMgcGVycm9yKCkuICBJdCdzIGEgcmVhbCBmdW5jdGlvbi4KCmhhcmRha2VyIDIxIE9jdCA5OCAxNzo1ODowOAogICAgLSAoYXNuMS5jKTogYXNuX2J1aWxkX3N0cmluZzogYWxsb3cgYSBudWxsIHN0cmluZyB0byBidWlsZCBhIDAwIHBhZGRlZCBzdHJpbmcuCgpoYXJkYWtlciAyMSBPY3QgOTggMTg6MDA6MDcKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIGVuZ2luZUlEIGRpc2NvdmVyeSBkZWJ1Z2dpbmcgbWVzc2FnZXMuCiAgICAgIC0gemVybyBsZW5ndGggY29udGV4dE5hbWVzIG9rLgogICAgICAtIHNldCBtYXggbGVuZ3RoIGJlZm9yZSB1c21fZ2VuZXJhdGVfb3V0X21zZygpLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE5OjA0OjM1CiAgICAtIChzbm1wX2FwaS5jKTogbW92ZSB0aGUgZW5naW5lSUQgZGlzY292ZXJ5IHRvIHNubXBfc2Vzc19vcGVuKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTk6MDU6MTIKICAgIC0gKHNubXBfYXBpLmgpOiBzeW5jaCBzbm1wX3BkdSBhbmQgaW50ZXJuYWxfc25tcF9wZHUuCgpkcmVlZGVyIDIxIE9jdCA5OCAxOTo1NToxNQogICAgLSBTaG9vayB0aGUgYnVncyBvdXQgb2Yga2V5IG1hbmlwdWxhdGlvbiByb3V0aW5lcyAoZ2VuZXJhdGVfa3VsLCBnZW5lcmF0ZV9LdSkuCiAgICAJQ29tcGxldGVkIGFuZCB0ZXN0ZWQgS2V5Q2hhbmdlIFRDIGNvZGUgKHtlbmNvZGUsZGVjb2RlfV9rZXljaGFuZ2UpLgogICAgCUNyZWF0ZWQgaW5pdGlhbCBlbGVtZW50cyBvZiBhbiBhdXRvbWF0ZWQgdGVzdCBoYXJuZXNzIGluIHRlc3RpbmcvLgogICAgCUNyZWF0ZWQgZGF0YSBmaWxlcyBhbmQgdGVzdCBzY3JpcHRzIHRvIGRlbW9uc3RyYXRlIGNvbXBsaWFuY2UuCiAgICAJTWlzY2VsbGFuZW91cyBhZGRpdGlvbnMgdG8gc25tcGxpYi90b29scy4/LCBzb21lIHRlbXBvcmFyeS90cmFuc2l0aW9uYWwuCgptYXJ6IDIxIE9jdCA5OCAxOTo1ODoxMQogICAgIC0oc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgYXV0aC9wcml2IHByb3RvIGZsYWdzLCBhZGQgYXV0aCBwcml2IGtleSBmbGFncwoKbWFyeiAyMSBPY3QgOTggMjA6MTk6MDgKICAgIC0gKHNubXBfYXBpLltjaF0pOiB1cGRhdGVkIGF1dGgvcHJpdiBwcm90IGFuZCBrZXkgZmlsZWRzIGluIHNlc3Npb24sIGFkZGVkIHN1cG9ydCBpbiBzbm1wX3Nlc3Nfb3BlbiBhbmQgY2xvc2UgKHlhbmtlZCBmaWVsZHMgZnJvbSBQRFUgLSBkaWQgSSBkbyB0aGF0PykKCmhhcmRha2VyIDIxIE9jdCA5OCAyMToyMTo0MQogICAgLSAobGNkX3RpbWUuYyk6IG1pbm9yIHdhcm5pbmcgZml4ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTggMjE6MjI6MDcKICAgIC0gKHRvb2xzLmMsIHRvb2xzLmgpOiBuZXcgdG9vbDogbWVtZHVwKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMjI6MDg6MDcKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIGdlbmVyYXRlIGEgdXNtIHVzZXIgZnJvbSBzZXNzaW9uIGRhdGEgaWYgbmVlZGVkLgogICAgICAtIGNoZWNrIHRoZSByZXN1bHQgZnJvbSB0aGUgdXNtIGFuZCBmYWlsIGlmIGl0IGRvZXMuCgptYXJ6IDIyIE9jdCA5OCAwODowMjoxMQogICAgIC0oc25tcF9hcGkuYyk6IGFkZGVkIERFQlVHUCBjb2RlIHRvIHRyYWNlIG1lc3NhZ2UgdmVyc2lvbiBhbmQgc2VjTGV2ZWwgZm9yIGRlbW8KCmxld2lzIDIyIE9jdCA5OCAxMzozNzozNAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gTm90IGEgd29ya2luZy90ZXN0ZWQgdmVyc2lvbiwgYnV0IGl0IGNvbXBpbGVzLgogICAgICAtIEZpeGVkIG9uZSBidWcgLSAiJiIgdG8gIj09IiBpbiBhbiBpZigpCiAgICAgIC0gRGlkIG5vdCBhbHRlciBjb2RlIHRvIGRlbnkgbnVsbCBlbmdpbmUgaWQgdXNlcnMKICAgICAgLSBBZGRlZCBtdWNoIGNvZGUgaW4gcHJvY2VzcyBpbmNvbWluZyBtZXNzYWdlCiAgICAgIC0gTmV3IHVzZSBvZiBlcnJvcnMgYW5kIERFQlVHUAogICAgICAtIFN0aWxsIHdhaXRpbmcgb24gdXBkYXRlcyB0byBsY2RfdGltZS5oIHRvIGltcGxlbWVudAogICAgICAgIHN0ZXAgIzMgb2YgUkZDIDIyNzQsIHMzLjIuCgpkcmVlZGVyIDIzIE9jdCA5OCAwOTo0NTo0NwogICAgLSBMQ0QgVGltZSBBUEkgcHJvdG90eXBlcyBhcmUgY29tcGxldGUuICA5MCUgc3RhYmxlLgogICAgCURyYWZ0IG9mIGF1dG9tYXRlZCB0ZXN0aW5nIGhhcm5lc3MgaW4gdGVzdGluZy8uCiAgICAJCVVzZSB0ZXN0aW5nL2V2YWxfc3VpdGUuc2ggdG8gcnVuIGFsbCBjdXJyZW50IHRlc3RzLgoKbGV3aXMgMjMgT2N0IDk4IDExOjM4OjI1CiAgICAtIC0gKGxjZF90aW1lLmgpCiAgICAgIC0gYWRkZWQgZGVmaW5pdGlvbnMgZm9yIFRSVUUgYW5kIEZBTFNFIChpZiBub3QgcHJldmlvdXNseSBkZWZpbmVkKQogICAgICAtIGZpeGVkIGEgY29tcGlsYXRpb24gYnVnIGluIHRoZSBlbnN1cmUgZW50cnkgbWFjcm8KCmxld2lzIDIzIE9jdCA5OCAxMTo0NzozNwogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gQWRkZWQgdGhlIHN0ZXAgMyBjb2RlIHRvIHByb2Nlc3Mgb3V0Z29pbmcgbWVzc2FnZXMgZnVuY3Rpb24KICAgICAgLSBTdGlsbCB1bi1ydW4KCmRyZWVkZXIgMjMgT2N0IDk4IDE1OjM5OjAyCiAgICAtIENvbXBsZXRlIGNvZGUgZm9yIExDRCB0aW1lIEFQSS4gIEF3YWl0aW5nIHNlcmlvdXMgdGVzdHMuCiAgICAJQ2hhbmdlZCBzbm1wdjNfZ2V0X2VuZ2luZXtUaW1lLEJvb3RzfSB0byBzbm1wdjNfbG9jYWxfc25tcEVuZ2luZSoKCmRyZWVkZXIgMjQgT2N0IDk4IDIzOjA3OjU0CiAgICAtIFNob29rIGJ1Z3Mgb3V0IG9mIExDRCB0byBtYW5hZ2UgZW5naW5lIElEcy90aW1lICgidGVzdGluZy9ldGVzdCAtYSIpLgogICAgCUFkZGVkIGEgZnVuY3Rpb24gZHVtcF9zbm1wRW5naW5lSUQgKCJ0ZXN0aW5nL21pc2N0ZXN0IC0xIikuCiAgICAJCU1hZGUgc3ByaW50X2hleHN0cmluZyBub3Qtc3RhdGljLi4uICh0ZW1wb3JhcnkgY2hhbmdlIEkgdGhpbmspLgogICAgCUFkZGVkIGNvbW1lbnRzL3F1ZXN0aW9ucyBhYm91dCBidWlsZGluZyBzbm1wRW5naW5lSUQuICAoc25tcHYzLmMpCiAgICAJQWRkZWQgVFJVRS9GQUxTRSBkZWZpbmVzIHRvIHNubXB1c20uYy4gIChUaGVzZSBzaG91bGQgYmUgc3RhbmRhcmRpemVkLikKICAgIAlBZGRlZCBTTk1QX01BWEJVRl9TTUFMTC4gICh0b29scy5oKQogICAgCUNsZWFuZWQgdXAgKGNsYXJpZmllZD8pIHRlc3QgaGFybmVzcyBkZXNjcmlwdGlvbi4KCm1hcnogMjUgT2N0IDk4IDE0OjQ4OjA2CiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IG1vdmUga2V5IGdlbmVyYXRpb24gKGdlbmVyYXRlX0t1KSBhZnRlciBpbml0X3NubXAKCmhhcmRha2VyIDI1IE9jdCA5OCAyMDo1OTozMwogICAgLSAoc25tcF9hZ2VudC5jKTogZGVidWdnaW5nIHBhcnNlL2J1aWxkIHN0YXRlbWVudHMgYW5kIGVycm5vIGZpeGVzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAwOjE1CiAgICAtIChzeXN0ZW0uaCk6IGNyZWF0ZWQgREVCVUdQTCB0byBkbyBERUJVR1Agd2l0aCBmaWxlL2xpbmUgc3RhdGVtZW50cy4KCmhhcmRha2VyIDI1IE9jdCA5OCAyMTowMTowMAogICAgLSAodG9vbHMuYyk6IGNoZWNrIG1lbWR1cCgpIGZvciBOVUxMIHBhc3NlZCBpbi4KCmhhcmRha2VyIDI1IE9jdCA5OCAyMTowMTo1OAogICAgLSAocmVhZF9jb25maWcuYyk6IGJ1ZyBmaXhlczogbWlzYyBOVUxMIGNoZWNrcy4KCmhhcmRha2VyIDI1IE9jdCA5OCAyMTowMjo0MAogICAgLSAoc25tcF9jbGllbnQuYyk6IGRlZmF1bHQgdG8gc2V0dGluZyBzZWNOYW1lTGVuIGFuZCBjb250ZXh0TmFtZUxlbiB0byAtMS4KCmRyZWVkZXIgMjUgT2N0IDk4IDIyOjI4OjE4CiAgICAtIE1vc3RseSBzaHVmZmxpbmcgcHJlLWV4aXN0aW5nIHRoaW5ncyBhYm91dCAtLQogICAgICAgICAgICBVc2VkIFVTRV9JTlRFUk5BTF9NRDUgcHV0IGttdF9oYXNoIHBhcmFsbGVsIHdpdGggdjJwIE1ENSBoYXNoLgogICAgICAgICAgICBzY19lbmNyeXB0L3NjX2RlY3J5cHQgbm93IGFsc28gcmV0dXJuOiBTTk1QRVJSX1NDX05PVF9DT05GSUdVUkVELgogICAgICAgICAgICBUZXN0ZWQgYW5kICJmaXhlZCIgYnVpbGQgd2l0aCBvbiZvZmYgc2V0dGluZ3Mgb2Y6CiAgICAgICAgICAgICAgICAgICAgVVNFX1YyUEFSVFlfUFJPVE9DT0wsIFNDQVBJX0FVVEhQUklWLCBVU0VfSU5URVJOQUxfTUQ1LgogICAgICAgICAgICBHcmVhdGVzdCBkYW1hZ2UgZG9uZSBpbiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuYy4KICAgICAgICAgICAgUmVwYWlyZWQgdXNlIG9mIGtleSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGluIHNubXB1c20uYy4KICAgICAgICAgICAgICAgICAgICAoQ291bGQgdXNlIHBlZXIgcmV2aWV3IGFzIG15IGV4cGVjdGF0aW9ucyBvZiB1c2UgbWF5IGRpZmZlci4pCiAgICAgICAgICAgIEFkZGVkIChhbmQgcmVtb3ZlZCAxKSBzb21lIFhYWCdzIGluIHBhcnR5IGNvZGUuLi4KCmhhcmRha2VyIDI2IE9jdCA5OCAxMzozNDowMwogICAgLSAoc25tcHVzbS5jKTogZW5hYmxlIE5VTEwgZW5naW5lSURzIGluIHVzZXIgc3RvcmFnZS4KCmhhcmRha2VyIDI2IE9jdCA5OCAxMzozNzowMwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gY3JlYXRpbmcgdXNlcnMgZnJvbSBhIHNlc3Npb246ICBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24oKS4KICAgICAgLSBtYWtlIHByb2JpbmcgdXNlIHRoZSBhYm92ZSB0d2ljZSAob25jZSBmb3IgTlVMTCBlbmdpbmVJRCBhbmQgb25jZQogICAgICAgIGZvciBwcm9iZWQgZW5naW5lSUQpLgogICAgICAtIGJ1ZyBmaXg6ICBzbm1wIHZlcnNpb24gcHJpbnRlZCBpbiBkZWJ1Z2dpbmcgd2FzIG9mZiBieSAtMS4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMDo0MToxOQogICAgLSAoc25tcF9hZ2VudC5jKTogc2V0IGNvbnRleHQgbmFtZSBvbiBlbmdpbmVJRCByZXBvcnQuCgpoYXJkYWtlciAyNiBPY3QgOTggMjA6NDI6MDYKICAgIC0gKHNubXBkLmMpOiBjcmVhdGUgdGhlICJpbml0aWFsIiB1c2VyIGZvciBlbmdpbmVJRDpudWxsLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIyOjEyOjE3CiAgICAtIChrZXl0b29scy5jKTogY2hlY2sgZm9yIE5VTEwgcG9pbnRlciwgbm90ICpwb2ludGVyLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIyOjE1OjAxCiAgICAtIChzbm1wdXNtLmMpOiBtYWxsb2Mga3VsIHNwYWNlIGluIHVzbV9zZXRfcGFzc3dvcmQoKS4KCmRyZWVkZXIgMjggT2N0IDk4IDA5OjM5OjU3CiAgICAtIGdldF9lbmdpbmV0aW1lKCkgbm93IHJldHVybnMgPDAsMD4gdHVwbGUgZm9yIE5VTEwvIiIvbGVuPTAgZW5naW5lSURzLgogICAgCXNjX3tjaGVjayxnZW5lcmF0ZX1fa2V5ZWRfaGFzaCgpIHByb2Nlc3MgaGFzaGVzIDw9IGhhc2ggb3V0cHV0IGxlbi4KICAgIAkJKFN0YWJsZSwgYnV0IGV4cGVjdCBhbiBleHBhbmRlZCB0ZXN0IGluIHNjYXBpdGVzdC5jIHNvb24uKQogICAgCU1pc2M6IFB1dCBNRDVfSEFTSFNJWkVfQllURVMgaW4gcGFydHkuaDsgU05NUF9aRVJPIGluIHRvb2xzLmgKCmxld2lzIDI4IE9jdCA5OCAxMzoxNjo1NAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRGVidWdnZWQgcnVubmluZyBvZiB1c21fZ2VuZXJhdGUuLi4gZnVuY3Rpb24gc28gdGhhdCBpdCBydW5zIHdpdGggbm8KICAgICAgICBhdXRoZW50aWNhdGlvbiAvIG5vIHByaXZhY3kgb3B0aW9ucy4gIChEb24ndCBoYXZlIGEgd2F5IHlldCB0byB0ZXN0CiAgICAgICAgd2l0aCB0aGUgZmFuY3kgc2VjdXJpdHkuKQogICAgICAtIEFkZGVkIGEgbGluZSBmb3IgZGVidWdnaW5nIHdoaWNoIHNldHMgYWxsIGJ5dGVzIG9mIHRoZSBzZWN1cml0eSBoZWFkZXIKICAgICAgICBhbmQgdGhlIFBEVSdzIHJlc3RpbmcgcGxhY2UgdG8gRkYgLSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkuICBUaGlzCiAgICAgICAgbGV0cyBtZSBzZWUgd2hhdCBieXRlcyByZW1haW4gdG8gYmUgcHVuY2hlZCBpbi4gIFRoaXMgbGluZSBpcyBmbHVzaCBsZWZ0CiAgICAgICAgaW4gdGhlIGZpbGUsIGluZGljYXRpbmcgdGhhdCBpdCBpcyB0byBiZSBjdXQgb3V0IGlmIHdlIHJlYWNoIHJlbGVhc2UuCiAgICAgIC0gQWRkZWQgImVtZXJnZW5jeV9wcmludCwiIGFuIHVuY2FsbGVkIHJvdXRpbmUgSSBsaWtlIHRvIGhhdmUgd2hlbiBydW5uaW5nCiAgICAgICAgaW4gZ2RiLiAgSXQgZHVtcHMgYSBmaWVsZCBvZiB4IGJ5dGVzIGluIGhleCwgMjUgdmFsdWVzIHRvIGEgbGluZS4KCmRyZWVkZXIgMjggT2N0IDk4IDE0OjE5OjUyCiAgICAtIEJvdW5kZWQgS01UIGNvZGUgd2l0aCAjZGVmaW5lJ3MgZm9yIEhBVkVfTElCS01UCiAgICAJLSBXaWxsIG5vdCBjb21waWxlIHdpdGhvdXQgZWl0aGVyIEhBVkVfTElCS01UIC1vci0gVVNFX0lOVEVSTkFMX01ENS4KICAgIAktIEFkZGVkIG5ldyBlcnJvciBjb2RlOiBTTk1QRVJSX0tUX05PVF9BVkFJTEFCTEUuCiAgICAJLSBBZGRlZCBhIHRlc3QgZm9yIHByZXZpb3VzIGNoYW5nZXMgdG8gc2NfKl9rZXllZF9oYXNoKCkgZnVuY3Rpb25zLgogICAgCQkoQXVnbWVudGVkIHRlc3RfZG9rZXllZGhhc2goKSBpbiBrZXltYW5hZ2VtZW50LmMuKQoKbGV3aXMgMjkgT2N0IDk4IDA5OjU2OjA4CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBNYWRlIGZpeGVzIHRvIHByb2Nlc3MgaW5jb21pbmcKICAgICAgLSBCZWdhbiB0byBhZGQgY29kZSBmb3IgdGhlIHNlY3VyaXR5IHN0YXRlIHJlZmVyZW5jZQoKbGV3aXMgMjkgT2N0IDk4IDEwOjI3OjM3CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBwcm90b3R5cGUgZm9yIHNldF9yZXBvcnRFcnJvck9uVW5rbm93bklECgpsZXdpcyAyOSBPY3QgOTggMTA6Mjk6MTYKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEZpeGVkIHNvbWUgb2YgV2VzJyByZXBvcnRlZCBwcm9ibGVtcy4KICAgICAgLSBBZGRlZCBjb2RlIHRvIHN0b3JlIHNlY1N0YXRlUmVmCiAgICAgIC0gU3RpbGwgbmVlZCB0byB1c2UgaXQgaW4gZ2VuZXJhdGVfb3V0Z29pbmcKCmxld2lzIDI5IE9jdCA5OCAxNDozMDoxOAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gTm93IG1ha2VzIHVzZSBvZiB0aGUgc3RvcmVkIHNlY1N0YXRlUmVmIGluIGdlbmVyYXRlIG91dGdvaW5nCiAgICAgIC0gSSBob3BlIC0gSSBzdGlsbCBoYXZlbid0IGJlZW4gYWJsZSB0byBnZXQgbWVzc2FnZSBiYWNrIGFuZCBmb3J0aCwKICAgICAgICBpdCdzIHRpbWUgdG8gZmlndXJlIG91dCBob3cgdG8gcnVuIHRoZSBzbm1wZCBzdHVmZiBJIGd1ZXNzLgoKbWFyeiAyOSBPY3QgOTggMTU6MDY6NDkKICAgIGFkZCAjaWRlZiBnYXVyZHMgZm9yIGttdC5oIGFuZCBrbXRfYWxncy5oIGRlcGVuZGVudCBvbiBleGlzdGVuY2Ugb2YgaGVhZGVycyByYXRoZXIgdGhhbiBsaWJrbXQKCmxld2lzIDMwIE9jdCA5OCAwNjo0NToyNAogICAgLSAtIChzbm1wdXNtLmgpCiAgICAgIC0gQWRkZWQgYSBzdGF0ZSByZWZlcmVuY2UgZnJlZSByb3V0aW5lCiAgICAgIC0gQ2hhbmdlZCBuYW1lIG9mIHRoZSByb3V0aW5lIHRvIHNldCB0aGUgcmVwb3J0LW9uLWVycm9yIGZsYWcgc28gdGhhdCBpdAogICAgICAgIGJlZ2lucyB3aXRoICJ1c21fIi4KCmxld2lzIDMwIE9jdCA5OCAwNjo0Njo1MgogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gTW9kaWZpZWQgdGhlIGZyZWUgc3RhdGUgcmVmIHJvdXRpbmUgdG8gdGFrZSBhIHZvaWQgKiBpbnN0ZWFkIG9mIGEKICAgICAgICBzdHJ1Y3Qgd2hhdGV2ZXIgKiwgdGhpcyBwbHVzIGFkZGluZyBpdCB0byB0aGUgLmggZmlsZSBtYWtlcyBpcyB1c2VhYmxlCiAgICAgICAgYnkgdGhlIE1lc3NhZ2UgUHJvY2Vzc29yLgoKbGV3aXMgMzAgT2N0IDk4IDA3OjM0OjI2CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBSZW1vdmVkIGEgcG90ZW50aWFsIG1lbW9yeSBob2xlIChyZXR1cm5pbmcgb24gZXJyb3IgZnJvbSB0aGUgcHJvY2VzcwogICAgICAgIGluY29taW5nIHJvdXRpbmUgd2l0aG91dCBmcmVlaW5nIHRoZSBzZWN1cml0eSBzdGF0ZSByZWZlcmVuY2UpLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDA4OjM4OjUzCiAgICAtIChzbm1wdjMuYyk6IHNubXBfcGVycm9yKCkgLT4gcGVycm9yKCkgWyJtYWxsb2MiXS4KCmhhcmRha2VyIDMwIE9jdCA5OCAwODo0Mzo1MgogICAgLSAoc25tcGQuYyk6CiAgICAgIC0gTWFrZSAtRCBhIHRvZ2dsZS4KICAgICAgLSB1c2UgdXNtX3NldF9yZXBvcnRFcnJvck9uVW5rbm93bklEKCkuCgpoYXJkYWtlciAzMCBPY3QgOTggMDg6NDU6MDkKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBNYWtlIC1EIGEgdG9nZ2xlLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDE2OjQ0OjQzCiAgICAtIChzbm1wX2FnZW50LmMpOiBtYWtlIHRoZSBhZ2VudCB3YXRjaCB0aGUgZXJyb3Igc3RhdHVzIGZyb20gcGFja2V0CiAgICAgIHBhcnNpbmcgaW5zdGVhZCBvZiBkb2luZyBjaGVja3MgaXRzZWxmLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDE2OjUyOjAzCiAgICAtIChzbm1wdXNtLmMpOiB1c21fZ2V0X3VzZXIoKTogYWxsb3cgYSBudWxsIGxlbmd0aCAoYnV0IG5vbiBudWxsCiAgICAgIHBvaW50ZXIpIGVuZ2luZUlELgoKbWFyeiAgMSBOb3YgOTggMTU6NTU6MTEKICAgICAtKGFzbjEuYywgbGNkX3RpbWUuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYywgc25tcHVzbS5jLCBzbm1wdjMuYyk6IHJlbW92ZSBpbnRlcm5hbCBwZHUvdmFybGlzdCwgcGR1X2ZyZWUgdXBkYXRlLCBoYW5kbGUgaW5pdGlhbCB1c2VyIGFzIGRpc2N1c3NlZCwgcmVtb3ZlIGluaXRpYWwgdXNlciBoYWNrLCByZW1vdmUgZW5naW5lSUQgcHJvYmUvUmVwb3J0IGhhY2ssIGhhbmRsZSBzZWN1cml0eVN0YXRlUmVmIGFzIGRpc2N1c3NlZCwgaGFuZGxlIHplcm8tbGVuZ3RoIGNvbnRleHQsIG5vcm1hbGl6ZSBfZW5naW5ldGltZSBhcmcgb3JkZXIsIGluY2x1ZGUgd2VzJ3MgcGF0Y2hlcyBmb3IgbnVsbCBlbmdpbmVpZCBhbmQgc2VjTmFtZUxlbisrCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6MzI6NDMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLAogICAgICBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gdXNlICJzbm1wYXBwIiBhcyBjb25maWd1cmF0aW9uIGZpbGUgbmFtZS4KCmhhcmRha2VyICAxIE5vdiA5OCAxOTozNjo1OQogICAgLSAoc25tcF9hcGkuYyk6IGdlbmVyYXRlIHVzZXItPkt1bCBmcm9tIHNlc3Npb24tPkt1LgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM4OjI5CiAgICAtIChzbm1wX2FnZW50LmMpOiBnZW5lcmF0ZSBhbGwgc29ydHMgb2YgbmV3IFNOTVAgcmVwb3J0cyB3aGVuIG5lZWRlZC4KCmhhcmRha2VyICAxIE5vdiA5OCAxOTozOToyOQogICAgLSAoc25tcGQuYyk6IHVzZSBzbm1wX3BlcnJvcigpIGlmIHNubXBfYWdlbnRfcGFyc2UoKSByZXR1cm5zIDAuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDA6MjUKICAgIC0gKHZhY20uYyk6IGFsbG93IGEgc2VjdXJpdHkgbGV2ZWwgPj0sIG5vdCA9PS4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowMTowNwogICAgLSAoc25tcHYzLmMpOiByZW1vdmUgdXNtX2NyZWF0ZV9pbml0aWFsKCkgYW5kIHNldF9lbmdpbmV0aW1lKCkuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDY6MDQKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBuZXcgZnVuY3Rpb246IGluaXRfdXNtX3Bvc3RfY29uZmlnKHZvaWQpOwogICAgICAtIG1ha2UgdXNtX2dldF91c2VyX2Zyb21fbGlzdCgpIGhhbmRsZSBhIGJvZ3VzIGluaXRpYWwgdXNlciBmbGFnLgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjA5OjM1CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSB1c2UgaW5pdF91c21fcG9zdF9jb25maWcoKTsKICAgICAgLSB1c2UgdXNtX2dldF91c2VyX2Zyb21fbGlzdCB0byBhc2sgbm90IHRvIHJldHVybiB0aGUgZGVmYXVsdCBpbml0aWFsIHVzZXIuCiAgICAgIC0gZml4IHNubXBfdmFyX2FkZF92YXJpYWJsZSgpIHRvIGFsbG93IGNvdW50ZXJzLgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjEwOjE1CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHR5cG8gb24gZGVzIGtleSBpbml0aWFsaXphdGlvbiwgZm9yZ290IHRoZSAnWCcuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MTM6MzYKICAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgIC0gZml4IHJlcG9ydCBPSURzIHRvIGJlIGNvcnJlY3QuCiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCB3aGVuIHNlbmRpbmcgYSByZXBvcnQuCiAgICAgIC0gYWRkZWQgdW5zdXBwb3J0ZWQgc2VjdXJpdHkgbGV2ZWwgcmVwb3J0LgogICAgICAtIHNlbmQgYSBjb3VudGVyIGluc3RlYWQgb2YgYW4gaW50ZWdlci4KCmhhcmRha2VyICAyIE5vdiA5OCAxNjowMToyNAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBnZW5lcmF0ZSBLdSBmb3IgcHJpdiBwcm90b2NvbCB1c2luZyBhdXRoIHByb3RvY29sIGhhc2guCgpoYXJkYWtlciAgMyBOb3YgOTggMDk6Mzc6MDMKICAgIC0gKGxjZF90aW1lLmMpOiBmaXJzdCBieXRlPT0wIGVuZ2luZSBJRCdzIGFyZSB2YWxpZC4KCmxld2lzICA0IE5vdiA5OCAxMTozNToyOQogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gQmV0dGVyIGhhbmRsaW5nIG9mIG51bGwgYW5kIHVua25vd24gZW5naW5lIElEcy4KCmRyZWVkZXIgIDQgTm92IDk4IDExOjQ1OjA4CiAgICAtIChsY2RfdGltZS5jKSBTcGVjaWFsIGNhc2VzIGZvciBOVUxMIG9yIDAgbGVuZ3RoIGVuZ2luZUlEcy4KCmhhcmRha2VyICA0IE5vdiA5OCAyMTo1MzozMgogICAgLSAoc25tcF9hZ2VudC5jKTogY2hlY2sgZW5naW5lSUQgdG8gbWFrZSBzdXJlIGl0cyB1cy4KCmxld2lzICA1IE5vdiA5OCAwOTo1MjozNQogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRml4ZWQgY2FsbCB0byBwcmVkaWN0IGludGVnZXIgbGVuZ3RoIHJvdXRpbmUgdG8gZ2l2ZSBpdCB0aGUgKndob2xlKgogICAgICAgIG51bWJlciwgbm90IGp1c3Qgb25lIChmaXJzdC9sYXN0IGRlcGVuZHMgb24gZW5kaWFuKSBvZiB0aGUgbnVtYmVyLgogICAgICAgIERvaCEgc2NhbGUgcmF0aW5nIDkuCiAgICAgIC0gQWx0ZXJlZCB0aGF0IHJvdXRpbmUgdG8gYmUgbW9yZSBsaWtlIHRoZSBhc25fYnVpbGRfaW50IC4uLiBpLmUuLCBubwogICAgICAgIGxvbmdlciBhc3N1bWVzIHRoZSBsZW5ndGggb2YgdGhlIGxlbmd0aCBpcyAxLiAgRG9oISByYXRpbmcgYSAxLgoKbGV3aXMgIDUgTm92IDk4IDExOjAzOjI0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBGaXhlZCBzb21lIERFQlVHUCBjYWxscyB0byBzaG93IHRoZSByaWdodCBmdW5jdGlvbiwgcGVyaGFwcyB0aGVzZSB3aWxsCiAgICAgICAgYmVjb21lIERFQlVHUEwgaW4gdGhlIGZ1dHVyZS4KCmRyZWVkZXIgIDUgTm92IDk4IDE1OjM3OjI5CiAgICAtIE1vc3RseSBmdW5jdGlvbiBoZWFkZXIgY29tbWVudHMgaW4gcmVhZF9jb25maWcuYywgdXRpbF9mdW5jcy5jLCBzbm1wdjMuYy4KICAgICAgCShQbGVhc2UgZmVlbCBmcmVlIHRvIGNoZWNrIGZvciBhY2N1cmFjeS4uLikKICAgICAgQ2hlY2sgZm9yIE5VTEwgaW4gcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAgQWRkZWQgbGVuZ3RoIGFyZ3VtZW50IHRvIHNubXB2M19nZXRfZW5naW5lSUQoKS4KICAgICAgQ2hlY2sgZm9yIGxlbmd0aChQKTxVU01fTEVOR1RIX1BfTUlOIGluIGdlbmVyYXRlX0t1KCkuCiAgICAgIE5vdGU6ICJldGVzdCAtYSIgaGFzIGEgbmV3IGZhaWx1cmU7IHRvIGJlIGZpeGVkIHdoZW4gVGltZSBMQ0QgcmUtc3RhYmlsaXplcy4KCm1hcnogIDYgTm92IDk4IDE2OjEzOjM3CiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jKTogaGFuZGxlIFJlcG9ydHMgdG8gdHJpZ2dlciByZXNlbmQsIGV4Y2VwdCBmb3IgdW5rbm93bkVuZ2luZUlELCBwYXNzIHNlY1N0YXRlUmVmIHRvIHJlY2VpdmUgc2VjdXJpdHlTdGF0ZSBmcm9tIFVTTSAqV0FSTklORyogZ2V0dGluZyBhdXRob3JpemF0aW9uIGZhaWx1cmUgaW4gVVNNKiBwbGVhc2UgaGVscCAtIHRoaXMgd2FzIG5vdCBoYXBwZW5pbmcgYmVmb3JlIHNvIGRvdWJ0bGVzcyBpdCBpcyBteSBmYXVsdD8KCm1hcnogIDcgTm92IDk4IDEyOjMzOjQ5CiAgICAgLShzbm1wX2FwaS5jLCBsY2RfdGltZS5bY2hdLCBzbm1wdXNtLmMpOiBjbGVhbiB1cCBwcm9ibGVtcyBjYXVzZWQgd2hlbiB3ZSBiZWdhbiB1c2luZyBzZWNTdGF0ZVJlZiwgb3RoZXIgVVNNIGVycm9ycywgaW1wbGVtZW50IExDRF9USU1FX1NZTkNfT1BUIG9wdGltaXphdGlvbgoKbWFyeiAgNyBOb3YgOTggMTI6Mzc6MjEKICAgICAtKHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGNsZWFuIHVwIHByb2JsZW1zIGNhdXNlZCB3aGVuIHdlIGJlZ2FuIHVzaW5nIHNlY1N0YXRlUmVmLCBzZXRfZW5naW5ldGltZSBpbiBMQ0QgcG9zdCBjb25maWcgcmVhZCwgTENEX1RJTUVfU1lOQ19PUFQgdGltZSBsZXJuaW5nIG9wdGltaXphdGlvbiwgaW5jbHVkZSBmaWxlIGZvciBsY2RfdGltZSBhZGRlZCwgbW92ZWQgbWFrZV9yZXBvcnQgdG8gc25tcGxpYiAtIHJlcG9ydCBnZW5lcmF0aW9uIGlzIHN0aWxsIGluIGFnZW50CgpoYXJkYWtlciAgOSBOb3YgOTggMTM6Mjk6MTkKICAgIC0gKHNubXBfYXBpLmMpOiBnZW5lcmF0ZV9rdWwgc2hvdWxkIHVzZSBhdXRocHJvdG9jb2wuCgptYXJ6IDExIE5vdiA5OCAwNzo1MTo0MwogICAgIC0obGNkX3RpbWUuYywgc25tcHVzbS5jKTogZml4ZXMgdG8gaGFuZGxlIG51bGwgZW5naW5lIElEIC0gdG9sZXJhdGVkIHdoZW4gc2VuZGluZywgdW5rbm93biB3aGVuIHJlY2VpdmluZwoKbWFyeiAxMSBOb3YgOTggMDg6MDM6MjQKICAgICAtKHNubXBfYWdlbnQuYyk6IHJlbW92ZSB3b3JrYXJvdW5kIHRvIGRldGVjdCB1bmtub3duRW5naW5lSUQgZXJyb3IgLSBub3cgZG9lbiBpbiBVU00gYXMgc3BlYydkCgpoYXJkYWtlciAxMSBOb3YgOTggMTI6Mzc6NDcKICAgIC0gKHNubXBkLmMsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gbW92ZSBpbml0aWFsIHNldF9lbmdpbmV0aW1lKCkgZnJvbSBhZ2VudCB0byBzbm1wdjMuYy4KICAgICAgLSBuZXcgc25tcC5jb25mIGNvbmZpZ3VyZSBmaWxlIHRva2VuczogZGVmQXV0aFR5cGUsIGRlZlByaXZUeXBlLAogICAgICAgIGRlZlBhc3NwaHJhc2UsIGRlZkF1dGhQYXNzcGhyYXNlLCBkZWZQcml2UGFzc3BocmFzZS4KICAgICAgLSBtaW5pbXVtIGJvb3RzIHVzZWQgaXMgMSwgbm90IDAuCgpoYXJkYWtlciAxMSBOb3YgOTggMTM6MDk6MjYKICAgIC0gKHNubXBkLmMpOiBhZGRlZCBuZWVkZWQgaW5pdF8oKSByb3V0aW5lcy4KCmhhcmRha2VyIDExIE5vdiA5OCAxMzoxMTowMgogICAgLSAoc25tcHYzLmMpOiBkb24ndCBwcmludCBvaWRzIHRvICVzJ3MuCgpoYXJkYWtlciAxMyBOb3YgOTggMDc6NTk6MDQKICAgIC0gKHNubXBkLmMpOiBjcmVhdGUgdGhlIGNvcnJlY3QgaW5pdGlhbCB1c2VyIGFmdGVyIGVuZ2luZUlEIGNvbmZpZ3VyYXRpb24uCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MDM6NDUKICAgIC0gKHVzbVVzZXIuYyk6IGRvbid0IGluaXRpYWxpemUgdXNlciBoZXJlLgoKaGFyZGFrZXIgMTMgTm92IDk4IDA4OjA0OjQyCiAgICAtIChzbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgY29uZmlndXJhdGlvbiBsaW5lcyBnZXQgcGFyc2VkIGVhcmx5LgoKaGFyZGFrZXIgMTMgTm92IDk4IDA4OjE0OjA0CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIG1vcmUgYXBwcm9wcmlhdGUgZW5naW5lSUQgY2hlY2tpbmcgZm9yIHVzZXJzICh3YXMgYSBidWcpLgogICAgICAtIHVzbV9hZGRfdXNlcigpOiBkb24ndCBkdXBsaWNhdGUgdXNlcnMgd2l0aCB0aGUgc2FtZSBuYW1lL2VuZ2luZUlELgoKaGFyZGFrZXIgMTUgTm92IDk4IDEwOjE5OjU1CiAgICAtIChzbm1wZC5jKTogbW92ZSBwb3N0X2NvbmZpZyBpbml0IHJvdXRpbmVzIHRvIGJleW9uZCBwZXJzaXN0ZW50IHJlYWRpbmcuCgpoYXJkYWtlciAxNSBOb3YgOTggMTI6NTU6MzgKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBuZXcgbWFrZSB0YXJnZXQ6IHRlc3QKICAgICAgLSBtYWtlIGFsbCBkb2Vzbid0IGNvbXBpbGUgdGhlIHRlc3RpbmcgZGlyZWN0b3J5LgoKaGFyZGFrZXIgMTUgTm92IDk4IDEzOjAwOjQxCiAgICAtICh1c21Vc2VyLmMsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSB1c21fcmVtb3ZlX3VzZXIoKToKICAgICAgICAtIHByb3Blcmx5IHVwZGF0ZXMgdGhlIGxpc3QgcG9pbnRlci4KICAgICAgICAgIC0gcmVxdWlyZXMgYSAqKiBwb2ludGVyIHRvIHRoZSBsaXN0IHRvIGRvIHRoaXMuCiAgICAgICAgLSBjaGVjayBhZ2FpbnN0IGEgTlVMTCBsaXN0IHBvaW50ZXIuCiAgICAgIC0gdXNtX2Nsb25lRnJvbV91c2VyKCk6CiAgICAgICAgLSB0aGUga2V5cyB3ZXJlIG5vdCBiZWluZyBwcm9wZXJseSBkdXBsaWNhdGVkLgogICAgICAtIHVzbV9jbG9uZV91c2VyKCk6IGRlbGV0ZWQuCiAgICAgIC0gdXNtX2NyZWF0ZV91c2VyKCk6IGNyZWF0ZWQsIGFuZCB1c2VkIGluIHBsYWNlIG9mIHVzbV9jbG9uZV91c2VyKE5VTEwpLgoKaGFyZGFrZXIgMTUgTm92IDk4IDEzOjAxOjI3CiAgICAtIChldGltZXRlc3QuYyk6IGZpeCBjYWxscyB0byBzZXQvZ2V0X2VuZ2luZXRpbWUoKS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNDoxNDowNwogICAgLSAoSVNTVUVTKTogZmluaXNoZWQgYSBjb3VwbGUgb2YgdGhpbmdzLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE0OjE5OjIxCiAgICAtIChJU1NVRVMsIHNubXBfYWdlbnQuYyk6IGZpeCBwZHUgZnJlZWluZyBwcm9ibGVtLCB0aGFua3MgdG8gSm9lJ3MKICAgICAgbWVyZ2Ugb2YgdGhlIHBkdSBzdHJ1Y3R1cmVzLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE1OjUwOjMzCiAgICAtIChJU1NVRVMpOiBtaXNjIGRhdGUgY2hhbmdlcyBhbmQgbWFyayB0aGF0IEknbSB3b3JraW5nIG9uIHNvbWV0aGluZy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNTo1MzoyNAogICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gY3JlYXRlL2NhbGwgc25tcF9zaHV0ZG93bigpLgogICAgICAtIHJlbW92ZSB0aGUgInBlcnNpc3RlbnQuIiBwYXJ0IG9mIHRoZSBwZXJzaXN0ZW50IC5jb25mIG5hbWUuCiAgICAgIC0gcmVuYW1lIGluc3RlYWQgb2YgdW5saW5rIG9sZCBwZXJzaXN0ZW50IC5jb25mIGZpbGUuCgpoYXJkYWtlciAxNSBOb3YgOTggMTc6Mzc6MDAKICAgIC0gKElTU1VFUywgc25tcHYzLmMpOiB3aGVuIGVuZ2luZUlEIGNoYW5nZXMgZnJvbSB0aGUgcHJldmlvdXMgcnVuLAogICAgICByZXNldCBlbmdpbmVCb290cyB0byAxLiAgKHJlcXVpcmVzIHN0b3JpbmcgdGhlIGxhc3QgZW5naW5lSUQgdXNlZCkuCgpoYXJkYWtlciAxNiBOb3YgOTggMjA6MTA6MTkKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcGQuYywgc25tcF9taWIuYywgc25tcF9taWIuaCwgc25tcF9hcGkuYywKICAgICAgc25tcF9hcGkuaCk6CiAgICAgIC0gdXNlIG5ldyBsaWJyYXJ5IGJhc2VkIHN0YXRpc3RpY3MgY291bnRlciBldmVyeXdoZXJlLgoKaGFyZGFrZXIgMTYgTm92IDk4IDIwOjE3OjAxCiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgaW50ZXJmYWNlcy5jLCBzeXN0ZW0uYywgcmVnaXN0cnkuYyk6CiAgICAgIC0gdXNlIGhlYWRlcl9nZW5lcmljIGluIGEgZmV3IG1vcmUgcGxhY2VzLgogICAgICAtIHN0YW5kYXJkaXplIHRoZSBNQVRDSF9GQUlMRUQgYW5kIE1BVENIX1NVQ0NFRURFRCBkZWZpbml0aW9ucy4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNDo1NgogICAgLSAoc25tcHVzbS5jKTogdXNtX2NyZWF0ZV9pbml0aWFsX3VzZXIoKSBhY2NlcHRzIG5hbWUgJiBhdXRoL3ByaXYgdHlwZXMuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6MjU6NTIKICAgIC0gKHNubXBkLmMpOgogICAgICAtIGxvZyBQSUQgdG8gZmlsZSB1c2luZyAtUC4KICAgICAgLSBjcmVhdGUgdGVtcGxhdGUgdXNlcnM6ICB0ZW1wbGF0ZU1ENSAmIHRlbXBsYXRlU0hBLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI2OjMwCiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBuZXcgZmxhZzogLXEgPSBxdWlldC4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNzoxMgogICAgLSAoZGVtbyk6IHNjcmlwdCB0byBydW4gbGlzdCBvZiBjb21tYW5kcyByZXF1aXJlZCBmb3IgdGhlIGRlbW8uCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6Mjg6NTgKICAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgdGVzdGluZyB0YXJnZXRzLgoKaGFyZGFrZXIgMjIgTm92IDk4IDE0OjM2OjUzCiAgICAtIChkZW1vKTogcXVvdGUgdGhlIHBhc3MgcGhyYXNlLgoKaGFyZGFrZXIgMjIgTm92IDk4IDIyOjE2OjQ0CiAgICAtIChkZW1vKToKICAgICAgLSBwYXNzL2ZhaWwgdHlwZSBvdXRwdXQuCiAgICAgIC0gaG9zdHMgb3RoZXIgdGhhbiBsb2NhbGhvc3QuCiAgICAgIC0gY2FwYWJpbGl0eSB0byBsb29rIGZvciBzdHVmZiBpbiBvdXRwdXQgb2YgY29tbWFuZHMuCgpoYXJkYWtlciAyMiBOb3YgOTggMjI6MjY6MjgKICAgIC0gKGRlbW8pOiB0dXJuIGVuY3J5cHRpb24gb24gZm9yIHRlc3RzIHRoYXQgbmVlZCBpdC4KCmhhcmRha2VyIDIzIE5vdiA5OCAwNzoxNDowNQogICAgLSAoa2V5bWFuYWdldGVzdC5jKTogcHJpbnQgTUQ1L1NIQSBiZWZvcmUgdGhlIGtleWNoYW5nZSBzdHJpbmcuCgpoYXJkYWtlciAyMyBOb3YgOTggMDc6MTY6MDEKICAgIC0gKGRlbW8pOiBmaXggdGhlIGtleSBjaGFuZ2Ugc3RyaW5nIGV4dHJhY3Rpb24gdG8gbG9vayBmb3IgdGhlIE1ENSB2ZXJzaW9uLgoKaGFyZGFrZXIgMjMgTm92IDk4IDA3OjM4OjQ0CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBiZXF1aWV0IHNob3VsZCBiZSAwIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAyMyBOb3YgOTggMDg6MDY6MzQKICAgIC0gKGRlbW8pOiBidWcgZml4ZXMuCgpkcmVlZGVyIDI0IE5vdiA5OCAxNjo0Mzo1MAogICAgRml4ZWQgYnVnIGluIFVTTSBwcmV2ZW50aW5nIGV4Y2hhbmdlIG9mIGNyeXB0ZWQgcGFja2V0cy4gIENvZGUgYWRkZWQKICAgIAl0byBwcm9wZXJseSBlc3RpbWF0ZSBzaXplIG9mIGNyeXB0ZWQgdGV4dCBnaXZlbiB1bi1wYWRkZWQgcGxhaW50ZXh0LgogICAgCUZvdW5kL2ZpeGVkIEtNVCBwcm90b3R5cGUgY29uZmxpY3QgdGhhdCBjYXVzZWQgdGhlIGdpdmVuIElWIHRvIGJlCiAgICAJaWdub3JlZCBhdCBjcnlwdC9kZWNyeXB0IHRpbWUuCiAgICBzZXR1cF9lbmdpbmVJRCgpIGhhcyBhIG5ldyBhcmd1bWVudCB0byBhbGxvdyBJRCBzdHJpbmdzIHRvIGJlIHJldHVybmVkCiAgICAJdG8gY2FsbGVyLgogICAgTmV3IGZpbGUgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oIHRvIHB1dCBzdGF0aWMgZGVjbGFyYXRpb25zIGluIGEgc2luZ2xlCiAgICAJcGxhY2UuLi4KICAgIEZhaWx1cmUgb2Ygc3RhdCBpbmNyZW1lbnRzIGluIFVTTSBubyBsb25nZXIgY2F1c2UgZmFpbHVyZSBpbiB0aGUgY2FsbGluZwogICAgCWZ1bmN0aW9uLgogICAgQWRkZWQgdXRpbGl0eSBhcHBzL2VuY29kZV9rZXljaGFuZ2UuICAoLWggZm9yIHVzYWdlLikKICAgIERJRkZUSU1FIG1hY3JvIHRvIHJlcGxhY2Ugb2Z0IHJlcGVhdGVkIGNvZGUuCiAgICBTaG9ydGVuZWQgc29tZSBWQUNNIGRlYnVnZ2luZyBvdXRwdXQgdG8gYSBzaW5nbGUgbGluZSBmcm9tIG1hbnkuCiAgICBNb3JlIGNvbW1lbnRzLiAgTW9yZSB0cm91YmxlIHNwb3RzIG1hcmtlZCBYWFguCiAgICBDb252ZXJ0ZWQgb2Z0IHVzZWQgbWFnaWMgbnVtYmVycyB0byBzeW1ib2xpYyBjb25zdGFudHMgKHNvbWUgcHJlLWV4aXN0aW5nKS4KICAgIENsZWFuZWQgdXAgc29tZSBzaW1wbHkgZml4ZWQgYnVpbGQgd2FybmluZ3MuCiAgICBVcGRhdGVkIG5vbmV4cG9ydC9jcnlwdG8vUkVBRE1FLiAgU3RpbGwgbmVlZHMgd29yay4KCm1hcnogMjUgTm92IDk4IDA3OjQ0OjI4CiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZGVkIC1UIDxib290cz4gPHRpbWU+IHRvIHNldCBhbiBpbml0aWFsIChhdXRoZW50aWNhdGVkKSB0aW1lIHZhbHVlIGZvciB0aGUgZGVzdGluYXRpb24gZW5naW5lSURzIGJvb3RzL3RpbWUpCgptYXJ6IDI1IE5vdiA5OCAwNzo0ODo0OQogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcC5oLCBzbm1wX2NsaWVudC5jKTogaGFuZGxlIGluY29taW5nIFJlcG9ydHMgLSBwcm9wYWdhdGUgU1RBVF9FUlJPUiB0byBhcHBzIHdpdGggYXBwcm9wLiBlcnJvciBtZXNzYWdlLCBoYW5kbGUgcmVjb3ZlcmFibGUgZXJyb3Igbm90SW5UaW1lV2luZG93IGFuZCBlbmdpbmVJZCBkaXNjb3ZlcnksIHNlbmQgcmVwb3J0cyB3aXRoIHNlY0xldmVsPT1ub0F1dGhOb1ByaXYgZXhjZXB0IG5vdEluVGltZVdpbmRvdwoKbWFyeiAyNSBOb3YgOTggMDc6NTE6NTAKICAgICAtKHRvb2xzLmMpOiBvb3BzIGJhY2sgb3V0IGxpdHRsZSBjb21waWxlIHdvcmthcm91bmQgSSBkaWQgbm90IG1lYW4gdG8gY29tbWl0CgptYXJ6IDI1IE5vdiA5OCAwNzo1NDowMQogICAgIC0oc25tcGQuYywgc25tcF9hZ2VudC5jKTogaW5pdGlhbGl6ZSBwaWRfZGlsZSwgb25seSBhbGxvY2F0ZSBlbmdpbmVJRCBtZW0gZm9yIFJlcG9ydHMgd2hlbiBzZW5kaW5nIFJlcG9ydCwgZml4IHZlcnNpb24gaW5mbyBpbiBkZWJ1ZyBtZXNzYWdlCgpoYXJkYWtlciAyNSBOb3YgOTggMDc6NTY6MzAKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcE1QRFN0YXRzLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSBBZGRlZCBhIGNvdXBsZSBvZiBERVVCR1Agc3RhdGVtZW50cyBhbmQgYSBjb3VwbGUgb2YgY29tbWVudCBjbGFpcmlmaWNhdGlvbnMuCgpoYXJkYWtlciAyNSBOb3YgOTggMTI6Mzk6MDEKICAgIC0gKHNubXB1c20uYyk6IGNoYW5nZXMgaW4gY29tbWVudHMgZm9yIGNsYXJpZmljYXRpb24uCgpoYXJkYWtlciAyNSBOb3YgOTggMTI6NDA6MzUKICAgIC0gKHNubXB2My5jKTogY2hhbmdlcyBpbiBjb21tZW50cyBmb3IgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjo1NDowOAogICAgLSAoc25tcF9hZ2VudC5jKTogdmVyc2lvbiBjaGVja3MgYWdhaW5zdCB2MmMvdjJwIC0+ICF2MS4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMzowNDowMgogICAgLSAoc25tcGQuYyk6IGNvbW1lbnQgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxNzoxMjowMgogICAgLSAoZGVtbyk6CiAgICAgIC0gZW5jb2RlX2tleWNoYW5nZSB1c2FnZS4KICAgICAgLSBtb3ZlIGNsb3NlciB0byA0MiwgYnV0IGxlYXZlIHJvb20gZm9yIGEgZmV3IG1vcmUgdGhpbmdzLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIyOjU4OjQzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgdGNnZXRhdHRyLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIyOjU5OjU2CiAgICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBjcmVhdGUgc25tcHYzX3NldF9lbmdpbmVCb290c0FuZFRpbWUoKS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowMDo0NwogICAgLSAodG9vbHMuYyk6IGR1bXBfZW5naW5lSUQgc2hvdWxkICpuZXZlciBldmVyKiBtb2RpZnkgdGhlIHBhc3NlZCBsZW5ndGggcGFyYW0uCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MDI6NDkKICAgIC0gKGRlbW8pOgogICAgICAtIC1zOiAxIHNlYyBzbGVlcCBpbnN0ZWFkIG9mIGtleXByZXNzLgogICAgICAtIGRvIHRpbWUgdGVzdHMuCiAgICAgIC0gdXNlIGVuY29kZV9rZXljaGFuZ2UuCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MDQ6MTAKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oKToKICAgICAgLSBTaGhoaGguLi4uLiAgYm9vdHMgYW5kIHRpbWUgYXJlIHdyaXRhYmxlLi4uICBEb24ndCB0ZWxsIGFueW9uZS4uLiBTaGhoLi4uCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MTU6MDUKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6CiAgICAgIC0gdXNlIHVfY2hhcidzIHdoZXJlIGFwcHJvcHJpYXRlLgogICAgICAtIHNvbWUgZGVidWdnaW5nIHN0YXRlbWVudHMgYWRkZWQuCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MzI6NTEKICAgIC0gKHVzbVVzZXIuYyk6CiAgICAgIC0ga2V5Y2hhbmdlIG5lZWRzIGEgdGVtcCBidWZmZXIuCiAgICAgIC0gYSBmZXcgZGVidWdnaW5nIHN0YXRlbWVudHMuCgpoYXJkYWtlciAyNyBOb3YgOTggMTA6MjA6NDUKICAgIC0gKHNubXB1c20uYyk6IHVzbV9zZXRfc2FsdCgpIGFjY2VwdHMgYSBrZXkgd2hpY2ggaXMgdG9vIGxvbmcgKFNIQSBmb3IgREVTKS4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDoyMzowMwogICAgLSAoc25tcF9hcGkuYyk6IHNubXB2M19zZW5kX3JlcG9ydCgpIHJlbW92ZXMgdGhlIHNlY1N0YXRlUmVmZXJlbmNlCiAgICAgIGZyb20gdGhlIHBkdSBpcyB0aGVyZSBpcyBvbmUuICBJdCBzaG91bGRuJ3QgYmUgdXNlZCBmb3IgcmVwb3J0cy4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDozMToxMgogICAgLSAoZGVtbyk6IGZpbmFsIGZpeGVzIGZvciBhbGwgY3VycmVudCB0ZXN0cyB0byB3b3JrLgoKaGFyZGFrZXIgMjcgTm92IDk4IDE1OjE1OjI1CiAgICAtIChkZW1vKToKICAgICAgLSAtVDogcGF1c2UgYWZ0ZXIgdGVzdCBjb21wbGV0aW9ucy4KICAgICAgLSAqKioqIDQyLzQyIHRlc3RzIHBhc3NlZAoKaGFyZGFrZXIgMjcgTm92IDk4IDE2OjU1OjE1CiAgICAtIChzbm1wcGFzcy5jKTogYmVnaW5uaW5ncyBvZiBhIHNubXAgcGFzc3dvcmQgY2hhbmdlcjoKICAgICAgLSBzdG9sZSBtb3N0IGNvZGUgZnJvbSBzbm1wc2V0LmMgYW5kIGVuY29kZV9rZXljaGFuZ2UuYy4KICAgICAgLSBuZWVkIHRvIGZpeDogbXVzdCBzcGVjaWZ5IG1vc3QgZXZlcnl0aGluZyBvbiB0aGUgY29tbWFuZCBsaW5lIChpZSwKICAgICAgICAuY29uZiBmaWxlIHRva2VucyBkb24ndCB3b3JrIGhlcmUpLgogICAgICAtIHZlcnkgdW5jbGVhbiBhbmQgYSBxdWljayBoYWNrLgogICAgICAtIGRpZmZlcnMgZnJvbSBlbmNvZGVfa2V5Y2hhbmdlLCBpbiB0aGF0IGl0IGFjdHVhbGx5IHByZWZvcm1zIHRoZSBzZXQuCgpoYXJkYWtlciAyNyBOb3YgOTggMTY6NTU6MjMKICAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHNubXBwYXNzLmMKCmhhcmRha2VyIDI3IE5vdiA5OCAxNjo1Njo0NwogICAgLSAoLmN2c2lnbm9yZSk6IHNubXBwYXNzIGFuZCBlbmNvZGVfa2V5Y2hhbmdlCgpoYXJkYWtlciAyOCBOb3YgOTggMTE6NDE6MDIKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSBtZXJnZSB3cml0ZV8ga2V5Q2hhbmdlIGFuZCBvd25LZXlDaGFuZ2UgZnVuY3Rpb25zIGludG8gb25lLiAgU2luY2UKICAgICAgICB0aGUgdXNlciBuYW1lIGlzIG5vdCBwYXNzZWQgaW4sIHRoZSBjYWxsaW5nIG1vZHVsZSB3aWxsIGhhdmUgdG8KICAgICAgICBjaGVjayBmb3IgaXQgdW50aWwgd2UncmUgd2lsbGluZyB0byBjaGFuZ2UgdGhlIEFQSSBvciB0aGUgVkFDTSBpcwogICAgICAgIGZpeGVkIGFuZCB0aGUgb3duS2V5Q2huYWdlIG9iamVjdHMgY2FuIGJlIG9ic29sZXRlZC4KCmhhcmRha2VyIDI4IE5vdiA5OCAxMTo0MTozNgogICAgLSAoc25tcHBhc3MuYyk6IC1vOiB1c2UgdGhlIG93bktleUNoYW5nZSBvYmplY3QuCgptYXJ6IDI5IE5vdiA5OCAxOTozMjoyMQogICAgIChkZW1vKTogZml4IHRpbWUgc3luYyB0ZXN0IHRvIHRlc3QgZm9yIHRpbWVvdXQgYXMgZXhwZWN0ZWQgd2hlbiBhcHAgY2xvY2sgaXMgc2V0IGFoZWFkCgptYXJ6IDI5IE5vdiA5OCAxOTozNDo0MQogICAgIC0oc25tcF9hcGkuYyk6IG1vdmUgY29tbWFuZGxpbmUgYmFzZWQgYm9vdHMvdGltZSBzZXR0aW5nIGNvZGUgYWZ0ZXIgZW5naW5lSUQgZGlzY292ZXJ5IGluIGNhc2UgZW5naW5lSUQgd2FzIG5vdCBzdXBwbGllZCBvbiBjb21tYW5kIGxpbmUgYXMgd2VsbAoKaGFyZGFrZXIgMzAgTm92IDk4IDIyOjAwOjIzCiAgICAtIChkZW1vKTogYmV0dGVyIGRvY3VtZW50IHRoZSByZXF1aXJlZCAuY29uZiBmaWxlIHBpZWNlcy4KCmhhcmRha2VyIDMwIE5vdiA5OCAyMjoxMjoxMAogICAgLSAoZGVtbyk6IGVuYWJsZSAtQzogYXV0by1jb25maWd1cmUgdGhlIGFnZW50LgoKd2JhYnNvbiAgMSBEZWMgOTggMDc6NTY6NTUKICAgIEZpeGVkIGEgbGlicmFyeSBzZWFyY2ggb3JkZXIgYnVnIHdoaWNoIGhhZCAvdXNyL2xvY2FsL3NzbC9saWIgYW5kIC91c3IvbG9jYWwvbGliCiAgICBzZWFyY2hlZCBiZWZvcmUgLi4vc25tcGxpYi4gVGhpcyBjYXVzZWQgdW5yZXNvbHZlZCByZWZlcmVuY2VzIHdoZW4gdHJ5aW5nIHRvCiAgICBsaW5rIHNubXBkIGFuZCB0aGUgYXBwbGljYXRpb25zLiBUbyBkbyB0aGlzIExPQ0FMX0xJQlMgd2FzIGNyZWF0ZWQgYW5kIC4uL3NubXBsaWIKICAgIHdhcyByZW1vdmVkIGZyb20gTElCUyBhbmQgcGxhY2VkIHRoZXJlLiBUaGVuIExPQ0FMX0xJQlMgd2FzIGFkZGVkIGJlZm9yZQogICAgTERGTEFHUyBpbiB0aGUgbGluayBjb21tYW5kcy4gYWdlbnQvTWFrZWZpbGUuaW4gYW5kIGFwcHMvTWFrZWZpbGUuaW4gd2VyZSBtb2RpZmllZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NDoyOAogICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6MjgKICAgIC0gKHRvb2xzLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU1OjQ5CiAgICAtICh1c21Vc2VyLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU1OjU1CiAgICAtIChzbm1wcGFzcy5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCm1hcnogIDIgRGVjIDk4IDA4OjMyOjI5CiAgICAgLShkZW1vLmMpOiB0ZXN0ICMzOCB3aWxsIHNob3cgdGhlIDYgbWVzc2FnZSBleGNoYW5nZSBzaW5jZSBpdCBpcyBpbml0aWFsaXplZCB3aXRoIGEgc2ltdWxhdGVkIGF1dGhlbnRpYyBvb3RzL3RpbWUgd2hpY2ggZGVmZWF0cyB0aGUgTENEX1RJTkVfU1lOQ19PUFQKCmhhcmRha2VyICAyIERlYyA5OCAxNDoyNjowOAogICAgLSAoc25tcF9hZ2VudC5jKTogYWZ0ZXIgZGV0ZWN0aW9uIG9mIHNubXAgdmVyc2lvbiwgZXJyb3IgY29kZXMgd2VyZSByZXZlcnNlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxNToxODo1MwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGFkZGVkIHYzIHNwZWNpZmljIHRva2VuIG5vdGVzLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE1OjE5OjQ3CiAgICAtIChNYWtlZmlsZS5pbiwgc25tcC5jb25mLjUuZGVmKTogY3JlYXRlZCBhIHNubXAuY29uZiBtYW51YWwgcGFnZS4KCmhhcmRha2VyICAyIERlYyA5OCAxNzowMzoyNwogICAgLSAoLmN2c2lnbm9yZSk6IHNubXAuY29uZi41IGlnbm9yZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTc6MDM6NDgKICAgIC0gKHNubXAuY29uZi41LmRlZik6IG1pYmRpcnMsIG1pYnMsIGFuZCBtaWJmaWxlcyBkb2N1bWVudGVkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM4OjEyCiAgICAtIChsY2RfdGltZS5jKTogY29tbWVudCBjbGFpcmlmaWNhdGlvbi4KCmhhcmRha2VyICAyIERlYyA5OCAxOTozOToyMgogICAgLSAobWliLmMpOiB1bm5lZWRlZCBYWFggcmVtb3ZlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxOTozOTo0NwogICAgLSAocmVhZF9jb25maWcuYyk6IG1ha2UgY29weV93b3JkKCkgc2tpcCBhaGVhZCBvZiBzcGFjZSBvbiByZXR1cm5lZCBwb2ludGVyLgoKZHJlZWRlciAgMyBEZWMgOTggMTg6NDQ6NDkKICAgIENvLWNoZWNraW4gd2l0aCBuZXcgdmVyc2lvbiBvZiBLTVQgKGxvY2F0ZWQgaW4gbm9uZXhwb3J0L0tNVC1zbm1wKS4KICAgIGttdF9yYW5kb20oKSBzaWduYXR1cmUgY2hhbmdlZCBpbiBzY19yYW5kb20oKS4KICAgIFNlY29uZCB2ZXJzb24gdGVzdGluZy9kZW1vIGF0IHRlc3RpbmcvZGVtbzIqIC4KCmhhcmRha2VyICAzIERlYyA5OCAyMjoyMDowNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBuZXcgZmxhZyBhbmQgZGVmaW5lIC0tZW5hYmxlLXRlc3RpbmctY29kZSAtPiBTTk1QX1RFU1RJTkdfQ09ERS4KCmhhcmRha2VyICAzIERlYyA5OCAyMjoyMjo1OQogICAgLSAoa2V5dG9vbHMuYyk6IHVzZSBTTk1QX1RFU1RJTkdfQ09ERSBkZWYgdG8gcHJvdGVjdCBzb21lIHNlY3Rpb25zLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIzOjQ4CiAgICAtIChzY2FwaS5jKTogdGVzdGluZyBERUJVR1AgZm9yIHByaW50aW5nIG91dCBrZXlzLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjI2OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gcHJvdGVjdCBzZWN0aW9ucyB3aXRoIFNOTVBfVEVTVElOR19DT0RFLgogICAgICAtIGFsbG93IConcyBpbiBmaWVsZHMgZm9yIGVuZ2luZUlEcyBmb3Iga2V5IHNldHRpbmcgLmNvbmYgZW50cmllcy4KCmhhcmRha2VyICAzIERlYyA5OCAyMjozMjoyMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIG9ubHkgbWFrZSB0aW1lL2Jvb3RzIHNldGFibGUgd2hlbiBTTk1QX1RFU1RJTkdfQ09ERSBpcyBkZWZpbmVkLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIzOjE3OjE3CiAgICAtIChkZW1vKTogcmVtb3ZlZC4KCm1hcnogIDQgRGVjIDk4IDA4OjA1OjU5CiAgICAgLShzbm1wY21kLjEpOiB1cGRhdGUgbWFuIHBhZ2UgZm9yIG5ldyBWMyBwYXJzZSBhcmdzCgpoYXJkYWtlciAgNCBEZWMgOTggMTE6MDM6MTQKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wcGFzcy5jLCBzbm1wdXNtLmMpOgogICAgICAtIGRlbGV0ZSBzbm1wcGFzcy4KICAgICAgLSBjcmVhdGUgZmlyc3QgcGFzcyBzbm1wdXNtLmMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTE6MDQ6MDkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0aGUgKiBmb3IgZW5naW5lSUQgZmVhdHVyZS4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0NTo0MwogICAgLSAoVUNELURFTU8tTUlCLnR4dCk6IGRlbW8gbWliIG9iamVjdHMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NDY6MDkKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uL3Jlc2VydmUgdGhlIGRlbW8gb2JqZWN0IGdyb3VwIGluIGEgY29tbWVudC4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0OToyMQogICAgLSAoLmN2c2lnbm9yZSk6IC5nZGIgc3R1ZmYKCmhhcmRha2VyICA0IERlYyA5OCAxNjo1MDowNAogICAgLSAodWNkRGVtb1B1YmxpYy5jLCB1Y2REZW1vUHVibGljLmgpOgogICAgICAtIGV4YW1wbGVzL3VjZERlbW9QdWJsaWMgbW9kdWxlOiAgc2ltcGxlIG9iamVjdHMgZm9yIGRvaW5nIGRlbW9zLAogICAgICAgIGluY2x1ZGluZyByZW1vdGUgcmVzZXR0aW5nIG9mIGtleXMgdG8gYSBrbm93biBwYXNzd29yZHMgZm9yIGEgbGlzdAogICAgICAgIG9mIHVzZXJzLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjI4CiAgICAtICh1Y2REZW1vUHVibGljLmNtZHMpOiBjb21tYW5kcyB0byBydW4gdG8gc2V0IHVwIGZvciB0aGUgZGVtby4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo1MDozOAogICAgLSAodWNkRGVtb1B1YmxpYy5jb25mKTogY29uZmlndXJhdGlvbiBmaWxlIGxpbmVzIG5lZWRlZCBmb3IgdGhlIGRlbW8uCgpoYXJkYWtlciAgNCBEZWMgOTggMTg6Mzg6MDUKICAgIC0gKHZlcnNpb24uaCwgc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0KTogNC4wLnByZTEgdGFnCgpkcmVlZGVyICA1IERlYyA5OCAxNjo1Mjo0OQogICAgRXh0ZW5kZWQgZGVtbzIgaW50byBkZW1vLnJlbW90ZSB0byBhbGxvdyB0ZXN0aW5nIGJldHdlZW4gPGhlcmU+IGFuZAogICAgdWNkLXNubXAudWNkYXZpcy5lZHUuCgptYXJ6IDEzIERlYyA5OCAxNDo1NzowMgogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuYyk6IGFkZCBzdXBwb3J0IGZvciBtc2dJRCB3aGljaCBpcyBkaWZmZXJlbnQgZnJvbSByZXFpZCBhbmQgd2hpY2ggaW5jcmVtZW50cyB3aXRoIGVhY2ggcmV0cnkuIE5vdGU6IGxhdGUgUmVzcG9uc2VzIHdpbGwgYmUgZHJvcHBlZCBpZiB0aGV5IGFycml2ZSBhZnRlciB0aW1lb3V0IC0gdGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB2MSBiZWhhdmlvdXIgd2hlcmUgYSBsYXRlIFJlc3BvbnNlIHRvIHRoZSBpbml0aWFsIHRyeSB3aWxsIGJlIGFjY2VwdGVkIHVwIHRvIHRoZSB0aW1lIHdoZXJlIHRoZSBsYXN0IHJldHJ5IHRpbWVzIG91dAoKaGFyZGFrZXIgMTMgRGVjIDk4IDE4OjM5OjAyCiAgICAtIChtaWIyYyk6IG1pbm9yIHVwZGF0ZSAobmVlZHMgbW9yZSkgZm9yIG5ld2VyIHNubXAgcGVybCBtb2QuCgpoYXJkYWtlciAxMyBEZWMgOTggMTg6Mzk6NDQKICAgIC0gKC5jdnNpZ25vcmUpOiAuZ2RiLmF1dG8uaW5pdAoKaGFyZGFrZXIgMTMgRGVjIDk4IDE4OjQxOjExCiAgICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOiByZW1vdmVkIHVubmVlZGVkIGxpbnV4IGlmZGVmLgoKaGFyZGFrZXIgMTcgRGVjIDk4IDE1OjU5OjEwCiAgICAtIChyZWFkX2NvbmZpZy5jKTogd3JhcCBjb25maWcgbGluZSBwcmludCdzIGluIFNOTVBfVEVTVElOR19DT0RFIGNoZWNrcy4KCmhhcmRha2VyICAyIERlYyA5OCAyMTo1NTowNAogICAgLSAoanVzdCBhYm91dCBhbGwgZmlsZXMpOiBtZXJnZSBvZiBWMy1iMSBjaGFuZ2VzIGludG8gVjMtYjIgYnJhbmNoLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIyOjI3OjU0CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCB1c21Vc2VyLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgICByZWFkX2NvbmZpZy5oLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsIHNubXB2My5jLCB0b29scy5oKToKICAgICAgLSBmaW5hbCBjaGFuZ2VzPyB0byBWMy1iMiBtZXJnZS4KCmhhcmRha2VyICAyIERlYyA5OCAyMjoyOTo1MgogICAgLSAocmVhZF9jb25maWcuYyk6IG1ha2UgdGhhdCAyOCBlcnJvcnMgZnJvbSB3aGl0ZXNwYWNlIGNoYW5nZXMuCgpoYXJkYWtlciAgMiBEZWMgOTggMjI6Mzc6MDgKICAgIC0gKHNubXBkLmMpOiBjYWxsIGluaXRfc25tcHYzIGJlZm9yZSAtSCB1c2FnZSBpbmZvLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDEwOjMzOjQ1CiAgICAtICgqKTogbWVyZ2UxIHRvIFYzLWIzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDE4OjU2OjE4CiAgICAtICgqKTogbWVyZ2UyIHRvIFYzLWIzLgoKZHJlZWRlciAxNyBEZWMgOTggMDg6MDU6MDQKICAgIENyZWF0dXJlIGNvbWZvcnQ6IC9ldGMgc2NyaXB0IHRvIChyZSlzdGFydCBhbmQgc3RvcCBzbm1wZCBhbmQgc25tcHRyYXBkCiAgICBhbmQga2VlcCAoY29tcHJlc3NlZCkgY29waWVzIG9mIHByZXZpb3VzIGxvZ2ZpbGVzLiAgSW50ZW5kZWQgdG8gYmUgdW5pdmVyc2FsCiAgICB0byBMaW51eCwgU29sYXJpcywgRnJlZUJTRCwgLi4uIC4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzozNjozNwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkZWZpbmUgVVNFX0lOVEVSTkFMX01ENSBpZiBLTVQgaXNuJ3QgYXZhaWxhYmxlLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjQ5OjM4CiAgICAtIChhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIG1kNS5jLCBtZDUuaCwgc2NhcGkuYywKICAgICAgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHRvb2xzLmMpOgogICAgICAtIGludGVybmFsIE1ENSBzdXBwb3J0IGRvbmUuCiAgICAgICAgLSB0ZXN0ZWQgd2l0aCBhbmQgd2l0aG91dCBrbXQgdG8gb3Bwb3NpdGUgYW5kIHNhbWUgc2lkZSBhcHBzL2FnZW50cy4KICAgICAgICAtIHRlc3RlZCBhZ2FpbnN0IG9sZGVyIDQuMC5wcmUxIGFnZW50IG9uIGJhbmRpdCBhcyB3ZWxsLgogICAgICAgIC0gYWxsIGJ1dCBvbmUgdGVzdGluZy8qIHRlc3QgcGFzc2VzICh3aGljaCB3YXMgZmFpbGluZyBiZWZvcmUgYW55d2F5KS4KICAgICAgICAtIHRoZSBvbGRlciBkZW1vIHNjcmlwdCBwYXNzZXMgYXMgd2VsbC4KICAgICAgLSBNb2RpZmllZCBtYW55IG90aGVyIHJvdXRpbmVzLiAgRXZlcnl0aGluZyBzaG91bGQgdXNlIFNDQVBJIG5vdyBhbmQKICAgICAgICBLTVQgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBkaXJlY3RseSBvdXRzaWRlIHRoZSBzY2FwaS5jIGFuZAogICAgICAgIGtleXRvb2xzLmMgZmlsZXMuCiAgICAgICAgLSBuZXcgc2NhcGkgcm91dGluZTogIHNjX2hhc2goKS4KICAgICAgLSBDb3VsZCwgYXMgYWx3YXlzLCB1c2UgYSBiaXQgbW9yZSBjbGVhbiB1cCwgYnV0IEkgbmVlZGVkIHRvIGNoZWNrCiAgICAgICAgc29tZXRoaW5nIGluIHRoYXQgd29ya2VkIGJlZm9yZSBJIGJyZWFrIGl0IGFnYWluIChhaGVtKS4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzo1MzoxMAogICAgLSAoc25tcGdldC5jLCBzbm1wdXNtLmMpOiB1bm5lZWRlZCBLTVQgaW5jbHVkZXMgcmVtb3ZlZC4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzo1NDozOAogICAgLSAoa2V5bWFuYWdldGVzdC5jKTogc3Vycm91bmQgYSBmZXcgS01UIHNwZWNpZmljIGl0ZW1zIHdpdGggI2lmZGVmcy4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzo1Njo1NgogICAgLSAoc25tcF9hZ2VudC5jKTogcmVtb3ZlIHVubmVlZGVkIEtNVCBpbmNsdWRlcy4KCmhhcmRha2VyIDIyIERlYyA5OCAxOTo0MDoxMgogICAgLSAoa2V5dG9vbHMuYyk6IGRlY29kZV9rZXljaGFuZ2UoKSB3YXNuJ3Qgc2V0dGluZyB0aGUgcmV0dXJuZWQgYnVmZmVyIGxlbmd0aC4KCmhhcmRha2VyIDIyIERlYyA5OCAxOTo0Mzo1MAogICAgLSAoc25tcF9hcGkuYyk6IERFQlVHUCBvZiBwcm9iZWQgZW5naW5lSUQgcHJpbnRlZCAwMCdzIGFzIDAncy4KCmhhcmRha2VyIDIyIERlYyA5OCAyMTowOTozOAogICAgLSAoc25tcF9hZ2VudC5jLCB1c21TdGF0cy5jLCB1c21TdGF0cy5oLCB1c21Vc2VyLmgsCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0KToKICAgICAgLSB1cGRhdGVkIFVTTSBtaWIsIGluY2x1ZGluZyB0aGUgbW92ZSBmcm9tIHNubXBNb2R1bGVzLjEyIHRvIC4xNS4KICAgICAgLSBtYWtlIHJlcG9ydHMgZ2VuZXJhdGVkIGluY2x1ZGUgdGhlIC4wIHN1ZmZpeCBmb3IgdGhlIGluc3RhbmNlIHNwZWNpZmllci4KCmhhcmRha2VyIDIyIERlYyA5OCAyMToxMDoyOAogICAgLSAodG9vbHMuYyk6IHdyYXAgZHVtcF9lbmdpbmVJRCBpbiAjaWZkZWYgU05NUF9URVNUSU5HX0NPREUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MTc6MjUKICAgIC0gKGxjZF90aW1lLmMpOiB3cmFwIGR1bXBfZXRpbWVsaXN0KCkgaW4gI2lmZGVmIFNOTVBfVEVTVElOR19DT0RFLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjIwOjMxCiAgICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOgogICAgICAtIGRvbid0IHVzZSBkdW1wX3NubXBFbmdpbmVJRCgpIHVubGVzcyB0ZXN0aW5nLgogICAgICAtIE5vdGU6IHRoaXMgdXRpbGl0eSBpcyBub3QgcmVhbGx5IG5lZWRlZCBhbnltb3JlLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIyOjEyOjMyCiAgICAtIChTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCk6IHR5cG8gKGN1dCBhbmQgcGFzdGUgbWlzc2VkIGEgbGluZSkuCgpoYXJkYWtlciAyMyBEZWMgOTggMjE6MDc6MzMKICAgIC0gKHNubXB1c20uYyk6IG1zZ1NlY3VyaXR5UGFyYW1zIHNob3VsZCBjb250YWluIHRoZSAqc2FsdCosIG5vdCB0aGUgSVYsCiAgICAgIGFzIGRlZmluZWQgYnkgdGhlIFVTTSBkb2N1bWVudCwgc2VjdGlvbiA4LjEuMS4xIChhbmQgY29tbW9uIHNlbnNlKS4KCmhhcmRha2VyIDIzIERlYyA5OCAyMTo0Nzo0NAogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gU2VuZCBvbmx5IGF1dGhOb1ByaXYgcmVwb3J0cyBmb3Igbm90SW5UaW1lV2luZG93IHJlcG9ydHMuCiAgICAgIC0gcmVwb3J0IGxlbmd0aCBjaGVjayBpbmNyZWFzZWQgYnkgb25lIHRvIGFjY29tb2RhdGUgZm9yIHRoZSAuMCBzdWZmaXguCgpoYXJkYWtlciAyMyBEZWMgOTggMjI6MDY6MjUKICAgIC0gKHNubXB1c20uYyk6IGFsbG93IGdlbmVyYXRlX291dF9tc2coKSB0byB1c2UgdW5rbm93biBzZWN1cml0eSBuYW1lcwogICAgICBmb3Igc2VjTGV2ZWwgPSBub0F1dGhOb1ByaXYuCiAgICAgIC0gdGhpcyBpcyByZXF1aXJlZCBzaW5jZSB1bmtub3duVXNlciByZXBvcnRzIG5lZWQgdG8gZ28gb3V0IHdpdGggdGhlCiAgICAgICAgc2FtZSB1c2VyIG5hbWUgYXMgdGhlIGJhZCByZXF1ZXN0IHRoYXQgY2FtZSBpbi4KCmhhcmRha2VyIDI5IERlYyA5OCAxNzowMToyNAogICAgLSAodmFjbS5jKTogRW5hYmxlIG11bHRpcGxlIHNpZGUgYnkgc2lkZSB2aWV3cyBpbiB0aGUgdmlldyBmYW1pbHkKICAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgICAtIE5vdCBkb25lIGluIGEgY2xlYW4gZmFzaGlvbi4gIE11Y2ggb2YgdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9ucwogICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgIHNwZWVkLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjI4OjMxCiAgICAtIChjb25maWcqKTogZGVmaW5lIHVfaW50ezgsMTYsMzJ9X3QgZm9yIEtNVCBoZWFkZXJzLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjU1OjM5CiAgICAtIChzbm1wdXNtLmMpOiBVU00gb2lkJ3Mgd2VyZSB3cm9uZwoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjU4OjE5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUyICkKCmhhcmRha2VyICA2IEphbiA5OSAwNzo0NjowMgogICAgLSAoc25tcHVzbS5jKTogdXNtX3NldF9zYWx0KCkgd2FzIHVzaW5nIGEgaG9zdCBzcGVjaWZpYyBieXRlIG9yZGVyaW5nCiAgICAgIGZvciBnZW5lcmF0aW5nIHRoZSBzYWx0IGZyb20gdGhlIGVuaWdpbmVCb290cyB2YWx1ZSBhbmQgZnJvbSB0aGUKICAgICAgYXJiaXRyYXJ5IGludGVnZXIuICBUaGlzIHRlY2huaWNhbGx5IHNob3VsZG4ndCBtYXR0ZXIsIGJ1dCBzaW5jZQogICAgICB3ZSdyZSBzaG9vdGluZyB0byBiZSBhIHJlZmVyZW5jZSBwbGF0Zm9ybS4uLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDE5OjIwOjA3CiAgICAtIChJU1NVRVMpOiBuZWVkIHJhbmRvbSBpbnQgZm9yIElWLgoKd2JhYnNvbiAyNiBKYW4gOTkgMDU6NTI6MTkKICAgICBDaGFuZ2VkIE1JTigpIG1hY3JvIHRvIFNOTVBfTUlOKCkgYmVjYXVzZSB3ZSBleHBsaWNpdGx5CiAgICAgZGVmaW5lIHRoYXQgaW4gdG9vbHMuaC4uLiBUaGlzIHdhcyBuZWVkZWQgdG8gYWxsb3cgc3VjY2Vzc2Z1bAogICAgIGxpbmthZ2UgaW4gU29sYXJpcyAyLjYKCmhhcmRha2VyIDI3IEphbiA5OSAyMDozNzo1NgogICAgLSAoU05NUC1UQVJHRVQtTUlCLnR4dCk6IHRhcmdldCBtaWIgd2FzIGltcHJvcGVybHkgbG9jYXRlZCBhdCAuMTUgbm90IC4xMi4KCmhhcmRha2VyIDI3IEphbiA5OSAyMDo1MToxMgogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhY2NlcHQgc2VjdXJpdHkgbGV2ZWwgYWJicmV2aWF0aW9ucy4KCmhhcmRha2VyIDI3IEphbiA5OSAyMTowNzo1OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAgLSBjcmVhdGUgLS13aXRoLXBlcnNpc3RlbnQtZGlyZWN0b3J5IGNvbmZpZ3VyZSBzY3JpcHQgZmxhZy4KCmRyZWVkZXIgMjkgSmFuIDk5IDE1OjIwOjUxCiAgICBSZXBhaXJlZCB0ZXN0cyB0byByZWZsZWN0IGNoYW5nZXMgaW4gdGhlIGNvZGViYXNlLgoKbWFyeiAzMSBKYW4gOTkgMTM6NTc6MTMKICAgICAtKHNubXBfYXBpLmMpOiB6ZXJvIGxlbmdodCB1c2VyIG5hbWUgZm9yIGVuaW5lSUQgZGlzY292ZXJ5CgpkcmVlZGVyICAyIEZlYiA5OSAxNDowNDo0OAogICAgUmVzb2x2ZSBPSUQgY29sbGlzaW9uczogMSkgYmV0d2VlbiBkZW1vIE1JQiBhbmQgVUNEIGVudGVycHJpc2UgTUlCOyAyKQogICAgaW5zaWRlIGRlbW8gTUlCLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjA0OjM4CiAgICAtIChzbm1wdHJhcGQuYyk6IHN1cHBvcnQgLUguCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MTM6NDEKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIGFsbG93IGVudiB2YXJpYWJsZSBTTk1QX1BFUlNJU1RFTlRfRklMRSB0byBvdmVycmlkZSBwZXJzaXN0ZW50CiAgICAgICAgc3RvcmFnZSBsb2NhY3Rpb24uCiAgICAgIC0gbWVyZ2UgaW4gTWlrZSdzIGNoYW5nZXMgdG8gY29weV93b3JkKCkuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MTQ6NDYKICAgIC0gKHRhcmdldC5oKTogbWVyZ2UgbWlrZSdzIHRhcmdldCBtaWJncm91cCBpbnRvIHRoZSA0LjAgbGluZS4KCm1hcnogIDYgRmViIDk5IDE1OjA0OjEzCiAgICAgLShzbm1wX2FwaS5bY2hdLHNubXBfcGFyc2VfYXJncy5jLHNubXB2My5bY2hdLHNubXB1c20uYyxzbm1wY21kLjEpOiBhbGxvdyBjb250ZXh0RW5naW5lSUQgYW5kIHNlY3VyaXR5RW5naW5lSUQgdG8gYmUgZGlmZmVyZW50LCBhZGRlZCAtRS8tZSB0byBwYXJzZV9hcmdzLCBmaXhlZCBlbmdpbmVJRCBkaXNjb3Zlcnkgd2hpY2ggYnJva2UgYWZ0ZXIgbmFtZSB1c2VkIGluIHByb2JlIHN3aXRjaGVkIHRvIHplcm8gbGVuZ3RoIHN0cmluZwoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQzOjE1CiAgICAtIChyZWFkX2NvbmZpZy5jKTogLVdhbGwgZml4LgoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQ1OjE3CiAgICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBhIGZldyAtV2FsbCBmaXhlczoKICAgICAgLSBwcm90b3lwZSBpbml0X3NubXB2M19wb3N0X2NvbmZpZyh2b2lkKS4KICAgICAgLSByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGVzLgogICAgICAtIGRvbid0IGNvbXBpbGUgaW4gc2V0X2VuZ2luZUJvb3RzQW5kVGltZSBpbnRlcmZhY2UgZnVuY3Rpb24gaWYgbm90IG5lZWRlZC4KCmhhcmRha2VyICA3IEZlYiA5OSAyMDo0Nzo1OQogICAgLSAoc25tcDJwLmMsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgICAgIHNubXBkLmMsIHNubXBkLmgsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgICAgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBpbXBsZW1lbnQgYWdlbnQgdXNpbmcgbGlicmFyaWVzIHBhcnNpbmcgYW5kIGhhbmRsaW5nIHJvdXRpbmVzCiAgICAgICAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4KCmhhcmRha2VyICA4IEZlYiA5OSAwMDoxMTo1OQogICAgLSAoc25tcF9hZ2VudC5jLCB1dGlsX2Z1bmNzLmMsIHVjZERlbW9QdWJsaWMuYywgcm91dGVfd3JpdGUuYywKICAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHNubXBFbmdpbmUuYywgdXNtVXNlci5jLCBleHRlbnNpYmxlLmMsIHBhc3MuYywKICAgICAgcGFzc19wZXJzaXN0LmMsIHByb2MuYywgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gbW9kaWZpZWQgdG8gd29yayB3aXRoIG5ldyB3cml0ZSB2YXJpYWJsZSBhcGkuCiAgICAgIC0gZml4ZWQgYSBtaXNzaW5nIGZlYXR1cmUgaW4gRGF2ZSdzIGNvZGU6IGNyZWF0aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDEyOjIyOjEzCiAgICAtIChDT1BZSU5HKTogSXQncyAxOTk5LgoKd2JhYnNvbiAgOCBGZWIgOTkgMTM6MzQ6MzkKICAgIENoYW5nZWQgdGhlIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3Igc25tcHYzX3NldF9lbmdpbmVCb290c2FuZCBUaW1lCiAgICBmcm9tIGludCBmKCk7IHRvIHZvaWQgZigpOyB0byBtYXRjaCB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiBpCiAgICBzbm1wdjMuYyAuCgp3YmFic29uICA4IEZlYiA5OSAxMzo0MDoyNwogICAgZml4ZWQgY2FzdGluZyBlcnJvci4uLiAqKGxvbmcpIGNoYW5nZWQgdG8gKihsb25nICopCgpkcmVlZGVyIDE3IEZlYiA5OSAxNjoyMzo0MwogICAgUmFuZG9tIElWOyBmaXhlZCBzYWx0IGNvbnN0cnVjdGlvbi4KICAgIEZpeGVkIE5VTEwgZGVyZWZlcmVuY2Ugc2hvdy1zdG9wcGVyIGludHJvZHVjZWQgYnkgbWVyZ2Ugb2YgRC4gU2hlbGQncyBjaGFuZ2VzLgogICAgY29uZmlndXJlLmluK01ha2VmaWxlLmluIGF1dG9tYXRpY2FsbHkgY3JlYXRlIFBFUlNJU1RFTlRfRElSRUNUT1JZLgogICAgTWlub3IgY29tcGlsZSB3YXJuaW5ncywgb3V0LW9mLWRhdGUgY29tbWVudHMgZml4ZWQsIGNsYXJpZmllZCBkZWJ1ZyBvdXRvdXQsCiAgICAJY2xhcmlmaWVkIHByZS1jb21waWxlIGNvZGUgaW4gc2NhcGkuYy4KICAgIERpc2NvdmVyZWQgd2hlcmUgcGR1LT5zZWN1cml0eUVuZ2luZUlEIHdhcyBiZWluZyBtdWx0aXBseSBmcmVlJ2QsIGJ1dCBub3QKICAgIAl0aGUgKmZpcnN0KiB0aW1lLi4uIChvcGVuIHByb2JsZW0pCgpoYXJkYWtlciAxNyBGZWIgOTkgMjA6NTk6MjkKICAgIC0gKHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDowNwogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBmaXggZ2V0YnVsa3MuCiAgICAgIC0gZml4IHNubXBzZXQncyB0byBhbGxvdyBjcmVhdGlvbi4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDoyMgogICAgLSAoZGxtb2RfbWliLmMpOiBkb24ndCBkZWZpbmUgTUFUQ0hfU1VDQ0VFREVEIGF0IGFsbC4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDozNgogICAgLSAodXRpbF9mdW5jcy5jKTogLVdhbGwgdmFyaWFibGUgcmVtb3ZpbmcuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MDA6NTgKICAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jKToKICAgICAgLSAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMTozNgogICAgLSAodXNtVXNlci5jLCBleHRlbnNpYmxlLmMsIHBhc3MuYywgcHJvYy5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAgLSAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowNToyOAogICAgLSAoa2V5dG9vbHMuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAogICAgICBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMsIHRyYW5zZm9ybV9vaWRzLmgpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjI4OjU3CiAgICAtIChrZXl0b29scy5jKTogb3Bwcy4gIERlbGV0ZWQgYSB2YXJpYWJsZSBJIHNob3VsZG4ndCBoYXZlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjMwOjExCiAgICAtIChzbm1wX2FnZW50LmMpOiBZb3UgY2FuJ3QgYXNzaWduIGEgTlVMTCB0byBhIHVuaW9uLCBvbmx5IHRvIGEgc3ViLXR5cGUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6NDU6MjMKICAgIC0gKHRlc3RpbmcvTWFrZWZpbGUuaW4pOiByZW1vdmUgcmVmZXJlbmNlcyB0byBzdWJkaXJzIHNpbmNlIHRoZXJlIGFyZQogICAgICBub25lIGFuZCBpdCBicmVha3Mgc2ltcGxpZXIgdmVyc2lvbnMgb2Ygc2ggd2hlbiBubyBhcmd1bWVudHMgdG8KICAgICAgZm9yZWFjaCBleGlzdC4KCm1hcnogMjQgRmViIDk5IDA5OjMxOjI5CiAgICAgLShzbm1wbGliL3NubXBfYXBpLltjaF0sc25tcGxpYi9zbm1wLmgsYWdlbnQvc25tcGQuaCxhZ2VudC9zbm1wX2FnZW50LmgpOiBtb3ZlZCBSZXBvcnRzIGludG8gc25tcGxpYiwgY29uZm9ybSB0byBzcGVjIG9uIGNyaXRlcnJpYSBmb3Igc2VuZGluZyBSZXBvcnRzLCBsYXkgZ3JvdW5kIHdvcmsgZm9yIG1heE1zZ1NpemUsIGRlZmF1bHQgY29udGV4dEVuZ2luZUlEIHRvIHNlY3VyaXR5RW5naW5lSUQgd2hlbiBub3QgZXhwbGljaXRseSBzZXQgaXRzZWxmCgptYXJ6IDI1IEZlYiA5OSAxNDowNDowNQogICAgIC0oc25tcF9hcGkuYyxzbm1wX2NsaWVudC5jKTogZml4ZWQgYnVnIGluIHNubXBfY2xvbmVfcGR1IChub3QgY2xvbmluZyBzZWN1cml0eUVuaWdpbmVJRCksIHVuY29tbWVudGVkIF9zbm1wX2ZyZWUKCndiYWJzb24gIDkgTWFyIDk5IDA4OjU0OjEyCiAgICBGaXJzdCBjdXQgYXQgc25tcHRyYXBkIG1vZGlmaWNhdGlvbi4gUmVjZWl2ZXMgYXV0aFByaXYgYW5kIGxvd2VyIHNlY3VyaXR5CiAgICBsZXZlbCB0cmFwcy4KCndiYWJzb24gIDkgTWFyIDk5IDA5OjAyOjA3CiAgICBDaGFuZ2VkIERFQlVHUCgpIHN0YXRlbWVudCB0byBnZXQgc2VjdXJpdHlOYW1lIGZyb20gUERVIHJhdGhlciB0aGFuIHNlc3Npb24KICAgIGFzIHNlc3Npb24gd2FzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgZHVyaW5nIGVuZ2luZSBJRCBkaXNjb3ZlcnkgYW5kIHRoZSBOVUxMCiAgICB2YWx1ZSBjYXVzZWQgYSBzZWdtZW50YWlvbiBmYXVsdC4KCm1hcnogMTAgTWFyIDk5IDA4OjA0OjQ3CiAgICAgLShzbm1wX2FwaS5jKTogZml4IGVuZ2luZUlkIGRpc2NvdmVyeSB3aGVuIGNvbnRleHQgZW5naW5lSUQgaXMgc3BlY2lmaWVkIChuZWVkZWQgdG8gZGlzY292ZXIgcHJveHkgZW5naW5lSUQgaWYgYWxsIHlvdSBrbm93IGlzIHByb3hpZWQgYWdlbnQncyBlbmdpbmVJRCkKCndiYWJzb24gMTcgTWFyIDk5IDEzOjI3OjU5CiAgICBDaGFuZ2VkIERFQlVHUCgpIHN0YXRlbWVudCBhYm91dCBCdWlsZGluZyB0aGUgU05NUCBtZXNzYWdlIHNvIHRoYXQKICAgIGV2ZW4gaWYgc2VjdXJpdHlOYW1lIGlzIHVuaW5pdGlhbGl6ZWQgKE5VTEwpLCBwcm9ncmFtIHdpbGwgY29udGludWUKICAgIHdpdGhvdXQgY29yZSBkdW1waW5nLiBMYXRlciwgc29tZW9uZSBzaG91bGQgc2VlIGFib3V0IGZpeGluZyB0aGUgbG9naWMKICAgIHNvIHRoYXQgc2VjdXJpdHlOYW1lIHdpbGwgbm90IGJlIGEgTlVMTCBwb2ludGVyIGhlcmUsIG9yCiAgICByZXBhaXIgdGhlIGRlYnVnZ2luZyBzY2hlbWUsIGlmIHRoYXQncyB2YWxpZC4KCmhhcmRha2VyIDI0IE1hciA5OSAyMDozMDoxMgogICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3JlYWRfY29uZmlnLmgKCmhhcmRha2VyIDI0IE1hciA5OSAyMDozMjo0NAogICAgLSAodGVzdGluZy9NYWtlZmlsZS5pbik6IHJlbW92ZSBzdWJkaXJzLgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjAzOjA0CiAgICAtICh2YWNtX3ZhcnMuaCk6IHJlbG9jYXRlIFZBQ00gbm9kZSB3aGVyZSBpdCBzaG91bGQgYmUgKDEzLT4xNikuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTY6MzgKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBza2lwIHNwYWNlIGFmdGVyIGNvcHlpbmcgYSB3b3JkIGluIGNvcHlfd29yZCgpCgpoYXJkYWtlciAzMCBNYXIgOTkgMDk6NTE6MjEKICAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZGVkIGhlbHAgc3RyaW5ncyB0byBjb25mIHBhcnNlcnMuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6Mjc6MjkKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIGFjY2lkZW50aWFsbHkgY29taXR0ZWQgY29uZmxpY3QuCgpoYXJkYWtlciAxNSBBcHIgOTkgMDc6MjU6NDgKICAgIC0gKGtleXRvb2xzLmMpOiBBbGxvdyBzaG9ydCBwYXNzcGhyYXNlcyB3aGVuIFNOTVBfVEVTVElOR19DT0RFIGlzIHNldC4KCm1hcnogMTkgQXByIDk5IDE0OjE0OjIzCiAgICAgLShzbm1wX2FwaS5bY2hdLHNubXBfY2xpZW50LmMpOiBmaXhlZCBidWcgd2hlcmUgbXNnSWQgYW5kIHJlcUlkIHdlcmUgbm90IHRyZWF0ZWQgY29ycmVjdGx5IGluIHJlc3BvbnNlcyBpZiBvcmdpbmFsIHJlcXVlc3QgaGFwcGVuZWQgdG8gaGF2ZSBtc2dJZCBvciByZXFJZCBlcXVhbCB0byBhcmJpdHJhcnkgZGVmYXVsdCgwKQoKbWFyeiAxOSBNYXkgOTkgMDc6MTQ6NDQKICAgIAogICAgYWRkaW5nIHYzIHBhY2tldCBnZW5lcmF0b3IgcGVybDUgc2NyaXB0IChyZXF1aXJlcyBDb252ZXJ0OjpCRVIpCiAgICAuCgptYXJ6IDE5IE1heSA5OSAwNzoxNjo0MQogICAgCiAgICBleGFtcGxlIGRhdGEgZmlsZSB0byBnZW5lcmF0ZSBhIFYzIHBhY2tldCB3aXRoIHBrdGdlbi5wbAoKbWFyeiAxOSBNYXkgOTkgMDg6MDI6MjQKICAgIFJFQURNRSBmb3IgcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAwODo0NDowMwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAxOSBNYXkgOTkgMDg6NDU6MTUKICAgIHBrdGdlbi5wbAoKbWFyeiAxOSBNYXkgOTkgMTA6MzE6MTQKICAgIHJlbW92ZSBsYXN0IHN1Ym1pdAoKbWFyeiAyMCBNYXkgOTkgMTI6MzU6MDMKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1hcnogMjMgTWF5IDk5IDA4OjA0OjAzCiAgICBoYW5kbGUgc2VxX29mIHRvIGFsbG93IGFyYml0cmFyeSBudW1iZXIgb2YgdmFyYmluZHMsIGJ1ZyBmaXhlcywgc2VuZC9yZWNlaXZlLCBwcmV0dHkgcHJpbnQgZGVidWdnaW5nIHBhY2tldCBkdW1wCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MTg6NDIKICAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjIwOjA0CiAgICAtICh2bXN0YXQuYyk6IGluY2x1ZGUgbGltaXRzLmguCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTQ6MzIKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTg6NDYKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToyMDoxMQogICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjMzOjA1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jKToKICAgICAgUGF0Y2ggZnJvbSBEZXJlayBKLiBCYWxsaW5nOgogICAgICAtIGZyZWVic2QyIGZpeGVzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjUyOjU3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVAoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjU0OjIyCiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3F1ZXVlLmguCgptYXJ6ICAxIEp1biA5OSAwNzoyNTo1NQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGFkZGVkIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgKG1kNSBhbmQgc2hhMSkKCmRhdmVzICAxIEp1biA5OSAwODozNzo0NwogICAgLSAoYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyk6IERldGVybWluZSB0eXBlIG9mIFJQTSBwYWNrYWdlcwoKbWFyeiAxNiBKdW4gOTkgMDk6MzA6NTUKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBhZGRlZCBlbmNyeXB0aW9uL3ByaXZhY3Qgc3VwcG9ydCAoZGVzLWNiYykKCm1hcnogMTYgSnVuIDk5IDEyOjUwOjI5CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogbGF0ZXN0IGF0dGVtcHQgdG8gZml4IHByaXZhY3kvZW5jcnlwdGlvbgoKbWFyeiAyMyBKdW4gOTkgMDg6MTg6NTkKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBsYXRlc3QgYXR0ZW1wdCB0byBmaXggcHJpdmFjeS9lbmNyeXB0aW9uKHdvcmtpbmcgd2l0aCBDcnlwdDo6REVTL0NyeXB0OjpDQkMrcGF0Y2gpCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6MTM6NDAKICAgIC0gKCopOiBNZXJnZWQgdGhlIDQuMCBsaW5lIGludG8gdGhlIDMuNi4xIGxpbmUuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6Mzg6NDUKICAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWVyZ2UgcGllY2VzIG9mIHJlY2VudCB2MyBsaW5lIGNoYW5nZXMuCgptc2xpZmNhayAgNiBBcHIgOTkgMjE6MjQ6MjIKICAgIC0gY2hhbmdlcyBmb3IgQU5TSSBoZWFkZXJzOyBQT1NJWChpbmRleCB2cyBzdHJjaHIpOyBtaW5vciBmaXhlcwoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjEzOjU5CiAgICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjE0OjQzCiAgICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKCm1zbGlmY2FrICA3IEFwciA5OSAwNjoxNzoyOAogICAgLSAoKSBtb3JlIEFOU0kgaGVhZGVyIGZpeHVwczsgdG91Y2h1cCBmb3IgTSQgV2luMzIgYnVpbGQKCmhhcmRha2VyICA3IEFwciA5OSAxMDo0MjoxMAogICAgLSAoY29uZmlnLmguaW4sIHNubXBfdmFycy5jLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB0cmFwZC5jLAogICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHYzLmMsIHRvb2xzLmMsIHRvb2xzLmgpOgogICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgICBuZXdlciBtb2RlbC4KICAgICAgLSBhIGZldyAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA3IEFwciA5OSAxMDo0ODowNwogICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTE6Mjg6MDIKICAgIC0gKHVjZERlbW9QdWJsaWMuYywgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgc211eC5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MDA6MjAKICAgIC0gKGFnZW50L3NubXAycC5jIGFnZW50L3NubXBfYWdlbnQuYyBhZ2VudC9zbm1wX3ZhcnMuaAogICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jIGFwcHMvc25tcGRlbHRhLmMKICAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgICBzbm1wbGliL3ZpZXcuaCkgIGZnZXRzIHVzZSBzaXplb2YgbW9zdGx5LCBvaWQgYmFzZSBzaXplIGlzIE1BWF9PSURfTEVOCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MTc6MjMKICAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECgptc2xpZmNhayAgNyBBcHIgOTkgMTU6MDA6MzkKICAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNDozMQogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE1OjM5CiAgICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE2OjQ1CiAgICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoyNTowOQogICAgLSAoc25tcF9hcGkuYyk6IG1ha2Ugc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBwb3NzaWJsZSBjcmVhdGUgYQogICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjE5OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhbmllbCBIYWdlcnR5OgogICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToyMDowMAogICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzI6MjMKICAgIC0gKHBhc3MuYyk6IFBhdGNoIGZyb20gSmltIE1hcjoKICAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjM2OjMxCiAgICAtIChTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU0OjQ4CiAgICAtIChmcmVlYnNkLmgsIGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWVic2QgdXRtcCBjbGVhbnVwcy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1Njo1MwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU3OjI0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODowMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IC1QLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjI3CiAgICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDA6NDkKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDM6MjkKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhcGQgb3B0aW9uIHRvIGlnbm9yZSBhdXRoIHRyYXBzLCBhZGQgLVMgb3B0aW9uLCBsb2cgdGVybWluYXRpb24uCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6Mjk6NTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjMwOjM0CiAgICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KCmhhcmRha2VyIDE0IEFwciA5OSAxNTo1MjozNQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6MzE6NTUKICAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6NTY6MzcKICAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKCm1zbGlmY2FrIDE2IEFwciA5OSAwNzozMDoyOQogICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KCm1zbGlmY2FrIDE2IEFwciA5OSAwNzo1NDoyMgogICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKCm1zbGlmY2FrIDE2IEFwciA5OSAwODozMzoxNgogICAgLSAobWliLmMpICItbSIgb3IgTUlCUyA6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjEwOjA2CiAgICAtIChSRUFETUUpOiBBZGRlZCB2MyB0ZWFtIG1lbWJlcnMuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTE6NDgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZWQgZGVmYXVsdCBzdG9yZSBsb2NhdGlvbiB0byAvdmFyL3VjZC1zbm1wCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTU6MTQKICAgIC0gKHNubXAuaCk6IFNOTVBBRE1JTkxFTkdUSCBkZWZpbml0aW9uLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE2OjE2CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZWQgZml4IG5vdGUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6MDYKICAgIC0gKE5FV1MpOiB1cGRhdGVkCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6NDEKICAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKCmhhcmRha2VyIDE2IEFwciA5OSAyMTozNDo0OQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlMyApCgptc2xpZmNhayAxOCBBcHIgOTkgMDY6NTQ6MjYKICAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQgOiA5IC0+IDEwCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDE6MTUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgIC0gbmVlZCB0byB3cml0ZSBhIGZvcmVhY2gobWlibm9kZSkgdHlwZSBwYXJzZXIgbmV4dC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMTowOToyNwogICAgLSAobWliaW5jbC5oKTogYWRkIHJlYWRfY29uZmlnLmguCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTI6MTcKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgICBnZW5lcmljYWxseSByZWFkIGEgdG9rZW4gaW50byBhIGdpdmVuIHZhcmlhYmxlLgogICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgIHRoZW0gaWYgdGhlIHN0b3JhZ2UgYXJlYSBpcyBOVUxMLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjE0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogRG9uJ3Qgc25tcF9zZXRfdmFyX29iamlkIGlmIG5hbWUgaXMgTlVMTCBpbgogICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTE6Mjg6MTQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE1OjMxOjM1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAgLSBlbnRpcmUgY29kZSBiYXNlIGlzIG5vdyBwdXQgaW50byB0aGUgLmNvbmYgZmlsZXMgcmF0aGVyIHRoYW4gaW4KICAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgIGJhc2VkIG9uIHRoZSAuY29uZiBmaWxlIGl0IGlzIGdpdmVuLiAgSW4gdGhlb3J5LCBpdCBzaG91bGQgYmUKICAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgIGluZm9ybWF0aW9uLgogICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgICB1cCBzaWRlIGlzIHRoYXQgSSdtIHN1cmUgRGF2ZSBTaGllbGQgd2lsbCBnbyB0aHJvdWdoIGFuZCBjbGVhbgogICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjA0OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAgLSBjbmFtZSAtPiBOQU1FCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MTA6NDQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KCmhhcmRha2VyIDIwIEFwciA5OSAyMTozODo0MgogICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU0OjQ0CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogY3JlYXRlZCAqcmVhZF9jb25maWdfc3RvcmVfZGF0YSgpOwoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU2OjAzCiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMTA6NTE6MzAKICAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCgptc2xpZmNhayAyNiBBcHIgOTkgMDk6MjE6MDYKICAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KCm5iYSAyNiBBcHIgOTkgMTE6MjE6MTAKICAgIAogICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKCm5iYSAyNiBBcHIgOTkgMTE6NDg6NTcKICAgIAogICAgCiAgICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAgLSBhcHBzL3NubXB0cmFuc2xhdGU6IGxldCB0aGUgLXAgb3B0aW9uIGNhbGwgdGhpcyBuZXcgcHJpbnRlcgogICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKCm5iYSAyNiBBcHIgOTkgMTI6MDM6NDcKICAgIAogICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAgCXN0cmluZ3MKCm5iYSAyNiBBcHIgOTkgMTI6MDk6MzUKICAgIAogICAgCiAgICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgICAJZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwLgoKbmJhIDI2IEFwciA5OSAxMjoxMzo1MAogICAgCiAgICAqLyo6IHJlcGxhY2UgaG9ycmlibGUgKGNoYXIgKikic3RyaW5nIiB3aXRoIGNvbnN0IHNwZWNpZmllcnMgaW4gcmVsZXZhbnQKICAgIAlmdW5jdGlvbnMuCgptc2xpZmNhayAyNiBBcHIgOTkgMTI6Mzc6MDkKICAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQoKbXNsaWZjYWsgMjcgQXByIDk5IDA5OjUxOjM1CiAgICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6MzI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjM5OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjA3OjE1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gc2h1dGRvd24gYW5kIHN0b3JlIGNhbGxiYWNrIHVzYWdlLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjEzOjMxCiAgICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCgpoYXJkYWtlciAgMyBNYXkgOTkgMTI6NTg6MTkKICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBNYWtlZmlsZS5pbiwgaGVhZGVyX2NvbXBsZXguYywKICAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wdXNtLmMsIHRvb2xzLmMsIHRvb2xzLmgsIE1ha2VmaWxlLmluLCBULmMsCiAgICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgIC0gbWFrZWZpbGVpbmRlcGVuZCBhcyB3ZWxsLgoKbmJhICAzIE1heSA5OSAxNTo0MDoxMQogICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAgCXdpdGggbW9yZSBzdHJpY3Qgbm9pc2UgbGV2ZWxzLiAoYWxzbyBnb29kIHdoZW4gY29tcGlsaW5nCiAgICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKCm5iYSAgNCBNYXkgOTkgMDA6NDc6NDQKICAgIChtaWIuYyk6CUZpeCBwcm9ibGVtIChjb3JlIGR1bXApIHdpdGggTUlCRklMRVMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgpuYmEgIDQgTWF5IDk5IDAwOjUxOjE2CiAgICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKCmhhcmRha2VyICA0IE1heSA5OSAxMTowODo1NQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KCm1zbGlmY2FrICA2IE1heSA5OSAwOToyMDozMAogICAgLSAodWNkLXNubXAvdm1zdGF0LmMpIC0gY29uZGl0aW9uYWxseSBpbmNsdWRlIGxpbWl0cy5oIHBlciBFZHVhcmQgS291Y2t5LgoKbmJhIDEwIE1heSA5OSAxNDo0NzoyMgogICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgoKbmJhIDEwIE1heSA5OSAxNDo0OTo0OQogICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMjo0OAogICAgLSAodXRpbF9mdW5jcy5jKTogcmVhZCByZXR1cm5zIHNzaXplX3Qgbm90IHNpemVfdC4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMzoyNQogICAgLSAobWVtb3J5LmgpOiByZW1vdmUgZXh0ZXJuLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjExOjQwCiAgICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCgptc2xpZmNhayAxMiBNYXkgOTkgMTA6NTM6MjMKICAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCgptc2xpZmNhayAxMiBNYXkgOTkgMTE6MjI6MTYKICAgIC0ocGFyc2UuYyBwYXJ0eV9wYXJzZS5jIHJlYWRfY29uZmlnLmMpIG5vIGV4aXQoKSBmcm9tIGxpYnJhcnk7IHJldHVybiBlcnJvcgoKZGF2ZXMgMTMgTWF5IDk5IDAzOjUyOjE5CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowOToxOAogICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCgptc2xpZmNhayAxNCBNYXkgOTkgMDY6NTQ6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDA5OjQ3OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKCm1zbGlmY2FrIDE0IE1heSA5OSAxMzo1OTozNwogICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6NTMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM0OjU1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzc2VzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM4OjAwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNzoxODowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKCmRhdmVzIDE4IE1heSA5OSAwNjoyNjoxNgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogTW9yZSBnZW5lcmFsIGhhbmRsaW5nIG9mIFBEVSBmbGFncwoKbXNsaWZjYWsgMTggTWF5IDk5IDA5OjAxOjQ2CiAgICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgoKZGF2ZXMgMTggTWF5IDk5IDA5OjIzOjUwCiAgICAtIChjb25maWd1cmUuaW4gc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wZ2V0LmMgYXBwcy9zbm1wZ2V0bmV4dC5jIGFwcHMvc25tcHNldC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgIC0gIENsZWFuIHVwIGNvbmRpdGlvbmFscyBwcm90ZWN0aW5nIGluY2x1ZGUgZmlsZXMKICAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCgpkYXZlcyAxOSBNYXkgOTkgMDI6MzM6MDcKICAgIC0gKGNvbmZpZy5oLmluKTogQWRkaXRpb25hbCBpbmNsdWRlIHByb3RlY3Rpb24gZW50cmllcwoKZGF2ZXMgMTkgTWF5IDk5IDA1OjExOjM3CiAgICAtIChzbm1wX2FwaS5jKTogTW9yZSBnZW5lcmFsaXNlZCBoYW5kbGluZyBvZiBzb2NrZXQgYWRkcmVzc2VzCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDI6NTUKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjUwOjEyCiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpkYXZlcyAyMCBNYXkgOTkgMDM6NDY6MjQKICAgIC0gKHNubXBfYXBpLmgpOiBUZW1wb3JhcnkgZml4IHRvIHNvY2tldCBhZGRyZXNzIHByb2JsZW1zCgptc2xpZmNhayAyMSBNYXkgOTkgMDU6MjQ6MjMKICAgIC0ocmVhZF9jb25maWcuYykgY2FzdCBmaXggcGVyIE1hcmtrdSBMYXVra2FuZW4KCmRhdmVzIDIxIE1heSA5OSAwNTo1NDoyMgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKToKICAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQoKaGFyZGFrZXIgMjEgTWF5IDk5IDExOjEwOjQ0CiAgICAtIChtaWIyYy5jb25mLCBtaWIyYy5zdG9yYWdlLmNvbmYpOgogICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAgLSBtb3JlIGNsZWFudXAgb2YgdGhlIHN0b3JhZ2UgZGVmLgoKbXNsaWZjYWsgMjEgTWF5IDk5IDE1OjI5OjQ2CiAgICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KCm1zbGlmY2FrIDI0IE1heSA5OSAwNTozNjoxMwogICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjE5OjAzCiAgICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDo1NQogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODowNAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjMyCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTY6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjQwOjI4CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm1zbGlmY2FrIDI3IE1heSA5OSAwNToxNjoyNQogICAgLShlbmNvZGVfa2V5Y2hhbmdlLCByZWFkX2NvbmZpZywgc25tcHVzbSkgYUNDIGZpeGVzIGJ5IFBLWSAoTWFya2t1IExhdWtrYW5lbikKCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDowMwogICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjE1CiAgICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzowNgogICAgLSAoc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjMyCiAgICAtIChzbm1wdHJhcGQuYyk6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQgaW4gaGVscCBsaW5lLgoKZGF2ZXMgMjggTWF5IDk5IDA3OjAyOjAxCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwoKZGF2ZXMgMjggTWF5IDk5IDA4OjE0OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCgpkYXZlcyAyOCBNYXkgOTkgMDg6NTc6MTkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFVuaXggZG9tYWluIChkYXRhZ3JhbSkgc29ja2V0IHN1cHBvcnQKCmRhdmVzIDI4IE1heSA5OSAwOToxMjoyMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQoKbXNsaWZjYWsgMjggTWF5IDk5IDA5OjI0OjU2CiAgICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6MTc6MTMKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6NDQ6NDIKICAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgICBsaWJyYXJ5LgoKZGF2ZXMgIDEgSnVuIDk5IDAyOjE3OjI3CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKCmRhdmVzICAxIEp1biA5OSAwMjozMjoxMwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQoKZGF2ZXMgIDEgSnVuIDk5IDA3OjMwOjQyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oKTogU3VwcG9ydCBmb3Igc3RyZWFtLWJhc2VkIHNvY2tldHMKCmhhcmRha2VyICAxIEp1biA5OSAxNzoyMTo1MwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgICBiZSBjYWxsZWQgYmFjayBhZnRlciBYIHBlcmlvZCBvZiB0aW1lIGFuZCBpdCBoYW5kbGVzIGZpZ3VyaW5nIG91dAogICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KCm1zbGlmY2FrICA0IEp1biA5OSAwOTo1MToxMwogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jLGZyZWVic2QzLmgpIGZpeCBGcmVlQlNEMy4xIGluY2wgS2VuIEtleSdzIHRjcC91ZHAgcGF0Y2hlcwoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ0OjA2CiAgICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjA0OjIxCiAgICAtKGlmLmMpIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCm1zbGlmY2FrICA4IEp1biA5OSAwNzo0MzoxMAogICAgLShocl9maWxlc3lzLmMpIGZpeCBtZW1vcnkgbGVhayB3aGVuIEhBVkVfR0VURlNTVEFUIGlzIGRlZmluZWQuCgpkYXZlcyAgOCBKdW4gOTkgMDg6NDM6NTkKICAgIC0gKGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaAogICAgICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oKToKICAgICAgIC0gIHJlbW92ZWQgYWxsIHVzZXMgb2YgJ3N0cnVjdCBwYWNrZXRfaW5mbycgKHN1YnN1bWVkIGludG8gJ3N0cnVjdCBzbm1wX3BkdScpCgptc2xpZmNhayAgOCBKdW4gOTkgMDk6MzI6NDgKICAgIC0oeHhfX2ZyZWVic2QyLmMpIC0gZml4IHNpemVfdCB0byBidWlsZCBvbiBGcmVlQlNEIDIuMi54CgpkYXZlcyAgOSBKdW4gOTkgMDY6MzI6MDIKICAgIC0gKHNubXBfYXBpLmgpOiByZW9yZGVyIFBEVSBhbmQgc2Vzc2lvbiBmaWVsZHMgbW9yZSBjbGVhcmx5CgpoYXJkYWtlciAgOSBKdW4gOTkgMTg6MzE6NDIKICAgIC0gKCopOiBtZXJnZWQgMy42LjIgY2hhbmdlcyBpbnRvIG1haW4gYnJhbmNoLgoKZGF2ZXMgMTUgSnVuIDk5IDAzOjU5OjIzCiAgICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlCgpkYXZlcyAxNSBKdW4gOTkgMDg6Mjg6MDAKICAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOgogICAgICAtIE1vdmUgcHJvY2Vzc2luZyBmcm9tICdoYW5kbGVfbmV4dF9wYXNzKCknIHRvICdoYW5kbGVfc25tcF9wYWNrZXQoKScKCmhhcmRha2VyIDE1IEp1biA5OSAxNjoyNTo1NwogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBhbGxvd2VkIHplcm9sZW5ndGggcGR1LT5zZWN1cml0eU5hbWUgcHJvYmxlbSBmb3IKICAgICAgdjMgZW5naW5lSUQgZGlzY292ZXJ5IHByb2Jlcy4KCmRhdmVzIDE2IEp1biA5OSAwNToxMTo0OAogICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBtb3ZlIFBEVSB2YWxpZGF0aW9uLCBldGMgZnJvbSAnc2VuZCcgdG8gJ2J1aWxkJyByb3V0aW5lcwoKZGF2ZXMgMTYgSnVuIDk5IDA1OjQ5OjM4CiAgICAtIChzbm1wX2FwaS5jKTogaGFuZGxlIHJlc3BvbnNlcyBpbiBhIG1vcmUgcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWFubmVyCgpkYXZlcyAxNiBKdW4gOTkgMDY6NTY6MTQKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IEhvb2tzIGZvciBidWlsZGluZy9wYXJzaW5nIG5vbi1TTk1QIHBhY2tldHMKCmhhcmRha2VyIDE2IEp1biA5OSAxNjoyNDo1OAogICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBwYXJzZS5jKToKICAgICAgLSBmaXJzdCB1c2FnZSBvZiB0aGUgZGVmYXVsdF9zdG9yZSgpIHJvdXRpbmVzOiBtb3ZlIGFsbCB0aGUgbWliCiAgICAgICAgcGFyc2VyIHZhcmlhYmxlcyB0byBpdCwgYW5kIGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aGVtLgogICAgICAgIC0gcHJlbWliIGF1dG8tcmVnaXN0cmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUgbmVlZHMgY2xlYW5pbmcgdXAuLi4gIHNpZ2guLi4KCmhhcmRha2VyIDE2IEp1biA5OSAxNjo1MToxMQogICAgLSAoc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgpOgogICAgICAtIDIgbmV3IHNubXAuY29uZiB0b2tlbnM6IGRvRGVidWdnaW5nLCBkZWJ1Z1Rva2Vucy4KCmhhcmRha2VyIDE3IEp1biA5OSAwNzozOTowMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggLS1oZWxwLgoKbXNsaWZjYWsgMTcgSnVuIDk5IDEzOjE4OjM1CiAgICBmaXh1cHMgdG8gYnVpbGQgbW9zdCBhcHBzIHVuZGVyIFdpbjMyIChNU1ZDKysgNS4wIG9yIGxhdGVyKQoKbXNsaWZjYWsgMTggSnVuIDk5IDA1OjAxOjU0CiAgICBhcHBsaWVkIGZpeGVzIGZyb20gTS4gTGF1a2thbmVuCgpkYXZlcyAxOCBKdW4gOTkgMDY6NTg6NTMKICAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBuZXcgcm91dGluZSBmb3IgcmVtb3Zpbmcgc3lzT1JUYWJsZSBlbnRyaWVzCgpkYXZlcyAxOCBKdW4gOTkgMDc6NTY6NDYKICAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogZGlzdGluZ3Vpc2ggYmV0d2VlbiBTTk1QIHByb3RvY29sICYgUERVIGhhbmRsaW5nIGZsYWdzCgpkYXZlcyAxOCBKdW4gOTkgMDg6MDA6MzQKICAgIC0gKHNubXBfY2xpZW50LmMpOiBFbmFibGUgYWNjZXNzIHRvICJlbXB0eSIgcmVzcG9uc2UgUERVcyAoaS5lLiBoZWFkZXIgb25seSkuCiAgICAJKGFsc28gbWFrZSAnc25tcF9jbG9uZV9tZW0nIGFjY2Vzc2libGUgdG8gb3RoZXIgZmlsZXMpCgpkYXZlcyAxOCBKdW4gOTkgMDg6MDQ6MjIKICAgIC0gKGFzbjEuaCBzbm1wX2FwaS5jKTogTmV3IHByaXZhdGUgdHlwZXMgZm9yIE9JRCByYW5nZXMKCmRhdmVzIDE4IEp1biA5OSAwODo0NDoxMQogICAgLSAoc25tcF9hcGkuaCk6IE5ldyBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUKCmRhdmVzIDE4IEp1biA5OSAwODo0NzozOAogICAgLSAoc25tcF9hcGkuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG5vbi1yZXNwb25zZSBoYW5kbGluZyBpbiAnc25tcF9zZXNzX3JlYWQnCgpkYXZlcyAxOCBKdW4gOTkgMDg6NDk6NTIKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIGFjY29tb2RhdGUgc2VydmVycyB0aGF0IHJlcXVpcmUgYW4gYWNjZXNzaWJsZSBjbGllbnQtZW5kIHVuaXggc3RyZWFtIHNvY2tldAogICAgICAgICAgICAgICAgICAoaW4gcGFydGljdWxhciwgdGhlIENNVSBBZ2VudFggbWFzdGVyIGFnZW50KQoKZGF2ZXMgMTggSnVuIDk5IDA4OjU1OjMyCiAgICAtIChzbm1wX2FwaS5oIE1ha2VmaWxlLmluIGFnZW50eC5jIGFnZW50eC5oIGFnZW50eF9jbGllbnQuYyk6CiAgICAgIC0gYmFzaWMgQWdlbnRYIHByb3RvY29sIGhhbmRsaW5nCgpkYXZlcyAxOCBKdW4gOTkgMDk6MDA6MTYKICAgIC0gKHNubXBfdmFycy5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWVhbnMgb2YgYnlwYXNzaW5nIFZBQ00gY2hlY2tzCgpkYXZlcyAxOCBKdW4gOTkgMDk6MTQ6NTgKICAgIC0gKHNubXBkLmMgc25tcGQuaCBzbm1wX3ZhcnMuYyBzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oCiAgICAgICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAgLSBpbml0aWFsIEFnZW50WCBzdWItYWdlbnQgaW1wbGVtZW50YXRpb24KCm1zbGlmY2FrIDE4IEp1biA5OSAxMDowMjowMwogICAgLShzeXNPUlRhYmxlLmMpIGZpeCBwdHIgdGVzdAoKbXNsaWZjYWsgMjIgSnVuIDk5IDA1OjIxOjAzCiAgICAgaW52b2tlIHNubXBfc2Vzc19pbml0IGJlZm9yZSBhbnkgTUlCIHByb2Nlc3NpbmcgKGZpeGVzIG1hc3RlciBhZ2VudCkuCgpuYmEgMjIgSnVuIDk5IDA1OjI1OjEzCiAgICBUT0RPOgluZWVkIGZvciBDb3VudGVyNjQgc3VwcG9ydCBpbiBzbm1wZGVsdGEKCmRhdmVzIDI4IEp1biA5OSAwMzowODo0MgogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6IG1ha2UgU05NUCBwYWNrZXQgaGFuZGxpbmcgcm91dGluZSByZS1lbnRyYW50LgoKZGF2ZXMgMjggSnVuIDk5IDA0OjA3OjM2CiAgICAtIHtNYWtlZmlsZS5pbiBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBfdmFycy5jIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgICAtIENvbnNvbGlkYXRlIGFsbCByZWdpc3RyeSBoYW5kbGluZyBpbnRvIG9uZSBmaWxlCgpkYXZlcyAyOCBKdW4gOTkgMDk6NTI6MDgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgc25tcF92YXJzLmggdmFyX3N0cnVjdC5oKToKICAgICAgLSBOb24tcmVjdXJzaXZlIE1JQiByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbgoKaGFyZGFrZXIgMjggSnVuIDk5IDE0OjU5OjQxCiAgICAtIChzbm1wZC5jKTogaW5pdF9zbm1wX2FsYXJtKCkuCgpoYXJkYWtlciAyOCBKdW4gOTkgMTU6MDE6MTQKICAgIC0gKHNubXB0cmFwZC5jKTogaW5pdF9zbm1wX2FsYXJtKCk7CgpkYXZlcyAzMCBKdW4gOTkgMDE6Mzc6MTEKICAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgoKZGF2ZXMgMzAgSnVuIDk5IDAxOjQ1OjI2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5oKTogSW5kaWNhdGUgc3VjY2Vzcy9mYWlsdXJlIG9mIHt1bn1yZWdpc3RyYXRpb24KCmRhdmVzIDMwIEp1biA5OSAwMTo0ODozNAogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6ICdhZ2VudF9zbm1wX3Nlc3Npb24nIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUKCmRhdmVzIDMwIEp1biA5OSAwMjozMjowMwogICAgLSAoc25tcF9hcGkuYyk6IENvcnJlY3QgdGhlIHNldHVwIG9mIHN0cmVhbS1iYXNlZCBhY2NlcHRlZCBpbnRlcm5hbCBzZXNzaW9ucwoKZGF2ZXMgMzAgSnVuIDk5IDAzOjIwOjQ2CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5oKTogb21pdCByZWR1bmRhbnQgZGVjbGFyYXRpb25zCgpkYXZlcyAzMCBKdW4gOTkgMDU6MDU6NDQKICAgIC0gKHNubXBfYXBpLmMpOiBQcm92aWRlIHRoZSBjb3JyZWN0IHNpemUgb2Ygc29ja2V0IGFkZHJlc3NlcwoKZGF2ZXMgMzAgSnVuIDk5IDA1OjA2OjUyCiAgICAtIChjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKTogY2hlY2sgZm9yIHN5cy91bi5oCgpkYXZlcyAzMCBKdW4gOTkgMDU6NDg6NDAKICAgIC0gKHNubXBfYXBpLmMpOiBNaXNzZWQgb25lICdzZW5kdG8nIGNhbGwKCmhhcmRha2VyIDMwIEp1biA5OSAxOTozNzozNgogICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywKICAgICAgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBjb252ZXJ0IG1vcmUgc3R1ZmYgdG8gdGhlIGRlZmF1bHRfc3RvcmUgc3BhY2UuCgpkYXZlcyAgMiBKdWwgOTkgMDI6Mzk6NDEKICAgIC0gKHNubXBfYXBpLmMpOiBGaXggdGhhdCBsYXN0ICdzZW5kdG8nIGNhc2UgKmNvcnJlY3RseSogdGhpcyB0aW1lCgpkYXZlcyAgMiBKdWwgOTkgMDU6MTM6NDIKICAgIC0gKHNubXBsaWIvYXNuMS5oIGFnZW50L3NubXBfdmFycy5oIGFnZW50L3NubXBfYWdlbnQuYyk6CiAgICAgIC0gaW1wbGVtZW50IGFuIGludGVyZmFjZSBmb3IgZGVsZWdhdGluZyByZXF1ZXN0cyB0byBzdWJhZ2VudHMKCmRhdmVzICAyIEp1bCA5OSAwNToxNTo1NgogICAgLSAodmFyX3N0cnVjdC5oIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgICAtIG1hcCBiZXR3ZWVuIE1JQiByZWdpc3RyYXRpb25zIGFuZCB0aGUgc3VwcG9ydGluZyAoc3ViYWdlbnQpIHNlc3Npb24KCmRhdmVzICAyIEp1bCA5OSAwNToxNjo0MQogICAgLSAoc25tcF9hcGkuaCk6IHN1cHBvcnQgbGlzdHMgb2Ygc2Vzc2lvbnMgKGFuZCBzdWJzZXNzaW9ucykKCmhhcmRha2VyICAyIEp1bCA5OSAwODoyNzozMAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcmVnaXN0ZXIgZGVidWdnaW5nIHRva2VucyB3aXRoIC1ECgpkYXZlcyAgNiBKdWwgOTkgMDI6MjA6NTcKICAgIC0gKHNubXBfYWdlbnQuYyk6IEZpeCBoYW5kbGluZyBvZiBTTk1QdjEgbm9TdWNoTmFtZQoKZGF2ZXMgIDcgSnVsIDk5IDA2OjU0OjUzCiAgICAtIChhc24xLmMgYXNuMS5oIHNubXAuYyBzbm1wLmggc25tcF9hcGkuYyBzbm1wX2FwaS5oCiAgICAgICBzbm1wX2F1dGguYyBzbm1wX2ltcGwuaCBhZ2VudHguYyk6CiAgICAgICAtIEZpcnN0IGF0dGVtcHQgYXQgZm9ybWF0dGVkIGRpc3BsYXkgb2YgcGFja2V0IGRhdGEKCmRhdmVzICA4IEp1bCA5OSAwMjoxNjoxNQogICAgLSAoc25tcF9hcGkuYyk6IFJldGFpbiBjb21tdW5pdHkgc3RyaW5nIGluIHJlc3BvbnNlcwoKZGF2ZXMgIDggSnVsIDk5IDA2OjI1OjA3CiAgICAtIChtaWJJSS9zeXN0ZW1fbWliLmMgbWliSUkvc25tcF9taWIuYyk6CiAgICAgIC0gVXBkYXRlICd3cml0ZScgcm91dGluZXMgZm9yIFY0IGFyY2hpdGVjdHVyZSwKICAgICAgICBhbmQgdXNpbmcgdGhlIGZ1bGwgU0VUIG11bHRpLXBhc3MgYWxnb3JpdGhtCgpoYXJkYWtlciAgOCBKdWwgOTkgMTQ6Mjk6MzUKICAgIC0gKGNvbmZpZy5oKTogY29tbWVudCBjaGFuZ2UgZm9yIGludGVybmFsIG1kNS4KCmhhcmRha2VyICA4IEp1bCA5OSAxNDozMDo0NwogICAgLSAoYXNuMS5jKTogLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTkgMTQ6MzY6NTIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBfYWdlbnQuYywKICAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHZpZXdfcGFyc2UuYywgdmFjbV92YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1haW4uYywgTWFrZWZpbGUuaW4sIGFjbC5jLAogICAgICBhY2wuaCwgYWNsX3BhcnNlLmMsIGNvbnRleHQuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgIGxpYnNubXAuaCwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgdmlldy5jLCB2aWV3LmgpOgogICAgICAtIHYycGFydHkgc3VwcG9ydCBpcyBmaW5hbGx5IGdvbmUhCgpoYXJkYWtlciAgOCBKdWwgOTkgMTQ6NDk6MDgKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgIDggSnVsIDk5IDE1OjE2OjM1CiAgICAtIChzbm1wZGVsdGEuYywgaW50NjQuYywgaW50NjQuaCk6IG1pbmltYWwgYzY0IHN1cHBvcnQgZm9yIHNubXBkZWx0YS4gVW50ZXN0ZWQuCgpoYXJkYWtlciAgOCBKdWwgOTkgMTY6MDI6NTgKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLavhyc3RhZDoKICAgICAgLSBBZGQgb3B0aW9ucyBmb3Igc3dpdGNoaW5nIHRvIGEgZ2l2ZW4gdWlkIGFuZCBnaWQuCgpkYXZlcyAgOSBKdWwgOTkgMDE6NDk6NDkKICAgIC0gKHNubXBkLmMpOiBDbGVhbiB1cCBnaWQvdWlkIGNoYW5nZSBsb2dnaW5nCgpkYXZlcyAgOSBKdWwgOTkgMDg6Mjc6MzkKICAgIC0gKCovTWFrZWZpbGUuaW4gc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXQogICAgICAgYWdlbnQvc25tcGQuW2NoXSBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAgLSBNb3ZlIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5Cgptc2xpZmNhayAgOSBKdWwgOTkgMTI6MTI6NTAKICAgIC0oc25tcF9jbGllbnQuKikgcmVtb3ZlIHNubXBfc3luY2hfc2V0dXAsIHNubXBfc3luY2hfcmVzZXQKCm1zbGlmY2FrICA5IEp1bCA5OSAxNDoyMDoyMwogICAgLSh3aW4zMixzbm1wbGliLGFwcHMsYWdlbnQpIGFkZCBzbm1wX3NvY2tldF9sZW5ndGggdG8gaGlkZSBzb2NrYWRkcl91bjsgV2luMzIgdG91Y2h1cHMKCm1zbGlmY2FrIDExIEp1bCA5OSAxODozNjoyNAogICAgUmVkdWNlIHVzZSBvZiBzbm1wX2Vycm5vIC0gZml4IG1lbW9yeSBsZWFrLCB1bnVzZWQgdmFycywgYW5kIHVuc2V0IHZhci4KCmRhdmVzIDEyIEp1bCA5OSAwNzoxNDozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiByZW1vdmUgZGVwZW5kZW5jeSBvbiBzbm1wbGliL2FnZW50eC5oCgpkYXZlcyAxMiBKdWwgOTkgMDg6MzI6MjcKICAgIC0gKG1pYmdyb3VwL2hvc3QvKik6IER5bmFtaWNhbGx5IHJlZ2lzdGVyIGFsbCBIb3N0IFJlc291cmNlIG1vZHVsZXMKCm1zbGlmY2FrIDE0IEp1bCA5OSAxMzoxNDozMAogICAgLShzbm1wX2FwaS5jKSAtIHNubXBfYWRkX3ZhciByZXR1cm5zIFNOTVBFUlI7IE1BWSBzZXQgc25tcF9lcnJubwoKbXNsaWZjYWsgMTQgSnVsIDk5IDEzOjQ2OjUzCiAgICAtKHNubXBsaWIvbWliLmMpIC0gY29uZGl0aW9uYWxseSBhbGxvdyBmb3Igbm90IHNldHRpbmcgc25tcF9lcnJubwoKaGFyZGFrZXIgMTUgSnVsIDk5IDA4OjQ2OjAwCiAgICAtIChhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgIC0gYmVnaW5uaW5nIG9mIGEgLURkdW1wIHZlcnNpb24gb2YgcGFja2V0IGR1bXBpbmcuCiAgICAgIC0gbmVlZHMgYSBsb3QgbW9yZSB3b3JrIGFuZCBjbGVhbiB1cC4KICAgICAgLSBJIG5lZWQgY29tbWVudHMuLi4gIFRlbGwgbWUgd2hhdCB5b3UgdGhpbmsuLi4KCmhhcmRha2VyIDIwIEp1bCA5OSAxNDowMjoyNgogICAgLSAoYXV0b19ubGlzdC5jLCBoaXN0b3J5LmMsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCwgdXRpbF9mdW5jcy5jLCBpcGZ3Y2hhaW5zLmMsCiAgICAgIGF0LmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhY21fdmFycy5jLCB2YXJfcm91dGUuYywgZGxtb2QuYywgc211eC5jLCBkaXNrLmMsIGV4dGVuc2libGUuYywKICAgICAgbG9hZGF2ZS5jLCBtZW1vcnlfc29sYXJpczIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLAogICAgICB2ZXJzaW9uaW5mby5jLCBhbGFybS5jLCBldmVudC5jLCBNYWtlZmlsZS5pbiwgcGFyc2UuYywgc25tcC5jLAogICAgICBzbm1wX2RlYnVnLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IFBhdGNoIGZyb20gUmFnbmFyCiAgICAgIEtq+HJzdGFkOgogICAgICAtIGRvIGZpbGUsIHN0ZGVyciwgYW5kIHN5c2xvZyBzdXBwb3J0LgoKaGFyZGFrZXIgMjAgSnVsIDk5IDE3OjA2OjUzCiAgICAtIChhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywKICAgICAgaXBmd2NoYWlucy5jLCBpbnRlcmZhY2VzLmMsIGRsbW9kLmMsIHNtdXguYywgdmVyc2lvbmluZm8uYywKICAgICAgYWxhcm0uYyk6CiAgICAgIC0gY29udmVydCBzbm1wX2xvZyhMT0dfREVCVUcpIHRvIERFQlVHTVNHVEwoKS4KCm1zbGlmY2FrIDIwIEp1bCA5OSAxODoxMTo1MAogICAgLW1pbm9yIGNoYW5nZXMgdG8gYnVpbGQgV2luMzIgcGxhdGZvcm1zIHVzaW5nIEN5Z1dpbi1lZ2NzIGFuZCBNU1ZDIGNvbXBpbGVycy4KCm1zbGlmY2FrIDIwIEp1bCA5OSAxOTozMzoyNgogICAgLSBubyBwcmludGYgaW4gYXNjaWlfdG9fYmluYXJ5CgpoYXJkYWtlciAyMSBKdWwgOTkgMTY6MDY6NTIKICAgIC0gKHRrbWliLCBtaWIyYyk6IHVkcGF0ZSB0byB1c2UgaW5kZXhlcyAocmVxdWlyZXMgYSBwZXJsIHBhdGNoLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEwOjM2OjU0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGxvZyB0byBzdGRlcnIuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTA6NDQ6MTcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywga2VybmVsX3N1bm9zNS5jLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywKICAgICAgaW50ZXJmYWNlcy5oLCBzeXN0ZW1fbWliLmMsIHZhcl9yb3V0ZS5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wdHJhcGQuYywgSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgICAgSUFOQWlmVHlwZS1NSUIudHh0LCBJRi1NSUIudHh0LCBJUC1NSUIudHh0LCBUQ1AtTUlCLnR4dCwKICAgICAgVURQLU1JQi50eHQsIHBhcnNlLmMsIHNubXBfYWxhcm0uYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAgLSBtZXJnZSBmcm9tIFYzLWxpbmUgcG9zdCAzLjYuMiB0byBjdXJyZW50LgogICAgICAtIG1pc2MgYnVnIGZpeGVzLgogICAgICAtIG1ha2UgYXBwcyB0dXJuIG9uIHN0ZGVyciBsb2dnaW5nIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MTg6MjMKICAgIC0gKHNubXBkLmMpOiBtb3JlIHNubXBfbG9nIGNvbnZlcnNpb25zLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjE4OjQ0CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBjaGFuZ2UgbWFsbG9jIHNpemUoKS4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoxOToyMAogICAgLSAoYXNuMS5jKTogbnVsbCB0ZXJtaW5hdGUgcGFyc2VkIHN0cmluZ3MsIGp1c3QgaW4gY2FzZS4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoyMDowMgogICAgLSAoc25tcC5jKTogeGR1bXAgZml4ZXMuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MjA6MzMKICAgIC0gKGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBzbm1wX2xvZyBjb252ZXJzaW9ucy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNDoxOTozOQogICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAgLSByZXZlcnQgdG8gbm9uLWRwYXJzZSB2ZXJzaW9ucyBvZiBhc24gZGVjb2RpbmcuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTQ6MjY6NTcKICAgIC0gKHNubXBkLmMpOiBpbml0IGRlYnVnZ2luZy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNToyMjowMgogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2NsaWVudC5jKToKICAgICAgLSBtYWtlIGFuZCB1c2Ugc25tcF9zZXNzX3BlcnJvcihzdHIsIHNlc3MpIGZvciBlcnJvciBwcmludGluZy4KCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzoxMTozMAogICAgLShhc24xLmMpIC0gZml4IGNvbXBhcmUgZXJyb3IgYXQgbGluZSAzODY7IHJlbW92ZSB1bnVzZWQgdmFycyBlbHNld2hlcmUKCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzoxODoxMwogICAgLShsaWJzbm1wLmRlZikgLSBhZGQgZGVjbHMgZm9yIG5ldyBlcnJvciBsb2dnaW5nIGZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzo0NTo1OQogICAgLShzbm1wX2NsaWVudC5jKSAtIHVzZSBTRVRfU05NUF9FUlJPUiBmb3IgcmVzdG9yZWQgc25tcF9lcnJubyBzZXRzLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA4OjExOjA1CiAgICAtKG1kNS5jKSAtIHdyYXAgdW51c2VkIE1ENXByaW50IHdpdGggU05NUF9URVNUSU5HX0NPREUgaWZkZWYKCmhhcmRha2VyIDI2IEp1bCA5OSAwNzozNzowOQogICAgLSAoU05NUHYyLUNPTkYudHh0KTogcmVtb3ZlZCBib2d1cyBJTVBPUlRTIGNsYXVzZQoKaGFyZGFrZXIgMjYgSnVsIDk5IDA5OjA0OjA5CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKCmhhcmRha2VyIDI2IEp1bCA5OSAwOToxNDoyNAogICAgLSAoTkVXUyk6IHVwZGF0ZWQgYSBiaXQKCmhhcmRha2VyIDI2IEp1bCA5OSAxMTo1MToyMgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNCApCgpoYXJkYWtlciAyNiBKdWwgOTkgMTQ6MzI6MTcKICAgIC0gKG1pYi5jKTogQklUX3N0cmluZzogLT4gQklUUzoKCm1zbGlmY2FrIDI2IEp1bCA5OSAxNToxMjo0NQogICAgLShhc24xLmMsYXNuMS5oLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jLHNubXB1c20uYykgbW9yZSBkZXRhaWxlZCBwYXJzZSBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyIDI2IEp1bCA5OSAxNTo1OToxMAogICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyNiBKdWwgOTkgMTc6MDY6MDMKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSB2YXJpYWJsZSBuYW1pbmcgY2hhbmdlLgoKaGFyZGFrZXIgMjYgSnVsIDk5IDE3OjA2OjQ3CiAgICAtIChocHV4LmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gZGVmaW5lIGhwdXgKCmhhcmRha2VyIDI2IEp1bCA5OSAxNzowNzozMQogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywgc2NhcGkuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBzaXplX3QgY2hhbmdlcy4KCm1zbGlmY2FrIDI3IEp1bCA5OSAwNDoyNDowOAogICAgYWRkIGluY2x1ZGUgbmV0L2lmX2RsLmggc3VnZ2VzdGVkIGJ5IFRvbSBJdmFyIEhlbGJla2ttbwoKZGF2ZXMgMjcgSnVsIDk5IDA2OjM4OjA5CiAgICAtIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC8qLmMpOiB0d2VhayByZWdpc3RyeSBsYWJlbHMKCm1zbGlmY2FrIDI3IEp1bCA5OSAwNzo1MjozNwogICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywKICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyxhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyxhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgIHNubXBsaWIvYXNuMS5jLHNubXBsaWIvc2NhcGkuYyxzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgICBzbm1wbGliL3NubXBfY2xpZW50LmgpICBFUlJPUl9NU0csIHByaW50ZiAtLT4gREVCVUdNU0dUTAoKbXNsaWZjYWsgMjcgSnVsIDk5IDA5OjMzOjQzCiAgICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L3NubXBkLmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyxhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgICBhcHBzL3NubXBidWxrd2Fsay5jLGFwcHMvc25tcGRlbHRhLmMsYXBwcy9zbm1wZ2V0LmMsCiAgICBhcHBzL3NubXBnZXRuZXh0LmMsYXBwcy9zbm1wc2V0LmMsYXBwcy9zbm1wc3RhdHVzLmMsCiAgICBhcHBzL3NubXB0YWJsZS5jLGFwcHMvc25tcHRlc3QuYyxhcHBzL3NubXB0cmFwLmMsCiAgICBhcHBzL3NubXB0cmFwZC5jLGFwcHMvc25tcHVzbS5jLGFwcHMvc25tcHdhbGsuYywKICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLHNubXBsaWIvcGFyc2UuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICBzbm1wbGliL3NubXB2My5jKSBmaXggc25tcF9zZXNzX3BlcnJvciB1c2U7IHVzZSBsb2dfcGVycm9yIGZvciBwZXJyb3IKCm1zbGlmY2FrIDI3IEp1bCA5OSAxMjowMDozNwogICAgLShlbmNvZGVfa2V5Y2hhbmdlLmRzcCxzbm1wdXNtLmRzcCkgLWJ1aWxkIHVzaW5nIGNvbW1vbiBXaW4zMiBjb21waWxlcgoKbXNsaWZjYWsgMjcgSnVsIDk5IDEyOjI0OjAzCiAgICAtKGFwcHM6ZW5jb2RlX2tleWNoYW5nZS5jLHNubXBkZWx0YS5jLHNubXB0YWJsZS5jLCBzbm1wdXNtLmM7CiAgICBzbm1wbGliOnJlYWRfY29uZmlnLmMsc25tcHYzLmM7IHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKSAtCiAgICAgYWRqdXN0IGhlYWRlcnMsIGJ1aWxkIFdpbjMyIHNubXB1c20rZW5jb2RlX2tleWNoYW5nZQoKbXNsaWZjYWsgMjcgSnVsIDk5IDE2OjA2OjM1CiAgICAtKGludGVyZmFjZXMuYykgLSBmaXggZXJyb3Igc2V0dGluZyBpZl9pYnl0ZXMgZm9yIExpbnV4IDIuMAoKaGFyZGFrZXIgMjcgSnVsIDk5IDE2OjE0OjI4CiAgICAtIChhc24xLmMsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYyk6CiAgICAgIC0gY2xlYW5lZCB1cCBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCiAgICAgIC0gYWRkZWQgbW9yZSBkdW1wIHBhcnNlIGhlYWRlcnMgZm9yIHYzIGR1bXBzLgoKaGFyZGFrZXIgMjcgSnVsIDk5IDE2OjIwOjQ2CiAgICAtIChhc24xLmMpOiBmaXggaGVhZGVyIGR1bXAuCgptc2xpZmNhayAyNyBKdWwgOTkgMTc6MTU6MDEKICAgIGluY2x1ZGluZyBtaWIuaCByZXF1aXJlcyBzdGRpby5oIHRvIGRlZmluZSBGSUxFICouCgptc2xpZmNhayAyNyBKdWwgOTkgMTk6MDI6MzEKICAgIC0oc25tcF9wYXJzZV9hcmdzKSBpbiBzbm1wX3BhcnNlX29pZCwgdHJ5IGdldF9ub2RlIGlmIHJlYWRfb2JqaWQgZmFpbHMuCgptc2xpZmNhayAyNyBKdWwgOTkgMTk6MDY6MDgKICAgIC0obWliLmMpIGZpeCB3YWxraW5nIE9JRCBsZW5ndGggcG9pbnRlciwgbnVtZXJpYyBzdWItaWQgbm90IGZvdW5kCiAgICBpbiByZWFkX29iamlkIGFuZCBwYXJzZV9zdWJ0cmVlLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDIzOjM0OjU5CiAgICAtKHNubXBkLmMpIGludm9rZSBsb2cgZnVuY3Rpb25zIGZyb20gY2hpbGQgKGNvcnJlY3QgcHJvY2VzcyBJRCBpbiBzeXNsb2cpCgptc2xpZmNhayAyNyBKdWwgOTkgMjM6NTg6NTEKICAgIC0oa2V5dG9vbHMuYyxtZDUuYyxtZDUuaCxzY2FwaS5jLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jKSBjYXRjaCBNRDUgZXJyb3JzCgptc2xpZmNhayAyOCBKdWwgOTkgMDI6NDI6MzIKICAgIGhyX3N3cnVuIC0gcmVzZXQgcG9pbnRlciBpbiBtb2R1bGUgaW5pdCAoaGVscCBIUC9VWCA5KQogICAgc25tcF9sb2dnaW5nIC0gdXNlIHZzcHJpbnRmIGZvciBIUC9VWC05CgpoYXJkYWtlciAyOCBKdWwgOTkgMDY6NDU6MTkKICAgIC0gKGJ1Zy1yZXBvcnQpOiBjaGFuZ2UgbWFpbCBhZGRyIHRvIHVjZC1zbm1wLWJ1Z3MKCmRhdmVzIDI5IEp1bCA5OSAwMzoyOTo0MAogICAgLSAobWliSUkvdmFjbV92YXJzLmMpOiBDYXRjaCB1c2Ugb2YgdW5jb25maWd1cmVkIEVYQU1QTEUuY29uZiBmaWxlcwoKbXNsaWZjYWsgMjkgSnVsIDk5IDA4OjM0OjU5CiAgICBtZW1vcnlfc29sYXJpczIgOiBoYW5kbGUgbWFsbG9jIGVycm9ycwogICAga2VybmVsX3N1bm9zNSA6IHNoYXJlIGtzdGF0IGZpbGRlcyBbU0hBUkVfS1NUQVRfRkRdCgptc2xpZmNhayAyOSBKdWwgOTkgMTM6Mjg6MzYKICAgIC0oYXBwcy9NYWtlZmlsZS5pbikgLSBjb21tZW50IHVubmVlZGVkIFRSQVBTUEVDSUFMIGxpbmUKCm1zbGlmY2FrIDI5IEp1bCA5OSAxMzo1OTowMgogICAgLShhZ2VudC9zbm1wZC5jKSAtIGxvZyBzdGFuZGFyZCBlcnJvciB1bnRpbCBpbml0IGlzIGNvbXBsZXRlZC4KCm1zbGlmY2FrIDI5IEp1bCA5OSAxNTowNDo0OQogICAgYXV0b19ubGlzdCwga2VybmVsIDogcGxhY2UgbG9nX3BlcnJvciB0byBjYXRjaCBlcnJubyB2YWx1ZSBpbiByZXBvcnQuCgpoYXJkYWtlciAyOSBKdWwgOTkgMTc6MDM6MjUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IHJlbW92ZSB0cmFwX3NwZWNpYWwgc3R1ZmYuCgpoYXJkYWtlciAyOSBKdWwgOTkgMTc6MDY6NTYKICAgIC0gKG1pYmdyb3VwL3YycGFydHkpOiByZW1vdmVkIGZpbGVzLgoKbXNsaWZjYWsgMzAgSnVsIDk5IDAzOjUxOjMxCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBIQVZFX0dFVD8/P0JZTkFNRTsgUmVtb3ZlZCB1bnVzZWQgX0NSVElNUAoKbXNsaWZjYWsgMzAgSnVsIDk5IDAzOjU3OjIzCiAgICBSZW1vdmVkIGhpbnQgb2YgdjJwYXJ0eSBmcm9tIGNvbW1lbnQuCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6MDA6MjgKICAgIC0oYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyxhZ2VudC9oaXN0b3J5LmMsYWdlbnQvc25tcF92YXJzLmMsCiAgICBhZ2VudC9zbm1wZC5jLHNubXBsaWIvcmVhZF9jb25maWcuYyxzbm1wbGliL3NubXBfYWxhcm0uYywKICAgIHNubXBsaWIvc25tcF9hcGkuYyxzbm1wbGliL3NubXBfbG9nZ2luZy5jLHNubXBsaWIvc25tcHYzLmMsCiAgICBzbm1wbGliL3N5c3RlbS5jKSAtIHBzb3MgZGlmZnMgb2ZmZXJlZCBieSBBbnRob255IFN5bW9ucwoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjM3OjIwCiAgICByZW5hbWUgbG9jYWwgdmFyICdsYXN0JyB0byAnbGFzdF9pcGNoJyAtIGF2b2lkIHNoYWRvdyBnbG9iYWwgZGVjbAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjM5OjM4CiAgICBkZWNsIGxvZ19wZXJyb3IKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDo0Mjo0OAogICAgcmVuYW1lIHNkIHRvIGlmc2QgLSBhdm9pZCBnbG9iYWwgc2hhZG93IGRlY2wKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNTo0MjozNAogICAgaHJfc3RvcmFnZS5jIC0gYXV0b19ubGlzdCBmb3IgSFJfU1RPUkVfU0laRQogICAgaHJfc3dydW4uYyAtIGZpeCBnbG9iYWwgc2hhZG93IGRlY2wKICAgIHNubXBfbG9nZ2luZy5jIC0gY2hhbmdlIGZpbHRlciBmb3Igb3BlbmxvZyBwZXIgQS4gU3ltb25zIHBhdGNoCgpkYXZlcyAzMCBKdWwgOTkgMDY6MDE6MDgKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jCiAgICAgICBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCk6CiAgICAgICAtICBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIHYycCBzdXBwb3J0CgpkYXZlcyAzMCBKdWwgOTkgMDY6MjM6MDYKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMgYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnNfbTJtLmgpOgogICAgICAtIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2Ygb2Jzb2xldGUgdjJwYXJ0eSBNYW5hZ2VyLXRvLU1hbmFnZXIgc3VwcG9ydAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjMwOjMwCiAgICBzeXN0ZW0gLSB1c2Ugc2l6ZW9mCgptc2xpZmNhayAzMCBKdWwgOTkgMDY6MzA6NTkKICAgIHdpbjMyL2NvbmZpZy5oIC0gZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjo0NjoyMgogICAgdXNlIHRyYWRpdGlvbmFsIEsmUiBjb21tZW50aW5nOyBub3QgYWxsICJDIiBjb21waWxlcnMgYWNjZXB0ICIvLyIgY29tbWVudHMuCgptc2xpZmNhayAzMCBKdWwgOTkgMDY6NTg6MDgKICAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIG5vbi1leGlzdGVudCBzbm1wX3ZhcnNfbTJtLmgKCmRhdmVzIDMwIEp1bCA5OSAwNzowMTo0NgogICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQoKZGF2ZXMgMzAgSnVsIDk5IDA3OjMxOjU2CiAgICAtIChhY2NvbmZpZy5oKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5Cgptc2xpZmNhayAzMCBKdWwgOTkgMDg6MDE6MTgKICAgIGFkZCB2c25wcmludGYgY2hlY2sgYW5kIEhBVkVfVlNOUFJJTlRGIGNvbnN0YW50Cgptc2xpZmNhayAzMCBKdWwgOTkgMDg6MzI6MjgKICAgIG5vIHN0cnVjdCBzb2NrYWRkcl9kbCBpbiBBSVggMy4KCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxMDowNQogICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bi4KCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxMDozMAogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIC92YXIvdWNkLXNubXAgZXhpc3QuICBXZSBzaG91bGQgZG8gYSBwZXJtaXNzaW9uCiAgICAgIHNldCBhcyB3ZWxsLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjE4OjU1CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxOToyMQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNSApCgptc2xpZmNhayAgMiBBdWcgOTkgMDQ6Mjk6MzUKICAgIGFzbjEsIHBhcnNlKSBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuIChNSlMtdXNlIHhjYWxsb2MgaW4gcGFyc2UpCgptc2xpZmNhayAgMiBBdWcgOTkgMDQ6Mzc6NDYKICAgIHBhcnNlIC0gc2hhbWUgb24gbWUgZm9yIG5vdCBjb21waWxlIHRlc3RpbmcgZmlyc3QhCgptc2xpZmNhayAgMiBBdWcgOTkgMjI6Mjk6MzcKICAgIHNubXBfZGVidWcgLSBERUJVR01TRyBtYWNyb3MgY2FsbCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcgYmVmb3JlIGludm9raW5nIGRlYnVnbXNnKiBmdW5jdGlvbnMuCgptc2xpZmNhayAgMyBBdWcgOTkgMDQ6NDY6NDEKICAgIHNubXBfYXBpLmMgLSByZW1vdmUgIkJZIiBmcm9tIEhBVkVfR0VUSE9TVEJZTkFNRSAoU29sYXJpcyAyLjUuMSB3cm9uZyEpCgptc2xpZmNhayAgMyBBdWcgOTkgMDY6NTk6NTAKICAgIGFzbjEuYyAtIGZpeCBvdXQtb2YtYm91bmQgYXJyYXkgd3JpdGUgYW5kIG1lbW9yeSBsZWFrIGluIHBhcnNpbmcgc3RyaW5ncy4KCm1zbGlmY2FrICAzIEF1ZyA5OSAwNzowMDoxNgogICAgc25tcF9kZWJ1Zy5jIC0gcmVtb3ZlIHRyYWNlIG1lc3NhZ2VzIGZyb20gZGVidWdtc2dfaGV4dGxpLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjAzOjE0CiAgICBzbm1wX2RlYnVnLmggLSBtb3ZlIERFQlVHVFJBQ0UgZnJvbSBkZWJ1Z21zZ19oZXh0bGkgdG8gREVCVUdEVU1QU0VUVVAKCm1zbGlmY2FrICAzIEF1ZyA5OSAwNzo1ODo0OQogICAgdmFjbV92YXJzLmMgLSBjb3B5IGNvbW11bml0eSBzdHJpbmcsIG51bGwgdGVybWluYXRlLCB0aGVuIGRlYnVnIHByaW50Cgptc2xpZmNhayAgMyBBdWcgOTkgMTI6NTM6MzIKICAgIHNubXBfZGVidWcuaCAtIGZpeCAid2FybmluZzogQU5TSSBDIGZvcmJpZHMgY29uZGl0aW9uYWwgZXhwciB3aXRoIG9ubHkgb25lIHZvaWQgc2lkZSIuCgptc2xpZmNhayAgMyBBdWcgOTkgMTQ6MDY6MzMKICAgIHNubXBfZGVidWcuYyAtIHNpZ25lZCBjb21wYXJpc29uIGZvciBsZW4gaW4gZGVidWdtc2dfaGV4dGxpLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDAzOjQ4OjAyCiAgICAtKHNtdXguYykgLSBwYXRjaCBzdXBwbGllZCBieSBOaWNrIEFtYXRvIHRvIGZpeCBBU05fSVBBRERSRVNTIHBhcnNlLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDA1OjAzOjExCiAgICB1bmRvIHBhdGNoIGFyb3VuZCBTb2xhcmlzJyBjb25maWd1cmUgZmFpbHVyZSB0byByZWdpc3RlciBIQVZFX0dFVEhPU1RCWU5BTUUuCgptc2xpZmNhayAgNCBBdWcgOTkgMDk6MTc6MTgKICAgIC0oY29uZmlndXJlKikgLSBLZW4gSG9ybnN0ZWluOiBmaXggdGVzdCB4eGdldGhvc3RieW5hbWUsIHh4Z2V0c2VydmJ5bmFtZS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAxMjozMzo1NgogICAgc25tcF9hcGkuYyAtIGR1bW15IGZ1bmN0aW9ucyBzbm1wX3N5bmNoX3tzZXR1cCxyZXNldH0gYW5kIHNubXBfZ2V0X2Vycm5vLgoKbXNsaWZjYWsgIDUgQXVnIDk5IDAzOjI1OjU1CiAgICBjb25maWcuc3ViIC0gcGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuIHRvIHN1cHBvcnQgSFBVWCAxMQoKbXNsaWZjYWsgIDUgQXVnIDk5IDExOjExOjUzCiAgICBzbm1wX2FwaS4zIC0gZGVzY3JpYmUgc25tcF9lcnJvcigpLCByZXBsYWNlcyBzbm1wX2Vycm5vIGFuZCBzbm1wX2dldF9lcnJubygpCgpkYXZlcyAgNiBBdWcgOTkgMDU6NTk6NDYKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gY29uZmlndXJlLXRpbWUgZmxhZyB0byBjb250cm9sIHByb3Zpc2lvbiBvZiAiZHVtbXkiIHZhbHVlcwoKZGF2ZXMgIDYgQXVnIDk5IDA2OjAyOjE1CiAgICAtIChtaWJJSS8qLmMgaG9zdC8qLmMpOiBEb24ndCBwcm92aWRlICJkdW1teSIgdmFsdWVzICh1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkKQoKbmJhICA5IEF1ZyA5OSAwMDoyNDozNwogICAgcGFyc2UuYzoJcGFyc2UgYWdlbnQgY2FwYWJpbGl0aWVzCgpkYXZlcyAgOSBBdWcgOTkgMDE6MDI6MTUKICAgIC0gKEZBUSk6IE5pbmUgbmV3IHF1ZXN0aW9ucywgcGx1cyBhc3NvcnRlZCB0d2Vha3MgZm9yIHRoZSBuZXcgcmVsZWFzZS4KCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo0ODo0NwogICAgbWliLiosIHBhcnNlLiogLSBtb3ZlIHByaW50X29pZF9yZXBvcnQgYW5kIG1pbmlvbnMgd2hvbGx5IGludG8gbWliLmMKCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo1MDozNgogICAgIHNubXBkZWx0YSwgdHJhbnNsYXRlLCB0cmFwZCkgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlOyByZW1vdmUgZGlzYWJsZXMgZm9yIHByaW50X29pZF9yZXBvcnQgaW4gdHJhbnNsYXRlLgoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjUyOjQ3CiAgICBzbm1wZC5jIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZQoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjU0OjAxCiAgICBsaWJzbm1wLmRlZiAtIHJlbW92ZSBwcmludF9vaWRfcmVwb3J0IGRpc2FibGUgb3B0aW9ucwoKbXNsaWZjYWsgIDkgQXVnIDk5IDA5OjQ1OjE1CiAgICAtKHNubXAuYykgZml4IGJ1ZmZlciBvdmVyZmxvdyBpbiB4ZHVtcCwgb2YgYWxsIHBsYWNlcyAoNzcgcy9iIDc4OyB1c2luZyA4MCkKCm5iYSAgOSBBdWcgOTkgMTA6NDM6MjgKICAgIChtYW55KToJbnVrZSB2YXJpb3VzIHByb3RvdHlwZSB3YXJuaW5ncwoKbXNsaWZjYWsgIDkgQXVnIDk5IDExOjQwOjI1CiAgICAtKG1kNS5jKSBmaXggcmVhZCBwYXN0IGVuZCBwcm9ibGVtCiAgICAtKHNubXBfYXBpLmMpIGZpeCBsb3NpbmcgY29tbXVuaXR5IHN0cmluZyBwcm9ibGVtCgpoYXJkYWtlciAgOSBBdWcgOTkgMTM6MTI6MzUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSAvZGV2L3JhbmRvbSB0ZXN0LgoKbXNsaWZjYWsgIDkgQXVnIDk5IDE1OjA3OjI0CiAgICBzbm1wdXNtLmMgLSBhbHdheXMgY2xlYXIgZmllbGRfbGVuIGlmIHJlZiBpcyB2YWxpZCBwdHI7CiAgICBzbm1wX2FwaS5jIC0gZG9uJ3Qgb3ZlcndyaXRlIGNvbW11bml0eSBwb2ludGVyIHdpdGggc2VjdXJpdHlBdXRoUHJvdG8gcG9pbnRlcgoKbmJhIDEwIEF1ZyA5OSAwNDo0NToxNwogICAgY29uZmlndXJlLmluIGNvbmZpZy5oLmluIGNvbmZpZ3VyZSBzL25ldGJzZCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKICAgIAlzdXBwb3J0IGZvciBOZXRCU0Qvc3BhcmMgYW5kIE5ldEJTRCAxLjQKCm5iYSAxMCBBdWcgOTkgMDQ6NDY6MzUKICAgIHNubXBsaWIvbWliLmM6CWZpeCBoYW5kbGluZyBvZiBudW1lcmljIG9pZHMgYW5kIHJlcG9ydGluZyBlcnJvcnMKCm5iYSAxMCBBdWcgOTkgMDQ6NDc6MjIKICAgIGFnZW50L2tlcm5lbC5jOglhYm9ydCBvbiBrdm1fb3BlbiBmYWlsdXJlcwoKbmJhIDEwIEF1ZyA5OSAwNDo0ODo0MQogICAgc25tcG5ldHN0YXQvaWYuYzoJZml4ZXMgZm9yIHNubXBuZXRzdGF0IC1pIG9uIHZpcnR1YWwgaW50ZXJmYWNlcwoKbmJhIDEwIEF1ZyA5OSAwNDo1MDo1MgogICAgaW50ZXJmYWNlcy5jIHZhcl9yb3V0ZS5jIHNubXBfbG9nZ2luZy5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCm1zbGlmY2FrIDEwIEF1ZyA5OSAwOToxOToxMAogICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUixXQVJOSU5HKQoKbXNsaWZjYWsgMTAgQXVnIDk5IDEwOjA0OjQwCiAgICBGaXggZm9yIGJ1aWxkIChubyBwYWdlc2l6ZSB2YXIgZGVmaW5lZCBmb3IgbGludXgpLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDExOjA1OjM4CiAgICAtIChzbm1wZC5jKTogbG9nIHZlcnNpb24gbnVtYmVyIGFmdGVyIHN0ZGVyciBpcyBvcHRpb25hbGx5IGNsb3NlZC4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxNDoyNjozMwogICAgLSAoc25tcF92YXJzLmMpOiBwcm90ZWN0IGFnYWluc3QgZXZpbCBtaWIgbW9kdWxlcyBmcm9tIG1vZGlmeWluZwogICAgICBtZW1vcnkgdGhleSBzaG91bGRuJ3QgYmUgbW9kaWZ5aW5nIHlldC4KICAgICAgLSAoaWZkZWYnZWQgZm9yIHNwZWVkIHByb2ZpbGluZyBsYXRlcikuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTU6NTQ6MzMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZm9yY2UgdjMgZW5naW5lSUQgc2V0dGluZyB0byBzb21ldGhpbmcgYm9ndXMgdG8KICAgICAgZ2V0IGFyb3VuZCBsb2NhbCBjb25maWd1cmF0aW9uIGRhdGEgc3RvcmUgdGltZSBzeW5jaHJvbml6YXRpb24gY29uZmxpY3RzLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDE3OjIzOjU5CiAgICAtIChzbm1wZC5jKTogcHJpbnQgLUggdXNhZ2UgdG8gc3RkZXJyLgoKaGFyZGFrZXIgMTEgQXVnIDk5IDEzOjA0OjUwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gTWFrZSBwZXJzaXN0ZW50IGNhY2hlIGNvbmZvcm0gdG8gYSBtb3JlIHNlY3VyZSB1bWFzay4KCm5iYSAxMSBBdWcgOTkgMjE6NTI6MjYKICAgIGhyX3N0b3JhZ2UuYzoJcmVtb3ZlIHRvIGZvcmdvdHRlbiBkZWJ1ZyBsaW5lcy4KCm5iYSAxMSBBdWcgOTkgMjE6NTM6MzEKICAgIHNubXBuZXRzdGF0L2lmLmM6CWhhbmRsZSBub24tY29udGlndW91cyBpZlRhYmxlLiBBbHNvIG1ha2UgdGhlCiAgICAJY291bnRlcnMgdW5zaWduZWQuCgpoYXJkYWtlciAxMiBBdWcgOTkgMTY6MTY6MDEKICAgIC0gKHNubXAuY29uZi41LmRlZik6IHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgdG9rZW4gbGlzdC4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjo0MToyMgogICAgLSAoRkFRLCBzbm1wY21kLjEsIHNubXB0cmFwLjEpOiBtaW5vciBkb2MgdXBkYXRlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjo0NjozNAogICAgLSAoTkVXUywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KCmRhdmVzIDEzIEF1ZyA5OSAwMjo0NzowMAogICAgLSAoZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5bY2hdCiAgICAgICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuW2NoXSBtaXNjL2lwZndhY2MuW2NoXQogICAgICAgdGFyZ2V0L3NubXBUYXJnZXR7QWRkcixQYXJhbXN9RW50cnkuW2NoXQogICAgICAgc211eC9zbm1wXyouW2NoXSk6CiAgICAgICAtIFJlZ2lzdGVyIG1vZHVsZXMgZHluYW1pY2FsbHkgYXQgcnVuLXRpbWUKCmhhcmRha2VyIDEzIEF1ZyA5OSAwNzoxMTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiAibWFrZSB0ZXN0IiBpbiB0b3AgbGV2ZWwgTWFrZWZpbGUuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDc6MTI6MTgKICAgIC0gKE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDA3OjE2OjUxCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDA5OjMzOjQwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IHVzZSBOT19EVU1NWV9WQUxVRVMgYnkgZGVmYXVsdC4KCm1zbGlmY2FrIDEzIEF1ZyA5OSAxMToxNDozOQogICAgKGhvc3QvaHJfZGV2aWNlLmMsaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYyxob3N0L2hyX3N0b3JhZ2UuYywKICAgIGhvc3QvaHJfc3dpbnN0LmMsaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLG1pYklJL2F0LmMsCiAgICBtaWJJSS9pbnRlcmZhY2VzLmMsbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLG1pYklJL3RjcC5jLAogICAgbWliSUkvdWRwLmMsbWliSUkvdmFyX3JvdXRlLmMpIC0gI2lmIE5PX0RVTU1ZX1ZBTFVFUyAoaGVscCBvdXQgY29uZmlndXJlKQoKaGFyZGFrZXIgMTMgQXVnIDk5IDExOjU1OjMxCiAgICAtICh2YXJfcm91dGUuYyk6IGRvbid0IGRvIGNhY2hpbmcgZm9yIE5PX0RVTU1ZX1ZBTFVFUy4KCm1zbGlmY2FrIDEzIEF1ZyA5OSAxMjoxODoxNwogICAgdmFyX3JvdXRlLmMgLSAjaWZkZWYgTk9fRFVNTVkgLS0+ICNpZiBOT19EVU1NWSAobGlrZSB0aGUgb3RoZXIgdXNlcykuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTI6NDk6MzUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcHJvcGVybHkgZG8gd2hhdCAtLXdpdGhvdXQtZHVtbXktdmFsdWVzCiAgICAgIHNob3VsZCBkby4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNToyMjo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgY29uZmlnX2xvYWRfbWliIHBhcnNpbmcuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTU6MzU6NTQKICAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgcmVtb3ZlIG1pYl9tb2R1bGVfbG9hZHMuaC4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNjowNTo0MgogICAgLSAocmVtb3ZlLWZpbGVzKTogcmVtb3ZlIHRoZSBJU1NVRVMgZmlsZSBmb3IgcmVsZWFzZXMuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTY6MDY6NTEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTYgKQoKbmJhIDE2IEF1ZyA5OSAxNDo1ODo0MAogICAgc25tcG5ldHN0YXQvaWYuYzogYWxsb3cgLWkgYW5kIC1vIG91dHB1dHMgZXZlbiB3aXRoIGluY29tcGxldGUgcmVzcG9uc2VzCiAgICAJZnJvbSBzbm1wZCAoc3VjaCBhcyBMaW51eCB0aGF0IGRvZXMgbm90IHJldHVybiBpZkluTlVDYXN0UGt0cwogICAgCXdpdGggdGhlIG5ldyBEVU1NWSBzZXR1cCkKCm5iYSAxNiBBdWcgOTkgMTQ6NTk6MjkKICAgIHNubXBuZXRzdGF0L21haW4uYzogZW5hYmxlX3N0ZGVycmxvZygpIHNvIHRoYXQgd2UgZ2V0IGFuIGVycm9yIG1lc3NhZ2UKICAgIAlmb3IgYmFkIGhvc3QgbmFtZXMuCgpuYmEgMTggQXVnIDk5IDAyOjQwOjQ4CiAgICBhZ2VudC9zbm1wZC5jOgltb3ZlIHRoZSB0ZXJtaW5hdGlvbiBwcm9jZXNzaW5nIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCiAgICAJdG8gYWZ0ZXIgdGhlIG1haW4gbG9vcCBoYXMgdGVybWluYXRlZC4KCm5iYSAxOCBBdWcgOTkgMDI6NTE6NTcKICAgIC0gc25tcGQuYywgYWdlbnRfcmVhZF9jb25maWcuPywgdmVyc2lvbmluZm8uYzogbW92ZSB0aGUgcmVjb25maWd1cmF0aW9uCiAgICAJb3V0c2lkZSB0aGUgc2lnbmFsIGhhbmRsZXIuCgpuYmEgMTggQXVnIDk5IDA5OjI2OjM1CiAgICAtIGludGVyZmFjZXMuPzogdXBkYXRlcyBmb3IgTGludXggdG8gaGFuZGxlIGxhcmdlIGNvdW50ZXJzIGFuZCB2aXJ0dWFsCiAgICAJaW50ZXJmYWNlcy4KCm5iYSAxOCBBdWcgOTkgMDk6MzE6MDYKICAgIC0gKG1hbnkpOgljaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBsb2dnaW5nIGZ1bmN0aW9ucyB0byBiZSBzbm1wXyoKICAgIAlkZWZhdWx0IGRvX3N0ZGVycl9sb2dnaW5nIHRvIDEuCgpuYmEgMTkgQXVnIDk5IDAyOjMzOjU2CiAgICAtIGludGVyZmFjZXMuYzogcmVtb3ZlIHNvbWUgbGVmdCBvdmVyIGRlYnVnIG91dHB1dAoKbmJhIDE5IEF1ZyA5OSAwMjozNToxMAogICAgLSBzbm1wX2xvZ2dpbmcuYywgYWdlbnQvdmFyaW91czogcmVpbnN0YXRlIC1hIGFuZCAtViBsb2dnaW5nIChhbG1vc3QpLgogICAgCXRpbWVzdGFtcCBmaWxlIGFuZCBzdGRlcnIgbG9nZ2luZy4KCm5iYSAxOSBBdWcgOTkgMTA6Mzg6MDIKICAgIC0gc25tcF9hcGkuYzoJY29ycmVjbHkgY2FsbCBwcmUtcGFyc2UgaG9vaywgYWxzbyB3aGVuIG5vdCBkZWJ1Z2dpbmcKICAgIAkodGhpcyBraWxsZWQgdGhlIGxpYndyYXAgY2hlY2sgaW4gc25tcGQpCgpuYmEgMTkgQXVnIDk5IDEwOjM4OjQ4CiAgICAtIHNtdXguYzogcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBcbiBmcm9tIHNubXBfbG9nX3BlcnJvciBjYWxscy4KCm5iYSAxOSBBdWcgOTkgMTA6NDA6MjIKICAgIC0gc25tcGQuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgOiBmcm9tIHNubXBfbG9nX3BlcnJvci4KICAgIAlMb2cgd2hlbiBzbm1wZCByZWNvbmZpZ3VyZXMgZm9sbG93aW5nIGEgU0lHSFVQCgpuYmEgMTkgQXVnIDk5IDE0OjA5OjI1CiAgICAtIHNubXBfYXBpLj8sIHNubXBkLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jOiByZWluc3RhdGUgYWdlbnRfYWRkciBpbgogICAgCXRoZSBwZHUgc3RydWN0dXJlICh1c2VkIGZvciB2MSB0cmFwcykuCgpoYXJkYWtlciAxOSBBdWcgOTkgMTY6MDk6NTQKICAgIC0gKHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jKTogUGF0Y2ggZnJvbSBkbGVuZ2VsQGhvbWUuY29tOgogICAgICAtIGNoZWNrIGFyZ3VtZW50IGNvdW50IGZvciBtaW5pbXVtIG51bWJlci4KCm5iYSAyMCBBdWcgOTkgMDM6NDM6MzcKICAgIC0gYWdlbnR4Lyo6IHZhcmlvdXMgcHJvdG90eXBlIGZpeGVzLCB0byBrZWVwIG51bWJlciBvZiB3YXJuaW5ncyBkb3duCgpoYXJkYWtlciAyMCBBdWcgOTkgMTM6NDM6NTYKICAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAgLSBtYWtlIGxvZ2dpbmcgb2YgdGltZXN0YW1wcyBvcHRpb25hbCBieSBhIHNubXAuY29uZiBkaXJlY3RpdmUuCgpoYXJkYWtlciAyMCBBdWcgOTkgMTM6NTY6NTcKICAgIC0gKHNubXAuY29uZi41LmRlZiwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2xvZ2dpbmcuYyk6CiAgICAgIC0gdHVybiBvZmYgdGltZSBzdGFtcCBsb2dnaW5nIGJ5IGRlZmF1bHQuICBJdCBtdXN0IGJlIGV4cGxpY2l0bHkKICAgICAgICByZXF1ZXN0ZWQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRvIHR1cm4gaXQgb24uCiAgICAgICAgKHRoZSByZWFzb24gaXMgdGhhdCBhIGxvdCBvZiBsb2dnaW5nIGlzIGluY3JlbWVudGFsIGluIG5hdHVyZSBhbmQKICAgICAgICBpcyBub3QgbGluZSBidWZmZXJlZCBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgbG9nZ2luZyByb3V0aW5lcy4KICAgICAgICBUaGUgb3RoZXIgc29sdXRpb24gaXMgdG8gaGF2ZSB0aGUgbG9nZ2luZyByb3V0aW5lcyBkZXRlY3Qgd2hlbiB0bwogICAgICAgIHByaW50IHRpbWVzdGFtcHMgYnkgd2F0Y2hpbmcgb3V0IGZvciBcbidzLiAgQnV0LCBub3QgdGhpcyByb3VuZC4KCmhhcmRha2VyIDIwIEF1ZyA5OSAxNjozOToyMQogICAgLSAoc25tcF9hcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oLCBhc24xLmMpOiA2NGJpdCBjbGVhbnVwLgoKaGFyZGFrZXIgMjAgQXVnIDk5IDE3OjA4OjE3CiAgICAtIChORVdTKTogbGFzdCBtaW51dGUgY2hhbmdlcwoKaGFyZGFrZXIgMjAgQXVnIDk5IDE3OjEwOjI2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU3ICkKCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzozMzowMAogICAgLSAoaXBmY2hhaW5zKTogcmVtb3ZlZCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5ld2VyIG9uZSBpbiBmdHAncyBjb250cmliIGRpci4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NDo1NwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIC0td2l0aG91dC1kdW1teS12YWx1ZXMgaXMgZGVmYXVsdCBhZ2Fpbi4KICAgICAgLSBjbGVhbnVwIG9mIC0taGVscCBzdHVmZi4KICAgICAgLSBmaXggb2YgcGVyaXN0ZW50IGRpcmVjdG9yeSBjcmVhdGlvbi4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NjoyNwogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyMiBBdWcgOTkgMTc6NTc6MjcKICAgIC0gKHNubXBfYXBpLmgpOiB2ZXJzaW9uIC0+IHVfbG9uZy4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAwNjoxNDozOQogICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgY29uZmlnX2xvYWRfbWliCgpoYXJkYWtlciAyMyBBdWcgOTkgMDc6MDI6NDMKICAgIC0gKE5FV1MpOiBhbnNpIG1lbnRpb25lZC4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAwOTowMDo1OQogICAgV2luMzIgYnVpbGQgZml4ZXMKCm5iYSAyMyBBdWcgOTkgMTM6NTQ6MzIKICAgIC0gYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcF92YXJzLmM6IG1vdmUgc29tZSAtdiBsb2dnaW5nIHRvIGEgbW9yZSByYXRpb25hbAogICAgCXBsYWNlLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDE0OjAyOjUxCiAgICBEZXNjcmliZSBVU0VfQVNOX1NIT1JUX0xFTiBpbiBGQVEsIGFuZCBpbXBsZW1lbnQgaW4gX3NubXBfYnVpbGQuCgptc2xpZmNhayAyMyBBdWcgOTkgMTU6MzI6MjEKICAgIEhBQ0shIGZpeHVwIHNob3J0IGxlbmd0aCAoZmlyc3QgcHV0IGNvcnJlY3QgY29tbXVuaXR5IHN0cmluZyBpbiBwZHUtPiApLgoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjE0OjAwCiAgICAtIChUMDI4c25tcHYzZ2V0ZmFpbCk6IHNubXB2MyBnZXQgZmFpbHVyZSB0ZXN0LgoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjE0OjAwCiAgICAtIChJTlNUQUxMKTogcmVtb3ZlIHZlcnNpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjYuMSAtPiBWMy42LjIKCmhhcmRha2VyIDE2IE1hciA5OSAwODoxNToxOAogICAgLSAoZGxtb2QuYyk6IHJlbW92ZWQgYSBib2d1cyBuZXctbGluZS4KCmhhcmRha2VyIDE2IE1hciA5OSAxMDozNDowMwogICAgLSAoaHJfc3dydW4uYyk6IGZpeCBmaWxlIGRlc2NyaXB0b3IgbGVhayBvbiBmcmVlYnNkLgoKbXNsaWZjYWsgMTYgTWFyIDk5IDExOjIzOjMwCiAgICAtKHNubXBfYXBpLmMpIGNvbnNpc3RlbnQgZXJyb3IgcmV0dXJuLgoKbXNsaWZjYWsgMTYgTWFyIDk5IDExOjMzOjUyCiAgICAtIG1vdmUgTUFUQ0hfRkFJTEVEL01BVENIX1NVQ0NFRURFRCBmcm9tIHV0aWxfZnVuY3MuaCB0byBtaWJpbmNsLmgKCm1zbGlmY2FrIDE3IE1hciA5OSAxMzo1Mzo0OAogICAgLShocl9zd3J1bi5jKSAtIHByZXZlbnQgU3VuT1MgNC4xIGNvcmUgKHN1bm9zNCBzdGlsbCBwcmltaXRpdmUpCgptc2xpZmNhayAxOCBNYXIgOTkgMDg6Mzc6NDUKICAgIC0gKG1pYklJL2lwLmMpIGZpeCBNSUJfSVBDT1VOVEVSX1NZTUJPTCB1c2FnZQoKaGFyZGFrZXIgMTkgTWFyIDk5IDA5OjIzOjM4CiAgICAtIChzbm1wZ2V0LmMsIHNubXB3YWxrLmMpOiBmaXhlZCBpbml0aWFsaXphdGlvbiBhbmQgdXNhZ2Ugb2YgImZhaWx1cmVzIi4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDowOTo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgbW9yZSB0YXJnZXRzLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjEwOjExCiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSByZXR1cm4gdGhlIG5leHQgdG9rZW4sIG5vdCB0aGUKICAgICAgbmV4dCBzcGFjZS4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDoxMTowMwogICAgLSAobWliZGVmcy5oLCBzdHJ1Y3QuaCwgZXh0ZW5zaWJsZS5jLCBleHRlbnNpYmxlLmgsIHByb2MuYywgcHJvYy5oLAogICAgICBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBwZXItcHJvY2Vzcy9leGVjIGZpeCBzY3JpcHRzIGNyZWF0ZWQuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MjM6MjEKICAgIC0gKHZlcnNpb250YWcpOiByZWdleHAgZml4LgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjExOjMyCiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKTogcmVsb2NhdGUgdG8KICAgICAgc25tcE1vZHVsZXMuMTIsIHdoZXJlIHRoZXkgc2hvdWxkIGJlLgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjE3OjI0CiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSB3aGVuIHVzaW5nIGNvcHlfd29yZCgpIGRvbid0IHNraXAgc3BhY2VzLCBzaW5jZSBpdCBkb2VzIHRoYXQuCgptc2xpZmNhayAgMSBBcHIgOTkgMTM6MTA6NDcKICAgIC0gKGxpYnNubXAuaCkgQXN5bXB0b3RpY2FsbHkgY2xvc2VyIHRvIHN1cHBvcnRpbmcgQ01VIGNvbnN0YW50cy4KCm1zbGlmY2FrICA1IEFwciA5OSAxMTowNjoyNwogICAgLSAoc25tcF9hcGkuYywgbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYykgSm9lIE1hcnpvdCdzIGZpeCB0byBjb3B5IGV2ZW4gYW4gZW1wdHkgY29tbXVuaXR5IG5hbWUuCgptc2xpZmNhayAgNSBBcHIgOTkgMTQ6MTA6MTQKICAgIC0gYnVpbGQgc25tcG5ldHN0YXQgd2l0aCBDeWdXaW4zMgoKbXNsaWZjYWsgIDUgQXByIDk5IDE0OjIyOjQzCiAgICAtIEJ1aWxkIHdpdGggQ3lnV2luMzIKCm1zbGlmY2FrICA1IEFwciA5OSAxNTo1OToyMAogICAgLSBCdWlsZCB1c2luZyBDeWdXaW4zMiAoaW5jbHVkZXMgTmllbHMgQi4ncyBzbm1wX3ZhcnMuYyBwYXRjaCkuCgpoYXJkYWtlciAgNiBBcHIgOTkgMDk6MjM6MTYKICAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlnLnN1Yik6IG5ldyB2ZXJzaW9ucyBmcm9tIGF1dG9jb25mIDIuMTMuCgptc2xpZmNhayAgNiBBcHIgOTkgMTA6NTk6MDUKICAgIC0gKGV4dGVuc2libGUuYykgcXVlbGwgd2FybmluZyBhYm91dCBjb21wYXJpbmcgcG9pbnRlciB3aXRoIG5vbi1wb2ludGVyLgoKbXNsaWZjYWsgIDYgQXByIDk5IDExOjMzOjU0CiAgICAtIGFub3RoZXIgcm91bmQgb2YgQU5TSS1meWluZyB0aGUgYWdlbnQgY29tcGxldGVkLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjEzOjQwCiAgICAtICgqKTogTWVyZ2VkIHRoZSA0LjAgbGluZSBpbnRvIHRoZSAzLjYuMSBsaW5lLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjM4OjQ1CiAgICAtIChtaWJpbmNsLmgsIHVjZERlbW9QdWJsaWMuYywgdmFjbV92YXJzLmgsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLAogICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1lcmdlIHBpZWNlcyBvZiByZWNlbnQgdjMgbGluZSBjaGFuZ2VzLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIxOjI0OjIyCiAgICAtIGNoYW5nZXMgZm9yIEFOU0kgaGVhZGVyczsgUE9TSVgoaW5kZXggdnMgc3RyY2hyKTsgbWlub3IgZml4ZXMKCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxMzo1OQogICAgLSAodmFjbV92YXJzLmMpIC0gc2V0IGdsb2JhbCBwdHJzID0gMC4KCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxNDo0MwogICAgLSAoc25tcF92YXJzLmMpIG1vcmUgdjJwYXJ0eSByZXdvcmsgbmVlZGVkCgptc2xpZmNhayAgNyBBcHIgOTkgMDY6MTc6MjgKICAgIC0gKCkgbW9yZSBBTlNJIGhlYWRlciBmaXh1cHM7IHRvdWNodXAgZm9yIE0kIFdpbjMyIGJ1aWxkCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDI6MTAKICAgIC0gKGNvbmZpZy5oLmluLCBzbm1wX3ZhcnMuYywgZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdHJhcGQuYywKICAgICAgTWFrZWZpbGUuaW4sIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsCiAgICAgIGxjZF90aW1lLmMsIG1kNS5jLCByZWFkX2NvbmZpZy5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB2My5jLCB0b29scy5jLCB0b29scy5oKToKICAgICAgLSBtaXNjIG1lcmdpbmcsIGluY2x1ZGluZyBmaXhlcyBhbmQgZGVidWdnaW5nIHN0YXRlbWVudCBjaGFuZ2VzIHRvCiAgICAgICAgbmV3ZXIgbW9kZWwuCiAgICAgIC0gYSBmZXcgLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDg6MDcKICAgIC0gKHNubXBfbWliLmMpOiByZW1vdmVkIHVubm5lZWRlZCBoZWFkZXJfc25tcCgpLgoKaGFyZGFrZXIgIDcgQXByIDk5IDExOjI4OjAyCiAgICAtICh1Y2REZW1vUHVibGljLmMsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHNtdXguYywgc25tcEVuZ2luZS5jLAogICAgICB1c21Vc2VyLmMsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY29udmVyc2lvbgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjAwOjIwCiAgICAtIChhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX2FnZW50LmMgYWdlbnQvc25tcF92YXJzLmgKICAgIGFnZW50L3ZpZXdfcGFyc2UuYyBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMKICAgIHNubXBsaWIvc25tcF9hdXRoLmMgc25tcGxpYi9zbm1wX2ltcGwuaCBzbm1wbGliL3ZhY20uaAogICAgc25tcGxpYi92aWV3LmgpICBmZ2V0cyB1c2Ugc2l6ZW9mIG1vc3RseSwgb2lkIGJhc2Ugc2l6ZSBpcyBNQVhfT0lEX0xFTgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjE3OjIzCiAgICAtKGlwZndjaGFpbnMuYykgcmVtb3ZlIG11bHRpcGxlIGRlZmluaXRpb25zIG9mIE1BVENIX0ZBSUxFRAoKbXNsaWZjYWsgIDcgQXByIDk5IDE1OjAwOjM5CiAgICAtKHVzbVVzZXIuYyxzeXN0ZW0uYykgcGx1ZyBtZW0gbGVhazsgKHNubXBfYXBpLmMpIGVuZm9yY2UgYXJyYXkgbGltaXQuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTQ6MzEKICAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3lzL3RpbWUuaC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNTozOQogICAgLSAoaHJfdXRpbHMuaCk6IHJlbW92ZSB2YXJpYWJsZSBuYW1lcyBmcm9tIHByb3RvdHlwZXMgKHdhcyBjYXVzaW5nIHByb2JsZW1zKS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNjo0NQogICAgLSAodGttaWIpOiBtYWtlIGRpc3BsYXllZCBtaWIgbm9kZSBpbmZvIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCBvZiBvbmUuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MjU6MDkKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gcG9zc2libGUgY3JlYXRlIGEKICAgICAgdmFybGlzdCBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyB0byBpdC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToxOToyMAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYW5pZWwgSGFnZXJ0eToKICAgICAgLSBmaXggbGlid3JhcCB0byBvbmx5IGFkZCB0aGUgbGlicmFyeSB0byB0aGUgYWdlbnQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MjA6MDAKICAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzRGVzY3IgcmVhZC1vbmx5LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjMyOjIzCiAgICAtIChwYXNzLmMpOiBQYXRjaCBmcm9tIEppbSBNYXI6CiAgICAgIC0gYWRkIGNhcGFiaWxpdHkgZm9yIGJpbmFyeSBvY3RldCBzdHJpbmdzIGluIHBhc3Mgc2NyaXB0cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozNjozMQogICAgLSAoU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBtb2R1bGUgbG9jYXRpb25zIGZvciBicm9rZW4gbWlicy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NDo0OAogICAgLSAoZnJlZWJzZC5oLCBmcmVlYnNkMi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlYnNkIHV0bXAgY2xlYW51cHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTY6NTMKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGxvZyB3aXRoIHRpbWVzdGFtcCBhdCBzaHV0ZG93bi4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NzoyNAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJldHRlciBjaGVja2luZyBvZiAuY29uZiBmaWxlIHBhcnNpbmcgbGluZSByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MDIKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc3VwcG9ydCAtUC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODoyNwogICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHNubXB0cmFwLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjbGVhbiB1cCBzbWFsbCBidWdzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAwOjQ5CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBuaWNlciBwYXJzZXIgbWVzc2FnZXMgKGluY2x1ZGUgZmlsZSBuYW1lcykuIENvcnJlY3QgaGVscCBmb3IgLVBjLgogICAgICAtIEFkZCBGUkFNRS1SRUxBWS1EVEUtTUlCIGFzIHJlcGxhY2VtZW50IGZvciBSRkMtMTMxNQoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAzOjI5CiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHRyYXBkIG9wdGlvbiB0byBpZ25vcmUgYXV0aCB0cmFwcywgYWRkIC1TIG9wdGlvbiwgbG9nIHRlcm1pbmF0aW9uLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjI5OjU4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpIGluaXRfc25tcCB0YWtlcyBhcmd1bWVudDsgIiIgdXNlZC4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNTozMDozNAogICAgLSAocGFyc2UuYykgRmlsZSBwb2ludGVyIGluaXRpYWxpemVkIHRvICIiIGJlZm9yZSBmaXJzdCB1c2UuCgpoYXJkYWtlciAxNCBBcHIgOTkgMTU6NTI6MzUKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGluaXRfc25tcCgic25tcGFwcCIpLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjMxOjU1CiAgICAtIChzbm1wX2FnZW50LGMsIHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LltjaF0pIGZpeCB2YXJpYWJsZV9saXN0IHdpdGggYnVpbHQtaW4gc3RvcmFnZQoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjU2OjM3CiAgICAtIGFwcHMgdGhhdCB1c2Ugc25tcF9maXhfcGR1IG11c3QgY2xlYW4gdXAgdGhlIHJlc3BvbnNlIFBEVSAhCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6MzA6MjkKICAgIC0gKElQRldBQ0MtTUlCLnR4dCkgY2hhbmdlIG1vZHVsZSBuYW1lIGZyb20gSVBGV0FETS1NSUIgdG8gSVBGV0FDQy1NSUIuCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6NTQ6MjIKICAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCkgaXBmd0NoYWluVGFibGUge2lwZncgMX0gZml4Cgptc2xpZmNhayAxNiBBcHIgOTkgMDg6MzM6MTYKICAgIC0gKG1pYi5jKSAiLW0iIG9yIE1JQlMgOiBjYW4gc3BlY2lmeSBNSUIgbW9kdWxlIGJ5IGZpbGUgbmFtZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMDowNgogICAgLSAoUkVBRE1FKTogQWRkZWQgdjMgdGVhbSBtZW1iZXJzLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjExOjQ4CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2VkIGRlZmF1bHQgc3RvcmUgbG9jYXRpb24gdG8gL3Zhci91Y2Qtc25tcAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE1OjE0CiAgICAtIChzbm1wLmgpOiBTTk1QQURNSU5MRU5HVEggZGVmaW5pdGlvbi4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNjoxNgogICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmVkIGZpeCBub3RlLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjA2CiAgICAtIChORVdTKTogdXBkYXRlZAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjQxCiAgICAtIChzbm1wdHJhcGQuOCk6IG1hbiBwYXRjaCBmcm9tIE5pZWxzCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MzQ6NDkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTMgKQoKbXNsaWZjYWsgMTggQXByIDk5IDA2OjU0OjI2CiAgICAtIChpcGZ3YWNjLmgpIHN1YmRpciBjaGFuZ2UgcGVyIEpvZSBQcnVldHR0IDogOSAtPiAxMAoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjAxOjE1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gcmV3cm90ZSBtaWIyYyB0byBiZSBtb3JlIGRlcGVuZGVudCBvbiAuY29uZiBmaWxlcy4gIFRoZSBtYWluIC5jb25mCiAgICAgICAgZmlsZSBub3cgY29udGFpbnMgdGhlIGNvZGUgaXRzZWxmLgogICAgICAtIG5lZWQgdG8gd3JpdGUgYSBmb3JlYWNoKG1pYm5vZGUpIHR5cGUgcGFyc2VyIG5leHQuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDk6MjcKICAgIC0gKG1pYmluY2wuaCk6IGFkZCByZWFkX2NvbmZpZy5oLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjEyOjE3CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBjcmVhdGVkIGEgbW9yZSBjb252ZW5pZW50IHJlYWRfY29uZmlnX3JlYWRfZGF0YSgpIGZ1bmN0aW9uIHRvCiAgICAgICAgZ2VuZXJpY2FsbHkgcmVhZCBhIHRva2VuIGludG8gYSBnaXZlbiB2YXJpYWJsZS4KICAgICAgLSBjbGVhbmVkIHVwIHBlcnNpc3RlbnQgc3RvcmFnZSBwYXJzaW5nIHJvdXRpbmVzLgogICAgICAtIHVzZSBwcmV2aW91c2x5IG1hbGxvY2VkIHNwYWNlIGluIHNvbWUgcm91dGluZXMsIG9yIG1hbGxvYyBpdCBmb3IKICAgICAgICB0aGVtIGlmIHRoZSBzdG9yYWdlIGFyZWEgaXMgTlVMTC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxNDoyOAogICAgLSAoc25tcF9hcGkuYyk6IERvbid0IHNubXBfc2V0X3Zhcl9vYmppZCBpZiBuYW1lIGlzIE5VTEwgaW4KICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDExOjI4OjE0CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDIwIEFwciA5OSAxNTozMTozNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIGNvbXBsZXRlbHkgcmUtaGFja2VkOgogICAgICAgIC0gZW50aXJlIGNvZGUgYmFzZSBpcyBub3cgcHV0IGludG8gdGhlIC5jb25mIGZpbGVzIHJhdGhlciB0aGFuIGluCiAgICAgICAgICB0aGUgbWliMmMgcHJvZ3JhbS4gIFRoaXMgc2hvdWxkIGVudGl0bGUgbWliMmMgdG8gYmUgdXNlZCBtb3JlCiAgICAgICAgICBnZW5lcmljYWxseSwgYW5kIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHR5cGVzIG9mIGNvZGUgdGVtcGxhdGVzCiAgICAgICAgICBiYXNlZCBvbiB0aGUgLmNvbmYgZmlsZSBpdCBpcyBnaXZlbi4gIEluIHRoZW9yeSwgaXQgc2hvdWxkIGJlCiAgICAgICAgICBhYmxlIHRvIHByb2R1Y2UgQyBjb2RlIGZvciBhIG5vbi11Y2Qtc25tcCBhZ2VudCwgb3IgZXZlbiBiZXR0ZXIsCiAgICAgICAgICBhbnkgdHlwZSBvZiBjb2RlIChub3QganVzdCBDKSBmb3Igc29tZXRoaW5nIGVsc2UgYmFzZWQgb24gbWliCiAgICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgICAtIFRoZSBkb3duIHNpZGUsIGlzIHRoYXQgdGhlIGN1cnJlbnQgLmNvbmYgZmlsZXMgYXJlIG5vdyBhbWJpZ3VvdXMKICAgICAgICAgIGFnYWluIGFuZCBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCB3aXRob3V0IGJlaW5nLCB3ZWxsLCBtZS4gIFRoZQogICAgICAgICAgdXAgc2lkZSBpcyB0aGF0IEknbSBzdXJlIERhdmUgU2hpZWxkIHdpbGwgZ28gdGhyb3VnaCBhbmQgY2xlYW4KICAgICAgICAgIGl0IHVwIGZvciBtZSBsaWtlIGhlIGRpZCBsYXN0IHRpbWUuICBIYSBoYS4gIEkgd29uZGVyIGlmIGhlJ2xsCiAgICAgICAgICByZWFkIHRoaXM/IChJZiBzbywgc2VlIG1lIGZpcnN0KS4KCmhhcmRha2VyIDIwIEFwciA5OSAxNjowNDoxNwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB2YXJpYWJsZSBuYW1lIGNvbnZlcnNpb25zOgogICAgICAtIHZhcmlhYmxlVHlwZXMgLT4gdmFyaWFibGVzCiAgICAgIC0gY25hbWUgLT4gTkFNRQoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjEwOjQ0CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGEgbGl0dGxlIG1vcmUgY2xlYW4gdXAuCgpoYXJkYWtlciAyMCBBcHIgOTkgMjE6Mzg6NDIKICAgIC0gKG1pYjJjLmNvbmYpOiBjbGVhbiB1cCBza2lwaWYgcmVnZXhwcyBhIGJpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NDo0NAogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZWQgKnJlYWRfY29uZmlnX3N0b3JlX2RhdGEoKTsKCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NjowMwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhbGxvdyBOb0FjY2VzcyB0byBiZSBwcm9jZXNzZWQsIGFuZCB1c2Ugc2tpcGlmOgogICAgICBkaXJlY3RpdmVzIHdoZXJlIG5lZWRlZCBiZWNhdXNlIG9mIGl0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDEwOjUxOjMwCiAgICAtIChzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBrZXl0b29scy5jKTogQW5vdGhlciB2MyBicmFuY2ggdXBkYXRlLgoKbXNsaWZjYWsgMjYgQXByIDk5IDA5OjIxOjA2CiAgICAtIChzbm1wbGliLmMpIC0gdXNlIHJlcXVlc3QgY2FsbGJhY2sncyBkYXRhIGlmIHJlcXVlc3Qgc3BlY2lmaWVzIGEgY2FsbGJhY2suCgpuYmEgMjYgQXByIDk5IDExOjIxOjEwCiAgICAKICAgIChwYXJzZS5oKSBTaWxseSBzcGVsaW5nIG1pc3RlYWsgKEFDQ0VTU19DUkFFVEUpCgpuYmEgMjYgQXByIDk5IDExOjQ4OjU3CiAgICAKICAgIAogICAgLSBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogbmV3IG1pYiBwcmludGVyOiBtaWJfcHJpbnRfdHJlZQogICAgICBpbnNwaXJlZCBieSBhIHJlZmVyZW5jZSB0byBzbm14IGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgIC0gYXBwcy9zbm1wdHJhbnNsYXRlOiBsZXQgdGhlIC1wIG9wdGlvbiBjYWxsIHRoaXMgbmV3IHByaW50ZXIKICAgIC0gc25tcGxpYi9zbm1wX2FwaS5jOiBzb21lIGxlZnQgb3ZlciBfX1AgbWFjcm9zCgpuYmEgMjYgQXByIDk5IDEyOjAzOjQ3CiAgICAKICAgIChpZi5jKSBtYWtlIHRoZSB3aWR0aCBvZiBzbm1wbmV0IC1pIChhbmQgLW8pIGFkYXB0IHRvIHRoZSBsZW5ndGggb2YgcmV0dXJuZWQKICAgIAlzdHJpbmdzCgpuYmEgMjYgQXByIDk5IDEyOjA5OjM1CiAgICAKICAgIAogICAgYXBwcy8qLmM6IHVzZSBzbm1wX3BlcnJvciB0byByZXBvcnQgZXJyb3JzIGZyb20gcmVhZF9vYmppZCBhbmQgZnJpZW5kcwogICAgYXBwcy9zbm1wdHJhcGQuYzogZml4IGEgYnVzIGVycm9yIHdoZW4gdXNpbmcgLVMgYW5kIHJlY2VpdmluZyBhbgogICAgCWVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcC4KCm5iYSAyNiBBcHIgOTkgMTI6MTM6NTAKICAgIAogICAgKi8qOiByZXBsYWNlIGhvcnJpYmxlIChjaGFyICopInN0cmluZyIgd2l0aCBjb25zdCBzcGVjaWZpZXJzIGluIHJlbGV2YW50CiAgICAJZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjYgQXByIDk5IDEyOjM3OjA5CiAgICAtIChzbm1wX2FwaS5jKSAtIGZpeCBvdGhlciB1c2Ugb2YgcmVxdWVzdCdzIGNhbGxiYWNrIGRhdGEKCm1zbGlmY2FrIDI3IEFwciA5OSAwOTo1MTozNQogICAgLSAoaW50ZXJmYWNlcy5jKSBhZGQgaWZfdHlwZV9mcm9tX25hbWUgdG8gY29udmVydCBpbnRlcmZhY2UgbmFtZSB0byB0eXBlLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjMyOjM5CiAgICAtIChNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaCk6IGNhbGxiYWNrIEFQSS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozOTo0NQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHVzZSB0aGUgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBwb3N0LWNvbmZpZyBzdHVmZi4KCmhhcmRha2VyICAzIE1heSA5OSAwNzowNzoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNubXB0cmFwZC5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgICBzY2FwaS5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHNodXRkb3duIGFuZCBzdG9yZSBjYWxsYmFjayB1c2FnZS4KCmhhcmRha2VyICAzIE1heSA5OSAwNzoxMzozMQogICAgLSAoc25tcGQuYyk6IGZpeCAtQSBmbGFnLCB3aGljaCBnb3QgYnJva2VuIGR1cmluZyBzb21lb25lcyBjaGFuZ2VzLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDEyOjU4OjE5CiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgTWFrZWZpbGUuaW4sIGhlYWRlcl9jb21wbGV4LmMsCiAgICAgIE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgYWxsX2dlbmVyYWxfbG9jYWwuaCwgYWxsX3N5c3RlbS5oLCBrZXl0b29scy5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLAogICAgICBzbm1wX2F1dGguYywgc25tcHVzbS5jLCB0b29scy5jLCB0b29scy5oLCBNYWtlZmlsZS5pbiwgVC5jLAogICAgICBldGltZXRlc3QuYywga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYyk6CiAgICAgIC0gbnVrZWQgYWxsX2dlbmVyYWxfbG9jYWwuaCBhbmQgYWxsX3N5c3RlbS5oLgogICAgICAtIG1ha2VmaWxlaW5kZXBlbmQgYXMgd2VsbC4KCm5iYSAgMyBNYXkgOTkgMTU6NDA6MTEKICAgICgqLltjaF0pOglwYXRjaGVzIHRvIHR5cGVzIHRvIHdpcGUgd2FybmluZ3MgZnJvbSBjb21waWxlcnMKICAgIAl3aXRoIG1vcmUgc3RyaWN0IG5vaXNlIGxldmVscy4gKGFsc28gZ29vZCB3aGVuIGNvbXBpbGluZwogICAgCXdpdGggZ2NjIC1XYWxsIC1wZWRhbnRpYyAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwpCgpuYmEgIDQgTWF5IDk5IDAwOjQ3OjQ0CiAgICAobWliLmMpOglGaXggcHJvYmxlbSAoY29yZSBkdW1wKSB3aXRoIE1JQkZJTEVTIGVudmlyb25tZW50IHZhcmlhYmxlLgoKbmJhICA0IE1heSA5OSAwMDo1MToxNgogICAgKG1hbnkpOglyZW1vdmUgY29uc3Qgc3BlYyBmcm9tIEZpbmRWYXJNZXRob2QuIFRoYXQgd2FzIHdyb25nCgpoYXJkYWtlciAgNCBNYXkgOTkgMTE6MDg6NTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogQWRkZWQgLS1lbmFibGUtZGV2ZWxvcGVyIGZsYWcuCgptc2xpZmNhayAgNiBNYXkgOTkgMDk6MjA6MzAKICAgIC0gKHVjZC1zbm1wL3Ztc3RhdC5jKSAtIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW1pdHMuaCBwZXIgRWR1YXJkIEtvdWNreS4KCm5iYSAxMCBNYXkgOTkgMTQ6NDc6MjIKICAgIEZpeGluZyBzb21lIG1vcmUgcHJvdG90eXBlcy4gUG9pbnRlZCBvdXQgYnkgTWFya2t1IExhdWtrYW5lbi4KCm5iYSAxMCBNYXkgOTkgMTQ6NDk6NDkKICAgIHNubXBsaWIvc25tcF9hcGkuYzogTWl4LXVwIG9mIFYxX0lOX1YyL1YyX0lOX1YxIGVycm9yIGNvZGUgd2hlbiBHRVRCVUxLCiAgICAJaW5zaWRlIFYxIHNlc3Npb24uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDI6NDgKICAgIC0gKHV0aWxfZnVuY3MuYyk6IHJlYWQgcmV0dXJucyBzc2l6ZV90IG5vdCBzaXplX3QuCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDM6MjUKICAgIC0gKG1lbW9yeS5oKTogcmVtb3ZlIGV4dGVybi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDoxMTo0MAogICAgLSAoaHB1eC5jLCBocHV4LmgpOiBpbnQgLT4gc2l6ZV90IGNvbnZlcnNpb25zLgoKbXNsaWZjYWsgMTIgTWF5IDk5IDEwOjUzOjIzCiAgICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQoKbXNsaWZjYWsgMTIgTWF5IDk5IDExOjIyOjE2CiAgICAtKHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKCmRhdmVzIDEzIE1heSA5OSAwMzo1MjoxOQogICAgLSAoaXAuYyk6IFByb3Blcmx5IHJlZ2lzdGVyIElQIG1vZHVsZSBncm91cCBvbiBGcmVlLUJTRCBzeXN0ZW1zCiAgICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDk6MTgKICAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgoKbXNsaWZjYWsgMTQgTWF5IDk5IDA2OjU0OjUxCiAgICAtIChhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYwogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgc25tcGxpYi9zbm1wX2F1dGguYykgbW9yZSBzaXplX3QgZml4ZXMKCm1zbGlmY2FrIDE0IE1heSA5OSAwOTo0NzoxMAogICAgLSAoYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmggYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKICAgICBzbm1wbGliL3BhcnNlLmMpIG1vcmUgQU5TSS1DIHRvdWNodXBzCgptc2xpZmNhayAxNCBNYXkgOTkgMTM6NTk6MzcKICAgIC0oYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIHNubXBsaWIvc25tcHVzbS5jKSBmaXhlcyB0byBidWlsZCBIUCAmIEFJWAoKZGF2ZXMgMTcgTWF5IDk5IDAzOjIwOjUzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKCmRhdmVzIDE3IE1heSA5OSAwNDozNDo1NQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3NlcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNDozODowMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3MgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDc6MTg6MDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmggYWdlbnQvc25tcGQuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIGEgc2luZ2xlIGFkZHJlc3MgZmllbGQgd2l0aGluIHRoZSBQRFUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAob2Jzb2xldGluZyAnYWdlbnRfYWRkcicpCgpkYXZlcyAxOCBNYXkgOTkgMDY6MjY6MTYKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IE1vcmUgZ2VuZXJhbCBoYW5kbGluZyBvZiBQRFUgZmxhZ3MKCm1zbGlmY2FrIDE4IE1heSA5OSAwOTowMTo0NgogICAgLSAoeHgvTWFrZWZpbGUuaW4pIHJlbW92ZSByZWZlcmVuY2VzIHRvIGFzIHlldCBtaXNzaW5nIGRpc21hbiBmaWxlcy4KCmRhdmVzIDE4IE1heSA5OSAwOToyMzo1MAogICAgLSAoY29uZmlndXJlLmluIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHYzLmMgc25tcGxpYi9zeXN0ZW0uYwogICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXBidWxrd2Fsay5jIGFwcHMvc25tcGRlbHRhLmMKICAgICAgIGFwcHMvc25tcGdldC5jIGFwcHMvc25tcGdldG5leHQuYyBhcHBzL3NubXBzZXQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGFibGUuYyBhcHBzL3NubXB0ZXN0LmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB1c20uYyBhcHBzL3NubXB3YWxrLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyk6CiAgICAgICAtICBDbGVhbiB1cCBjb25kaXRpb25hbHMgcHJvdGVjdGluZyBpbmNsdWRlIGZpbGVzCiAgICAgICAgICAgICggI2lmIEhBVkVfV0lOU09DS19IIC8gI2Vsc2UgLyAjZW5kaWYgKQoKZGF2ZXMgMTkgTWF5IDk5IDAyOjMzOjA3CiAgICAtIChjb25maWcuaC5pbik6IEFkZGl0aW9uYWwgaW5jbHVkZSBwcm90ZWN0aW9uIGVudHJpZXMKCmRhdmVzIDE5IE1heSA5OSAwNToxMTozNwogICAgLSAoc25tcF9hcGkuYyk6IE1vcmUgZ2VuZXJhbGlzZWQgaGFuZGxpbmcgb2Ygc29ja2V0IGFkZHJlc3NlcwoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjAyOjU1CiAgICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODo1MDoxMgogICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQoKZGF2ZXMgMjAgTWF5IDk5IDAzOjQ2OjI0CiAgICAtIChzbm1wX2FwaS5oKTogVGVtcG9yYXJ5IGZpeCB0byBzb2NrZXQgYWRkcmVzcyBwcm9ibGVtcwoKbXNsaWZjYWsgMjEgTWF5IDk5IDA1OjI0OjIzCiAgICAtKHJlYWRfY29uZmlnLmMpIGNhc3QgZml4IHBlciBNYXJra3UgTGF1a2thbmVuCgpkYXZlcyAyMSBNYXkgOTkgMDU6NTQ6MjIKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6CiAgICAgIC0gIE5ldyBBUEkgY2FsbCB0byBjbG9zZSBkb3duIGFsbCBvcGVuIHNlc3Npb25zCiAgICAgICAgIChhbHNvIGNhbGxlZCBvbiBhcHBsaWNhdGlvbiBzaHV0ZG93bikKCmhhcmRha2VyIDIxIE1heSA5OSAxMToxMDo0NAogICAgLSAobWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mKToKICAgICAgLSBjb252ZXJ0IHRvIHNpemVfdCBzdG9yYWdlcy4KICAgICAgLSBtaXNjIGV2YWwgZml4ZXMuCiAgICAgIC0gbW9yZSBjbGVhbnVwIG9mIHRoZSBzdG9yYWdlIGRlZi4KCm1zbGlmY2FrIDIxIE1heSA5OSAxNToyOTo0NgogICAgLSBsaWJyYXJ5IGNoYW5nZXMgdG8gYnVpbGQgb24gV2luMzIuCgptc2xpZmNhayAyNCBNYXkgOTkgMDU6MzY6MTMKICAgIC1jb25maWd1cmUgLSBzYXZlIG9uZSB3aGljaCBsb29rcyBmb3IgbmV0ZGIvc29ja2V0IGhlYWRlcnMKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxOTowMwogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTQ6NTUKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTg6MDQKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToyMDozMgogICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjU2OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzo0MDoyOAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCgptc2xpZmNhayAyNyBNYXkgOTkgMDU6MTY6MjUKICAgIC0oZW5jb2RlX2tleWNoYW5nZSwgcmVhZF9jb25maWcsIHNubXB1c20pIGFDQyBmaXhlcyBieSBQS1kgKE1hcmtrdSBMYXVra2FuZW4pCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MDMKICAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogaW1wbGVtZW50IHRoZSBkZWZhdWx0IHRyYXAgaGFuZGxlci4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDoxNQogICAgLSAoc25tcHRyYXBkLmMpOiBuZWVkIGFuIGluaXRfbWliKCkuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MDYKICAgIC0gKHNubXB0cmFwZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZC4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzozMgogICAgLSAoc25tcHRyYXBkLmMpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkIGluIGhlbHAgbGluZS4KCmRhdmVzIDI4IE1heSA5OSAwNzowMjowMQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4gYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggcHJvYmxlbSB3aXRoIG51bGwgbWFjcm8KCmRhdmVzIDI4IE1heSA5OSAwODoxNDowNQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2F2ZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBpbiBpbnRlcm5hbCBzZXNzaW9uIHN0cnVjdHVyZQoKZGF2ZXMgMjggTWF5IDk5IDA4OjU3OjE5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBVbml4IGRvbWFpbiAoZGF0YWdyYW0pIHNvY2tldCBzdXBwb3J0CgpkYXZlcyAyOCBNYXkgOTkgMDk6MTI6MjAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFNlcGFyYXRlIG91dCBjb3B5aW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIG5ldyBvbmUKCm1zbGlmY2FrIDI4IE1heSA5OSAwOToyNDo1NgogICAgLShzbm1wX2FwaS5jKSAtY2F0Y2ggb25lIG1vcmUgZXJyb3IgY2xvc2UgZnJvbSBzbm1wX3Nlc3NfY29weQoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjE3OjEzCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IHNhdmUgYW5kIHVzZSBpbmRleCBjbGF1c2VzLgoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjQ0OjQyCiAgICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOgogICAgICAtIGNyZWF0ZWQgZ2VuZXJpYyBkZWZhdWx0IHZhbHVlIHN0b3JhZ2Ugc3BhY2UgYW5kIHBhcnNlcnMgdG8gcmVkdWNlCiAgICAgICAgdGhlIG51bWJlciBvZiBmdW5jdGlvbnMvZXRjIGNyZWF0ZWQgZm9yIHZhbHVlcyB3aGljaCBjb25maWd1cmUgdGhlCiAgICAgICAgbGlicmFyeS4KCmRhdmVzICAxIEp1biA5OSAwMjoxNzoyNwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2FyYmFnZSBjb2xsZWN0aW9uIGZvciBUcmFkaXRpb25hbCBTQVBJIHNlc3Npb25zCgpkYXZlcyAgMSBKdW4gOTkgMDI6MzI6MTMKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdlbmVyYWxpc2UgaGFuZGxpbmcgb2YgYWRkcmVzc2VzICh3LnIudCBzZW50by9yZWN2ZnJvbSkKCmRhdmVzICAxIEp1biA5OSAwNzozMDo0MgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCk6IFN1cHBvcnQgZm9yIHN0cmVhbS1iYXNlZCBzb2NrZXRzCgpoYXJkYWtlciAgMSBKdW4gOTkgMTc6MjE6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgIC0gaW1wbGVtZW50ZWQgYSBnZW5lcmljIGFsYXJtIGhhbmRsZXIgdG8gcmVnaXN0ZXIgYWxhcm0gZnVuY3Rpb25zIHRvCiAgICAgICAgYmUgY2FsbGVkIGJhY2sgYWZ0ZXIgWCBwZXJpb2Qgb2YgdGltZSBhbmQgaXQgaGFuZGxlcyBmaWd1cmluZyBvdXQKICAgICAgICB3aGljaCBpcyBuZXh0IGFuZCBjYWxsaW5nIGFsYXJtKCkgYW5kIHNpZ25hbCgpIGFwcHJvcHJpYXRlbHkuCgptc2xpZmNhayAgNCBKdW4gOTkgMDk6NTE6MTMKICAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYyxmcmVlYnNkMy5oKSBmaXggRnJlZUJTRDMuMSBpbmNsIEtlbiBLZXkncyB0Y3AvdWRwIHBhdGNoZXMKCm1zbGlmY2FrICA3IEp1biA5OSAwNzo0NDowNgogICAgLShpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgaXAuYykgY2xvbmUgZml4ZXMgZnJvbSAzLjYgbGluZSAoRnJlZUJTRDMuMSkKCm1zbGlmY2FrICA3IEp1biA5OSAxMzowNDoyMQogICAgLShpZi5jKSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCgptc2xpZmNhayAxMSBNYXkgOTkgMTQ6Mzk6NTgKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCBhcHBzL3NubXB0cmFuc2xhdGUuYwogICAgICAgYXBwcy9zbm1wdHJhcGQuYyBsb2NhbC9taWIyYyBsb2NhbC90a21pYiBtYW4vc25tcF9jb25maWcuNS5kZWYKICAgICAgIG1hbi9zbm1wZC4xLmRlZiBtYW4vc25tcHRyYXAuMSBtYW4vc25tcHRyYXBkLjgKICAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQKICAgICAgIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0IG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQgcy9mcmVlYnNkLmggcy9mcmVlYnNkMi5oCiAgICAgICBzbm1wbGliL21pYi5jIHNubXBsaWIvcGFyc2UuYyBzbm1wbGliL3BhcnNlLmgKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3ZhY20uYykgLSBjaGFuZ2VzIGMvbyBOaWVscyBCYWdnZXNlbgoKbXNsaWZjYWsgMTEgTWF5IDk5IDE4OjU4OjM3CiAgICAtKGN5Z3dpbi5oKSAtIHVzZSB0byBidWlsZCBvbiBDeWdXaW4gcGxhdGZvcm0uCgptc2xpZmNhayAxMSBNYXkgOTkgMTk6NTQ6MDQKICAgIC0oYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF92YXJzLmggYWdlbnQvdmlld19wYXJzZS5jCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgICAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9pZi5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgICAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICAgICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMpCiAgICAgIFBvcnQgc29tZSBvZiB0aGUgZml4ZXMgZnJvbSB0aGUgY3VycmVudCBkZXZlbG9wbWVudCBicmFuY2gKCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo0NTowNQogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyODowNwogICAgLShtaWIuYyBwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6Mzg6MDMKICAgIAogICAgKG1pYi5jKTogRml4ZWQgbWlub3IgdHlwbwoKZGF2ZXMgMTMgTWF5IDk5IDAzOjU1OjA2CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowNzoxMwogICAgLSAodm1zdGF0LmMpOiBpbmNsdWRlIGxpbWl0cy5oLgoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA3OjM5CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCmhhcmRha2VyIDEzIE1heSA5OSAxNTo0Mjo0OAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMiApCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6MTAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjAxOjQ4CiAgICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODo0OToyNQogICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQoKaGFyZGFrZXIgMjUgTWF5IDk5IDIwOjIwOjMxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yLnByZTEgKQoKbmJhIDI2IE1heSA5OSAwNzo1Nzo0MgogICAgCiAgICAgIFRhZzogVjMtbGluZQogICAgCiAgICBpZi5jOiBkeW5hbWljIHdpZHRoIGZvciAtaSBhbmQgLW8gb3B0aW9uCgptc2xpZmNhayAyNiBNYXkgOTkgMDg6MDA6MDcKICAgIC0gZml4LXVwcyB0byBidWlsZCBXaW4zMiBNU1Zpc3VhbEMrKwoKbmJhIDI2IE1heSA5OSAwODoyNDozNQogICAgCiAgICAKICAgIFNvbWUgZml4ZXMgZm9yIFNvbGFyaXMgMi43IChwcm9jIGFjY2VzcyBzdGlsbCBkb2VzIG5vdCB3b3JrIHdoZW4gY29tcGlsZWQKICAgIHdpdGggZ2NjICgzMi1iaXQgY29tcGlsZXIpCgpuYmEgMjYgTWF5IDk5IDA4OjI5OjI2CiAgICAKICAgIEZpeGVzIGZvciBGcmVlQlNEIDIuMSBmcm9tIERlcmVrIEouIEJhbGxpbmcgPGRiYWxsaW5nQHlhaG9vLWluYy5jb20+CgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDc6MTYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA3OjQyCiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc3dpbnN0YWxsIGJlICJ1bmtub3duIiBzaW5jZSB3ZSBjYW4ndCB0cnVseSBrbm93LgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA4OjA5CiAgICAtIChpcGZ3YWNjLmgpOiBtb3ZlIHRvIGNvcnJlY3QgbG9jYXRpb24uCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDg6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1ha2UgY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6MzE6MjUKICAgIC0gKHByb2MuYyk6IHVsdHJpeCBmaXhlcy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzozODo1NgogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCgpuYmEgMjcgTWF5IDk5IDAyOjU2OjI1CiAgICAKICAgIAogICAgaG9zdC9ocl9zd3J1bi5jLCB1Y2Qtc25tcC9wcm9jLmM6IEZpeGVzIGZvciBTb2xhcmlzIDIuNwoKbmJhIDI3IE1heSA5OSAwMjo1OToxNgogICAgCiAgICBzbm1wZC5jOglQcm9wZXJseSBoYW5kbGUgdGhlIGNhc2Ugb2Ygbm8gY29tbXVuaXR5IHNwZWNpZmllZAogICAgCWZvciBhZ2VudCB0cmFwcy4KCm5iYSAyNyBNYXkgOTkgMjM6NTU6MDkKICAgIAogICAgc29sYXJpczIuPy5oOglkZWZpbmUgX1NMQVNIX1BST0NfTUVUSE9EXyBhcyAxCgpuYmEgMjcgTWF5IDk5IDIzOjU1OjQ5CiAgICAKICAgIHJlYWRfY29uZmlnLmM6CWNvbXBsYWluIGFib3V0IGV4aXN0aW5nIGJ1dCB1bnJlYWRhYmxlIGNvbmZpZyBmaWxlcy4KCm5iYSAyNyBNYXkgOTkgMjM6NTk6MzcKICAgIAogICAgaW5ldC5jOgkwIElTIGEgdmFsaWQgc2hvcnQgKGFuZCBwb3J0IGFkZHJlc3MgZm9yIHJlbW90ZSBlbmRzIG9mIHBvcnRzCiAgICAJaW4gTElTVEVOIHN0YXRlKQoKbmJhIDI4IE1heSA5OSAwMzoyNToyOQogICAgCiAgICBjaGFuZ2UgdGhlIHRyYXBzaW5rL3RyYXAyc2luayBkaXJlY3RpdmVzIHRvIHN1cHBvcnQgYSBjb21tdW5pdHkgcGFyYW1ldGVyLgoKbmJhIDI5IE1heSA5OSAwMjo0OTo0NwogICAgCiAgICAtIHNtdXguYzogZml4IGEgbWlzc2luZyBudG9ocyBpbiBhIGRlYnVnIG1lc3NhZ2UKCm5iYSAgMSBKdW4gOTkgMDA6Mjc6MzYKICAgIAogICAgLSBwcm9jLmM6IFlBUEJPIChZZXQgYW5vdGhlciBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cpCgpuYmEgIDEgSnVuIDk5IDAwOjI5OjM1CiAgICAKICAgIC0gc25tcF9hZ2VudC5jOiBjaGFuZ2Ugbm9DcmVhdGlvbiByZXR1cm4gdG8gbm9BY2Nlc3MuIFRoZXJlIGFyZSBwcm9iYWJseQogICAgCXNpdHVhdGlvbnMgd2hlcmUgdGhlIGZvcm1lciBpcyBjb3JyZWN0LCBidXQgdGhpcyBpcyBsZXNzIGNvbmZ1c2luZwoKbmJhICAxIEp1biA5OSAwMDozMzo1MgogICAgCiAgICAtIGtlcm5lbF9zdW5vczUuPywgaHJfc3dydW4uYywgYXQuYywgaW50ZXJmYWNlcy5jOiBmaXggYXQuYXRUYWJsZSBhbmQKICAgIAlpcC5pcE5ldFRvTWVkaWFUYWJsZSBmb3IgU29sYXJpcy4gQWxzbyBhIHR3ZWFrIGZvciBnZXRLc3RhdEludC4KCmhhcmRha2VyICAyIEp1biA5OSAwNzoyNzo0NgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMi5wcmUyICkKCm1zbGlmY2FrICAyIEp1biA5OSAxMzo0NjozNAogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLGZyZWVic2QzLmgpIGZpeCBidWlsZCBvbiBGcmVlQlNEIDMuMQoKbmJhICAzIEp1biA5OSAxNDozMToxOAogICAgCiAgICAtIGtlcm5lbC5jOglhZGQgc29tZSBzYW5pdHkgY2hlY2tzIHdoZW4gcnVubmluZyB3aXRob3V0IHJvb3QgYWNjZXNzLgoKbmJhICAzIEp1biA5OSAxNDozNDo1MAogICAgCiAgICAtIGhyX3N3cnVuLmM6CWFkZCBhIGJsYW5rIGJldHdlZW4gcHJvY2VzcyBwYXJhbWV0ZXJzCgpuYmEgIDMgSnVuIDk5IDE0OjM4OjE4CiAgICAKICAgIC0gbmV0YnNkLmgsIHRjcC5jLCB1ZHAuYzoJZml4IHNvY2tldCB0YWJsZXMgZm9yIE5ldEJTRCAxLjMvMS40CgpuYmEgIDMgSnVuIDk5IDE1OjEyOjAxCiAgICAKICAgIC0gc25tcHRyYXAuYzogZml4IGEgYmFkIGZyZWUgd2hlbiBjYWxsaW5nIHNubXBpbmZvcm0uCgpuYmEgIDMgSnVuIDk5IDE1OjIxOjA5CiAgICAtIHRjcC5jOiBsb3N0IGEgJzsnIGZvciB0aGUgRnJlZUJTRCBjYXNlIC4uLi4KCmRhdmVzICA0IEp1biA5OSAwNDo1MTowNAogICAgLSAoYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyk6IEZpeCBSUE0gaGFuZGxpbmcKCmRhdmVzICA0IEp1biA5OSAwNTowNjo0NAogICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IEFkZGl0aW9uYWwgbGlicmFyeSBmb3IgUlBNIGhhbmRsaW5nCgptc2xpZmNhayAgNCBKdW4gOTkgMDk6MzA6MTIKICAgIC0odGNwLmMsIHVkcC5jKSBhcHBseSBLZW4gS2V5J3MgZml4IGZvciBGcmVlQlNEMy4xCgpuYmEgIDQgSnVuIDk5IDExOjUyOjM4CiAgICAtIGlwLmM6IEZpeCBmb3IgRnJlZUJTRCAzIGZyb20gS2VuIEtleQoKbmJhICA0IEp1biA5OSAxMTo1MzozMgogICAgLSBrZXJuZWxfc3Vub3M1LmMsIGFzbjEuYzogRml4ZXMgZm9yIDY0LWJpdCBTb2xhcmlzIDcKCm5iYSAgNSBKdW4gOTkgMDU6NDc6MjAKICAgIC0gaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jOiBjbGVhbnVwIG9mIGNvbmRpdGlvbmFscyBmb3IgRnJlZUJTRAoKbmJhICA1IEp1biA5OSAwNjowMjo1MgogICAgLSBjb25maWd1cmUuaW46IHByb3BlciBjb25maWd1cmUgY2hlY2sgZm9yIHN5cy9zb2NrZXR2YXIuaAoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ1OjEwCiAgICAtKGlwLmMsIHZhcl9yb3V0ZS5jKSBmaXggc2l6ZW9mLCBDUFAgI2VuZGlmCgpoYXJkYWtlciAgNyBKdW4gOTkgMTA6NTI6MzIKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDaHJpcyBTbWl0aDoKICAgICAgLSBkb24ndCBwdXQgQ0ZMQUdTIGluIHRoZSBsaW5rIGxpbmUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTA6NTQ6MjEKICAgIC0gKFJFQURNRS53aW4zMik6IGFkZGVkIHRvIHRoZSAzLjYuMiBsaW5lLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjI1OjI3CiAgICAtIChGQVEsIFJFQURNRSk6IHVwZGF0ZSBmb3IgMy42LjIuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6Mjc6MTUKICAgIC0gKE5FV1MpOiAzLjYuMiB1cGRhdGUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MzA6NDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgZm9yIDMuNi4yLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjMyOjU0CiAgICAtIChJTlNUQUxMKTogdXBkYXRlIGZvciAzLjYuMi4KCm1zbGlmY2FrICA3IEp1biA5OSAxMzowMjoxMAogICAgLShpZi5jKSAtIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCmhhcmRha2VyICA3IEp1biA5OSAxNTo0NjoyNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGliZGIxIGJlZm9yZSBsaWJkYiBmb3IgcnBtIHVzYWdlLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE1OjUwOjAxCiAgICAtIChGQVEpOiBtZXJnZQoKaGFyZGFrZXIgIDcgSnVuIDk5IDE2OjAzOjI1CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciAtbGRiMSB0aGVuIC1sZGIgZm9yIHJwbSB1c2FnZS4KCmhhcmRha2VyICA3IEp1biA5OSAxNjo0Mzo1MAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHJwbUdldFBhdGggdG8gaGVscAogICAgICBkZXRlcm1pbmUgd2hpY2ggdmVyc2lvbiBvZiBSUE0gd2UncmUgdXNpbmcgKDMgb3IgMikuCgpwamwgIDcgSnVuIDk5IDE3OjMwOjMzCiAgICBBZGRlZCBSUE0gdjMgc3VwcG9ydAoKbXNsaWZjYWsgIDggSnVuIDk5IDAzOjQwOjM2CiAgICAtKG1pYklJLyosc25tcGxpYi8qKSBNYXJra3UgTC4ncyBmaXhlcyB0byBjb21waWxlIG9uIEhQLVVYIHdpdGggYUNDCgptc2xpZmNhayAgOCBKdW4gOTkgMDM6NTQ6NTAKICAgIHNwZWxsIGNoZWNrIENPTU1VTklUWQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNiAtPiBWMy42LjEKCQptc2xpZmNhayAgOCBNYXIgOTkgMDQ6MDI6MDEKICAgIChwYXJzZS5jKSAtIGZpeCBzdWJpZCBpbml0OyByZW1vdmUgdXNlbGVzcyAnLVBsJyBvcHRpb24uCgptc2xpZmNhayAgOCBNYXIgOTkgMDQ6MTQ6NDEKICAgIC0gKHNubXBfYXBpLmMpIHVzZSByZXF1ZXN0IGRhdGEgd2l0aCByZXF1ZXN0IGNhbGxiYWNrCgptc2xpZmNhayAgOCBNYXIgOTkgMDU6MDE6NDkKICAgIC0od2luMzIvY29uZmlnLmgpIHJlbW92ZSB1bnVzZWQgU1lTX1RJTUVfTkFNRSxHTE9CQUxTRUNVUklUWS4gYWRkIG5ldyBjb25zdGFudHMuCgptc2xpZmNhayAgOCBNYXIgOTkgMDU6MDc6MTMKICAgIC0gKEFHRU5UKSBNQVhfTkFNRV9MRU4gLS0+IE1BWF9PSURfTEVOIGluIGV4YW1wbGUKCm1zbGlmY2FrICA4IE1hciA5OSAwOTo1ODoxNwogICAgLSAoc25tcGxpYi9wYXJzZS5jKSBDb21wbGV0ZSBEYXZlIFNoaWVsZHMnIHBhdGNoIGZvciBjb250aW51ZSBhZnRlciBlcnJvci4KCm1zbGlmY2FrICA4IE1hciA5OSAxNDoyODoyMAogICAgLSAoc25tcG5ldHN0YXQ6aWYuYywgcm91dGUuYykgbGltaXQgaW50ZXJmYWNlIG5hbWUgc2l6ZXMgdG8gZml0IGZpeGVkIGxlbmd0aCBidWZmZXJzLgoKaGFyZGFrZXIgMTAgTWFyIDk5IDE1OjA3OjMxCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogZ3JvdXAgbGluZXMgd2VyZSBiYWNrd2FyZHMuCgpoYXJkYWtlciAxMSBNYXIgOTkgMTU6NDg6MjIKICAgIC0gKFJFQURNRSk6IEFkZGVkIE1pa2UgQmFlci4KCmhhcmRha2VyIDExIE1hciA5OSAxNTo0ODo1MgogICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBjaGFuZ2VkIHNvbWUgY29tbWVudHMgdG8gLyogKi8gaW5zdGVhZCBvZiAvLy4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoxMDozMQogICAgLSAoQUdFTlQpOiByZW1vdmVkIEFHRU5UCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MTA6NDcKICAgIC0gKG1pYjJjKTogZml4ZWQgYSBjb3VwbGUgb2YgYnVncyBhbmQgYW5zaSdpZmllZCB0aGluZ3MuCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MjI6NDMKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKTogbW92ZSBNQVRDSF9TVUNDRUVERUQgZGVmcyB0byAuaC4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoyMzo0NAogICAgLSAoc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oKTogUGF0Y2ggZnJvbSBFcmlrIEphY29ic2VuOgogICAgICAtIGZpeGVkIHByb3RvdHlwZXMgZm9yIERFQlVHUCgpIGFuZCBERUJVR1BPSUQoKS4KCm1zbGlmY2FrIDEyIE1hciA5OSAwNzowODo0MAogICAgLSAoZGxtb2RfbWliLmMpIDogVXNlIE1BVENIX0ZBSUwvU1VDQ0VFREVEIGluIHV0aWxfZnVuY3MuaAoKaGFyZGFrZXIgMTIgTWFyIDk5IDA5OjE1OjE0CiAgICAtIChtaWJpbmNsLmgsIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgICBzbm1wX21pYi5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLCBkbG1vZC5jLAogICAgICByZWdpc3RyeS5jKTogZml4ZWQgTUFUQ0hfRkFJTEVEL1NVQ0NFRURFRCBkZWZpbmVzIC0+IHV0aWxfZnVuY3MuaC4KCm1zbGlmY2FrIDEyIE1hciA5OSAxMTozMToxNgogICAgLSAoZGxtb2RfbWliLmMpIDogZXhwbGljaXQgdGVzdCBmb3IgTUFUQ0hfRkFJTEVECgpoYXJkYWtlciAxMiBNYXIgOTkgMTI6MjA6MTIKICAgIC0gKG1pYjJjKTogZml4IGFzbl9wYXJzZSBmdW5jdGlvbnMgdG8gcGFzcyBhIHBvaW50ZXIgdG8gdGhlIHNpemUgdmFyaWFibGUuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MTc6MDgKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MTc6NDQKICAgIC0gKHNtdXguYyk6IHByb3RlY3Qgc3RyY3B5KCkgYWdhaW5zdCBhIG51bGwgcGFzc3dvcmQgc3BlY2lmaWVkIG9uIHRoZQogICAgICBjb25maWcgbGluZS4KCm1zbGlmY2FrIDEyIE1hciA5OSAxNDozNDoxMgogICAgLSAoaHJfc3lzdGVtLmgpIC0gZG9uJ3QgcmVxdWlyZSBocl91dGlsOyBkb25lIGluIG1pYmdyb3VwL2hvc3QuaAogICAgLSAoaHJfc3dydW4uYykgLSBzb2xhcmlzMiA6IG1ha2Ugc3VyZSBrdm1fb3BlbiBpcyBjYWxsZWQgYmVmb3JlIGtkIGlzIHVzZWQuCiAgICAtIChocl9zd3J1bi5jKSAtIGFkZCBsYW1lIHN1bm9zNCBlcXVpdmFsZW50IGluIEhSU1dSVU5QRVJGX0NQVS4KCm1zbGlmY2FrIDEyIE1hciA5OSAxNDozNTozOAogICAgLSAodGFyZ2V0LmgsIHRhcmdldC8qLmgpIHJlcXVpcmUgdXRpbF9mdW5jcyBvbmNlLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE0OjM2OjM5CiAgICAtICh1dGlsX2Z1bmNzLmgpOiBNQVRDSF9GQUlMRUQgLT4gLTEsIHNpbmNlIHNvbWUgdXNlIGl0LgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjU0OjUxCiAgICAtIHJlc3RvcmUgY29uZmlnX3JlcXVpcmUgbG9naWM7IGZpeCBzcHJpbnRmIGNhbGxzIHRvIGNvbXBpbGUgdW5kZXIgU3VuT1MgNC4xLnguCgpoYXJkYWtlciAxMiBNYXIgOTkgMTU6MjM6MTgKICAgIC0gKElOU1RBTEwpOiBkb24ndCBwcmludCBtb2R1bGUgbGlzdCBoZXJlLi4uICB0ZWxsIHRoZW0gdG8gbG9vayBhdAogICAgICBjb25maWd1cmUgLS1oZWxwLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE1OjI0OjM3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUsCiAgICAgIGlwZndjX2tlcm5lbF9oZWFkZXJzLmgsIGlwZndjaGFpbnMuYywgaXBmd2NoYWlucy5oLCBsaWJpcGZ3Yy5jLAogICAgICBsaWJpcGZ3Yy5oKTogUGF0Y2ggZnJvbSBEaWRpZXIgRGhhZW5lbnM6CiAgICAgIC0gbmV3IG1vZHVsZXM6IGlwZndjaGFpbnMuCgptc2xpZmNhayAxNSBNYXIgOTkgMDU6NTQ6MDcKICAgIC0gKE1ha2VmaWxlLmluIGxpYnNubXAuaCBtaWIuYyBzbm1wLmggc25tcF9hcGkuYykgdXBkYXRlIENNVV9DT01QQVRJQkxFCgpoYXJkYWtlciAxNSBNYXIgOTkgMDg6NDk6MTAKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jKToKICAgICAgLSByZXZlcnQgdG8gc25tcF9wYXJzZS4KICAgICAgLSBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4KCm1zbGlmY2FrIDE1IE1hciA5OSAwOTo0MjozNAogICAgLSBzZWNvbmQgcGFzcyBhdCBDTVVfQ09NUEFUIDogRGlzYWJsZSBieSBkZWZhdWx0LCBsZWF2ZSBzbm1wX3BhcnNlIGFsb25lLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE0OjMwOjQ1CiAgICAtIChzbm1wLmgpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudGVkIG91dCBkZWZpbmUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTQ6MzE6MjMKICAgIC0gKGFjY29uZmlnLmgpOiBhZGRlZCBDTVVfQ09NUEFUSUJMRQoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjIxOjAyCiAgICAtIChocl9wcm9jLmMsIGhyX3Byb2MuaCwgbG9hZGF2ZS5jLCBsb2FkYXZlLmgpOiBmaXggdHJ5X2xvYWRhdmUgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6MzE6NTEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbnRlcmZhY2VzLmMsIGxpbnV4LmgpOiBkZXRlY3QKICAgICAgL3Byb2MvbmV0L2RldiB2ZXJzaW9uIGF0IHJ1biB0aW1lLCBub3QgY29tcGlsZSB0aW1lLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjQ2OjEyCiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaXhlcyBmb3IgbGludXggMi4yIGludGVyZmFjZSBzY2FubmluZy4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTo1NTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjU4OjA3CiAgICAtIChGQVEsIE5FV1MpOiB1cGRhdGVzIHRvIHRhbGsgYWJvdXQgdGhlIEFHRU5ULnR4dCBmaWxlLgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMyAtPiBWMy42CgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MTQ6NDMKICAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy41LgoKaGFyZGFrZXIgMjIgSnVuIDk4IDA5OjE2OjMyCiAgICAtIChtYWluLmMpOiBQYXRjaCBmcm9tIEplcnJ5IEcuIERlTGFwcDoKICAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjMwOjE5CiAgICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6MzE6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogY3JlYXRlIHNubXBfcGR1X2FkZF92YXJpYWJsZSgpLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjU2OjQ2CiAgICAtIChzbm1wc2V0LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmVkIGhleF90b19iaW5hcnksIGFzY2lpX3RvX2JpbmFyeSwgYW5kIHNubXBfYWRkX3ZhciB0byBzbm1wbGliLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjA4OjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgICAtIG1pc2MgbWliIGZpeGVzLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjQwOjQwCiAgICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAgLSBjcmVhdGVkIChwb29ybHkpIHNlbmRfdHJhcF9wZHUoKSBmb3Igc2VuZGluZyB2MiB0cmFwcyBmcm9tIG1pYiBtb2R1bGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQyOjMyCiAgICAtIChkaXNrLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQ1OjE1CiAgICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBmb3IgbmV3IGRlZmluZXMgYW5kIHByb3BlciBoZWFkZXIgaW5jbHVkZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTU6MDM6MzgKICAgIC0gKGdlbmVyaWMuaCk6IHB1dCBpbiBhIGNvbW1lbnQgdG8ga2VlcCBjb21waWxlcnMgZnJvbSBjb21wbGFpbmluZyB0b28gbXVjaC4KCmhhcmRha2VyIDI4IEp1biA5OCAwOTozMDozNAogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBzbm1wX2FkZF92YXIoKS4KCmhhcmRha2VyICAxIEp1bCA5OCAxMToyODoxNwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgICBzdHJ1Y3QuaCwgcGFzcy5oLCBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmVkIHJlYWRfY29uZmlnIHN1cHBvcnQgaW50byB0aGUgbGlicmFyeSBhbmQgdXNlIGl0LgogICAgICAtIGJlZ2lubmluZ3Mgb2Ygc25tcHRyYXBkIGV4dGVuc2liaWxpdHkuCgpoYXJkYWtlciAgMSBKdWwgOTggMTU6NTY6MTIKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHN5c3RlbS5oKToKICAgICAgLSBhZGRlZCBERUJVR1BPSUQobmFtZSwgbmFtZWxlbik7CiAgICAgIC0gbW92ZWQgREVCVUdQIGRlZmluaXRpb24gaW50byBzbm1wX2FwaS5oIHdoZXJlIGl0IGJlbG9uZ3MuCgpoYXJkYWtlciAgMSBKdWwgOTggMTU6NTc6NTMKICAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6CiAgICAgIC0gZml4IGV4dGVuc2libGl0eSBjaGVja2luZyBvZiBvaWRzLgogICAgICAtIHNlcGVyYXRlIHJ1bm5pbmcgb2YgZXh0ZXJuYWwgY29tbWFuZCBpbnRvIG5ldyBmdW5jdGlvbi4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjoyNQogICAgLSAoZnJlZWJzZDIuaCk6IHVzZSBfVVRNUF9QQVRIIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjozNAogICAgLSAoaXJpeC5oKTogZGVmaW5lIF9LTUVNVVNFUgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI3OjEyCiAgICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICAgc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5kc3AsIHNubXBnZXQucGxnLAogICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgICBzbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsuZHNwLCBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZQogICAgICBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgdXBkYXRlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjM0OjI2CiAgICAtIChzdHJ1Y3QuaCwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHBhc3MtcGVyc2lzdC5jLAogICAgICBwYXNzLXBlcnNpc3QuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBjcmVhdGUgYSBwYXNzLXBlcnNpc3QgbW9kdWxlIHRvIGhhbmRsZSBjb250aW51b3VzbHkgcnVubmluZyBwYXNzIHRocm91Z2hzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU2OjQ2CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogcmVtb3ZlZCBmcm9tIGFnZW50IGRpci4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1NzowNgogICAgLSAodWNkX3NubXAuaCk6IGFkZGVkIHBhc3MtcGVyc2lzdCBtb2R1bGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTg6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgICAtIHJlbW92ZSBvZGQgdGltZW91dCBjYWxjdWxhdGlvbiBjb2RlIGZvciByZXRyaWVzID4gMy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMjowNgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDM6MzYKICAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgZnJlZSBlbnYgcG9pbnRlcnMgdGhhdCBhcmUgY3JlYXRlZC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowODoxOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDowNDoyMgogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLAogICAgICAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgZGxtb2RfbWliLmMsIGRsbW9kX21pYi5oLCBleGFtcGxlLmMsCiAgICAgIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBETE1PRC1NSUIudHh0LCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEV1Z2VuZQogICAgICBQb2xvdm5pa292OgogICAgICAtIG5ldyBkbG1vZCBzZXQuCiAgICAgIC0gZml4IGNvbmZpZ3VyZSBzY3JpcHQuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6MjA6NDIKICAgICAtIChkbG1vZC5jKTogdXNlIHNubXBkXyByZWdpc3Rlcl9yZWFkX2NvbmZpZygpIHdyYXBwZXJzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQzOjU2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MjUKICAgIC0gKHVjZF9zbm1wLmgpOiByZW1vdmVkIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdCBmcm9tIGRlZmF1bHQgaW5jbHVkZSBsaXN0LgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjM0CiAgICAtIChwYXNzLmMpOiBpbmNsdWRlIHN5cy93YWl0LmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDo0MQogICAgLSAodmVyc2lvbmluZm8uYyk6IGluY2x1ZGUgc3lzdGVtLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NToyMgogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjQyCiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTozMTozNgogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTU6MzE6NTAKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTo1MToyOAogICAgdmVyc2lvbiB0YWcgKCAzLjYucHJlMSApCgpoYXJkYWtlciAxMCBKdWwgOTggMDk6NDI6MTYKICAgIC0gKHNubXBkLmMpOiB3cm9uZyBwZHUgcG9pbnRlciBmb3Igc25tcHYyYyB0cmFwcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0NjoyOAogICAgLSAoc2Vkc2NyaXB0LmluKTogdXNpbmdfbW9kdWxlIGNoYW5nZXMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6NTUKICAgIC0gKG1lbW9yeS5oKTogTUVNU1dBUE1JTklNVU0gd2Fzbid0IGJlaW5nIHVzZWQuCgpoYXJkYWtlciAxNyBKdWwgOTggMTM6MTE6MTAKICAgIC0gKFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZWQgc21pY25nIGlucHV0IGZpbGUuCiAgICAgIC0gZml4ZWQgdGhlIFVDRC1TTk1QIG1pYiB0byBkZWFsIHdpdGggbW9zdCBzbWljIGVycm9ycy4KCmhhcmRha2VyIDIwIEp1bCA5OCAxNzoxNDoyMQogICAgLSAoc25tcGNoZWNrLmRlZik6IHdvcmsgYXJvdW5kIGZvciBuZXcgbXVsdGktZGVwdGggbWliIHRhYmxlcy4uCgpoYXJkYWtlciAyMiBKdWwgOTggMTU6MzU6MDcKICAgIC0gKG1pYi5jKTogZG9uJ3QgY2hhbmdlIHJ1bm5pbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc3RydG9rLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE2OjIzOjQ1CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogZml4IHNlZHNjcmlwdCBpbmNsdWRlcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzowMjoyNwogICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjMyOjQzCiAgICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQzOjMwCiAgICAtIChUT0RPKTogYWRkZWQgc2VjdXJpdHkgY2hlY2tzLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ0OjM4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHBlcnNpc3RlbnQgY29uZmlnIGZpbGUgcXVlc3Rpb24uCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDQ6NTMKICAgIC0gKE1ha2VmaWxlLmluKTogdHlwby4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0NzoxNQogICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBwcmUvcG9zdCBtaWIgbG9hZGluZyBjb25maWcgZmlsZXMuCiAgICAgIC0gY3JlYXRlIGluaXRfc25tcCgpIHRvIHdyYXAgb3RoZXIgZnVjdGlvbnMuCiAgICAgIC0gbmV3IHNubXAuY29uZiBkaXJlY3RpdmVzOiBtaWJzLCBtaWJkaXJzLCBtaWJmaWxlLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ3OjQ4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogaW5pdF9zbm1wKCkuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDg6MjUKICAgIC0gKGxpYnNubXAuZGVmKTogZmluZF9tb2R1bGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDg6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdXNlIGluaXRfc25tcCBpbnN0ZWFkIG9mIGluaXRfbWliKCkuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NTA6MzQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgICBzbm1wZC5oKToKICAgICAgLSBzdXBwb3J0IG1pYi1tb2R1bGUgc2h1dGRvd24gZnVuY3Rpb25zLgogICAgICAtIGRvIGEgbWluaW1hbCBwZXJzaXN0ZW50IGNhY2hlIGltcGxlbWVudGF0aW9uIGFuZCByZWFkIGl0IGF0IHN0YXJ0IHVwLgogICAgICAtIHRlc3Qgd2l0aCBiZWdpbm5pbmdzICh3cm9uZyBwbGFjZSkgb2YgYWdlbnRCb290cyB2YXJpYWJsZS4KCm5iYSAgMyBTZXAgOTggMTQ6Mjk6MDMKICAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDE2OjEyOjMyCiAgICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KCmhhcmRha2VyICA5IFNlcCA5OCAxNjo1NTowNAogICAgLSAoc25tcGQuYyk6IGZpeCB0cmFwIHN0dWZmIGJyb2tlbiBieSB0aGUgY29kZSBtZXJnZS4KCmhhcmRha2VyIDExIFNlcCA5OCAwOToyNjo0MgogICAgLSAoKik6IE1lcmdlZCB0aGUgTVQgY2hhbmdlcyBpbnRvIHRoZSBtYWluIGJyYW5jaC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo0NjowMQogICAgLSAoc25tcF9hcGkuYyk6IHByb3RvdHlwZSBtb3ZlIGluaXRfc25tcCgpIGFib3ZlIGluaXRfc25tcF9zZXNzaW9uLgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjUzOjIzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1vdmUgdW4tY29uZmlndXJlZCBkZWZpbmVzIGFib3ZlIEBUT1BALgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjU0OjI0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERvbid0IGZvcmNlIGNjIGFueW1vcmUsIGFsbG93IGdjYyB0byBnbyBmaXJzdC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo1Njo1MQogICAgLSAob3YvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIHNlY3Rpb25zIGFscmVhZHkgZGVmaW5lZCBpbiBNYWtlZmlsZS50b3AuCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDI6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDg6NDYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogTW92ZSBDQU5fVVNFX05MSVNUIHRlc3RzIGJlbG93IGFyY2ggLmggZmlsZXMuCgpoYXJkYWtlciAxMyBTZXAgOTggMTg6MjQ6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBleGl0IC0+IHJldHVybi4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDoxMjowOQogICAgLSAoc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgLSBtZXJnZSBpbnRvIG1haW4gbGluZSBmcm9tIHRoZSAzLTYtcHJlMS10cmFucyBicmFuY2guCgpoYXJkYWtlciAxMyBTZXAgOTggMjA6MTg6MTAKICAgIC0gKHNubXBfYXBpLmMpOiBkZWZpbmUgdXNhZ2UgbWlzcGVsbGluZyBTTk1QX0JBRF9QQVJTRSAtPiBTTk1QRVJSX0JBRF9QQVJTRS4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDozMDozOAogICAgLSAoc25tcF9hcGkuYyk6IHByZXZlbnQgZG91YmxlIGluaXRfc25tcCgpcy4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowNToyNgogICAgLSAoUkVBRE1FKTogTmFtZSBhZGRpdGlvbi4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowNjo1MgogICAgLSAobWliLmMsIHJlYWRfY29uZmlnLmMpOiByZWZpeCB0aGUgbm9uLW1hbGxvY2VkIGNvbmZpZ3VyYXRpb24gdmFycy4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowOTozNgogICAgdmVyc2lvbiB1cGRhdGU6IDMuNi5wcmUyCgpoYXJkYWtlciAxNCBTZXAgOTggMTI6MzU6MTAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gaW5zdGFsbCBzbm1wX3Nlc3NfYXBpLjMuCgpoYXJkYWtlciAxNCBTZXAgOTggMTI6NDM6MzIKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBkbG1vZF9taWIuYywgdXRpbF9mdW5jcy5jLAogICAgICBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgICAgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHNubXBfYmdwLmMsCiAgICAgIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgaHB1eC5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLAogICAgICByZWdpc3RyeS5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywKICAgICAgcGFydHlfdmFycy5jLCB2aWV3X3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVuYW1lIGNvbXBhcmUgLT4gc25tcF9vaWRfY29tcGFyZSgpLgoKaGFyZGFrZXIgMTUgU2VwIDk4IDEzOjAyOjM0CiAgICAtIChpbmV0LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtZW1vcnkgcmVsYXRlZCBmaXhlcy4KCmhhcmRha2VyIDE1IFNlcCA5OCAxMzowNzowNQogICAgLSAobWliLmMpOiAvLyBjb21tZW50IC0+IC8qICovIGNvbW1lbnQuCgpoYXJkYWtlciAxNSBTZXAgOTggMTM6MDc6NDUKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggaW5pdF9zbm1wIGNhbGxzIGZyb20gc2Vzc2lvbiByb3V0aW5lcy4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMzoyMDoxMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGFkZGVkIHRoZSBGaWxlVGFibGUgc3VibWl0dGVkIGJ5IEpvbmFzIE9sc3Nvbi4KCmhhcmRha2VyIDE4IFNlcCA5OCAxNDowMTo1MQogICAgLSAodWNkX3NubXAuaCk6IGFkZCB0aGUgZmlsZSBtaWIgbW9kdWxlLgoKaGFyZGFrZXIgMTggU2VwIDk4IDE0OjA0OjQzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ2hhbmdlIGZpbGUgcmV0dXJuIGNvZGUgZnJvbSBUcnV0aFZhbHVlIHRvCiAgICAgIGludGVnZXIgc2luY2UgMS8yIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCAwLzEgcmV0dXJuIGNvZGUgc2NoZW1lLgoKaGFyZGFrZXIgMjEgU2VwIDk4IDExOjExOjM5CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEzOjA3OjA3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBhcnNlLmMpOiBOZXcgZmxhZzoKICAgICAgLSAtLWVuYWJsZS1lb2wtdGVybWluYXRlZC1jb21tZW50cy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzowNTo0MAogICAgLSAoc25tcF9hcGkuYyk6IGRvbid0IHJlbHkgb24gdGhlIGdldHNlcnZieW5hbWUgcG9pbnRlciB0byBzdGF5IGFyb3VuZC4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzoxNToyMgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gVGhlIENNVSBsaWJyYXJ5IGhhcyBhbiBvcHRpbWl6YXRpb24gaW4gc25tcF9jbG9uZV9wZHUoKSB0aGF0IGRvZXMKICAgICAgIG5vdCBjb3B5IHplcm8gbGVuZ3RoIHN0cmluZ3MuICBJIGhhZCBtZXJnZWQgdGhpcyBpbiB3aXRoIGNoYW5nZXMKICAgICAgIG1hZGUgZm9yIG11bHRpLXRocmVhZCBzdXBwb3J0LiAgVW5mb3J0dW5hdGVseSwgSSBkaWQgbm90IG1ha2Ugc3VyZQogICAgICAgdGhlIGNsb25lZCBQRFUgaGFkIG5vIHBvaW50ZXIgZm9yIHRoaXMgY2FzZS4gIE9vcHMhCiAgICAgLSBBbm90aGVyIHByb2JsZW0gaW4gc25tcF9jbG9uZV9wZHUoKSB3YXMgdGhlIHRlc3QgZm9yIHplcm8gbGVuZ3RoCiAgICAgICBzdHJpbmcgd2FzIG5vdCBiZWluZyBwZXJmb3JtZWQgb24gdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNoYWluLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjI0OjE2CiAgICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tCiAgICAgIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggY29tcGlsZXIgd2FybmluZ3MsIGVycm9ycy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzoyNToxMAogICAgLSAoc25tcHRhYmxlLmMpOiBwcm9jZXNzIGFyZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIGdldF9vcHQoKS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzozMzowNgogICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgICBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gc3R1cGlkIE9TIHVwZGF0ZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzo1NTo1MAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbnN0YWxsIG1vcmUgaGVhZGVycy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzo1Njo0MwogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4gIEl0J3MgZ29pbmcgdG8gY2hhbmdlIHRvbwogICAgICBtdWNoIGluIHRoZSBmdXR1cmUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTg6MDM6MjcKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB2ZXJzaW9uLmgsIGFuZCBzdHJpcCBpbmNsdWRlcyBvdXQgb2YgY29uZmlnLmgKCmhhcmRha2VyIDI1IFNlcCA5OCAxODowNDoxMQogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50LW91dC4KCmhhcmRha2VyIDI1IFNlcCA5OCAxODoxNDoyMAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHV0aWxfZnVuY3MuYyk6IHVzZSBVU0xFRVAgaWYgYXZhaWxhYmxlIGZvcgogICAgICBzbWFsbCBzbGVlcCB0aW1lcyB3aGlsZSB3YWl0aW5nIGZvciBwcm9jZXNzZXMgdG8gZmluaXNoLgoKaGFyZGFrZXIgMzAgU2VwIDk4IDE0OjU3OjExCiAgICAtIChDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBpbnRlcmZhY2VzLmMsIG1lbW9yeS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBwYXJzZS5jKToKICAgICAgLSBtZXJnZSAzLjUuMyBjaGFuZ2VzIGludG8gbWFpbiB0cnVuay4KCmhhcmRha2VyICA1IE9jdCA5OCAxNjo1MzoyMwogICAgLSAoZHVtbXkuYywgZHVtbXkuaCk6IHVwZGF0ZSB0byByZW1vdmUgY29tbW9uX2hlYWRlci5oCgpoYXJkYWtlciAgNSBPY3QgOTggMTc6MDM6MzQKICAgIC0gKGhyX3Byb2MuYyk6IHBvc3NpYmxlIGZpeCBmb3Igc29sYXJpcydzIHByb2Nlc3MgcGVyY2VudGFnZS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODowMwogICAgLSAodmFyX3JvdXRlLmMpOiBoYWNrIGZpeGVzIGZvciBocHV4MTAgYW5kIHJ0ZW50cnkuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MTg6MTYKICAgIC0gKGhwdXguaCk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODo1NQogICAgLSAoY29uZmlnLmguaW4pOiBzZXR1cCBkZWZpbmUgZm9yIEhBVkVfVVNMRUVQLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM0OjU4CiAgICAtIChyZW1vdmUtZmlsZXMpOiB1cGRhdGUuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MzU6MDYKICAgIC0gKHZlcnNpb250YWcpOiBmaXggZm9yIGN2cyAxLjEwLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM4OjQ5CiAgICAtICh2ZXJzaW9udGFnKTogdHlwby4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozODo1NgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMyApCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NDk6MTEKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcHJvcGVybHkgbG9jYXRlIHZlcnNpb24uaCBpbiAkKHNyY2RpcikuCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NDk6MzAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IG1ha2UgaHRtbC4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1MDoyMwogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSB1bi1uZWVkZWQgaGVhZGVycy4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1MTo1NgogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBkZWZhdWx0IHBvcnQgcHJvYmxlbXMgKGFnYWluKS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1NDozOAogICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZXhpdGluZyBwcm9ibGVtcyBvbiBOVC4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzowMDo0MAogICAgLSAobGlic25tcC5kc3AsIGxpYnNubXBfZGxsLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHdpbk5UIHByb2plY3QgZmlsZSB1cGRhdGVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDA4OjA5OjEyCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MDg6MTgKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIENoZWNrIGZvciBmdWxseSBxdWFsaWZpZWQgb2lkIHN0YXRlbWVudHMuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MTI6MDIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHN1cHBvcnQgZm9yIHN0cmljdCAoY2FzZSBzZW5zaXRpdmUpIG9wdGlvbiB0byB0aGUgbWliIGNvbXBpbGVyLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDIzOjIwOjI1CiAgICAtIChGQVEpOiBEYXZlIFNoaWVsZCBleHBsYWlucyBpbiB3b25kZXJvdXMgZGV0YWlsIGFsbCBhYm91dCB0aGUgVkFDTSBtb2R1bGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6MTc6MDIKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcHVibGljIGNvbW11bml0eSBleGFtcGxlcyAtPiBwcml2YXRlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQxOjEyCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbWFjaGluZS90eXBlcy5oLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQxOjM4CiAgICAtIChob3N0X3Jlcy5oKTogbmV0L2luX3Zhci5oIGZvciBmcmVlYnNkMy4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo0MjoyMAogICAgLSAoaHJfc3RvcmFnZS5jKTogbWFjaGluZS90eXBlcy5oIGFuZCBzeXMvdm1tZXRlci5oIGZvciBmcmVlYnNkMy4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo1MDoyNgogICAgLSAoZnJlZWJzZDMuaCk6IGRlZmluZSBmcmVlYnNkMiBhbmQgTU9VTlRfTkZTLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjUxOjU4CiAgICAtIChmcmVlYnNkMy5oKTogb3BwczogIGRlZmluZSBNT1VOVF9ORlMgYXMgIm5mcyIuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDA6MDUKICAgIC0gKHNubXBkLmMpOiAtQTogYXBwZW5kIHRvIGxvZyBmaWxlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE2OjQxOjUyCiAgICAtIChzbm1wZC5jKTogZG9jdW1lbnQgLUEuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDI6MTAKICAgIC0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLUEuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDk6MDMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGZvciBicm9rZW4gY29tcGlsZXIgd2FybmluZ3Mgb24gTlQuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NTI6NTEKICAgIC0gKG1lbW9yeS5jKTogZml4IGZvciBocHV4OS4KCmhhcmRha2VyIDE2IE9jdCA5OCAwODozODozOQogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGFpeC5oKTogYWl4IGhlYWRlciBmaWxlIGZpeGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDEwOjU0OjQ5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBGaXggcGFyc2VyIHRvIGRlYWwgd2l0aCBhbm9ueW1vdXMgY2hpbGRyZW4gcHJvcGVybHkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTE6MDg6NTYKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gd2F0Y2ggb3V0IGZvciBlbXB0eSBmaWxlIG5hbWVzIHBhc3NlZCBpbi4KCmhhcmRha2VyIDIxIE9jdCA5OCAxNzowMToxMgogICAgLSAoLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmKToKICAgICAgLSBuZXcgdW5wcm9vZnJlYWQgbWFudWFsIG9uIHRoZSByZWFkX2NvbmZpZyBhcGkgKG1vc3Qgb2YgaXQpLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDA3OjU3OjE3CiAgICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIE5VTEwgY2hlY2tpbmcgb24gdGhlIGZpbGVzeXN0ZW0gbW91bnQgcG9pbnQuCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTQ6MTEKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zZXJ0IEAgc2lnbi4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1NDo0NwogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMpOiBidWcgZml4ZXMsIG1pc3NpbmcgI2VuZGlmLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU2OjA5CiAgICAtICh0a21pYik6IGVkaXRhYmxlIG9pZCBmaWVsZC4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1OTo0NAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wZC5jLCB3b21iYXQuaCwKICAgICAgc3lzdGVtLmgsIHZhY21fdmFycy5oLCBkbG1vZC5jLCBkaXNrLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLAogICAgICBsb2FkYXZlLmgsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuaCwgcGFzcy5oLCBwYXNzX3BlcnNpc3QuaCwKICAgICAgcHJvYy5oLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1pYi5jLCByZWFkX2NvbmZpZy5jLAogICAgICByZWFkX2NvbmZpZy5oKToKICAgICAgLSBuZXcgb3B0aW9uIC1IIG9uIGNvbW1hbmQgbGluZSB0byBwcmludCBvdXQgLmNvbmYgZmlsZSBkaXJlY3RpdmVzCiAgICAgICAgdGhhdCB0aGUgYXBwbGljYXRpb24gdW5kZXJzdGFuZHMuCiAgICAgIC0gY3JlYXRlZCBhIG5ldyBvcHRpb24gdG8gdGhlIHJlYWQgY29uZmlnIHJlZ2lzdHJhdGlvbiB0byBhbGxvdwogICAgICAgIHNwZWNpZnlpbmcgb2YgYSBoZWxwIGxpbmUuCgpoYXJkYWtlciAgNiBOb3YgOTggMTc6MjM6NDYKICAgIC0gKHNubXBkLmMpOiBmaXggdjIgdHJhcCBnZW5lcmF0aW9uLgoKaGFyZGFrZXIgIDYgTm92IDk4IDE3OjQ0OjQzCiAgICAtIChzbm1wZC5jKTogdjIgdHJhcCBzZW5kIGRlYnVnZ2luZy4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMjoxMDowOAogICAgLSAodGttaWIpOiB0b28gbWFueSBpbXByb3ZlbWVudHMgdG8gY291bnQuCgpoYXJkYWtlciAyMyBOb3YgOTggMTU6NDI6NTIKICAgIC0gKGludGVyZmFjZXMuYywgaXJpeC5oKTogZml4IGxvY2F0aW9uIG9mIF9LRVJORUwgZGVmaW5lIGZvciBpcml4LgoKaGFyZGFrZXIgMjMgTm92IDk4IDE2OjM1OjQwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtaXNjIHBhcnNpbmcgYnVnIGZpeGVzLgogICAgICAtIC13ICYgLVcgb3B0aW9ucyB0byBkZWZhdWx0IGFwcGxpY2F0aW9uIHBhcnNlX2FyZ3MuCiAgICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDI6NDQKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgICAtIHVzZSBzZXRsb2NhbGUoKSBpZiBhdmFpbGFibGUgdG8gY29ycmVjdCBpc3ByaW50IHByb2JsZW1zLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA3OjQ4OjUzCiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogbmV3IGZ1bmN0aW9uczogc25tcF9taWJfdG9nZ2xlX29wdGlvbnMoKSBhbmQgdXNhZ2UuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDk6NDMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogLVAgZmxhZyBmb3IgdG9nZ2xpbmcgbmV3IG1pYiBwYXJzaW5nIG9wdGlvbnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MDY6MzMKICAgIC0gKE5FV1MpOiBiZWdpbm5pbmcgbm90ZXMgZm9yIDMuNi4KCmhhcmRha2VyIDEzIERlYyA5OCAwODowNzoyNAogICAgLSAoZGlzay5jKTogZml4IGRpc2sgc2l6ZSBlcnJvciBmbGFnIHJlcG9ydGluZyBvbiBTb2xhcmlzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjEyOjEzCiAgICAtIChwYXJzZS5jKTogc3BhY2luZyBpbiBtaWIgb3B0aW9uIHVzYWdlIGZpeGVzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjE0OjQ0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSAtdy8tVyBmbGFnIGluIHVzYWdlLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjE4OjA3CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiByZW1vdmUgYSBmZXcgZGVmaW5lcyB0aGF0IHdlcmUgbWVzc2luZyB1cCBzb2xhcmlzIDcuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NDE6NTUKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IHdhdGNoIG91dCBmb3IgTlVMTCBmaWxlIHBvaW50ZXJzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjQyOjIwCiAgICAtIChpbmV0LmMpOiBpbml0IHBvaW50ZXIgdG8gTlVMTC4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo0ODozOAogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIEplZmYgSm9obnNvbjoKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbWVtb3J5IGxlYWtzIHdpdGggdGhlIFJQTSBwYWNrYWdlIGluZm8gY2FsbHMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NTc6NTIKICAgIC0gKFJFQURNRSk6IGFkZGVkIEplZmYgSm9obnNvbiB0byB0aGUgY29udHJpYnV0b3JzIGxpc3QuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NTk6MTYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTUgKQoKaGFyZGFrZXIgMTYgRGVjIDk4IDA3OjMxOjI2CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcG9pbnRlciBjaGVja3MgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgoKaGFyZGFrZXIgMTggRGVjIDk4IDExOjM2OjM5CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwby4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxMDoyNAogICAgLSAocGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gZml4ZXMgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCiAgICAgIC0gbWlzYyByZWFkX2NvbmZpZyBmdW5jdGlvbnMgcHVsbGVkIGluIGZyb20gdGhlIHYzIHdvcmsuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTE6MDMKICAgIC0gKGxpYnNubXAuZGVmKTogdXBkYXRlIGZyb20gTWljaGFlbCBTbGlmY2FrLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjEyOjU0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGluY2x1ZGUgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxNjozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBzdG9yZSBjb25maWd1cmUgZmxhZ3MgdG8gYSBkZWZpbmUuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTY6NTMKICAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBtaWIgb2JqZWN0IHRvIGRpc3BsYXkgY29uZmlndXJlIG9wdGlvbnMuCgpoYXJkYWtlciAyMSBEZWMgOTggMTg6MTk6MTIKICAgIC0gKGZpbGUuaCwgVUNELVNOTVAtTUlCLnR4dCk6IG1vdmUgdGhlIGZpbGUgbWliIHRvIC4xNSBzbyBpdCBkb2Vzbid0CiAgICAgIGNvbmZsaWN0IHdpdGggdGhlIGRlbW8gbWliLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE4OjIwOjI1CiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFdpbjMyIG1lbW9yeSBsZWFrIGZpeGVzIGZvciBvcGVuZGlyKCksIGV0Yy4KCmhhcmRha2VyIDIyIERlYyA5OCAwODo1MDoyOQogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBjb21waWxlIGRsbW9kcwoKaGFyZGFrZXIgMjIgRGVjIDk4IDE0OjU2OjQ0CiAgICAtIChtaWIuYywgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBteSBicm9rZW4gc2V0X2xvY2FsZSBzdHVmZi4KCmhhcmRha2VyIDI2IERlYyA5OCAxMDozNToyMwogICAgLSAoZGxtb2QuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBkbG1vZCBjb21waWxhdGlvbiBpbiBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpIGNhbGwuCgpoYXJkYWtlciAyOSBEZWMgOTggMTY6NTU6NTQKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIG5ld2xpbmVzIGZyb20gc3ByaW50X3ZhbHVlKCkgd2hlcmUgYXBwbGljYWJsZS4KCmhhcmRha2VyIDI5IERlYyA5OCAxNzowMjozMwogICAgLSAodmFjbS5jKTogRW5hYmxlIG11bHRpcGxlIHNpZGUgYnkgc2lkZSB2aWV3cyBpbiB0aGUgdmlldyBmYW1pbHkKICAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgICAtIE5vdCBkb25lIGluIGEgY2xlYW4gZmFzaGlvbi4gIE11Y2ggb2YgdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9ucwogICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgIHNwZWVkLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ2OjExCiAgICAtIChldmVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gbWVtY21wJ3Mgc2l6ZXMgd2VyZSB3cm9uZy4KCmhhcmRha2VyIDMxIERlYyA5OCAxNzo0ODo1NwogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgICAtIG5lZWQgdG8gcmVhZF9vYmppZCgpIHRoZSBjb250ZXh0IG9pZCBiYXNlLCBub3QgdGhlIHBhcnR5IG9pZCBiYXNlCiAgICAgICAgaW4gb25lIGxvY2F0aW9uLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ5OjUxCiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgICAtIG9pZExlbidzIHdlcmUgd3JvbmcgZm9yIG0ybSBvaWRzLgoKaGFyZGFrZXIgIDIgSmFuIDk5IDA4OjQ4OjI5CiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgIC0gbmV3IGNvbXBsZXRlIGxpc3Qgb2YgaWZUeXBlcy4KCmhhcmRha2VyICA1IEphbiA5OSAxMDo0MTo1MgogICAgLSAoc25tcHRhYmxlLmMpOiBNYWtlIGZpZWxkIHNlcGFyYXRvciB0YWtlIGFyZ3VtZW50cyBkaXJlY3RseSBhZnRlciB0aGUgLWYuCgpoYXJkYWtlciAgNSBKYW4gOTkgMTA6NDg6NTEKICAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgICBzbm1wdGFibGUuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAgLSBtYWtlIG1haW4oKSByZXR1cm4gYW4gaW50IGluc3RlYWQgb2Ygdm9pZC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDoyODoyMQogICAgLSAobWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHZhY20uYyk6CiAgICAgIC0gSW1wbGVtZW50IHRoZSBuZXcgdG9rZW4gYmFzZWQgZGVidWdnaW5nIG1lc3NhZ2Ugc3VwcG9ydC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDozMDoxMgogICAgLSAoc25tcHRhYmxlLmMpOiBjaGFuZ2UgaW50ZXJuYWwgZGVidWcgdmFyaWFibGUgdG8gbG9jYWxkZWJ1Zy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDozMDo0NwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtYWtlIC1EIHJlZ2lzdGVyIHRoZSBkZWJ1Z2dpbmcgdG9rZW5zIHNwZWNpZmllZC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo0OToyOQogICAgLSAoRkFRLCBSRUFETUUpOiBVUkwgY2hhbmdlcy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MDoxNQogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MDoyOAogICAgLSAoaWYuYywgbWFpbi5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MjoxMAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IERFQlVHUE9JRCByZXBsYWNlbWVudDogREVCVUdNU0dPSUQuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6NTI6MjIKICAgIC0gKHNubXBjbWQuMSk6IGRpc2N1c3MgLUQgdXNhZ2UgY2hhbmdlLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIxOjUwOjEzCiAgICAtIChhZ2VudC8qLmMpOgogICAgICAtIHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgICAgIC0gaW1wbGVtZW50IG5lZWRlZCAtRCBmbGFnIGNoYW5nZXMuCgpoYXJkYWtlciAxNCBKYW4gOTkgMDk6MDI6MzYKICAgIC0gKG1pYjJjKTogdXBkYXRlIGZvciBTTk1QLnBtIDEuOC4KCmhhcmRha2VyIDE1IEphbiA5OSAxMToxMDowOQogICAgLSAoc25tcDJwLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDExOjEyOjIyCiAgICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDE1OjI0OjAyCiAgICAtIChhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2Ugc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2UgcmVnaXN0ZXJfbWliKCkuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6NTg6MjAKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6NTg6NTAKICAgIC0gKHZhY20uYyk6IERFQlVHTVNHIHR5cG8uCgpoYXJkYWtlciAxNSBKYW4gOTkgMTY6MTc6MDUKICAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIHNtdXggcGF0Y2hlcy4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzowNDoxMgogICAgLSAoc25tcGNtZC4xKTogdXBkYXRlZCAtRCBkZXNjcmlwdGlvbi4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzoxMjowMwogICAgLSAoc25tcGxpYi8qLltjaF0pOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gYXNuaSdpZnkgYWxsIGZ1bmN0aW9ucy4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzoxMzoxMAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNiApCgpoYXJkYWtlciAxOCBKYW4gOTkgMTA6NDc6MzYKICAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gYW5zaSdpZnkgZXZlcnl0aGluZy4KCmhhcmRha2VyIDE5IEphbiA5OSAxOTo1OTo1MwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIF9fUCBjaGVja2luZy4KCmhhcmRha2VyIDE5IEphbiA5OSAyMDowMTo1OQogICAgLSAoc25tcHRhYmxlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2F1dGguYywgbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAgLSBhcHBzL3NubXB0YWJsZS5jIC0gc29tZSBjb21waWxlcnMgd2FybiBjb21wYXJpbmcgcG9pbnRlciB3aXRoIGludGVnZXIKICAgICAgLSBzbm1wbGliL21pYi5jIC0gYWxyZWFkeSBtZW50aW9uZWQgYmVmb3JlOyBoZXJlIGZvciBjb21wbGV0ZS1uZXNzCiAgICAgIC0gc25tcGxpYi9wYXJzZS5jIC0gbWlub3IgdG91Y2h1cCBvZiBpbmNsdWRlczsgc3lzdGVtLmggZHVwIHJlbW92ZWQKICAgICAgLSBzbm1wbGliL3NubXBfYXBpLmggLSBNU1Zpc3VhbCBDKysgZG9lc24ndCBoYXZlIF9fRlVOQ1RJT05fXwogICAgICAtIHNubXBsaWIvc25tcF9hdXRoLmMgLSBtaW5vciBmaXggb2YgY29tbWVudAogICAgICAtIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIC0gc25tcF9wYXJzZV9hcmdzIG5lZWRzIGEgbmV3IGZ1bmN0aW9uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjA6MDgKICAgIC0gKEZBUSk6IHBlcmwtU05NUCBhbmQgeTJrIHF1ZXN0aW9ucyBhZGRlZC4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMTozNQogICAgLSAoYWNjb25maWcuaCk6IHVubmVlZGVkIGNvbW1lbnQgcmVtb3ZlZC4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMTo1NwogICAgLSAoaW50ZXJmYWNlcy5jKTogdHlwbyBpbiBhbnNpIGNoYW5nZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjQ6MzQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgICBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsIC5jdnNpZ25vcmUsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywKICAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGlmLmMsIE1ha2VmaWxlLmluLCBtaWIuYywgcGFyc2UuYywKICAgICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsCiAgICAgIHZhY20uYyk6IGRlYnVnZ2luZyBzdXBwb3J0IGNvZGUgbW92ZWQgdG8gc25tcF9kZWJ1Zy5bY2hdLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjExOjU5CiAgICAtIChNYWtlZmlsZS5pbik6IHZlcnNpb24gdGFnIGNyZWF0aW9uLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE0OjEzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoZWNrIGZvciBhc20vcGFnZS5oIChsaW51eCkuCiAgICAgIC0gY2hlY2sgZm9yIHN5cy9zdHJlYW0uaCAoU0NPKS4KICAgICAgLSBGaXggcnRlbnRyeSB0ZXN0LgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE0OjQyCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3N0cmVhbS5oIGZvciBTQ08uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6NTgKICAgIC0gKHZlcnNpb250YWcpOiB2ZXJzaW9uIHRhZ2dpbmcgYWJpbGl0eSB0byBkbyBtYW55IHRoaW5ncy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNjozNAogICAgLSAoYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jKToKICAgICAgLSBzeXMvc3RyZWFtLmggbmVlZGVkIGJ5IFNDTy4KICAgICAgLSBpbnRlcmZhY2VzIHNjYW4gZml4ZXMgZm9yIGxpbnV4IDIuMCB2cyAyLjEgY2FuIGJlIGNvbmZpZ3VyZWQgZWxzZXdoZXJlIG5vdy4KICAgICAgLSBwcm90ZWN0IGdldF9hZGRyZXNzIGNhbGxzIGFnYWluc3QgTlVMTCBwb2ludGVyIHJldHVybnMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTc6MTcKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKToKICAgICAgLSBsaW51eCAyLjEga2VybmVsIG5lZWRzIGFzbS9wYWdlLmggKGFsbCBpbmNsdWRlcyBuZWVkIHRvIGJlIHJlLXdyaXR0ZW4pLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE3OjQxCiAgICAtIChsaW51eC5oKTogZGVmaW5lIExJTlVYX0lOVEVSRkFDRV9TQ0FOX0xJTkUuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjA6MDQKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB1Y2Qtc25tcC1pbmNsdWRlcy5oLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjIyOjA4CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjIyOjM4CiAgICAtIChGQVEsIFJFQURNRSk6IGFkZGVkIHZlcnNpb24gc3RhbXAuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MzA6NTgKICAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkKCmhhcmRha2VyIDIwIEphbiA5OSAxNTozMToxMwogICAgLSAoUkVBRE1FKTogaGVscGluZyBvdXQgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo0ODo1MwogICAgLSAoc211eC5jKTogdHlwbwoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjQ5OjMwCiAgICAtIChocl9zd2luc3QpOiAjaWZkZWYgUlBNIHByb3RlY3QgYSBmcmVlIHJvdXRpbmUuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTA6MTcKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtaWIgbW9kdWxlIG1ha2UgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjU0OjAyCiAgICAtIChzbm1wZC5jKTogZXhwb3J0IHNkbGlzdCBhbmQgc2RsZW4gdmFyaWFibGVzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjU0OjM2CiAgICAtIChzbXV4LmMpOiBkZWJ1Z2dpbmcgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNjo0MToyMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfcGFyc2VfYXJncy5jLCBtYWluLmMsIHNubXBfYXBpLmMpOgogICAgICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBhbGxvdyB6ZXJvIGxlbmd0aCAobGVnYWwpIGNvbW11bml0eSBzdHJpbmdzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE3OjAyOjM3CiAgICAtIChjb25maWcuaC5pbik6IHJhbiBhdXRvaGVhZGVyCgpoYXJkYWtlciAyMCBKYW4gOTkgMTc6MTE6MjYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTcgKQoKaGFyZGFrZXIgMjEgSmFuIDk5IDA4OjM5OjM0CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAgLSB0eXBvIG9uIEpvZSdzIG5hbWUgZml4ZWQuCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6NDA6MjYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX2FwaS5jLCBjb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbAogICAgICBKLiBTbGlmY2FrOgogICAgICAtIE5PX05VTExfQ09NVU5JVFkgLT4gTk9fWkVST0xFTkdUSF9DT01NVU5JVFkuCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6NDI6MTcKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtb2R1bGUgZGVwZW5kcy4KCmhhcmRha2VyIDIyIEphbiA5OSAwNzoyMzoxMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENoZWNrIGZvciBOVUxMIG9uIHNlc3Npb24gY2xvc2VzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjA4CiAgICAtIChzbm1wZGVsdGEuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaW5ldC5jLCBtYWluLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gbW9yZSBhbnNpIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjI2CiAgICAtICh2ZXJzaW9udGFnKTogdHlwby4KCmhhcmRha2VyIDI1IEphbiA5OSAxMDoyODo0MQogICAgLSAobGludXguaCk6IDIuMiBkZWZpbmUgdXBkYXRlLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjMzOjI0CiAgICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2NsaWVudC5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhbnNpIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjM0OjExCiAgICAtIChzeXN0ZW0uYyk6IGZpeCBzdHJpbmdzLmggaW5jbHVkZS4KCmhhcmRha2VyIDI1IEphbiA5OSAxMToxMTo0OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSB0ZXN0IGlmIF9fRlVOQ1RJT05fXyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbXBpbGVyLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjE1OjUzCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgaG9zdF9yZXMuaCwgbWliaW5jbC5oLAogICAgICBmaWxlLmMsIGluZXQuYywgcGFyc2UuYywgc25tcF9kZWJ1Zy5jKToKICAgICAgLSAtV2FsbCBmaXhlcy4KCmhhcmRha2VyIDI1IEphbiA5OSAxMToxNjoxNgogICAgLSAobGludXguaCk6IGNvbW1lbnQgdHlwby4KCmhhcmRha2VyIDI1IEphbiA5OSAxNjoyNTozNwogICAgLSAoUkVBRE1FLCBSRUFETUUubWliMmMpOiBtaWIyYyByZWFkbWUgZmlsZS4KCmhhcmRha2VyIDI2IEphbiA5OSAwOTo0NTo0MgogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSByZWZlcmVuY2UgSVAgbmV0IGFkZHJlc3NlcyB0byAxMC4xMC4xMC4wLgoKaGFyZGFrZXIgIDIgRmViIDk5IDEzOjMzOjI1CiAgICAyMDM2IC0+IDIwMzgKCmhhcmRha2VyICAyIEZlYiA5OSAxMzozNDozNgogICAgLSAoc25tcGQuYyk6IHR5cG86IC1MIC0+IC1BIGluIGhlbHAgc3RyaW5ncyBkb2NzLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAwOjEzCiAgICAtIChGQVEpOiBtZW50aW9uIGxhY2sgb2Ygc29sYXJpcyBtZW1vcnkgc3VwcG9ydC4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMTowMQogICAgLSAoVE9ETyk6IFJlbW92ZSB1bnN1cHBvcmVkIG1pYiBub2RlcyBmcm9tIG91dHB1dCBpbnN0ZWFkIG9mIHJldHVybmluZyAwJ3MuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDI6MDQKICAgIC0gKGhyX3Byb2MuYyk6IHVzZSBbMF0gaW5kZXggb2YgbG9hZCBhdmVyYWdlIHRhYmxlLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAyOjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtZW50aW9uIHRoYXQgdGhlIG1lbW9yeSBzZWN0aW9uIGlzbid0IHN1cHBvcnRlZCBvbiBhbGwKICAgICAgICBhcmNoaXRlY3R1cmVzLgoKaGFyZGFrZXIgIDggRmViIDk5IDEyOjIxOjI1CiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvaG4gUG9sc3RyYToKICAgICAgLSBjYWxsIGFjY2VwdCgpIHRvIGdldCB0aGUgc29ja2V0IGZpbGUgZGVzY3JpcHRvci4KCmhhcmRha2VyICA4IEZlYiA5OSAxNTowODo1NwogICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gVGsucG0gbWVudGlvbi4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxMzowMQogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IGlpbmRleC4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxNDo0MgogICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSByZW5hbWluZyB0aW1lIC0+IG1fdGltZS4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxNzo1MAogICAgLSAocm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IElmSW5kZXguCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTg6MDgKICAgIC0gKGluZXQuYyk6IHByb3BlciBicmFja2V0IGluZGVudGF0aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE5OjIyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNlIHNpemVfdCBpbnN0ZWFkIG9mICJ1bnNpZ25lZCIgZm9yIHhtYWxsb2MsIGV0Yy4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToyMDo0NwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1ha2Ugc25tcF9vaWRfY29tcGFyZSB1c2UgY29uc3Qncy4KCmhhcmRha2VyICA4IEZlYiA5OSAyMzoyMjozMwogICAgLSAoYWdlbnQvKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHR5cGVkZWYgYWxsIG9mIHRoZSB2YXJfeHh4IGFuZCB3cml0ZSBtZXRob2QgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDggRmViIDk5IDIzOjIzOjQxCiAgICAtIChrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCkgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gaW5jbHVkZSB1cGRhdGVzLgoKaGFyZGFrZXIgIDkgRmViIDk5IDE0OjEwOjMzCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgRkFRLmh0bWwuCgpoYXJkYWtlciAgOSBGZWIgOTkgMTQ6MTA6NTIKICAgIC0gKG1pYjJjKTogdHlwby4KCmhhcmRha2VyICA5IEZlYiA5OSAxNDozNTo0NgogICAgLSAobWliLmMpOiBpbmNyZWFzZSBidWZmZXIgc2l6ZSBmb3Igb2lkIHByaW50aW5nLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjEwOjM5CiAgICAtICgqKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY29udmVydCBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4uCiAgICAgIC0gY29udmVydCB0ZW1wb3JhcnkgY2hhcmFjdGVyIHN0b3JhZ2UgYnVmZmVycyB0byBTUFJJTlRfTUFYX0xFTi4KICAgICAgLSBtYWtlIHRoZSBsaWJyYXJpZXMgcHJpbnRfIGZ1bmN0aW9ucyB1c2UgdGhlIGZwcmludF8gZnVuY3Rpb24KICAgICAgICBhbHJlYWR5IGRlZmluZWQgYW5kIHBhc3MgaXQgc3Rkb3V0LgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjIyOjAzCiAgICAtIChob3N0X3Jlcy5oKTogaW5jbHVkZSBzbm1wX3ZhcnMuaCBhaGVhZCBvZiB2YXJfc3RydWN0LmguCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MjM6MTYKICAgIC0gKGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgICAtIE1vcmUgYnVmIHNpemUgc3RhbmRhcmRpemF0aW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgogICAgICAtIEEgZmV3IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTiBjb252ZXJzaW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjM0OjAwCiAgICAtICh0Y3AuYyk6IHZhcl90Y3BFbnRyeSB3YXMgY2hlY2tpbmcgYWdhaW5zdCB0aGUgaW5jb21pbmcgb2lkIHdpdGggdGhlCiAgICAgIHdyb25nIGxlbmd0aCBhbmQgY291bGQgc3VjY2VlZCBhdCB0aW1lcyB3aGVuIGl0IHNob3VsZG4ndCBoYXZlLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjQ2OjQ4CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEV4dC0zLTYtcHJlOCApCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDg6MDcKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTggKQoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjQ4OjI5CiAgICAtICh2ZXJzaW9udGFnKTogdXBkYXRlLgoKaGFyZGFrZXIgMTYgRmViIDk5IDE3OjA1OjQ1CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZWQgbWliMmMgcHJvZ3JhbS4uLiAgc3RpbGwgaW4gcHJvZ3Jlc3MuLi4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMDowMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEwuIEhpdGNoOgogICAgICAtIGZpeCBpZl9uYW1lIHZhcmlhYmxlIGJ5IG1ha2luZyBpdCBzdGF0aWMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTM6MzgKICAgIC0gKHNubXBkLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHByb3RvdHlwZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMzo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNhZ2UgZml4LgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE1OjU5CiAgICAtIChpZi5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFrZSBzbm1wbmV0c3RhdCB3aW4zMiBjb21wYXRpYmxlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE2OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZSBhZ2FpbiBmb3IgYmV0dGVyIHN0aWxsIG91dHB1dC4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxNzoxMwogICAgLSAoTWFrZWZpbGUuaW4pOiBzZXBhcmF0ZSB0YXJnZXQgZm9yIGdlbmVyYXRlZCBtYW51YWwgcGFnZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTg6MDYKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHVzZSBhICctJyBpbnN0ZWFkIG9mIGEgJy4nIGZvciBJRUVFODAyLTExLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE5OjAzCiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjb21tZW50IHJlZm9ybWF0dGluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxOTo1MgogICAgLSAoY29udGV4dF9wYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZG9uJ3QgdXNlIGEgdmFyaWFibGUgY2FsbGVkICd0aW1lJy4gIFRzayB0c2suCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MjE6MjUKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGZwcmludF92YXJpYWJsZSB0byBub3QgcmVjdXJzZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToyMzo0NAogICAgLSAocGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0IGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjI4OjU0CiAgICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICAgc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gd2luMzIgdXBkYXRlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNjoxMzo0NwogICAgLSAoc25tcGQuYywgZHVtbXkuYywgd29tYmF0LmMsIHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGRsbW9kLmMsCiAgICAgIGRpc2suYywgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgIG1lbW9yeV9mcmVlYnNkMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsIG1pYi5jLAogICAgICByZWFkX2NvbmZpZy5jKTogd29yZCAtPiB0b2tlbiAoIndvcmQiIGlzIHJlc2VydmVkIGluIHNvbWUgY29tcGlsZXJzLgoKaGFyZGFrZXIgMjIgRmViIDk5IDA5OjExOjUyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIHNlbGVjdCAiYWxsb3cgdW5kZXJzY29yZSBpbiBNSUIKICAgICAgICBzeW1ib2xzIiBpcyBtaXNzaW5nLgoKaGFyZGFrZXIgMjIgRmViIDk5IDA5OjQ0OjIxCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gRG9uJ3QgcHJpbnQgImNhbid0IGZpbmQgbW9kdWxlIFhYWCIgbWVzc2FnZXMgd2l0aG91dCB3YXJuaW5ncyB0dXJuZWQgb24uCgpoYXJkYWtlciAyNCBGZWIgOTkgMTQ6NDM6MjEKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IHVwZGF0ZS4KCmhhcmRha2VyIDI0IEZlYiA5OSAxNzoxMDoxMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsaW51eC5oKToKICAgICAgLSBDaGVjayBmb3IgYW5kIGhhbmRsZSAyLjIgL3Byb2MvbmV0L2RldiBjaGFuZ2VzLgoKaGFyZGFrZXIgMjUgRmViIDk5IDEwOjAzOjQxCiAgICAtIChSRUFETUUsIHVjZF9zbm1wLmgsIG1lbW9yeV9zb2xhcmlzMi5jLCBtZW1vcnlfc29sYXJpczIuaCk6IFBhdGNoCiAgICAgIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgICAtIG1lbW9yeSBzdXBwb3J0IGZvciBzb2xhcmlzMi4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNTowMjo1NQogICAgLSAobG9hZGF2ZS5jLCBsb2FkYXZlLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGltcGxlbWVudCBsb2FkIGF2ZXJhZ2UgcmVwb3J0aW5nIGFzIGEgaW50ZWdlciBhbmQgYXMgYSBmbG9hdC4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNTo0MjozMQogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBVbmxpbmtlZCBPSUQgLi4uIGNjaXR0IDAgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgICAtIENvbnRpbnVlIGFmdGVyIHJlc2VydmVkIHdvcmQgZXJyb3IgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgICAtIE1vZGlmaWNhdGlvbiB0byAjMiBjb3VydGVzeSBvZiBOaWVscyBCYWdnZXNlbi4KICAgICAgLSBNb2RpZmljYXRpb24gdG8gcHJpbnQgc3ViLWlkZW50aWZpZXIgPT0gMAogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgogICAgICAtIEluc3RlYWQgb2YgcmUtb3JkZXJpbmcgYWxsIHNpbmdseS1saW5rZWQgbGlzdHMsIHVzZSBhIG5ldyBtZW1iZXIKICAgICAgICB0aGF0IGZsYWdzIHdoZW4gYSByZXBvcnQgaGFzIGJlZ3VuLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjA2OjQ5CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlIGFuZCBtYWRlIGJldHRlciBleGFtcGxlcy4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMDoyMQogICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgMy42IHJlbGVhc2UuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MTA6NDcKICAgIC0gKHNubXB0cmFwZC5jKTogdXNhZ2UgdXBkYXRlLCBhbmQgLUggc3VwcG9ydC4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgICAtIG5ldyBkb2N1bWVudGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjMzOjA5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU5ICkKCmhhcmRha2VyICAxIE1hciA5OSAxMDo0ODowMwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHR5cG86IGZpbGVNYXggLT4gZmlsZUVycm9yRmxhZyBuYW1lIGNoYW5nZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyNzoxMgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHJlbmFtaW5nIG9mIHZhcmlhYmxlcyBhd2F5IGZyb20gc3lzdGVtIGZ1bmN0aW9uIG5hbWVzIChpbmRleCAtPiBsaW5kZXgpLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjMwCiAgICAtIChlcnJvcm1pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIGVycm5vIHZhcmlhYmxlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjQ1CiAgICAtIChpZi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gZnJlZSB0aGUgaW50ZXJmYWNlIHRhYmxlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI4OjE3CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBjYXNlIGVudHJpZXMuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBwdXQgYSBwcm9wZXIgKHZvaWQpIGludG8gdGhlIGZ1bmN0aW9uIHByb3RvdHlwZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyOTo0NQogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjMwOjE5CiAgICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSBhZGRlZCBNSU5fT0lEX0xFTiBmb3IgaW5zdHJ1Y3Rpb25hbCB1c2UgbW9zdGx5IChpdHMgdW51c2VkKS4KCmhhcmRha2VyICAxIE1hciA5OSAxMzowMzoxNQogICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHR5cGVjYXN0aW5nIGZvciBjZXJ0YWluIGZ1bmN0aW9ucyB0byAoY2hhciAqKS4KCmhhcmRha2VyICAxIE1hciA5OSAxMzo1OToxNAogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSBjb21wYXJlX3RyZWUoKSBnbG9iYWwuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTQ6MDQ6MDUKICAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIGNvbXBsZXRlbHkgcmUtd3JpdHRlbiBzbXV4IG1vZHVsZXMuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTQ6MjA6MTEKICAgIC0gKHNtdXguYywgc211eC5oKTogMy42aWZpZWQuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MTA6NTcKICAgIC0gKGFsYXJtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBDYXN0IHRvIHBvaW50ZXIgdG8gaW50IG1heSBvdmVyZmxvdyB0aGUgcmV0dXJuIGJ1ZmZlci4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAgLSByZW1vdmVkIGEgdHJhaWxpbmcgYmFja3NsYXNoIHRoYXQgd2Fzbid0IG5lZWRlZC4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxNzozNgogICAgLSAobWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICAgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLAogICAgICB2YXJpYWJsZXMuNSk6IE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBzcGVsbCBjaGVjay4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxOTo1NgogICAgLSAoc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIEVDRSBkZXB0LgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjIyOjQwCiAgICAtIChhc24xLmgpOiBwdXQgYmFjayBpbiBNQVhfTkFNRV9MRU4gdGVtcG9yYXJpbHkuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTc6NDM6NDkKICAgIC0gKHNtdXguYyk6CiAgICAgIC0gYWxsb3cgbnVsbCBsZW5ndGggcGFzc3dvcmRzLgogICAgICAtIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCgpoYXJkYWtlciAgMiBNYXIgOTkgMDg6NDc6MjkKICAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gRG9uJ3QgZGVmaW5lIE1BWF9OQU1FX0xFTiBpZiBkZWZpbmVkIHNvbWV3aGVyZSBlbHNlLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDEwOjQyOjM0CiAgICAtIChzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBpcGZ3YWNjLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBTdWdnZXN0ZWQgZml4ZXMgdG8gZWxpbWluYXRlIG1vcmUgc2hhZG93ZWQgZ2xvYmFsIHJlZmVyZW5jZXMuCiAgICAgIC0gZml4dXBzIGZvciBwcm90b3R5cGUgWyh2b2lkKSByZXBsYWNpbmcgKCldLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDEzOjIzOjU3CiAgICAtICh2YXJfcm91dGUuYyk6IGRvbid0IHJldHVybiBhIHBvaW50ZXIgdG8gYSBwb2ludGVyLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDE1OjE3OjUzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfZGVidWcuYywKICAgICAgc25tcF9kZWJ1Zy5oKToKICAgICAgLSBuZXcgZmxhZzogIC0tZGlzYWJsZS1kZWJ1Z2dpbmcgdG8gY29tcGxldGVseSB0dXJuIG9mZiBpdHMgc3VwcG9ydC4KICAgICAgLSByZW5hbWluZyBvZiBET0RFQlVHIHRvIFNOTVBfQUxXQVlTX0RFQlVHLgogICAgICAtIGNsZWFuIHVwIG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IG9wdGlvbnMgbGlzdGVkLCBpbmNsdWRpbmcgcHV0dGluZwogICAgICAgIGEgbGlzdCBvZiBhdmFpbGFibGUgbW9kdWxlcyBmb3IgY29tcGlsYXRpb24gaW50byB0aGUgYWdlbnQuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MTg6NTkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB0eXBvLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDE1OjIxOjM0CiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBMaW51eCBjb21waWxlcyBkaWUgYXQgU09fUkNWVElNRU8uCiAgICAgIC0gLVdhbGwgdHlwZSBmaXhlcy4KCmhhcmRha2VyICAzIE1hciA5OSAwODoyNTozMwogICAgLSAoUkVBRE1FKTogQWRkZWQgTmljay4KCmhhcmRha2VyICAzIE1hciA5OSAwODoyODowNQogICAgLSAoY29uZmlndXJlKTogcmFuIGF1dG9jb25mLi4uCgpoYXJkYWtlciAgMyBNYXIgOTkgMTE6NDA6MTEKICAgIC0gKHByb2MuYywgc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgIC0gVXNlIC9wcm9jIG9uIHNvbGFyaXMuCgpoYXJkYWtlciAgMyBNYXIgOTkgMTc6NTE6MjYKICAgIC0gKENoYW5nZUxvZywgRkFRLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsIFRPRE8sIGJ1Zy1yZXBvcnQsIHNubXBkLmMsCiAgICAgIFJFQURNRS5taWIyYyk6IGVjZS51Y2RhdmlzLmVkdSAtPiB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMDo1MQogICAgLSAoTkVXUyk6IG1lbnRpb24gbmFtZSBjaGFuZ2UuCgpoYXJkYWtlciAgMyBNYXIgOTkgMTg6MDI6MDcKICAgIC0gKE5FV1MpOiBtZW50aW9uIFNNVVguCgpoYXJkYWtlciAgMyBNYXIgOTkgMTg6MDI6MjMKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTEwICkKCm1zbGlmY2FrICA0IE1hciA5OSAwNDowODowMQogICAgCiAgICAoc25tcG5ldHN0YXQvaWYuYykgLSBhZGQgdm9pZCB0byBlbXB0eSBmb3JtYWwgcGFyYW1ldGVyIGxpc3QKCmhhcmRha2VyICA0IE1hciA5OSAwODozNjozOQogICAgLSAodmVyc2lvbnRhZyk6IHJlcG9zaXRvcnkgbW92ZS4KCmhhcmRha2VyICA0IE1hciA5OSAwODozNjo0NgogICAgLSAoUkVBRE1FLnNtdXgpOiBhZGQgTmljay4KCmhhcmRha2VyICA0IE1hciA5OSAwOTowNzowNwogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXggdm9pZCB0ZXN0IGZvciBhbnNpIGNvbXBpbGVycy4KCm1zbGlmY2FrICA0IE1hciA5OSAwOToyMDowOAogICAgCiAgICAKICAgIChhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMpIDogcmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlcwogICAgCiAgICAoYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYykgOiBjaGFuZ2UgIip3b3JkIiB0byAiKnRva2VuIiB0byBoZWxwIHNvbWUgY29tcGlsZXIKCm1zbGlmY2FrICA0IE1hciA5OSAwOToyNDoyNgogICAgCiAgICAKICAgIChNYWtlZmlsZS5pbikgLSBmaW5kIG1pYmRlZnMuaCB3aGVuIG5vdCBidWlsZGluZyBpbiB0aGUgc291cmNlIHRyZWUKCmhhcmRha2VyICA0IE1hciA5OSAwOTozMzozMQogICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgIC0gZml4IGxvYWQgYXZlcmFnZSBvbiBzb2xhcmlzLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjM4OjI4CiAgICAtIChyZW1vdmUtZmlsZXMsIGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLmNvbmYpOgogICAgICAtIHJlbW92ZWQgZWNlIHNwZWNpZmljIGNvbmZpZyBmaWxlcyBmcm9tIHRoZSByZXBvc2l0b3J5LgogICAgICAtIGRvbid0IHJlbW92ZSBsb2NhbC8qLmNvbmYgaW4gdGhlIGZpcnN0IHBsYWNlIGFueW1vcmUuCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6NDY6MzcKICAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIFdoZW4gdGhlIGFnZW50IGlzIGNvbXBpbGVkIHdpdGggSEFWRV9MSUJSUE0gc2V0LCB5ZXQgbm8gZGF0YWJhc2UKICAgICAgICBpcyBmb3VuZCwgYWdlbnQgd2lsbCBjb3JlLi4uCgpoYXJkYWtlciAgNCBNYXIgOTkgMTM6MTg6NDcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdm9pZCBjaGVjay4KCm1zbGlmY2FrICA0IE1hciA5OSAxNToxMzowMAogICAgCiAgICAKICAgIChocl9wcm9jLmMsIGxvYWRhdmUuYykgLSBmaXhlZCBjb3JlIG9uIGdldGxvYWRhdmcgaW4gYSBkaWZmZXJlbnQgd2F5Cgptc2xpZmNhayAgNCBNYXIgOTkgMTU6MjU6NTMKICAgIAogICAgKGRpc2suYykgLSBleHBsaWNpdCBicmFjZXMgdG8gYXZvaWQgYW1iaWd1b3VzIGBlbHNlJwoKbXNsaWZjYWsgIDQgTWFyIDk5IDE1OjI5OjI0CiAgICAKICAgIChocl9kaXNrLmMpIC0gY29uZGl0aW9uYWxseSB1c2UgZGVmaW5lZCBES0MgZGlzayB0eXBlcwoKaGFyZGFrZXIgIDQgTWFyIDk5IDE1OjQ1OjAyCiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgZXhhbXBsZS5jLCBzeXNPUlRhYmxlLmMsIGlwZndhY2MuYywKICAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB2bXN0YXQuYywKICAgICAgdm1zdGF0X2ZyZWVic2QyLmMpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIGhlYWRlcl9zaW1wbGVfdGFibGUgdG8gcmVwbGFjZSBjaGVja21pYigpLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjE0OjE2CiAgICAtIChSRUFETUUuc211eCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSB1cGRhdGUuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MjY6MjYKICAgIC0gKGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gZml4ZXMgZm9yIGR1cGxpY2F0ZSBkZWZpbmVzLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjMyOjE2CiAgICAtIChtaWIyYyk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjUwOjE2CiAgICAtICh1dGlsX2Z1bmNzLmMsIGR1bW15LmMsIGV4YW1wbGUuYywgd29tYmF0LmMsIHRjcC5jLCBocHV4LmMsCiAgICAgIG1lbW9yeS5jLCBhbGFybS5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBtaXNjIGZpeGVzLCAtV2FsbCBtb3N0bHkuCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6MDA6NTAKICAgIAogICAgKHN5c09SVGFibGUuYykgLSByZW1vdmUgc3RhdGljIHVfbG9uZyBsb25nX3JldHVybiwgZm9yIGNvbnNpc3RlbmN5LgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE3OjA3OjEwCiAgICAKICAgIChzb2xhcmlzLmgpIC0gdW5kbyBfU0xBU0hfUFJPQ19NRVRIT0RfIDogYW5vdGhlciB0aW1lCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6NTA6MjkKICAgIAogICAgUmVwbGFjZSB1c2VzIG9mIGJ6ZXJvIHdpdGggbWVtc2V0LCBiY29weSB3aXRoIG1lbWNweS4KICAgIEZpeCBwcm90b3R5cGVzLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE4OjExOjM3CiAgICAKICAgIChzbm1wX2FwaS5jKSAtIGV4cG9zZSBzbm1wX2ZyZWU7IHNubXBfcGR1X2FkZF92YXJpYWJsZSByZXR1cm5zIHB0ciB0byB2YXIgZm9yCiAgICBmdXR1cmUgaW1wcm92ZWQgZXJyb3IgcmVjb3ZlcnkuCgptc2xpZmNhayAgNSBNYXIgOTkgMDk6NDA6MTEKICAgIAogICAgRml4IFdpbjMyIHZlcnNpb24gb2YgZ2V0dGltZW9mZGF5IDogdHZfdXNlYyB3YXMgbWlsbGlzZWNzICwgcmV0dXJuIG5vdyA9IDAKCmhhcmRha2VyICA1IE1hciA5OSAxMDoxMToyOQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHRoZSB1c2Ugb2YgJ2hlYWRlcl9zaW1wbGVfdGFibGUnIHJhdGhlciB0aGFuICdjaGVja21pYicKICAgICAgLSBleHBsaWNpdCBjb21wYXJpc29uIHdpdGggTUFUQ0hfRkFJTEVECiAgICAgIC0gZG9uJ3Qgc2V0IGRlZmF1bHRzIGZvciAnd3JpdGVfbWV0aG9kJyBhbmQgJ3Zhcl9sZW4nCiAgICAJCShzaW5jZSBib3RoICdoZWFkZXJfZ2VuZXJpYycgYW5kICdjaGVja21pYicgZG8gdGhpcyBhbnl3YXkpCiAgICAgIC0gVXNlIGRlZmluZWQgY29uc3RhbnRzIGZvciB2YXJpYWJsZSBpbml0aWFsaXNhdGlvbiBpbiB0aGUKICAgIAkJd3JpdGUgcm91dGluZSAoc2ltaWxhcmx5IGluIHRoZSBtaWIyYy5jb25mIHBhdGNoKQogICAgICAgICAgW1RoaXMgaXMgb25lIG9mIG15IGhvYmJ5LWhvcnNlcyB3aXRoIG91ciBzdHVkZW50cywgc28gSSBkb24ndAogICAgCQkgc2VlIHdoeSAicHJvZmVzc2lvbmFsIiBwcm9ncmFtbWVycyBzaG91bGQgYmUgZXhlbXB0IV0KICAgIAogICAgICAtIE1ha2UgcHJvcGVyIHVzZSBvZiB0aGUgdGhyZWUtcGhhc2UgbmF0dXJlIG9mIFNFVHMKCmhhcmRha2VyICA1IE1hciA5OSAxMDoyMToyNQogICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZTogcmVhcnJhbmdpbmcgYW5kIGNsZWFuaW5nLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjQyOjQwCiAgICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHN3aXRjaCBDT01NSVQgYW5kIEFDVElPTiBwaGFzZXMuCgptc2xpZmNhayAgNSBNYXIgOTkgMTE6MDI6MzQKICAgIAogICAgKHRjcC5jKSAtIGJyZWFrIG91dCBvZiBpbmZpbml0ZSBsb29wIHdoZW4ga2xvb2t1cCBmYWlscy4KCmhhcmRha2VyICA1IE1hciA5OSAxNToxMzowMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmUgcGVyc2lzdGVudCBzdG9yYWdlIGluZm8sIHNpbmNlIGl0cyBub3QgdXNlZCB0aGlzIHJlbGVhc2UuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6MzE6NTIKICAgIC0gKHNubXBfaW1wbC5oKTogY3JlYXRlIFVORE8KCmhhcmRha2VyICA1IE1hciA5OSAxNTozODozMgogICAgLSAodGttaWIpOiB1cGRhdGUuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6NTc6MzYKICAgIC0gKGtlcm5lbF9zdW5vczUuYywgd29tYmF0LmMsIGhyX25ldHdvcmsuYywgc25tcF9taWIuaCwgc3lzdGVtX21pYi5oLAogICAgICBkaXNrLmgsIGVycm9ybWliLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLCBtZW1vcnlfc29sYXJpczIuaCwgcGFzcy5oLAogICAgICBwcm9jLmgsIHJlZ2lzdHJ5LmgsIHZlcnNpb25pbmZvLmgpOgogICAgICAtIC1XYWxsIGZpeGVzLCBtb3N0bHkgaW5pdF8oKSByb3V0aW5lcyBkZWNsYWlyZWQgaW4gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE2OjAyOjA2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwJ3MgbW9kdWxlIGxpc3QuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTY6MTA6MzAKICAgIC0gKHZtc3RhdC5oKTogZGVjbGFpciBpbml0X3Ztc3RhdCgpLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE3OjA4OjIxCiAgICAtIChGQVEpOiByZWZlcmVuY2UgQUdFTlQgZG9jdW1lbnQuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MTE6NDgKICAgIC0gKG1pYklJL3N5c3RlbS5oKTogcmVtb3ZlZAoKaGFyZGFrZXIgIDUgTWFyIDk5IDE3OjE5OjE0CiAgICAtIChGQVEsIE5FV1MpOiBmaW5hbCB1cGRhdGVzLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy41LjIgLT4gVjMuNS4zCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDI6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDc6MTcKICAgIC0gKHNubXBfYWdlbnQuYyk6IGlmIGEgbWliIG1vZHVsZSByZXR1cm5zIGFuIGVycm9yID4gU05NUF9HRU5fRVJSLAogICAgICB0cmFuc2xhdGUgdGhlIGVycm9yIHRvIFNOTVBfR0VOX0VSUiBmb3IgdjEgcmVxdWVzdHMuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTM6MTkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyNSBTZXAgOTggMTY6NTM6MzEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MDI6MzkKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcGVybCBlcSAtPiB0ZXN0ID0gKG9wcHMpLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjA4OjI1CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY2hlY2sgZm9yIGEgbnVsbCBuYW1lLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjQyOjEwCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHVzZSBhIG1lbXNldCB0byB6ZXJvIG91dCBuZXcgcG9pbnRlcnMgaW5zdGVhZCBvZiBkb2luZyBpdCBieSBoYW5kLgoKaGFyZGFrZXIgMjggU2VwIDk4IDEzOjA5OjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBkb24ndCB1c2UgYSAmIG9uIG9zZjMgZm9yIGFycGNvbS5hY19lbmFkZHIuCgpoYXJkYWtlciAyOCBTZXAgOTggMTM6MDk6NDUKICAgIC0gKHNubXBfYXBpLmMpOiB0eXBlY2FzdCB0aGUgZGVmYXVsdCBjb21tdW5pdHkgc3RyaW5nIHRvICh1X2NoYXIgKikuCgpoYXJkYWtlciAyOCBTZXAgOTggMTU6NDI6MjEKICAgIC0gKG1lbW9yeS5jKTogL2V0Yy9zd2FwaW5mbyAtPiAvdXNyL3NiaW4vc3dhcGluZm8gZm9yIGhwdXgxMC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMSAtPiBWMy41LjIKCmhhcmRha2VyICA4IFNlcCA5OCAwOToyNjoxMwogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyICA4IFNlcCA5OCAwOTozMzoyNQogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuMS4KCmhhcmRha2VyICA4IFNlcCA5OCAwOTozNTo1NQogICAgdmVyc2lvbiB0YWcgKCAzLjUuMSApCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NDU6MjQKICAgIC0gKE1ha2VmaWxlLmluKTogUHV0IGFuIEAgc2lnbiBpbiBmcm9udCBvZiB0aGUgbGFzdCBlY2hvIGxpbmUuCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NDY6MzUKICAgIC0gKG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9mcmVlYnNkMi5oKToKICAgICAgLSBDaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBVU0VEIC0+IEFWQUlMIHNpbmNlIHRoYXRzIHJlYWxseSB3aGF0CiAgICAgICAgd2UncmUgcmVwb3J0aW5nLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDA5OjUwOjIyCiAgICAtIChtZW1vcnkuYywgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5jLCBtZW1vcnlfZnJlZWJzZDIuaCk6CiAgICAgIC0gY29ycmVjdCB3b3JrIEkgc3R1cGlkbHkgbWFkZSB3aGVuIHRpcmVkLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDExOjAwOjQ0CiAgICAtIChORVdTKTogdXBkYXRlIGZvciAzLjUuMi4KCm1hcnogIDkgU2VwIDk4ICAxODozMTowMAogICAgLSAoc25tcHRyYXAuYywgc25tcHRlc3QuYyk6IGFkZCBTT0NLXyBtYWNyb3MgZm9yIHdpbjMyIHN1cHBvcnQKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkKQ2hhbmdlczogVjMuNSAtPiBWMy41LjEKCmhhcmRha2VyIDIyIEp1biA5OCAwOToxNjozMgogICAgLSAobWFpbi5jKTogUGF0Y2ggZnJvbSBKZXJyeSBHLiBEZUxhcHA6CiAgICAgIC0gY29tbWVudGVkIG91dCB0cmFpbGluZyAjZW5kaWYgY29tbWVudC4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDozMDoxOQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYW4tPmh0bWwgbWFrZSBzcGVjaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjA4OjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgICAtIG1pc2MgbWliIGZpeGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQyOjMyCiAgICAtIChkaXNrLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQ1OjE1CiAgICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBmb3IgbmV3IGRlZmluZXMgYW5kIHByb3BlciBoZWFkZXIgaW5jbHVkZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTU6MDM6MzgKICAgIC0gKGdlbmVyaWMuaCk6IHB1dCBpbiBhIGNvbW1lbnQgdG8ga2VlcCBjb21waWxlcnMgZnJvbSBjb21wbGFpbmluZyB0b28gbXVjaC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjoyNQogICAgLSAoZnJlZWJzZDIuaCk6IHVzZSBfVVRNUF9QQVRIIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjozNAogICAgLSAoaXJpeC5oKTogZGVmaW5lIF9LTUVNVVNFUgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI3OjEyCiAgICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICAgc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5kc3AsIHNubXBnZXQucGxnLAogICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgICBzbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsuZHNwLCBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZQogICAgICBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgdXBkYXRlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU4OjAzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGZpeCAibnVtYmVyIG9mIHJldHJpZXMiIGJ1Zy4KICAgICAgLSByZW1vdmUgb2RkIHRpbWVvdXQgY2FsY3VsYXRpb24gY29kZSBmb3IgcmV0cmllcyA+IDMuCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMjowNgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDM6MzYKICAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgZnJlZSBlbnYgcG9pbnRlcnMgdGhhdCBhcmUgY3JlYXRlZC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowODoxOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0Mzo1NgogICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIGZpeGVzLgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MzQKICAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjQxCiAgICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjIyCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6NDIKICAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjI4CiAgICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0Njo1NQogICAgLSAobWVtb3J5LmgpOiBNRU1TV0FQTUlOSU1VTSB3YXNuJ3QgYmVpbmcgdXNlZC4KCmhhcmRha2VyIDE3IEp1bCA5OCAxMzoxMToxMAogICAgLSAoVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDEzOjIyOjMyCiAgICAtIChSRkMtMTIxNS50eHQpOiBjcmVhdGVkIGFuIGVtcHR5IG1pYiBtb2R1bGUgZm9yIGltcG9ydGluZyBvZiBUUkFQLVRZUEUuCgpoYXJkYWtlciAxNyBKdWwgOTggMTY6NTk6NTEKICAgIC0gKCopOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgMjAgSnVsIDk4IDE3OjE0OjIxCiAgICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNTozNTowNwogICAgLSAobWliLmMpOiBkb24ndCBjaGFuZ2UgcnVubmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBzdHJ0b2suCgpoYXJkYWtlciAyMiBKdWwgOTggMTY6MjM6NDUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDA5OjI1OjMzCiAgICAtIChkaXNrLmMpOiBpbmNyZW1lbnQgaW5kZXggYnkgMSBzbyBpdCBkb2Vzbid0IHN0YXJ0IGF0IDAuCgpoYXJkYWtlciAyNCBKdWwgOTggMTA6MDI6MTQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB2YXJpb3VzIGRvY3VtZW5hdGlvbiB1cGRhdGVzIGFuZCBub3Rlcy4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDowMjoyNQogICAgLSAoc25tcHRyYW5zbGF0ZS4xKTogbnJvZmYgZXJyb3IuCgpoYXJkYWtlciAyNCBKdWwgOTggMTA6MjU6NDQKICAgIC0gKHNubXB0cmFwZC44KTogYnJvdWdodCB1cCB0byBkYXRlLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEyOjEwOjA3CiAgICAtIChzbm1wLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEyOjI0OjIyCiAgICAtIChhY2wuaCwgYXNuMS5oLCBtZDUuaCwgbWliLmgsIHBhcnNlLmgsIHNubXAuaCwgc25tcF9hcGkuaCwKICAgICAgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsIHZhY20uaCwgdmlldy5oKToKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9ucy4KCmhhcmRha2VyIDI5IEp1bCA5OCAxMzo0NDoyMgogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGluc3RhbGwgc2hvdWxkIGRvIGEgcmVhbCBtYWtlIGFsbCBmaXJzdC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1NzoxOAogICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiBmaXhlcyBmb3IgdjJwYXJ0IG1vZHVsZXMuCgpoYXJkYWtlciAxMiBBdWcgOTggMTU6NTc6NDIKICAgIC0gKGV4dGVuc2libGUuYywgcHJvYy5jKTogZml4aXQgcHJvYmxlbXMgd2l0aCBhcnJheSBpbmRleCB3cm9uZy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1Nzo1MgogICAgLSAobGlic25tcC5kZWYpOiBmaW5kX21vZHVsZSBhZGRlZC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjowNToyOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGxpYndyYXAgY29tbWFuZCBsaW5lIGZpeGVzLgogICAgICAtIC0td2l0aC1sZGZsYWdzIGNvbW1hbmQgbGluZSBvcHRpb24gY3JlYXRlZC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjo1NTozMgogICAgLSAobWliX2FwaS4zLCBzbm1wZC4xLmRlZiwgdmFyaWFibGVzLjUpOiB1cGRhdGVzIHRvIHJlbW92ZSBtaWIudHh0IHJlZmVyZW5jZXMuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6NTg6MTEKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gZG9uJ3QgaW5jbHVkZSBsaWJyYXJpZXMgdGhhdCBhcmVuJ3QgbmVlZGVkIGlmIGdldGhvc3RieW5hbWUgaXNuJ3QgaW4gb25lLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjU5OjUwCiAgICAtIChzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCB0aGUgRVJST1JfTVNHKCkgbWFjcm8gdG8gdXNlIHNubXBfc2V0X2RldGFpbC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODoyMTo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYyk6IHVzYWdlIGZpeGVzIGFuZCAtbS8tTSB0byBzbm1wdHJhbnNsYXRlLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQyOjQ5CiAgICAtIChhdXRvX25saXN0LmMpOiBmaXggZm9yIHN0dXBpZCBhaXgga2VybmVscy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDowNwogICAgLSAodWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogUGF0Y2ggZnJvbSBKb25hcyBPbHNzb246CiAgICAgIC0gbWFrZSB0aGUgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlIHdvcmsgdW5kZXIgZnJlZWJzZDIuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MDcKICAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjA3CiAgICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDoyOQogICAgLSAoUkVBRE1FKTogQWRkZWQgdHdvIG5ldyBuYW1lcyB0byB0aGUgdGhhbmt5b3UgbGlzdC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDozNwogICAgLSAoc2Vkc2NyaXB0LmluKTogY29ycmVjdCBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjUyCiAgICAtIChNYWtlZmlsZS5pbik6IENQUCBuZWVkcyB0byBjaGVjayBhZ2VudC9taWJncm91cCBmb3IgaGVhZGVycy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo1MjozMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGFkb3B0IHVua25vd24gY2hpbGRyZW4gaW50byB0aGUgY29ycmVjdCBwbGFjZSBpZiBJTVBPUlRTIGFyZSBzY3Jld2VkIHVwLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA5OjMyOjQ1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIEphbWVzIEguIFlvdW5nOgogICAgICAtIHVzYWdlIG91dHB1dCBjbGVhbiB1cC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAxMDoxMzoxMwogICAgLSAoQ09QWUlORyk6IGNvcHlyaWdodCBjaGFuZ2UuCgpoYXJkYWtlciAxNCBBdWcgOTggMTA6MTQ6MDYKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIE1hbGxvYyAtPiB4bWFsbG9jLgogICAgICAtIHBhcnNlciBjaGFuZ2VzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDEwOjE0OjU5CiAgICAtIChhdC5jKTogZml4ZXMgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjAzOjAyCiAgICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MzI6NDMKICAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6MjUKICAgIC0gKHNubXBfdmFycy5jKTogaW5fYV92aWV3KCk6IGNyZWF0ZSBuZXcgZnVuY3Rpb24sIGFuZCB1c2UgaXQuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6NTAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9pbXBsLmgpOiBmaXggcmVhZC93cml0ZSBjaGVja3MuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MDM6MDIKICAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzozMjo0MwogICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDoyNQogICAgLSAoc25tcF92YXJzLmMpOiBpbl9hX3ZpZXcoKTogY3JlYXRlIG5ldyBmdW5jdGlvbiwgYW5kIHVzZSBpdC4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDo1MAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2ltcGwuaCk6IGZpeCByZWFkL3dyaXRlIGNoZWNrcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjozNzowNAogICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogdXBkYXRlIGZvciAzLjUuMS4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjozNzoxNQogICAgdmVyc2lvbiB0YWcgKCAzLjUuMS5wcmUxICkKCmhhcmRha2VyICAyIFNlcCA5OCAxMDo1NTo1MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMsIHNubXAycC5jLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wZC5oLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywgc3lzdGVtLmgsCiAgICAgIHRjcC5jLCBzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaCwKICAgICAgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCBtaWJfYXBpLjMsIHNubXBfYXBpLjMsCiAgICAgIHNubXBkLjEuZGVmLCBmcmVlYnNkLmgsIGZyZWVic2QyLmgsIG5ldGJzZC5oLCBhc24xLmgsIG1pYi5jLAogICAgICBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGVzLCBhcyB1c3VhbCAod2hlbiBpcyBldmVyeWJvZHkgc3RhcnRpbmcgdG8gdXNlIC1XYWxsCiAgICAgICAgLVdzdHJpY3QtcHJvdG90eXBlcyAuLi4uKQogICAgICAtIHNubXBkIHNlbmQgYW4gZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwIHdoZW4gaXQgdGVybWluYXRlcwogICAgICAtIHBvc3NpYmlsaXR5IGZvciBzZW5kaW5nIHYyYyB0cmFwcyAob3IgaW5mb3JtcyksIHZpYSB0cmFwMnNpbmsgZGlyZWN0aXZlCiAgICAgIC0gZml4ZXMgdG8gc25tcGxpYiBhbmQgc25tcHRyYXBkIGZvciBidWdzIHVuY292ZXJlZCB3aGVuIHNubXBkIHNlbmRzCiAgICAgICAgYW4gSU5GT1JNIGluc3RlYWQgb2YgYSBUUkFQCiAgICAgIC0gLW0gYW5kIC1NIG9wdGlvbiBmb3Igc25tcHRyYXBkCiAgICAgIC0gLUQgb3B0aW9uIGZvciBzbm1wdHJhbnNsYXRlCiAgICAgIC0gZml4ZXMgdG8gY29uZmlndXJlIHRvIGNvcnJlY3RseSBjYWxsIEFMTCBtb2R1bGUgaW5pdCBmdW5jdGlvbnMKICAgICAgLSBtYWpvciByZXdvcmsgb2YgdGNwLmMsIGZvciBuZXRic2QuIEkgaG9wZSB0aGlzIGlzIE9LIG5vdywgSSBoYXZlbnQgaGFkCiAgICAgICAgdGltZSB0byB0ZXN0IGl0IG9uIGFsbCBwbGF0Zm9ybXMgeWV0IC0gYnV0IHRpbGwgZnJpZGF5IDotKQogICAgICAtIHNubXBuZXRzdGF0IHByaW50cyB1ZHAgc29ja2V0IHRhYmxlCiAgICAgIC0gc29tZSBDTVVfQ09NUEFUSUJMRSBzdHVmZgogICAgICAtIG1hbiBwYWdlIGZpeGVzLCB3aXRoIGFuIGluY2x1ZGUgbGlzdCB0aGF0IHdvcmtzIQoKaGFyZGFrZXIgIDIgU2VwIDk4IDEwOjU4OjEwCiAgICAtICh0Y3AuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAtICBDb21iaW5lIHRoZSB0d28gKGFsbW9zdCkgaWRlbnRpY2FsIG5vbi1zb2xhcmlzIGNhc2VzCiAgICAtICBBZGQgc3VwcG9ydCBmb3IgdGhlIG1pc3NpbmcgTGludXggZW50cmllcyAoSW5FcnJzL091dFJzdHMpCiAgICAtICBBZGQgc3VwcG9ydCBmb3IgdGhlIG1pc3NpbmcgU29sYXJpcyBlbnRyeSAoT3V0UnN0cykKCmhhcmRha2VyICAyIFNlcCA5OCAxMTowMzozMwogICAgLSAodGNwLmMpOiByZXZlcnNlIERhdmUncyBjaGFuZ2VzIHNpbmNlIHRoZXkgY29uZmxpY3Qgd2l0aCBOaWVscycuCgpoYXJkYWtlciAgMiBTZXAgOTggMTI6MTk6MDMKICAgIC0gKGV4dGVuc2libGUuYywgcHJvYy5jKTogdXNlIGNvcnJlY3QgbmFtZSBpbmRleCBmb3IgbG9va3VwcyBvbiB3cml0ZXMuCgpoYXJkYWtlciAgMiBTZXAgOTggMTI6MTk6MzMKICAgIC0gKHNubXBfYWdlbnQuYyk6IGNoZWNrIHRvIG1ha2Ugc3VyZSBvcGVyYXRpb24gaXMgbm90IGEgU0VUIHdoZW4KICAgICAgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUgc3VjaCBhcyBub1N1Y2hOYW1lLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE0OjA0OjQyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IGluY2x1ZGUgbW9kdWxlcyBub3QgcmVxdWVzdGVkIGV2ZW4KICAgICAgaWYgcmVxdWlyZWQgYnkgYW5vdGhlciBtb2R1bGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTQ6MTA6NTMKICAgIHZlcnNpb24gdGFnICggMy41LjEucHJlMiApCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDM6MzAKICAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCgpuYmEgIDMgU2VwIDk4IDE0OjI5OjAzCiAgICAtIChmaXhwcm9jKTogYWRkZWQgY29tbWVudCB0byB0ZXN0IENWUy4KCmhhcmRha2VyICA0IFNlcCA5OCAxMDowOTo0NwogICAgLSAoaW50ZXJmYWNlcy5jKTogZml4IGZvciBzZ2kncy4KCmhhcmRha2VyICA0IFNlcCA5OCAxNDoxNDoxOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gZml4IHRvIGFsbG93IG5vbi1zb3VyY2UgZGlyZWN0b3J5IGJ1aWxkcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDoxMDowNQogICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpZmRlZiByZS1vcmRlcmluZyBmaXhlcyBmb3IgYWxwaGEvbGludXguCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDc6MDAKICAgIC0gKHByb2MuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHNvbGFyaXMgMi42IGZpeGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ4OjA5CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBDYXRjaCBzdWJpZGVudGlmaWVyIGNvcnJlY3RseS4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0OTowOAogICAgLSAoYXNuMS5oKTogcmVtb3ZlIF9fUCgpIGRlZmluaXRpb24uCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDk6NTMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFsbG9jIGNvcnJlY3Rpb25zIGZvciBFTlYgdmFycy4uCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NTE6MjIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5pdF9taWJfaW50ZXJuYWwoKSBjYWxscy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1MzoxMQogICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBleGl0IC0+IHJldHVybiBvbiB3aW4zMiBzeXN0ZW0gcm91dGluZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NTU6NTEKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBOVUxMIHJldHVybiBieSBtYWxsb2MgcHJvdGVjdGVkLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjE3OjM2CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgZGVzY3JpcHRpb24gb2YgdGhlIHZpZXcgbWFzay4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjoyNzo0MgogICAgLSAobWVtb3J5X2ZyZWVic2QyLmgsIHZtc3RhdF9mcmVlYnNkMi5oKTogY3JlYXRlZCBmcm9tIG1lbW9yeS5oIGFuZCB2bXN0YXQuaAoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjoyNzo0MgogICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6NDc6MzcKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmggZm9yIHNubXBfZ2V0X2RvX2RlYnVnZ2luZygpLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjU0OjE2CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY2hlY2sgbWFsbG9jIGNhbGxzIG1vcmUgY2FyZWZ1bGx5LgogICAgICAtIG1pc2MgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEzOjE1OjI2CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgY29uZmlnLmggYXMgJChpbmNsdWRlZGlyKS91Y2Qtc25tcC1jb25maWcuaC4KCmhhcmRha2VyICA3IFNlcCA5OCAxMzoyMToxOAogICAgLSAobWVtb3J5LmMsIG1lbW9yeS5oKToKICAgICAgLSBNRU1VU0VEUkVBTCAtPiBNRU1BVkFJTFJFQUwgKHR5cGVkZWYgcmVuYW1pbmcgdG8gbWF0Y2ggZnVuY3Rpb25hbGl0eSkuCgpoYXJkYWtlciAgNyBTZXAgOTggMTQ6MDY6MjEKICAgIC0gKHRjcC5jKTogYmFjayBvdXQgTmllbHMnIGNoYW5nZXMgc2luY2UgdGhleSBicm9rZSBvdGhlciBhcmNoaXRlY3R1cmVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDE0OjE5OjI0CiAgICAtIChNYWtlZmlsZS5pbihzKSk6IG1ha2UgZGVwZW5kcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxNjozOTo1OQogICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jKTogNjRiaXQgbG9uZyByZXR1cm4gY2xlYW4gdXBzLgoKbWFyeiAgNyBTZXAgOTggMTk6MDE6MDEKICAgIHVwZGF0ZSBoZWFkZXJzIGZvciB3aW4zMiwgYWRkIHJldHVybiB0byBtYWluCgptYXJ6ICA3IFNlcCA5OCAxOTowMjowMQogICAgdXBkYXRlIGhlYWRlcnMgZm9yIHdpbjMyLCBhZGQgcmV0dXJuIHRvIG1haW4sZml4IHdpbjMyIGNvbXBpbGUgZXJyb3Igdy8gbm9uIGludGVncmFsc3dpdGNoIGNhc2UKCm1hcnogIDcgU2VwIDk4IDE5OjAzOjMzCiAgICB1cGRhdGUgaGVhZGVycyBmb3Igd2luMzIsIGFkZCByZXR1cm4gdG8gbWFpbiwgcmVzb2x2ZSBjb25mbGljdCB3LyBzdGQgbGliIGxvZyBmdW5jdGlvbgoKbWFyeiAgNyBTZXAgOTggMTk6MzA6MTEKICAgIHJlbmFtZSBhbmQgc3RhdGljIGxpbmsgZGVidWcgdGFyZ2V0cywgZGxsIHRvIGJpbiBkaXIsIGFkZGVkIHNubXB0ZXN0LCBzbm1wdHJhcCwgc25tcGRlbHRhIHByb2plY3RzCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wZGVsdGEuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXBkZWx0YS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRlc3QuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0ZXN0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdHJhcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRyYXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICByZW5hbWUgYW5kIHN0YXRpYyBsaW5rIGRlYnVnIHRhcmdldHMsIGRsbCB0byBiaW4gZGlyLCBhZGRlZCBzbm1wdGVzdCwgc25tcHRyYXAsIHNubXBkZWx0YSBwcm9qZWN0cwoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjI2OjEzCiAgICAtIChORVdTKTogdXBkYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNCAtPiBWMy41CgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6MjEKICAgIC0gKEZBUSk6IHVwZGF0ZSB0byBjaGFuZ2UgYSBmZXcgdGhpbmdzLgoKaGFyZGFrZXIgMjQgTWF5IDk4IDE1OjIyOjM4CiAgICAtIChORVdTKTogY2hhbmdlIHZhY20gbmV3cyB3b3JkaW5nLgoKaGFyZGFrZXIgMjQgTWF5IDk4IDE1OjIyOjU3CiAgICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG5ldGJzZCA8IDEuMy4KCmhhcmRha2VyIDI5IE1heSA5OCAxMDoxNDozMgogICAgLSAoYXQuYyk6IFBhdGNoIGZyb20gQ2hyaXMgU21pdGg6IGZpeCBmb3IgaXJpeC4KCmhhcmRha2VyIDI5IE1heSA5OCAxMDoyNDo1NAogICAgLSAoc25tcF9hcGkuYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4IGNvbW11bml0eSBuYW1lIGxlbmd0aCBwcm9ibGVtcyBhbmQgaW5jcmVhc2Ugc2l6ZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxMToyNjo0NwogICAgLSAoY29uZmlndXJlLmluKTogcGF0Y2ggZnJvbSBOaWVsczogaW5jbHVkZSBzeXMvc29ja2V0IGluIGlmX210dSB0ZXN0LgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjI3OjU5CiAgICAtIChjb25maWd1cmUpOiBtYWtlIG9mIGNvbmZpZ3VyZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxMTozNDo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBBZGQgYSBkZXBlbmRhbmN5IGxpbmUgZm9yIHNubXBfdmFycy5vIGZvciBhbGwgdGhlIG1vZHVsZSBpbmNsdWRlcy4KCmhhcmRha2VyIDI5IE1heSA5OCAxNToyMDo1MwogICAgLSAoVE9ETyk6IHdpblNOTVAgbWVudGlvbi4KCmhhcmRha2VyIDI5IE1heSA5OCAxNToyMToxMwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgYWJpbGl0eSB0byBzcGVjaWZ5IG1pYiBpbmZvcm1hdGlvbiBvbiB0aGUgY21kIGxpbmUuCgpoYXJkYWtlciAyOSBNYXkgOTggMTY6MjE6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBtb3ZlZCBtb3N0IG1pYmdyb3VwIHBpZWNlcyBpbnRvIHJlbGV2ZW50IHN1Yi1kaXJlY3Rvcmllcy4KICAgICAgICAtIGNoYW5nZWQgYWxsIGhlYWRlciBmaWxlIGFuZCAjaWZkZWYgVVNJTkdfKiBsaW5lcyB0byByZWZsZWN0IHRoaXMuCgpoYXJkYWtlciAyOSBNYXkgOTggMTY6MjE6NTEKICAgIC0gKHNubXBfaW1wbC5oKTogY2hhbmdlIHBkdSB2ZXJzaW9uIGZyb20gbG9uZyB0byBpbnQuCgpoYXJkYWtlciAzMSBNYXkgOTggMTc6NTU6NDUKICAgIC0gKGFzbjEuYywgYXNuMS5oLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCk6CiAgICAgIC0gaW1wbGVtZW50IHNwZWNpYWwgZGF0YSB0eXBlcyB2aWEgb3BhcXVlczogZmxvYXQsIGRvdWJsZSwgaW50NjQsIHVpbnQ2NHMuCgpoYXJkYWtlciAzMSBNYXkgOTggMTc6NTY6MDcKICAgIC0gKHNubXBzZXQuYyk6IGVuYWJsZSBzZXR0aW5nIG9mIG9wYXF1ZSBmbG9hdHMsIGRvdWJsZXMsIGludDY0cywgdWludDY0cy4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1Njo1NQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBtYWtlIGl0IHBvc3NpYmxlIG5vdCB0byB1c2Ugb3BhcXVlIHNwZWNpYWwgdHlwZXMgd2l0aCBuZXcgY21kIGxpbmUgZmxhZy4KCmhhcmRha2VyICAyIEp1biA5OCAxNDoyMzoxNQogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfbmV0d29yay5jLCBocl9vdGhlci5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaHJfdXRpbHMuYywgYXQuYywgaW50ZXJmYWNlcy5jLAogICAgICB2YXJfcm91dGUuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZnJlZWJzZDIuaCwgaHB1eC5oLCBsaW51eC5oLCBuZXRic2QuaCwKICAgICAgc29sYXJpcy5oLCBzeXN2LmgsIGFzbjEuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXV0aC5jLAogICAgICBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgICAtIG1ha2UgaG9zdCByZXNvdXJjZXMgd29yayB1bmRlciBOZXRCU0QsIEZyZWVCU0QsIFNvbGFyaXMgYW5kIExpbnV4LgogICAgICAgIC0gU3VuT1M0IGFsbW9zdCB3b3Jrcy4KICAgICAgLSBBZGQgLXMvLVMgdG8gY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHByaW50aW5nIG9mIHNob3J0ZXIgb2lkcy4KICAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTE6MTAKICAgIC0gKHNtdXguYywgc211eC5oLCBzbXV4X2dhdGVkLmgsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLAogICAgICBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywKICAgICAgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOgogICAgICAtIG1vdmVkIHNtdXggc3R1ZmYgaW50byBhIHNtdXggc3ViLWRpcmVjdG9yeS4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1ODoxNQogICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gbW92ZWQgaXBmd2FjYyB0byB1Y2RhdmlzLjEzIGFuZCByZW1vdmVkIF5NcyBhbmQgc29tZSBibGFuayBsaW5lcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1ODo0NAogICAgLSAoSU5TVEFMTCk6IG1lbnRpb24gaXBmd2FjYwoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjU5CiAgICAtIChSRUFETUUpOiBtZW50aW9uIENyaXN0aWFuIEVzdGFuIGluIHRoZSBjb2RlcnMgbGlzdC4KCmhhcmRha2VyICAzIEp1biA5OCAxMTowNjo0NwogICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgpOiBQYXRjaCBmcm9tIEV1Z2VuZSBQb2xvdm5pa292OgogICAgICAtIGltcGxlbWVudCBhIGR5bmFtaWMgbG9hZGluZyBtb2R1bGUgZm9yIGxvYWRpbmcgc2hhcmVkIG9iamVjdCBtaWIgbW9kdWxlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMToxMDo0OAogICAgLSAoUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlLmMsCiAgICAgIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKToKICAgICAgLSBtb3ZlZCB3b21iYXQgYW5kIGV4YW1wbGUgdG8gZXhhbXBsZXMvIGRpcmVjdG9yeS4KCmhhcmRha2VyICAzIEp1biA5OCAxMToyNzoyNwogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogaW5jbHVkZSBtaWJJSS9zbm1wX21pYi5oLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjI5OjA0CiAgICAtIChtaWIuYyk6IG1pc3NlZCBhIG5lZWRlZCBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBpZmRlZi4KCmhhcmRha2VyICAzIEp1biA5OCAxMjoxNzowMAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgICAtIGZpeCBwZHUtPnZlcnNpb25zIHRvIGJlIGFsbCBpbnRzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjM5OjEyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IE5ldyBmbGFnczoKICAgICAgLSAtLXdpdGgtY2M9Q0MKICAgICAgLSAtLXdpdGgtY2ZsYWdzPUNGTEFHUwoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjQzOjQ3CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXB0cmFwZC5jKToKICAgICAgLSBjaGVjayBmb3IgZ2V0ZHRhYmxlc2l6ZSBhbmQgdXNlIGEgZ2VuZXJpYyBpZiBub3QgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjUyOjI4CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGZyZWVic2QyLmgpOgogICAgICAtIG1vdmUgY29uZmlndXJhYmxlIGRlZmluZXMgdG8gY29uZmlndXJlIHJhdGhlciB0aGFuIGluIGZyZWVic2QyLmguCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NTU6NDAKICAgIC0gKGkzODYuaCwgaTU4Ni5oLCBpNjg2LmgpOiByZW1vdmVkIHRoZXNlICh1bnVzZWQpIGhlYWRlcnMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MDI6MzQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IG5ldyAtLXdpdGgtY2MgYW5kIC0td2l0aC1jZmxhZ3MgYXJndW1lbnRzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjIxOjEwCiAgICAtIChocl9kaXNrLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgc25tcHNldC5jLCBhc24xLmgsCiAgICAgIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAgLSAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxNDoyMzoxNAogICAgLSAoTWFrZWZpbGUuaW4ncyk6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjI0OjU4CiAgICAtIChNYWtlZmlsZS5pbik6IHJlYWRfY29uZmlnLm8gaXMgbWlibW9kdWxlIGhlYWRlciBkZXBlbmRhbnQgdG9vLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjI2OjEwCiAgICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUxICkKCmhhcmRha2VyICA1IEp1biA5OCAxMDo1MjoxMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRlc3QgZm9yIHNldGVudi4KCmhhcmRha2VyICA1IEp1biA5OCAxMDo1Mjo0MAogICAgLSAobWFrZXRhcmdldCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc3VwcG9ydCBmb3IgbGFyZ2VyIHRyZWUgZGVwdGhzLgoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjU0OjMxCiAgICAtIChhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIE1JQl9BQ0NFU1MgZGVmaW5lIGNoYW5nZXMuCiAgICAgIC0gc2V0ZW52IGltcGxlbWVudGF0aW9uLgogICAgICAtIGlmZGVmIHdyYXBwZXJzIGZvciBPUEFRVUVfU1BFQ0lBTF9UWVBFUy4KCmhhcmRha2VyICA4IEp1biA5OCAxMDo1MDoxMgogICAgLSAoRkFRKTogdXJsIHR5cGUgc3BsaXR0aW5nLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEyOjM0OjA5CiAgICAtIChNYWtlZmlsZS5pbik6IGNyZWF0ZSBhIC5jIC0+IC5vIHJ1bGUgdG8gbWFrZSBzdXJlIGFuZCBwbGFjZSB0aGUKICAgICAgb2JqZWN0IGZpbGVzIGluIHRoZSBhcHByb3ByaWF0ZSBzdWJkaXJlY3Rvcmllcy4KCmhhcmRha2VyICA4IEp1biA5OCAxMzo1OTowOAogICAgLSAoUkVBRE1FKTogQWRkZWQgRXVnZW5lJ3MgbmFtZS4KCmhhcmRha2VyICA4IEp1biA5OCAxMzo1OToyNQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSByZmMgIyBmb3IgdmFjbSByZWZlcmVuY2UuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6MTI6MzcKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHJlbW92ZSBtb3JlIGNvbmZpZyBjcmVhdGVkIGhlYWRlcnMgb24gbWFrZSBjb25maWdjbGVhbi4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoxNjoyNgogICAgLSAobGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IHczMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6MjI6NTAKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaAogICAgIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBhc3luYyBzdHVmZiBhZGRlZC4KICAgICAgLSBnZXRfdGMgYWRkZWQuCiAgICAgIC0gYmV0dGVyIGNvbW1lbnRzIGluIHNvbWUgcGxhY2VzLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjU1OjUzCiAgICAtIChzbm1wX2FwaS5jKTogdW5kaWQgcmVkbyBvZiBjb21tZW50IG9mIGdldHRpbWVvZmRheSgpLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDA3OjExOjQ0CiAgICAtIChjb25maWcuaC5pbik6IGhhdmVfc2V0ZW52LgoKaGFyZGFrZXIgMTAgSnVuIDk4IDA4OjUzOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtICBzdGFydHMgdG8gc2VwYXJhdGUgb3V0IHRoZSBoaXN0b3JpYyBTTk1QdjIgc3R1ZmYuCiAgICAgIC0gIGRvZXMgYSBiaXQgb2YgJ2NvZGUgdGlkeWluZycuCiAgICAgIC0gIHN0YXJ0cyB0byBtb3ZlIHRvd2FyZHMgcG9ydC1zcGVjaWZpYyBoYW5kbGVycy4KCmhhcmRha2VyIDEwIEp1biA5OCAxNDoxNTo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMiApCgpoYXJkYWtlciAxMCBKdW4gOTggMTU6MzA6NTkKICAgIC0gKFRPRE8pOiBhZGRlZCBEYXZlJ3MgbGlzdC4KCmhhcmRha2VyIDEwIEp1biA5OCAxNTozMToxMgogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyIDEwIEp1biA5OCAxNTo0Nzo1OQogICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiAtV2FsbCBjbGVhbnVwcy4KCmhhcmRha2VyIDEyIEp1biA5OCAwODo1MjoyOAogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB1cGRhdGUgZm9yIFZBQ00gc3R1ZmYuCgpoYXJkYWtlciAxMiBKdW4gOTggMTA6MTI6MjcKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBzaG93IHZhY20gZXhhbXBsZSBmb3IgcHVibGljL3ByaXZhdGUgZnJvbSBhbnl3aGVyZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMDoxMjo0MAogICAgLSAoTkVXUyk6IG1pbm9yIHVwZGF0ZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzoxMgogICAgLSAoc25tcF9hcGkuYyk6IHRyYXAgdHlwZXMgd2VyZSBpbnQncyBub3QgbG9uZ3MgKGZhaWxlZCB1bmRlciA2NGJpdCBhcmNoKS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzoyNwogICAgLSAocGFyc2UuYyk6IGZ1bmN0aW9uIG5hbWUgdHlwby4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzozOQogICAgLSAod2luMzIvY29uZmlnLmgpOiBkb24ndCBoYXZlIHNldGVudi4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzo1NwogICAgLSAobGlic25tcC5kZWYpOiBhZGQgc2V0ZW52IHRvIHRoZSBsaXN0LgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjQzOjQxCiAgICAtIChORVdTKTogNjRiaXQgZml4IG1lbnRpb25lZC4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzo0ODoyMQogICAgLSAoa2VybmVsLmMpOiBkb24ndCBwcmludCBrbHJlYWQgZXJyb3JzIHVubGVzcyBpbiBkZWJ1Z2dpbmcgbW9kZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxNToxNzo0NwogICAgLSAoaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIGEgdWNkRXhwZXJpbWVudGFsIHNlY3Rpb24gZm9yIHRoZSBpcGZ3YWNjIG1pYiB0aWxsCiAgICAgICAgaXQgc3RhYmlsaXplcy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODowODoyMwogICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG1pc2MgdHlwZSBmaXhlcy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODowODo1OAogICAgLSAoc25tcGRlbHRhLmMpOiB1c2FnZSgpIHVwZGF0ZS4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMDowMgogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsCiAgICAgIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgICAgc25tcHdhbGsuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jdW1lbnRhdGlvbiBjbGVhbnVwIGFuZCBjZW50cmFsaXphdGlvbiBvZiBjb21tb24gb3B0aW9ucy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMDo1NAogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiY29weSAtPiBtZW1jcHkuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MTE6MjIKICAgIC0gKG1pYi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSByZW1vdmUgMm5kIGluaXRfbWliKCkgcHJvdG90eXBlLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjIxOjUzCiAgICAtIChSRUFETUUsIEFkZE1vZHVsZUZvckR1bW1pZXMudHh0LCBEVU1NWS1NSUIudHh0LCBkdW1teS5jLCBkdW1teS5oKToKICAgICAgUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgICAtIG1pYiBtb2R1bGUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZSBmb3IgZHVtbWllcy4KCmhhcmRha2VyIDE3IEp1biA5OCAxNToyNzoxMwogICAgLSAoUkVBRE1FKTogbWVudGlvbiBkdW1teSBncm91cC4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo0MTowMAogICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQ6IG5vdCBmb3VuZCBtb2R1bGVzIHdpdGggY29uZmlndXJlPy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo0NjozMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIEJTREkgdXNlcnMgYWdhaW5zdCAvdXNyL3VjYi9jYy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo1ODowNQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgIC0gZXhhbXBsZSBvdXRwdXQgY29ycmVjdGlvbnMuCgpoYXJkYWtlciAxOSBKdW4gOTggMDg6NTk6NTMKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAgLSBpbnN0YWxsIElQRldBQ0MgbWliLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEyOjAzOjQ4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpeCByZWdpc3Rlcl9taWIoKSB0byBpbml0IHBvaW50ZXJzIHRvIG51bGwuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6NTA6NTUKICAgIC0gKHV0aWxfZnVuY3MuYyk6IGZpeCBjaGVja21pYigpIGluIGNhc2Ugd2UgZ2V0IGNhbGxlZCBvbiBhIGdldCB3aGVuCiAgICAgIHdlIHJlYWxseSBzaG91bGRuJ3QgKGJhZCBhcnRpZmFjdCBvZiBuZXcgdHJlZSBzdHJ1Y3R1cmUpLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEyOjUzOjIyCiAgICAtIChzbm1wX3ZhcnMuYyk6IG1lbXNldCB0byAwIHRoZSBlbnRpcmUgc3VidHJlZSBzdHJ1Y3QuCgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MDE6NDcKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MTI6NTUKICAgIC0gKE5FV1MpOiBMYXN0IHVwZGF0ZSBmb3IgMy41LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMyAtPiBWMy40CgpoYXJkYWtlciAgMSBEZWMgOTcgMTI6NDQ6MjQKICAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCgpoYXJkYWtlciAgNSBEZWMgOTcgMDg6NDY6NTAKICAgIC0gKHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG1ha2UgdHJhcCB2YXJpYWJsZXMgbG9uZydzIG5vdCBpbnRzIGZvciA2NGJpdCBtYWNoaW5lcyB0byBtYXRjaAogICAgICAgIGFzbl9idWlsZF9pbnQgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDUgRGVjIDk3IDExOjU4OjUyCiAgICAtIChhcHBzLyouYyk6IHN1cHBvcnQgcmFuZG9tIGFjY2VzcyByZXF1ZXN0cyBvbiBhbGwgYXBwcyB2aWEgLVIgc3dpdGNoLgoKaGFyZGFrZXIgIDUgRGVjIDk3IDE0OjMwOjA2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gaW5zdGVhZCBvZiBlcnJvciBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm8ncy4KCmhhcmRha2VyIDE1IERlYyA5NyAxMTowODowMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBuZXcgbWFjcm8gdG8gY2hhbmdlIGRlZmF1bHQgTUlCUyB3aGVuIG1vZHVsZXMgYXJlIGNvbXBpbGVkOgogICAgICAgIGNvbmZpZ19hZGRfbWliKCkuCgpoYXJkYWtlciAxNSBEZWMgOTcgMTE6MDg6MTkKICAgIC0gKGhvc3QuaCwgdWNkX3NubXAuaCwgdjJwYXJ0eS5oKToKICAgICAgLSB1c2UgY29uZmlnX2FkZF9taWIoKS4KCmhhcmRha2VyIDE1IERlYyA5NyAxMToxNDoxOAogICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jLCBjb21tb25faGVhZGVyLmgpOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuIHRvIGltcHJvdmUgaXJpeCA2LjIgc3VwcG9ydC4KCmhhcmRha2VyIDE1IERlYyA5NyAxNTowNzoyNgogICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4pOiBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KCmhhcmRha2VyIDE1IERlYyA5NyAxNTowNzo1OQogICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBhY2NvbmZpZy5oKToKICAgICAgLSBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMToyMDowNAogICAgLSAoaHJfc3dydW4uYyk6IENvcnJlY3QgYSBub24tY2FzdGVkIG1hbGxvYy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTozMzo1OQogICAgLSAoaHJfZmlsZXN5cy5jKTogU29sYXJpcyBzcGVjaWZpYyBmaXhlcy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTozNToyNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbik6IEJTREkgZGVmaW5pdGlvbiBmaXhlcy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MTo0OQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDI6MjgKICAgIC0gKG1pYmdyb3VwLyouYywgY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDI6MzkKICAgIC0gKHNubXB0cmFwLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0Mjo1NAogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQ2OjA4CiAgICAtIChocHV4LmMpOiAjaWZkZWYnZWQgb3V0IHVudXNlZCB3cml0ZUhQIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDEyOjMyOjIxCiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgIC0gVXNlIHN5c2xvZyBvcHRpb24gTE9HX1BJRCBvbiBzdGFydHVwLgogICAgICAtIGZvcmsgaWYgc3lzbG9nIGVuYWJsZWQuCiAgICAgIC0gRW5hYmxlIGxvZ2dpbmcgdG8gb3RoZXIgc3lzbG9nIGZhY2lsaXRpZXMuCiAgICAgIC0gcHJpbnQgYWxsIHRyYXAgZGF0YSB0byBhIHNpbmdsZSBzeXNsb2cgbGluZS4KCmhhcmRha2VyIDIzIERlYyA5NyAxMjo0ODozMQogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIENoYW5nZSAtZiBmbGFnIHRvIC1sIGFuZCBtYWtlIC1mIG5vLWZvcmsuCiAgICAgIC0gZml4IHBhdGNoIHdoaWNoIG11bmdlZCBhYmlsaXR5IHRvIGdlbmVyYXRlIGJvdGggLVAgYW5kIC1zIHNpbXVsdGFuZW91c2x5LgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQwOjM2CiAgICAtIChSRUFETUUpOiBBZGQgVGVkIFJ1bGUgdG8gY29kZXJzIGxpc3QuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDI6NDcKICAgIC0gKCopOiBUdXJuIGFsbCBkZWJ1Z2dpbmcgcm91dGluZXMgaW50byBsaWJyYXJ5IGNhbGxzIHRoYXQgY2FuIGJlCiAgICAgIHR1cm5lZCBvbiBhbmQgb2ZmIGF0IHJ1biB0aW1lLgogICAgICAtIERFQlVHUCgpIGlzIG5vdyBhIHR5cGljYWwgcHJpbnRmIHN0eWxlIGZ1bmN0aW9uIGFuZCBpcyB1c2VkIGV2ZXJ5d2hlcmUuCiAgICAgIC0gdm9pZCBzbm1wX3NldF9kb19kZWJ1Z2dpbmcoaW50KS4KICAgICAgLSBpbnQgc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDQ6MzgKICAgIC0gKHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuOCk6IGRlYnVnZ2luZyBmbGFnIGFkZGl0aW9ucy4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0NzowOAogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMpOgogICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gYnJlYWsgdXAgY29tbW9uX2hlYWRlci5oLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjI3OjU0CiAgICAtIChhdC5jLCBhdC5oLCBob3N0X3Jlcy5oLCBpY21wLmgsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5oLAogICAgICB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaCwgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgICAtIGNsZWFuIHVwIHJlcXVpcmVkIGhlYWRlcnMgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjU2OjE4CiAgICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQKICAgICAgaWYgZGVidWdnaW5nIGlzIG9uIG9yIG9mZi4KCmhhcmRha2VyIDIzIERlYyA5NyAxNTo1OTowMwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0IGlmIGRlYnVnZ2luZwogICAgICBpcyBvbiBvciBvZmYuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTY6MzA6NDcKICAgIHZlcnNpb24gdGFnICggMy40LnByZTEgKQoKaGFyZGFrZXIgMjkgRGVjIDk3IDA5OjM3OjA2CiAgICAtICh0a21pYik6IEZpcnN0IGltcGxlbWVudGF0aW9uLgoKaGFyZGFrZXIgMzAgRGVjIDk3IDE0OjAwOjAzCiAgICAtICh0a21pYik6CiAgICAgIC0gbmV3IGNvbW1hbmQ6IHRhYmxlIHRvIGRpc3BsYXkgc25tcHRhYmxlcyBhcyBhIHRhYmxlLgogICAgICAtIG1pc2MuLi4KCmhhcmRha2VyIDMwIERlYyA5NyAxNzowMTo1NwogICAgLSAodGttaWIpOiBDcmVhdGUgYSBncmFwaGluZyB3aWRnZXQuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjc6MzgKICAgIC0gKG1pYl9hcGkuMyk6IGNoYW5nZSAiYWxsIiB0byAiQUxMIi4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODowMAogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBhZGQgYSBmaW5kX21vZHVsZSgpIHJvdXRpbmUuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjg6MjIKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHB1dCBpbml0X21pYiBiYWNrIGluIHBsYWNlIChvcHBzKS4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODo0MgogICAgLSAoVE9ETyk6IHNubXB2MwoKaGFyZGFrZXIgIDUgSmFuIDk4IDE2OjI5OjM5CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBhc24xX2J1aWxkX29iamlkLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDE3OjMzOjA3CiAgICAtIChwYXJzZS5jKTogc3dhcCBhcmdzIHRvIG1lcmdlX2Fub25fY2hpbGRyZW4oKS4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxNDo1NAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBmaXggYW5vbl9jaGlsZHJlbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTg6NTAKICAgIC0gKG1pYl9hcGkuMywgc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jIHVwZGF0ZSB0byByZWZsZWN0IG1vdmVkIGhlYWRlcnMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTk6MTAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogbGluayBkaXJlY3RseSB0byBsaWIuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTk6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcmVtb3ZlIHVudXNlZCBoZWFkZXJzLgogICAgICAtIHNubXBfcGVycm9yIGNoYW5nZXMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MjE6NTYKICAgIC0gKGFsYXJtLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLCBocl9kZXZpY2UuYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaWNtcC5jLAogICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBoZWFkZXJzIGZvciBGcmVlQlNEIGFuZCBOZXRCU0QuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDA6MzYKICAgIC0gKEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIERvY3VtZW50YXRpb24gdXBkYXRlIHRvIGZpeCBwYXRocyBmcm9tIHJlY2VudCBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjQxOjM4CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIGZpeGVzLgogICAgICAtIHNubXBfcGVycm9yIHVzYWdlLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjQ0OjUxCiAgICAtIChhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzCiAgICAgIEJhZ2dlc2VuOgogICAgICAtIGhlYWRlciBjaGFuZ2VzIGFuZCBib29sZWFuIGNoZWNrIGNvcnJlY3Rpb25zLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjUxOjI3CiAgICAtIChwYXJzZS5jKTogVW5kaWQgYW5vbi1jaGlsZHJlbiBjaGFuZ2UuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NTY6MTQKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW5jcmVhc2UgYnVmZmVyIHNpemUgdG8gaW5jcmVhc2UgbWF4IGludGVyZmFjZXMgcmVwb3J0ZWQgb24gU29sYXJpcy4KCmhhcmRha2VyIDE2IEphbiA5OCAwOTo0NDo1NgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gU2hlc2hhZHJpIFlhZ2F0aToKICAgICAgLSBzaWduYWwgYSB0cmFwICgyKSB3aGVuIHRoZSBhZ2VudCBpcyBzaHV0IGRvd24uCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MDg6MzkKICAgIC0gKENPUFlJTkcpOiB1cGRhdGUuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MDEKICAgIC0gKCovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgICAgY29uZmlndXJlLmluKToKICAgICAgLSBiZWdpbiBzdXBwb3J0IGZvciBjcmVhdGluZyBhbmQgdXNpbmcgc2hhcmVkIGxpYnJhcmllcy4KICAgICAgLSBhbGwgTWFrZWZpbGVzIG5vdyBpbmNsdWRlIGEgTWFrZWZpbGUudG9wIGZvciBlYXNpZXIgZnV0dXJlIGdsb2JhbCBjaGFuZ2VzLgoKaGFyZGFrZXIgMjEgSmFuIDk4IDExOjEyOjIyCiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MzQKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywKICAgICAgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICAgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgoKaGFyZGFrZXIgMjEgSmFuIDk4IDE3OjMzOjI0CiAgICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAqL01ha2VmaWxlLmluKToKICAgICAgLSBEbyBhIGJldHRlciB2ZXJzaW9uIG9mIHNobGliIHN1cHBvcnQuICBTaG91bGQgYmUgdXNlYWJsZSBub3cgYXQgbGVhc3QuCgpoYXJkYWtlciAyMSBKYW4gOTggMjI6MDU6NDQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY3JlYXRlIG0vIGFuZCBzLyBkaXJlY3RvcmllcyBhbmQgdXNlIHRoZW0gZm9yIHN1cHBsZW1lbnRhbCBjb25maWcKICAgICAgICBpbmNsdWRlIGZpbGVzIGJhc2VkIG9uIHRoZSBjb25maWcuZ3Vlc3Mgb3V0cHV0LgoKaGFyZGFrZXIgMjMgSmFuIDk4IDA4OjMwOjM1CiAgICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9uJ3QgY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGluIGxpbnV4J3MgRklMRV9UT19CVUYgbWFjcm8uCgpoYXJkYWtlciAyMyBKYW4gOTggMTE6MTk6MTIKICAgIC0gKGdlbmVyaWMuaCwgaTM4Ni5oLCBpNTg2LmgsIGk2ODYuaCk6IG0vKi5oIGZpbGUgYmVnaW5uaW5ncy4KCmhhcmRha2VyIDIzIEphbiA5OCAxMToxOTozMwogICAgLSAoYnNkLmgsIGdlbmVyaWMuaCwgbGludXguaCwgc3lzdi5oKTogcy8qIGJlZ2lubmluZ3MuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTI6MDIKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMpOgogICAgICAtIGNyZWF0ZSBuZXcgZnVuY3Rpb25zOgogICAgICAgIC0gcmVnaXN0ZXJfc3VidHJlZSgpCiAgICAgICAgLSByZWdpc3Rlcl9taWIoKQogICAgICAgIC0gdW5yZWdpc3Rlcl9taWIoKS4KICAgICAgLSBnZXQgcmlkIG9mIHJlYWRfY29uZmlnIHNwZWNpYWwgc3R1ZmYgZm9yIGV4dGVuc2liaWxpdHkgYW5kIHB1dCBpdAogICAgICAgIGluIHRoZWlyIG93biBzdWJtb2R1bGVzIHdoaWNoIG5vdyBjYWxsIHJlZ2lzdGVyX21pYigpLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjE0OjIwCiAgICAtIChyZWdpc3RyeS5bY2hdLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGUgYSBuZXcgdGFibGUgYXQgdWNkYXZpcy4xMDMgdG8gZGlzcGxheSByZWdpc3RlcmVkIG1pYnMuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTU6MDUKICAgIC0gKGF0LmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfb3RoZXIuaCwgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwgdWRwLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtICNpbmNsdWRlICJzbm1wX2FwaS5oIgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjM0OjQzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgsCiAgICAgIGV4dGVuc2libGUuYywgcGFzcy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtYWtlIHRoZSBtaWIgcmVnaXN0cnkgcmVjb3JkIGFuZCBkaXNwbGF5IGEgbWliIG1vZHVsZSBuYW1lIGFzIHdlbGwuCgpoYXJkYWtlciAzMCBKYW4gOTggMDg6NTc6NTQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdGVzdCBmb3IgJ3BzIGF1eCcgKHJlZGhhdCA1LjApLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDA5OjAxOjA2CiAgICAtIChVQ0QtU05NUC1NSUIudHh0LCBtZW1vcnkuYywgbWVtb3J5LmgpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAgLSByZXBvcnQgY2FjaGVkLCBidWZmZXIsIGFuZCBzaGFyZWQgc3RhdGlzdGljcyBmb3IgbGludXguCgpoYXJkYWtlciAzMCBKYW4gOTggMDk6MjQ6MTkKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCB2YXJfc3RydWN0LmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIG5ldyBzdWJ0cmVlIHN0cnVjdHVyZSBzeXN0ZW0uCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDA6MjYKICAgIC0gKHBhc3MuYyk6IHB1dCBwYXNzX2NvbWFwcmUgaGVyZS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MTo1MwogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgpOgogICAgICAtIG1lcmdlIERhdmUncyBjb2RlIHdpdGggbWluZS4gIFN0aWxsIGEgZmV3IGJ1Z3MgdG8gd29yayB0aHJvdWdoLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQyOjE3CiAgICAtIChyZWdpc3RyeS5jLCByZWdpc3RyeS5oKTogYmVnaW4gbXVuZ2luZyBmb3IgbmV3IGhpZXJhcmNoeS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MzoyOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZSBtb2R1bGUgaW5kZXhpbmcgdG8gdXNlIG9pZCBpbnN0ZWFkIG9mIGEgbnVtZXJpYy4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0OTo1OQogICAgLSAoZGlzay5jLCBob3N0X3Jlcy5oLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLAogICAgICB2ZXJzaW9uaW5mby5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBmb3IgYWRkcmVzcyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NTU6MjAKICAgIHZlcnNpb24gdGFnICggMy40LnByZTIgKQoKaGFyZGFrZXIgMzAgSmFuIDk4IDEzOjQ5OjU2CiAgICAtIChSRUFETUUpOiBJIGNhbid0IHJlYWxseSBoYXZlIGZvcmdvdHRlbiBTaW1vbidzIG5hbWUgaW4gdGhlIGxpc3QKICAgICAgY291bGQgST8KCmhhcmRha2VyIDMwIEphbiA5OCAxMzo1MDoyOAogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlndXJlKTogZGVmaW5lIGlmbmV0IGZvciBsaW51eC4KCmhhcmRha2VyIDMwIEphbiA5OCAxNDozMTo1OAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlmX3NwZWVkLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE0OjMyOjEzCiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaW5pc2ggbGludXggcHJvYmxlbXMgYW5kIHVzZSBpZl9zcGVlZC4KCmhhcmRha2VyIDMwIEphbiA5OCAxNToyNTowMgogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMpOiBmaXggZGVmYXVsdCBwb3J0IGZvciBzbm1wdHJhcC4KCmhhcmRha2VyICAyIEZlYiA5OCAwODo1Nzo0MQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gSGF3a2luc29uOgogICAgICAtIGZpeCB0eXBvIGluIGNvbmZpZ3VyZSBmb3Igc2hhcmVkIGxpYnJhcnkgZXh0ZW5zaW9uIHcvbyBzaGFyZWQgbGlicmFyaWVzLgoKaGFyZGFrZXIgIDYgRmViIDk4IDEzOjI5OjQwCiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKTogcHJvdGVjdCBhZ2FpbnN0IG5saXN0LmgKCmhhcmRha2VyICA2IEZlYiA5OCAxMzo0NDo0NAogICAgLSAoaHJfZGlzay5jKTogY2xvc2UoKSBnb3QgY2F1Z2h0IGluc2lkZSBhbiBlbHNlIGl0IHNob3VsZG4ndCBoYXZlIGR1ZQogICAgICB0byBhbiBpZmRlZiBlcnJvci4KCmhhcmRha2VyICA2IEZlYiA5OCAxNzoxMDo1MwogICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGF1dG9ubGlzdC5oLCBrZXJuZWwuYywgc25tcF92YXJzLmMsIGlwLmMpOgogICAgICAtIGNyZWF0ZWQgYSBuZXcgYXV0b19ubGlzdCBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIGlwLmMuCgpoYXJkYWtlciAgNiBGZWIgOTggMTc6MTE6MjUKICAgIC0gKGdlbmVyaWMuaCwgaHB1eC5oLCBpcml4LmgsIGxpbnV4LmgsIHNvbGFyaXMuaCk6CiAgICAgIC0gdXBkYXRlIGZvciBhdXRvX25saXN0IHN5bWJvbHMuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDM6MDIKICAgIC0gKGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywKICAgICAgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIGtlcm5lbF9zdW5vczUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jKToKICAgICAgLSB1c2UgYXV0b19ubGlzdC4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzoxNwogICAgLSAoYXV0b19ubGlzdC5oKTogcHJvdG90eXBlIHdyYXBwZXIuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDM6NTYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGFuZ2VkIC0td2l0aC1zaGFyZWQtbGlicmFyaWVzIHRvIC0tZW5hYmxlLXNoYXJlZCB0byBtYXRjaCBvdGhlciBwa2dzLgogICAgICAtIGRpc3BsYXkgYXJndW1lbnRzIGZvdW5kIGZvciAtLWVuYWJsZS1zaGFyZWQuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDQ6MzEKICAgIC0gKGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwgZnJlZWJzZDMuaCwgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oLAogICAgICBzb2xhcmlzLmgpOgogICAgICAtIGRlZmluZSBzeW1ib2xzIGZvciBhdXRvX25saXN0IHRvIHVzZS4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowNjo1MwogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGZpeCBwcm90b3R5cGVzIG9uIG15IGJyb2tlbiB0YWJsZSB3YWxraW5nIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjE3OjUyCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUzICkKCmhhcmRha2VyICA5IEZlYiA5OCAxMToxODo0NQogICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlvY3Rscy5oCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MTg6NTkKICAgIC0gKGludGVyZmFjZXMuYyk6ICBpbmNsdWRlIGlvY3Rscy5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA5IEZlYiA5OCAxMToyMDowMAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBpb2N0bHMuaC4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToxOTozMwogICAgLSAoZ2VuZXJpYy5oLCBhdXRvX25saXN0LmMsIGF0LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBtZW1vcnkuYywKICAgICAgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZml4IGFsbCBteSB0eXBvcyA7LSkuCiAgICAgIC0gY3JlYXRlIGF1dG9fbmxpc3RfdmFsdWUgdG8gcmV0dXJuIHRoZSBsb29rZWQtdXAgdmFsdWUuCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjg6MDkKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBwcyBhdXggc2hvdWxkIGRlZmluZSBhdXggbm90IC1hdXguCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjg6MzMKICAgIC0gKGhvc3RfcmVzLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGRvbid0IGluY2x1ZGUgY29uZmlnLmgKCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODo0NAogICAgLSAoaHJfbmV0d29yay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBzb2xhcmlzIGZpeGVzLgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI5OjA2CiAgICAtIChzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHVuZGVmIElQX0ZPUldBUkRJTkdfU1lNQk9MIGJlZm9yZSBkZWZpbmluZyBpdC4KCmhhcmRha2VyIDExIEZlYiA5OCAxNjo0NDoxMwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzZWQgZG9lc24ndCBsaWtlIFthLXpdKyB0eXBlIGV4cHJlc3Npb25zLgoKaGFyZGFrZXIgMTMgRmViIDk4IDA5OjA3OjMxCiAgICAtIChGQVEpOiB0eXBvOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCgpoYXJkYWtlciAxNyBGZWIgOTggMDk6NTA6NDMKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIHVzZSBzbm1wX2lwYWRkciBpbnN0ZWFkIG9mIGlwYWRkciB0byBhdm9pZCBocHV4IGNvbmZsaWN0cy4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1MzoxMgogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMpOgogICAgICAtIHVzZSBhcHByb3ByaWF0ZSBtYWxsb2NzLCBhbmQgTlVMTCBpbml0aWFsaXphdGlvbiBvZiBwb2ludGVycy4KICAgICAgLSBtYWxsb2MgdGhlIHN5bWJvbCByYXRoZXIgdGhhbiB1c2luZyBhIGZpeGVkIGxlbmd0aC4KICAgICAgLSBpbnNlcnQgZGVidWdnaW5nIGNvZGUuCiAgICAgIC0gZW5hYmxlIHByaW50aW5nIG9mIHRoZSBubGlzdCB0cmVlIGlmIFRFU1RJTkcgaXMgZGVmaW5lZC4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1NDowMQogICAgLSAodGNwLmMsIHVkcC5jKToKICAgICAgLSBubGlzdCBzeW1ib2wgbmFtZSBlcnJvcnMuCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MDY6MDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHZtc3RhdC5jLCB2bXN0YXQuaCwgdWNkX3NubXAuaCwKICAgICAgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgICAtIGltcGxtZW50IGEgdm1zdGF0IG1pYiBncm91cCBvbiBsaW51eC4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODoxNTo1NgogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gY2hlY2sgZm9yIHN5cy9zeXNtcC5oLgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE2OjIxCiAgICAtIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBmaXggYSBkZWJ1Z2dpbmcgc3RhdGVtZW50IChtaXNzaW5nIGEgdmFyaWFibGUpLgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE4OjA1CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCBpcml4LmgpOgogICAgICBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBwb3J0IHRvIGlyaXguCgpoYXJkYWtlciAxOCBGZWIgOTggMTE6NDU6MjAKICAgIC0gKHNlZHNjcmlwdC5pbik6IGRlZmluZSBMSUJESVIgYW5kIERBVEFESVIuCgpoYXJkYWtlciAxOCBGZWIgOTggMTE6NDY6NDgKICAgIC0gKHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmKTogY2hhbmdlIHRvIERBVEFESVIgZnJvbSBMSUJESVIuCgpoYXJkYWtlciAxOCBGZWIgOTggMTM6MzE6MDcKICAgIC0gKGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBsb2FkYXZlLmgsIHByb2MuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gdHVybiB0aGVzZSBtaWJzIGludG8gcmVhbCB0YWJsZXMuICBSZXF1aXJlZCBjaGFuZ2luZyB0aGUgbWliIHRob3VnaC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzozNDo1NQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzo0NDoxMwogICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHBhc3MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLAogICAgICB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgICAtIGFsbCBiY29weXMgLT4gbWVtY3B5LgogICAgICAtIGluY2x1ZGUgYSBmZXcgZXh0cmEgaGVhZGVycyBmb3IgREVCVUdQIHN0YXRlbWVudHMuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MjU6NTMKICAgIC0gKGFjbF92YXJzLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgICAgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl91dGlscy5jLAogICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywgbWliaW5jbC5oLAogICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsCiAgICAgIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywKICAgICAgdm1zdGF0LmMpOgogICAgICAtIG1hc3NpdmUgLVdhbGwgYW5kIC0tc3RyaWN0LXByb3RvdHlwZXMgY2hlY2tpbmcuCiAgICAgIC0gYnplcm8gLT4gbWVtc2V0LgoKaGFyZGFrZXIgMTggRmViIDk4IDE0OjMyOjA1CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBjaGVja3MuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MzI6MzgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBwcm90b3R5cGluZyBjaGVja3MuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6Mjg6NTEKICAgIC0gKG9wZW5ic2QuaCk6IGNyZWF0ZWQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6Mjk6NTgKICAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHJlbW92ZWQgdW5uZWVkZWQgc3R1ZmYuCiAgICAgIC0gYWRkZWQgb3BlbmJzZC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjozMDo0NwogICAgLSAoYXQuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBic2QuaCwgYnNkaS5oLCBmcmVlYnNkLmgsCiAgICAgIGdlbmVyaWMuaCwgaHB1eC5oLCBuZXRic2QuaCk6CiAgICAgIC0gdHJpZWQgdG8gbWVyZ2Ugc29tZSB0aGluZ3MgaW50byBzLyouaCBkZWZpbmVzIGluc3RlYWQuICBUaGVyZSBpcyBhCiAgICAgICAgbG90IHRvIGdvIHN0aWxsLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMzOjE0CiAgICAtIChjb25maWcuaC5pbik6IG9wZW5ic2QgZGVmaW5lcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjozMzo0MwogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjUxOjE4CiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU0ICkKCmhhcmRha2VyIDIwIEZlYiA5OCAwOToxOTowMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gZml4IGluY2x1ZGUgZmlsZSBkZXBlbmRhbmNpZXMgb24gaXJpeCB3aXRoIF9LRVJORUwgZGVmaW5lZC4KCmhhcmRha2VyIDIwIEZlYiA5OCAxMToxNToxNAogICAgLSAoKi9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZCB0byBsb29rIGZvciBhbmQgc3RyaXAgL3Vzci9saWIvKi4KCmhhcmRha2VyIDI1IEZlYiA5OCAwNzoyNzowOQogICAgLSAocmVhZF9jb25maWcuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IHJlYWRfY29uZmlnIHBhcnNlcidzIGVuZCBvZiBsaW5lIHByb2JsZW1zLgoKaGFyZGFrZXIgIDQgTWFyIDk4IDE1OjQ5OjMyCiAgICAtIChDT1BZSU5HKTogZG9jdW1lbnRhdGlvbiByZXF1aXJlbWVudCBjaGFuZ2UuCgpoYXJkYWtlciAgNiBNYXIgOTggMTQ6MDE6NTIKICAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWwuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGRpc2suYywKICAgICAgZXZlbnQuYywgZXh0ZW5zaWJsZS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgbWliaW5jbC5oLAogICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCByb3V0ZV93cml0ZS5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsCiAgICAgIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgICBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgICAgaWYuYywgaW5ldC5jLCByb3V0ZS5jLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGFibGUuMSwgLmluZGV4LAogICAgICBNYWtlZmlsZS5pbiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgICAgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LAogICAgICBNYWtlZmlsZS5pbiwgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgICBtaWIuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHZhY20uYywgdmFjbS5oLAogICAgICB2aWV3LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEltcGxlbWVudCB0aGUgU05NUHYzIFZpZXcgQmFzZWQgQWNjZXNzIENvbnRyb2wgTW9kZWwgKFJGQyAyMjc1KS4KICAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgIC0gYmV0dGVyIGhlYWRlci1maWxlICNkZWZpbmUgbmFtZXMgdG8gaW5jbHVkZSBTTk1QXywgQVNOXywgZXRjLiBwcmVmaXhlcy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0NzowMQogICAgLSAodXRpbF9mdW5jcy5jKToKICAgICAgLSByZW1vdmUgR0xPQkFMLVNFQ1VSSVRZIGNoZWNrcy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0NzoxOQogICAgLSAobWliSUkuaCk6IGFkZCB2YWNtX3ZhcnMuCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDc6NDAKICAgIC0gKGhvc3RfcmVzLmgpOiBtb3ZlIHNubXBfYXBpLmggdXAgYWJvdmUgc25tcF9pbXBsLmguCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDg6MzMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcmVtb3ZlIHNlY3VyaXR5IHR5cGUgcHJvbXB0cy4KCmhhcmRha2VyICA5IE1hciA5OCAxNzo0MDowNAogICAgLSAobWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gaW1wbGVtZW50IHN5c09SVGFibGUuCiAgICAgIC0gcmVnaXN0ZXIgbWlicyB1bmRlciBpdC4KCmhhcmRha2VyIDExIE1hciA5OCAwODowNjoxNwogICAgLSAoKi8qLyovKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGF1dG9fbmxpc3Qgb24gcHJlY2VlZGluZyBfIGFyY2hpdGVjdHVyZXMuCiAgICAgIC0gQ2hhbmdlICphbGwqIGRlZmluZSB1c2FnZSB0byBuZXcgU05NUF8gYW5kIEFTTl8gcHJlZml4ZXMuCiAgICAgIC0gbGVhdmUgbWliIGFjY2VzcyBvcGVuIGlmIG5vIGNvbTJzZWMgc3RhdGVtZW50cyB3ZXJlIGZvdW5kIGluIHNubXBkLmNvbmYuCgpoYXJkYWtlciAxMSBNYXIgOTggMDk6NDA6NDIKICAgIC0gKGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaCwgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmgsCiAgICAgIHNubXBfcmlwMi5oLCBzeXNPUlRhYmxlLmgsIHZtc3RhdC5oKToKICAgICAgLSBmaW5pc2ggY29udmVydGluZyBhIGZldyBvZiB0aGUgZmlsZXMgdGhhdCBOaWVscyBtaXNzZWQuCgpoYXJkYWtlciAxMSBNYXIgOTggMTA6MzA6NTAKICAgIC0gKHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgICAtIGZpeCB0aW1lIHZhbHVlcyBhbmQgbW92ZSBzeXNPUkxhc3RDaGFuZ2VkIHRvIHRoZSBzeXN0ZW0gZ3JvdXAuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6MTQ6MDkKICAgIC0gKCopOiBQYXRjaCBmcm9tIENyYWlnIEJldmlucyBmb3IgT3BlbkJTRAoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjI3OjAxCiAgICAtIChpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oKTogUGF0Y2ggZnJvbQogICAgICBDcmFpZyBCZXZpbnM6CiAgICAgIC0gcG9ydCB0byBPcGVuQlNELgoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjQ1OjQ2CiAgICAtICgqKTogcGF0Y2ggZnJvbSBHYXJyZXR0IFdvbGxtYW4gZm9yIEZyZWVCU0QuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6NTY6MzcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaWNtcC5jLAogICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIEdhcnJldHQKICAgICAgV29sbG1hbjoKICAgICAgLSBmcmVlYnNkIDMgc3lzY3RsIGltcGxlbWVudGF0aW9ucy4KCmhhcmRha2VyIDExIE1hciA5OCAxNDo0MToxMQogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICAgaG9zdF9yZXMuaCwgaHJfZGV2aWNlLmMsIGhyX2RldmljZS5oLCBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgICAgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgsIGhyX25ldHdvcmsuYywgaHJfbmV0d29yay5oLCBocl9vdGhlci5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmMsIGhyX3ByaW50LmgsIGhyX3Byb2MuYywKICAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICAgICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywgaHJfc3lzdGVtLmgsIGludGVyZmFjZXMuYywKICAgICAgaXAuYywgbWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCB2MnBhcnR5LmMsIHYycGFydHkuaCwKICAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAgLSBtYXNzaXZlIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgZml4ZXMuCiAgICAgIC0gZml4ZWQgdGhpbmdzIGJyb2tlbiBieSB0aGUgZnJlZWJzZCBwYXRjaCAob25seSBzb21lIEknbSBzdXJlKS4KCmhhcmRha2VyIDExIE1hciA5OCAxNTo0MjozNQogICAgLSAoYXV0b19ubGlzdC5jKTogYmV0dGVyIGRlYnVnZ2luZyBwcmludGZzCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NDU6MjIKICAgIC0gKGhwdXguaCk6IHN3aXRjaCBpbmNvcnJlY3QgYXJwdGFiIHN5bWJvbHMuCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NTY6MTMKICAgIC0gKFJFQURNRSk6IG5hbWUgdXBkYXRlLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjU3OjE2CiAgICAtICgqL01ha2VmaWxlLmluKTogZGVwZW5kIHVwZGF0ZS4KCmhhcmRha2VyIDExIE1hciA5OCAxNzowNTo0MQogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBjaG9tcCBuZXcgbGluZSBvbiByZWFkX2NvbmZpZyB1dGlscy4KCmhhcmRha2VyIDE4IE1hciA5OCAwOToxNzo0MgogICAgLSAoUkVBRE1FKTogY2hhbmdlZCBPViBwYXRoJ3MgdG8gbmV3ZXIgcmVsZWFzZSBwYXRocy4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzoxMDozNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmUtbnVtYmVyaW5nIG9mIHRoZSBuZXcgdGFibGUgbW9kdWxlcy4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzoyNjoyMgogICAgLSAoZXh0ZW5zaWJsZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAgLSB3YWl0IGZvciBwaWQgYWZ0ZXIgZ2V0X2V4ZWNfb3V0cHV0KCkgd2l0aCBuZXcgd2FpdF9vbl9leGVjKCkgZnVuY3Rpb24uCgpoYXJkYWtlciAxOCBNYXIgOTggMTM6NTY6MTYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywKICAgICAgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtYWluLmMsIG1pYl9hcGkuMywKICAgICAgY29uZmlnLmgpOgogICAgICAtIFNOTVBMSUJQQVRIIC0+IFNOTVBTSEFSRVBBVEgKICAgICAgLSBhIHJlYWwgU05NUExJQlBBVEgKICAgICAgLSBtYWtlIHRoZSBhZ2VudCByZWFkIC5jb25mIGZpbGVzIGZyb20gU05NUFNIQVJFUEFUSDpTTk1QTElCUEFUSC4KCmhhcmRha2VyIDE4IE1hciA5OCAxNDowOTozMQogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNSApCgpoYXJkYWtlciAyMiBNYXIgOTggMTg6MTM6NDEKICAgIC0gKHBhc3MuYywgcHJvYy5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gbW92ZSBzeXMvdHlwZXMuaCB1cCBmb3IgdWx0cml4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDA5OjE1OjQ1CiAgICAtICh0Y3AuYyk6IGluY2x1ZGUgdGNwaXAuaCBmb3IgZGlnaXRhbCB1bml4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjM5OjEzCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6CiAgICAgIC0gZml4IHRoZSByZWdpc3RyeSBtaWIgdG8gdXNlIHRoZSBuZXcgbW9kdWxlIHN0cnVjdHVyZS4KICAgICAgLSBjcmVhdGUgYSB3b3JraW5nIGZpbmRfc3VidHJlZSgpIGFuZCBmaW5kX3N1YnRyZWVfbmV4dCgpLgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjM5OjUwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNpbXBseSBkb24ndCBkZWZpbmUgQ0FOX1VTRV9OTElTVCBvbiBsaW51eC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo0NDowNgogICAgLSAoc25tcGQuYywgc25tcF9hcGkuYyk6IFNwZWxsaW5nIGVycm9ycyBmcm9tIHRoZSBDTVUgY29kZSBmaXhlZC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo0NjozNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGxpbnV4LmgpOiBuZXcgZGVmaW5lOiBET05UX1VTRV9OTElTVC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo1OToyMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBBZGQgYW4gJiB0byBhcnBjb20uYWNfZW5hZGRyIGluIG1lbXNldC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMjo0ODozMAogICAgLSAoTWFrZWZpbGUuaW4sIGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogQ29kZSBmcm9tIERhdmlkIFQuIFBlcmtpbnM6CiAgICAgIC0gaW50ZWdyYXRlZCBEYXZpZCdzIGNvZGUgdG8gcHJpbnQgY291bnRlcjY0cyBhcyBpbnRlZ2VycyByYXRoZXIgdGhhbiBoZXguCgpoYXJkYWtlciAyNSBNYXIgOTggMTM6MDc6MDAKICAgIC0gKHYycGFydHkuYywgbWliSUkuYywgdmFjbV92YXJzLmMpOiBkZWNsYWlyIHJlZ2lzdHJhdGlvbiB2YXJpYWJsZXMgc3RhdGljbHkuCgpoYXJkYWtlciAyNSBNYXIgOTggMTY6NDk6NTYKICAgIC0gKGhwdXguYyk6IGZpeCB3cml0ZV9tZXRob2QgZGVjbGFyYXRpb24uCgpoYXJkYWtlciAyNiBNYXIgOTggMDc6MjI6MzAKICAgIC0gKCouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWlzYyBwb3J0aW5nIGltcHJvdmVtZW50cyAodGhlIGJzZCBncm91cHMsIHN1bm9zLCAuLi4pLgogICAgICAtIHN3aXRjaCBhdXRvX25saXN0cyBjYWxsaW5nIG9yZGVyIG9mIF8gdnMgbm9uIF8gbG9va3Vwcy4KICAgICAgLSByZXZlcnNlIGFsbCBzdHJpbmcuaC9zdHJpbmdzLmggaW5jbHVkZSBwb3NzaWJpbGl0aWVzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDA5OjIwOjA0CiAgICAtIChzbm1wdHJhcGQuYyk6CiAgICAgIC0gQmV0YSB2ZXJzaW9uIG9mIGFuIGV4dGVuc2libGUgdHJhcCBkZW1vbi4KICAgICAgICAtIC1DICdjb21tYW5kJyBvbiB0aGUgY29tbWFuZCBsaW5lIHJ1bnMgdGhlIGNvbW1hbmQgYW5kIGZlZWRzIGl0CiAgICAgICAgICBzdGRpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhcC4KICAgICAgICAtIHYxIHRyYXBzIGFyZSBjb252ZXJ0ZWQgdG8gdjIgdHJhcHMgZm9yIGNvbnNpc3RhbmN5IG9mCiAgICAgICAgICBpbmZvcm1hdGlvbiBzZW50IHRvIHRoZSBzY3JpcHRzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIwOjIxCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBjcmVhdGUgY29uZmlnX3B3YXJuKCkgdGhhdCBkb2Vzbid0IGluY3JlYXNlIHRoZSBlcnJvciBjb3VudCB0bwogICAgICAgIHByZXZlbnQgZXhpdGluZy4gIFVzZWQgZm9yIGRpc2tzLCBzaW5jZSBzb21lIG1pZ2h0IGJ5IHByb2Nlc3Mgb3IKICAgICAgICBuZnMgbW91bnRlZC4KCmhhcmRha2VyIDI3IE1hciA5OCAxMToyMDo1NAogICAgLSAoZGlzay5jKTogdXNlIGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIGRpc2tzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIyOjM1CiAgICAtIChocl9kZXZpY2UuYyk6IGNoZWNrIGRldmljZSBpbmRleCBhZ2FpbnN0IG1heGltdW0gKHNlZ2ZhdWx0IG9uIEhQVVgpLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjEwOjA1CiAgICAtIChSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6IFBhdGNoIGZyb20KICAgICAgQXJ0aHVyIEh5dW46CiAgICAgIC0gdGNwd3JhcHBlcnMgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjoyMzowMwogICAgLSAoaW50ZXJmYWNlcy5jKTogSW50ZXJmYWNlc19TY2FuX05leHQgbmVlZGVkIGEgNHRoIChOVUxMKSBhcmd1bWVudC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjoyMzozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKToKICAgICAgLSBjb3JyZWN0bHkgI2lmZGVmIG91dCB0aGUgdGNwd3JhcHBlcnMgcGF0Y2guCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6NDI6MTMKICAgIC0gKElOU1RBTEwpOiBkb2N1bWVudCBsaWJ3cmFwLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjQzOjA2CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIGludGVyZmFjZXMuYywgaXAuYywgcmVnaXN0cnkuYyk6CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDEgQXByIDk4IDA5OjUyOjMyCiAgICAtIChzbm1wX2NsaWVudC5jKTogZW50ZXJwcmlzZV9sZW5ndGggaXMgc2l6ZW9mKG9pZCkgZGVwZW5kZW50LgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjI3OjA3CiAgICAtIChhdXRvX25saXN0LmMpOgogICAgICAtIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIG9mIHRyZWUgdHJhdmVyc2FsLgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjMxOjI5CiAgICAtIChORVdTLCBQT1JUSU5HKTogdXBkYXRlcyBmb3IgMy40LgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjQ3OjU1CiAgICAtIChGQVEsIFJFQURNRSk6IG1vcmUgMy40IHVwZGF0ZXMuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6NTM6MjcKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCB2YWNtIGV4YW1wbGUgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyICAxIEFwciA5OCAxMzo1NDoxMQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IG1vdmVkIHRoZSB2aWV3IGV4YW1wbGUgc2VjdGlvbiBhYm92ZSB0aGUgYWNjZXNzIHNlY3Rpb24uCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6MTA6MDcKICAgIC0gKFRPRE8pOiByZW1vdmVkIGEgZmV3IHRoaW5ncyEKCmhhcmRha2VyICAxIEFwciA5OCAxNDoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICAxIEFwciA5OCAxNDo0MDo0NAogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSB1bnJlZ2VzdGVyaW5nIG9mIG1pYnMgd29yay4KICAgICAgLSAoaW4gbW9zdCBjYXNlcyA6LT8pCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6NDM6MTQKICAgIHZlcnNpb24gdGFnICggMy40LnByZTYgKQoKaGFyZGFrZXIgIDEgQXByIDk4IDE2OjM1OjU5CiAgICAtIChzbm1wdHJhcGQuYyk6IGFsd2F5cyBzZW5kIGVudGVycHJpc2UgYW5kIHRyYXBvaWQgdG8gc2NyaXB0cy4KCmhhcmRha2VyIDIwIEFwciA5OCAxMDozMTowOAogICAgLSAoc25tcGQuYyk6IGNoYW5nZSBvaWQgZnJvbSB0ZXh0dWFsIHRvIG51bWVyaWMgdG8gYWxsb3cgbm93IG1pYnMgdG8KICAgICAgYmUgbG9hZGVkLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU0OjI5CiAgICAtIChob3N0X3Jlcy5oLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgICAtIGNvbnNvbGlkYXRlIHRoZSBzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYgYSBiaXQgKHNob3VsZCBtYWtlIGl0IGVhc2llcgogICAgICAgICAgdG8gZm9sbG93KQogICAgICAgIC0gUmUtc3RydWN0dXJlcyB0aGUgRGlzayBzZWFyY2hpbmcsIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gc2V0IHVwCiAgICAgICAgICB2aWEgdGhlIGNvbmZpZyBmaWxlLiAod2hpY2ggSSBzdGlsbCBuZWVkIHRvIGRvKQogICAgICAgIC0gU3BlZWQgdXAgZGlzayBzZWFyY2hpbmcgKGJ5IGNhY2hpbmcgaW52YWxpZCByZXN1bHRzIC0gYSAqbWFqb3IqIHdpbiEpCiAgICAgICAgLSBIYW5kbGUgcGFydGl0aW9ucyBzZW5zaWJseSAoYXJ0aGVyIHRoYW4gb25lIHBlciBkaXNrKQogICAgICAgIC0gSW1wcm92ZSBTb2xhcmlzIHN1cHBvcnQgZm9yIHRoZSBEZXZpY2UgZ3JvdXAKCmhhcmRha2VyIDIwIEFwciA5OCAxNTo1Njo1MAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHN5cy9ka2lvLmgKCmhhcmRha2VyIDIwIEFwciA5OCAxNTo1OToxMgogICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggc29tZSBob3N0IHJlc291cmNlcyBmb3Igc29sYXJpcy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMDozNgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYXBwcm9wcmlhdGUgdXNlIG9mIHN0cmR1cCBkdXJpbmcgc3RhcnR1cCBhbmQgYmV0dGVyIGZsYWcgY2hlY2tpbmcuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDA6NTYKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIG1vdmVzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAyOjEyCiAgICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0ZXN0IHN5bWJvbCBkZWZpbmVzIGFuZCBjbGVhbnVwLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAzOjAzCiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIG90aGVyIGNsZWFudXBzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA1OjAwCiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZ2V0aG9zdGJ5YWRkciBtb3ZlcyB1cC4KICAgICAgLSBpbmNsdWRlIHN5cy93YWl0LmguCiAgICAgIC0gc3lzbG9nICVkIC0+ICVsZCBmb3IgbG9uZyBzcGVjaWZpY190eXBlLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA1OjM0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdHlwZWNhc3QgYSBwb2ludGVyLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA2OjAzCiAgICAtICh0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSAjaWZkZWYgY2hlY2tzIG9uIHN5bWJvbHMgYW5kIGhlYWRlciBtb3ZlbWVudC4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNjoyMQogICAgLSAoc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB1bmRlZmluZSBhIGJ1bmNoIG9mIG5saXN0IHN5bWJvbHMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDc6MTAKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5lZWRlZCBwb2ludGVyIGNvcGllcy4KCmhhcmRha2VyIDIyIEFwciA5OCAwNzo0OToyMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgd29yZGluZywgY2xlYW5lZCB1cCBhIGJpdC4KCmhhcmRha2VyIDIyIEFwciA5OCAwODozNToyOQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcGFyc2UgQklUUyBrZXl3b3Jkcy4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDowMDowNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtaWIgb2lkIGxvY2F0aW9uIHVwZGF0ZXMgZm9yIHVjZC1zbm1wIG1pYi4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDowMjoyOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmVuYW1lZCBsYWJlbHMgdG8gYmUgdW5pcXVlIGZyb20gdGhlIG9sZCBkZWZpbml0aW9ucy4KICAgICAgLSByZW51bWJlcmVkIGFnYWluLgogICAgICAtIGNvbW1lbnRlZCBvbiB0aGUgZGVzZ2luIG9mIHRoZSBtaWIgYXQgdGhlIHRvcC4KICAgICAgLSBDaGFuZ2VkIGJhY2sgdG8gU01JdjEuCiAgICAgIC0gcmVtb3ZlZCBsb2NrZCBzZWN0aW9uLgogICAgICAtIHJlbW92ZWQgdm1zdGF0IHNlY3Rpb24gdGlsbCBpdCBnZXRzIGltcGxlbWVudGVkLgogICAgICAtIHJlbW92ZWQgc2VxdWVuY2VzIG9mIHNjYWxlcnMuCgpoYXJkYWtlciAyNCBBcHIgOTggMTA6MjI6MDAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiB0aGUgdGV4dHVhbCBkZXNjcmlwdGlvbnMgd2VyZSB1cGRhdGVkIHNvbWUuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MDM6MjYKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3JlIGNsZWFuaW5nIGFuZCByZW5hbWluZy4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMjoxMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBzdGF0dmZzLmggZm9yIGZfYmF2YWlsLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjA4CiAgICAtIChocl9maWxlc3lzLmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGRlZmluZSBNQVhQQVRITEVOLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjI0CiAgICAtIChocl9wYXJ0aXRpb24uYyk6IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBqdXN0IG9wZW5lZC4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMzo1OAogICAgLSAoZGlzay5jKTogY2FsY3VsYXRlIHZmcyBibG9jayBzaXplIGlmIHBvc3NpYmxlIGFuZCBzaXplID4gMjU1IGJ5dGVzLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjMxOjMwCiAgICAtICh0Y3AuYyk6IGluY2x1ZGUgbmV0aW5ldC90Y3BpcC5oIGZvciBEVTQuMC4KCmhhcmRha2VyIDI0IEFwciA5OCAxNjozMjowNQogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgpOiBuX3ZhbHVlIGlzIGEgbG9uZzoKICAgICAgLSByZXR1cm4gdGhlIHZhbHVlIGZyb20gYXV0b19ubGlzdF92YWx1ZSBhcyBhbiB1bnNpZ25lZCBsb25nLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjQwOjQ1CiAgICAtICh2YXJfcm91dGUuYyk6IHdhdGNoIG91dCBmb3Igc2luZ2xlIHJvdXRlIGxvb3BzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDEwOjU5OjE5CiAgICAtIChNYWtlZmlsZS50b3ApOiByZW1vdmVkIHVubmVlZGVkIHZhcmlhYmxlLgoKaGFyZGFrZXIgMjcgQXByIDk4IDExOjAwOjA4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBTSExJQl9MRENPTkZJR19DTUQgYXMgIjoiIGZvcgogICAgICBzdGF0aWMgbGlicmFyeSBjYXNlcy4KCmhhcmRha2VyIDI3IEFwciA5OCAxMTowMDo0NAogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gUHV0IHRoZSB3b3JkICJUaW1lb3V0OiAiIGluIGZyb250IG9mIHRoZSAiTm8gUmVzcG9uc2UiIGVycm9ycy4KCmhhcmRha2VyIDI3IEFwciA5OCAxMzozMToxMAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNyApCgpoYXJkYWtlciAyNyBBcHIgOTggMTY6MjQ6MzQKICAgIC0gKHRrbWliKTogYnVnIGZpeGVzIGFuZCBuZXcgbWliIG1lbnUgdG8gbG9hZCBuZXcgbWlicy4KCmhhcmRha2VyIDI3IEFwciA5OCAxNjo0NjoyOAogICAgLSAodGttaWIpOiBOZXcgbWliIG1lbnUgY29tbWFuZDogbG9hZCBhIG1pYiBtb2R1bGUgYnkgSUQgbmFtZS4KCmhhcmRha2VyIDI3IEFwciA5OCAxNjo0ODowMgogICAgLSAodGttaWIpOiBidWcgZml4ZXMuCgpoYXJkYWtlciAyOSBBcHIgOTggMDg6NTY6NDQKICAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggLUggaGVhZGVyIHByaW50aW5nLgoKaGFyZGFrZXIgMjkgQXByIDk4IDEwOjI2OjU4CiAgICAtICh0Y3AuYyk6IGRvbid0IHVzZSBUQ1BTVEFUX1NZTUJPTCB1bmxlc3MgZGVmaW5lZC4KCmhhcmRha2VyIDI5IEFwciA5OCAxMDozNDoxMgogICAgLSAoZXhhbXBsZS5jLCBwcm9jLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgIC0gbmxpc3QgY2xlYW51cHMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTA6NDM6MDQKICAgIC0gKGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOiBtb3JlIGNsZWFuIHVwcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTozMTo0MwogICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oKTogbW92ZXMsIGNoYW5nZXMsIHJlbW92YWxzLCBhbmQgZml4ZXMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTE6MzI6MDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwdXQgdm1zdGF0IGJhY2sgaW4gYW5kIHJlbmFtZWQgdG8gc3lzdGVtU3RhdHMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTE6NDE6NTgKICAgIC0gKHRrbWliKToKICAgICAgLSBkaXNwbGF5IHVubG9hZGVkIG1vZHVsZSBlcnJvci4KICAgICAgLSBkb24ndCB0cnkgdG8gbG9hZCBhIGZpbGUgb24gYSBjYW5jZWwuCgpoYXJkYWtlciAgNiBNYXkgOTggMTE6MjI6NTYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0a21pYi4KCmhhcmRha2VyICA2IE1heSA5OCAxNDowNjo1NwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gYWRkZWQgaW50ZXJuYWwgdGFibGUgc2VjdGlvbi4KICAgICAgLSBtaWIgbnVtYmVyIGNvcnJlY3Rpb25zIHRvIG1hdGNoIHRoZSBzb3VyY2UuCgpoYXJkYWtlciAgNiBNYXkgOTggMTQ6NTg6MjMKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgIHV0aWxfZnVuY3MuaCwgdmVyc2lvbmluZm8uYywgdm1zdGF0LmMpOgogICAgICAtIHJlbW92ZSB0aGUgbmV3bmFtZSByZXF1aXJlbWVudCBmcm9tIGNoZWNrbWliKCkuCiAgICAgIC0gY3JlYXRlIGhlYWRlcl9nZW5lcmljKCkgZm9yIHNpbXBsZSBzY2FsYXIgdGVzdHMuCiAgICAgIC0gdXNlIGhlYWRlcl9nZW5lcmljKCkgaW4gYWxsIHVjZCBzcGVjaWZpYyBzY2FsYXIgbWlicywgYW5kIGV4YW1wbGUuW2NoXS4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowNjo1OQogICAgLSAoTkVXUyk6IG1pbm9yIHdvcmRpbmcgY2hhbmdlLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA3OjI4CiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgIC0gbmV3IGZ1bmN0aW9uOiBjYWxjdWxhdGVfdGltZV9kaWZmKHQxLCB0MikuCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDg6MDAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIGJvZ3VzIGluZGV4J3MgYmUgMC4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowODozNwogICAgLSAobWliMmMpOiBjcmVhdGVkIGEgbWliMmMgdGVtcGxhdGUgY3JlYXRvci4KCmhhcmRha2VyICA2IE1heSA5OCAyMjoyODo0NwogICAgLSAod2luMzIvY29uZmlnLmgpOiB1cGRhdGUgZnJvbSBKb2UgTWFyem90LgoKaGFyZGFrZXIgIDcgTWF5IDk4IDA5OjA1OjU1CiAgICAtIChDT1BZSU5HKTogY29ycmVjdGlvbiBmb3IgZGF0ZXMuCgpoYXJkYWtlciAgNyBNYXkgOTggMDk6MDc6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3lzL3N0YXQgaW5jbHVzaW9uIGluIGZzIGNoZWNrcy4KCmhhcmRha2VyICA3IE1heSA5OCAwOTowNzo0NgogICAgLSAocmVhZF9jb25maWcuYyk6IGRlYnVnIGluZm8gZm9yIGNvbmZpZyBmaWxlcyByZWFkLgoKaGFyZGFrZXIgIDggTWF5IDk4IDEwOjU3OjQ5CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIHBrZ2xvY3MuaC4KCmhhcmRha2VyICA4IE1heSA5OCAxMTowMToyNAogICAgLSAoaHJfc3dpbnN0LmMsIGhyX2Rpc2suYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzLgoKaGFyZGFrZXIgIDggTWF5IDk4IDE0OjUzOjM2CiAgICAtIChkaXNrLmMpOiB3b3JkaW5nIGNoYW5nZS4KCmhhcmRha2VyIDExIE1heSA5OCAwODowODozNwogICAgLSAodXRpbF9mdW5jcy5jKTogYmxhbmsgbGluZSByZW1vdmFsLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA4OjUzCiAgICAtICh0a21pYik6IG9wdGlvbmFsIHBvcnQgbnVtYmVyLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA5OjU4CiAgICAtIChtaWIyYyk6CiAgICAgIC0gY291bnRlcjY0cy4KICAgICAgLSBjb25zb2xvZGF0aW9uIG9mIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4KICAgICAgLSBtb3JlIGVycm9yIHN0aW5ncyBpbiBhbGwgZmlsZXMgZm9yIHVua25vd24gdmFyaWFibGUgdHlwZXMuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MTA6MzAKICAgIC0gKHBhcnNlLmMpOiBvcGFxdWUncyBjYW4gaGF2ZSBhIHNpemUgc3BlY2lmaWVyLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjEwOjQ2CiAgICAtIChpbnQ2NC5jKTogYWRkIGluY3JCeVUzMigpLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjI5OjE2CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgc25tcGQuaCwgdmFyX3N0cnVjdC5oKTogUGF0Y2gKICAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHRoZSB0cmFwc2luayBkaXJlY3RpdmVzIGluIHNubXBkCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MDEKICAgIC0gKGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNvbWUgcHJvdG90eXBlcyBmb3IgdGhlIGhyXyouYyBmaWxlcyAobmVlZHMgRGF2ZSdzIHJlY2VudCBwYXRjaCkKICAgICAgICBXYXJuaW5nOiB0aGUgcHJvYyBwYXJ0IHN0aWxsIGRvZXMgbm90IHdvcmsgd2l0aCBTb2xhcmlzIQoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMwOjE4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMwOjM3CiAgICAtIChzbm1wdHJhbnNsYXRlLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZS4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozMTozMwogICAgLSAoU05NUHYyLVRDLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGhpcyBsYXN0IFtwYXJzZXJdIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZQogICAgICAgIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQgd2Ugc2hpcCkuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzI6MjcKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIENvcnJlY3Rpb25zIG9mIGRpc2sgZW50cnkgY2FwaXRpbGF6YXRpb24gcHJvYmxlbXMuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzQ6MzgKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAgLSBmaXggdGhlIHBhcnNlciB0byByZXBvcnQgdW5saW5rZWQgT0lEcy4gVGhpcyBkaWQgcmV2ZWFsIGFuIGVycm9yIGluIGEKICAgICAgICBDaXNjbyBNSUIgKENJU0NPLUlQTUNBU1QtTUlCKSB0aGF0IEkgaGFkIGJlZW4gdXNpbmcgKGl0IG5lZWRzIGFuCiAgICAgICAgSU1QT1JUUyBjaXNjb0V4cGVyaW1lbnQgRlJPTSBDSVNDTy1TTUkpCiAgICAgICAgQWN0dWFsbHkgdGhlIHBhcnNlciB3b3JrZWQgb2ssIGV4Y2VwdCBmb3IgdGhlIG1pc3NpbmcgZXJyb3IgbWVzc2FnZXMuCiAgICAgIC0gcmV3cml0ZSBvZiB0aGUgcGFyc2VycyBsZXhpY2FsIGFuYWx5c2VyLCB0byBjb3JyZWN0IHRoZSBlcnJvcnMgdGhhdAogICAgICAgIERhdmUgUGVya2lucyBhbmQgb3RoZXJzIGhhdmUgcG9pbnRlZCBvdXQgcmVjZW50bHkgKG5hbWU6Oj0gLCBERVNDUklQVElPTiIKICAgICAgICBhbmQgcHJvcGVyIGhhbmRsaW5nIG9mIC0tIHBhcnRpYWwgbGluZSBjb21tZW50cyAtLSkuIFdhdGNoIG91dCEgdGhpcyBsYXN0CiAgICAgICAgbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQKICAgICAgICB3ZSBzaGlwKS4gTXkgRm9yZSBTeXN0ZW1zIE1JQnMgaGFkIGVycm9ycyB3aXRoIHRoaXMuCiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCgpoYXJkYWtlciAxMiBNYXkgOTggMTA6NTI6MTYKICAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBtb3JlIHN3aW5zdCBmaXhlcyBmb3IgcnBtIG1vZHVsZXMuCgpoYXJkYWtlciAxMiBNYXkgOTggMTA6NTI6NTcKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBpbmNsdWRlIGEgZ2V0ZHRhYmxlc2l6ZSgpIGZ1bmN0aW9uIGZvciBocHV4OS4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMDo0MgogICAgLSAoTkVXUyk6IG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMToxMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBtdW5nZSBycG0gbGliIGNoZWNrIHRvIGxpbmsgd2l0aCAtbGRiIGFzIHdlbGwuCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6MTE6MzIKICAgIC0gKGRpc2suYyk6IE5VTEwgLT4gMC4KCmhhcmRha2VyIDEyIE1heSA5OCAxMTo0NToyMQogICAgLSAodm1zdGF0LmMpOiBjb3JyZWN0IHN0cmluZ3MgaW5jbHVzaW9uLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjQ1OjUxCiAgICAtIChzbm1wX2FwaS5jLCBzeXN0ZW0uYyk6CiAgICAgIC0gbW92ZSBkZWJ1Z2dpbmcgY29kZSBmcm9tIHN5c3RlbS5jIHRvIHNubXBfYXBpLmMsIHdoZXJlIGl0IHNob3VsZCBiZS4KCmhhcmRha2VyIDEyIE1heSA5OCAxNToxNDo0OAogICAgLSAoZGlzay5jLCBleGFtcGxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLAogICAgICBwcm9jLmMsIHV0aWxfZnVuY3MuaCwgdm1zdGF0LmMpOgogICAgICAtIGluY2x1ZGUgdGltZS5oIHByb3Blcmx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB1dGlsX2Z1bmNzLmggdG8gZG8gaXQuCgpoYXJkYWtlciAxMiBNYXkgOTggMTU6MTU6MDEKICAgIHZlcnNpb24gdGFnICggMy40LnByZTggKQoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIxOjIyCiAgICAtIChpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYyk6IG1ha2UgaW50NjQuYyB1c2UgY291bnRlcjY0J3Mgc3RydWN0dXJlLgoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIxOjQyCiAgICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IHJldHVybiBhIGNvdW50ZXI2NCB0byBhIHNubXB2MSByZXF1ZXN0LgoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIyOjA5CiAgICAtIChpcC5jKTogaW5jbHVkZSBuZXQvcm91dGUuaCBhbmQgc3lzbG9nLmggZm9yIGJzZGkuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjI6MTcKICAgIC0gKG1lbW9yeS5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCBmb3IgYnNkaQoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjI1OjM5CiAgICAtIChtaWIuYyk6IHNwcmludF9ieV90eXBlKCkgZGlkbid0IGhhbmRsZSBjb3VudGVyNjQncy4KCmhhcmRha2VyIDE0IE1heSA5OCAwNzoxNzozNAogICAgLSAobWVtb3J5LmMpOiBtb3ZlIHN5cy9wYXJhbS5oIHVwIGFib3ZlIGZzLmggaGVhZGVycy4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyMTo1NQogICAgLSAoRkFRKTogbmV3IEZBUSBmcm9tIERhdmUgU2hpZWxkcy4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyMjowOAogICAgLSAoTkVXUyk6IG1pYjJjIG1lbnRpb25lZC4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyNTo1NwogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiB0eXBvcy4KCmhhcmRha2VyIDE1IE1heSA5OCAxMDoxMzoxNgogICAgLSAocGFyc2UuYyk6IHNpbmdsZSBxdW90ZSBtaXNzaW5nIG1vZHVsZSBuYW1lcy4KCmhhcmRha2VyIDE1IE1heSA5OCAxMDoxNzozNgogICAgLSAocmVhZF9jb25maWcuYywgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgICBocl9zeXN0ZW0uaCwgaHJfdXRpbHMuYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFuc2xhdGUuMSwKICAgICAgYnNkLmgsIHNvbGFyaXMuaCwgc3Vub3MuaCwgaW50NjQuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhbnNsYXRlIHN1cHBvcnRzIC1SIGFuZCAtci4KICAgICAgLSBtaXNjZWxsYW5lb3VzIHdhcm5pbmcgZml4ZXMuCiAgICAgIC0gb2lkIHNlYXJjaGVyIGFsd2F5cyBpZ25vcmVzIGNhc2UuCiAgICAgIC0gZml4ZWQgaHJfc3lzdGVtIHRvIGNvbXBpbGUgb24gU3VuT1M0LgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjE5OjA1CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gcHJvdmlkZSBhYmlsaXR5IHRvIGRvIHJhbmRvbSBzZWFyY2hlcyBzcGVjaWZ5aW5nIGEgbW9kdWxlIG5hbWUgdG8gbG9vayBpbi4KCmhhcmRha2VyIDE1IE1heSA5OCAxMToxNzo0NAogICAgLSAoRkFRLCBtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gaGFuZGxlIHJhbmRvbSBsb29rdXBzIHdpdGggbXVsdGlwbGUgb2lkIHNlZ21lbnRzLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDExOjE5OjEwCiAgICAtIChjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLAogICAgICBsaWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5wbGcsIHNubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlLnBsZywKICAgICAgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHdpbjMyIGZpbGUgdXBkYXRlcy4KCmhhcmRha2VyIDE4IE1heSA5OCAxMToxODoyMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgdGVzdCBvbiByZS1jb25maWd1cmVzLgoKaGFyZGFrZXIgMTggTWF5IDk4IDEzOjEzOjE4CiAgICAtIChocl9zd2luc3QuYyk6IHByb3RlY3QgdXNpbmcgdGhlIGRhdGUgcG9pbnRlciBhZ2FpbnN0IE5VTEwgc2V0dGluZ3MuCgpoYXJkYWtlciAxOCBNYXkgOTggMTU6Mzk6MzgKICAgIHZlcnNpb24gdGFnICggMy40LnByZTkgKQoKaGFyZGFrZXIgMTggTWF5IDk4IDE4OjE0OjE5CiAgICAtIChpbnQ2NC5jKToKICAgICAgLSBpbmNsdWRlIGhlYWRlciBjaGFuZ2VzIGZvciB3aW4zMi4KCmhhcmRha2VyIDE5IE1heSA5OCAxMDo0MToxNAogICAgLSAoYXQuYyk6IHNldCB0byBkbyBub3RoaW5nIHdoZW4gQ0FOX1VTRV9TWVNDVEwuCgpoYXJkYWtlciAxOSBNYXkgOTggMTA6NDE6NDkKICAgIC0gKG1lbW9yeS5jKTogZml4IHN3YXBpbmZvIG9uIGhwdXgxMCBzeXN0ZW1zLiAoL2V0Yy9zd2FwaW5mbyAtcikuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6MzM6MDIKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBleHRlbmQgcmFuZG9tIGxvb2t1cHMgZnVydGhlci4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNDozMQogICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6MzY6MTQKICAgIC0gKHV0aWxfZnVuY3MuYyk6IG1ha2UgY2hlY21pYigpIHVzZSBvaWQgbm90IGludCBmb3IgbmV3bmFtZS4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNzozMwogICAgLSAoc25tcF9pbXBsLmgpOiB2ZXJzaW9uIHNob3VsZCBiZSBhIGxvbmcuCgpoYXJkYWtlciAyMCBNYXkgOTggMDg6MjU6NDEKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBjb25maWdfcGVycm9yKCkgLT4gY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgdG9rZW5zLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA4OjI3OjA2CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMiAtPiBWMy4zCgp3aGFyZGFrZSAxMSBKdW4gOTcgMDQ6NTM6NTMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBtYWtlIE1JQkZJTEVTIGVudiB2YXIgd29yayBjb3JyZWN0bHkuCgp3aGFyZGFrZSAxMSBKdW4gOTcgMDU6NDY6MTgKICAgIC0gKENoYW5nZUxvZyk6IHdob29wcy4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MDoyOAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gQ2hhcmx0b24gdG8gZml4IGxlYWRpbmcgc3BhY2VzIGluIHNlZHNjcmlwdC4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MTo1OAogICAgLSAoY29uZmlndXJlKik6IGJzZGkzIG5lZWRzIHRvIGRlZmluZSBic2RpMiwgbm90IGl0c2VsZiAoZHVoKS4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MjozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogbmVlZCAyIGxlYWRpbmcgJy0ncyBvbiAtLXdpdGgtbWliLW1vZHVsZXMgZmxhZy4KCndoYXJkYWtlIDI2IEp1biA5NyAyMzozOTozMgogICAgLSAoc211eC5jKTogX19QIG1hY3JvcyB3ZXJlIGNhbGxlZCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cyAobmVlZGVkIChhcmdzKSkuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDU6NTM6NTcKICAgIC0gKGFnZW50L3NubXBfe2FnZW50LHZhcnN9LmMsIGFsYXJtLmMsIGV2ZW50LmMsIGFwcHMvKiwKICAgICAgIHNubXBsaWIvc25tcHssX2FwaSxfYXV0aH0uYyk6CiAgICAgICAtIEFkZGVkIGJhc2ljIChtb3N0bHkgY29uZm9ybWluZz8pIHYyYyBzdXBwb3J0LgogICAgICAgLSBNZXJnZWQgYXJnIHBhcnNpbmcgb2YgYXBwcy8qIGNsaWVudHMgaW50byBvbmUgZmlsZS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNTo1NDozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jKTogRG9uJ3QgcHV0ICYgaW4gZnJvbnQgb2Ygb3NmNCBhY19lbmFkZHIuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6MzM6MDgKICAgIC0gKHNubXB0ZXN0LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCBnZXQgLT4gZmdldCAnXG4nIHByb2JsZW0uCiAgICAgIC0gQWxzbyBtYWtlcyBzdXJlIGl0IGhhbmRsZXMgdXAgYW5kIGxvd2VyIGNhc2VzLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjM4OjQzCiAgICAtICh3b21iYXQuaCk6IGJldHRlciBkb2N1bWVudCBjb25maWdfbG9hZF9taWIoKSBleGFtcGxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjQ5OjQ1CiAgICAtIChjb25maWcqLCBtZW1vcnkuYyk6IFBhdGNoIGZyb20gdmxhZEBtaXNlcnkucm9zcHJpbnQucnU6CiAgICAgIC0gaW1wbGVtZW50IG1lbW9yeSBzZWN0aW9uIG9mIHVjZCBtaWIgb24gbGludXguCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6NTg6NDkKICAgIC0gKG1pYl9hcGkuMywgcGFyc2UuW2NoXSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gSGFuZGxlIG1pYiBtb2R1bGUgcmVwbGFjZW1lbnRzIHRocm91Z2ggbmV3IGZ1bmN0aW9uIGFuZCByZXBsYWNlbWVudCB0YWJsZS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNzoxOTo1MQogICAgLSAobWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMpOiBTdWdnZXN0aW9ucyBmcm9tIExhdWtrYW5lbiBNYXJra3UgTlJDL0hraToKICAgICAgLSBNYWxsb2MgdHlwZWNhc3RzIGFuZCBvdGhlciBjb3JyZWN0aW9ucyBpbiBjYXN0aW5nLgoKd2hhcmRha2UgIDEgSnVsIDk3IDAxOjEwOjAwCiAgICAtIChzbXV4LmMpOiBmaXggcHJvdG90eXBpbmcgZmFpbHVyZXMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDU6NDE6NTgKICAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCwgaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gZml4IGZyZWVic2QzIHNwZWNpZmljIHByb2JsZW1zIChiYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEJpbGwgRmVubmVyKS4KCndoYXJkYWtlICAxIEp1bCA5NyAwNjowMjo1NwogICAgLSAoYXBwcy8qLmMpOiBCZXR0ZXIgdXNhZ2UgaW5mb3JtYXRpb24gYW5kIHVzYWdlKCkgc3RhbmRhcml6YXRpb24uCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDY6NDE6NDQKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDc6MjA6MjUKICAgIC0gKGNvbmZpZyopOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA4OjM3OjUxCiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxICkKCndoYXJkYWtlICAzIEp1bCA5NyAyMzozMzoyMwogICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBtaWIuW2NoXSwgcGFyc2UuW2NoXSk6CiAgICAgIC0gTmV3IG9wdGlvbiB0byBzbm1wdHJhbnNsYXRlICgtYSkgdG8gb3V0cHV0IGEgYXNjaWkgZHVtcCBvZiB0aGUgbWliCiAgICAgICAgZGF0YWJhc2UgY2FwYWJsZSBvZiBiZWluZyB1c2VkIGJ5IHRoZSBwYXJzZXIgZm9yIHF1aWNrIE9JRCB0cmFuc2xhdGlvbnMuCgp3aGFyZGFrZSAgMyBKdWwgOTcgMjM6MzQ6MTQKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTIgKQoKd2hhcmRha2UgMjQgSnVsIDk3IDIzOjUwOjQ4CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBFZGR5IEouIEd1cm5leTogIHVuY29tbWVudCBnZXR0aW1lb2ZkYXkoKSBjYWxsLgoKd2hhcmRha2UgIDcgQXVnIDk3IDAwOjI5OjI0CiAgICAtIChUT0RPKTogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGJ5IGFwcHMuCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDE6MTE6NTQKICAgIC0gKGNvbmZpZyosIGxvYWQuYywgZGlzay5jLCBwYXJzZS5jLCBzbm1wLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgICAtIFVsdHJpeCBmaXhlcyBmb3Igc3RhdGZzLCBsb2FkYXZlLgogICAgICAtIGltcGxlbWVudCBzdHJkdXAgaWYgbm90IGZvdW5kIGluIHN5c3RlbS4KICAgICAgLSB0ZXN0IGZvciB0ZXN0IGZsYWdzIGZvciBrZXJuZWwgY2hlY2tpbmcuCiAgICAgIC0gd2F0Y2ggb3V0IGZvciBwcydlcyB0aGF0IHJldHVybiBlZ3JlcCB3aXRoIHRoZSBwcyBhcmcgb24gdGhlIGxpbmUuCiAgICAgIC0gdXAgbWF4aW11bSBkaXNrcyB0byA1MC4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMTozMzozOAogICAgLSAoa2VybmVsLmMsIHByb2MuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gSW1wbGVtZW50IHJlYWwgcHJvY2VzcyB0YWJsZSB3YWxrcyBvbiBVbHRyaXguCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDI6MzQ6NDUKICAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKToKICAgICAtIGZpeCBzd2FwIG9uIEhQVVggMTAuMjAKCndoYXJkYWtlIDEzIEF1ZyA5NyAwNDo0Nzo0OQogICAgLSAoc25tcHN0YXR1cy5jKTogb3B0YXJnL29wdGluZCBuZWVkIHRvIGJlIGRlY2xhaXJlZCB1bmRlciB1bHRyaXg0LgoKd2hhcmRha2UgMTMgQXVnIDk3IDA4OjExOjQyCiAgICAtICh2ZXJzaW9uLmgsIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1vdmUgdmVyc2lvbiBzdHJpbmcgdG8gYSBnbG9iYWwgaGVhZGVyLgogICAgICAtIGluc2VydCBVU0lOR18qX01PRFVMRSBtYWNybydzIGluIG1hbnkgcGxhY2VzIHRvIG1ha2UgbW9kdWxlCiAgICAgICAgcmVtb3ZhbCBtb3JlIHBvc3NpYmxlLiAgWW91IGNhbiBub3cgY29tcGlsZSB3aXRoIGFsbW9zdCBubyBtb2R1bGVzCiAgICAgICAgaW5zdGFsbGVkLgoKd2hhcmRha2UgMTQgQXVnIDk3IDAwOjQ2OjM4CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIG1haW4uYyk6CiAgICAgIC0gYWRkIC1WIHZlcnNpb24gZmxhZ2UuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDc6Mzg6MTcKICAgIC0gKGNvbmZpZyosIEZBUSwgUkVBRE1FLCBhZ2VudC9taWJncm91cC8qLmMsIGFwcHMvKi5jKToKICAgICAgLSBQYXRjaCBmcm9tIERhdmlkIFBhdWwgWmltbWVybWFuOgogICAgICAgIC0gcG9ydCB0byBBSVggNC4xLjUuCiAgICAgICAgLSBmaXggbW9yZSB0eXBlIGNhc3RpbmcgcHJvYmxlbXMuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MTU6NDIKICAgIC0gKGNvbmZpZ3VyZSopOgogICAgICAtIFR5cG8ncyB3aGVuIGNvcHlpbmcgaW4gYSBhdXRvY29uZiB0ZXN0LgogICAgICAtIEFkZCBlcnJvcm1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IChzaW5jZSBpdHMgbm8gbG9uZ2VyIHJlcXVpcmVkKS4KICAgICAgLSBiYWNrcXVvdGUgYSAuIGluIGEgc2VkIHJlZ2V4cCB0byB3YXRjaCBvdXQgZm9yIG1vZHVsZSBuYW1lcwogICAgICAgIGJlZ2lubmluZyB3aXRoIHRoZSBsZXR0ZXIgby4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoxNjoxMgogICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogUG9pbnQgb3V0IHRoYXQgbWliIGxpc3QgbXVzdCBiZSBpbiBkZXNjZW5kaW5nIG9yZGVyLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjE2OjM3CiAgICAtIChwcm9jLmMpOiBkb24ndCB1c2Ugc2V0ZXJyb3JzdGF0dXMoKSBpZiBub3QgdXNpbmcgdGhlIGVycm9ybWliLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjIxOjI2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmlkIEMuIExhd3JlbmNlIGZvciBuZXRic2QgKiBic2Qvb3MgMi4wLgoKd2hhcmRha2UgMTUgQXVnIDk3IDAyOjMwOjU5CiAgICAtIChjb25maWcqLCBzbm1wZC5jLCBzbm1wX2NsaWVudC5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gZml4IG1vcmUgbG9uZy9pbnQgcHJvYmxlbXMgb24gNjQgYml0IG1hY2hpbmVzIHVfbG9uZyAtPiBpbl9hZGRyX3QuCiAgICAgIC0gQ2hlY2sgZm9yIFNJT0NHSUZBRERSIGluIHN5cy9pb2N0bC5oIGFuZCB1c2UgaXQgaW4gZ2V0X215YWRkcigpIGlmCiAgICAgICAgZGVmaW5lZC4KCndoYXJkYWtlIDE1IEF1ZyA5NyAwNjo0NjozOQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMyApCgp3aGFyZGFrZSAyNSBBdWcgOTcgMDA6MjE6MjMKICAgIC0gKG1lbW9yeS5jKTogdHlwbyBpbiBpZmRlZi4KCndoYXJkYWtlIDI1IEF1ZyA5NyAwMDoyMTo0MQogICAgLSAodmVyc2lvbnRhZyk6IGNoZWNraW4gdmVyc2lvbi5oLgoKd2hhcmRha2UgMjUgQXVnIDk3IDAwOjIyOjE4CiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgbmV0YnNkLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE1OjIzCiAgICAtIChtaWJfYXBpLjMpOiBkb2MgYWRkaXRpb246ICBhZGRfbWliZGlyKCkgcmV0dXJuIHZhbHVlLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE2OjM2CiAgICAtIChwYXJzZS5jKTogRnJvbSBEYXZlIFNoaWVsZHM6CiAgICAgIC0gc2VsZiBjb250YWluZWQgbWliIC50eHQgZmlsZXMgd2l0aCBtdWx0aXBsZSBtb2R1bGVzLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE5OjE2CiAgICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgpOiBkeW5peCBkb2Vzbid0IGhhdmUgbmV0L3JvdXRlLmguCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MjE6NTcKICAgIC0gKEZBUSk6IEZyb20gRGF2ZSBTaGllbGRzOiByZWZlciByZWFkZXIgdG8gYW5vdGhlciBhbnN3ZXIgYXMgd2VsbC4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNTozMzowMwogICAgLSAoYWdlbnQvbWliZ3JvdXAvKi5jKTogWU1XUkFNRlNGTjoKICAgICAgLSAoeWV0IG1vcmUgd2FybmluZyByZW1vdmFscyBhbmQgbWVtb3J5IGZ1bmN0aW9uIHN0YW5kYXJkaXphdGlvbnMgZnJvbSBOaWVscykuCiAgICAgIC0gbWlub3IgbGludXgvbmV0YnNkL2JzZGkgY2xlYW4gdXBzLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDA5OjUwOjA4CiAgICAtICh2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jKTogRnJvbSBOaWVsczogd2FybmluZyByZW1vdmFscyBhbmQgc3RhbmRhcmRpemF0aW9uLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDA5OjU4OjM2CiAgICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzOgogICAgICAtIHdhcm5pbmcgZml4ZXMuCiAgICAgIC0gcmVtb3ZlIHRoZSBwcmludGYncyBmcm9tIHRoZSBsaWJyYXJ5IGFuZCBzZXQgYSBzbm1wICdlcnJubycgZXF1aXZhbGVudC4KCmhhcmRha2VyIDE1IE9jdCA5NyAxMjoxMjowMgogICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBuZXcgZnVuY3Rpb246ICBzbm1wX3BlcnJvcihjaGFyICopCiAgICAgIC0gZnJlZSBhbGxvY2F0ZWQgc3BhY2Ugb2Ygc25tcF9kZXRhaWwgdXBvbiB1c2FnZSBieSBzbm1wX2FwaV9lcnJzdHJpbmcoKS4KCmhhcmRha2VyIDE1IE9jdCA5NyAxODo0MDozOAogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHIqKTogSG9zdCByZXNvdXJjZXMgbWliIGZyb20gRGF2ZSBTaGllbGQuCiAgICAgIC0gbWlub3IgcGF0Y2hlcyBieSBtZSwgbW9zdGx5IHBvaW50ZXIgZXJyb3JzLgogICAgLSAobWVtb3J5LmMpOiBmaXhlZCBhIG51bGwgcG9pbnRlciBwcm9ibGVtIHVuZGVyIGxpbnV4LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDExOjQ1OjU4CiAgICAtIChGQVEpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxMTo1MTozNAogICAgLSAoY29uZmlnKiwgYWdlbnQvc25tcCosIGFnZW50L21pYmdyb3VwLyouW2NoXSk6CiAgICAgIC0gQ3JlYXRlZCBhIG5ldyBtaWJtb2R1bGUuaCBjb25maWd1cmF0aW9uIG1hY3JvIGNhbGxlZAogICAgICAgIGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHdoaWNoIGNhbiBiZSBjYWxsZWQgdG8gcmVxdWVzdCBwYXJzaW5nIG9mCiAgICAgICAgdGhlIHNubXBkLmNvbmYgZmlsZShzKSBvbiBhIHBlciBtb2R1bGUgYmFzaXMuCiAgICAgIC0gQWxsIHJlbGF0ZWQgcGFyc2luZyBoYXMgYmVlbiBzdHJpcGVkIGZyb20gcmVhZF9jb25maWcuYyBhbmQgbW92ZQogICAgICAgIHRvIHRoZWlyIGNvcnJlY3QgbW9kdWxlIGluc3RlYWQuCiAgICAgIC0gTmV3IGZ1bmN0aW9uOiBjb25maWdfcGVycm9yKGNoYXIgKik6IHByaW50IGVycm9yIHdpdGggZmlsZSAmIGxpbmUgIy4KICAgICAgLSBiYXNpYyAtV2FsbCBjbGVhbnVwcyBpbiBociogYXMgd2VsbCAobm90IG5lYXJseSBkb25lIHlldCkuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6MDU6MTQKICAgIC0gKHBhc3MuYykgZG9uJ3QgbnVsbCBsYXN0IGNoYXIgaW4gY29tbWFuZCBsaW5lLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjA2OjE2CiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBkb24ndCByZXBvcnQgYW4gZXJyb3IgaWYgeW91IGNhbid0IGZpbmQgYSBzbm1wZC5jb25mIGZpbGUuCiAgICAgIC0gZG9uJ3QgcmVwb3J0IGFsbCBsaW5lcyBhcyBhbiBlcnJvciAob3BwcykuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6Mzg6MzMKICAgIC0gKG1pYi5jKTogRnJvbSBEYXZlOiAgcGF0Y2ggREVGQVVMVF9NSUJTIHRvIHRha2UgJysnIGluIGZyb250LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjQ0OjM3CiAgICAtIChtaWIuYyk6IHBhdGNoIGFsbCBvdGhlciBlbnYtdmFycyB0byB0YWtlICcrJyBpbiBmcm9udC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNzowMTo0OAogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjE1OjUxCiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUsIHdvbWJhdC5bY2hdKToKICAgICAgLSBkb2N1bWVudGF0aW9uIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHVzYWdlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjE2OjU4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTg6MDE6NDYKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgdWNkX3NubXAuaCwgc211eF9nYXRlZC5oKToKICAgICAgLSBjcmVhdGVkIG5ldyB3cmFwcGVycyBmb3IgdGhlIHZhcmlvdXMgbW9kdWxlcyB0byBtYWtlIHRoZW0gZWFzeSB0bwogICAgICAgIGFkZCBhbmQgcmVtb3ZlIGFzIG5lZWRlZC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxOTo0Mjo0NgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgbGludXgncyBPUyB0eXBlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE5OjQzOjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IGRlZmluZSBhdCBsZWFzdCBibGFuayBmdW5jIG5saXN0X2luaXQoKSBvbiBsaW51eC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMDoxNTo1NAogICAgLSAoUE9SVElORywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMDo0NTo0NwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhbGxvdyAtdiAyaCBhbmQgMnAgZm9yIHBhcnR5IGNvZGUuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDA6NTcKICAgIC0gKGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMpOiBjbG9zZSBvcGVuIGZpbGVzIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjEgT2N0IDk3IDExOjAxOjI3CiAgICAtIChORVdTKTogYmVnaW5uaW5ncyBvZiBORVdTIHVwZGF0ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDI6NDYKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTQgKQoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjI1OjAzCiAgICAtIChhZ2VudC9yZWFkX2NvbmZpZy5bY2hdLCBzbm1wZC5jLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvKik6CiAgICAgIC0gbW92ZWQgcmVhZF9jb25maWcuW2NoXSB1cCBhIGxldmVsIHRvIGFsd2F5cyBiZSBjb21waWxlZCBpbi4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozMTo1NAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZCBzZXR1cC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozMjowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZC4uCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MzY6MzMKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBkaWQgYSBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozNjozOQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNSApCgpoYXJkYWtlciAyMiBPY3QgOTcgMTE6NDA6MDYKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCwgcmVhZF9jb25maWcuYywgZGlzay5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gVHlwbydzIGZpeGVkIGJ5IE5pZWxzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDA5OjU2OjI2CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC8qLmgpOgogICAgICAtIG5ldyBjb25maWcgbWFjcm86ICBjb25maWdfYXJjaF9yZXF1aXJlKGFyY2gsIG1vZHVsZSkuCiAgICAgIC0gbW92ZWQgYXJjaCBkZXBlbmRhbnQgbW9kdWxlcyAobWVtb3J5LCBocHV4LCBrZXJuZWxfc3Vub3M1KSBsb2FkcwogICAgICAgIGZyb20gdGhlIGNvbmZpZ3VyZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KICAgIC0gKGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIHR5cGVjYXN0IGtsb29rdXAgY2FsbHMgZm9yIGZyZWVic2QyLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjAzOjE1CiAgICAtIChhZ2VudC9zbm1wX2FnZW50LmMgc25tcF92YXJzLmMpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSB2MmggLT4gdjJwLCB2MiAtPiB2MmMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MDQ6MzMKICAgIC0gKGFwcHMvKi5jKToKICAgICAgLSBjaGFuZ2VzIGZvciBXSU4zMiBzdXBwb3J0LgogICAgICAtIHN1cHBvcnQgZm9yIGNvbW1hbmQgbGluZSBmbGFncyB3aXRob3V0IHNwYWNlcy4KICAgICAgLSB2MmggLT4gdjJwLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE2OjQyCiAgICAtIChzbm1wbGliLyouW2NoXSk6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIGNoYW5nZXMgZm9yIFdJTjMyIHN1cHBvcnQuCiAgICAgIC0gdjJoIC0+IHYycC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSBjb25maWcuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MTgKICAgIGZpbGUgd2luMzIuZHN3IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSB3aW4zMi5vcHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICBmaWxlIGxpYnNubXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyNQogICAgZmlsZSBsaWJzbm1wLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcC5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI4CiAgICBmaWxlIGxpYnNubXBfZGxsLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcF9kbGwucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgZmlsZSBzbm1wYnVsa3dhbGsuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgZmlsZSBzbm1wYnVsa3dhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgZmlsZSBzbm1wZ2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzQKICAgIGZpbGUgc25tcGdldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM3CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM3CiAgICBmaWxlIHNubXBnZXRuZXh0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIGZpbGUgc25tcGdldG5leHQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgZmlsZSBzbm1wc2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDEKICAgIGZpbGUgc25tcHNldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICBmaWxlIHNubXBzdGF0dXMuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NAogICAgZmlsZSBzbm1wc3RhdHVzLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIGZpbGUgc25tcHRyYW5zbGF0ZS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ3CiAgICBmaWxlIHNubXB0cmFuc2xhdGUucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo1MgogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo1MgogICAgZmlsZSBzbm1wd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICBmaWxlIHNubXB3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTc6MTEKICAgIC0gKGNvbmZpZyopIHdpbjMyIGhlYWRlciBjaGVja3MuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTc6NTAKICAgIC0gKGFnZW50L2tlcm5lbC5jLCBzbm1wX2FnZW50LmMpOgogICAgICAtIEVSUk9SKCkgLT4gRVJST1JfTVNHKCkuCiAgICAgIC0gZnVudGlvbiByZW5hbWVzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjE4OjE2CiAgICAtIChhZ2VudC9taWJncm91cC8qLmMpOgogICAgICAtIEVSUk9SKCkgLT4gRVJST1JfTVNHKCkuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjE6NTMKICAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIHB1dCB0YWJzIGJhY2sgaW4gaGVscCBzdHJpbmcuCiAgICAgIC0gcHV0IHZlcnNpb24gc3RyaW5nIHJlcXVlc3QgYmFjayBpbi4KICAgICAgLSBtYWtlIGVycm9yIHN0cmluZ3MgYmV0dGVyIGFuZCBwdXQgYmFjayBpbiBwZXJpb2RzLgogICAgICAtIGRvbid0IGJvbWIgb24gdW5rbm93biBwYXJhbWV0ZXJzIGZvciBmdXR1cmUgdXNlLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjIyOjIxCiAgICAtIChzbm1wbGliL3NubXAuYyk6IHB1dCBzdHJkdXAgZGVjbGFpcmF0aW9uIGJhY2sgaW4uCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjM6MjAKICAgIC0gKHNubXBsaWIvc25tcF9hdXRoLmMpOgogICAgICAtIHJlbW92ZSAjaWZkZWYgT0xEIHJlcXVpcmVtZW50LgogICAgICAtIGNoYW5nZSBiYWNrIGludC0+bG9uZyBhcmd1bWVudCBjaGFuZ2UgZm9yIHNubXBfY29tc3RyX2J1aWxkLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjM3OjQ2CiAgICAtIChzbm1wbGliL3NubXAuaCk6CiAgICAgIC0gc25tcCB2ZXJzaW9uICNkZWZpbmUgY2xhaXJpZmljYXRpb24gb24gZnV0dXJlIGltcGxlbWVudGF0aW9ucy4KICAgICAgLSBtb3JlIGNsZWFybHkgc3RhdGUgcHVycG9zZSBvZiBmdXR1cmUgU05NUFYzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE2OjI2OjU3CiAgICAtICgqKTogbWVyZ2Ugb2YgVzMyIHBvcnQgYW5kIG1haW4gdmVyc2lvbiBicmFuY2guCgpoYXJkYWtlciAyNyBPY3QgOTcgMTY6MzQ6NDUKICAgIC0gKHNubXBfYXBpLltjaF0pOiBmaXggcGVycm9yIGxvc3NlcyBmcm9tIG1lcmdlLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjA0OjUxCiAgICAtIChocl8qLmMpOiBFUlJPUiAtPiBFUlJPUl9NU0cuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6MDU6MTIKICAgIC0gKHNubXBzdGF0dXMuYyk6IHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFpcmF0aW9uLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQyOjU1CiAgICAtIChzbm1wX3ZhcnMuYyk6IHR3byBtb2R1bGVzIGZvciBleHRlbnNpYmxlIGNvdW50LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQzOjIyCiAgICAtIChhZ2VudC9taWJncm91cC9ocl8qLmgpOiBwcm9wZXIgaW5pdF8gcHJvdG90eXBlcy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzo0Mzo1MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtaXNzaW5nIGEgZWxzZSBzdGF0ZW1lbnQgKHNpZ2gpLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQ0OjI3CiAgICAtIChzbm1wX2F1dGguYyk6IG1lcmdlIGJ1Z3MuICBNaXNzaW5nIGJyYWNrZXRzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQ3OjAwCiAgICAtIChzbm1wX2FwaS5jKTogbWVyZ2UgYnVnczogZWxzZSBjaGVjayBhZ2FpbnN0IHBkdSBjb21tYW5kIHR5cGUuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MDI6NTYKICAgIHdpbjMyIGZpbGVzCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MDU6MzYKICAgIC0gKHdpbjMyKTogIGFkZCBmaWxlcyBvbiBtYWluIGJyYW5jaC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoxODozNgogICAgLSAoc25tcHdhbGsuYyk6IHJlbW92ZSBnb3Ryb290IHZhci4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoxODo1NwogICAgLSAoc25tcGxpYi8qLmMpOiB1c2Ugc25tcF9zZXRfZGV0YWlsIHRvIGhhbmRsZSBtYWxsb2MvZnJlZSBvZiBzbm1wX2RldGFpbC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoyNjo0MQogICAgLSAoY29uZmlndXJlLmluKTogZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUgbWFjcm8gdG8gYWN0dWFsbHkgd29yay4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODozMTozNAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNiApCgpoYXJkYWtlciAyOCBPY3QgOTcgMDk6NTY6MTEKICAgIC0gKGFjY29uZmlnLmgsIHN5c3RlbS5bY2hdLCBzbm1wLmMpOiBtb3ZlIHN0cmR1cCBkZWYgdG8gc3lzdGVtLltjaF0uCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6MzA6NTUKICAgIC0gKGFjY29uZmlnLmgsIG1pYi5jKTogdXNlICc7J3MgZm9yIERPUyBlbnYgcGF0aHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6NDI6MjMKICAgIC0gKGNvbmZpZyopOiBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgY2hlY2tzIGZvciB0aGUgKmJzZCBncm91cHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6NTQ6MjQKICAgIC0gKCouKi4qLiopOiByZW5hbWUgbWFjcm8gX19QIC0+IF9fVUNEX1AgdG8gcmVkdWNlIHN0dXBpZCBjb25mbGljdHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTU6NTA6MDUKICAgIC0gKGNvbmZpZyosIHJvdXRlX3dyaXRlLmMsIHZhcl9yb3V0ZS5jKToKICAgICAgLSBmaXggcnRlbnRyeSBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgcHJvYmFibHkgbmV2ZXIuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MDk6NTcKICAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBkZWZpbmUgYnNkaSBhZ2VudCB0eXBlLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE3OjEwOjU4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBQYXRjaCBmcm9tIE5vYnVvX09rYWJlQHlva29nYXdhLmNvLmpwOgogICAgICAtIGZpeCB1bndyYXBwZWQgZm9wZW4oKSBieSBhZGRpbmcgcmV0dXJuIE5VTEwgY2hlY2suCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MTI6MDAKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTcgKQoKaGFyZGFrZXIgMjkgT2N0IDk3IDA5OjQxOjU0CiAgICAtIChzbm1wdHJhcC5jKTogcmVtb3ZlIHVudXNlZCBubGlzdCBzdHJ1Y3QuCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NDI6MDcKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHN5cy9zZWxlY3QuaCBmb3IgYWl4LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDA5OjU3OjQ4CiAgICAtIChkaXNrLltjaF0sIHN0cnVjdC5oLCBzZWRzY3JpcHQuaW4sIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gYWxsb3cgYSBtaW5pbXVtIHBlcmNlbnRhZ2Ugb24gZGlzayBzcGFjZS4KICAgICAgICAtICh3YXMgb3JpZ2luYWxseSBhIG1heGltdW0sIGJ1dCBJIGNoYW5nZWQgaXQgdG8gbWluaW11bSBpbnN0ZWFkKS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDowNjoxMQogICAgLSAoZGlzay5jKTogZml4IHBvaW50ZXIgcHJvYmxlbXMgZnJvbSBvbGQgcmVhZF9jb25maWcgZm9ybSB0byBuZXcuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6MDY6MzQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiByZW1vdmUgc3BhY2UgYmVmb3JlICUgc2lnbi4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDoyNTozMQogICAgLSAoKi9NYWtlZmlsZS5pbiwgbWFuLyopOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBwYXRocy4KICAgICAgICAtIChtb2RpZmllZCB0byBwb2ludCBhZ2VudCB0byBzYmluZGlyIGluc3RlYWQgb2YgZXRjZGlyKS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDo0ODoxOAogICAgLSAoY29uZmlnKiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gTW92ZSBzbm1wbGlicGF0aCB0byBAZGF0YWRpckAgd2hpY2ggZGVmYXVsdHMgdG8gL3Vzci9sb2NhbC9zaGFyZS9zbm1wLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjU0OjA3CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG9wcHMsIGZvcmdvdCB0byBwdXQgaW4gQGV4ZWNfcGF0aEAuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTE6MjA6NTQKICAgIC0gKGFjY29uZmlnLmgsIGFzbjEuYywgbWliLltjaF0sIHBhcnNlLmgsYXBwcy8qLGVycm9ybWliLmMsbG9hZGF2ZS5jLAogICAgICAgZXh0ZW5zaWJsZS5jLCBkaXNrLmMsIHNubXBkZWx0YSopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRoZSBub3cgd2VsbGtub3duIE5ldEJTRCBmaXgsCiAgICAgIC0gU3VuT1M0IGNjIGRvZXNuJ3QgbGlrZSB1bnNpZ25lZCBsaXRlcmFscyBvciBzdHJ0b3VsLAogICAgICAtIGFkZGVkIGEgY2hhciB2ZXJzaW9uIG9mICI7IiwKICAgICAgLSBhZGRlZCBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBldGMKICAgICAgLSBjaGFuZ2VkIHRoZSBhcHBzIHRvIHByaW50IGFsbCBlcnJvciBtZXNzYWdlcyB0byBzdGRlcnIsCiAgICAgIC0gY29tcGxldGVkIHRoZSBhY2Nlc3MgYW5kIHN0YXR1cyB2YWx1ZXMgaW4gc25tcGxpYi9wYXJzZS5oCiAgICAgIC0gYWRkZWQgYSByb3VnaGx5IHBhdGNoZWQgdmVyc2lvbiBvZiBzbm1wZGVsdGEuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6MjM6MjYKICAgIC0gKHBhcnNlLmgpOiBTVEFUVVNfS1dfT1BUSU9OQUwgLT4gU1RBVFVTX09QVElPTkFMCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6NDM6NDQKICAgIC0gKCouKi4qKTogX19VQ0RfUCAtPiBfX1AsIGFuZCBhIGNvbmZpZ3VyZSBjaGVjayB0byBsb29rIGZvciBpdC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMjo1Nzo0OAogICAgLSAoY29uZmlnKik6IGNoZWNrIGFuZCBpbmNsdWRlIHN5cy9jZGVmcy5oIGluIGNvbmZpZy5oLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjU4OjAxCiAgICAtIChob3N0X3Jlcy5oKTogZG9uJ3QgaW5jbHVkZSBjb25maWcuaCB0d2ljZS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxNDowMDozOAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOCApCgpoYXJkYWtlciAgNCBOb3YgOTcgMTI6NDc6MTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtICNpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgICAgLSBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUgLT4gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFCgpoYXJkYWtlciAgNCBOb3YgOTcgMTI6NDc6NTkKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gQ2hlY2sgZm9yICRwcmVmaXggYmVpbmcgZGVmaW5lZCBhcyBOT05FIGZvciBvdGhlciB2YXJzLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQyOjU3CiAgICAtIChhcHBzL01ha2VmaWxlLmluKTogcHV0IHNubXB0cmFwZCBpbiBAc2JpbmRpckAKCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NDo1OAogICAgLSAoY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgZm9yIGhwdXgxMCByZS1kZWZpbmluZyBwcm9ibGVtcy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NToyMwogICAgLSAoaHJfZGlzay5jKTogbmV3IHZlcnNpb24gZm9yIGhwdXgxMCBzdXBwb3J0IGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDY6MTcKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYywgaHJfdXRpbHMuYyk6IFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBidWcgZml4ZXMgYW5kIGhwdXgxMCBzdXBwb3J0LgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ2OjQ2CiAgICAtICh2YXJfcm91dGUuYyk6IGZyb20gRGF2ZSBTaGllbGQ6IGRvbid0IHByb3RvdHlwZSBtYWxsb2MuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDg6MDcKICAgIC0gKCopOiBtZXJnZSBmcm9tIERhdmUncyBwcmU2IHBhdGNoZXMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NTI6MDAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIGRpc2suYywgcHJvYy5jLCB1dGlsX2Z1bmNzLmMpOgogICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIi4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo1Njo1OAogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiCgpoYXJkYWtlciAgNSBOb3YgOTcgMTQ6MDA6MDkKICAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWxfc3Vub3M1LmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBvY3RldCBjb3VudGVycyBmb3Igc29sYXJpcy4KICAgICAgLSBNYWtlZmlsZS5pbiBwYXRjaGVzLgoKaGFyZGFrZXIgIDUgTm92IDk3IDE0OjQwOjA3CiAgICAtIChtZW1vcnkuYyk6IHByb3RlY3Qgdm1tZXRlci5oIGZyb20gbXVsdGlwbGUgaW5jbHVzaW9ucyBvbiBuZXRic2QuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTU6Mjk6NTAKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTkgKQoKaGFyZGFrZXIgIDcgTm92IDk3IDEyOjI0OjIyCiAgICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGludXgvaGRyZWcuaAoKaGFyZGFrZXIgIDcgTm92IDk3IDEyOjI1OjM1CiAgICAtIChocl9zd3J1bi5jKTogZG9uJ3QgcHJpbnQgYSB2YXJpYWJsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgdW5kZXIgbGludXguCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6Mjg6MDMKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHBhdGNoIGZyb20gTmllbHMgZm9yIHNvbGFyaXMgPjIuNi4KCmhhcmRha2VyICA3IE5vdiA5NyAxMzozNzoxNAogICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogVVNJTkcuKl9NSUJfTU9EVUxFIC0+IFVTSU5HLipfTU9EVUxFLgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM3OjQ0CiAgICAtIChocl9uZXR3b3JrLmMpOiBkb24ndCBwYXNzIGNoYXIgKiogdG8gaW50ZXJmYWNlc19zY2FuX25leHQoKS4KCmhhcmRha2VyICA3IE5vdiA5NyAxMzozODozNgogICAgLSAoc25tcHdhbGsuYyk6IHN0b3Agb24gbm8gcmVzcG9uc2UgZnJvbSBob3N0LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjE5OjI0CiAgICAtIChhY2NvbmZpZy5oKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGRlZmluZSBfQ1JUSU1QIGZvciB1bml4IGR1ZSB0byBXMzIgYmFkIE9TIGRlc2lnbnMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MTk6NTkKICAgIC0gKHNubXBnZXRuZXh0LmgpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIF9DUlRJTVAgaW4gZnJvbnQgb2YgZXJybm8gZGVjbGFyYXRpb24uCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MjA6NTQKICAgIC0gKHBhcnNlLltjaF0sIHNubXBfY2xpZW50LmMpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIF9DUlRJTVAgaW4gZnJvbnQgb2YgZXJybm8gZGVjbGFyYXRpb24uCiAgICAgIC0gZGVmaW5lIGZpbmRfbm9kZSBleHRlcm5hbGx5LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjIyOjA5CiAgICAtICh3aW4zMi8qKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHdpbjMyIHNwZWNpZmljIGNoYW5nZXMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6Mjg6NTkKICAgIC0gKCopOiBtZXJnZSB0byBtYWluIGJyYW5jaDogIHBhdGNoZXMgZnJvbSBKb2UgTWFyem90LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjE2OjUzCiAgICAtIChjb25maWd1cmUuaW4pOiB3YXRjaCBvdXQgZm9yIC91c3IvdWNiL2NjIG9uIHNvbGFyaXMgYW5kIGRvbid0IHVzZSBpdC4KCmhhcmRha2VyICA3IE5vdiA5NyAxNjozNzowMQogICAgLSAoTkVXUywgUkVBRE1FLCBUT0RPKTogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjM4OjQ5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMCApCgpoYXJkYWtlciAxMiBOb3YgOTcgMDc6NDI6MjQKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogVzMyIHNwZWNpZmljIGZpeGVzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA4OjI2OjQ1CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIEZyZWUgYSBwZHUgaW4gYSBzcG90IHRoYXQgc2hvdWxkIHRlY2huaWNhbGx5IG5ldmVyIGJlIG5lZWRlZCwgYnV0CiAgICAgICAgaXMgbmljZSBmb3IgcGVvcGxlIHJlYWRpbmcgdGhlIGNvZGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDk6MTc6MDgKICAgIC0gKEZBUSk6IERvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyIDEyIE5vdiA5NyAwOToxNzoyOAogICAgLSAobWliX2FwaS4zKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA5OjE4OjAyCiAgICAtIChocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCBmb3IgbGludXgvaHB1eDEwIHByb2JsZW1zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI1OjMwCiAgICAtIChORVdTLCBUT0RPKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2MgdXBkYXRlLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI3OjA4CiAgICAtICgqL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI3OjQ2CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNvbGFyaXMgcGF0Y2hlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyODoxMQogICAgLSAocGFydHlfdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjk6NDIKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMwOjU3CiAgICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdmFyaW91cyAocmVtb3ZlIHVubmVlZGVkIHZhcnMsIGV0YykuCiAgICAgIC0gYWRkIHNubXB0YWJsZS4KICAgICAgLSBtYWtlIHNubXB0cmFwZCBtdWx0aS1saW5ndWFsLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMyOjIyCiAgICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB2MmMgc3VwcG9ydCBhbmQgYXJndW1lbnQgcGFyc2luZyBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMzOjIwCiAgICAtIChtYW4vc25tcGRlbHRhLjEsc25tcHRhYmxlLjEsc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvY3VtZW50YXRpb24gY2hhbmdlcyBhbmQgYWRkaXRpb25zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjM4OjM2CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwYXJzZXIgaW1wcm92ZW1lbnRzLgogICAgICAtIHBhcnNlciBkaXJlY3RvcnkgY2FjaGluZy4KICAgICAgLSBzYXZlX2Rlc2NyaXB0aW9ucy9taWJfd2FybmluZ3Mgc2V0IGZ1bmN0aW9ucy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDo0NDo0NwogICAgLSAoTkVXUyk6IGRvYyB1cGRhdGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6MTA6MjcKICAgIC0gKHN5c3RlbS5oKTogRG9uJ3QgaW5jbHVkZSBjb25maWcuaCEKCmhhcmRha2VyIDEyIE5vdiA5NyAxNToxNjo0NAogICAgLSAocGFydHlfdmFycy5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNToyMTo0MQogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6NDI6MDIKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNjowNTo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTEgKQoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjI3OjExCiAgICAtICh3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogZnVuY3Rpb24gY2hhbmdlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDozNTowMAogICAgLSAoKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgIC0gRml4ZXMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDozNToyNwogICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgIC0gRml4ZXMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDo0MzozMwogICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBmaXggcXNvcnQgcGFyYW1zIGZvciBTVERDLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjQ3OjQ3CiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IFNUREMgdHlwb3MuCgpoYXJkYWtlciAxNCBOb3YgOTcgMDg6MzE6NDEKICAgIC0gKHdvbWJhdC5jKTogY29kZSBjb21tZW50cyBmcm9tIEFsYW4gQmF0aWUuCgpoYXJkYWtlciAxNCBOb3YgOTcgMDg6MzI6MjYKICAgIC0gKFJFQURNRSk6IGNvZGVyIGxpc3QgdXBkYXRlLgoKaGFyZGFrZXIgMTQgTm92IDk3IDEyOjIxOjEwCiAgICAtICh3b21iYXQuYyk6IHF1aWNrIGRvYyBjaGFuZ2UuCgpoYXJkYWtlciAxNCBOb3YgOTcgMTI6MzU6MTkKICAgIC0gKEZBUSwgTkVXUywgUkVBRE1FKTogbGFzdCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoJCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4zIC0+IFYzLjIKCndoYXJkYWtlIDExIEZlYiA5NyAxMjo0ODowNgogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5saW51eC5oKTogUGF0Y2ggZnJvbSBKZW5uaWZlciBCcmF5OgogICAgICAtIEdldCBhZ2VudCB3b3JraW5nIG9uIGxpbnV4LgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjUwOjQ2CiAgICAtIChzbm1wX3ZhcnMubGludXguaCk6IFJlbW92ZWQgbm9uLWxpbnV4IHNwZWNpZmljIHN0dWZmLgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjU0OjM2CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBGaXggaHB1eCBzcGVjaWZpYyBwcm9ibGVtcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxMzoxMToyMQogICAgLSAoKk1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgIC0gRml4IGFsbCBNYWtlZmlsZS5pbidzIHRvIHN1cHBvcnQgYSBkaWZmZXJlbnQgc3JjIGRpci4KCndoYXJkYWtlIDExIEZlYiA5NyAxMzoxMjoxOQogICAgLSAoUkVBRE1FKTogVXBkYXRlIHBlb3BsZSBzdXBwbHlpbmcgcGF0Y2hlcyBsaXN0LgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjE5OjM3CiAgICAtIChhbGwgLmMgd2l0aCBtYWluKCksIHNubXBsaWIvKik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgICAtIE1ha2UgYmV0dGVyIHN1cHBvcnQgZm9yIHNoYXJlZCBsaWIgcG9zc2liaWxpdGllcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxMDoxMQogICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBGaXggI2lmZGVmLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjExOjI0CiAgICAtICh7bG9jYWwsbWFuLG92fS9NYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgaW4gZnJvbnQgb2YgdGFicy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxMzozNAogICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmUgbm9uLXN0YXRpYyBtZDVkaWdlc3QgcHJvdG90eXBlLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjE0OjA1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTEgKQoKd2hhcmRha2UgMTEgRmViIDk3IDE2OjQyOjAyCiAgICAtIChhcHBzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZGVzY2VuZCB3aGVuIG1ha2UgY2xlYW5pbmcuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTY6NDQ6MDgKICAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTc6MDA6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogUmVzdCBvZiBQaGlsaXAncyBwYXRjaCB0byBmaXggc3JjZGlyIHByb2JsZW1zIChzaCB2YXJzKS4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo0MTowOAogICAgLSAoYWdlbnQvc25tcF92YXJzLCBhZ2VudC9taWJncm91cCk6IERhdmUgU2hpZWxkIHNwbGl0IHVwIHRoZQogICAgICBzbm1wX3ZhcnMuYyBhbmQgcmVsYXRlZCBmaWxlcyBpbnRvIHBpZWNlcyBmb3IgZWFzaWVyIG1hbmFnZW1lbnQuCiAgICAgIFRoZSByZXN1bHRzIG9mIGhpcyB3b3JrIGFyZSBpbiB0aGUgbmV3IGFnZW50L21pYmdyb3VwIGRpcmVjdG9yeS4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo0NzoxMwogICAgLSAobWliLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIHJlbW92ZQogICAgICBBTlNJIHNwZWNpZmljIHJlcXVpcmVtZW50cy4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo1MzoyNAogICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogIE1ha2UgZGVwZW5kLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMwOjA0CiAgICAtIChhbGFybS5jKTogdHlwZWRlZiBmb3IgZ2V0U3RhdFB0cigpLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMwOjM2CiAgICAtIChldmVudC5jKTogV2FzIHBhc3NpbmcgYW4gaW50IHRvIGJjb3B5IGluc3RlYWQgb2YgJmludC4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMToyNQogICAgLSAoaWNtcC5jKTogZG9uJ3QgdXNlIHJldCB2YXJpYWJsZSwgc2luY2UgaXQncyBub3QgZGVmaW5lZC4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMjozMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUmVtb3ZlIE1BWF9OQU1FX0xFTkdUSCByZXF1aXJlbWVudHMuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTY6MTE6MDkKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMiApCgp3aGFyZGFrZSAgNCBNYXIgOTcgMTU6NDY6MzAKICAgIC0gKGNvbmZpZyosIG1pYmdyb3VwL01ha2VmaWxlLmluKToKICAgICAgLSBtaWJncm91cCBjb21waWxlIGxpc3QgaXMgYnVpbGQgYnkgY29uZmlndXJlIGFuZCBjYW4gYmUgYXVnbWVudGVkCiAgICAgICAgYnkgdGhlIC0td2l0aC1taWItbW9kdWxlcz0ibGlzdCBvZiBtb2R1bGVzIiBjb21tYW5kIGxpbmUgdG8gY29uZmlndXJlLgoKd2hhcmRha2UgIDUgTWFyIDk3IDA5OjQ5OjU5CiAgICAtIChjb25maWcqLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBBZGRlZCAubyBmaWxlIGxpc3QgdG8gYWdlbnQvTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KICAgICAgLSBuZXcgZmlsZXMgZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZToKICAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaDogIEEgbGlzdCBvZiBtaWIgLmggZmlsZXMgZm9yIHNubXBfdmFycy5oLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgbW9kdWxlICptdXN0KiBoYXZlIGEgLmggZmlsZSkKICAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5pdHMuaDogQSBsaXN0IG9mIGluaXRfd29tYmF0KCkgdHlwZSBmdW5jdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbmx5IHByZXNlbnQgaWYgZXhpc3QgaW4gd29tYmF0LmMpLgogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9sb2Fkcy5oOiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgbmV3IG1hY3JvIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtaWIuaCBmaWxlcyBjYWxsZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX2xvYWRfbWliKCksIHdoaWNoIHNpbXBsaWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxvYWRpbmcgb2YgdGhlIG1pYiBzZWN0aW9ucy4KCndoYXJkYWtlICA1IE1hciA5NyAxMDowMzo1OAogICAgLSAoc3lzdGVtLmMpOiByZW1vdmVkIHN5c3RlbSBubGlzdCAodW51c2VkKS4KCndoYXJkYWtlICA1IE1hciA5NyAxMToxNzo0NAogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRWx3eW4gQiBEYXZpZXM6CiAgICAgIC0gRml4IGEgUERVIGNsb25pbmcgYnVnLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjIwCiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODoyMwogICAgZmlsZSBrZXJuZWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODo0NQogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6NDgKICAgIGZpbGUgc25tcGQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KCndoYXJkYWtlICA1IE1hciA5NyAxMTozNToxOAogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mzc6MzUKICAgIC0gKFJFQURNRSk6IENvbnRyaWJ1dGVyIG5hbWUgYWRkaXRpb24uCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTU6MDY6NDEKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE2OjEzOjM4CiAgICAtIChhY2xfdmFycy5jKTogaW5jb3JyZWN0bHkgZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGZvciB3cml0ZV9hY2woKS4KCndoYXJkYWtlICA1IE1hciA5NyAxNjoxNTo1NAogICAgLSAoc25tcF9hcGkuYyk6IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBpbiBzbm1wX3BhcnNlLiAgUG9zc2libHkgd3JvbmcuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTY6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBZZXAuIEl0IHdhcyB3cm9uZy4gIFRlc3RlZCBhbmQgd29ya3Mgbm93LgoKd2hhcmRha2UgIDcgTWFyIDk3IDA5OjA2OjM0CiAgICAtIChleHRlbnNpYmxlLyogLT4gbWliZ3JvdXAvKik6IG1vdmVkIGV4dGVuc2libGUgc3R1ZmYgdG8gbWliIG1vZHVsZXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMDk6MDc6MDcKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtb3JlIG5vbi1taWJncm91cCBzcGVjaWZpYyBjYWxscyBhbmQgaGVhZGVycy4KCndoYXJkYWtlICA3IE1hciA5NyAwOTo1OToyOAogICAgLSAoc25tcF92YXJzLmgsIG1pYmdyb3VwLyopOiBzdHJpY3QtcHJvdG90eXBpbmcgYW5kIGNvbmZpZ19yZXF1aXJlKClzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjA3OjUzCiAgICAtIChtaWJtb2R1bGUvdmVyc2lvbnRhZyk6IG1vdmVkIGludG8gcGxhY2UgZnJvbSBleHRlbnNpYmxlLwoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjM0OjUzCiAgICAtIChocHV4LltjaF0pOiBBZGRlZCBocHV4IHNwZWNpZmljIGZpbGVzIGZyb20gZXh0ZW5zaWJsZSBkaXIuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6NDM6MDgKICAgIC0gKGV4dGVuc2libGUvKik6IGN2cyByZW1vdmluZyBmaWxlcy4KCndoYXJkYWtlICA3IE1hciA5NyAxMDo0OTowMAogICAgLSAobWliZ3JvdXAvc3RydWN0LmgpOiBtb3ZlZCB0byBoZXJlLgoKd2hhcmRha2UgIDcgTWFyIDk3IDExOjQzOjA1CiAgICAtIChjb25maWcqKTogZ2VuZXJhdGUgYSBtaWJfbW9kdWxlX2NvbmZpZy5oIHdpdGggZGVmaW5lcyBvZiB3aGF0cyBiZWluZyB1c2VkLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjM5OjI0CiAgICAtIChtYWtlZGVwZW5kLmluKTogbmV3IG1ha2UgZGVwZW5kIHNjcmlwdAoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQwOjQwCiAgICAtIChyZW1vdmUtZmlsZXMpOiBhZGQgbWFrZWRlcGVuZC5pbgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ2OjE1CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogRml4IHNlZHNjcmlwdCBnZW5lcmF0aW9uLiAgc2lnaC4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo0Nzo0NQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgZXh0ZW5zaWJsZS8gcmVtb3Zlcy4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo0ODo1OQogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IHJlbW92ZSBleHRwcm90by5oIGluY2x1ZGUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTA6MTUKICAgIC0gKG1pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKTogZGVwZW5kLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjUwOjUyCiAgICAtIChocHV4LmMpOiBpZmRlZiBhIGZldyBoZWFkZXJzIGZvciBjb3JyZWN0IG1ha2UgZGVwZW5kLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjUxOjMwCiAgICAtIChzbm1wbGliL3NubXAuYyk6IHJlbW92ZSBzZWNvbmQgY3R5cGUuaCBpbmNsdWRlLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE0OjAxOjUxCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTMgKQoKd2hhcmRha2UgIDcgTWFyIDk3IDE1OjAxOjA1CiAgICAtIChtaWJncm91cC8qKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE1OjAyOjE4CiAgICAtIChjb25maWd1cmUpOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTY6MDk6NTgKICAgIC0gKGNvbmZpZyopOiBtYWtlIG5ldyBjb25maWd1cmUgb3B0aW9ucyByZXNwZWN0ICQoc3JjZGlyKS4KCndoYXJkYWtlICA3IE1hciA5NyAxNjoxMTo1MAogICAgLSAoY29tbW9uX2hlYWRlci5oKTogY29tbWVudCBvdXQgZW5kIG9mICNlbmRpZi4KCndoYXJkYWtlIDEwIE1hciA5NyAxNjo1NTo0NgogICAgLSAoY29uZmlndXJlLmluKTogTmV3IGNvbmZpZ3VyZSBvcHRpb246ICAtLXdpdGgtb3V0LW1pYi1tb2R1bGVzPSJsaXN0Ii4KCndoYXJkYWtlIDEwIE1hciA5NyAxNzoyODoyOQogICAgLSAoY29uZmlndXJlLmluKTogc3BhY2UgcHJvdGVjdCBtb2R1bGVzIHdoZW4gY2hlY2tpbmcgZm9yIHdpdGggZ3JlcC4KCndoYXJkYWtlIDExIE1hciA5NyAwOTowNDowMwogICAgLSAoaXAuYyk6IGZyZWVic2QyIHBhdGNoLgoKd2hhcmRha2UgMTEgTWFyIDk3IDE3OjM5OjIzCiAgICAtIChtaWJncm91cC8qKToKICAgICAgLSByZW1vdmUgdHJhaWxpbmcgO3Mgb24gYnVuY2hlcyBvZiBmdW5jdGlvbnMuCiAgICAgIC0gbWFrZSBldmVyeXRoaW5nIGJ1dCBpbnRlcmZhY2VzLmMgY29tcGlsZSBvbiBpcml4Ni4zLgogICAgLSAoY29uZmlnKixzeXN0ZW0uYyk6IHVzZSB1bmFtZSBhbmQgZ2V0aG9zdG5hbWUgaWYgYXZhaWxhYmxlLgogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBEb24ndCBjaGVjayBfS0VSTkVMIGlmIGlmbmV0LmlmX210dSBhbHJlYWR5IHdvcmtzLgoKd2hhcmRha2UgMTIgTWFyIDk3IDA5OjI4OjA0CiAgICAtIChtaWJncm91cC9zbm1wLltoY10gLT4gbWliZ3JvdXAvc25tcF9taWIuW2hjXSk6IE1vdmVkIGR1ZSB0byBuYW1lIGNsYXNoZXMuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NDc6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbiwgc25tcGQuYywgc25tcF9hZ2VudC5jLCByb3V0ZV93cml0ZS5bY2hdLAogICAgICB2YXJfcm91dGUuW2NoXSwgaXAuW2NoXSwgc25tcC5bY2hdIC0+IHNubXBfbWliLltjaF0pOgogICAgICAtIE1vdmVkIHNubXAgbWliIG1vZHVsZSAtPiBzbm1wX21pYiBmb3IgbmFtaW5nIGNvbmZsaWN0cyB3aXRoIHNubXBsaWIuCiAgICAgIC0gTW92ZWQgc25tcF92YXJfcm91dGUuYyAtPiBtaWJncm91cC92YXJfcm91dGUuYwogICAgICAtIE1vdmVkIHdyaXRlX3JvdXRlLmMgLT4gbWliZ3JvdXAvd3JpdGVfcm91dGUuYwoKd2hhcmRha2UgMTIgTWFyIDk3IDE1OjQ4OjM3CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgdXBkYXRlLgoKd2hhcmRha2UgMTIgTWFyIDk3IDE1OjU1OjIwCiAgICAtIChtaWJncm91cC9SRUFETUUpOiBkb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTc6MTU6MjAKICAgIC0gKHNubXBfYXBpLmMpOiByZXR1cm5zIGZyb20gaW5ldF9hZGRyIGFyZSBpbl9hZGRyX3QgKHVfaW50KSBub3QgdV9sb25nLgoKd2hhcmRha2UgMTMgTWFyIDk3IDA5OjM3OjM3CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIGluX2FkZHJfdCBhbmQgZGVmaW5lIGFzIHVfaW50ICgzMiBiaXRzKSBpZiBub3QgcHJlc2VudC4KICAgIC0gKGFwcHMvKi5jLCBwYXJ0eV9wYXJzZS5jKTogdXNlIGl0LgoKd2hhcmRha2UgMTMgTWFyIDk3IDEwOjE0OjU5CiAgICAtIChleHRlbnNpYmxlX3N1YnRyZWVzLmgpOiBSZW1vdmVkIGZpbGUuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTQ6MzU6MDUKICAgIC0gKGFnZW50LyosIG1pYmdyb3VwLyopOiBtb3ZlZCBhbGFybSwgY29udGV4dCwgdmlld3MsIGV2ZW50LCBwYXJ0eSwKICAgICAgYW5kIGFjbCB2YXJpYWJsZSBncm91cHMgdG8gbWliZ3JvdXAvLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE0OjQ0OjU1CiAgICAtIChrZXJuZWxfc3Vub3M1LltjaF0pOiBtb3ZlZCB0byBtaWJncm91cC8uCiAgICAtIChyb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jKTogZGVsZXRlIGZyb20gYWdlbnQgZGlyLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjM1OjI2CiAgICAtIChocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBtaW5vciBwcm9ibGVtcy4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTozNjoxNAogICAgLSAodmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLCBhY2xfdmFycy5jKTogZG9uJ3QgaW5jbHVkZSBzbm1wdjJfdmFycy5oLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjQ1OjE0CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIHN5c3RlbSBkZXBlbmRlbnQgbW9kdWxlcy4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTo0NjoxNgogICAgLSAoKi9NYWtlZmlsZS5pbik6IE5ldyBtYWtlIGRlcGVuZCBydWxlcyB0byBzZXBlcmF0ZSBzeXN0ZW0vbm9uIGRlcGVuZGVudCBzdHVmZi4KCndoYXJkYWtlIDEzIE1hciA5NyAxNjowNzo1MgogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBydWxlIGZpeGVzIGFzIHdlbGwuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTY6MTA6NTgKICAgIC0gKGNvbmZpZyopOiByZW1vdmUgZHVwbGljYXRlIGdldGhvc3RuYW1lIGNoZWNrLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE2OjE3OjU5CiAgICAtIChhcHBzLyovTWFrZWZpbGUuaW4pOiBkZXBlbmQgcHJvYmxlbXMgZml4LgoKd2hhcmRha2UgMTMgTWFyIDk3IDE3OjE3OjMyCiAgICAtIChjb21tb25faGVhZGVyLmgpOiBmaXggcGF0aCB0byBhbGFybS5oLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE3OjQ3OjMyCiAgICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgIC0gQSBsYXJnZSBudW1iZXIgb2YgcHJvYmxlbXMgd2l0aCB0aGUgTGludXggcG9ydAogICAgICAtIFNvbWUgcHJvYmxlbXMgd2l0aCBOZXRCU0QgMS4yQywgYnV0IGl0J3Mgc3RpbGwgbm90IHBlcmZlY3QKICAgICAgLSBNb3JlIChzeW1ib2xpYykgZGVidWcgb3V0cHV0IGZyb20gc25tcGQsIHdoZW4gdXNpbmcgLVYuIC1kIGltcGxpZXMgLVYKICAgICAgICBTaG93cyB5b3UgdmFyaWFibGUgcmVxdWVzdGVkIGFuZCB2YWx1ZSByZXR1cm5lZAogICAgICAtIFJldHVybiBpcFJvdXRlTWFzayB1bmRlciBTb2xhcmlzCiAgICAgIC0gc25tcG5ldHN0YXQgLXIgc2hvd3Mgbm9uLXN0YW5kYXJkIG5ldG1hc2tzCiAgICAgIC0gc25tcG5ldHN0YXQgLW8gKG5ldykgc2hvd3MgaW50ZXJmYWNlIG9jdGV0cywgd2l0aG91dCBlbnF1aXJpbmcgZm9yIG10dQogICAgICAgIGFuZCBvdGhlciB2YXJpYWJsZXMgbm90IHByZXNlbnQgZm9yIGEgQ2lzY28gRnJhbWUtUmVsYXkgdmlydHVhbCBjaXJjdWl0CiAgICAgICAgaW50ZXJmYWNlCiAgICAgIC0gc25tcG5ldHN0YXQgdGNwL3VkcCBwcmludC1vdXQgaGFkIG50b2hzL2h0b25zIGluIHdyb25nIHBsYWNlcyBmb3IgcG9ydAogICAgICAgIG51bWJlcnMgKHNob3dzIHVwIG9uIGxpdHRsZS1lbmRpYW4gYXJjaGl0ZWN0dXJlcykKICAgICAgLSBhZGRzIGEgbWFrZXRhcmdldCBzY3JpcHQgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBwYXJhbGxlbCBzeW1saW5rZWQKICAgICAgICBzb3VyY2UgZGlyZWN0b3J5LiBVc2VmdWwgaWYgeW91ciBtYWtlIGRvZXMgbm90IHN1cHBvcnQgVlBBVEgKCndoYXJkYWtlIDE0IE1hciA5NyAwOTozOToxNQogICAgLSAodWNkLXNubXAudHh0LCBtaWIudHh0LCBNYWtlZmlsZS5pbik6IERvbid0IGJ1aWxkIG1pYiBmaWxlcyBhbnltb3JlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjQ2OjMxCiAgICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBtaWJzLy4KCndoYXJkYWtlIDE0IE1hciA5NyAwOTo0Nzo0NwogICAgLSAobWliLnR4dCk6IHN0cmVhbWVkIGRvd24uCgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6NTA6MDMKICAgIC0gKG1pYnMve3JmYzEyNzEsc25tcHYyLHVjZC1zbm1wfS50eHQpOiBOZXcgbWlicyBkaXJlY3RvcnkgZm9yIHN1Yi1taWJzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEwOjQ4OjM1CiAgICAtIChNYWtlZmlsZS5pbiwgY29uZmlnKiwgbWlicy9NYWtlZmlsZS5pbik6IGVuYWJsZSBtaWJzLyBtYWtlIGluc3RhbGwuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTA6NDk6MDMKICAgIC0gKHVjZC1zbm1wLnR4dCk6IHJlbW92ZSB0aGUgbGFzdCBvZiB0aGUgc2VkIHNjcmlwdCBkZWZzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjAxOjE5CiAgICAtIChzbm1wZC4xLmRlZik6IFVwZGF0ZWQgdG8gaW5jbHVkZSAtYy8tQyBhbmQgU05NUENPTkZQQVRIIGVudiB2YXIuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MDc6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogRml4IHNlZHNjcmlwdCB0byBpbmNsdWRlIHMjIGFzIHdlbGwgYXMgcy8gY29tbWFuZHMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MTc6MDYKICAgIC0gKG1ha2VkZXBlbmQuaW4pOiBydW4gb24gc25tcG5ldHN0YXQgZGlyIGFsc28uCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MTg6MTcKICAgIC0gKGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MjA6MzkKICAgIC0gKHNubXBfdmFyc19ldmVudC5oKTogYXhlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjIyOjI5CiAgICAtIChzbm1wX2dyb3VwdmFycy5oKTogYXhlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjUxOjU5CiAgICAtIChjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pOiBmaXggdHJhcCBieSBpbmNsdWRpbmcgb3B0aW9uYWwgLm8gZmlsZXMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTM6MjIKICAgIC0gKHNubXBkLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc3lzdGVtLltjaF0pOgogICAgICAtIDY0Yml0IGZpeDogZ2V0X215YWRkcigpIHNob3VsZCByZXR1cm4gaW50IG5vdCBsb25nLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjU0OjIyCiAgICAtIChhY2NvbmZpZy5oLCB1Y2Qtc25tcC50eHQpOiByZWNvZ25pemUgbmV3IGhvc3RzIGZvciBzeXNPYmplY3RJZC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1NTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU0ICkKCndoYXJkYWtlIDE0IE1hciA5NyAxNjoxNjo1MgogICAgLSAobWliZ3JvdXAvUkVBRE1FKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxOCBNYXIgOTcgMTY6NTI6MzQKICAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTggTWFyIDk3IDE2OjUzOjI2CiAgICAtIChGQVEpOiBzbm1wLmNvbmYgLT4gc25tcGQuY29uZgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjQ5OjU0CiAgICAtIChtZW1vcnkuYyk6IHByb3RvdHlwZSB3cml0ZSBmdW5jdGlvbiBiZXR0ZXIuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTA6NDkKICAgIC0gKGV4YW1wbGUuYywuaCk6IE5ldyBleGFtcGxlIG1pYiBtb2R1bGUgZHVwbGljYXRpbmcgdGhlIHBhc3N0ZXN0CiAgICAgIHNjcmlwdCBpbiBDIGNvZGUuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTE6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogV2F0Y2ggb3V0IGZvciBtdWx0aXBsZSBzcGFjZXMgaW4gQyBkZWZzLgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjUxOjMzCiAgICAtIChSRUFETUUpOiBydW5zIG9uIGJzZGkgMi4xLgoKd2hhcmRha2UgMjQgTWFyIDk3IDEzOjU2OjUwCiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMjUgTWFyIDk3IDA5OjM5OjAxCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgc3lzbG9jYXRpb24gYW5kIHN5c2NvbnRhY3QgZXhhbXBsZXMuCgp3aGFyZGFrZSAyNSBNYXIgOTcgMTM6MzA6MDUKICAgIC0gKElOU1RBTEwpOiBtaW5vciBkb2MgdXBkYXRlIGZvciBuZXcgZmxhZ3MuCgp3aGFyZGFrZSAyNiBNYXIgOTcgMTc6MDU6MTEKICAgIC0gKG1pYmdyb3VwL3N5c3RlbS5jKTogcmVwb3J0IGFnZW50IHVwdGltZSByYXRoZXIgdGhhbiBzeXN0ZW0gdXB0aW1lLgoKd2hhcmRha2UgMjIgQXByIDk3IDA4OjQyOjAxCiAgICAtIChGQVEpOiB2YXJpb3VzIHVwZGF0ZXMuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6MDI6NTYKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjIwOjMwCiAgICAtIChSRUFETUUuc211eCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYyk6CiAgICAgIC0gc211eCBzdXBwb3J0IGZvciBnYXRlZCBmcm9tIFJvaGl0IER1YmUuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6NDc6MDYKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IHJlbW92ZSBkdXBsaWNhdGUgKHdhcm5pbmcpIFRDUCBkZWZpbmVzIG9uIG9zZjQgc3lzdGVtcy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTo1MTo0NAogICAgLSAoc25tcF9iZ3AuW2NoXSwgc25tcF9yaXAyLltjaF0sIHNubXBfb3NwZi5bY2hdKToKICAgICAgLSBjb25mb3JtIHRvIG5ldyBtb2R1bGUgc3RhbmRhcmRzIG9mIGNvZGluZy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNjo0MToxMAogICAgLSAoc25tcF9iZ3AuYywgc25tcF9yaXAyLmMsIHNubXBfb3NwZi5jLCBzbXV4LltjaF0pOgogICAgICAtIHN0YW5kYXJkaXplIGhlYWRlcnMgZm9yIGF1dG9jb25mLgogICAgICAtIHNtdXhfaW5pdCgpIC0+IGluaXRfc211eCgpLgogICAgICAtIFNNVVhERUJVRyAtPiBET0RFQlVHICgtLWVuYWJsZS1kZWJ1Z2dpbmcgdHVybnMgdGhpcyBvbiBhdXRvbWF0aWNhbGx5KS4KCndoYXJkYWtlIDIyIEFwciA5NyAxNzo0NTowOQogICAgLSAoY29uZmlnKiwgc211eC5jKTogQ2hlY2sgZm9yIGhlYWRlcnMgYW5kIGRlZmluZSBGRF9DT1BZIGlmIG5vdCBkZWZpbmVkLgoKd2hhcmRha2UgMjIgQXByIDk3IDIwOjQ5OjE1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTUgKQoKd2hhcmRha2UgIDkgTWF5IDk3IDIyOjM4OjE1CiAgICAtIChtaWIuW2NoXSwgcGFyc2UuW2NoXSwgTWFrZWZpbGUuaW4pOiBOZXcgcGFyc2VyIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gUnVuLXRpbWUgY29udHJvbCBvZiBpbml0aWFsIG1vZHVsZSBsb2FkaW5nCiAgICAgICAgICAgICAgKHVzZXMgZW52IHZhcmlhYmxlcyBNSUJESVJTLCBNSUJTLCBhbmQgTUlCRklMRSkKICAgICAgLSBEZWZpbmVkIGludGVyZmFjZXMgZm9yIGxvYWRpbmcgbW9kdWxlcyBhbmQgcmV0cmVpdmluZyBlbnRyaWVzCiAgICAgIC0gTW9kdWxlIHNjb3Bpbmcgbm93IGluY2x1ZGVzIFRleHR1YWwgQ29udmVudGlvbnMKICAgICAgLSBUb2tlbnMgaW1wbGVtZW50ZWQgaW50ZXJuYWxseSBubyBsb25nZXIgcmVxdWlyZSBpbXBvcnRpbmcgdGhlCiAgICAgICAgY29ycmVzcG9uZGluZyBtb2R1bGVzCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6NDY6MzAKICAgIC0gKHNtdXguYywgY29uZmlnKik6CiAgICAgIC0gY2hlY2sgZm9yIHNndHR5LmggYW5kIHByb3RvdHlwZSBiZXR0ZXIuCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6NDY6NDYKICAgIC0gKFRPRE8pOiBVcGRhdGUuCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjM6NTI6NDAKICAgIC0gKHNtdXguW2NoXSk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6MDM6MzIKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZyAobW9zdGx5KS4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDoyODoyNQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgbmVnYXRpdmUgbnVtYmVycyBpbiBtaWJzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjQ2OjQ0CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcy4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDo1MDoyMAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMgKGV2ZW4gYmV0dGVyKS4KCndoYXJkYWtlIDEwIE1heSA5NyAxNjo0MToyMwogICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZG9uJ3Qgc3VibWl0IGJsYW5rIGJ1Zy1yZXBvcnRzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjQ1OjE0CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIHVwZGF0ZS4KCndoYXJkYWtlIDEwIE1heSA5NyAxNjo1MjoxMQogICAgLSAobWliX2FwaS4zKTogTmV3IGZpbGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDEwIE1heSA5NyAxNzoyMzoyMQogICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRlZmF1bHQgdHJhcCBjb21tdW5pdHkuCiAgICAgIC0gbXVsdGlwbGUgdHJhcCBzaW5rcy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0Mzo1OQogICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogIEJTREkzIHNwZWNpZmljIGhlYWRlcnMgYW5kIGRlZmluZXMuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDQ6MTkKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogcmVtb3ZlZCBDQ0hBQ0sgPz8/LgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQ4OjEzCiAgICAtIChJTlNUQUxMLCBSRUFETUUsIFRPRE8pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0OToyMwogICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBtaWJfYXBpLjMuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NTI6NDgKICAgIC0gKG1pYnMvdWNkLXNubXAudHh0KTogUGF0Y2ggZnJvbSBNYXJpbyBEZUZhemlvIHRvIGZpeCB0eXBvcy4KICAgICAgLSBjb21waWxlcyB1bmRlciBTTk1QYyA0LjFnLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjI4CiAgICAtIChJRi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MjkKICAgIC0gKHVjZC50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozMQogICAgLSAoRXRoZXJMaWtlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozMgogICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMzCiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozNQogICAgLSAoSVAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM2CiAgICAtIChTTk1QdjItQ09ORi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozNwogICAgLSAoU05NUHYyLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozOQogICAgLSAoU05NUHYyLVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0MAogICAgLSAoU05NUHYyLVRDLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQyCiAgICAtIChTTk1QdjItVE0udHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDMKICAgIC0gKFRDUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDUKICAgIC0gKFVEUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDYKICAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDgKICAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQ5CiAgICAtIChSRkMxMjcxLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo1MQogICAgLSAoUkZDMTE1NS1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NTIKICAgIC0gKFJGQzEyMTMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUyOjEyCiAgICAtICh1Y2QudHh0KTogd2hvb3BzLiAgUmVtb3ZlZC4KCndoYXJkYWtlIDEzIE1heSA5NyAxMTo1NzoxMAogICAgLSAocmZjMTI3MS50eHQpOiByZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEyOjAyOjI2CiAgICAtIChzbm1wdjIudHh0KTogcmVtb3ZlZC4KCndoYXJkYWtlIDEzIE1heSA5NyAxMjowMzowNAogICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHJlbW92ZWQgc25tcHYyLnR4dCwgcmZjMTI3MS50eHQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTQ6NDg6NTkKICAgIC0gKHVjZC1zbm1wLnR4dCk6IENoYW5nZWQgSUQgdG8gVUNELVNOTVAKCndoYXJkYWtlIDEzIE1heSA5NyAxNTowNToyOAogICAgLSAoY29uZmlnKiwgSU5TVEFMTCk6IE5ldyBmbGFncyB0byBzZXQgcHJvbXB0ZWQgdmFsdWVzIGluc3RlYWQgb2YgcHJvbXB0aW5nLgoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjA1OjUzCiAgICAtIChSRUFETUUpOiBhcmNoaXRlY3R1cmUgbGlzdCB1cGRhdGUuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MzY6MDgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlZCBmcm9tIHVjZC1zbm1wLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNTozNjo1MQogICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gVUNELVNOTVAtTUlCLnR4dAoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjM4OjQ3CiAgICAtIChtaWJzL01ha2VmaWxlLmluKTogdWNkLXNubXAudHh0IC0+IFVDRC1TTk1QLU1JQi50eHQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTY6MjI6MTMKICAgIC0gKGNvbmZpZyosbWliLmMpOiBOZXcgY29uZmlndXJlIG9wdGlvbiAtLXdpdGgtZGVmYXVsdC1taWJzPSJsaXN0Omxpc3QiLgoKd2hhcmRha2UgMTQgTWF5IDk3IDExOjQxOjA5CiAgICAtIChNYWtlZmlsZS5pbiwgbWliLnR4dCk6IHJlbW92ZWQgbWliLnR4dCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5vIGxvbmdlciBuZWVkZWQuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTM6MTM6MTkKICAgIC0gKE1ha2VmaWxlLmluKTogd2FybiBpZiBtaWIudHh0IGlzIGluc3RhbGxlZCBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzoxODowMgogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBPZGRiam9ybiBTdGVmZmVuc2VuOgogICAgICAtIFByb3RlY3QgYWdhaW5zdCBiYXNoIG5lZWRpbmcgJzsncyBvbiBtdWx0aXBsZSBzdWJkaXIgbWFrZXMuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTM6NDU6MjQKICAgIC0gKHNubXBkLmMpOiAgVHlwZWNhc3QgbWFsbG9jLgoKd2hhcmRha2UgMTQgTWF5IDk3IDE1OjAwOjIyCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTYgKQoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjIyOjE4CiAgICAtIChpbnRlcmZhY2VzLmMpOiBwYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gZm9yIEZyZWVCU0QKCndoYXJkYWtlIDE1IE1heSA5NyAxMToyMzoyOQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IHB1cmVseSBudW1lcmljIE9JRHMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6Mjg6MTUKICAgIC0gKElOU1RBTEwpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHJlZmVyZW5jZSB0aGUgbWFrZXRhcmdldCBzY3JpcHQuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6Mjk6MzMKICAgIC0gKG1pYl9hcGkuMyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBNSUJTIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gQUxMLgoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjMwOjAxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGltcG9ydCBpbmRlbnRpZmllcnMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzE6MDEKICAgIC0gKFNOTVB2Mi1TTUkudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGNjaXR0IC0+IDAuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzI6NTYKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGluZyBhbmQgbnVsbCBjaGVja2luZy4KICAgICAgLSBpZiBNSUJTIGlzIHNldCB0byBBTEwsIHBhcnNlIGV2ZXJ5dGhpbmcgZm91bmQuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTQ6Mzc6MzkKICAgIC0gKHBhcnNlLmMpOiBwYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGRlYWwgd2l0aCBtdWx0aXBsZSBtb2R1bGUgSUQncyBiZWluZyByZWZlcmVuY2VkIG9yIG5vZGVzIGRlZmluZWQuCiAgICAgIC0gc3VwcmVzcyAibmFtZSBjbGFzaCIgd2FybmluZ3MgZm9yIGFub255bW91cyBub2Rlcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNToyMjo1MQogICAgLSAocGFyc2UuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBBZGQgbmV3IG5vZGUgc3RydWN0dXJlIGVudHJpZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6MDE6MTgKICAgIC0gKGNvbmZpZyosIG1pYi5jKToKICAgICAgLSBDaGFuZ2VkIGVudiB2YXJpYWJsZSBNSUJGSUxFIC0+IE1JQkZJTEVTIChzaW5jZSBpdCBpcyBhIGxpc3Qgbm93KS4KICAgICAgICAod2lsbCBhY2NlcHQgTUlCRklMRSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgogICAgICAtIEJ5IGRlZmF1bHQsICpubyogYWRkaXRpb25hbCBtaWJmaWxlcyBhcmUgbG9hZGVkIChpZSwgbWliLnR4dCBpcyBubwogICAgICAgIGxvbmdlciBsb2FkZWQpIGFuZCBtdXN0IGJlIHR1cm5lZCBvbiB0aHJvdWdoIGNvbmZpZ3VyZSBvciB0aGUgZW52IHZhci4KICAgICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnMgdG8gc2V0IGRlZmF1bHQgTUlCUywgTUlCRklMRVMsIE1JQkRJUlMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6MjI6MTkKICAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgICAtIERpc3BsYXkgZGVmYXVsdHMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjoyNjoxMgogICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgIC0gV29yZGluZyBhbmQgb3JkZXIgY2hhbmdlcyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjQzOjM3CiAgICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NlbjoKICAgICAgLSBGaXggdWRwX2lucGNiIHN0cnVjdHVyZXMuCgp3aGFyZGFrZSAxNiBNYXkgOTcgMTE6MjU6MzAKICAgIC0gKHBhcnNlLmMpOiBQcm90ZWN0IG1hbGxvYyBhZ2FpbnN0IDAgZXh0ZXJuYWwgaW1wb3J0cy4KCndoYXJkYWtlIDIwIE1heSA5NyAwODowMzozNQogICAgLSAodWRwLmMpOiBPbmx5IGRvIE1hcnRpbiBKYWNvYnNzZW4ncyBmaXhlcyBmb3IgZnJlZWJzZDIuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTg6NDkKICAgIC0gKFNOTVB2Mi1UQy50eHQpOiBDb21tZW50IG91dCBPYmplY3RTeW50YXggaW1wb3J0LgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjE5OjEyCiAgICAtIChwYXJzZS5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgaW1wb3J0IGNhbGxzLgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjE5OjI4CiAgICAtIChtaWIuYywgc25tcF9hdXRoLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKd2hhcmRha2UgMjAgTWF5IDk3IDEwOjA4OjI1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTcgKQoKd2hhcmRha2UgMjAgTWF5IDk3IDExOjI0OjI3CiAgICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjogIEZpeCBteSBjcHAgc3R1cGlkaXR5LgoKd2hhcmRha2UgMjAgTWF5IDk3IDE2OjUwOjE4CiAgICAtIChUT0RPKTogc25tcHNldCBzaG91bGQgY2hlY2sgYWdhaW5zdCBzaXplIGRlZmluZWQgaW4gbWliLgoKd2hhcmRha2UgMjAgTWF5IDk3IDE2OjUwOjU1CiAgICAtIChwYXJzZS5jKTogY29kZSBmcm9tIERhdmUgU2hpZWxkOiBhZGQgYmFjayBpbiBmaW5kX25vZGUoKSBmb3IgcGVybCB1c2FnZS4KCndoYXJkYWtlIDIxIE1heSA5NyAxMDoxMzozOAogICAgLSAoTkVXUyk6IFVwZGF0ZSBmb3IgMy4yLgoKd2hhcmRha2UgMjEgTWF5IDk3IDE1OjM4OjMyCiAgICAtIChORVdTKTogQ2hhbmdlcyBmcm9tIERhdmUuCgp3aGFyZGFrZSAyMSBNYXkgOTcgMTU6NDA6MzEKICAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgoKd2hhcmRha2UgMjIgTWF5IDk3IDEzOjEzOjU5CiAgICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiByZXN0b3JlZC4gIEdvdCB0cnVuY2F0ZWQuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6MzU6MTQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogU2V0IGRlZmF1bHQgTUlCIGxpc3QuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6MzY6MTcKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpYW5uZXMgcHJvYmxlbXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzc6MDIKICAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQpOiBGcm9tIE5pZWxzOiBjaGFuZ2UgaW1wb3J0IGNsYXVzZXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzc6MzkKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpZW5uZXMgcHJvYmxlbXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzg6MTMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBtdWx0aXBsZSBmcmVlcyBpbiB2MiBwZHUncy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzo0MDowOQogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyB0byBmaXggU05NUCBwZXJsIGFnYWluLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjQwOjMyCiAgICAtIChzbm1wX2FwaS5oKTogQ2hhbmdlIHRyYXAgdHlwZXMgZnJvbSBpbnQgdG8gbG9uZy4KCndoYXJkYWtlIDIzIE1heSA5NyAxNjoyMzo1NgogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU4ICkKCndoYXJkYWtlIDIzIE1heSA5NyAxNjozNDozMwogICAgLSAobWliX2FwaS4zKTogTW9kaWZpeSB0byBub3RlIGRlZmF1bHQgbWlicy4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1MDoyMAogICAgLSAoSU5TVEFMTCwgY29uZmlndXJlKTogZGVmYXVsdCBtaWJzIGxpc3RlZCBjb3JyZWN0bHkuCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTA6NTI6MTIKICAgIC0gKHNubXBfYXBpLmgpOiB0cmFwIGxvbmcncyBiYWNrIHRvIGludHMsIGJhZCBzb2x1dGlvbi4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1NjoxOQogICAgLSAoc25tcGNoZWNrLmRlZik6IG5ldyB2YXJpYWJsZXMgdG8gc2V0IHdhbGsvZ2V0L3NldCBjb21tYW5kIGxpbmUgdXNhZ2UuCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTE6Mzg6NDEKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG5pZWxzIEJhZ2dlc2VuIHRvOgogICAgICAtIGNsb3NlIG1pYmZpbGVzIGZvciBNSUJTPUFMTC4KICAgICAgLSBBbGxvdyBTWU5UQVggRGlzcGxheVN0cmluZyAoU0laRSgxLi4yNTUpKSBpbnNpZGUgT0JKRUNULVRZUEUuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4yLjEgLT4gVjMuMS4zCgp3aGFyZGFrZSAxMCBKYW4gOTcgMDg6NDM6NDIKICAgIC0gKENPUFlJTkcpOiAgVXBkYXRlIGZvciA5Ny4KCndoYXJkYWtlIDEwIEphbiA5NyAwODo0NjowMAogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciAvZGV2L2tzeW1zIGZvciBzb2xhcmlzIGtlcm5lbC4KCndoYXJkYWtlIDEwIEphbiA5NyAwODo0NjozNgogICAgLSAoc25tcHRyYXBkLmMpOiBSZW1vdmUgYnJva2VuIEZEX1NFVCBjb2RlLgoKd2hhcmRha2UgMTQgSmFuIDk3IDE2OjQ1OjMzCiAgICAtIChQT1JUSU5HLCBSRUFETUUsIFRPRE8pOiAgQWRkZWQgdWNkLXNubXAtY29kZXJzIGFzIGRlZmF1bHQgbWFpbCBhZGRyZXNzLgoKd2hhcmRha2UgMTcgSmFuIDk3IDA5OjI4OjU2CiAgICBwYXRjaCBuaWVscy4wCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTE6NTE6NDAKICAgIC0gKHNubXBkLmMsIGV4dGVuc2libGUuYyk6CiAgICAgIC0gTmV3IGFyZyAtYyBGSUxFOiAgCSAgIFJlYWQgRklMRSBhcyBhIGNvbmZpZ3VyYXRpb24gZmlsZSBhcyB3ZWxsLgogICAgICAtIE5ldyBhcmcgLUM6ICAgICAgIAkgICBEb24ndCByZWFkIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgICAgLSBOZXcgZW52IFNOTVBDT05GUEFUSDogIFJlYWQgc25tcGR7LC5sb2NhbH0uY29uZiBmaWxlcyBpbiA6IHNlcGVyYXRlZCBwYXRoLgoKd2hhcmRha2UgMTcgSmFuIDk3IDExOjU4OjQ2CiAgICAtIChzbm1wZC5jKToKICAgICAgLSBVc2FnZSgpIHVwZGF0ZSBhbmQgdmVyc2lvbiBwcmludG91dCB1cGRhdGUuCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTQ6NTU6MjgKICAgIERhdmUgU2hpZWxkIHBhdGNoZXMKCndoYXJkYWtlIDIwIEphbiA5NyAxMToxNzo1MwogICAgTmllbCdzIHBhdGNoZXMgaW50ZWdyYXRlZAoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjA5OjI1CiAgICAtIFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgICBpcC5pcEFkZHJUYWJsZS5pcEFkZHJFbnRyeS5pcEFkRW50UmVhc21NYXhTaXplLAogICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlSW5mbywgaXAuaXBOZXRUb01lZGlhVGFibGUsCiAgICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgICAtIGlwTmV0VG9NZWRpYS4KICAgIAogICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgICAtIHVkcE5vUG9ydCwgdGNwSW5FcnJzIGZpeGVzIGZvciBTb2xhcmlzLgogICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAgLSBzaW1wbGUgY29sZCBzdGFydCB0cmFwcyB2aWEgZXhlYygnc25tcHRyYXAnKS4KICAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjIyOjUzCiAgICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgIC0gKHNubXBfY2xpZW50LmMpOiBXYWl0IDEyMCBzZWNvbmRzIGJlZm9yZSByZXR1cm5pbmcuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6Mzc6MDgKICAgIC0gKGNvbmZpZyopOiBBdXRvaGVhZGVyIGlzIGR1bWI6ICBQdXQgbWFjcm8gZGVmaW5lcyBiZWxvd2UgQEJPVFRPTUAgc3ltYm9sLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjM4OjU5CiAgICAtIChzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogUmVtb3ZlIEFOU0kgY3BwICNlbGlmJ3MuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTA6MzcKICAgIC0gKHNubXBfdmFycy5jKTogYnNkaSAjaWZkZWYgZml4ZXMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTU6NDUKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIDxtYXJ0aW5AZXhtYW5kYXRvLnNlPjoKICAgICAgLSBhZGQgYnNkaSB0byBzb21lICNpZmRlZnMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTg6NTEKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiA8bWFydGluQGV4bWFuZGF0by5zZT46CiAgICAgIC0gd2F0Y2ggb3V0IGZvciBzdHJpbmcgbGVuZ3RocyBvbiB2ZXJzaW9uIGRlc2MgYW5kIHN5c25hbWUuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6Mzg6MjAKICAgIHBhdHJpY2UuMSBwYXRjaAoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjQzOjI1CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5bY2hdKToKICAgICAgLSBQYXRjaCBmcm9tIFBhdHJpY2UgVkFOQUNLRVIgPHZhbmFja2VyQHdvcmxkbmV0LmZyPjoKICAgICAgICAtIGZpeCByZXF1ZXN0IGRlbGV0aW9ucyBpbiBzbm1wX3JlYWQoKS4KICAgICAgICAtIGFkZGVkIHJldHVybiBhcmd1bWVudCB0byBzbm1wX2FkZF9udWxsX3ZhcigpLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjU5OjAyCiAgICAtIChleHRlbnNpYmxlLmMpOiBQYXRjaCBmcm9tIHN4anpoYW5nQHNzcy5zc2kxLmNvbToKICAgICAgICAtIGZpeCBkaXNrIHJlcG9ydGluZyBvbiBzdW5vcyA0LjEuMyB3aXRoIE9EUyAxLjAuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NTk6NTYKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMSApCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDg6MzM6MDQKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBQYXRjaCBmcm9tIEthcmwgTGVoZW5iYXVlciA8a2FybEBoYW1tZXIxLm9wcy5OZW9Tb2Z0LmNvbT46CiAgICAgIC0gI2lmIERPREVCVUcgLT4gI2lmZGVmIERPREVCVUcuCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDg6MzM6NTIKICAgIC0gKHNubXBkLmMpOiByZW1vdmUgc2Vjb25kIGNoYXIgZGVmaW5pdGlvbi4KCndoYXJkYWtlIDIxIEphbiA5NyAwODozNDozMgogICAgLSAoc25tcF9jbGllbnQuaCk6IHJlbW92ZSBzZWNvbmQgKHdyb25nKSBmdW5jdGlvbiBwcm90b3R5cGUuCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDk6MTc6NDIKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKToKICAgICAgLSBQYXRjaCBmcm9tIEthcmwgTGVoZW5iYXVlciA8a2FybEBoYW1tZXIxLm9wcy5OZW9Tb2Z0LmNvbT4KICAgICAgICAtIGhhbmRsZSBtdWx0aXBsZSBpbnRlcmZhY2UgbmFtZXMgPiAxMCBwcm9wZXJseS4KCndoYXJkYWtlIDI5IEphbiA5NyAxMDo0Nzo0MAogICAgYnVnIHJlcG9ydGluZyBzY3JpcHQgYWRkCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MDc6MDAKICAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgIC0gQWx3YXlzIHVzZSBtdWx0aXBhcnQ6IHZlcnNpb24gaW5mbyBhbmQgY29uZmlnLmNhY2hlIGFyZSBvbmUuCiAgICAgLSByZS1hcnJhbmdlZCBhIGJpdC4KICAgICAtIEFkZGVkIGludHJvZHVjdGlvbi4KICAgICAtIEd1ZXNzIGF0IGRvbWFpbiBuYW1lIGlmIHBvc3NpYmxlLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjA3OjU5CiAgICAtIChhY2NvbmZpZy5oKToKICAgICAtIFNOTVBCTE9DSyA9ICFTTk1QQkxPQ0sKCndoYXJkYWtlIDI5IEphbiA5NyAxMjowOTowNQogICAgLSAoYWNsb2NhbC5tNCk6IEZpeCBjaGVja19zdHJ1Y3RfZm9yIHRvIGRlZmluZSB0aGluZ3MgY29ycmVjdGx5LgoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjEwOjI4CiAgICAtIChjb25maWd1cmUuaW4pOiBOZXcgcHMgb3B0aW9ucyB0byBjaGVjayBmb3IuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MTE6MDQKICAgIC0gKEZBUSk6IHJldmlzaW9uIG9uZSEKCndoYXJkYWtlIDI5IEphbiA5NyAxMjoxMToyOQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IHVwZGF0ZQoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjU4OjQ2CiAgICAtIChrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBGaXggdmFyaW91cyB3YXJuaW5ncy9lcnJvcnMuCiAgICAgIC0gSW1wbGVtZW50IHJlYWwgdHJhcHMuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTM6MDM6MTUKICAgIC0gKHZlcnNpb250YWcpOiBNb2RpZnkgLi4vLi4vYnVnLXJlcG9ydCBhcyB3ZWxsLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEzOjA4OjExCiAgICAtIChidWctcmVwb3J0KToKICAgICAgLSBjaGFuZ2UgdG8gYWRkcmVzcyAoYmFjaykgdG8gdWNkLXNubXAtY29kZXJzLgogICAgICAtIEFkZCBhIHRyYXAgb24gc2lnbmFscyB0byByZW1vdmUgdG1wIGZpbGVzLgoKd2hhcmRha2UgMzEgSmFuIDk3IDA5OjU4OjEwCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGtzdGF0LmggYW5kIGlmIHN5c2N0bCBjYW4gcmVhZCB0aGUgYm9vdHRpbWUuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6MDE6NTkKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOgogICAgICAtIENoYW5nZSBzb21lIHN5c3RlbSBzcGVjaWZpYyBpZmRlZnMgdG8gQ0FOX1VTRV9TWVNDVEwuCiAgICAgIC0gRml4IGNvbXBsaWF0aW9uIGVycm9ycyBvbiBic2RpMi4KICAgICAgLSBGaXggcm91dGluZyB0YWJsZXMgZm9yIHNpbWlsYXIuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NDk6MDcKICAgIC0gKHZlcnNpb250YWcpOiB1aCwgY29tbWl0IGl0IGFnYWluLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjUwOjA0CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpcmUgb2ZmIGtzaCBpZiBocHV4ICYmIHNoLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjU5OjQzCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoYW5nZWQgYXJjaCB0byBocHBhIGFuZCBtYWtlIHN1cmUgL2Jpbi9rc2ggZXhpc3RzLgoKd2hhcmRha2UgMzEgSmFuIDk3IDExOjAzOjExCiAgICB2ZXJzaW9uIHRhZyB1cGRhdGUKCndoYXJkYWtlICAzIEZlYiA5NyAxMDowMjoxMgogICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZG9tYWluIG5hbWUgZml4IGFuZCBlZGl0b3IgYm9tYiBvdXQuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6MDM6MTAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjb21tZW50IG91dCBwb3NzaWJsZSBzZWN1cml0eSBwcm9ibGVtIGxpbmVzLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ2OjAyCiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIENoZWNrIGZvciB3aG9hbWksIGxvZ25hbWUuCiAgICAgIC0gRG9uJ3QgcGFzcyBudWxsIGFyZ3MgdG8ga3NoLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ3OjA0CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQKICAgICAgLSBNYXJrIHN0dWZmIGZvciBsYXRlciBjaGFuZ2VzLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ4OjA2CiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogIFVzZSBDQU5fVVNFX1NZU0NUTCBpbnN0ZWFkIG9mIGJzZGxpa2UuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTE6NTA6MjMKICAgIC0gKGNvbmZpZyopOgogICAgICAtIENoZWNrIGZvciBpcml4IDYuMiBoZWFkZXJzLgogICAgICAtIENoZWNrIGlmIF9LRVJORUwgbmVlZHMgdG8gYmUgZGVmaW5lZCBmb3IgaXJpeCBhbmQgaWZuZXQgdXNhZ2UuCiAgICAgIC0gVXNlIHRoZSBmb3VuZCBVTkFNRSBwcm9ncmFtIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgaGF2ZSBpdC4KCndoYXJkYWtlICAzIEZlYiA5NyAxMjo0NDo1MQogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IHR5cG86ICBuZWVkcyBhIHNwYWNlIGJldHdlZW4gJ3N0YXRpYycgYW5kICdzdHJ1Y3QnLgoKd2hhcmRha2UgIDMgRmViIDk3IDEyOjQ3OjU4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGFkZCBzb21lIGlyaXggYXBwcm9wcmlhdGUgaW5jbHVkZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTI6NTE6MDQKICAgIC0gKFJFQURNRSk6IHJlbW92ZSBwcm9qZWN0IGhpc3RvcnkuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6MTU6MTEKICAgIC0gKFJFQURNRSk6CiAgICAgIC0gYWRkZWQgRkFRIHBvaW50ZXIuCiAgICAgIC0gRGF2ZSdzIEVuZ2xpc2ggcG9pbnRlcnMgKGllLCBoZSBwcm9vZmVkIGl0IGFuZCBJLCB1aCwgZG9uJ3QuLi4pLgogICAgICAtIHN3aXRjaCBmdHAgbWlycm9yLgogICAgICAtIGJ1Zy1yZXBvcnQgc2NyaXB0IG1lbnRpb25lZC4KICAgICAgLSBJIC0+IFdlLCBtZSAtPiB1cy4uLgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjMzOjExCiAgICAtIChSRUFETUUsIE5FV1MsIFRPRE8pOiBVcGRhdGUgZm9yIDMuMS4zLgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjUzOjA0CiAgICAtIChidWctcmVwb3J0KTogbW92ZSBjb25maWcuY2FjaGUgdG8gZW5kIG9mIG1lc3NhZ2UuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6NTU6MDUKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMyApCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6MzU6MDIKICAgIC0gKEZBUSk6IERhdmUncyBsYXRlc3QgcmV2aXNpb24uCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6MzU6MzcKICAgIC0gKFRPRE8pOiBBZGRlZCBzdWdnZXN0aW9ucyBmcm9tIHVjZC1zbm1wLWNvZGVycy4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNjo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBGaXggaHB1eCBwcm9ibGVtcywgKmFnYWluKi4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNzoyNgogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFNpbW9uOiBjb21tZW50ICNpZmRlZiBlbmRpbmdzIGZvciBBTlNJIGNvbXBsaWVycy4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTo0MTozOQogICAgLSAoRkFRKTogQWRkZWQgVE9DIGFuZCBhdXRvciBub3RlcyA7LSkuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTY6MzM6MDEKICAgIC0gKEZBUSk6IERhdmUgdXBkYXRlZCBhcmNoaXRlY3R1cmUgbGlzdHMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTY6MzM6MzIKICAgIC0gKFRPRE8pOiBtaXNjIHJlcXVlc3RlZCBhZGRpdGlvbnMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MDc6MjUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUHV0IC9kZXYva3N5bXMgYWhlYWQgb2YgL2tlcm5lbC91bml4LgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjExOjE1CiAgICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wIG1pYiBncm91cCBjbGVhbnVwcy4KICAgICAgLSB0cmFwIGdlbmVyYXRpb24gY2xlYW51cHMuCiAgICAgIC0gYWRkZWQgbWFuIGVudHJpZXMgZm9yIHRyYXAgZ2VuZXJhdGlvbi4KICAgICAgLSBpbXByb3ZlZCBhZ2VudCBkZWJ1Z2dpbmcgb3V0cHV0IHdpdGggYWdlbnQncyAtZCBmbGFnLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjEzOjA5CiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IG5saXN0IHByb2JsZW1zLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjIwOjEwCiAgICAtIChidWctcmVwb3J0KTogQ2hhbmdlIHN1YmplY3QgbGluZSB0byBzaG9ydGVuIGFuZCBmb3JjZSBiZXR0ZXIgZGVzY3JpcHRpb24uCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MjM6NDEKICAgIC0gKHRjbCwgdGssIHNubXB0Y2wpOiBOdWtlZC4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyNTowMwogICAgLSAoTkVXUyk6IHJlbW92ZWQgdGNsIHN0dWZmLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjI5OjU0CiAgICAtIChNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6NDE6NTAKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlNCApCgp3aGFyZGFrZSAxMCBGZWIgOTcgMDk6MjI6MDMKICAgIC0gKEZBUSk6IERhdmUgU2hpZWxkcycgYWRkaXRpb25zOiAgZmluZGluZyBtb3JlIGluZm8uCgp3aGFyZGFrZSAxMCBGZWIgOTcgMDk6MjI6NTMKICAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFJlbW92ZSBtYWxsb2MgcHJvdG90eXBlLCBub3cgaW4gc3RkbGliLmguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjIgLT4gVjMuMS4yLjEKCndoYXJkYWtlICA1IERlYyA5NiAwOToxMzo1NgogICAgLSAoaWYuYyk6ICNpZm5kZWYgLT4gI2lmZGVmIGZvciBzaWdzZXQuCiAKd2hhcmRha2UgIDUgRGVjIDk2IDA5OjE0OjU5CiAgICAtIChtZDUuYyk6IHJlbW92ZSBhbnNpIHNwZWNpZmljIEMgZmVhdHVyZXMgKHVuc2lnbmVkIGNvbnN0YW50cykuCiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4xIC0+IFYzLjEuMgoKd2hhcmRha2UgMTcgT2N0IDk2IDA3OjAyOjU4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4xLkJTREkgKQoKd2hhcmRha2UgMzAgT2N0IDk2IDEzOjQ3OjIxCiAgICAtIChQT1JUSU5HLFJFQURNRSk6IEFkZCBhIG5ldyBQT1JUSU5HIGZpbGUgdG8gcmVmZXJlbmNlIGF1dG9jb25mIHBsZWUuCgp3aGFyZGFrZSAzMCBPY3QgOTYgMTM6NDk6MDkKICAgIC0gKGNvbmZpZyosIGVjZS1taWIuZGVmKToKICAgICAgLSBDaGFuZ2UgZXh0ZW5zaWJsZSBtaWIgbG9jYXRpb24gdG8gdWNkYXZpcyBlbnRlcnByaXNlIG1pYjogMjAyMS4KICAgICAgLSBSZW1vdmUgYXNzb2NpYXRlZCBwcm9tcHRpbmcgZnJvbSBjb25maWd1cmUgc2NyaXB0IGFuZCBldGMuCgp3aGFyZGFrZSAzMSBPY3QgOTYgMTc6MDY6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBudW1kaXNrcyB3YXMgYmVpbmcgaW5jcmVtZW50ZWQgYmVmb3JlIGxhc3QgdXNhZ2UuCgp3aGFyZGFrZSAgMSBOb3YgOTYgMDg6NTQ6MTEKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuICA8c2ltb25Ac3dpdGNoLmNoPjoKICAgICAgLSBhc25fYnVpbGRfdW5zaWduZWRfaW50LCBhc25fYnVpbGRfdW5zaWduZWRfaW50NjQ6CiAgICAgICAgLSBEb24ndCB0cnkgdG8gc3RyaXAgRkZzIGZyb20gdGhlIGhpZ2ggZW5kIG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgICAgICAtIFNraXAgdGhlIHN0cmlwcGluZyBjb2RlIGVudGlyZWx5IGlmIHdlIGhhdmUgdG8gYWRkIGEgbnVsbCBieXRlLgoKd2hhcmRha2UgIDQgTm92IDk2IDA5OjMwOjQ2CiAgICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogIE1vcmUgaW5jbHVkZSBjaGVja3MgZm9yIGxpbnV4LgoKd2hhcmRha2UgIDQgTm92IDk2IDEwOjA4OjQ5CiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIG5saXN0IGluIC1sbWxkIChpcml4KS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOToxNjo0NQogICAgLSBOZXRCU0QgMy4xLjAuMSBicmFuY2ggbWVyZ2UuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6MjQ6MjMKICAgIC0gTmllbHMgMy4xLjEgYnJhbmNoIG1lcmdlLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjM1OjUyCiAgICAtIEJTRGkyIDMuMS4xIGJyYW5jaCBtZXJnZS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOTo1NzoxNgogICAgLSAodmVyc2lvbnRhZyk6IE9ubHkgdGFnIHJlbGVhc2UgdmVyc2lvbnMgKEV4dCopLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE2OjAwCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IENoYW5nZWQgZGVmYXVsdCBTTk1QVjJBVVRIIHRvIFNOTVBWMS4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxNjozOQogICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGlmZGVmJ3MgYXJvdW5kIHN0cmluZ3MuaC4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxNzoxNwogICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiB0eXBvcy4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxOTozMwogICAgLSAobWliLmMpOiB0eXBlY2FzdCBmb3Igc3ByaW50X29iamlkKCkuCgp3aGFyZGFrZSAgOCBOb3YgOTYgMTc6MDM6NDcKICAgIC0gKE1ha2VmaWxlLmluKTogQ3JlYXRlZCBhICd0b3VjaGl0JyB0byB0b3VjaCBjb25maWcgZmlsZXMgcHJvcGVybHkuCgp3aGFyZGFrZSAgOCBOb3YgOTYgMTc6MDY6NDYKICAgIC0gKE1ha2VmaWxlLmluKTogRml4ZWQgJ3RvdWNoaXQnLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjE0OjUwCiAgICAtIChleHRlbnNpYmxlLmMpOiBVc2Ugc3RhdGZzIGlmIHN0YXR2ZnMgaXMgdW5hdmFpbGFibGUuCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MTY6MjIKICAgIC0gKHNubXBfdmFycy5jKToKICAgICAgLSAjaWZkZWYgdHlwby4KICAgICAgLSBwcm90b3R5cGUgZm9yIEludGVyZmFjZV9TY2FuX0luaXQoKS4KICAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wIGJlZm9yZSB1c2luZy4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToxNzozNgogICAgLSAoY29uZmlnKik6CiAgICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcC4KICAgICAgLSBDaGVjayBmb3Igc3lzL3Zmcy5oLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjI0OjI0CiAgICAtIChzbm1wdHJhcC5jLCBpbmV0LmMsIHJvdXRlLmMpOiB0eXBlY2FzdGluZyB3YXJuaW5nIGZpeGVzLgoKd2hhcmRha2UgMTUgTm92IDk2IDE2OjQzOjMzCiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBNYWtlIHVuYW1lIGNhbGxzIHdvcmsgY29ycmVjdGx5LgoKd2hhcmRha2UgMTUgTm92IDk2IDE2OjQ0OjExCiAgICAtIChwYXJzZS5jKTogIEFkZCBiYWNrIGluICJyZWFkaW5nIG1pYi4uLiIgZGVidWdnaW5nIHN0YXRtZW50cy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwODoxODoyOQogICAgLSAoc25tcF92YXJzLmMpOiBUcmFzaCBpbnRlcmZhY2UgY2FjaGluZy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwOTowNjoxMAogICAgLSAoc25tcF92YXJzLmMpOiBNZXJnZSBmcm9tIEZyZWVCU0QyLTMtMS0xLgogICAgICAtIEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwOToxNDoyMgogICAgLSAoY29uZmlnKik6IEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KCndoYXJkYWtlIDIyIE5vdiA5NiAxMTozNToyOQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS8qLmMsIG5ldzogZXh0cHJvdG8uaCk6ICBSZW1vdmVkIGFsbCAtV2FsbCB3YXJuaW5ncyEKCndoYXJkYWtlIDIyIE5vdiA5NiAxNDozODowNQogICAgLSAoY29uZmlnKiwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IFVwZ3JhZGVkIHRvIGF1dG9jb25mIDIuMTEuCgp3aGFyZGFrZSAyMiBOb3YgOTYgMTU6MTA6MzYKICAgIC0gKGV4dGVuc2libGUuYywgcmVhZF9jb25maWcuYyk6IHJlbW92ZWQgbW9yZSAtV2FsbCB3YXJuaW5ncy4KCndoYXJkYWtlIDI0IE5vdiA5NiAxNjoyNTowNwogICAgLSAoa2VybmVsLmMsIGNvbmZpZyosIElOU1RBTEwpOiAgTmV3IGNvbmZpZ3VyZSBzd2l0Y2g6ICAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MuCiAgICAgIC0gVGhlIGFnZW50IGRvZXNuJ3QgZXhpdCBpZiBpdCBjYW4ndCBvcGVuIC9kZXYva21lbS4KCndoYXJkYWtlIDI0IE5vdiA5NiAxNjo0NToyNwogICAgdmVyc2lvbiB0YWcgKCAzLjEuMi5wcmUxICkKCndoYXJkYWtlIDI1IE5vdiA5NiAwODo0NDowMwogICAgLSAoe2FnZW50LGFwcHN9L01ha2VmaWxlLmluKTogUHV0IGxpYnNubXAuYSBpbiBmcm9udCBvZiAtbCBsaWJzLgoKd2hhcmRha2UgMjUgTm92IDk2IDA5OjE1OjU3CiAgICAtIChjb25maWcqLCBzbm1wX2ltcGwuaCk6IE1vdmVkIHZvaWQgLT4gY2hhciBkZWZpbmUgdG8gYSBjb25maWd1cmUgdGVzdC4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODowMjowNgogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIENoYW5nZSBjb21tZW50cyB0byByZWZsZWN0IHdoYXQgaXRzIGFjdHVhbGx5IGxvb2tpbmcgYXQuCiAgICAgIC0gUmVtb3ZlIGlmZGVmIGFyb3VuZCBpZm5ldCBkZWNsYXJhdGlvbnMuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MDM6NDcKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gUmVtb3ZlIHJldHVybigwKSBvbiB2b2lkIGluaXRfZXh0ZW5zaWJsZSgpLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjA2OjA0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERlZmF1bHQgc3lzbG9jIFVDRGF2aXMgLT4gVW5rbm93bi4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODoyMToyMAogICAgLSAoSU5TVEFMTCk6IFR5cG86ICAzLjEuMyAtPiAzLjAuMy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODoyMTozNAogICAgLSAoUkVBRE1FKTogVXBkYXRlLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjM0OjEyCiAgICAtIChpZi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBXYXRjaCBvdXQgZm9yIGludGVyZmFjZSBuYW1lcyB3aXRoICcgJyBpbiB0aGVtLgogICAgICAtIFJlc2V0IHNpZ25hbCBvbiBCU0Qgc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODo0NTo0NgogICAgLSAoaWYuYyk6IFJlc2V0IHNpZ25hbCBvbiBhbGwgdHlwZXMgb2Ygc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODo1Njo0NAogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBUcnVuY2F0ZSBzeXN0ZW0gbmFtZXMgYmV5b25kIFstX10uKi4KCndoYXJkYWtlICAyIERlYyA5NiAwODo1NTo0OQogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIGlmUGh5c0FkZHIgLSBpbiBJbnRlcmZhY2VfR2V0X0V0aGVyX0J5X0luZGV4LCBIUC1VWCBoYXMgdGhlIHNhbWUKICAgICAgICAgICAgRXRoZXJBZGRyIHN0cnVjdXJlIGFzIE1JUFMuCiAgICAKICAgICAgLSBpcEFkRW50SWZJbmRleCAtIGluIHZhcl9pcEFkZHJFbnRyeSwgdGhlcmUgaXMgYSBmYWxzZSBtYXRjaCBvbgogICAgICAgICAgICB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlLCBnaXZpbmcgdGhlIHdyb25nIGFuc3dlciBvZiB0aGUgZmlyc3QKICAgICAgICAgICAgaW50ZXJmYWNlIGluZGV4LgogICAgCiAgICAgIC0gdWRwSW5FcnJvcnMgLSBpbiB2YXJfdWRwLCB0aGUgY291bnQgb2YgVURQIGVycm9ycyBvbWl0cyBkaXNjYXJkZWQKICAgICAgICAgICAgcGFja2V0cy4gIFNvbWUgc3lzdGVtcyAoaS5lLiBIUC1VWCkgaGF2ZSBleHRlbmRlZCB0aGUgdWRwc3RhdAogICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0aGVzZS4gIEkndiB0d2Vha2VkIHRoaXMgYW5hbG9nb3VzIHRvIGEKICAgICAgICAgICAgc2ltaWxhciBhZGRpdGlvbiBpbiB0aGUgdGNwc3RhdCBzdHJ1Y3R1cmUuCiAgICAKICAgICAgLSB0Y3BDb25uU3RhdGUgLSBIUC1VWCBoYXMgYWRkZWQgYW4gZXh0cmEgc3RhdGUgaW50byB0aGUgbGlzdCwgd2hpY2gKICAgICAgICAgICAgdGhyb3dzIHRoZSByZXN0IG9mIHRoZW0gb3V0LgoKd2hhcmRha2UgIDMgRGVjIDk2IDEwOjA0OjAyCiAgICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gV3JvdGUgQUNfQ0hFQ0tfU1RSVUNUX0ZPUiBhbmQgdXNlIGl0LgogICAgICAtIE1ha2UgQUNfQ0hFQ0tfSUZORVRfRk9SIHVzZSBhYm92ZS4KICAgICAgLSBDaGFuZ2VxdW90ZSAnW10nIC0+ICcnIGFyb3VuZCBzZWQgZXhwcmVzc2lvbiB3aXRoIFtdcyAoLURvc3R5cGUpLgoKd2hhcmRha2UgIDMgRGVjIDk2IDEwOjA1OjE3CiAgICAtIChtZDUuYyk6IFB1dCAnVSduc2lnbmVkIG1hcmtlciBhdCBlbmQgb2YgY29uc3RhbnRzIHRvIHJlbW92ZSBnY2Mgd2FybnMuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTE6MDQ6MzMKICAgIC0gKHNubXBfdmFycy5jKTogRnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBGaXggYXJwIHRhYmxlIGZvciBocHV4LgogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBhcnBoZC5hdF9uZXh0IGFuZCB1c2UgaW4gYWJvdmUuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTE6MTQ6NDMKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHBhc3N0ZXN0KTogTW92ZSBwYXNzdGVzdCB0byB1Y2RhdmlzIHN1YnRyZWUuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTQ6NTE6MjQKICAgIC0gKGVjZS1taWIuZGVmKTogVXNlZCAtPiBBdmFpbCBpbiBtZW1vcnkgc2VxdWVuY2UuCgp3aGFyZGFrZSAgNCBEZWMgOTYgMDk6MTY6MDkKICAgIC0gKGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgICAgIC0gUGFyc2VyIGZpeGVzIGZvciBtdWx0aXBsZSBub2Rlcy4KICAgICAgICAtIG1lbW1vdmUvY29weSBkZWxldGVzLgoKd2hhcmRha2UgIDQgRGVjIDk2IDA5OjQ5OjM4CiAgICAtIChQT1JUSU5HLCBSRUFETUUpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4wLjEgLT4gVjMuMS4xCgp3aGFyZGFrZSAxMSBTZXAgOTYgMDg6NDk6MTQKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBGaXhlZCBjb21tdW5pdHkgbnVtYmVyIGNoZWNrcy4KCndoYXJkYWtlIDI0IFNlcCA5NiAxNjo1NDo1OQogICAgLSAoY29uZmlnKiwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6IEFkZGVkIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE2OjU5OjI2CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IHR5cG9zLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE3OjAyOjQ3CiAgICAtIChzbm1wX3ZhcnMuYyk6IE1vdmVkIGEgdmFyaWFibGUgZGVjbGFpcmF0aW9uLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE3OjE2OjU4CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogdHlwbyBmaXhpbmcgYSB0eXBvIChzaWdoLi4pLgoKd2hhcmRha2UgMjUgU2VwIDk2IDE0OjE0OjUzCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogZnJlZWJzZDIgdHlwZWNhc3QuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTU6MzA6NDYKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBGcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gYWxsb3dzIHRoZSBDTVUgbGliIHRvIHJldGFpbiB0aGUgVEMgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGEKICAgICAgICBwYXJ0aWN1bGFyIG9iamVjdC4gSW4gcGFydGljdWxhciB0aGlzIGFsbG93cyBEaXNwbGF5U3RyaW5ncyB0byBiZQogICAgICAgIGRpZmZlcmVudGlhdGVkIGZyb20gT2N0ZXRTdHJpbmdzIHdoZW4gdGhleSBhcmUgbG9va2VkIHVwIGluIHRoZQogICAgICAgIE1pYiBUcmVlLgoKd2hhcmRha2UgIDEgT2N0IDk2IDE1OjU0OjIyCiAgICAtIChleHRlbnNpYmxlLmMpOiBpbnQgLT4gZG91YmxlIHRvIHN1cHBvcnQgbGFyZ2VyIGRpc2sgc2l6ZXMuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTY6Mjg6NTIKICAgIC0gKGNvbmZpZyosIHJlYWRfY29uZmlnLmMpOgogICAgICAtIENoZWNrIGZvciBtbnRlbnQuaCBhbmQgaW5jbHVkZSBpdC4KICAgICAgLSBDaGVjayBmb3IgL2V0Yy9tbnR0YWIgb3IgL2V0Yy9tdGFiIGFuZCB1c2UgYXBwcm9wcmlhdGVseS4KICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIHBpY2sgZ2V0bW50ZW50IG92ZXIgZ2V0ZnNmaWxlIGlmIGJvdGggYXJlIGF2YWlsYWJsZS4KICAgICAgLSBkZWJ1ZyBjbGVhbnVwIChvZmlsZSAtPiBzdGRlcnIsIGNoZWNrIGZvciBET0RFQlVHIGluc3RlYWQgb2YgY29uc3QgdmFyKS4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjowNTo0NwogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBNYWtlIGFnZW50IHByb3Blcmx5IGNoZWNrIHNubXBzZXQgZXhpdCBjb2RlcyBhbmQgdXNlIHRoZW0gKG9uIENPTU1JVCkuCgp3aGFyZGFrZSAgMyBPY3QgOTYgMTY6MDg6NTkKICAgIC0gKHBhc3MuYyk6CiAgICAgIC0gQ2hlY2sgZm9yIHBhc3N0aHJ1IGV4aXN0YW5jZSBiZWZvcmUgcmV0dXJuaW5nIEVSUl9OT0VSUk9SLCBlbHNlCiAgICAgICAgcmV0dXJuIEVSUl9OT1NVQ0hOQU1FLgogICAgICAtIENvcnJlY3RseSBjaGVjayBmb3IgYW5kIHBhc3MgIm5vdC13cml0YWJsZSIgYW5kICJ3cm9uZy10eXBlIiBwYXNzIHJldHVybnMuCgp3aGFyZGFrZSAgMyBPY3QgOTYgMTY6MTA6MzgKICAgIC0gKHNubXBfaW1wbC5oKTogIFR1cm4gb24gb2xkIENNVSBkZWJ1Z2dpbmcgc3RhdG1lbnRzIHdpdGggLS1lbmFibGUtZGVidWdnaW5nLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQzOjQwCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogQWRkZWQgc25tcGdldC9zZXQgdG8gcGFzcyBleGFtcGxlLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQ0OjI2CiAgICAtIChNYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgZnJvbSBzZWRzY3JpcHQgd2hlbiB1c2luZyBicm9rZW4gY3BwIChnY2MpLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQ2OjA5CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKToKICAgICAgLSBDbGVhbmVkIHVwIG1hbiBwYWdlIGZvcm1hdHRpbmcuCiAgICAgIC0gQWRkZWQgbm90ZSBhYm91dCBTTk1Qc2V0IGNvbW11bml0eSBzdHJpbmdzLgogICAgICAtIG1pbm9yIHByb29mLXJlYWRpbmcgKG1ham9yIHByb29maW5nIG5lZWRlZCBzdGlsbCkuCiAgICAgIC0gUmUtb3JnYW5pemVkIGEgYml0LgoKd2hhcmRha2UgIDQgT2N0IDk2IDEwOjAxOjIwCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogbGliIC0+IGxpYi9zbm1wIHBhdGggY29ycmVjdGlvbiBpbiBGSUxFUyBzZWN0aW9uLgogICAgLSAoc25tcGQuMS5kZWYpOgogICAgICAtIEFkZGVkIGEgRklMRVMgc2VjdGlvbi4KICAgICAgLSBHZW5lcmFsIGNsZWFuIHVwLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA3OjQxOjQwCiAgICAtIChwYXJzZS5jKTogIE5vdyBsb2FkcyBhbGwgbWlicyAoZmlsZXMpIGluIHRoZSBkaXJlY3RvcnkgU05NUExJQi9taWJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA3OjQ5OjU5CiAgICAtIChwYXJzZS5jKTogIFByb3BlciBhdXRvY29uZiBkaXJlbnQgaGVhZGVycy4KCndoYXJkYWtlICA3IE9jdCA5NiAwODowMTo0MwogICAgLSAoTWFrZWZpbGUuaW4pOiBNaWIgaW5zdGFsbGF0aW9uIGNoYW5nZWQgdG8gcmVmbGVjdCBuZXcgbWliIGRpcmVjdG9yeS4KCndoYXJkYWtlICA3IE9jdCA5NiAwODo1MzowNgogICAgLSAoY29uZmlnKik6IGNoZWNrIGNvcnJlY3RseSBmb3IgZ2V0L3NldG1udGVudC4KCndoYXJkYWtlICA3IE9jdCA5NiAwOToxMTo0MwogICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBzbm1wIHZlcnNpb24gY2hlY2sgb24gZXJyb3IgcmV0dXJuIGZyb20gc2V0LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA5OjEyOjIzCiAgICAtIChyZWFkX2NvbmZpZy5jKTogVXNlIGdldG1udGVudCBjb3JyZWN0bHkuICBQYWluLgoKd2hhcmRha2UgIDcgT2N0IDk2IDEwOjIyOjQ3CiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gYWRkZWQgLS1yZWNoZWNrIHRvIGNvbmZpZy5zdGF0dXMgY2FsbCB0byByZWdlbmVyYXRlIHNlbGYuCiAgICAgIC0gQ2hhbmdlZCBlY2UtbWliLnR4dCAtPiB1Y2Qtc25tcC50eHQgYW5kIGluc3RhbGwgKGFuZCBnZW5lcmF0ZSkgcHJvcGVybHkuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjM6MzIKICAgIC0gKGV4dGVuc2libGUuYyk6IENob21wIG5ld2xpbmUgb24gdW5hbWUgb3V0cHV0LgoKd2hhcmRha2UgIDcgT2N0IDk2IDEwOjI0OjEyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogQWRkZWQgJ3N5c2NvbnRhY3QnIGFuZCAnc3lzbG9jYXRpb24nIHBhcnNpbmcuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDA6MTAKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gdGltZXN0YW1wIHN0YW1wLWggYXQgZW5kLgogICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDE6MjUKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgZXh0cmEgYXJncyBmcm9tIHN0cmNweSAod2FzIHN0cm5jcHkpLgoKd2hhcmRha2UgIDcgT2N0IDk2IDExOjAyOjQ2CiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIHRpbWVzdGFtcCBzdGFtcC1oIGF0IGVuZC4KICAgICAgLSBlbWFjcyBsb2NhbCB2YXJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDEyOjIzOjA1CiAgICAtIChzbm1wZC4xLmRlZik6IENoYW5nZWQgdG8gcmVmbGVjdCBTTk1QTElCL21pYnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTI6MjM6MjcKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBBZGRlZCBzeXNjb250YWN0IGFuZCBzeXNsb2NhdGlvbi4KCndoYXJkYWtlICA5IE9jdCA5NiAwODowNDoxNAogICAgLSAocGFyc2UuYyk6CiAgICAgIC0gUGFyc2UgT0JKRUNULUlERU5UWSBhcyBPQkpFQ1QtR1JPVVAgKHNhdmVzIG9ubHkgZGVzY3JpcHRpb24pLgogICAgICAtIENoYW5nZSBwcmludF9lcnJvcigpLCByZWFkX21pYigpIHRvIHJlZmxlY3QgZmlsZSBhbmQgY29ycmVjdCBsaW5lIG51bWJlci4KCndoYXJkYWtlICA5IE9jdCA5NiAwODozMDoyOQogICAgLSAocGFyc2UuYyk6CiAgICAgIC0gcHJpbnQgYSBuZXcgbGluZSBpbiBwcmludF9lcnJvcigpIGlmIGRlYnVnZ2luZyBpcyB0dXJuZWQgb24uCiAgICAgIC0gdG9zc09iamVjdElkZW50aWZpZXIoKTogY2F0Y2ggbXVsdGlwbGUgYnJhY2tldCBjbGF1c2VzIChJRSB7IHswIDB9IH0gKS4KCndoYXJkYWtlICA5IE9jdCA5NiAxNDozNjowMwogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gc3RybmNtcCAtPiBzdHJuY2FzZWNtcC4KICAgICAgLSBOVUxMIC0+IDAuCgp3aGFyZGFrZSAgOSBPY3QgOTYgMTQ6Mzg6MDUKICAgIC0gKGV4dGVuc2libGUuYyk6CiAgICAgIC0gc29ydCBwYXNzIHRocnVzIGJ5IG1pYm9pZCB0byBwcmV2ZW50IHBhc3Npbmcgb2ZmIHRvIHdyb25nIG9uZS4KICAgICAgLSB0eXBvczogIGV4c3RlbiAtPiBleHRlbi4KICAgICAgLSBpbml0X2V4dGVuc2libGUoKSBjYWxscyB1cGRhdGVfY29uZmlnKCkgdG8gcmVkdWNlIGR1cGxpY2F0aW9ucy4KCndoYXJkYWtlICA5IE9jdCA5NiAxNToxODo0MgogICAgLSAoc25tcF9hcGkuYyk6IEZyb206IGdhaEBiZWxsY29yZS5jb20gKEdhcnkgQS4gSGF5d2FyZCkKICAgICAgLSBGcmVlIHBkdSBjb21tdW5pdHkgdG8gcXVlbGNoIHB1cmlmeS4KCndoYXJkYWtlICA5IE9jdCA5NiAxNToyMjoyMwogICAgLSAoUkVBRE1FKTogQWRkZWQgdGhhbmtzIG5hbWUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xIC0+IFYzLjEuMC4xCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTA6MzY6MDgKICAgIC0gKE5FV1MpIFR5cG8sIGV4dHJhIHF1b3RhdGlvbiBtYXJrLgoKd2hhcmRha2UgMjYgQXVnIDk2IDEwOjM3OjA1CiAgICAtIChUT0RPKSBFeHRyYSBtaWIgcGFyc2luZyBpZGVhcyBhZGRlZC4KCndoYXJkYWtlIDI2IEF1ZyA5NiAxMDozNzozNgogICAgLSAoZWNlLW1pYi5kZWYpOiAgY29tbWFzIG91dCBvZiBwbGFjZS4KCndoYXJkYWtlIDI2IEF1ZyA5NiAxNjo1NTo1MQogICAgLSAoc25tcF9hcGkuYyk6IEZpeGVkIGEgZ2NjL0ZyZWVCU0Qgb3B0aW1pemF0aW9uIGJ1ZyAoc3R1cGlkIGNvbXBpbGVyKQoKd2hhcmRha2UgMjYgQXVnIDk2IDE2OjU4OjAzCiAgICAtIChldmVudC5jLCBrZXJuZWwuYywgcm91dGVfd3JpdGUuYyk6IEZyZWVCU0QgbW9kaWZpY2F0aW9ucwoKd2hhcmRha2UgMjcgQXVnIDk2IDA4OjQ2OjQzCiAgICAtIChleHRlbnNpYmxlLmMpOiAgRnJlZUJTRCBjaGFuZ2VzIGFuZCB1c2UgZ2V0bG9hZGF2ZyBpZiBhdmFpbGFibGUuCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDg6NDc6NTcKICAgIC0gKHNubXB0cmFwZC5jKTogRml4IGJ5dGUgb3JkZXIgcHJvYmxlbSAoY29udmVydCB0byBuZXR3b3JrIGJlZm9yZSBzZW5kaW5nKS4KCndoYXJkYWtlIDI3IEF1ZyA5NiAwOTowMToxMAogICAgLSAoc25tcHRyYXAuYyk6CiAgICAgIC0gRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgogICAgICAtIG1vcmUgYXV0b2NvbmYgY29tcGxldGU6IHBhdGhzIHRvIGxpYnJhcmllcyBhbmQga2VybmVsIGxvY2F0aW9uLgoKd2hhcmRha2UgMjcgQXVnIDk2IDA5OjM4OjMzCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgoKd2hhcmRha2UgMjcgQXVnIDk2IDEwOjAwOjE1CiAgICAtIChzbm1wX3ZhcnMuYyk6IE1vcmUgd2FycGVkIEZyZWVCU0QgY2hhbmdlcwoKd2hhcmRha2UgMjcgQXVnIDk2IDEwOjA0OjU2CiAgICAtIChhdXRvY29uZiopOgogICAgICAtIEZyZWVCU0QgYWRkaXRpb25zLgogICAgICAtIE5ldyBrZXJuZWwgbG9jYXRpb246ICAva2VybmVsIChpY2spLgogICAgICAtIExvZyBmaWxlIGRlZmF1bHQgaW50ZWxsaWdlbnRseSBjaGVja3MgZm9yIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgICAgLSBDaGVja3MgZm9yIGdldGxvYWRhdmcoKS4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNDo0MjoyMAogICAgLSAoZXh0ZW5zaWJsZS8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gY2xlYW5lZCB1cCBnY2Mgd2FybmluZ3MuCiAgICAgIC0gZml4ZWQgYSBzcGVsbGluZyBlcnJvci4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNDo1OTo1NQogICAgLSAoYXBwcy8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gc2V0IGV4aXQgY29kZXMgb2YgMCBmb3IgYWxsIGFwcHMuCiAgICAgIC0gUmVtb3ZlZCBTVlI0ICNpZmRlZnMuCiAgICAgIC0gR3JlYXRseSBpbXByb3ZlZCBzbm1wdHJhcC4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowMzoxMgogICAgLSAobWFuL3NubXB0cmFwLjEpOiAgYWRkZWQgYnkgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowNjoyMQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHVjaGFyKHMpIGNhbid0IGJlIGxlc3MgdGhhbiAwLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA2OjUwCiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBwcm90b3R5cGVzIGZvciBnY2Mgd2FybmluZ3MKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowNzo1NgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIHNubXB0cmFuc2xhdGUgYW5kIG90aGVyIGFwcHMgdGhhdCBuZWVkIGl0LgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA4OjI4CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIGdjYyB3YXJuaW5ncyBOVUxMIC0+IDAKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTo1ODoxMAogICAgLSAoc25tcHN0YXR1cy5jKTogUGF0Y2ggZnJvbSBUcmV2b3IgQm91cmdldCA8dGJvdXJnZXRAcXVhbGNvbW0uY29tPgogICAgICAtIG1hbGxvYyBzeXNkZXNjIGluc3RlYWQgb2YgYXNzdW1pbmcgPCAxMjggYnl0ZXMuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6MDM6NDQKICAgIC0gKHNubXB3YWxrLmMpOiBSZW1vdmVkIFNWUjQgaWZkZWZzCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6MjI6MjUKICAgIC0gKGF1dG9jb25mKiwgc25tcF92YXJzLmMpOiBSZW1vdmVkIHNvbWUgc29sYXJpcyBpZmRlZnMuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6Mjk6MTAKICAgIC0gQ2hhbmdlZCBteSBlbWFpbCBhZGRyZXNzIHRvIG15IG5ldyBvbmUuCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MjM6MDUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmVkIC1YcyBmbGFnIGZvciBnY2Mgb24gc29sYXJpcy4KICAgICAgLSBsb2dmaWxlIGNoZWNrcyBmb3IgZXhpc3RhbmNlIG9mIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyMzo0MgogICAgLSAoc25tcHRyYXAuYyk6IHBhdGNoIHNjcmV3ZWQgdXAuCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MjQ6MzEKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiAgQWRkZWQga2VybmVsX3N1bm9zNS5vIHRvIHNubXB0cmFwIGZvciBnZXRLc3RhdC4KCQp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MzQ6MDkKICAgIC0gKE5FV1MsIENoYW5nZUxvZyk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKCndoYXJkYWtlIDMwIEF1ZyA5NiAwOTozNDo0OAogICAgdmVyc2lvbiB0YWcgKCAzLjEuMC4xICkKCndoYXJkYWtlIDMwIEF1ZyA5NiAxMDoxNToxOAogICAgLSAoUkVBRE1FKTogVXBkYXRlZCBmb3IgMy4xLjAuMQoKd2hhcmRha2UgMzAgQXVnIDk2IDExOjQ5OjM4CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbWFsbG9jIHByb3RvdHlwZSBkdWUgdG8gY29uZmxpY3Rpb25zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMC43LjIgLT4gVjMuMQoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjM0OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjM1OjI3CiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKQogICAgICAtIENoYW5nZWQgdGhlIGludGVyZmFjZSBjb3VudGVyIHRvIGEgc2hvcnQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIChidXMgZXJyKQogICAgICAtIFVuZGVmZWQgYSBmdW5jdGlvbiB0aGF0IGlzIG5ldmVyIHVzZWQuCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6Mzc6MTcKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKSBTb2xhcmlzIGZpeCBmb3IgaW50ZXJmYWNlcy4KICAgICAgLSBGcm9tIERhbiBBLiBEaWNrZXkgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6NDA6MTgKICAgIC0gKGFwcHMvc25tcHRyYXAuYykgQWRkZWQgI2luY2x1ZGU8c3lzL3NvY2tpby5oPgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjI0OjAwCiAgICAtIChhcHBzL3NubXBzZXQuYykgQWRkZWQgJy4nIGFzIGEgZGVsaW1pdGVyIGZvciBkZWNpbWFsIGVuY29kZWQgc3RyaW5ncy4KCmhhcmRha2VyICA5IE1heSA5NiAxMzoyNzo0MAogICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KCmhhcmRha2VyICA5IE1heSA5NiAxMzozMzoxMgogICAgLSAoYWNjb25maWcuaCxhZ2VudC97TWFrZWZpbGUsc25tcF92YXJzLmN9LGFnZW50L2V4dGVuc2libGUvbWFueSk6CiAgICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgcGFzc3RocnUgbWlicy4gIFRvdGFsIGNvbnRyb2wgaXMgaGFuZGVkIHRvIGV4ZWMncy4KCmhhcmRha2VyICA5IE1heSA5NiAxNjoxNDoyOAogICAgLSAoY29uZmlndXJlLmluKTogU29sYXJpcyBzcGVjaWZpYyBjcHAgZmxhZ3MgYWRkZWQgZm9yIFNVTnNwcm8ncyBjcHAuCiAgICAtIChhZ2VudC97c25tcF92YXJzLHNubXBkfS5jLGFnZW50L2V4dGVuc2libGUve2V4dGVuc2libGUsbWlzYyxwYXNzfS5jLAogICAgICAgc25tcGxpYi97bWliLHNubXBfY2xpZW50fS5jKToKICAgICAgLSBDbGVhbmVkIHVwIHByb3RvdHlwZXMgdG8gbWF0Y2ggbW9yZSBjYXJlZnVsbHkgKHdpdGggU29sYXJpcydzIHNwcm8gY2MpLgoKaGFyZGFrZXIgMTAgTWF5IDk2IDEwOjI3OjE0CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBBIHBhdGNoIHRvIGZpeCBhIHZpcnR1YWwgaW50ZXJmYWNlIHByb2JsZW0uCiAgICAgIC0gcGF0Y2ggc3VwcGxpZWQgYnkgIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgoKaGFyZGFrZXIgMTAgTWF5IDk2IDE4OjE2OjU3CiAgICAtIChtYW55KTogTWVyZWdlZCBiYWdnZXNlbi0zLTAtNy0yIGJyYW5jaCBpbnRvIG1haW4gdHJ1bmsuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTY6NDUKICAgIC0gKGFnZW50L2V4dGVuc2libGUvbWlzYy5jKTogZXhlYyBOYW1lcyB3ZXJlIGdldHRpbmcgaW5jbHVkZWQgaW4gdGhlIGNvbW1hbmQuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTc6NDMKICAgIC0gKGFnZW50L2V4dGVuc2libGUvbWlzYy5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgcmUtc3RhcnRpbmcgYWdlbnQuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTg6NDQKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAgLSBCdWcgZml4OiBHTE9CQUxTRUNVUklUWSBidWc6ICBzYXZlIHJpZ2h0bW9zdCB0d28gYml0cyBpbiBhY2wuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTk6MzAKICAgIC0gKHNubXBsaWIvc25tcF9pbXBsLmgpOiBDaGFuZ2UgUldSSVRFIHRvIGluY2x1ZGUgV3JpdGUgZm9yIFYyIGJpdHMuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDg6NTk6NTEKICAgIC0gKGFnZW50L2V4dGVuc2libGUvcGFzcy5jKSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gSW1wbGVtZW50ZWQgbWlzc2luZyBwYXJ0cyBvZiBpbnRlcmZhY2UgYWRkcmVzcyBhbmQgbmV0d29yayBvdXRwdXQgKC1pKQoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjAyOjI0CiAgICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIFBhdGNoIGZyb20gIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAgICAtIEJldHRlciBjYWNoaW5nIGFsZ29yaXRobSBmb3IgaW1wcm92ZWQgc3BlZWQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDU6NDkKICAgIC0gKCovLmN2c2lnbm9yZSkgaWdub3JlIGZpbGUgdXBkYXRlLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjA2OjQ5CiAgICAtIChNYWtlZmlsZS5pbixzZWRzY3JpcHQuaW4pIEFkZGVkIFBSRUZJWCB0byB0aGUgc2Vkc2NyaXB0LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjA3OjM1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50ZWQgcGFzcyB0aHJ1IG1pYnMuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6Mjk6MjEKICAgIC0gKENPUFlJTkcsIFJFQURNRSwgVE9ETykgUmVsZWFzZSBkb2NzIHVwZGF0ZWQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6NTA6MTUKICAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgcGF0Y2ggbWlzdGFrZS4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MToxMgogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKTogYW5zaSBzZW1hbnRpYyBmaXggZm9yICc8Jy4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MTozNwogICAgdmVyc2lvbiB0YWcgKCAzLjEuQTEgKQoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjAwOjU3CiAgICAtIChJTlNUQUxMKSBtYWtlIGluc3RhbGwgYXMgcm9vdC4KCmhhcmRha2VyIDE1IE1heSA5NiAxMjowMzo1NAogICAgLSAoUkVBRE1FKSBBZGRlZCBhIG5vdGUgKHBvaW50ZXIgdG8gZG9jcykgb24gdGhlIGFnZW50J3MgZXh0ZW5zaWJsaXR5LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjIzOjQwCiAgICAtIChhcHBzL3NubXBuZXRzdGF0L2lmLmMpIHJlbW92ZWQgJiBpbiBmcm9udCBvZiBhcnJheSBwYXNzZWQgYXMgYXJnLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjM1OjE2CiAgICAtIChzZWRzY3JpcHQuaW4pIEZpeGVkIGEgaG9ycmlibGUgdHlwby4gIFAgLT4gUFJFRklYCgpoYXJkYWtlciAyMiBNYXkgOTYgMDg6NTA6MjgKICAgIC0gKG1hbi9NYWtlZmlsZS5pbikgVXBkYXRlZCB0aGUgd2F5IHNlZHNjcmlwdCBpcyB1c2VkLgoKaGFyZGFrZXIgMjIgTWF5IDk2IDA4OjUxOjAxCiAgICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IEF1dG9jb25mLTIuMTAKCmhhcmRha2VyIDIyIE1heSA5NiAxMjo1MDoyNAogICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYywKICAgICAgIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jLHJlYWRjb25maWcuYyxzbm1wX3ZhcnMuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgICAtIGZpbmFsbHkgbmFpbGVkIHRoYXQgbWlzc2luZyBpbml0aWFsaXphdGlvbiB0aGF0IGdhdmUgcHJvYmxlbXMKICAgICAgICAgIHdpdGggdGhlIEFUIHN1YnRyZWUKICAgICAgICAtIEkgYWxzbyBpbXBsZW1lbnRlZCB0aGUgZGlzayBwYXJ0IG9mIHRoZSBleHRlbnNpYmlsaXR5IGluIHRoZQogICAgICAgICAgYXR0YWNoZWQgcGF0Y2guCgpoYXJkYWtlciAyMiBNYXkgOTYgMTI6NTU6MzMKICAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSByZXdvcmtlZCB0aGUgd2F5IHNubXBuZXRzdGF0IC1pIHdvcmtzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjQzOjQ5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbid0IGRlZmluZSByYW5kb20gaWYgaXQgYWxyZWFkeSBleGlzdHMuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDQ6MTUKICAgIC0gKGV4dGVuc2libGUuYyk6ICBBZGRlZCBhIGRpc2sgd2FybmluZyB0byBzdGRlcnIuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDQ6MzkKICAgIC0gKGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmMpOiByZW1vdmVkIE5VTEwgZGVmaW5lcy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo1Njo0MgogICAgLSAoaWYuYyk6IHR5cGUgY2FzdGluZyBidWdzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE2OjI4OjA4CiAgICAtIChhY2wuYywgcGFydHkuYyk6IGluY2x1ZGUgc3RkaW8uaAoKaGFyZGFrZXIgMjMgTWF5IDk2IDE3OjA5OjI0CiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBmaXhlZCBkaXNrIGNoZWNrcyBvbiBTb2xhcmlzIGFuZCBhbHBoYSdzCiAgICAgIC0gdXNlIHN0YXR2ZnMgb3ZlciBmc3RhYiBpZiBib3RoIHByZXNlbnQuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTc6NDg6MDkKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgZ2V0bW50ZW50LgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEyOjIzOjUyCiAgICAtIChzbm1wbGliL3BhcnNlLmMpOiAgcGFyc2luZyBmaXhlcyBmcm9tIE1pa2UgUGVyaWsgPG1pa2VwQGNydC5jb20+CgpoYXJkYWtlciAyNCBNYXkgOTYgMTI6Mzk6NTEKICAgIC0gKFJFQURNRSk6IEFkZGVkIGEgdGhhbmtzIHNlY3Rpb24uCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MDg6MjgKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBleGFtcGxlIGZpbGUgY2hhbmdlcy4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzowOTowMgogICAgLSAoY29uZmlnKik6ICBDaGVjayBmb3Igc3lzL21udHRhYi5oCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MDk6NTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBpZmRlZiBjbGVhbnVwCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MTA6MzQKICAgIC0gKHBhcnNlLmMpOiBkZWNsYXJhdGlvbnMgY2xlYW51cAoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjEzOjIxCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogIG5vdGUgb24gY3JlYXRpbmcgY29tbWVudHMgYWRkZWQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6Mzg6NDYKICAgIC0gKHJlYWRfY29uZmlnLmMpOiAjaWZkZWYgdHlwbwoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjU0OjI1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICBkZWZpbmUgbWVtbW92ZSBpZiBub3QgZGVmaW5lZCBhbmQgbWVtY3B5IGlzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjU1OjE0CiAgICAtIChpZi5jLCByb3V0ZS5jKTogY2FzdCByZXR1cm5zIGZyb20gaW5kZXggdG8gY2hhciAqLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDE0OjAyOjUzCiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIG1lbW1vdmUgYmVmb3JlIHlvdSBkZWZpbmUgaXQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTQ6NTM6MjAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBwcmludGYgLT4gRE9ERUJVRyBjaGVjawoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI4OjQxCiAgICAtIChhY2Njb25maWcuaCwgY29uZmlnLmguaW4pOiAjaWZkZWYgdHlwb3MKCmhhcmRha2VyIDI0IE1heSA5NiAxNToyOToxMwogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIHNvbWUgaWZkZWYgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI5OjI5CiAgICAtIChzbm1wX3ZhcnMuaCk6IHJlb3JnYW5pemVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC43LjEgLT4gVjMuMC43LjIKCk5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+IDEgTWF5IDk2IDEyOjM3OjM1CiAgICAtIChtYW55KSBGaXhlcyBmb3IgU29sYXJpcyAoMi41KSBzdWJtaXR0ZWQgYnkKICAgICAgICAgICAgIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgICJTb21lIGFyZSBteSBvd24sIG90aGVycyBhcmUgZnJvbSBZdXJpIFJhYm92ZXIgd2hvIG9yaWdpbmFsbHkKICAgICAgICAgY3JlYXRlZCB0aGUgcGF0Y2guIFNvbWUgb2YgdGhpcyBpcyB0aGVyZSB0byBlbGltaW5hdGUgdGhlCiAgICAgICAgIGRlcGVuZGVuY3kgb24gdGhlIHVjYmxpYiBjb21wYXRpYmlsaXR5IHN0dWZmLCBzb21lIGlzICJjb3NtZXRpYyIsCiAgICAgICAgIGJ1dCBpdCBhbHNvIGZpeGVzIGEgc2VyaW91cyBwcm9ibGVtIGluIHRoZSBhZ2VudCwgd2hlcmUgd2Fsa2luZwogICAgICAgICB0aGUgbWliIHRyZWUgY2FuIGxvb3AgZW5kbGVzc2x5IGlmIHlvdSBoYXZlIG11bHRpcGxlIG5ldHdvcmsKICAgICAgICAgaW50ZXJmYWNlcy4iCgpoYXJkYWtlciAgMSBNYXkgOTYgMTM6NTQ6MTgKICAgIC0gKGNvbmZpZ3VyZSosIGFnZW50L2V4dGVuc2libGUve3JlYWRfY29uZmlnLGV4dGVuaXNibGV9LmMpOgogICAgICAtIGNvbmZpZ3VyaWZpZWQgKG5ldyB3b3JkKSBzb21lIG9mIE5pZWxzJyBjaGFuZ2VzIGFuZCB0aGUgYmNvcHkvbWVtbW92ZSBzdHVmZi4KCmhhcmRha2VyICAxIE1heSA5NiAxMzo1NToxNgogICAgLSAobWFuL3NubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWYpIC5DIC0+IC5CLCB0byBpbmNyZWFzZSBucm9mZiBwb3J0YWJpbGl0eS4KCmhhcmRha2VyICAxIE1heSA5NiAxNDozNToyMwogICAgLSAoYWdlbnQvcm91dGVfd3JpdGUuYyxhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgIC0gbmV0YnNkMS4xQiBzcGVjaWZpYyBmaXhlczogY2xhc2ggd2l0aCBzeXNfZXJybGlzdCBhbmQgcnRfZHN0IGRlZmluZXMuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6Mzc6MDkKICAgIC0gKGxvY2FsL3NubXBjaGVjaykgVGstYjEwIGZpeGVzLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjM3OjI1CiAgICAtIChzZWRzY3JpcHQuaW4pIGZvcmdvdCBORVRCU0QxSUQgZGVmLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjU2OjIxCiAgICAtIChhY2NvbmZpZy5oLGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oKTogcmVtb3ZlZCBjb21lbnRzL3NwYWNlcyBmcm9tIGRlZmluZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC43IC0+IFYzLjAuNy4xCgpoYXJkYWtlciAyNSBBcHIgOTYgMTI6MTg6NDMKICAgIC0gKENoYW5nZUxvZywgYWNjb25maWcuaCwgY29uZmlnLmguaW4pIERlZmluZWQgREVCVUdQIGlmIERPREVCVUcgaXMgbm90IGRlZmluZWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC42IC0+IFYzLjAuNwoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjExOjM5CiAgICAtIChsb2NhbC9zbm1wY2hlY2suZGVmKSBUay1iOCA9PiBUay1iMTAgY2hhbmdlcwoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjEyOjIyCiAgICAtIChjb25maWd1cmUpIGF1dG9jb25mLTIuNyAtPiBhdXRvY29uZi0yLjkKCmhhcmRha2VyICA1IEFwciA5NiAxNjoxNToxMQogICAgLSAoc25tcGxpYi9hc24xLmMpIHJlbW92ZWQgYSByZXF1aXJlZCAndW5peCcgZGVmaW5lIHN1cnJvdW5kaW5nIGEgaGVhZGVyIGZpbGUuCgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTk6MzUKICAgIC0gKG1hbi9NYWtlZmlsZS5pbikgQWRkZWQgYSAnY2xlYW4nIGRlZmluaXRpb24gdG8gdGhlIE1ha2VmaWxlLgoKaGFyZGFrZXIgMTIgQXByIDk2IDE0OjUxOjA4CiAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKCmhhcmRha2VyIDEyIEFwciA5NiAxNDo1MTo0MgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUuYykKICAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCgpoYXJkYWtlciAxMiBBcHIgOTYgMTY6NDk6MjMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpCiAgICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAogICAgLSAobWFueSkgQWRkZWQgc3VwcG9ydCBmb3IgaHBwYTEuMS1ocC1ocHV4MTAuMDEKICAgICAgLSB0b3RhbGx5ISByZWRpZCB0aGUgcm91dGluZyB0YWJsZXMgZm9yIEJTRCA0LjQgZGVyaXZlZCBzeXN0ZW1zCiAgICAgICAgKGFscGhhLCBocHV4MTAuMDErLCBuZXRic2QpIHNpbmNlIGhwdXgxMCBkb2Vzbid0IGhhdmUgNC4zIGNvbXBhdCBzdHJ1Y3RzLgogICAgLSAoZWNlLW1pYi5kZWYpIENhcGl0YWxpemF0aW9uIHByb2JsZW0uCiAgICAtIChjb25maWd1cmUuaW4pCiAgICAgIC0gQ2xlYW5lZCB1cCBrZXJuZWwgY2hlY2tpbmcKICAgICAgLSBTdGFydGVkIHVzaW5nIGEgYXV0b2NvbmYgMi44IGZlYXR1cmUgdG8gY2hlY2sgZm9yIGNhY2hlIHZhbHVlcy4KCmhhcmRha2VyIDE1IEFwciA5NiAxMjo1Mzo0MAogICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0tZW5hYmxlLWRlYnVnZ2luZy4gIFR1cm5zIG9uIGRlYnVnZ2luZy4KICAgIC0gKGNvbmZpZ3VyZSkgRml4ZXMgZm9yIHR5cGUgY2hlY2tpbmcgb2YgNC40IHJ0ZW50cnkgc3RydWN0dXJlcyBvbiBhbHBoYXMuCgpoYXJkYWtlciAxNSBBcHIgOTYgMTQ6MTE6MzkKICAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLXdpdGgtZGVmYXVsdHMuICBEb24ndCBwcm9tcHQgdGhlIHVzZXIuCiAgICAtIChjb25maWd1cmUpIGJ1ZyBmaXhlczogIHdhc24ndCBxdW90aW5nIGtlcm5lbCBhbmQgZG1lbSBsb2NhdGlvbi4KICAgIC0gKGNvbmZpZ3VyZSkgZ2NjIGNwcCByZXF1aXJlcyAteCBjIHRvIGFjY2VwdCAuaW4gZmlsZSBzdWZmaXguCgpoYXJkYWtlciAxNSBBcHIgOTYgMTQ6MzY6NDgKICAgIC0gKGFnZW50L3NubXBkLmMpIEZpeGVkIDIgZ2V0dGltZW9mZGF5IGNhbGxzIC0tIGFkZGVkIGEgTlVMTCB0aW1lem9uZSBwdHIuCgpoYXJkYWtlciAxNiBBcHIgOTYgMDk6NDc6MTgKICAgIC0gKGNvbmZpZ3VyZSkgSSBmb3Jnb3QgRE1FTV9MT0MgbmVlZHMgdG8gYmUgI3VuZGVmJ2VkIGlmIG5vdCBmb3VuZAoKaGFyZGFrZXIgMTYgQXByIDk2IDA5OjQ4OjA2CiAgICAtIChhZ2VudC97cm91dGVfd3JpdGUuYyxzbm1wX3Zhcl9yb3V0ZS5jfSkgT1NGMy4yIHNwZWNpZmljIGNoYW5nZXMuICBhcmcuCgpoYXJkYWtlciAxNiBBcHIgOTYgMTg6MDg6MjkKICAgIC0gKHNubXBkLmMpIEFkZGVkIGZmbHVzaCBjYWxscyBhZnRlciBwcmludGluZyBwYWNrZXQgZHVtcHMKCmhhcmRha2VyIDI0IEFwciA5NiAwODozNjowNgogICAgLSAoY29uZmlndXJlLmluKSBNb3JlIGhlYWRlciBmaWxlIGNoZWNrcyAodm0vdm0uaCAoKyBvdGhlcnMpIGFuZCB1ZnMvZmZzL2ZzLmgpCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6MzY6NTAKICAgIC0gKGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKSBJbmNsdWRlIHVmcy9mZnMvZnMuaCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6Mzc6MTMKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKSBGb3Jnb3QgYSBxdW90ZS4gICh3aHkgaGFzbid0IHRoaXMgYXBwZWFyZWQgYmVmb3JlPykKCmhhcmRha2VyIDI0IEFwciA5NiAwODozODoxOAogICAgLSAoYWdlbnQvYWxhcm0uYykgRml4ZWQgc29tZSBkZWZpbmUgbmFtaW5nIGNvbmZsaWN0cyBmb3IgTmV0QlNEICh0aW1lcmFkZCgpKS4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo0NDo0NQogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykgbW9yZSBjb25maWcgZmlsZXMgZm9yIE5ldEJTRC4KICAgIC0gKGFnZW50L3NubXBfdmFycy5jKSByZW1vdmVkIGFycCB0YWJsZXMgZm9yIG5ldGJzZC4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo1NDowNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGVjZS1taWIuZGVmLCBvdi8qKSBBZGRlZCBOZXRCU0QgdG8gc3lzLU9JRCByZXR1cm5lZC4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo1NDozOQogICAgLSAobWFuLy5jdnNpZ25vcmUpIGFkZGVkIHNubXBkLjEKCmhhcmRha2VyIDI0IEFwciA5NiAwOTowMDoyMQogICAgLSAoUkVBRE1FKSB1cGRhdGVkCgpoYXJkYWtlciAyNCBBcHIgOTYgMDk6MDc6NDAKICAgIC0gKElOU1RBTEwpIHVwZGF0ZWQKCmhhcmRha2VyIDI0IEFwciA5NiAxMTo0Njo1MgogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYykgQ2hlY2tlZCBmb3Igc3lzL21idWYgZm9yIGRldGVybWluaW5nIHJ0ZW50cnkucnRfbmV4dAoKaGFyZGFrZXIgMjQgQXByIDk2IDExOjU1OjEwCiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBAIyQlaW5nIHNvbGFyaXMKCmhhcmRha2VyIDI0IEFwciA5NiAxMzoyNTo0OAogICAgLSAoY29uZmlnKixhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBjb25maWcgY2hlY2tpbmcgZm9yIHJ0ZW50cnkucnRfbmV4dAoKaGFyZGFrZXIgMjQgQXByIDk2IDE0OjM3OjQ3CiAgICAtIChsb2NhbC9zbm1wY2hlY2spIG5ldyBwcmVmOiAgZG9uJ3QgcG9wIGZvcndhcmQgb24gbmV3IHByb2JsZW1zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogIFYzLjAuNSAtPiBWMy4wLjYKCmhhcmRha2VyIDI0IEphbiA5NiAxNjozMToyMAogICAgLSBSZXR1cm5pbmcgRVhURU5TSUJMRURPVE1JQi5BR0VOVElEIGFzIHRoZSBuZXcgb2JqZWN0aWQKCkRhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+IDI0IEphbiA5NiAxNjozMzowOAogICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+CiAgICAgIC0gZml4ZXMgLXAgUE9SVCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSB0aGUgcmVxdWVzdGVkIHBvcnQuCiAgICAgIC0gZml4ZXMgdGhlIC1sIExPR0ZJTEUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgaXQuCgpoYXJkYWtlciAyNCBKYW4gOTYgMTY6MzY6NTEKICAgIC0gKE1ha2VmaWxlLCBjb25maWcuaCwgZWNlLW1pYi4qLCBzZWRzY3JpcHQuaW4pCiAgICAgIC0gY2hhbmdlZCB0aGUgd2F5IG1pYi50eHQgaXMgYnVpbHQKICAgICAgICAtIHNwbGl0IHRoZSBjb21tYW5kIGludG8gdHdvIHBhcnRzIHRvIGJ1aWxkIGEgZWNlLW1pYi50eHQgYXMgd2VsbAogICAgICAtIGFkZGVkIGEgbmV3IE9iamVjdElEIGFkZGl0aW9uIHRvIGVjZS1taWIudHh0CiAgICAgIC0gREVGTUFYTE9BREFWRSAtPiBEUkVNT1ZFTUVFRk1BWExPQURBVkUKCmhhcmRha2VyIDI2IEphbiA5NiAwODoyNTowOAogICAgLSBUaGUgU29sYXJpcyAyLjUga2VybmVsIGhhcyBtb3ZlZCB0byAva2VybmVsL2dlbnVuaXgKICAgICAgLSBUaGFua3MgZ29lcyB0byBwb21taWVyQHZvbG5heS5zdG9ydGVrLmNvbSAoVmluY2VudCBQb21taWVyIChUb3Vsb3VzZSkpCgpoYXJkYWtlciAgOSBGZWIgOTYgMTc6MDU6MDAKICAgIC0gQmV0dGVyIE9wZW5WaWV3IHN1cHBvcnQKICAgICAgLSBSZXR1cm5zIGRpZmZlcmVudCBzeXNPYmplY3RJRCdzIGZvciBlYWNoIGFyY2hpdGVjdHVyZQogICAgICAtIEFkZGVkIGEgJ292JyBkaXJlY3RvcnkgZm9yIE9wZW5WaWV3IHN1cHBvcnQgZmlsZXMKICAgICAgICAtIGN1cnJlbnRseSBjb250YWlucyBuZWNlc3NhcnkgZmlsZXMgdG8gc3VwcG9ydCBhIFVDRCBiaXRtYXAgZmlsZQogICAgICAgICAgZm9yIGhvc3RzIHVzaW5nIHRoZSB1Y2Qtc25tcCBhZ2VudC4gIFNlZSB0aGUgb3YvUkVBRE1FIGZpbGUgZm9yIGRldGFpbHMuCgpoYXJkYWtlciAxMiBGZWIgOTYgMTQ6Mjg6MjcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oaW4sIGFnZW50L2V4dGVuc2libGUvbWlzYy5jKQogICAgICAtIFRoZSBhZ2VudCBub3cgc2V0cyBhbiBhbGFybSB0byByZXN0YXJ0IHJhdGhlciB0aGFuIGRvaW5nIGF0IHRoZQogICAgICAgIHNubXBzZXQgdGltZSB0byByZXR1cm4gYSB2YWx1ZSB0byB0aGUgc25tcHNldCByZXF1ZXN0LgoKaGFyZGFrZXIgMTYgRmViIDk2IDE2OjMyOjQxCiAgICAtIChhY2NvbmZpZy5oLGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykKICAgICAgLSAuY29uZiBmaWxlIGFkZGl0aW9uOiAgImNvbW11bml0eSBOIFNUUklORyIgdG8gY2hhbmdlIGNvbW11bml0eSBuYW1lcwoKaGFyZGFrZXIgMjEgRmViIDk2IDE2OjEyOjM5CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC5jb25mLjUuZGVmKQogICAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgc25tcGQuY29uZiBtYW51YWwgcGFnZS4KCmhhcmRha2VyIDIxIEZlYiA5NiAxNjoxNTozNgogICAgLSAoYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcC5jKQogICAgICAtIEFkZGVkIGFwcHMvc25tcHRyYXAKICAgICAgICAtIGNvZGUgdGFrZW4gZnJvbSAyLjAuMSBhbmQgc3VibWl0dGVkIHRvIG1lIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgICAgICAgLSBJIGhhdmUgeWV0IHRvIHRlc3QgaXQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMDk6MDk6MTUKICAgIC0gKGFnZW50L3NubXBkLmMpIEFkZGVkIE9fVFJVTkMgdG8gdGhlIGxvZ2ZpbGUgb3BlbigpIGNhbGwuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTA6MDY6MjQKICAgIC0gKGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykgc21hbGwgYnVncyBmaXhlZAogICAgICAtIGRpc2sgZW50cmllcyB3aXRoIG5vIHNpemUgc3BlY2lmaWVkIGNhdXNlZCBzZWctZmF1bHRzLgogICAgICAtIGJldHRlciB0eXBlIGNoZWNraW5nIG9uIE1JQiBmb3IgJ2V4ZWMgTUlCJyBlbnRyaWVzLgogICAgICAtIG1vcmUgZXJyb3IgbWVzc2FnZXMgYWRkZWQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTY6Mzg6MTYKICAgIC0gKGVjZS1taWIuZGVmKQogICAgICAtIENoYW5nZWQgY2FwaXRhbGl6YXRpb24gc2NoZW1lcyB0byBiZSBtb3N5IGNvbXBsaWFudC4KICAgICAgLSBNYWRlIHRoZSBtZW1vcnkgbWliIFNZTlRBWCBwb2ludCB0byB0aGUgTWVtb3J5IHNlcXVlbmNlIGxpa2UgaXQgc2hvdWxkLgoKaGFyZGFrZXIgIDYgTWFyIDk2IDE2OjU4OjExCiAgICAtIChzbm1wbGliL21pYi5jKSBwcmludGVkIHZhbHVlcyBmb3IgdGltZXRpY2tzIGFyZSBubyBsb25nZXIgbmVnYXRpdmUuCgpoYXJkYWtlciAgOCBNYXIgOTYgMTA6MzE6MzQKICAgIC0gKHNubXBsaWIvc25tcF9jbGllbnQuYykgQ2hlY2sgaWYgdmFyaWFibGUgY29udGVudCBpcyBOVUxMIGJlZm9yZSB1c2luZy4KCmhhcmRha2VyICA4IE1hciA5NiAxNjo1NjowOAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9leGVjLmMpCiAgICAgICAtIHJlbG9jYXRhYmxlIGV4ZWMncyBmYWlsZWQgdG8gY2xvc2UgdGhlIGNhY2hlIGZpbGUuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTM6Mzc6MjUKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiBjb21tZW50ZWQgb3V0IG5saXN0IHdhcm5pbmdzLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDE1OjE3OjI2CiAgICAtIChtYW4ve01ha2VmaWxlLmluLHNubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWZ9LHZlcnNpb250YWcsc2Vkc2NyaXB0LmluKToKICAgICAgLSBjbGVhbmVkIHVwIGRvY3VtZW50YXRpb24gbW9yZSBhbmQgYWRkZWQgdGhlIHZlcnNpb24gbnVtYmVyIHRvIHRoZSB0cmFpbGVycy4KCmhhcmRha2VyIDExIE1hciA5NiAxNToxNzo1NwogICAgLSAoUkVBRE1FKTogY2xlYW5lZCB1cCwgcmUtYXJyYW5nZWQsIHNob3J0ZW5lZCAoc2VjdGlvbnMgbW92ZWQgdG8gbWFuLyogZG9jcykuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTU6NDA6MTcKCiAgICAtIChSRUFETUUpOiBtb3JlIGNsZWFuIHVwIGFuZCBhZGRlZCByZWZlcmVuY2UgdG8gdGhlIHVjZC1zbm1wIG1haWxpbmcgbGlzdC4KCkdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IDExIE1hciA5NiAxNTo1NzoyMAoKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGZpeGVkIGEgdGltZW91dCBidWcgY2F1c2VkIGJ5IGFyY2hpdGVjdHVyZXMKICAgICAgd2l0aCBhbiB1bnNpZ25lZCB0aW1ldmFsLnR2X3NlYyB2YWx1ZS4KICAgICAgLSBUaGFua3MgZ29lcyB0byBHaW92YW5uaSBTLiBNYXJ6b3QgPGdtYXJ6b3RAYmF5bmV0d29ya3MuY29tPiBmb3IKCXRoZSBwYXRjaCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC40CgpoYXJkYWtlciAxOSBKYW4gOTYgMTc6MzE6MTYKICAgIC0gKGNvbmZpZ3VyZSopCiAgICAgIC0gdXBkYXRlZCB0byBhdXRvY29uZiB2Mi43CiAgICAgIC0gSG9wZWZ1bGx5IG5vdyB1c2luZyBjb3JyZWN0ICdtYWtlJyBkZWZpbml0aW9ucwoKaGFyZGFrZXIgMTkgSmFuIDk2IDE3OjMyOjU3CiAgICAtIChhZ2VudC9leHRlbnNpYmxlLyouYykKICAgICAgLSBEZWNsYWlyZWQgbW9yZSBzdGF0aWMgdmFyaWFibGVzIChsb25nX3JldCkgdG8gZml4IHN1bjRzIGV4aXQgY29kZXMgKGFnYWluKS4KCmhhcmRha2VyIDIyIEphbiA5NiAxNjoyNzozMAogICAgLSAoYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgICAtIEFkZGVkIG5ldyBkZWZpbmVzIHRvIHR1cm4gb24vb2ZmIHNlY3Rpb25zIG9mIHRoZSBleHRlbnNpYmxlIG1pYi4KICAgICAgLSBUaGlzIGFsc28gZml4ZXMgdGhlIG1pYi50eHQgZmlsZSBkZWZpbml0aW9ucyBpZiBzb21ldGhpbmcgaXMgdHVybmVkIG9mZi4KICAgIC0gKE1ha2VmaWxlLmluKSByZW1vdmVkICR7c3JjZGlyfSBmcm9tIHRoZSBmcm9udCBvZiBzdGFtcC1oLmluCgpoYXJkYWtlciAyMiBKYW4gOTYgMTc6MTg6NTgKICAgIC0gKGxvY2FsL01ha2VmaWxlLmluKSBBZGRlZCBhIGNobW9kIHRvIG1ha2UgdGhlIHNubXBjaGVjayBzY3JpcHQgZXhlY3V0YWJsZQoKaGFyZGFrZXIgMjIgSmFuIDk2IDE3OjIzOjE3CiAgICAtIChsb2NhbC9zbm1wY2hlY2spCiAgICAgIC0gYWRkZWQgYWdlbnQgY29udHJvbHM6ICByZXN0YXJ0LCB1cGRhdGVjb25maWcsIGNsZWFyY2FjaGUuCiAgICAgIC0gcmVtb3ZlZCBhbiBvbGQgZGVidWdnaW5nIHByaW50Zi4KICAgICAgLSBjdHJsLWYgPT4gZml4YWxsLgogICAgICAtIEFkZGVkIGtleWJvYXJkIGFjY2VsZXJhdG9ycyB0byB0aGUgYXNzb2NpYXRlZCBtZW51IGl0ZW1zLgogICAgICAtIE1hZGUgaGlnaGxpZ2h0VGhpY2tuZXNzIGEgZ2xvYmFsIHBhcmFtZXRlciB2aWEgJHdpbmRvdy0+b3B0aW9uKCdhZGQnKS4KICAgICAgLSBBZGRlZCBhIGVudHJ5IGJveCB0byB0aGUgZXhlY3V0YWJsZSBjb21tYW5kcyB3aXRoIHRoZSBjb21tYW5kIHRvIHJ1bi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMwoKaGFyZGFrZXIgMjMgT2N0IDk1IDE2OjM3OjQzCiAgICAtIChleHRlbnNpYmxlLmMpIHN0b3BwZWQgcmVwb3J0aW5nIGFueXRoaW5nIGZvciB0aGUgZGlzayBtaWIgaWYgbm8KICAgICAgZGlza3Mgd2VyZSBkZWZpbmVkIGluIHRoZSBzbm1wZC5jb25mIGZpbGUuICBUaGlzIHdhcyBjYXVzaW5nIGFuCiAgICAgIGVycm9yIGluIHRoZSBhZ2VudCdzIGVycm9yIG1pYiB3aGVuIG5vIGRpc2tzIHdlcmUgZGVmaW5lZCBhbmQKICAgICAgc29tZW9uZSB3YWxrcyB0aGUgZGlzayBtaWIuCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDQ6NDcKICAgIC0gKFJFQURNRSkgQWRkZWQgcG9pbnRlciB0byB0aGlzIGZpbGUgdmlhIGZ0cAoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA1OjEyCiAgICAtIChUT0RPKSBGaW5kIGFuZCBmaXggbWVtb3J5IGxlYWsgc29tZXRpbWUKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowNzo0NQogICAgLSAoY29uZmlndXJlLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCiAgICAtIChjb25maWd1cmUuaW4pIE1vcmUgc29sYXJpcyBzcGVjaWZpY3M6ICAtRFNWUjQKICAgIC0gKGNvbmZpZ3VyZS5pbikgQ2FjaGVzIGluaXRpYWwgcHJvbXB0IGluIHRoZSBjb25maWd1cmUgc2NyaXB0IHNvIHlvdQogICAgICB3b24ndCBiZSBidWdnZWQgdHdpY2UgYnkgdGhlIGluaXRpYWwgcXVlc3Rpb24uCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDg6NDkKICAgIC0gKGNvbmZpZy5oLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDk6MzcKICAgIC0gKGFsbCBhdXRvY29uZiBidWlsdCBmaWxlcykgVXBkYXRlZCBldmVyeXRoaW5nIHRvIGF1dG9jb25mIDIuNQoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjEwOjQ5CiAgICAtICh0cmFwbm90aWYpIExvZ3Mgbm8tcmVzcG9uc2UgZXJyb3JzLgogICAgLSAodHJhcG5vdGlmKSBCZXR0ZXIgc3RyaW5nIGNoZWNraW5nIChxdW90ZXMgYWxsIHZhcmlhYmxlcyBub3cpCgpoYXJkYWtlciAgMSBEZWMgOTUgMTY6MjA6MTMKICAgIC0gbG9jYWwvc25tcGNoZWNrOiAgICAgICAqbmV3IGZlYXR1cmVzKgogICAgICAtIGhhbmRsZXMgZmFpbGVkIHNubXB3YWxrL2dldC9zZXRzIG11Y2ggbW9yZSBncmFjZWZ1bGx5IG5vdwogICAgICAtIG5ldyBwcmVmZXJlbmNlOiAgWW91IGNhbiBwaWNrIHdoYXQgdHlwZXMgb2YgcHJvYmxlbXMgdG8gY2hlY2sgZm9yCiAgICAgICAgLSAtZiBvbiB0aGUgY29tbWFuZCBsaW5lIG9ubHkgY2hlY2tzIGZvciBmaXhhYmxlIHByb2JsZW1zCiAgICAgIC0gbm8gbG9uZ2VyIHBpbmc6OmVjaG9zIGhvc3RzIGJlZm9yZSBjaGVja2luZyB0aGVtCiAgICAgICAgLSBpbnN0ZWFkIHJlbGllcyBvbiAnTm8gUmVzcG9uc2UnIHR5cGUgcmVwbGllcyBmcm9tIHNubXB3YWxrL2dldCB0bwogICAgICAgICAgZGV0ZXJtaW5lIGlmIGEgaG9zdCBpcyB1cC4KICAgICAgICAtIHBpbmcgdGhlIGhvc3QgaXMgc3RpbGwgYW4gb3B0aW9uICh0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUgYW5kIG1lbnVzKQogICAgICAtIGNvbnZlcnRlZCBmcm9tIFRrLWI0IHRvIFRrLWI4CiAgICAgIC0gQWRkZWQgYSBsb2dnaW5nIHdpbmRvdyBmb3IgZGVidWdnaW5nIGFuZCB0cmFja2luZyBvZiBhY3Rpb25zLgogICAgICAgIC0gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOiAgLVYgTlVNICBpbml0aWFsIGxvZyB2ZXJib3NpdHkgbGV2ZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1MICAgICAgc2hvdyB0aGUgbG9nIHdpbmRvdyBhdCBzdGFydHVwCiAgICAgIC0gTm93IHRyYW5zbGF0ZXMgbWliIG51bWJlcnMgaW50byBtb3JlIHJlYXNvbmFibGUgbmFtZXMKCmhhcmRha2VyICA1IERlYyA5NSAxNDo1NzoxNAogICAgLSAoY29uZmlndXJlKikgYWRkZWQgQUNfVFlQRV9QSURfVCB0byB0aGUgY29uZmlndXJlIGNoZWNrcwoKaGFyZGFrZXIgIDUgRGVjIDk1IDE1OjAxOjEwCiAgICAtIChzbm1wY2hlY2spCiAgICAgIC0gTmV3IGZsYWc6ICAtZCwgZG9uJ3Qgc3RhcnQgY2hlY2tpbmcgYW55dGhpbmcuICBKdXN0IGJyaW5nIHVwIGludGVyZmFjZS4KICAgICAgLSBjaGVjayBmb3IgYmxhbmsgb3V0cHV0IG9mIHNubXBnZXQgYmVmb3JlIHBhcnNpbmcgd2l0aCBzLy8vZwogICAgICAgIGNvbnN0cnVjdHMuCgpoYXJkYWtlciAgNSBEZWMgOTUgMTU6MDU6MjAKICAgIC0gKGFnZW50L2V4dGVuc2libGUpCiAgICAgIC0gQnVnIGZpeDogIGFscGhhcyBhbmQgc3Vub3NlcyB3ZXJlIHJlcG9ydGluZyBpbmNvcnJlY3QgZXh0ZW5zaWJsZQogICAgICAgIGV4aXQgY29kZXMuICAoeWV0IGFub3RoZXIgNjQvMzIgYml0IGJ1ZyBmb3VuZCkuCiAgICAgIC0gQnVnIGZpeDogYWdlbnQtdXBkYXRlLHJlc3RhcnQsIGFuZCBjYWNoZSBtaWIgZmx1c2ggZW50cmllcyB3ZXJlCiAgICAgICAgcmV0dXJuaW5nIHZhbHVlcyBpbnN0ZWFkIG9mIHBvaW50ZXJzIHRvIHZhbHVlcy4KCmhhcmRha2VyIDEzIERlYyA5NSAxNToyNzoxOQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpIGJ1ZyBmaXhlcyBmb3IgZXhlYyBpdGVtczoKICAgICAgLSBhIHNlY29uZCBzbm1wd2FsayBvZiB0aGUgZXhlYyBpdGVtIHdvdWxkIHJldHVybiB0aGUgb2xkIGNhY2hlCiAgICAgICAgZmlsZS4gIEZpeGVkIGJ5IHJlc2V0aW5nIHRoZSBsYXN0IGNhY2hldGltZSB0byAwIHRvIGFsd2F5cyByZXNjYW4KICAgICAgICBhZnRlciBmb3JrL3BpcGUvbWVtb3J5L2V0YyBlcnJvcnMuCiAgICAgIC0gTWFkZSBsYXN0cmVzdWx0IGEgc3RhdGljIHZhci4gIFdhcyByZXR1cm5pbmcgd3JvbmcgZXhpdCBjb2RlcwogICAgICAgIHVuZGVyLCBzdHJhbmdlbHkgZW5vdWdoLCBvbmx5IHN1bm9zLTQgbWFjaGluZXMuCgpoYXJkYWtlciAyMCBEZWMgOTUgMDk6NTM6MTAKICAgIC0gc25tcF9vcGVuIGNhbGxzIGdldHNlcnZieW5hbWUgb25seSBvbmNlIG5vdywgYXQgdGhlIHJlcXVlc3Qgb2YgR2FyeQogICAgICBIYXl3YXJkIDxnYWhAZGlyYWMuYmVsbGNvcmUuY29tPi4KCmhhcmRha2VyIDIwIERlYyA5NSAxNTo1NjoxNgogICAgLSBGb3VuZCBhbmQgZml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgcm91dGluZyB0YWJsZSBtaWIuCgpoYXJkYWtlciAyOCBEZWMgOTUgMTA6MDE6MzUKICAgIC0gQWRkZWQgc2Vkc2NyaXB0IHRvIHRoZSAuY3ZzaWdub3JlIGZpbGUuCgpoYXJkYWtlciAyOCBEZWMgOTUgMTA6MjQ6MzcKICAgIC0gQWRkZWQgYSBzZWRzY3JpcHQgd2hpY2ggaXMgYnVpbHQgZnJvbSBjb25maWcuaCBhbmQgYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgKICAgICAgLSB1c2VkIHRvIGR5bmFtaWNhbGx5IGJ1aWxkIG1pYi50eHQgYW5kIGxvY2FsL3NubXBjaGVjay4KCmhhcmRha2VyIDI4IERlYyA5NSAxMjowNjo0OQogICAgLSBDcmVhdGVkIGEgRVhBTVBMRS5jb25mIGZpbGUgZm9yIGV4YW1wbGUgdXNhZ2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMi4xCgpoYXJkYWtlciAyOSBTZXAgOTUgMTM6NDM6NDkKICAgIC0gcG9ydGVkIHRvIEdOVSdzIGF1dG9jb25maWcyLjQKICAgICAgLSB0byBpbnN0YWxsLCB5b3UgbXVzdCBub3cgcnVuIC4vY29uZmlndXJlIGZpcnN0IHRvIGdlbmVyYXRlIHRoZQogICAgICAgIE1ha2VmaWxlcyBhbmQgY29uZmlnLmgKICAgICAgLSBhbG1vc3QgYWxsIG9mIHRoZSBjb2RlIGlzIG5vdyBkeW5hbWljYWxseSBjaGVja2VkIGZvciBwcm9ibGVtcwogICAgICAgIHJhdGhlciB0aGFuIGJlaW5nIGRlcGVuZGFudCBvbiBhcmNoaXRlY3R1cmUgbmFtZXMuCiAgICAtIHN5c3RlbSBuYW1lIG5vdyBkeW5hbWljYWxseSBkZXRlcm1pbmVkIGF0IHJ1biB0aW1lIChmcm9tIHVuYW1lIC1uKQogICAgLSBjcmVhdGVkIGEgJ21ha2UgZGVwZW5kJyBjYWxsIChmaW5hbGx5KS4KICAgIC0gKGFnZW50L3NubXBfdmFycy5oKSBjaGFuZ2VkIFNZU05BTUUgZGVmaW5lIHRvIFNZU1RFTU5BTUUgZGVmaW5lIHRvCiAgICAgIGF2b2lkIGEgY29uZmxpY3Qgd2l0aCBhIHNvbGFyaXMgaGVhZGVyIGZpbGUuCiAgICAtIHByb3RlY3RpbmcgYmV0dGVyIGFnYWluc3QgaW5jbHVkZSBoZWFkZXIgZmlsZXMgdHdpY2UuCiAgICAtIE1vc3Qgb2YgcG9ydCB0byBTb2xhcmlzIDIuNCBmaW5pc2hlZC4gIFRoZSBrZXJuZWwgcmVhZHMgc3RpbGwgbmVlZCB3b3JrLgoKaGFyZGFrZXIgMjkgU2VwIDk1IDEzOjQ2OjQzCiAgICAtIChORVdTKSB1cGRhdGVkIHRoZSBuZXdzIGZpbGUuCgpoYXJkYWtlciAgMyBPY3QgOTUgMDk6MjQ6MDAKICAgIChhY2NvbmZpZy5oKSBNaW5vciBidWc6ICByZWN1cnNpdmUgY29tbWVudHMgbm90IGNvcnJlY3QgZm9yIGNvbXBpbGVycyAoQUlYKQoKaGFyZGFrZXIgIDMgT2N0IDk1IDA5OjQzOjU0CiAgICAodmVyc2lvbmluZm8uYykgQWRkZWQgMy0wLTMtQTEgdGFnCgpoYXJkYWtlciAgNCBPY3QgOTUgMTY6NTM6MzkKICAgIHZlcnNpb24gdGFnIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyICA1IE9jdCA5NSAxNToyMzowNQogICAgLSBNb3JlIFNvbGFyaXMgcG9ydGluZy4KICAgICAgLSBNb3N0IG1pYklJIGVudHJpZXMgbm93IHdvcmsuCiAgICAgICAgIC0gSGF2ZW4ndCBjaGVja2VkIHJldHVybmVkIGluZm9ybWF0aW9uIGZvciBhY2N1cmFjeQogICAgICAtIHN5c1VwVGltZSBzdGlsbCBmYWlscy4KICAgICAgLSBjYyBhbmQgZ2NjIGJvdGggY29tcGlsZSBldmVyeXRoaW5nIG5vdy4KCmhhcmRha2VyICA1IE9jdCA5NSAxNTo0ODoyMwogICAgdmVyc2lvbiB0YWcgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgIDYgT2N0IDk1IDExOjM3OjAwCiAgICAtIChSRUFETUUpIE1vdmVkIElOU1RBTExBVElPTiBpbnN0cnVjdGlvbnMgdG8gSU5TVEFMTAogICAgICAgICAgICAgICBDaGFuZ2VkIGxpc3Rpbmcgb2Ygc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMKICAgICAgICAgICAgICAgVXBkYXRlZCBBVkFJTEFCSUxJVFkgc2VjdGlvbgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjI4OjQ4CiAgICB2ZXJzaW9uIHRhZyBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6MzI6MDQKICAgIC0gKHNubXBkLmMpIEFkZGVkIHR3byBuZXcgZmxhZ3M6CiAgICAgIC1oIGZvciBoZWxwCiAgICAgIC12IGZvciB2ZXJzaW9uIGluZm9ybWF0aW9uCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6MzI6NDMKICAgIC0gKHBhcnNlLmMsIHNubXAuYykgYWRkZWQgY29uZmlnLmggdG8gdGhlIGxpc3Qgb2YgaW5jbHVkZXMuCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6NDA6MzgKICAgIC0gKHNubXBkLmMpIFVzYWdlIG9mIC0taGVscCBhbmQgLS12ZXJzaW9uIHNob3VsZCB3b3JrIG5vdy4uLiAgR05VIHN0YW5kYXJkLgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjQxOjE4CiAgICAtIChORVdTLy1UT0RPKSAtaC8tLWhlbHAsIC12Ly0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9ucwoKaGFyZGFrZXIgMTEgT2N0IDk1IDE3OjMzOjI2CiAgICAtIFRoZSBjb25maWd1cmUgc2NyaXB0IG5vdyBwcm9tcHRzIGZvciBpbXBvcnRhbnQgdmFsdWVzIHRvIGJlIHB1dCBpbgogICAgICBjb25maWcuaC4gIFNvbWUgdGhpbmdzIG5lZWQgdG8gdXNlICQocHJlZml4KSBpbnN0ZWFkIGhvd2V2ZXIuCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pCiAgICAgICsgbGlua2luZyB0byAuLi9zbm1wbGliL2xpYnNubXAuYSBpbnN0ZWFkIG9mIC4uL2xpYi9saWJzbm1wLmEgdG8KICAgICAgICByZW1vdmUgaW5zdGFsbCByZXF1aXJlbWVudC4KICAgICAgKyAgcHV0IC4uL2xpYi9saWJzbm1wLmEgaW4gYXBwbGljYXRpb24KCmhhcmRha2VyIDEzIE9jdCA5NSAxNTo0NToyOAogICAgLSAoc25tcGQuYykgQWRkZWQgLXAgcG9ydCB0byAtLWhlbHAgb3V0cHV0CiAgICAtIChjb25maWcpIFNldHVwIHRvIHVzZSAtLXByZWZpeCB0byBsb29rIGZvciBjb25maWcgZmlsZXMuCgpoYXJkYWtlciAxNiBPY3QgOTUgMTM6MDE6MzkKICAgIC0gKE1ha2VmaWxlcykgRmFpcmx5IGRlY2VudCAnbWFrZSBpbnN0YWxsJyBub3cgcG9zc2libGUuICBJbnN0YWxscwogICAgICBpbnRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IC0tcHJlZml4IGZvciB0aGUgLi9jb25maWd1cmUgc2NyaXB0LgogICAgLSAoZXh0ZW5zaWJsZS5jKSBjb25maWcgZmlsZSByZS1sb2NhdGlvbjogbm93IHVzZXMgdGhlIFNOTVBMSUJQQVRICiAgICAgIGRlZmluZWQgbG9vc2VseSBhcyAkKHByZWZpeCkvbGliL3NubXAvLgoKaGFyZGFrZXIgMTYgT2N0IDk1IDE1OjAyOjAxCiAgICAtIChNYWtlZmlsZXMpIG1ha2UgaW5zdGFsbCBlY2hvcyB3aGF0IGl0cyBkb2luZyBpbiBhIG1vcmUgY2xlYXIgZmFzaGlvbgogICAgLSAoSU5TVEFMTCkgYWRkZWQgYmV0dGVyIGluc3RydWN0aW9ucyB0byB0aGUgSU5TVEFMTCBmaWxlLgogICAgLSAoUkVBRE1FKSBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCmhhcmRha2VyIDE2IE9jdCA5NSAxNjoyMTo0MwogICAgLSAoc25tcGQuYykgd2FzIHN0aWxsIGxvb2tpbmcgaW4gL2V0YyBmb3IgdHdvIC5jb25mIGZpbGVzLgoKaGFyZGFrZXIgMTYgT2N0IDk1IDE2OjQzOjEyCiAgICAtIChhcHBzKSBhbGwgYXBwcyB3ZXJlIHN0aWxsIGxvb2tpbmcgaW4gL2V0Yy8gZm9yIC5jb25mIGZpbGVzCgpoYXJkYWtlciAxNyBPY3QgOTUgMTY6NTg6MzIKICAgIHZlcnNpb24gdGFnICggMy4wLjMgKSBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAxNyBPY3QgOTUgMTc6MDA6MjIKICAgIC0gQ2hhbmdlTG9nIHVwZGF0ZQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4yCgpoYXJkYWtlciAyMSBTZXAgOTUgMDk6Mjc6MTgKICAgIChzbm1wbGliL21kNS5jKSBGb3Jnb3QgdG8gaW5jbHVkZSBzeXMvdHlwZXMuaCBmb3IgdV9sb25nIGRlZmluaXRpb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMQoKaGFyZGFrZXIgMjYgSnVsIDk1IDE2OjMxOjQxCiAgICAtIEFkZGVkIGEgbmV3ICNkZWZpbmU6IEVYSVRfT05fQkFEX0tMUkVBRCB0byBjb25maWcuaAogICAgICBJZiBkZWZpbmVkLCBhbmQgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHJlYWRpbmcgdGhlIGtlcm5lbCBjb250ZW50cywKICAgICAgdGhlIGFnZW50IHdpbGwgZXhpdC4gIFRoaXMgd2FzIHRoZSBkZWZhdWx0LiAgSSB3YW50ZWQgaXQgdG8KICAgICAgY29udGludWUuCiAgICAKICAgIC0gUG9ydCB0byBkZWMtYWxwaGEvT1NGIDMuMQogICAgICAtIGFscGhhJ3MgbG9uZyBpcyA4IGJ5dGVzLCBub3QgNC4KICAgICAgLSBzaG91bGQgYmUgKG1vc3RseSkgNjQgYml0IGNsZWFuIG5vdy4KICAgICAgLSBjbGVhbmVkIHVwIGEgTE9UIG9mIGJ1Z3MgQ01VIGNvZGUgaW4gdGhlIHByb2Nlc3MuCgpoYXJkYWtlciAyOCBKdWwgOTUgMTQ6MjM6NDEKICAgIFlldCBtb3JlIHByb2JsZW1zIGZpeGVkIGluIHRoZSBhbHBoYSBwb3J0LgogICAgICAtLSBtb3JlIGludCAtPiBsb25nIGNoZWNraW5nLgoKaGFyZGFrZXIgMzEgSnVsIDk1IDE2OjI3OjQ3CiAgICAtIHNubXBjaGVjayBjaGFuZ2VzOgogICAgICAtIHRlcm1pbmFsIChhc2NpaSkgYmFzZWQgc3VwcG9ydGVkIGZpeGVkLgogICAgICAgIC0gRGV0ZWN0cyBwcmVzZW5jZSBvZiBhIERJU1BMQVkgdmFyaWFibGUuCiAgICAgICAgLSBOb3cgcmVxdWlyZXMgdGhlIFRlcm06OlJlYWRrZXkgcGFja2FnZS4KICAgICAgICAtIGFza3MgdXNlcnMgd2VhdGhlciB0byBmaXggcHJvYmxlbXMKICAgICAgLSByYWlzZXMgYW5kIGRlaWNvbmlmaWVzIHdoZW4gbmV3IHByb2JsZW1zIGFyZSBmb3VuZAogICAgICAtIHNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgbmV3IHByb2JsZW1zIHRvIHBpbmtpc2gKICAgICAgLSBuZXcgcHJlZmVyZW5jZTogIHBpbmcgaG9zdD8KICAgICAgLSBnbG9iYWwga2V5IGJpbmRpbmdzOgogICAgICAgICAgY3RybC1xID0gcXVpdDsgY3RybC1oID0gaGlkZTsgY3RybC1zID0gc2VlbiBhbGwKCmhhcmRha2VyICAxIFNlcCA5NSAxMTo1Nzo1MgogICAgLSBGaXhlZCBhbHBoYSdzIGtlcm5lbCBsb29rdXBzOgogICAgICAqIENNVSBjb2RlIHdhcyBwYXNzaW5nIGludHMgaW50byBsc2VlayAobmVlZHMgbG9uZykuCgpoYXJkYWtlciAxOCBTZXAgOTUgMTY6MDk6MjUKICAgIE1pbm9yIG1vZHMgdG8gUkVBRE1FIGZpbGUuCgpoYXJkYWtlciAxOCBTZXAgOTUgMTY6MTM6NDkKICAgIE1pbm9yIGJ1ZzoKICAgICAgKHNoX2NvdW50X3Byb2NzKSBjaGVjayBpZiByZXR1cm5lZCBmaWxlIGRlc2NyaXB0b3IgPiAwIGJlZm9yZSBjb250aW51aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAKCmhhcmRha2VyIDE2IEp1biA5NSAxMDoxMzo1MwogICAgUmVtb3ZlZCAnZ21ha2UnIC0+ICdtYWtlJyBpbiBhZ2VudC9NYWtlZmlsZQoKaGFyZGFrZXIgMTYgSnVuIDk1IDEwOjE1OjQyCiAgICBIb3VzZSBjbGVhbmluZwogICAgICAtIENvbXBpbGVzIGNsZWFubHkgb24gaHB1eC9nY2MKICAgIAkoZXhjZXB0IG9uZSBpbmNsdWRlIGZpbGUgZXJyb3IgSSBkb24ndCBoYXZlIGNvbnRyb2wgb3Zlci4pCiAgICAgIC0gQ2hhbmdlIFZFUlNJT05fSUQgLT4gVkVSU0lPTklEIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIEhQJ3MgaW5jbHVkZXMuCgpoYXJkYWtlciAxNiBKdW4gOTUgMTQ6MTM6NTMKICAgIEhvdXNlIENsZWFuaW5nOgogICAgICBUb29rIG91dCBnY2MvYW5zaSByZXF1aXJlbWVudCBmb3IgdGhlIGFnZW50LgogICAgICBwZXJyb3IoKSBpcyBjYWxsZWQgbW9yZSBmcmVxdWVudGx5IGZvciBsb2cgYXJjaGl2YWwKICAgIAogICAgTmV3IEJ1Zy9IYXZlbid0IHNvbHZlZDoKICAgICAgSFAtVVg6ICBpZiBhZ2VudC8qLmMgYW5kIGFnZW50L2V4dGVuc2libGUvKi5jIGFyZSBidWlsdCB3aXRoIGdjYywKICAgIAkgIERpc3BsYXlTdHJpbmdzIHJldHVybiBnYXJiYWdlLiAgTm8gY2x1ZSBhcyB0byB3aHkuCgpoYXJkYWtlciAxNiBKdW4gOTUgMTQ6MjA6NDgKICAgIEhvdXNlIENsZWFuaW5nOgogICAgICBNaXNzZWQgYSBWRVJTSU9OX0lECgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTE6MjcKICAgIENoYW5nZWQgYW5vdGhlciAiZW1wdHkiIGVycm9yIG1lc3NhZ2UgaW4gdGhlIENNVSBjb2RlIHRvIGEgcmVhbCB3YXJuaW5nLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjE1OjMxCiAgICBCdWcgRml4OgogICAgICBTdG9wcGVkIHJldHVybmluZyBhIHBvaW50ZXIgdG8gYSBub24tc3RhdGljIGNoYXIgYXJyYXkuLi4gICgtPiBzdGF0aWMgY2hhcikKICAgICAgUGFzc2luZyB3cm9uZyBwb2ludGVyIHRvIHNldGVycm9yc3RhdHVzKCkgaW4gc2V0UGVycm9yc3RhdHVzKCkKICAgIAogICAgRmVhdHVyZToKICAgICAgQWRkZWQgYSBzZXRhYmxlIG1pYiBlbnRyeSB0byB0aGUgdmVyc2lvbiBtaWIgdG8gcmUtcmVhZCB0aGUgY29uZmlnIGZpbGUocykuCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTg6MzcKICAgIGVjZS1taWIuZGVmOgogICAgQnVnIEZpeDoKICAgICAgTG9hZGF2ZSBtaWI6ICBJbnRlZ2VyIC0+IERpc3BsYXlTdHJpbmcKICAgICAgdmVyc2lvbkNsZWFyQ2FjaGU6ICAtPiByZWFkLXdyaXRlICh3YXMgcmVhZC1vbmx5KQogICAgCiAgICBGZWF0dXJlOgogICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToxOToxNwogICAgQ2hhbmdlZCBkZWZhdWx0IENDIHRvIGNjIGFnYWluLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjIwOjIzCiAgICBzbm1wbGliOgogICAgICBCdWcgZml4OiAgZmRzZXQgLT4gKGludCAqKSBmZHNldCBpbiBzZWxlY3QgY2FsbC4KCmhhcmRha2VyIDEwIEp1bCA5NSAxMToyNzowMAogICAgVHdvIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uczoKICAgICAgLWwgTE9HRklMRSAgICAgICBPdXRwdXRzIHN0ZGVyci9vdXQgdG8gTE9HRklMRSAob3ZlcnJpZGVzIGNvbmZpZy5oIGRlZikKICAgICAgLUwgICAgICAgICAgICAgICBEbyBOT1Qgd3JpdGUgdG8gYSBsb2cgZmlsZSAob3ZlcnJpZGVzIGNvbmZpZy5oKQoKaGFyZGFrZXIgMTAgSnVsIDk1IDEyOjI5OjMyCiAgICAtIE1vcmUgcGVycm9yKClzIGNvbnZlcnRlZCB0byBzZXQgdGhlIHNubXAgZXJyb3Igc3RhdHVzIGZsYWcgb24gdGhlIGFnZW50LgogICAgLSBlcnJvciBzdGF0dXMgZmxhZyBpcyBub3cgcHJpb3JpdGl6ZWQuICBwZXJyb3JzIGdldCB0aGUgaGlnaGVzdCBzbwogICAgICBvdGhlciBlcnJvcnMgd29uJ3Qgb3ZlcnJpZGUgdGhlbSBpZiB0aGV5IGhhcHBlbiBhdCBhIGxhdGVyIHRpbWUuCiAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgcmVzdGFydCBtaWIgdG8gdGhlIHZlcnNpb24gbWliIG9mIHRoZQogICAgICBhZ2VudC4gIFNldHRpbmcgdGhpcyB3cml0YWJsZSBtaWIgdG8gb25lIHdpbGwgY2F1c2UgaXQgdG8gZXhlYwogICAgICBpdHNlbGYgYWdhaW4gKGZvciByZW1vdGUgcmVzdGFydC91cGRhdGVzKS4KCmhhcmRha2VyIDEwIEp1bCA5NSAxMjozMDoxOQogICAgTWlub3IgY29tbWVudCBjaGFuZ2UgaW4gY29uZmlnLmgKCmhhcmRha2VyIDE0IEp1bCA5NSAxNToxMjo0MAogICAgLSBGaW5pc2hlZCB0aGUgcmVzdGFydCBtaWIuICBUaGlzIGlzIGEgc2V0YWJsZSBzdWItbWliIG9mIHRoZSB2ZXJzaW9uCiAgICAgIG1pYiwgZGVmYXVsdCB0byBWRVJTSU9OLjEyKC4xKS4gIElmIHNubXAtc2V0IHRvICcxJywgaXQgd2lsbCByZXN0YXJ0CiAgICAgIHRoZSBhZ2VudC4KICAgIAogICAgICAqICBBIHNpZGUgZWZmZWN0IG9mIHRoaXMgaXMgdGhhdCBpdCByZXN0YXJ0cyAzIHRpbWVzIG9yIHNvLCBzaW5jZSBpdAogICAgICAgICBuZXZlciByZXR1cm5zIGEgcmVzcG9uY2UgdG8gdGhlIHByb2dyYW0gZ2VuZXJhdGluZyB0aGUgcmVxdWVzdC4KICAgICAgICAgSWYgc2FpZCBwcm9ncmFtIHRyaWVzIHRvIHJlc2VuZCB0aGUgcmVxdWVzdCAod2hpY2ggbW9zdCBkbyksIGl0CiAgICAgICAgIHdpbGwgQUdBSU4gcmVzdGFydCB0aGUgYWdlbnQuLi4gIG9oIHdlbGwuCgpoYXJkYWtlciAxNCBKdWwgOTUgMTU6MTU6MzEKICAgIC0gc25tcGNoZWNrICh0ay1wZXJsLWI0IHNjcmlwdCkgaXMgcHJldHR5IHN0YWJsZSBhdCB0aGlzIHBvaW50LiAgSQogICAgICBsb3N0IGN1cnNlcyBzdXBwb3J0LCBhbmQgbmVlZCB0byByZS1hZGQgaXQgc3RpbGwsIHNvIGl0IGlzIHN0aWxsCiAgICAgIGJldGEuICBJdCBkb2VzIGV4cGVjdCBhIGxvZyBmaWxlIG9mIHByb2JsZW1zIHRvIGV4aXN0IChwb2ludCBpdCB0bwogICAgICAvZGV2L251bGwpLCBhbmQgbmVlZHMgdG8ga25vdyB0aGUgbG9jYXRpb25zIG9mIHRoZSBtaWJzIHRvIGNoZWNrCiAgICAgICh3aGljaCBhcmVuJ3QgY29uZmlndXJlZCBieSAnbWFrZScpLCBzbyBpdCBuZWVkcyBzb21lIHdvcmsuCiAgICAgIEhvd2V2ZXIsIGl0IHdpbGwgcXVlcnkgYW4gYWdlbnQsIGNoZWNrIGl0cyBwcm9ibGVtcyBiYXNlZCBvbiB0aGUKICAgICAgc3RhdHVzIG9mIHRoZSBlcnJvciBmbGFnIChvciByZXR1cm4gY29kZSkgYmVpbmcgPjEgYW5kIHJlcG9ydCB0aGVtCiAgICAgIHdpdGggbmVhdCBHVUktYnV0dG9ucyBhbmQgc3R1ZmYgKG9oIHdvdykuICBObyBkb2N1bWVudGF0aW9uIG9uIGl0IHRob3VnaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgMy0wQTE6CgpoYXJkYWtlciAgMiBKdW4gOTUgMTY6MjM6NDYKICAgIC0gdmVyc2lvbiB1cGRhdGUKCmhhcmRha2VyICA1IEp1biA5NSAxMjo0NDo0NgogICAgLSBhZ2VudC9leHRlbnNpYmxlL01ha2VmaWxlOgogICAgICAgIC0tICBubyBsb25nZXIgcmVxdWlyZXMgR05VIG1ha2UKICAgICAgICAtLSAgZXRhZ3Mgbm8gbG9uZ2VyIHJ1biBieSBkZWZhdWx0CiAgICAKICAgIC0gU3VuT1MgYWRkaXRpb25zOgogICAgICAgIC0tIGxvYWRhdmVyYWdlIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgICAgICAgLS0gZGlzayBjaGVja2luZyBNSUIgZW5hYmxlZAoKaGFyZGFrZXIgIDkgSnVuIDk1IDEwOjIxOjA3CiAgICAtIEFkZGVkIGEgU05NUEJMT0NLIG9wdGlvbiB0byB0aGUgY29uZmlnLmggZmlsZS4gIFN1cHBvc2VkaWx5IHNldHRpbmcKICAgICAgdGhpcyB0byB6ZXJvIChub3cgdGhlIGRlZmF1bHQpIHdpbGwgYWxsb3cgc25tcCByZXF1ZXN0cyB0byB0aW1lIG91dC4KICAgICAgSGF2ZW4ndCB0ZXN0ZWQgaXQgdGhyb3VnaGx5LgogICAgICAgIC0tIENvbnRyaWJ1dGVkIGJ5IFNhbmphaSBOYXJhaW4gPG5hcmFpbkB0aHVtcGVyLmJlbGxjb3JlLmNvbT4KCmhhcmRha2VyICA5IEp1biA5NSAxMDoyMTo1MQogICAgLSBDb3JyZWN0bHkgb3JkZXJlZCB0aGUgbWliIHRhYmxlIGxpc3QuCiAgICAgIC0tICBOZWVkIHRvIHdyaXRlIGEgZHluYW1pYyBjaGVja2VyL3JlLW9yZGVyZXIuCgpoYXJkYWtlciAgOSBKdW4gOTUgMTA6MjM6MzUKICAgIC0gQ29ycmVjdCB1c2FnZSBmb3Igc25tcHdhbGsgaXMgbm93IHBvc3NpYmxlLiAgSUUsIHNubXB3YWxrIHRhcmdldAogICAgICAuMS4zLjYuMSB3aWxsIG5vdyBicm93c2UgdGhlIGVudGlyZSB0cmVlLgogICAgICAtLSBTdGlsbCBmYWlscyBvbiByZWxvY2F0YWJsZSBleHRlbnNpYmxlIG1pYnMgYW5kIHdpbGwgdW50aWwgSQogICAgICAgICB3cml0ZSBhIGR5bmFtaWMgdHJlZSBidWlsZGVyLgoKaGFyZGFrZXIgIDkgSnVuIDk1IDE0OjA4OjE1CiAgICAtIENoYW5nZWQgdGVzdCAteCB0byB0ZXN0IC1mIGluIHNubXBsaWIvTWFrZWZpbGUuICBOb3QgYWxsIE9TZXMKICAgICAgKGllIHVsdHJpeCkgaGFuZGxlIHRoaXMuCgpoYXJkYWtlciAxMiBKdW4gOTUgMTA6MzU6MzgKICAgIC0gbG9jYWwvdHJhcG5vdGlmOgogICAgICAtLSB1c2VzIHNubXB2MiBub3cgKGNvcnJlY3RseSkKCmhhcmRha2VyIDEyIEp1biA5NSAxMDozNzo0NgogICAgLSBSZXBvcnRzIGFsbCBlcnJvcnMgdGhyb3VnaCB0aGUgZXJyb3IgbWliIG5vdyBpbnN0ZWFkIG9mIHRocm91Z2ggcGVycm9yKCkuCiAgICAtIENsZWFuZWQgdXAgZXJyb3IgaGFuZGxpbmcuICBTaG91bGRuJ3QgaGFuZGxlIGVycm9ycyBuaWNlbHkgaWYgc3lzdGVtCiAgICAgIGVycm9ycyBvY2N1ciB3aGVuIHNjYW5uaW5nIGFuIGV4dGVuc2libGUgbWliLgoKaGFyZGFrZXIgMTQgSnVuIDk1IDExOjI0OjIwCiAgICBhZ2VudDoKICAgIC0gTWliIHRhYmxlIGlzIG5vdyBxc29ydGVkIGF0IHJ1biB0aW1lIGFuZCB0aGUgZXh0ZW5zaWJsZSB2YXJpYWJsZXMgYXJlCiAgICAgIHNvcnRlZCBpbiBhdCB0aGlzIHRpbWUuICBUaGlzIGJyaW5ncyB0aGUgYWdlbnQgdXAgdG8gY29ycmVjdAogICAgICBTTk1Qd2Fsay9nZXRuZXh0IHByb3RvY29scy4gIFlvdSBjYW4gbm93IHdhbGsgdGhlIGVudGlyZSB0cmVlCiAgICAgIGluY2x1ZGluZyB0aGUgZXh0ZW5zaWJsZSBzZWN0aW9ucyBhbmQgaXQgd29uJ3Qgc3RvcC4KICAgICAgKiBUaGlzIGhhcyBhbiBhZGRlZCBib251cyBvZiBjaGVja2luZyB0aGUgbWliIHRhYmxlCiAgICAgICAgKGFnZW50L3NubXBfdmFycy5jKSBmb3IgY29ycmVjdCBvcmRlci4gIEkgaGF2ZSBhZGRlZCB0aGluZ3MgdG8gdGhlCiAgICAgICAgd3JvbmcgbG9jYXRpb24gdG9vIG1hbnkgdGltZXMgYW5kIGNhdXNlZCB0aGUgYWdlbnQgdG8gZnVuY3Rpb24KICAgICAgICBpbmNvcnJlY3RseS4gIE1ham9yIHdpbi4KCmhhcmRha2VyIDE0IEp1biA5NSAxMjo1Njo0OQogICAgLSBDbGVhbmVkIHVwL0FkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byBjb25maWcuaAogICAgLSBHTE9CQUxTRUNVUklUWSBub3cgdXNlcyB0aGUgbGVmdCBtb3N0IGZvdXIgYml0cyBpbiB0aGUgTUlCIGFjbC4KICAgICAgVGhpcyBpcyBtb3JlIGNvbXBhdGlibGUgd2l0aCB0aGUgQ01VIGNvZGUgdGhhbiB1c2luZyB0aGUgbGVmdCBtb3N0CiAgICAgIDIsIHdoaWNoIHdhcyBkb25lIHByZXZpb3VzbHkuCgoKaGFyZGFrZXIgMTQgSnVuIDk1IDEzOjQzOjM4CiAgICAtIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgICAtIENyZWF0ZWQgYSBtYWlsaW5nIGxpc3QgdG8gaGFuZGxlIGFubm91bmNlbWVudHMKICAgICAgKHVjZC1zbm1wLWFubm91bmNlQHVjZC1zbm1wLnVjZGF2aXMuZWR1KQoKCiMgZ2VuZXJhdGVkIHVzaW5nOgojICBjdnMyY2wgLWIgLXIgLWYgQ2hhbmdlTG9nLmFkZCAtRiBWNC0yLXBhdGNoZXMgLS1uby13cmFwIC1TCiMgIHBlcmwgZGlzdC9jaGFuZ2Vsb2dmaXggPCBDaGFuZ2VMb2cuYWRkID4gQ2hhbmdlTG9nLnJlYWxseWFkZAo=